Copy disabled (too large)
Download .txt
Showing preview only (111,238K chars total). Download the full file to get everything.
Repository: memfault/zero-to-main
Branch: master
Commit: 7f134da38396
Files: 21000
Total size: 340.1 MB
Directory structure:
gitextract_gdqveklf/
├── .gitignore
├── Makefile
├── README.md
├── bootload/
│ ├── Makefile
│ ├── app.ld
│ ├── boot.ld
│ ├── bootload-app.c
│ ├── bootload-boot.c
│ ├── memory_map.h
│ ├── memory_map.ld
│ └── startup_samd21.c
├── bootload-reloc/
│ ├── Makefile
│ ├── app.ld
│ ├── boot.ld
│ ├── bootload-reloc-app.c
│ ├── bootload-reloc-boot.c
│ ├── memory_map.h
│ ├── memory_map.ld
│ └── startup_samd21.c
├── common-bootloaded.mk
├── common-standalone.mk
├── default/
│ ├── Makefile
│ ├── default.c
│ └── samd21g18a_flash.ld
├── lib/
│ └── embeddedartistry_libc/
│ ├── include/
│ │ ├── assert.h
│ │ ├── complex.h
│ │ ├── crt.h
│ │ ├── ctype.h
│ │ ├── endian.h
│ │ ├── errno.h
│ │ ├── float.h
│ │ ├── inttypes.h
│ │ ├── langinfo.h
│ │ ├── limits.h
│ │ ├── locale.h
│ │ ├── math.h
│ │ ├── memory.h
│ │ ├── nl_types.h
│ │ ├── setjmp.h
│ │ ├── stdarg.h
│ │ ├── stdbool.h
│ │ ├── stddef.h
│ │ ├── stdint.h
│ │ ├── stdio.h
│ │ ├── stdlib.h
│ │ ├── string.h
│ │ ├── strings.h
│ │ ├── time.h
│ │ ├── wchar.h
│ │ └── wctype.h
│ ├── libc.a
│ └── libprintf.a
├── minimal/
│ ├── Makefile
│ ├── minimal.c
│ ├── samd21g18a_flash.ld
│ └── startup_samd21.c
├── openocd.cfg
├── reloc/
│ ├── Makefile
│ ├── reloc.c
│ ├── samd21g18a_flash.ld
│ └── startup_samd21.c
├── rust/
│ ├── .cargo/
│ │ └── config
│ ├── Cargo.toml
│ ├── Makefile
│ ├── layout.ld
│ └── src/
│ └── main.rs
├── utils/
│ └── get-fw-size
├── with-libc/
│ ├── Makefile
│ ├── samd21g18a_flash.ld
│ ├── startup_samd21.c
│ └── with-libc.c
└── xdk-asf-3.32.0/
├── common/
│ ├── applications/
│ │ ├── led_chaser/
│ │ │ ├── at32uc3l064_stk600-rcuc3l0/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_example.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── led_chaser.ewd
│ │ │ │ ├── led_chaser.ewp
│ │ │ │ └── led_chaser.eww
│ │ │ ├── atxmega128a1_stk600-rc100x/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_example.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── led_chaser.ewd
│ │ │ │ ├── led_chaser.ewp
│ │ │ │ └── led_chaser.eww
│ │ │ ├── atxmega128a1_xplain/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_example.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── led_chaser.ewd
│ │ │ │ ├── led_chaser.ewp
│ │ │ │ └── led_chaser.eww
│ │ │ ├── atxmega256a3u_stk600-rc064x/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_example.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── led_chaser.ewd
│ │ │ │ ├── led_chaser.ewp
│ │ │ │ └── led_chaser.eww
│ │ │ ├── atxmega32a4u_stk600-rc044x/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_example.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── led_chaser.ewd
│ │ │ │ ├── led_chaser.ewp
│ │ │ │ └── led_chaser.eww
│ │ │ ├── atxmega32e5_stk600-rc032x/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_example.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── led_chaser.ewd
│ │ │ │ ├── led_chaser.ewp
│ │ │ │ └── led_chaser.eww
│ │ │ ├── atxmega32e5_xmega_e5_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_example.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── led_chaser.ewd
│ │ │ │ ├── led_chaser.ewp
│ │ │ │ └── led_chaser.eww
│ │ │ └── led_example.c
│ │ ├── mxt143e_xplained_calculator_demo/
│ │ │ ├── at32uc3a256_uc3_a3_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_calc_demo.ewd
│ │ │ │ ├── mxt143e_xplained_calc_demo.ewp
│ │ │ │ └── mxt143e_xplained_calc_demo.eww
│ │ │ ├── at32uc3l064_uc3_l0_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_calc_demo.ewd
│ │ │ │ ├── mxt143e_xplained_calc_demo.ewp
│ │ │ │ └── mxt143e_xplained_calc_demo.eww
│ │ │ ├── atmel_logo_small.h
│ │ │ ├── atxmega128a1_xmega_a1_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── conf_usart_spi.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_calc_demo.ewd
│ │ │ │ ├── mxt143e_xplained_calc_demo.ewp
│ │ │ │ └── mxt143e_xplained_calc_demo.eww
│ │ │ ├── atxmega128b1_xmega_b1_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── conf_usart_spi.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_calc_demo.ewd
│ │ │ │ ├── mxt143e_xplained_calc_demo.ewp
│ │ │ │ └── mxt143e_xplained_calc_demo.eww
│ │ │ ├── atxmega256a3bu_xmega_a3bu_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── conf_usart_spi.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_calc_demo.ewd
│ │ │ │ ├── mxt143e_xplained_calc_demo.ewp
│ │ │ │ └── mxt143e_xplained_calc_demo.eww
│ │ │ ├── atxmega384c3_xmega_c3_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── conf_usart_spi.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_calc_demo.ewd
│ │ │ │ ├── mxt143e_xplained_calc_demo.ewp
│ │ │ │ └── mxt143e_xplained_calc_demo.eww
│ │ │ ├── calculator.c
│ │ │ ├── conf_membag.h
│ │ │ ├── conf_sysfont.h
│ │ │ ├── conf_win.h
│ │ │ ├── conf_wtk.h
│ │ │ ├── sam4s16c_sam4s_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_calc_demo.eww
│ │ │ │ ├── mxt143e_xplained_calc_demo_flash.ewd
│ │ │ │ ├── mxt143e_xplained_calc_demo_flash.ewp
│ │ │ │ ├── mxt143e_xplained_calc_demo_sram.ewd
│ │ │ │ └── mxt143e_xplained_calc_demo_sram.ewp
│ │ │ ├── widget_gui.c
│ │ │ └── widget_gui.h
│ │ ├── mxt143e_xplained_multi-touch_demo/
│ │ │ ├── at32uc3a3256_uc3_a3_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_multi-touch_demo.ewd
│ │ │ │ ├── mxt143e_xplained_multi-touch_demo.ewp
│ │ │ │ └── mxt143e_xplained_multi-touch_demo.eww
│ │ │ ├── at32uc3l064_uc3_l0_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_multi-touch_demo.ewd
│ │ │ │ ├── mxt143e_xplained_multi-touch_demo.ewp
│ │ │ │ └── mxt143e_xplained_multi-touch_demo.eww
│ │ │ ├── atxmega128a1_xmega_a1_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── conf_usart_spi.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_multi-touch_demo.ewd
│ │ │ │ ├── mxt143e_xplained_multi-touch_demo.ewp
│ │ │ │ └── mxt143e_xplained_multi-touch_demo.eww
│ │ │ ├── atxmega128b1_xmega_b1_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── conf_usart_spi.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_multi-touch_demo.ewd
│ │ │ │ ├── mxt143e_xplained_multi-touch_demo.ewp
│ │ │ │ └── mxt143e_xplained_multi-touch_demo.eww
│ │ │ ├── atxmega256a3bu_xmega_a3bu_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── conf_usart_spi.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_multi-touch_demo.ewd
│ │ │ │ ├── mxt143e_xplained_multi-touch_demo.ewp
│ │ │ │ └── mxt143e_xplained_multi-touch_demo.eww
│ │ │ ├── atxmega384c3_xmega_c3_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── conf_usart_spi.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_multi-touch_demo.ewd
│ │ │ │ ├── mxt143e_xplained_multi-touch_demo.ewp
│ │ │ │ └── mxt143e_xplained_multi-touch_demo.eww
│ │ │ ├── conf_sysfont.h
│ │ │ ├── multi-touch_demo.c
│ │ │ └── sam4s16c_sam4s_xplained/
│ │ │ ├── conf_board.h
│ │ │ ├── conf_clock.h
│ │ │ ├── conf_ili9341.h
│ │ │ ├── conf_mxt.h
│ │ │ ├── conf_spi_master.h
│ │ │ ├── conf_twim.h
│ │ │ ├── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── gcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── asf.h
│ │ │ │ └── config.mk
│ │ │ └── iar/
│ │ │ ├── asf.h
│ │ │ ├── mxt143e_xplained_multi-touch_demo.eww
│ │ │ ├── mxt143e_xplained_multi-touch_demo_flash.ewd
│ │ │ ├── mxt143e_xplained_multi-touch_demo_flash.ewp
│ │ │ ├── mxt143e_xplained_multi-touch_demo_sram.ewd
│ │ │ └── mxt143e_xplained_multi-touch_demo_sram.ewp
│ │ ├── mxt143e_xplained_paint_demo/
│ │ │ ├── at32uc3a3256_uc3_a3_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_paint_demo.ewd
│ │ │ │ ├── mxt143e_xplained_paint_demo.ewp
│ │ │ │ └── mxt143e_xplained_paint_demo.eww
│ │ │ ├── at32uc3l064_uc3_l0_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_paint_demo.ewd
│ │ │ │ ├── mxt143e_xplained_paint_demo.ewp
│ │ │ │ └── mxt143e_xplained_paint_demo.eww
│ │ │ ├── atxmega128a1_xmega_a1_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── conf_usart_spi.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_paint_demo.ewd
│ │ │ │ ├── mxt143e_xplained_paint_demo.ewp
│ │ │ │ └── mxt143e_xplained_paint_demo.eww
│ │ │ ├── atxmega128b1_xmega_b1_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── conf_usart_spi.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_paint_demo.ewd
│ │ │ │ ├── mxt143e_xplained_paint_demo.ewp
│ │ │ │ └── mxt143e_xplained_paint_demo.eww
│ │ │ ├── atxmega256a3bu_xmega_a3bu_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── conf_usart_spi.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_paint_demo.ewd
│ │ │ │ ├── mxt143e_xplained_paint_demo.ewp
│ │ │ │ └── mxt143e_xplained_paint_demo.eww
│ │ │ ├── atxmega384c3_xmega_c3_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── conf_usart_spi.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_paint_demo.ewd
│ │ │ │ ├── mxt143e_xplained_paint_demo.ewp
│ │ │ │ └── mxt143e_xplained_paint_demo.eww
│ │ │ ├── conf_sysfont.h
│ │ │ ├── paint_demo.c
│ │ │ └── sam4s16c_sam4s_xplained/
│ │ │ ├── conf_board.h
│ │ │ ├── conf_clock.h
│ │ │ ├── conf_ili9341.h
│ │ │ ├── conf_mxt.h
│ │ │ ├── conf_spi_master.h
│ │ │ ├── conf_twim.h
│ │ │ ├── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── gcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── asf.h
│ │ │ │ └── config.mk
│ │ │ └── iar/
│ │ │ ├── asf.h
│ │ │ ├── mxt143e_xplained_paint_demo.eww
│ │ │ ├── mxt143e_xplained_paint_demo_flash.ewd
│ │ │ ├── mxt143e_xplained_paint_demo_flash.ewp
│ │ │ ├── mxt143e_xplained_paint_demo_sram.ewd
│ │ │ └── mxt143e_xplained_paint_demo_sram.ewp
│ │ ├── sensors/
│ │ │ ├── altitude_demo/
│ │ │ │ └── main.cpp
│ │ │ ├── compass_calibration/
│ │ │ │ └── main.c
│ │ │ ├── dcm_demo/
│ │ │ │ └── main.cpp
│ │ │ ├── inertial_demo/
│ │ │ │ └── main.c
│ │ │ ├── inertial_visualizer/
│ │ │ │ ├── data_visualizer.c
│ │ │ │ ├── data_visualizer.h
│ │ │ │ └── main.c
│ │ │ ├── inertial_wake/
│ │ │ │ └── main.c
│ │ │ ├── lightprox_demo/
│ │ │ │ └── main.c
│ │ │ ├── lightprox_visualizer/
│ │ │ │ ├── data_visualizer.c
│ │ │ │ ├── data_visualizer.h
│ │ │ │ └── main.c
│ │ │ ├── lightprox_wake/
│ │ │ │ └── main.c
│ │ │ ├── pressure_demo/
│ │ │ │ └── main.c
│ │ │ ├── prox_calibrate/
│ │ │ │ └── main.c
│ │ │ └── prox_gesture/
│ │ │ └── main.c
│ │ ├── user_application/
│ │ │ ├── at32uc3a0512_evk1100/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── at32uc3a0512_evk1105/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── at32uc3a0512_stk600-rcuc3a0/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── at32uc3a3256_evk1104/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── at32uc3a3256_uc3_a3_xplained/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── at32uc3a3256s_rz600/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── at32uc3b0256_evk1101/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── at32uc3b0256_stk600-rcuc3b0/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── at32uc3c0512c_stk600-rcuc3c0/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── at32uc3c0512c_uc3c_ek/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── at32uc3l0256_stk600-rcuc3l0/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── at32uc3l064_stk600-rcuc3l0/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── at32uc3l064_uc3_l0_xplained/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── at32uc3l064_uc3l_ek/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega1284p_mega_xplained/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega1284p_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega128_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega128rfa1_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega168a_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega168pb_xplained_mini/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega169p_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega16_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega2560_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega256rfr2_atmega256rfr2_xplained_pro/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega324a_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega324pa_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega324pb_xplained_pro/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega328_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega328p_xplained_mini/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega328pb_xplained_mini/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega329p_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega32_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega48a_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega640_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega644a_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega64_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega88a_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atuc128d3_stk600-rcuc3d/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atuc256l3u_stk600-rcuc3l3/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atuc256l4u_stk600-rcuc3l4/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega128a1_stk600-rc100x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega128a1_xmega_a1_xplained/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega128a1_xplain/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega128a1u_stk600-rc100x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega128a3u_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega128a4u_stk600-rc044x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega128b1_stk600-rc100x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega128b1_stk600-rc100x_lcdx/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega128b1_xmega_b1_xplained/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega128b3_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega128b3_stk600-rc064x_lcdx/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega128c3_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega16a4_stk600-rc044x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega16a4u_stk600-rc044x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega16c4_stk600-rc044x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega192a3u_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega192c3_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega192d3_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega256a3_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega256a3b_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega256a3bu_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega256a3bu_xmega_a3bu_xplained/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega256a3u_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega256c3_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega32a4_stk600-rc044x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega32a4u_stk600-rc044x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega32c4_stk600-rc044x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega32d4_stk600-rc044x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega32e5_stk600-rc032x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega32e5_xmega_e5_xplained/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega384c3_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega384c3_xmega_c3_xplained/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega64a1u_stk600-rc100x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega64a3_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega64a3u_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega64a4u_stk600-rc044x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega64b1_stk600-rc100x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega64b1_stk600-rc100x_lcdx/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega64b3_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega64b3_stk600-rc064x_lcdx/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega64c3_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega_rf212b_zigbit_ext/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega_rf212b_zigbit_usb/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega_rf233_zigbit_ext/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega_rf233_zigbit_usb/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── main.c
│ │ │ ├── sam3n4c_sam3n_ek/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam3s4c_sam3s_ek/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam3sd8c_sam3s_ek2/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam3u4e_sam3u_ek/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam3x8e_arduino_due_x/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam3x8h_sam3x_ek/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam4c16c_sam4c_ek/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam4cmp16c_sam4cmp_db/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam4cms16c_sam4cms_db/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam4cp16b_sam4cp16bmb/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam4e16e_sam4e_ek/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam4lc4c_sam4l_ek/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam4n16c_sam4n_xplained_pro/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam4s16c_sam4s_ek/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam4s16c_sam4s_wpir_rd/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam4s16c_sam4s_xplained/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam4sd32c_atpl230amb/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam4sd32c_sam4s_ek2/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── same70q21_same70_xplained/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── samv71q21_samv71_xplained_ultra/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ └── user_board/
│ │ │ ├── config/
│ │ │ │ └── conf_board.h
│ │ │ └── doxygen/
│ │ │ └── doxyfile.doxygen
│ │ └── xplained_pro_user_application/
│ │ ├── main.c
│ │ ├── sam4e16e_sam4e_xplained_pro/
│ │ │ ├── config/
│ │ │ │ ├── conf_board.h
│ │ │ │ └── conf_clock.h
│ │ │ └── doxygen/
│ │ │ └── doxyfile.doxygen
│ │ ├── sam4lc4c_sam4l_xplained_pro/
│ │ │ ├── config/
│ │ │ │ ├── conf_board.h
│ │ │ │ └── conf_clock.h
│ │ │ └── doxygen/
│ │ │ └── doxyfile.doxygen
│ │ ├── sam4lc8c_sam4l_xplained_pro/
│ │ │ ├── config/
│ │ │ │ ├── conf_board.h
│ │ │ │ └── conf_clock.h
│ │ │ └── doxygen/
│ │ │ └── doxyfile.doxygen
│ │ ├── sam4sd32c_sam4s_xplained_pro/
│ │ │ ├── config/
│ │ │ │ ├── conf_board.h
│ │ │ │ └── conf_clock.h
│ │ │ └── doxygen/
│ │ │ └── doxyfile.doxygen
│ │ ├── samg53n19_samg_xplained_pro/
│ │ │ ├── config/
│ │ │ │ ├── conf_board.h
│ │ │ │ └── conf_clock.h
│ │ │ └── doxygen/
│ │ │ └── doxyfile.doxygen
│ │ ├── samg55j19_samg_xplained_pro/
│ │ │ ├── config/
│ │ │ │ ├── conf_board.h
│ │ │ │ └── conf_clock.h
│ │ │ └── doxygen/
│ │ │ └── doxyfile.doxygen
│ │ └── xmega_a1u_xplained_pro/
│ │ ├── config/
│ │ │ ├── conf_at45dbx.h
│ │ │ ├── conf_board.h
│ │ │ └── conf_clock.h
│ │ └── doxygen/
│ │ └── doxyfile.doxygen
│ ├── boards/
│ │ ├── board.h
│ │ ├── security_xplained/
│ │ │ ├── doxygen/
│ │ │ │ └── common.boards.security_xplained/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── security_xplained.c
│ │ │ └── security_xplained.h
│ │ ├── sensors_xplained/
│ │ │ ├── doxygen/
│ │ │ │ └── common.boards.sensors_xplained/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── sensors_xplained.c
│ │ │ ├── sensors_xplained.h
│ │ │ └── xplained_headers.h
│ │ └── user_board/
│ │ ├── board_config/
│ │ │ └── conf_board.h
│ │ ├── debug_config/
│ │ │ ├── flash.gdb
│ │ │ ├── flash.mac
│ │ │ ├── ram.gdb
│ │ │ └── ram.mac
│ │ ├── init.c
│ │ └── user_board.h
│ ├── drivers/
│ │ └── nvm/
│ │ ├── common_nvm.h
│ │ ├── doxygen/
│ │ │ ├── common.drivers.nvm_extmem_0/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── common.drivers.nvm_extmem_1/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── common.drivers.nvm_extmem_2/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── common.drivers.nvm_no_extmem_0/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── common.drivers.nvm_no_extmem_1/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── common.drivers.nvm_no_extmem_2/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── common.drivers.nvm_no_extmem_3/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── common.drivers.nvm_no_extmem_5/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ └── common.drivers.nvm_no_extmem_6/
│ │ │ ├── doxyfile.doxygen
│ │ │ └── doxygen_module_mainpage.h
│ │ ├── example/
│ │ │ ├── at32uc3a0512_evk1100/
│ │ │ │ ├── conf_at45dbx.h
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_example.ewd
│ │ │ │ ├── nvm_example.ewp
│ │ │ │ └── nvm_example.eww
│ │ │ ├── at32uc3a3256_evk1104/
│ │ │ │ ├── conf_at45dbx.h
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_example.ewd
│ │ │ │ ├── nvm_example.ewp
│ │ │ │ └── nvm_example.eww
│ │ │ ├── at32uc3b0256_evk1101/
│ │ │ │ ├── conf_at45dbx.h
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_example.ewd
│ │ │ │ ├── nvm_example.ewp
│ │ │ │ └── nvm_example.eww
│ │ │ ├── atuc128d3_stk600-rcuc3d/
│ │ │ │ ├── conf_at45dbx.h
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ └── gcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── asf.h
│ │ │ │ └── config.mk
│ │ │ ├── atuc256l4u_stk600-rcuc3l4/
│ │ │ │ ├── conf_at45dbx.h
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── conf_usart_spi.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ └── gcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── asf.h
│ │ │ │ └── config.mk
│ │ │ ├── atxmega128a1_xmega_a1_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_example.ewd
│ │ │ │ ├── nvm_example.ewp
│ │ │ │ └── nvm_example.eww
│ │ │ ├── atxmega128a1_xplain/
│ │ │ │ ├── conf_at45dbx.h
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_example.ewd
│ │ │ │ ├── nvm_example.ewp
│ │ │ │ └── nvm_example.eww
│ │ │ ├── atxmega128a1u_stk600-rc100x/
│ │ │ │ ├── conf_at45dbx.h
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_example.ewd
│ │ │ │ ├── nvm_example.ewp
│ │ │ │ └── nvm_example.eww
│ │ │ ├── atxmega128b1_xmega_b1_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_example.ewd
│ │ │ │ ├── nvm_example.ewp
│ │ │ │ └── nvm_example.eww
│ │ │ ├── atxmega256a3bu_xmega_a3bu_xplained/
│ │ │ │ ├── conf_at45dbx.h
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── conf_usart_spi.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_example.ewd
│ │ │ │ ├── nvm_example.ewp
│ │ │ │ └── nvm_example.eww
│ │ │ ├── atxmega256a3u_stk600-rc064x/
│ │ │ │ ├── conf_at45dbx.h
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_example.ewd
│ │ │ │ ├── nvm_example.ewp
│ │ │ │ └── nvm_example.eww
│ │ │ ├── atxmega32a4u_stk600-rc044x/
│ │ │ │ ├── conf_at45dbx.h
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_example.ewd
│ │ │ │ ├── nvm_example.ewp
│ │ │ │ └── nvm_example.eww
│ │ │ ├── nvm_example.c
│ │ │ ├── sam3n4c_sam3n_ek/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_example.eww
│ │ │ │ ├── nvm_example_flash.ewd
│ │ │ │ ├── nvm_example_flash.ewp
│ │ │ │ ├── nvm_example_sram.ewd
│ │ │ │ └── nvm_example_sram.ewp
│ │ │ ├── sam3s4c_sam3s_ek/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_example.eww
│ │ │ │ ├── nvm_example_flash.ewd
│ │ │ │ ├── nvm_example_flash.ewp
│ │ │ │ ├── nvm_example_sram.ewd
│ │ │ │ └── nvm_example_sram.ewp
│ │ │ ├── sam3u4e_sam3u_ek/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_example.eww
│ │ │ │ ├── nvm_example_flash.ewd
│ │ │ │ ├── nvm_example_flash.ewp
│ │ │ │ ├── nvm_example_sram.ewd
│ │ │ │ └── nvm_example_sram.ewp
│ │ │ └── sam4s16c_sam4s_ek/
│ │ │ ├── conf_board.h
│ │ │ ├── conf_clock.h
│ │ │ ├── conf_nvm.h
│ │ │ ├── conf_nvm_example.h
│ │ │ ├── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── gcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── asf.h
│ │ │ │ └── config.mk
│ │ │ └── iar/
│ │ │ ├── asf.h
│ │ │ ├── nvm_example.eww
│ │ │ ├── nvm_example_flash.ewd
│ │ │ ├── nvm_example_flash.ewp
│ │ │ ├── nvm_example_sram.ewd
│ │ │ └── nvm_example_sram.ewp
│ │ ├── sam/
│ │ │ ├── module_config/
│ │ │ │ └── conf_nvm.h
│ │ │ └── sam_nvm.c
│ │ ├── uc3/
│ │ │ ├── flash_api.h
│ │ │ ├── module_config/
│ │ │ │ └── conf_nvm.h
│ │ │ └── uc3_nvm.c
│ │ ├── unit_tests/
│ │ │ ├── at32uc3a3256_evk1104/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_usart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_unit_tests.ewd
│ │ │ │ ├── nvm_unit_tests.ewp
│ │ │ │ └── nvm_unit_tests.eww
│ │ │ ├── atxmega256a3bu_xmega_a3bu_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_usart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_unit_tests.ewd
│ │ │ │ ├── nvm_unit_tests.ewp
│ │ │ │ └── nvm_unit_tests.eww
│ │ │ ├── sam4s16c_sam4s_ek/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_uart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_unit_tests.eww
│ │ │ │ ├── nvm_unit_tests_flash.ewd
│ │ │ │ ├── nvm_unit_tests_flash.ewp
│ │ │ │ ├── nvm_unit_tests_sram.ewd
│ │ │ │ └── nvm_unit_tests_sram.ewp
│ │ │ └── unit_tests.c
│ │ └── xmega/
│ │ ├── module_config/
│ │ │ └── conf_nvm.h
│ │ └── xmega_nvm.c
│ ├── services/
│ │ ├── adp/
│ │ │ ├── adp.c
│ │ │ ├── adp.h
│ │ │ ├── adp_interface.h
│ │ │ ├── example/
│ │ │ │ ├── adp_example.c
│ │ │ │ ├── adp_example_adc.h
│ │ │ │ ├── adp_example_tc.h
│ │ │ │ ├── adp_window.c
│ │ │ │ ├── adp_window.h
│ │ │ │ ├── sam/
│ │ │ │ │ ├── adp_example_adc.c
│ │ │ │ │ └── adp_example_tc.c
│ │ │ │ ├── sam0/
│ │ │ │ │ ├── adp_example_adc.c
│ │ │ │ │ └── adp_example_tc.c
│ │ │ │ ├── xplained_pro_sam4s_spi/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_spi_master.h
│ │ │ │ │ ├── conf_tc.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── adp_example.eww
│ │ │ │ │ ├── adp_example_flash.ewd
│ │ │ │ │ ├── adp_example_flash.ewp
│ │ │ │ │ ├── adp_example_sram.ewd
│ │ │ │ │ ├── adp_example_sram.ewp
│ │ │ │ │ └── asf.h
│ │ │ │ ├── xplained_pro_sam4s_twi/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_tc.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── adp_example.eww
│ │ │ │ │ ├── adp_example_flash.ewd
│ │ │ │ │ ├── adp_example_flash.ewp
│ │ │ │ │ ├── adp_example_sram.ewd
│ │ │ │ │ ├── adp_example_sram.ewp
│ │ │ │ │ └── asf.h
│ │ │ │ ├── xplained_pro_samd21_spi/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clocks.h
│ │ │ │ │ ├── conf_spi.h
│ │ │ │ │ ├── conf_tc.h
│ │ │ │ │ └── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ ├── xplained_pro_samd21_twi/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clocks.h
│ │ │ │ │ └── conf_tc.h
│ │ │ │ ├── xplained_pro_saml21_spi/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clocks.h
│ │ │ │ │ ├── conf_spi.h
│ │ │ │ │ ├── conf_tc.h
│ │ │ │ │ └── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── xplained_pro_saml21_twi/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clocks.h
│ │ │ │ ├── conf_tc.h
│ │ │ │ └── gcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── asf.h
│ │ │ │ └── config.mk
│ │ │ ├── sam/
│ │ │ │ ├── adp_interface_spi.c
│ │ │ │ └── adp_interface_twi.c
│ │ │ └── sam0/
│ │ │ ├── adp_interface_spi.c
│ │ │ └── adp_interface_twi.c
│ │ ├── calendar/
│ │ │ ├── calendar.c
│ │ │ ├── calendar.h
│ │ │ ├── doxygen/
│ │ │ │ └── common.services.calendar/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── example1/
│ │ │ │ ├── at32uc3l064_uc3_l0_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── calendar_example1.ewd
│ │ │ │ │ ├── calendar_example1.ewp
│ │ │ │ │ └── calendar_example1.eww
│ │ │ │ ├── atuc128d3_stk600-rcuc3d/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ └── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ ├── atuc256l4u_stk600-rcuc3l4/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ └── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ ├── atxmega128a1_xplain/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── calendar_example1.ewd
│ │ │ │ │ ├── calendar_example1.ewp
│ │ │ │ │ └── calendar_example1.eww
│ │ │ │ └── example1.c
│ │ │ ├── example2/
│ │ │ │ ├── at32uc3l064_uc3_l0_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── calendar_example2.ewd
│ │ │ │ │ ├── calendar_example2.ewp
│ │ │ │ │ └── calendar_example2.eww
│ │ │ │ ├── atuc128d3_stk600-rcuc3d/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ └── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ ├── atuc256l4u_stk600-rcuc3l4/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ └── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ ├── atxmega128a1_xplain/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── calendar_example2.ewd
│ │ │ │ │ ├── calendar_example2.ewp
│ │ │ │ │ └── calendar_example2.eww
│ │ │ │ └── example2.c
│ │ │ └── unit_tests/
│ │ │ ├── at32uc3l064_uc3_l0_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_usart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── calendar_unit_tests.ewd
│ │ │ │ ├── calendar_unit_tests.ewp
│ │ │ │ └── calendar_unit_tests.eww
│ │ │ ├── atuc128d3_stk600-rcuc3d/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_usart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ └── gcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── asf.h
│ │ │ │ └── config.mk
│ │ │ ├── atuc256l4u_stk600-rcuc3l4/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_usart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ └── gcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── asf.h
│ │ │ │ └── config.mk
│ │ │ ├── atxmega128a1_xplain/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_usart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── calendar_unit_tests.ewd
│ │ │ │ ├── calendar_unit_tests.ewp
│ │ │ │ └── calendar_unit_tests.eww
│ │ │ └── unit_tests.c
│ │ ├── clock/
│ │ │ ├── dfll.h
│ │ │ ├── doxygen/
│ │ │ │ ├── common.services.basic.clock_0/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_1/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_10/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_11/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_12/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_13/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_14/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_15/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_16/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_17/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_18/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_19/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_2/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_20/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_21/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_22/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_23/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_24/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_25/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_26/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_27/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_3/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_4/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_5/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_6/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_8/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ └── common.services.basic.clock_9/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── example1/
│ │ │ │ ├── at32uc3a0512_evk1100/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.ewd
│ │ │ │ │ ├── clock_example1.ewp
│ │ │ │ │ └── clock_example1.eww
│ │ │ │ ├── at32uc3a0512_evk1105/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.ewd
│ │ │ │ │ ├── clock_example1.ewp
│ │ │ │ │ └── clock_example1.eww
│ │ │ │ ├── at32uc3a3256_evk1104/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.ewd
│ │ │ │ │ ├── clock_example1.ewp
│ │ │ │ │ └── clock_example1.eww
│ │ │ │ ├── at32uc3a3256_uc3_a3_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.ewd
│ │ │ │ │ ├── clock_example1.ewp
│ │ │ │ │ └── clock_example1.eww
│ │ │ │ ├── at32uc3b0256_evk1101/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.ewd
│ │ │ │ │ ├── clock_example1.ewp
│ │ │ │ │ └── clock_example1.eww
│ │ │ │ ├── at32uc3c0512c_uc3c_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.ewd
│ │ │ │ │ ├── clock_example1.ewp
│ │ │ │ │ └── clock_example1.eww
│ │ │ │ ├── at32uc3l064_stk600-rcuc3l0/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.ewd
│ │ │ │ │ ├── clock_example1.ewp
│ │ │ │ │ └── clock_example1.eww
│ │ │ │ ├── at32uc3l064_uc3_l0_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.ewd
│ │ │ │ │ ├── clock_example1.ewp
│ │ │ │ │ └── clock_example1.eww
│ │ │ │ ├── at32uc3l064_uc3l_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.ewd
│ │ │ │ │ ├── clock_example1.ewp
│ │ │ │ │ └── clock_example1.eww
│ │ │ │ ├── atmega128rfa1_stk600/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.ewd
│ │ │ │ │ ├── clock_example1.ewp
│ │ │ │ │ └── clock_example1.eww
│ │ │ │ ├── atmega256rfr2_atmega256rfr2_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.ewd
│ │ │ │ │ ├── clock_example1.ewp
│ │ │ │ │ └── clock_example1.eww
│ │ │ │ ├── atuc128d3_stk600-rcuc3d/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ └── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ ├── atuc256l4u_stk600-rcuc3l4/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ └── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ ├── atxmega128a1_xplain/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.ewd
│ │ │ │ │ ├── clock_example1.ewp
│ │ │ │ │ └── clock_example1.eww
│ │ │ │ ├── atxmega256a3bu_xmega_a3bu_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.ewd
│ │ │ │ │ ├── clock_example1.ewp
│ │ │ │ │ └── clock_example1.eww
│ │ │ │ ├── clock_example1.c
│ │ │ │ ├── clock_example1_sam.c
│ │ │ │ ├── sam3n4c_sam3n_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam3s4c_sam3s_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam3sd8c_sam3s_ek2/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam3u4e_sam3u_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam3x8e_arduino_due_x/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam3x8h_sam3x_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam4c16c_sam4c_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam4cmp16c_sam4cmp_db/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam4cms16c_sam4cms_db/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam4cp16b_sam4cp16bmb/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam4e16e_sam4e_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam4lc4c_sam4l_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ └── clock_example1_flash.ewp
│ │ │ │ ├── sam4lc4c_sam4l_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ └── clock_example1_flash.ewp
│ │ │ │ ├── sam4lc8c_sam4l8_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ └── clock_example1_flash.ewp
│ │ │ │ ├── sam4n16c_sam4n_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam4s16c_sam4s_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam4s16c_sam4s_wpir_rd/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam4s16c_sam4s_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam4sd32c_atpl230amb/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam4sd32c_sam4s_ek2/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── same70q21_same70_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── samg53n19_samg_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── samg55j19_samg_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ └── samv71q21_samv71_xplained_ultra/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── clock_example1.eww
│ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ └── clock_example1_sram.ewp
│ │ │ ├── example2/
│ │ │ │ ├── at32uc3a0512_evk1100/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.ewd
│ │ │ │ │ ├── clock_example2.ewp
│ │ │ │ │ └── clock_example2.eww
│ │ │ │ ├── at32uc3a0512_evk1105/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.ewd
│ │ │ │ │ ├── clock_example2.ewp
│ │ │ │ │ └── clock_example2.eww
│ │ │ │ ├── at32uc3a3256_evk1104/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.ewd
│ │ │ │ │ ├── clock_example2.ewp
│ │ │ │ │ └── clock_example2.eww
│ │ │ │ ├── at32uc3a3256_uc3_a3_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.ewd
│ │ │ │ │ ├── clock_example2.ewp
│ │ │ │ │ └── clock_example2.eww
│ │ │ │ ├── at32uc3b0256_evk1101/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.ewd
│ │ │ │ │ ├── clock_example2.ewp
│ │ │ │ │ └── clock_example2.eww
│ │ │ │ ├── at32uc3c0512c_uc3c_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.ewd
│ │ │ │ │ ├── clock_example2.ewp
│ │ │ │ │ └── clock_example2.eww
│ │ │ │ ├── at32uc3l064_stk600-rcuc3l0/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.ewd
│ │ │ │ │ ├── clock_example2.ewp
│ │ │ │ │ └── clock_example2.eww
│ │ │ │ ├── at32uc3l064_uc3l_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.ewd
│ │ │ │ │ ├── clock_example2.ewp
│ │ │ │ │ └── clock_example2.eww
│ │ │ │ ├── atuc128d3_stk600-rcuc3d/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ └── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ ├── atuc256l4u_stk600-rcuc3l4/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ └── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ ├── atxmega128a1_xplain/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.ewd
│ │ │ │ │ ├── clock_example2.ewp
│ │ │ │ │ └── clock_example2.eww
│ │ │ │ ├── atxmega128a1u_xmega_a1u_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.ewd
│ │ │ │ │ ├── clock_example2.ewp
│ │ │ │ │ └── clock_example2.eww
│ │ │ │ ├── atxmega256a3bu_xmega_a3bu_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.ewd
│ │ │ │ │ ├── clock_example2.ewp
│ │ │ │ │ └── clock_example2.eww
│ │ │ │ ├── clock_example2_sam.c
│ │ │ │ ├── clock_example2_sam4l.c
│ │ │ │ ├── clock_example2_uc3.c
│ │ │ │ ├── clock_example2_xmega.c
│ │ │ │ ├── sam3n4c_sam3n_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── sam3s4c_sam3s_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── sam3sd8c_sam3s_ek2/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── sam3u4e_sam3u_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── sam3x8e_arduino_due_x/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── sam3x8h_sam3x_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── sam4c16c_sam4c_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── sam4cmp16c_sam4cmp_db/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── sam4cms16c_sam4cms_db/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── sam4e16e_sam4e_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── sam4lc4c_sam4l_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ └── clock_example2_flash.ewp
│ │ │ │ ├── sam4lc4c_sam4l_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ └── clock_example2_flash.ewp
│ │ │ │ ├── sam4lc8c_sam4l8_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ └── clock_example2_flash.ewp
│ │ │ │ ├── sam4n16c_sam4n_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── sam4s16c_sam4s_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── sam4s16c_sam4s_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── sam4sd32c_sam4s_ek2/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── same70q21_same70_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── samg53n19_samg_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── samg55j19_samg_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ └── samv71q21_samv71_xplained_ultra/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_example2.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── clock_example2.eww
│ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ └── clock_example2_sram.ewp
│ │ │ ├── example3/
│ │ │ │ ├── at32uc3a0512_evk1100/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.ewd
│ │ │ │ │ ├── clock_example3.ewp
│ │ │ │ │ └── clock_example3.eww
│ │ │ │ ├── at32uc3a0512_evk1105/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.ewd
│ │ │ │ │ ├── clock_example3.ewp
│ │ │ │ │ └── clock_example3.eww
│ │ │ │ ├── at32uc3a3256_evk1104/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.ewd
│ │ │ │ │ ├── clock_example3.ewp
│ │ │ │ │ └── clock_example3.eww
│ │ │ │ ├── at32uc3a3256_uc3_a3_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.ewd
│ │ │ │ │ ├── clock_example3.ewp
│ │ │ │ │ └── clock_example3.eww
│ │ │ │ ├── at32uc3b0256_evk1101/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.ewd
│ │ │ │ │ ├── clock_example3.ewp
│ │ │ │ │ └── clock_example3.eww
│ │ │ │ ├── at32uc3c0512c_uc3c_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.ewd
│ │ │ │ │ ├── clock_example3.ewp
│ │ │ │ │ └── clock_example3.eww
│ │ │ │ ├── at32uc3l064_stk600-rcuc3l0/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.ewd
│ │ │ │ │ ├── clock_example3.ewp
│ │ │ │ │ └── clock_example3.eww
│ │ │ │ ├── at32uc3l064_uc3_l0_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.ewd
│ │ │ │ │ ├── clock_example3.ewp
│ │ │ │ │ └── clock_example3.eww
│ │ │ │ ├── at32uc3l064_uc3l_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.ewd
│ │ │ │ │ ├── clock_example3.ewp
│ │ │ │ │ └── clock_example3.eww
│ │ │ │ ├── atuc128d3_stk600-rcuc3d/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ └── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ ├── atuc256l4u_stk600-rcuc3l4/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ └── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ ├── atxmega128a1_xplain/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.ewd
│ │ │ │ │ ├── clock_example3.ewp
│ │ │ │ │ └── clock_example3.eww
│ │ │ │ ├── atxmega128a1u_xmega_a1u_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.ewd
│ │ │ │ │ ├── clock_example3.ewp
│ │ │ │ │ └── clock_example3.eww
│ │ │ │ ├── clock_example3_sam.c
│ │ │ │ ├── clock_example3_sam4l.c
│ │ │ │ ├── clock_example3_uc3a3_a4.c
│ │ │ │ ├── clock_example3_uc3a_uc3b.c
│ │ │ │ ├── clock_example3_uc3c.c
│ │ │ │ ├── clock_example3_uc3d.c
│ │ │ │ ├── clock_example3_uc3l.c
│ │ │ │ ├── clock_example3_xmega.c
│ │ │ │ ├── clock_example3_xmega_a1u.c
│ │ │ │ ├── sam3n4c_sam3n_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ ├── sam3s4c_sam3s_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ ├── sam3sd8c_sam3s_ek2/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ ├── sam3u4e_sam3u_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ ├── sam3x8e_arduino_due_x/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ ├── sam3x8h_sam3x_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ ├── sam4c16c_sam4c_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ ├── sam4e16e_sam4e_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ ├── sam4lc4c_sam4l_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ └── clock_example3_flash.ewp
│ │ │ │ ├── sam4lc4c_sam4l_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ └── clock_example3_flash.ewp
│ │ │ │ ├── sam4lc8c_sam4l8_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ └── clock_example3_flash.ewp
│ │ │ │ ├── sam4n16c_sam4n_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ ├── sam4s16c_sam4s_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ ├── sam4s16c_sam4s_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ ├── sam4sd32c_sam4s_ek2/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ ├── same70q21_same70_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ ├── samg53n19_samg_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ ├── samg55j19_samg_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ └── samv71q21_samv71_xplained_ultra/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_example3.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── clock_example3.eww
│ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ └── clock_example3_sram.ewp
│ │ │ ├── genclk.h
│ │ │ ├── mega/
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── osc.h
│ │ │ ├── pll.h
│ │ │ ├── sam3n/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── sam3s/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── sam3u/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── sam3x/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── sam4c/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── sam4cm/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── sam4cp/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── sam4e/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── sam4l/
│ │ │ │ ├── dfll.c
│ │ │ │ ├── dfll.h
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.c
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.c
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── sam4n/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── sam4s/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── same70/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── samg/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── sams70/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── samv70/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── samv71/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── sysclk.h
│ │ │ ├── uc3a0_a1/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── uc3a3_a4/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── uc3b0_b1/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── uc3c/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.c
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.c
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── uc3d/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.c
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.c
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── uc3l/
│ │ │ │ ├── dfll.c
│ │ │ │ ├── dfll.h
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.c
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.c
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── unit_tests/
│ │ │ │ ├── at32uc3a0512_evk1100/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_test.h
│ │ │ │ │ ├── conf_usart_serial.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_unit_tests.ewd
│ │ │ │ │ ├── clock_unit_tests.ewp
│ │ │ │ │ └── clock_unit_tests.eww
│ │ │ │ ├── at32uc3a0512_evk1105/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_test.h
│ │ │ │ │ ├── conf_usart_serial.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_unit_tests.ewd
│ │ │ │ │ ├── clock_unit_tests.ewp
│ │ │ │ │ └── clock_unit_tests.eww
│ │ │ │ ├── at32uc3a3256_evk1104/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_test.h
│ │ │ │ │ ├── conf_usart_serial.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_unit_tests.ewd
│ │ │ │ │ ├── clock_unit_tests.ewp
│ │ │ │ │ └── clock_unit_tests.eww
│ │ │ │ ├── at32uc3b0256_evk1101/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_test.h
│ │ │ │ │ ├── conf_usart_serial.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_unit_tests.ewd
│ │ │ │ │ ├── clock_unit_tests.ewp
│ │ │ │ │ └── clock_unit_tests.eww
│ │ │ │ ├── at32uc3c0512c_uc3c_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_test.h
│ │ │ │ │ ├── conf_usart_serial.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_unit_tests.ewd
│ │ │ │ │ ├── clock_unit_tests.ewp
│ │ │ │ │ └── clock_unit_tests.eww
│ │ │ │ ├── at32uc3l064_uc3l_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_test.h
│ │ │ │ │ ├── conf_usart_serial.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_unit_tests.ewd
│ │ │ │ │ ├── clock_unit_tests.ewp
│ │ │ │ │ └── clock_unit_tests.eww
│ │ │ │ ├── atuc128d3_stk600-rcuc3d/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_test.h
│ │ │ │ │ ├── conf_usart_serial.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ └── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ ├── sam4lc4c_sam4l_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_test.h
│ │ │ │ │ ├── conf_uart_serial.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_unit_tests.eww
│ │ │ │ │ ├── clock_unit_tests_flash.ewd
│ │ │ │ │ └── clock_unit_tests_flash.ewp
│ │ │ │ ├── sam4lc4c_sam4l_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_test.h
│ │ │ │ │ ├── conf_uart_serial.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_unit_tests.eww
│ │ │ │ │ ├── clock_unit_tests_flash.ewd
│ │ │ │ │ └── clock_unit_tests_flash.ewp
│ │ │ │ ├── sam4lc8c_sam4l8_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_test.h
│ │ │ │ │ ├── conf_uart_serial.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_unit_tests.eww
│ │ │ │ │ ├── clock_unit_tests_flash.ewd
│ │ │ │ │ └── clock_unit_tests_flash.ewp
│ │ │ │ └── unit_tests.c
│ │ │ └── xmega/
│ │ │ ├── module_config/
│ │ │ │ └── conf_clock.h
│ │ │ ├── module_config_usb/
│ │ │ │ └── conf_clock.h
│ │ │ ├── osc.h
│ │ │ ├── pll.h
│ │ │ ├── sysclk.c
│ │ │ └── sysclk.h
│ │ ├── cpu/
│ │ │ ├── doxygen/
│ │ │ │ ├── common.services.basic.cpu_0/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.cpu_1/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ └── common.services.basic.cpu_2/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── reset_cause.h
│ │ │ └── reset_cause_example/
│ │ │ ├── at32uc3a0512_evk1100/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── cpu_example.ewd
│ │ │ │ ├── cpu_example.ewp
│ │ │ │ └── cpu_example.eww
│ │ │ ├── at32uc3a3256_evk1104/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── cpu_example.ewd
│ │ │ │ ├── cpu_example.ewp
│ │ │ │ └── cpu_example.eww
│ │ │ ├── at32uc3b0256_evk1101/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── cpu_example.ewd
│ │ │ │ ├── cpu_example.ewp
│ │ │ │ └── cpu_example.eww
│ │ │ ├── at32uc3c0512c_uc3c_ek/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── cpu_example.ewd
│ │ │ │ ├── cpu_example.ewp
│ │ │ │ └── cpu_example.eww
│ │ │ ├── at32uc3l064_uc3l_ek/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── cpu_example.ewd
│ │ │ │ ├── cpu_example.ewp
│ │ │ │ └── cpu_example.eww
│ │ │ ├── atuc128d3_stk600-rcuc3d/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ └── gcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── asf.h
│ │ │ │ └── config.mk
│ │ │ ├── atxmega128a1_stk600-rc100x/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── cpu_example.ewd
│ │ │ │ ├── cpu_example.ewp
│ │ │ │ └── cpu_example.eww
│ │ │ ├── atxmega128a1_xplain/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── cpu_example.ewd
│ │ │ │ ├── cpu_example.ewp
│ │ │ │ └── cpu_example.eww
│ │ │ ├── atxmega32e5_stk600-rc032x/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── cpu_example.ewd
│ │ │ │ ├── cpu_example.ewp
│ │ │ │ └── cpu_example.eww
│ │ │ ├── reset_cause_example.c
│ │ │ ├── reset_cause_example_sam4l.c
│ │ │ ├── sam4lc4c_sam4l_ek/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_uart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── cpu_example.eww
│ │ │ │ ├── cpu_example_flash.ewd
│ │ │ │ └── cpu_example_flash.ewp
│ │ │ ├── sam4lc4c_sam4l_xplained_pro/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_uart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── cpu_example.eww
│ │ │ │ ├── cpu_example_flash.ewd
│ │ │ │ └── cpu_example_flash.ewp
│ │ │ └── sam4lc8c_sam4l8_xplained_pro/
│ │ │ ├── conf_board.h
│ │ │ ├── conf_clock.h
│ │ │ ├── conf_uart_serial.h
│ │ │ ├── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── gcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── asf.h
│ │ │ │ └── config.mk
│ │ │ └── iar/
│ │ │ ├── asf.h
│ │ │ ├── cpu_example.eww
│ │ │ ├── cpu_example_flash.ewd
│ │ │ └── cpu_example_flash.ewp
│ │ ├── crc32/
│ │ │ ├── crc32.c
│ │ │ ├── crc32.h
│ │ │ └── doxygen/
│ │ │ └── common.services.crc32/
│ │ │ ├── doxyfile.doxygen
│ │ │ └── doxygen_module_mainpage.h
│ │ ├── delay/
│ │ │ ├── delay.h
│ │ │ ├── doxygen/
│ │ │ │ ├── common.services.delay_mega/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.delay_sam/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.delay_uc3/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ └── common.services.delay_xmega/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── example/
│ │ │ │ ├── at32uc3l064_uc3_l0_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.ewd
│ │ │ │ │ ├── delay_example.ewp
│ │ │ │ │ └── delay_example.eww
│ │ │ │ ├── atxmega128a1_xmega_a1_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.ewd
│ │ │ │ │ ├── delay_example.ewp
│ │ │ │ │ └── delay_example.eww
│ │ │ │ ├── delay_example.c
│ │ │ │ ├── sam3n4c_sam3n_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── sam3s4c_sam3s_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── sam3sd8c_sam3s_ek2/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── sam3u4e_sam3u_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── sam3x8h_sam3x_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── sam4c16c_sam4c_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── sam4cp16b_sam4cp16bmb/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── sam4e16e_sam4e_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── sam4n16c_sam4n_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── sam4s16c_sam4s_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── sam4s16c_sam4s_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── sam4sd32c_atpl230amb/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── sam4sd32c_sam4s_ek2/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── same70q21_same70_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── samg53n19_samg_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── samg55j19_samg_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ └── samv71q21_samv71_xplained_ultra/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── delay_example.eww
│ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ └── delay_example_sram.ewp
│ │ │ ├── mega/
│ │ │ │ └── cycle_counter.h
│ │ │ ├── sam/
│ │ │ │ ├── cycle_counter.c
│ │ │ │ └── cycle_counter.h
│ │ │ └── xmega/
│ │ │ └── cycle_counter.h
│ │ ├── fifo/
│ │ │ ├── doxygen/
│ │ │ │ └── common.services.basic.fifo/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── fifo.c
│ │ │ ├── fifo.h
│ │ │ └── unit_tests/
│ │ │ ├── at32uc3a0512_evk1100/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_usart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ └── gcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── asf.h
│ │ │ │ └── config.mk
│ │ │ ├── at32uc3a0512_evk1105/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_usart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ └── gcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── asf.h
│ │ │ │ └── config.mk
│ │ │ ├── atuc128d3_stk600-rcuc3d/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_usart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ └── gcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── asf.h
│ │ │ │ └── config.mk
│ │ │ ├── atxmega128a1_xplain/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_usart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── fifo_unit_tests.ewd
│ │ │ │ ├── fifo_unit_tests.ewp
│ │ │ │ └── fifo_unit_tests.eww
│ │ │ ├── sam4lc4c_sam4l_ek/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_uart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── fifo_unit_tests.eww
│ │ │ │ ├── fifo_unit_tests_flash.ewd
│ │ │ │ └── fifo_unit_tests_flash.ewp
│ │ │ ├── sam4lc4c_sam4l_xplained_pro/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_uart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── fifo_unit_tests.eww
│ │ │ │ ├── fifo_unit_tests_flash.ewd
│ │ │ │ └── fifo_unit_tests_flash.ewp
│ │ │ ├── sam4lc8c_sam4l8_xplained_pro/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_uart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── fifo_unit_tests.eww
│ │ │ │ ├── fifo_unit_tests_flash.ewd
│ │ │ │ └── fifo_unit_tests_flash.ewp
│ │ │ └── unit_tests.c
│ │ ├── freertos/
│ │ │ ├── dbg_print/
│ │ │ │ ├── dbg_print.c
│ │ │ │ ├── dbg_print.h
│ │ │ │ ├── module-config/
│ │ │ │ │ └── conf_dbg_print.h
│ │ │ │ └── quick_start_basic/
│ │ │ │ ├── conf_dbg_print.h
│ │ │ │ ├── qs_dbg_print_basic.c
│ │ │ │ ├── qs_dbg_print_basic.h
│ │ │ │ └── samd20_xplained_pro/
│ │ │ │ ├── FreeRTOSConfig.h
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clocks.h
│ │ │ │ └── gcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── asf.h
│ │ │ │ └── config.mk
│ │ │ └── sam/
│ │ │ ├── doxygen/
│ │ │ │ ├── common.services.layer.freertos.pdc_0/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.layer.freertos.spi_0/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.layer.freertos.twi_0/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.layer.freertos.twihs_0/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.layer.freertos.uart_0/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ └── common.services.layer.freertos.usart_0/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── freertos_peripheral_control.c
│ │ │ ├── freertos_peripheral_control.h
│ │ │ ├── freertos_peripheral_control_private.h
│ │ │ ├── freertos_spi_master.c
│ │ │ ├── freertos_spi_master.h
│ │ │ ├── freertos_twi_master.c
│ │ │ ├── freertos_twi_master.h
│ │ │ ├── freertos_twihs_master.c
│ │ │ ├── freertos_twihs_master.h
│ │ │ ├── freertos_uart_serial.c
│ │ │ ├── freertos_uart_serial.h
│ │ │ ├── freertos_usart_serial.c
│ │ │ ├── freertos_usart_serial.h
│ │ │ └── unit_tests/
│ │ │ ├── freertos_spi_master/
│ │ │ │ ├── FreeRTOSConfig.h
│ │ │ │ ├── sam3n4c_sam3n_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example.h
│ │ │ │ │ ├── conf_spi_master.h
│ │ │ │ │ ├── conf_test.h
│ │ │ │ │ ├── conf_uart_serial.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── freertos_sam_spi_unit_tests.eww
│ │ │ │ │ ├── freertos_sam_spi_unit_tests_flash.ewd
│ │ │ │ │ └── freertos_sam_spi_unit_tests_flash.ewp
│ │ │ │ ├── sam4c16c_sam4c_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example.h
│ │ │ │ │ ├── conf_spi_master.h
│ │ │ │ │ ├── conf_test.h
│ │ │ │ │ ├── conf_uart_serial.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── freertos_sam_spi_unit_tests.eww
│ │ │ │ │ ├── freertos_sam_spi_unit_tests_flash.ewd
│ │ │ │ │ ├── freertos_sam_spi_unit_tests_flash.ewp
│ │ │ │ │ ├── freertos_sam_spi_unit_tests_sram.ewd
│ │ │ │ │ └── freertos_sam_spi_unit_tests_sram.ewp
│ │ │ │ └── spi_unit_tests.c
│ │ │ ├── freertos_twi_master/
│ │ │ │ ├── FreeRTOSConfig.h
│ │ │ │ ├── sam3x8h_sam3x_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example.h
│ │ │ │ │ ├── conf_test.h
│ │ │ │ │ ├── conf_uart_serial.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── freertos_sam_twi_unit_tests.eww
│ │ │ │ │ ├── freertos_sam_twi_unit_tests_flash.ewd
│ │ │ │ │ ├── freertos_sam_twi_unit_tests_flash.ewp
│ │ │ │ │ ├── freertos_sam_twi_unit_tests_sram.ewd
│ │ │ │ │ └── freertos_sam_twi_unit_tests_sram.ewp
│ │ │ │ ├── sam4c16c_sam4c_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example.h
│ │ │ │ │ ├── conf_test.h
│ │ │ │ │ ├── conf_uart_serial.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── freertos_sam_twi_unit_tests.eww
│ │ │ │ │ ├── freertos_sam_twi_unit_tests_flash.ewd
│ │ │ │ │ ├── freertos_sam_twi_unit_tests_flash.ewp
│ │ │ │ │ ├── freertos_sam_twi_unit_tests_sram.ewd
│ │ │ │ │ └── freertos_sam_twi_unit_tests_sram.ewp
│ │ │ │ └── twi_unit_tests.c
│ │ │ └── freertos_usart_master/
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── sam3n4c_sam3n_ek/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_example.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_uart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── freertos_sam_usart_unit_tests.eww
│ │ │ │ ├── freertos_sam_usart_unit_tests_flash.ewd
│ │ │ │ └── freertos_sam_usart_unit_tests_flash.ewp
│ │ │ ├── sam3s4c_sam3s_ek/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_example.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_uart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── freertos_sam_usart_unit_tests.eww
│ │ │ │ ├── freertos_sam_usart_unit_tests_flash.ewd
│ │ │ │ └── freertos_sam_usart_unit_tests_flash.ewp
│ │ │ ├── sam3sd8c_sam3s_ek2/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_example.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_uart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── freertos_sam_usart_unit_tests.eww
│ │ │ │ ├── freertos_sam_usart_unit_tests_flash.ewd
│ │ │ │ ├── freertos_sam_usart_unit_tests_flash.ewp
│ │ │ │ ├── freertos_sam_usart_unit_tests_sram.ewd
│ │ │ │ └── freertos_sam_usart_unit_tests_sram.ewp
│ │ │ ├── sam3u4e_sam3u_ek/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_example.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_uart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── freertos_sam_usart_unit_tests.eww
│ │ │ │ ├── freertos_sam_usart_unit_tests_flash.ewd
│ │ │ │ └── freertos_sam_usart_unit_tests_flash.ewp
│ │ │ ├── sam3x8e_arduino_due_x/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
cscope.out
build
================================================
FILE: Makefile
================================================
PROJECTS := \
rust \
bootload-reloc \
reloc \
bootload \
with-libc \
minimal \
default
OCD := openocd
RM := rm
BUILD_DIR := $(CURDIR)/build
OPENOCD_CFG := openocd.cfg
$(PROJECTS):
$(MAKE) -C $@ BUILD_DIR=$(BUILD_DIR)/$@
FLASH_TARGETS = $(patsubst %,flash-%,$(PROJECTS))
$(FLASH_TARGETS): $(OPENOCD_CFG)
$(eval PROJ := $(subst flash-,,$@))
$(OCD) -d2 -f $< -c "program {{build/$(PROJ)/$(PROJ).bin}} verify reset; shutdown"
unlock: $(OPENOCD_CFG)
$(OCD) -d2 -f $< -c "init; halt; at91samd bootloader 0; reset; shutdown"
all: $(PROJECTS)
clean:
$(RM) -r build 2>/dev/null || true
.PHONY: clean all unlock $(PROJECTS) $(FLASH_TARGETS)
================================================
FILE: README.md
================================================
# Bootstrapping C (and rust) applications on Cortex-M MCUs
Quick explorations of different ways to bootstrap a GNU C (or rust) application on a cortex-M
based MCU.
While the concepts apply broadly, these examples run on an Arduino M0 Pro (they
should work fine on an Arduino Zero as well).
I chose the M0 Pro because:
1. It was available at my local electronics shop
2. It comes with an integrated SWD debugger (Atmel EDBG)
3. It sports a cortex-M mcu (cortex-M0+)
4. It is reasonably cheap ($40)
An STM32-based Nucleo or an mbed board would do just as well.
In my experience, many of the techniques highlighted here are often glossed
over, poorly documented, and rarely understood. Most people rely on startup
files and linker scripts bundled with their vendor's BSP that they tweak
haphazardly as their needs evolve.
The following scenarios are currently covered:
* `default`: simple LED blink using the default startup file & linker script
from the BSP
* `minimal`: a bare minimum LED blink app with a pared down script, startup,
and no libc
* `with-libc`: builds on `minimal` to add newlib support, including printf
* `reloc`: builds on `with-libc` to add functions relocated to RAM as well as
ROM
* `bootload`: splits the code into two applications, a bootloader and an
application. The bootloader simply starts the applications
* `bootload-reloc`: builds on `bootload` but runs the applications entirely in
RAM. The bootloader thus needs to copy it over first.
* `rust`: barebones rust app
More to come, and blog posts will follow.
### Dependencies
* A unix-like environment
* A version of openOCD that works with your board (in my case I used the
[Arduino fork](https://github.com/arduino/OpenOCD)).
* GNU Make
* [GNU ARM embedded toolchain](https://developer.arm.com/open-source/gnu-toolchain/gnu-rm)
### Building
`make` builds all apps, the resulting elfs and bins are in their respective folders under
`build`
`make <app-name>` builds a specific app. E.g. `make bootload-reloc`
### Flashing
`make flash-<app-name>` flashes a specific app (it needs to have been built
first)
### Credits
* https://github.com/cbiffle/minimal-embedded-rust/ - A minimal embedded rust
app on cortex-M MCU by @cbiffle
================================================
FILE: bootload/Makefile
================================================
PROJECT := bootload
BUILD_DIR ?= build
INCLUDES = \
$(ASF_PATH)/sam0/drivers/sercom \
$(ASF_PATH)/sam0/drivers/sercom/usart \
$(ASF_PATH)/common/services/serial \
$(ASF_PATH)/common/services/serial/sam0_usart
SRCS = \
$(ASF_PATH)/sam0/drivers/sercom/usart/usart.c \
$(ASF_PATH)/sam0/drivers/sercom/sercom.c \
startup_samd21.c
SRCS_BOOT = $(PROJECT)-boot.c
SRCS_APP = $(PROJECT)-app.c
include ../common-bootloaded.mk
================================================
FILE: bootload/app.ld
================================================
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
INCLUDE memory_map.ld
STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0x2000;
/* Section Definitions */
SECTIONS
{
.text :
{
. = ALIGN(4);
_stext = .;
KEEP(*(.vectors .vectors.*))
*(.text .text.*)
*(.rodata .rodata*)
. = ALIGN(4);
} > approm
/* .ARM.exidx is sorted, so has to go in its own output section. */
PROVIDE_HIDDEN (__exidx_start = .);
.ARM.exidx :
{
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
} > approm
PROVIDE_HIDDEN (__exidx_end = .);
. = ALIGN(4);
_etext = .;
/* .bss section which is used for uninitialized data */
.bss (NOLOAD) :
{
. = ALIGN(4);
_sbss = . ;
*(.bss .bss.*)
*(COMMON)
. = ALIGN(4);
_ebss = . ;
} > ram
.data : AT (_etext)
{
. = ALIGN(4);
_sdata = .;
*(.data .data.*);
. = ALIGN(4);
_edata = .;
} > ram
/* stack section */
.stack (NOLOAD):
{
. = ALIGN(8);
_sstack = .;
. = . + STACK_SIZE;
. = ALIGN(8);
_estack = .;
} > ram
. = ALIGN(4);
_end = . ;
}
================================================
FILE: bootload/boot.ld
================================================
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
INCLUDE memory_map.ld
STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0x2000;
/* Section Definitions */
SECTIONS
{
.text :
{
. = ALIGN(4);
_stext = .;
KEEP(*(.vectors .vectors.*))
*(.text .text.*)
*(.rodata .rodata*)
. = ALIGN(4);
} > bootrom
/* .ARM.exidx is sorted, so has to go in its own output section. */
PROVIDE_HIDDEN (__exidx_start = .);
.ARM.exidx :
{
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
} > bootrom
PROVIDE_HIDDEN (__exidx_end = .);
. = ALIGN(4);
_etext = .;
/* .bss section which is used for uninitialized data */
.bss (NOLOAD) :
{
. = ALIGN(4);
_sbss = . ;
*(.bss .bss.*)
*(COMMON)
. = ALIGN(4);
_ebss = . ;
} > ram
.data : AT (_etext)
{
. = ALIGN(4);
_sdata = .;
*(.data .data.*);
. = ALIGN(4);
_edata = .;
} > ram
/* stack section */
.stack (NOLOAD):
{
. = ALIGN(8);
_sstack = .;
. = . + STACK_SIZE;
. = ALIGN(8);
_estack = .;
} > ram
. = ALIGN(4);
_end = . ;
}
================================================
FILE: bootload/bootload-app.c
================================================
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <samd21g18a.h>
#include <port.h>
#include <usart_serial.h>
static struct usart_module stdio_uart_module;
// LIBC SYSCALLS
/////////////////////
extern int _end;
caddr_t _sbrk(int incr) {
static unsigned char *heap = NULL;
unsigned char *prev_heap;
if (heap == NULL) {
heap = (unsigned char *)&_end;
}
prev_heap = heap;
heap += incr;
return (caddr_t) prev_heap;
}
int _close(int file) {
return -1;
}
int _fstat(int file, struct stat *st) {
st->st_mode = S_IFCHR;
return 0;
}
int _isatty(int file) {
return 1;
}
int _lseek(int file, int ptr, int dir) {
return 0;
}
void _exit(int status) {
__asm("BKPT #0");
}
void _kill(int pid, int sig) {
return;
}
int _getpid(void) {
return -1;
}
int _write (int file, char * ptr, int len) {
int written = 0;
if ((file != 1) && (file != 2) && (file != 3)) {
return -1;
}
for (; len != 0; --len) {
if (usart_serial_putchar(&stdio_uart_module, (uint8_t)*ptr++)) {
return -1;
}
++written;
}
return written;
}
int _read (int file, char * ptr, int len) {
int read = 0;
if (file != 0) {
return -1;
}
for (; len > 0; --len) {
usart_serial_getchar(&stdio_uart_module, (uint8_t *)ptr++);
read++;
}
return read;
}
// APP
////////////////////
#define LED_0_PIN PIN_PA17
static void serial_init(void) {
struct usart_config usart_conf;
usart_get_config_defaults(&usart_conf);
usart_conf.mux_setting = USART_RX_3_TX_2_XCK_3;
usart_conf.pinmux_pad0 = PINMUX_UNUSED;
usart_conf.pinmux_pad1 = PINMUX_UNUSED;
usart_conf.pinmux_pad2 = PINMUX_PB22D_SERCOM5_PAD2;
usart_conf.pinmux_pad3 = PINMUX_PB23D_SERCOM5_PAD3;
usart_serial_init(&stdio_uart_module, SERCOM5, &usart_conf);
usart_enable(&stdio_uart_module);
}
static void set_output(const uint8_t pin) {
struct port_config config_port_pin;
port_get_config_defaults(&config_port_pin);
config_port_pin.direction = PORT_PIN_DIR_OUTPUT;
port_pin_set_config(pin, &config_port_pin);
port_pin_set_output_level(pin, false);
}
int main() {
serial_init();
set_output(LED_0_PIN);
printf("App!\n");
while (true) {
port_pin_toggle_output_level(LED_0_PIN);
for (int i = 0; i < 100000; ++i) {}
}
}
================================================
FILE: bootload/bootload-boot.c
================================================
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <samd21g18a.h>
#include <port.h>
#include <usart_serial.h>
#include "memory_map.h"
static struct usart_module stdio_uart_module;
// LIBC SYSCALLS
/////////////////////
extern int _end;
caddr_t _sbrk(int incr) {
static unsigned char *heap = NULL;
unsigned char *prev_heap;
if (heap == NULL) {
heap = (unsigned char *)&_end;
}
prev_heap = heap;
heap += incr;
return (caddr_t) prev_heap;
}
int _close(int file) {
return -1;
}
int _fstat(int file, struct stat *st) {
st->st_mode = S_IFCHR;
return 0;
}
int _isatty(int file) {
return 1;
}
int _lseek(int file, int ptr, int dir) {
return 0;
}
void _exit(int status) {
__asm("BKPT #0");
}
void _kill(int pid, int sig) {
return;
}
int _getpid(void) {
return -1;
}
int _write (int file, char * ptr, int len) {
int written = 0;
if ((file != 1) && (file != 2) && (file != 3)) {
return -1;
}
for (; len != 0; --len) {
if (usart_serial_putchar(&stdio_uart_module, (uint8_t)*ptr++)) {
return -1;
}
++written;
}
return written;
}
int _read (int file, char * ptr, int len) {
int read = 0;
if (file != 0) {
return -1;
}
for (; len > 0; --len) {
usart_serial_getchar(&stdio_uart_module, (uint8_t *)ptr++);
read++;
}
return read;
}
// APP
////////////////////
static void start_app(void *pc, void *sp) {
__asm(" \n\
msr msp, r1 \n\
bx r0 \n\
");
}
static void serial_init(void) {
struct usart_config usart_conf;
usart_get_config_defaults(&usart_conf);
usart_conf.mux_setting = USART_RX_3_TX_2_XCK_3;
usart_conf.pinmux_pad0 = PINMUX_UNUSED;
usart_conf.pinmux_pad1 = PINMUX_UNUSED;
usart_conf.pinmux_pad2 = PINMUX_PB22D_SERCOM5_PAD2;
usart_conf.pinmux_pad3 = PINMUX_PB23D_SERCOM5_PAD3;
usart_serial_init(&stdio_uart_module, SERCOM5, &usart_conf);
usart_enable(&stdio_uart_module);
}
static void serial_deinit(void) {
usart_disable(&stdio_uart_module);
}
int main() {
serial_init();
printf("Bootloader!\n");
serial_deinit();
DeviceVectors *app_vectors = (DeviceVectors *) &__approm_start__;
start_app(app_vectors->pfnReset_Handler, app_vectors->pvStack);
// should never be reached
while (1);
}
================================================
FILE: bootload/memory_map.h
================================================
#pragma once
extern int __bootrom_start__;
extern int __bootrom_size__;
extern int __approm_start__;
extern int __approm_size__;
================================================
FILE: bootload/memory_map.ld
================================================
MEMORY
{
bootrom (rx) : ORIGIN = 0x00000000, LENGTH = 0x00004000
approm (rx) : ORIGIN = 0x00004000, LENGTH = 0x0003C000
ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00008000
}
__bootrom_start__ = ORIGIN(bootrom);
__bootrom_size__ = LENGTH(bootrom);
__approm_start__ = ORIGIN(approm);
__approm_size__ = LENGTH(approm);
================================================
FILE: bootload/startup_samd21.c
================================================
#include "samd21.h"
/* Initialize segments */
extern uint32_t _stext;
extern uint32_t _etext;
extern uint32_t _sbss;
extern uint32_t _ebss;
extern uint32_t _sdata;
extern uint32_t _edata;
extern uint32_t _sstack;
extern uint32_t _estack;
/** \cond DOXYGEN_SHOULD_SKIP_THIS */
int main(void);
/** \endcond */
/* Default empty handler */
void Dummy_Handler(void);
/* Cortex-M0+ core handlers */
void NMI_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void HardFault_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void SVC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void PendSV_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void SysTick_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
/* Peripherals handlers */
void PM_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void SYSCTRL_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void WDT_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void RTC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void EIC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void NVMCTRL_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void DMAC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#ifdef ID_USB
void USB_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
void EVSYS_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void SERCOM0_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void SERCOM1_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void SERCOM2_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void SERCOM3_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#ifdef ID_SERCOM4
void SERCOM4_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
#ifdef ID_SERCOM5
void SERCOM5_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
void TCC0_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void TCC1_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void TCC2_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void TC3_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void TC4_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void TC5_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#ifdef ID_TC6
void TC6_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
#ifdef ID_TC7
void TC7_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
#ifdef ID_ADC
void ADC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
#ifdef ID_AC
void AC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
#ifdef ID_DAC
void DAC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
#ifdef ID_PTC
void PTC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
#ifdef ID_I2S
void I2S_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
#ifdef ID_AC1
void AC1_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
/* Exception Table */
__attribute__ ((section(".vectors")))
const DeviceVectors exception_table = {
/* Configure Initial Stack Pointer, using linker-generated symbols */
.pvStack = (void*) (&_estack),
.pfnReset_Handler = (void*) Reset_Handler,
.pfnNMI_Handler = (void*) NMI_Handler,
.pfnHardFault_Handler = (void*) HardFault_Handler,
.pvReservedM12 = (void*) (0UL), /* Reserved */
.pvReservedM11 = (void*) (0UL), /* Reserved */
.pvReservedM10 = (void*) (0UL), /* Reserved */
.pvReservedM9 = (void*) (0UL), /* Reserved */
.pvReservedM8 = (void*) (0UL), /* Reserved */
.pvReservedM7 = (void*) (0UL), /* Reserved */
.pvReservedM6 = (void*) (0UL), /* Reserved */
.pfnSVC_Handler = (void*) SVC_Handler,
.pvReservedM4 = (void*) (0UL), /* Reserved */
.pvReservedM3 = (void*) (0UL), /* Reserved */
.pfnPendSV_Handler = (void*) PendSV_Handler,
.pfnSysTick_Handler = (void*) SysTick_Handler,
/* Configurable interrupts */
.pfnPM_Handler = (void*) PM_Handler, /* 0 Power Manager */
.pfnSYSCTRL_Handler = (void*) SYSCTRL_Handler, /* 1 System Control */
.pfnWDT_Handler = (void*) WDT_Handler, /* 2 Watchdog Timer */
.pfnRTC_Handler = (void*) RTC_Handler, /* 3 Real-Time Counter */
.pfnEIC_Handler = (void*) EIC_Handler, /* 4 External Interrupt Controller */
.pfnNVMCTRL_Handler = (void*) NVMCTRL_Handler, /* 5 Non-Volatile Memory Controller */
.pfnDMAC_Handler = (void*) DMAC_Handler, /* 6 Direct Memory Access Controller */
#ifdef ID_USB
.pfnUSB_Handler = (void*) USB_Handler, /* 7 Universal Serial Bus */
#else
.pvReserved7 = (void*) (0UL), /* 7 Reserved */
#endif
.pfnEVSYS_Handler = (void*) EVSYS_Handler, /* 8 Event System Interface */
.pfnSERCOM0_Handler = (void*) SERCOM0_Handler, /* 9 Serial Communication Interface 0 */
.pfnSERCOM1_Handler = (void*) SERCOM1_Handler, /* 10 Serial Communication Interface 1 */
.pfnSERCOM2_Handler = (void*) SERCOM2_Handler, /* 11 Serial Communication Interface 2 */
.pfnSERCOM3_Handler = (void*) SERCOM3_Handler, /* 12 Serial Communication Interface 3 */
#ifdef ID_SERCOM4
.pfnSERCOM4_Handler = (void*) SERCOM4_Handler, /* 13 Serial Communication Interface 4 */
#else
.pvReserved13 = (void*) (0UL), /* 13 Reserved */
#endif
#ifdef ID_SERCOM5
.pfnSERCOM5_Handler = (void*) SERCOM5_Handler, /* 14 Serial Communication Interface 5 */
#else
.pvReserved14 = (void*) (0UL), /* 14 Reserved */
#endif
.pfnTCC0_Handler = (void*) TCC0_Handler, /* 15 Timer Counter Control 0 */
.pfnTCC1_Handler = (void*) TCC1_Handler, /* 16 Timer Counter Control 1 */
.pfnTCC2_Handler = (void*) TCC2_Handler, /* 17 Timer Counter Control 2 */
.pfnTC3_Handler = (void*) TC3_Handler, /* 18 Basic Timer Counter 0 */
.pfnTC4_Handler = (void*) TC4_Handler, /* 19 Basic Timer Counter 1 */
.pfnTC5_Handler = (void*) TC5_Handler, /* 20 Basic Timer Counter 2 */
#ifdef ID_TC6
.pfnTC6_Handler = (void*) TC6_Handler, /* 21 Basic Timer Counter 3 */
#else
.pvReserved21 = (void*) (0UL), /* 21 Reserved */
#endif
#ifdef ID_TC7
.pfnTC7_Handler = (void*) TC7_Handler, /* 22 Basic Timer Counter 4 */
#else
.pvReserved22 = (void*) (0UL), /* 22 Reserved */
#endif
#ifdef ID_ADC
.pfnADC_Handler = (void*) ADC_Handler, /* 23 Analog Digital Converter */
#else
.pvReserved23 = (void*) (0UL), /* 23 Reserved */
#endif
#ifdef ID_AC
.pfnAC_Handler = (void*) AC_Handler, /* 24 Analog Comparators 0 */
#else
.pvReserved24 = (void*) (0UL), /* 24 Reserved */
#endif
#ifdef ID_DAC
.pfnDAC_Handler = (void*) DAC_Handler, /* 25 Digital Analog Converter */
#else
.pvReserved25 = (void*) (0UL), /* 25 Reserved */
#endif
#ifdef ID_PTC
.pfnPTC_Handler = (void*) PTC_Handler, /* 26 Peripheral Touch Controller */
#else
.pvReserved26 = (void*) (0UL), /* 26 Reserved */
#endif
#ifdef ID_I2S
.pfnI2S_Handler = (void*) I2S_Handler, /* 27 Inter-IC Sound Interface */
#else
.pvReserved27 = (void*) (0UL), /* 27 Reserved */
#endif
#ifdef ID_AC1
.pfnAC1_Handler = (void*) AC1_Handler /* 28 Analog Comparators 1 */
#else
.pvReserved28 = (void*) (0UL) /* 28 Reserved */
#endif
};
/**
* \brief This is the code that gets called on processor reset.
* To initialize the device, and call the main() routine.
*/
void Reset_Handler(void)
{
/* Initialize the data segment */
uint32_t *pSrc = &_etext;
uint32_t *pDest = &_sdata;
if (pSrc != pDest) {
for (; pDest < &_edata;) {
*pDest++ = *pSrc++;
}
}
/* Clear the zero segment */
for (pDest = &_sbss; pDest < &_ebss;) {
*pDest++ = 0;
}
/* Set the vector table base address */
pSrc = (uint32_t *) & _stext;
SCB->VTOR = ((uint32_t) pSrc & SCB_VTOR_TBLOFF_Msk);
/* Change default QOS values to have the best performance */
SBMATRIX->SFR[SBMATRIX_SLAVE_HMCRAMC0].reg = 2;
DMAC->QOSCTRL.bit.DQOS = 2;
DMAC->QOSCTRL.bit.FQOS = 2;
DMAC->QOSCTRL.bit.WRBQOS = 2;
/* Overwriting the default value of the NVMCTRL.CTRLB.MANW bit (errata reference 13134) */
NVMCTRL->CTRLB.bit.MANW = 1;
/* Init libc */
//__libc_init_array();
/* Branch to main function */
main();
/* Infinite loop */
while (1);
}
/**
* \brief Default interrupt handler for unused IRQs.
*/
void Dummy_Handler(void)
{
while (1) {
}
}
================================================
FILE: bootload-reloc/Makefile
================================================
PROJECT := bootload-reloc
BUILD_DIR ?= build
INCLUDES = \
$(ASF_PATH)/sam0/drivers/sercom \
$(ASF_PATH)/sam0/drivers/sercom/usart \
$(ASF_PATH)/common/services/serial \
$(ASF_PATH)/common/services/serial/sam0_usart
SRCS = \
$(ASF_PATH)/sam0/drivers/sercom/usart/usart.c \
$(ASF_PATH)/sam0/drivers/sercom/sercom.c \
startup_samd21.c
SRCS_BOOT = $(PROJECT)-boot.c
SRCS_APP = $(PROJECT)-app.c
include ../common-bootloaded.mk
================================================
FILE: bootload-reloc/app.ld
================================================
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
INCLUDE memory_map.ld
STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0x1000;
/* Section Definitions */
SECTIONS
{
.text :
{
. = ALIGN(4);
_stext = .;
KEEP(*(.vectors .vectors.*))
*(.text .text.*)
*(.rodata .rodata*)
. = ALIGN(4);
} > eram AT > approm
/* .ARM.exidx is sorted, so has to go in its own output section. */
.ARM.exidx : AT (ORIGIN(approm) + SIZEOF(.text))
{
PROVIDE_HIDDEN (__exidx_start = .);
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
. = ALIGN(4);
PROVIDE_HIDDEN (__exidx_end = .);
} > eram
_etext = ORIGIN(approm) + SIZEOF(.text) + SIZEOF(.ARM.exidx);
/* .bss section which is used for uninitialized data */
.bss (NOLOAD) :
{
. = ALIGN(4);
_sbss = . ;
*(.bss .bss.*)
*(COMMON)
. = ALIGN(4);
_ebss = . ;
} > ram
.data : AT (_etext)
{
. = ALIGN(4);
_sdata = .;
*(.data .data.*);
. = ALIGN(4);
_edata = .;
} > ram
/* stack section */
.stack (NOLOAD):
{
. = ALIGN(8);
_sstack = .;
. = . + STACK_SIZE;
. = ALIGN(8);
_estack = .;
} > ram
. = ALIGN(4);
_end = . ;
}
================================================
FILE: bootload-reloc/boot.ld
================================================
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
INCLUDE memory_map.ld
STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0x2000;
/* Section Definitions */
SECTIONS
{
.text :
{
. = ALIGN(4);
_stext = .;
KEEP(*(.vectors .vectors.*))
*(.text .text.*)
*(.rodata .rodata*)
. = ALIGN(4);
} > bootrom
/* .ARM.exidx is sorted, so has to go in its own output section. */
PROVIDE_HIDDEN (__exidx_start = .);
.ARM.exidx :
{
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
} > bootrom
PROVIDE_HIDDEN (__exidx_end = .);
. = ALIGN(4);
_etext = .;
/* .bss section which is used for uninitialized data */
.bss (NOLOAD) :
{
. = ALIGN(4);
_sbss = . ;
*(.bss .bss.*)
*(COMMON)
. = ALIGN(4);
_ebss = . ;
} > ram
.data : AT (_etext)
{
. = ALIGN(4);
_sdata = .;
*(.data .data.*);
. = ALIGN(4);
_edata = .;
} > ram
/* stack section */
.stack (NOLOAD):
{
. = ALIGN(8);
_sstack = .;
. = . + STACK_SIZE;
. = ALIGN(8);
_estack = .;
} > ram
. = ALIGN(4);
_end = . ;
}
================================================
FILE: bootload-reloc/bootload-reloc-app.c
================================================
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <samd21g18a.h>
#include <port.h>
#include <usart_serial.h>
static struct usart_module stdio_uart_module;
// LIBC SYSCALLS
/////////////////////
extern int _end;
caddr_t _sbrk(int incr) {
static unsigned char *heap = NULL;
unsigned char *prev_heap;
if (heap == NULL) {
heap = (unsigned char *)&_end;
}
prev_heap = heap;
heap += incr;
return (caddr_t) prev_heap;
}
int _close(int file) {
return -1;
}
int _fstat(int file, struct stat *st) {
st->st_mode = S_IFCHR;
return 0;
}
int _isatty(int file) {
return 1;
}
int _lseek(int file, int ptr, int dir) {
return 0;
}
void _exit(int status) {
__asm("BKPT #0");
}
void _kill(int pid, int sig) {
return;
}
int _getpid(void) {
return -1;
}
int _write (int file, char * ptr, int len) {
int written = 0;
if ((file != 1) && (file != 2) && (file != 3)) {
return -1;
}
for (; len != 0; --len) {
if (usart_serial_putchar(&stdio_uart_module, (uint8_t)*ptr++)) {
return -1;
}
++written;
}
return written;
}
int _read (int file, char * ptr, int len) {
int read = 0;
if (file != 0) {
return -1;
}
for (; len > 0; --len) {
usart_serial_getchar(&stdio_uart_module, (uint8_t *)ptr++);
read++;
}
return read;
}
// APP
////////////////////
#define LED_0_PIN PIN_PA17
static void serial_init(void) {
struct usart_config usart_conf;
usart_get_config_defaults(&usart_conf);
usart_conf.mux_setting = USART_RX_3_TX_2_XCK_3;
usart_conf.pinmux_pad0 = PINMUX_UNUSED;
usart_conf.pinmux_pad1 = PINMUX_UNUSED;
usart_conf.pinmux_pad2 = PINMUX_PB22D_SERCOM5_PAD2;
usart_conf.pinmux_pad3 = PINMUX_PB23D_SERCOM5_PAD3;
usart_serial_init(&stdio_uart_module, SERCOM5, &usart_conf);
usart_enable(&stdio_uart_module);
}
static void set_output(const uint8_t pin) {
struct port_config config_port_pin;
port_get_config_defaults(&config_port_pin);
config_port_pin.direction = PORT_PIN_DIR_OUTPUT;
port_pin_set_config(pin, &config_port_pin);
port_pin_set_output_level(pin, false);
}
int main() {
serial_init();
set_output(LED_0_PIN);
printf("App!\n");
while (true) {
port_pin_toggle_output_level(LED_0_PIN);
for (int i = 0; i < 100000; ++i) {}
}
}
================================================
FILE: bootload-reloc/bootload-reloc-boot.c
================================================
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <samd21g18a.h>
#include <port.h>
#include <usart_serial.h>
#include "memory_map.h"
static struct usart_module stdio_uart_module;
// LIBC SYSCALLS
/////////////////////
extern int _end;
caddr_t _sbrk(int incr) {
static unsigned char *heap = NULL;
unsigned char *prev_heap;
if (heap == NULL) {
heap = (unsigned char *)&_end;
}
prev_heap = heap;
heap += incr;
return (caddr_t) prev_heap;
}
int _close(int file) {
return -1;
}
int _fstat(int file, struct stat *st) {
st->st_mode = S_IFCHR;
return 0;
}
int _isatty(int file) {
return 1;
}
int _lseek(int file, int ptr, int dir) {
return 0;
}
void _exit(int status) {
__asm("BKPT #0");
}
void _kill(int pid, int sig) {
return;
}
int _getpid(void) {
return -1;
}
int _write (int file, char * ptr, int len) {
int written = 0;
if ((file != 1) && (file != 2) && (file != 3)) {
return -1;
}
for (; len != 0; --len) {
if (usart_serial_putchar(&stdio_uart_module, (uint8_t)*ptr++)) {
return -1;
}
++written;
}
return written;
}
int _read (int file, char * ptr, int len) {
int read = 0;
if (file != 0) {
return -1;
}
for (; len > 0; --len) {
usart_serial_getchar(&stdio_uart_module, (uint8_t *)ptr++);
read++;
}
return read;
}
// APP
////////////////////
static void start_app(void *pc, void *sp) {
__asm(" \n\
msr msp, r1 \n\
bx r0 \n\
");
}
static void serial_init(void) {
struct usart_config usart_conf;
usart_get_config_defaults(&usart_conf);
usart_conf.mux_setting = USART_RX_3_TX_2_XCK_3;
usart_conf.pinmux_pad0 = PINMUX_UNUSED;
usart_conf.pinmux_pad1 = PINMUX_UNUSED;
usart_conf.pinmux_pad2 = PINMUX_PB22D_SERCOM5_PAD2;
usart_conf.pinmux_pad3 = PINMUX_PB23D_SERCOM5_PAD3;
usart_serial_init(&stdio_uart_module, SERCOM5, &usart_conf);
usart_enable(&stdio_uart_module);
}
static void serial_deinit(void) {
usart_disable(&stdio_uart_module);
}
int main() {
serial_init();
printf("Bootloader!\n");
uint32_t *src = (uint32_t*) &__approm_start__;
uint32_t *dst = (uint32_t*) &__eram_start__;
int size = (int) &__approm_size__;
printf("Copying firmware from %p to %p\n", src, dst);
memcpy((uint8_t*) dst, (uint8_t*) src, size);
DeviceVectors *app_vectors = (DeviceVectors *) dst;
printf("Jumping to %p\n", app_vectors->pfnReset_Handler);
// cleanup after ourselves
serial_deinit();
// go go go
start_app(app_vectors->pfnReset_Handler, app_vectors->pvStack);
// should never be reached
while (1);
}
================================================
FILE: bootload-reloc/memory_map.h
================================================
#pragma once
extern int __bootrom_start__;
extern int __bootrom_size__;
extern int __approm_start__;
extern int __approm_size__;
extern int __eram_start__;
extern int __eram_size__;
================================================
FILE: bootload-reloc/memory_map.ld
================================================
MEMORY
{
bootrom (rx) : ORIGIN = 0x00000000, LENGTH = 0x00010000
approm (rx) : ORIGIN = 0x00010000, LENGTH = 0x00004000
ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00004000
eram (rwx) : ORIGIN = 0x20004000, LENGTH = 0x00004000
}
__bootrom_start__ = ORIGIN(bootrom);
__bootrom_size__ = LENGTH(bootrom);
__approm_start__ = ORIGIN(approm);
__approm_size__ = LENGTH(approm);
__eram_start__ = ORIGIN(eram);
__eram_size__ = LENGTH(eram);
================================================
FILE: bootload-reloc/startup_samd21.c
================================================
#include "samd21.h"
/* Initialize segments */
extern uint32_t _stext;
extern uint32_t _etext;
extern uint32_t _sbss;
extern uint32_t _ebss;
extern uint32_t _sdata;
extern uint32_t _edata;
extern uint32_t _sstack;
extern uint32_t _estack;
/** \cond DOXYGEN_SHOULD_SKIP_THIS */
int main(void);
/** \endcond */
/* Default empty handler */
void Dummy_Handler(void);
/* Cortex-M0+ core handlers */
void NMI_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void HardFault_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void SVC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void PendSV_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void SysTick_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
/* Peripherals handlers */
void PM_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void SYSCTRL_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void WDT_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void RTC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void EIC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void NVMCTRL_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void DMAC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#ifdef ID_USB
void USB_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
void EVSYS_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void SERCOM0_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void SERCOM1_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void SERCOM2_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void SERCOM3_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#ifdef ID_SERCOM4
void SERCOM4_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
#ifdef ID_SERCOM5
void SERCOM5_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
void TCC0_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void TCC1_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void TCC2_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void TC3_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void TC4_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void TC5_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#ifdef ID_TC6
void TC6_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
#ifdef ID_TC7
void TC7_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
#ifdef ID_ADC
void ADC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
#ifdef ID_AC
void AC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
#ifdef ID_DAC
void DAC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
#ifdef ID_PTC
void PTC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
#ifdef ID_I2S
void I2S_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
#ifdef ID_AC1
void AC1_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
/* Exception Table */
__attribute__ ((section(".vectors")))
const DeviceVectors exception_table = {
/* Configure Initial Stack Pointer, using linker-generated symbols */
.pvStack = (void*) (&_estack),
.pfnReset_Handler = (void*) Reset_Handler,
.pfnNMI_Handler = (void*) NMI_Handler,
.pfnHardFault_Handler = (void*) HardFault_Handler,
.pvReservedM12 = (void*) (0UL), /* Reserved */
.pvReservedM11 = (void*) (0UL), /* Reserved */
.pvReservedM10 = (void*) (0UL), /* Reserved */
.pvReservedM9 = (void*) (0UL), /* Reserved */
.pvReservedM8 = (void*) (0UL), /* Reserved */
.pvReservedM7 = (void*) (0UL), /* Reserved */
.pvReservedM6 = (void*) (0UL), /* Reserved */
.pfnSVC_Handler = (void*) SVC_Handler,
.pvReservedM4 = (void*) (0UL), /* Reserved */
.pvReservedM3 = (void*) (0UL), /* Reserved */
.pfnPendSV_Handler = (void*) PendSV_Handler,
.pfnSysTick_Handler = (void*) SysTick_Handler,
/* Configurable interrupts */
.pfnPM_Handler = (void*) PM_Handler, /* 0 Power Manager */
.pfnSYSCTRL_Handler = (void*) SYSCTRL_Handler, /* 1 System Control */
.pfnWDT_Handler = (void*) WDT_Handler, /* 2 Watchdog Timer */
.pfnRTC_Handler = (void*) RTC_Handler, /* 3 Real-Time Counter */
.pfnEIC_Handler = (void*) EIC_Handler, /* 4 External Interrupt Controller */
.pfnNVMCTRL_Handler = (void*) NVMCTRL_Handler, /* 5 Non-Volatile Memory Controller */
.pfnDMAC_Handler = (void*) DMAC_Handler, /* 6 Direct Memory Access Controller */
#ifdef ID_USB
.pfnUSB_Handler = (void*) USB_Handler, /* 7 Universal Serial Bus */
#else
.pvReserved7 = (void*) (0UL), /* 7 Reserved */
#endif
.pfnEVSYS_Handler = (void*) EVSYS_Handler, /* 8 Event System Interface */
.pfnSERCOM0_Handler = (void*) SERCOM0_Handler, /* 9 Serial Communication Interface 0 */
.pfnSERCOM1_Handler = (void*) SERCOM1_Handler, /* 10 Serial Communication Interface 1 */
.pfnSERCOM2_Handler = (void*) SERCOM2_Handler, /* 11 Serial Communication Interface 2 */
.pfnSERCOM3_Handler = (void*) SERCOM3_Handler, /* 12 Serial Communication Interface 3 */
#ifdef ID_SERCOM4
.pfnSERCOM4_Handler = (void*) SERCOM4_Handler, /* 13 Serial Communication Interface 4 */
#else
.pvReserved13 = (void*) (0UL), /* 13 Reserved */
#endif
#ifdef ID_SERCOM5
.pfnSERCOM5_Handler = (void*) SERCOM5_Handler, /* 14 Serial Communication Interface 5 */
#else
.pvReserved14 = (void*) (0UL), /* 14 Reserved */
#endif
.pfnTCC0_Handler = (void*) TCC0_Handler, /* 15 Timer Counter Control 0 */
.pfnTCC1_Handler = (void*) TCC1_Handler, /* 16 Timer Counter Control 1 */
.pfnTCC2_Handler = (void*) TCC2_Handler, /* 17 Timer Counter Control 2 */
.pfnTC3_Handler = (void*) TC3_Handler, /* 18 Basic Timer Counter 0 */
.pfnTC4_Handler = (void*) TC4_Handler, /* 19 Basic Timer Counter 1 */
.pfnTC5_Handler = (void*) TC5_Handler, /* 20 Basic Timer Counter 2 */
#ifdef ID_TC6
.pfnTC6_Handler = (void*) TC6_Handler, /* 21 Basic Timer Counter 3 */
#else
.pvReserved21 = (void*) (0UL), /* 21 Reserved */
#endif
#ifdef ID_TC7
.pfnTC7_Handler = (void*) TC7_Handler, /* 22 Basic Timer Counter 4 */
#else
.pvReserved22 = (void*) (0UL), /* 22 Reserved */
#endif
#ifdef ID_ADC
.pfnADC_Handler = (void*) ADC_Handler, /* 23 Analog Digital Converter */
#else
.pvReserved23 = (void*) (0UL), /* 23 Reserved */
#endif
#ifdef ID_AC
.pfnAC_Handler = (void*) AC_Handler, /* 24 Analog Comparators 0 */
#else
.pvReserved24 = (void*) (0UL), /* 24 Reserved */
#endif
#ifdef ID_DAC
.pfnDAC_Handler = (void*) DAC_Handler, /* 25 Digital Analog Converter */
#else
.pvReserved25 = (void*) (0UL), /* 25 Reserved */
#endif
#ifdef ID_PTC
.pfnPTC_Handler = (void*) PTC_Handler, /* 26 Peripheral Touch Controller */
#else
.pvReserved26 = (void*) (0UL), /* 26 Reserved */
#endif
#ifdef ID_I2S
.pfnI2S_Handler = (void*) I2S_Handler, /* 27 Inter-IC Sound Interface */
#else
.pvReserved27 = (void*) (0UL), /* 27 Reserved */
#endif
#ifdef ID_AC1
.pfnAC1_Handler = (void*) AC1_Handler /* 28 Analog Comparators 1 */
#else
.pvReserved28 = (void*) (0UL) /* 28 Reserved */
#endif
};
/**
* \brief This is the code that gets called on processor reset.
* To initialize the device, and call the main() routine.
*/
void Reset_Handler(void)
{
/* Initialize the data segment */
uint32_t *pSrc = &_etext;
uint32_t *pDest = &_sdata;
if (pSrc != pDest) {
for (; pDest < &_edata;) {
*pDest++ = *pSrc++;
}
}
/* Clear the zero segment */
for (pDest = &_sbss; pDest < &_ebss;) {
*pDest++ = 0;
}
/* Set the vector table base address */
pSrc = (uint32_t *) & _stext;
SCB->VTOR = ((uint32_t) pSrc & SCB_VTOR_TBLOFF_Msk);
/* Change default QOS values to have the best performance */
SBMATRIX->SFR[SBMATRIX_SLAVE_HMCRAMC0].reg = 2;
DMAC->QOSCTRL.bit.DQOS = 2;
DMAC->QOSCTRL.bit.FQOS = 2;
DMAC->QOSCTRL.bit.WRBQOS = 2;
/* Overwriting the default value of the NVMCTRL.CTRLB.MANW bit (errata reference 13134) */
NVMCTRL->CTRLB.bit.MANW = 1;
/* Branch to main function */
main();
/* Infinite loop */
while (1);
}
/**
* \brief Default interrupt handler for unused IRQs.
*/
void Dummy_Handler(void)
{
while (1) {
}
}
================================================
FILE: common-bootloaded.mk
================================================
ASF_PATH = ../xdk-asf-3.32.0
SRCS += \
$(ASF_PATH)/common/utils/interrupt/interrupt_sam_nvic.c \
$(ASF_PATH)/common2/services/delay/sam0/cycle_counter.c \
$(ASF_PATH)/sam0/drivers/port/port.c \
$(ASF_PATH)/sam0/drivers/system/clock/clock_samd21_r21_da/clock.c \
$(ASF_PATH)/sam0/drivers/system/clock/clock_samd21_r21_da/gclk.c \
$(ASF_PATH)/sam0/drivers/system/pinmux/pinmux.c \
$(ASF_PATH)/sam0/utils/cmsis/samd21/source/system_samd21.c
SRCS_BOOT += $(SRCS)
SRCS_APP += $(SRCS)
INCLUDES += \
$(ASF_PATH)/common/utils \
$(ASF_PATH)/common2/services/delay \
$(ASF_PATH)/common2/services/delay/sam0 \
$(ASF_PATH)/sam0/drivers/port \
$(ASF_PATH)/sam0/drivers/system \
$(ASF_PATH)/sam0/drivers/system/clock \
$(ASF_PATH)/sam0/drivers/system/clock/clock_samd21_r21_da \
$(ASF_PATH)/sam0/drivers/system/clock/clock_samd21_r21_da/module_config \
$(ASF_PATH)/sam0/drivers/system/interrupt \
$(ASF_PATH)/sam0/drivers/system/interrupt/system_interrupt_samd21 \
$(ASF_PATH)/sam0/drivers/system/pinmux \
$(ASF_PATH)/sam0/drivers/system/power/power_sam_d_r \
$(ASF_PATH)/sam0/drivers/system/reset/reset_sam_d_r \
$(ASF_PATH)/sam0/utils \
$(ASF_PATH)/sam0/utils/cmsis/samd21/include \
$(ASF_PATH)/sam0/utils/cmsis/samd21/source \
$(ASF_PATH)/sam0/utils/header_files \
$(ASF_PATH)/sam0/utils/preprocessor \
$(ASF_PATH)/thirdparty/CMSIS/Include
CC=arm-none-eabi-gcc
LD=arm-none-eabi-ld
OCPY=arm-none-eabi-objcopy
ODUMP=arm-none-eabi-objdump
SZ=arm-none-eabi-size
OCD=arduino-openocd
MKDIR=mkdir
CFLAGS += \
-mcpu=cortex-m0plus \
-mthumb \
-Wall \
-Werror \
-std=c11 \
-O0 \
-g \
-ffreestanding \
-ffunction-sections \
-fdata-sections
LDFLAGS += \
-specs=nano.specs \
-Wl,--gc-sections \
-Wl,-Map=$(BUILD_DIR)/$(PROJECT).map
LDFLAGS_BOOT = $(LDFLAGS) -T boot.ld
LDFLAGS_APP = $(LDFLAGS) -T app.ld
DEFINES += \
__SAMD21G18A__ \
CYCLE_MODE
CFLAGS += $(foreach i,$(INCLUDES),-I$(i))
CFLAGS += $(foreach d,$(DEFINES),-D$(d))
.PHONY: all
all: $(BUILD_DIR)/$(PROJECT).bin
$(BUILD_DIR)/$(PROJECT).bin: $(BUILD_DIR)/$(PROJECT)-boot.bin $(BUILD_DIR)/$(PROJECT)-app.bin
cat $^ > $@
$(BUILD_DIR)/$(PROJECT)-app.bin: $(BUILD_DIR)/$(PROJECT)-app.elf
$(OCPY) $< $@ -O binary
$(SZ) $<
$(BUILD_DIR)/$(PROJECT)-boot.bin: $(BUILD_DIR)/$(PROJECT)-boot.elf
$(OCPY) --pad-to=0x4000 --gap-fill=0xFF -O binary $< $@
$(SZ) $<
$(BUILD_DIR)/$(PROJECT)-app.elf: $(SRCS_APP)
$(MKDIR) -p $(BUILD_DIR)
$(CC) $(CFLAGS) $(LDFLAGS_APP) $^ -o $@
$(BUILD_DIR)/$(PROJECT)-boot.elf: $(SRCS_BOOT)
$(MKDIR) -p $(BUILD_DIR)
$(CC) $(CFLAGS) $(LDFLAGS_BOOT) $^ -o $@
.PHONY: clean
clean:
rm -rf $(BUILD_DIR)
================================================
FILE: common-standalone.mk
================================================
ASF_PATH := ../xdk-asf-3.32.0
REPO_ROOT := $(shell git rev-parse --show-toplevel)
ifdef DEBUG
NO_ECHO :=
else
NO_ECHO := @
endif
SRCS += \
$(ASF_PATH)/common/utils/interrupt/interrupt_sam_nvic.c \
$(ASF_PATH)/common2/services/delay/sam0/cycle_counter.c \
$(ASF_PATH)/sam0/drivers/port/port.c \
$(ASF_PATH)/sam0/drivers/system/clock/clock_samd21_r21_da/clock.c \
$(ASF_PATH)/sam0/drivers/system/clock/clock_samd21_r21_da/gclk.c \
$(ASF_PATH)/sam0/drivers/system/pinmux/pinmux.c \
$(ASF_PATH)/sam0/utils/cmsis/samd21/source/system_samd21.c
INCLUDES += \
$(ASF_PATH)/common/utils \
$(ASF_PATH)/common2/services/delay \
$(ASF_PATH)/common2/services/delay/sam0 \
$(ASF_PATH)/sam0/drivers/port \
$(ASF_PATH)/sam0/drivers/system \
$(ASF_PATH)/sam0/drivers/system/clock \
$(ASF_PATH)/sam0/drivers/system/clock/clock_samd21_r21_da \
$(ASF_PATH)/sam0/drivers/system/clock/clock_samd21_r21_da/module_config \
$(ASF_PATH)/sam0/drivers/system/interrupt \
$(ASF_PATH)/sam0/drivers/system/interrupt/system_interrupt_samd21 \
$(ASF_PATH)/sam0/drivers/system/pinmux \
$(ASF_PATH)/sam0/drivers/system/power/power_sam_d_r \
$(ASF_PATH)/sam0/drivers/system/reset/reset_sam_d_r \
$(ASF_PATH)/sam0/utils \
$(ASF_PATH)/sam0/utils/cmsis/samd21/include \
$(ASF_PATH)/sam0/utils/cmsis/samd21/source \
$(ASF_PATH)/sam0/utils/header_files \
$(ASF_PATH)/sam0/utils/preprocessor \
$(ASF_PATH)/thirdparty/CMSIS/Include
CC=arm-none-eabi-gcc
LD=arm-none-eabi-ld
OCPY=arm-none-eabi-objcopy
ODUMP=arm-none-eabi-objdump
SZ=arm-none-eabi-size
OCD=arduino-openocd
MKDIR=mkdir
CFLAGS += \
-mcpu=cortex-m0plus \
-mthumb \
-Wall \
-Werror \
-std=c11 \
-O0 \
-fdebug-prefix-map=$(REPO_ROOT)= \
-g \
-ffreestanding \
-ffunction-sections \
-fdata-sections
LDFLAGS += \
-specs=nano.specs \
-Wl,--gc-sections \
-Wl,--print-memory-usage \
-Wl,-Map=$(BUILD_DIR)/$(PROJECT).map \
-T samd21g18a_flash.ld
DEFINES += \
__SAMD21G18A__ \
CYCLE_MODE
CFLAGS += $(foreach i,$(INCLUDES),-I$(i))
CFLAGS += $(foreach d,$(DEFINES),-D$(d))
OBJ_DIR = $(BUILD_DIR)/objs/a/b/c
OBJS = $(patsubst %.c,$(OBJ_DIR)/%.o,$(SRCS))
.PHONY: all
all: $(BUILD_DIR)/$(PROJECT).bin
$(BUILD_DIR):
$(NO_ECHO)$(MKDIR) -p $(BUILD_DIR)
$(OBJ_DIR):
$(NO_ECHO)$(MKDIR) -p $(OBJ_DIR)
$(OBJ_DIR)/%.o: %.c $(OBJ_DIR)
@echo "Compiling $<"
$(NO_ECHO)$(MKDIR) -p $(dir $@)
$(NO_ECHO)$(CC) -c -o $@ $< $(CFLAGS)
$(BUILD_DIR)/$(PROJECT).bin: $(BUILD_DIR)/$(PROJECT).elf $(BUILD_DIR)/$(PROJECT).lst
$(OCPY) $< $@ -O binary
$(SZ) $<
$(BUILD_DIR)/$(PROJECT).lst: $(BUILD_DIR)/$(PROJECT).elf $(BUILD_DIR)
$(ODUMP) -D $< > $@
$(BUILD_DIR)/$(PROJECT).elf: $(OBJS)
@echo "Linking $@"
$(NO_ECHO)$(CC) $(CFLAGS) $^ $(LDFLAGS) -o $@
.PHONY: clean
clean:
rm -rf $(BUILD_DIR)
================================================
FILE: default/Makefile
================================================
PROJECT := default
BUILD_DIR ?= build
SRCS = \
$(ASF_PATH)/sam0/utils/cmsis/samd21/source/gcc/startup_samd21.c \
$(PROJECT).c
include ../common-standalone.mk
================================================
FILE: default/default.c
================================================
#include <samd21g18a.h>
#include <port.h>
#include <delay.h>
#define LED_0_PIN PIN_PA17
static void set_output(const uint8_t pin) {
struct port_config config_port_pin;
port_get_config_defaults(&config_port_pin);
config_port_pin.direction = PORT_PIN_DIR_OUTPUT;
port_pin_set_config(pin, &config_port_pin);
port_pin_set_output_level(pin, false);
}
static void setup() {
system_clock_init();
delay_init();
set_output(LED_0_PIN);
}
int main() {
setup();
while (true) {
port_pin_toggle_output_level(LED_0_PIN);
delay_s(2);
}
}
================================================
FILE: default/samd21g18a_flash.ld
================================================
/**
* \file
*
* \brief Linker script for running in internal FLASH on the SAMD21G18A
*
* Copyright (c) 2014-2015 Atmel Corporation. All rights reserved.
*
* \asf_license_start
*
* \page License
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* 3. The name of Atmel may not be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* 4. This software may only be redistributed and used in connection with an
* Atmel microcontroller product.
*
* THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
* EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* \asf_license_stop
*
*/
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
SEARCH_DIR(.)
/* Memory Spaces Definitions */
MEMORY
{
rom (rx) : ORIGIN = 0x00000000, LENGTH = 0x00040000
ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00008000
}
/* The stack size used by the application. NOTE: you need to adjust according to your application. */
STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0x2000;
/* Section Definitions */
SECTIONS
{
.text :
{
. = ALIGN(4);
_sfixed = .;
KEEP(*(.vectors .vectors.*))
*(.text .text.* .gnu.linkonce.t.*)
*(.glue_7t) *(.glue_7)
*(.rodata .rodata* .gnu.linkonce.r.*)
*(.ARM.extab* .gnu.linkonce.armextab.*)
/* Support C constructors, and C destructors in both user code
and the C library. This also provides support for C++ code. */
. = ALIGN(4);
KEEP(*(.init))
. = ALIGN(4);
__preinit_array_start = .;
KEEP (*(.preinit_array))
__preinit_array_end = .;
. = ALIGN(4);
__init_array_start = .;
KEEP (*(SORT(.init_array.*)))
KEEP (*(.init_array))
__init_array_end = .;
. = ALIGN(4);
KEEP (*crtbegin.o(.ctors))
KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
KEEP (*(SORT(.ctors.*)))
KEEP (*crtend.o(.ctors))
. = ALIGN(4);
KEEP(*(.fini))
. = ALIGN(4);
__fini_array_start = .;
KEEP (*(.fini_array))
KEEP (*(SORT(.fini_array.*)))
__fini_array_end = .;
KEEP (*crtbegin.o(.dtors))
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*crtend.o(.dtors))
. = ALIGN(4);
_efixed = .; /* End of text section */
} > rom
/* .ARM.exidx is sorted, so has to go in its own output section. */
PROVIDE_HIDDEN (__exidx_start = .);
.ARM.exidx :
{
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
} > rom
PROVIDE_HIDDEN (__exidx_end = .);
. = ALIGN(4);
_etext = .;
.relocate : AT (_etext)
{
. = ALIGN(4);
_srelocate = .;
*(.ramfunc .ramfunc.*);
*(.data .data.*);
. = ALIGN(4);
_erelocate = .;
} > ram
/* .bss section which is used for uninitialized data */
.bss (NOLOAD) :
{
. = ALIGN(4);
_sbss = . ;
_szero = .;
*(.bss .bss.*)
*(COMMON)
. = ALIGN(4);
_ebss = . ;
_ezero = .;
} > ram
/* stack section */
.stack (NOLOAD):
{
. = ALIGN(8);
_sstack = .;
. = . + STACK_SIZE;
. = ALIGN(8);
_estack = .;
} > ram
. = ALIGN(4);
_end = . ;
}
================================================
FILE: lib/embeddedartistry_libc/include/assert.h
================================================
#ifndef ASSERT_H_
#define ASSERT_H_
#ifdef __cplusplus
extern "C" {
#endif
#ifdef NDEBUG
#define assert(x) (void)0
#else
#define assert(x) ((void)((x) || (__assert_fail(#x, __FILE__, __LINE__, __func__), 0)))
#endif
#if __STDC_VERSION__ >= 201112L && !defined(__cplusplus)
#define static_assert _Static_assert
#endif
__attribute__((noreturn, weak)) void __assert_fail(const char* expr, const char* file,
unsigned int line, const char* function);
#ifdef __cplusplus
}
#endif
#endif // ASSERT_H_
================================================
FILE: lib/embeddedartistry_libc/include/complex.h
================================================
#ifndef COMPLEX_H__
#define COMPLEX_H__
#include <openlibm_complex.h>
#endif // COMPLEX_H__
================================================
FILE: lib/embeddedartistry_libc/include/crt.h
================================================
#ifndef __CRT_H_
#define __CRT_H_
#define CRT_HAS_INITFINI_ARRAY
void CRTStartup(void);
void __libc_init_array(void);
void __libc_fini_array(void);
#endif // __CRT_H_
================================================
FILE: lib/embeddedartistry_libc/include/ctype.h
================================================
#ifndef CTYPE_H_
#define CTYPE_H_
#ifdef __cplusplus
extern "C" {
#endif
#define _CTYPE_A 0x00000100L /* Alpha */
#define _CTYPE_C 0x00000200L /* Control */
#define _CTYPE_D 0x00000400L /* Digit */
#define _CTYPE_G 0x00000800L /* Graph */
#define _CTYPE_L 0x00001000L /* Lower */
#define _CTYPE_P 0x00002000L /* Punct */
#define _CTYPE_S 0x00004000L /* Space */
#define _CTYPE_U 0x00008000L /* Upper */
#define _CTYPE_X 0x00010000L /* X digit */
#define _CTYPE_B 0x00020000L /* Blank */
#define _CTYPE_R 0x00040000L /* Print */
#define _CTYPE_I 0x00080000L /* Ideogram */
#define _CTYPE_T 0x00100000L /* Special */
#define _CTYPE_Q 0x00200000L /* Phonogram */
#define _CTYPE_SW0 0x20000000L /* 0 width character */
#define _CTYPE_SW1 0x40000000L /* 1 width character */
#define _CTYPE_SW2 0x80000000L /* 2 width character */
#define _CTYPE_SW3 0xc0000000L /* 3 width character */
#define _CTYPE_SWM 0xe0000000L /* Mask for screen width data */
#define _CTYPE_SWS 30 /* Bits to shift to get width */
/**
* @brief Checks if the given character is an alphanumeric character.
*
* Checks if the given character is an alphanumeric character using the default locale.
* The following characters are alphanumeric:
* - digits (0123456789)
* - uppercase letters (ABCDEFGHIJKLMNOPQRSTUVWXYZ)
* - lowercase letters (abcdefghijklmnopqrstuvwxyz)
*
* The behavior is undefined if the value of ch is not representable as unsigned char and is not
*equal to EOF.
*
* @param ch The character to classify
* @return Non-zero value if the character is an alphanumeric character, 0 otherwise.
* */
int isalnum(int ch);
/**
* @brief Checks if the given character is an alphabetic character.
*
* Checks if the given character is an alphabetic character, i.e. either an uppercase letter
* (ABCDEFGHIJKLMNOPQRSTUVWXYZ), or a lowercase letter (abcdefghijklmnopqrstuvwxyz)
*
* The behavior is undefined if the value of ch is not representable as unsigned char and is not
*equal to EOF.
*
* @param ch The character to classify
* @return Non-zero value if the character is an alphabetic character, zero otherwise.
* */
int isalpha(int ch);
/**
* @brief Checks if a given character is a 7-bit US-ASCII character.
*
* Checks if a given character 7-bit unsigned char value that fits into the ASCII character set.
* which is any character between 0 and 0x7f inclusive.
*
* The behavior is undefined if the value of ch is not representable as unsigned char and is not
*equal to EOF.
*
* @param ch The character to classify
* @return Non-zero value if ch is a 7-bit US-ASCII character code, zero otherwise.
* */
int isascii(int ch);
/**
* @brief Checks if the given character is a blank character.
*
* Checks if the given character is a blank character using the default locale.
* The following characters classified as blank:
* - space (0x20)
* - horizontal tab (0x09)
*
* The behavior is undefined if the value of ch is not representable as unsigned char and is not
*equal to EOF.
*
* @param ch The character to classify
* @return Non-zero value if the character is a blank character, zero otherwise.
* */
int isblank(int ch);
/**
* @brief Checks if the given character is a control character.
*
* Checks if the given character is a control character.
* The following are examples of control character:
* - codes (0x00-0x1F) and (0x7F)
*
* The behavior is undefined if the value of ch is not representable as unsigned char and is not
*equal to EOF.
*
* @param ch The character to classify
* @return Non-zero value if the character is a control character, zero otherwise.
* */
int iscntrl(int ch);
/**
* @brief Checks if the given character is a numeric character.
*
* Checks if the given character is a numeric character (0123456789).
*
* The behavior is undefined if the value of ch is not representable as unsigned char and is not
* equal to EOF.
*
* @param ch The character to classify
* @return Non-zero value if the character is a numeric character, zero otherwise.
* */
int isdigit(int ch);
/**
* @brief Checks if the given character has a graphical representation.
*
* Checks if the given character has a graphical representation using the default locale.
* The following characters are graphical:
* - number (0123456789)
* - uppercase letter (ABCDEFGHIJKLMNOPQRSTUVWXYZ)
* - letter (abcdefghijklmnopqrstuvwxyz)
* - punctuation character (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)
*
* The behavior is undefined if the value of ch is not representable as unsigned char and is not
*equal to EOF.
*
* @param ch The character to classify
* @return Non-zero value if the character has a graphical representation character, zero otherwise.
* */
int isgraph(int ch);
/**
* @brief Checks if the given character is classified as a lowercase character.
*
* Checks if the given character is classified as a lowercase character using the default local.
* islower returns true only for the lowercase letters (abcdefghijklmnopqrstuvwxyz). If islower
* returns true, it is guaranteed that \sa iscntrl, \sa isdigit, \sa ispunct, \sa isspace will
* return false for the same character in the same default locale.
*
* The behavior is undefined if the value of ch is not representable as unsigned char and is not
* equal to EOF.
*
* @param ch The character to classify
* @return Non-zero value if the character is a lowercase letter, zero otherwise.
* */
int islower(int ch);
/**
* @brief Checks if the given character can be printed.
*
* Checks if the given character can be printed using the default locale.
* The following characters are printable:
* - number (0123456789)
* - uppercase letter (ABCDEFGHIJKLMNOPQRSTUVWXYZ)
* - letter (abcdefghijklmnopqrstuvwxyz)
* - punctuation character (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)
* - space (0x20)
*
* The behavior is undefined if the value of ch is not representable as unsigned char and is not
*equal to EOF.
*
* @param ch The character to classify
* @return Non-zero value if the character can be printed, zero otherwise.
* */
int isprint(int ch);
/**
* @brief Checks if the given character is a punctuation character.
*
* Checks if the given character is a punctuation character using the default local.
* The following characters are classified as punctuation character:
* - (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)
*
* The behavior is undefined if the value of ch is not representable as unsigned char and is not
*equal to EOF.
*
* @param ch The character to classify
* @return Non-zero value if the character is a punctuation character, zero otherwise.
* */
int ispunct(int ch);
/**
* @brief Checks if the given character is a whitespace character.
*
* Checks if the given character is a whitespace character.
* The following are examples of a whitespace character:
* - space (0x20)
* - feed (0x0c)
* - line feed (0x0a)
* - carriage return (0x0d)
* - horizontal tab (0x09)
* - vertical tab (0x0b)
*
* The behavior is undefined if the value of ch is not representable as unsigned char and is not
*equal to EOF.
*
* @param ch The character to classify
* @return Non-zero value if the character is a whitespace character, zero otherwise.
* */
int isspace(int ch);
/**
* @brief Checks if the given character is an uppercase character
*
* Checks if the given character is an uppercase character using the default local.
* isupper returns true only for the uppercase letters (ABCDEFGHIJKLMNOPQRSTUVWXYZ). If isupper
* returns true, it is guaranteed that \sa iscntrl, \sa isdigit, \sa ispunct, \sa isspace will
* return false for the same character in the same default locale.
*
* The behavior is undefined if the value of ch is not representable as unsigned char and is not
* equal to EOF.
*
* @param ch The character to classify
* @return Non-zero value if the character is an uppercase letter, zero otherwise.
* */
int isupper(int ch);
/**
* @brief Checks if the given character is a hexadecimal numeric character.
*
* Checks if the given character is a hexadecimal numeric character (0123456789).
*
* The behavior is undefined if the value of ch is not representable as unsigned char and is not
* equal to EOF.
*
* @param ch The character to classify
* @return Non-zero value if the character is an hexadecimal numeric character, zero otherwise.
* */
int isxdigit(int ch);
/**
* @brief Converts the given character to lowercase.
*
* Converts the given character to lowercase according to the character
* conversion rules defined by the default local, i.e. the following uppercase letters
* (ABCDEFGHIJKLMNOPQRSTUVWXYZ) are replaced with respective lowercase letters
* (abcdefghijklmnopqrstuvwxyz).
*
* The behavior is undefined if the value of ch is not representable as unsigned char and is not
* equal to EOF.
*
* @param ch character to be converted.
* @return Lowercase version of ch or unmodified ch if no lowercase version is listed in the default
* locale.
* */
int tolower(int ch);
/**
* @brief Converts the given character to lowercase.
*
* Converts the given character to lowercase according to the character
* conversion rules defined by the default local, i.e. the following lowercase letters
* (abcdefghijklmnopqrstuvwxyz) are replaced with respective uppercase letters
* (ABCDEFGHIJKLMNOPQRSTUVWXYZ).
*
* The behavior is undefined if the value of ch is not representable as unsigned char and is not
* equal to EOF.
*
* @param ch character to be converted.
* @return Uppercase version of ch or unmodified ch if no uppercase version is listed in the default
* locale.
* */
int toupper(int ch);
/**
* @brief Converts the given character to ASCII.
*
* Converts the given character to a 7-bit unsigned char value that fits into the ASCII character
* set.
*
* @param ch character to be converted.
* @return The value returned is that of the converted letter, or ch if the conversion was not
* possible.
* */
int toascii(int ch);
#ifdef __cplusplus
}
#endif
#endif // CTYPE_H_
================================================
FILE: lib/embeddedartistry_libc/include/endian.h
================================================
#ifndef __ENDIAN_H_
#define __ENDIAN_H_
#define __LITTLE_ENDIAN 1234
#define __BIG_ENDIAN 4321
#define __PDP_ENDIAN 3412
#include <_endian.h> //machine endian header
#define BIG_ENDIAN __BIG_ENDIAN
#define LITTLE_ENDIAN __LITTLE_ENDIAN
#define PDP_ENDIAN __PDP_ENDIAN
#define BYTE_ORDER __BYTE_ORDER
#include <stdint.h>
#define __bswap16(x) ((uint16_t)((((uint16_t)(x)&0xff00) >> 8) | (((uint16_t)(x)&0x00ff) << 8)))
#define __bswap32(x) \
((uint32_t)((((uint32_t)(x)&0xff000000) >> 24) | (((uint32_t)(x)&0x00ff0000) >> 8) | \
(((uint32_t)(x)&0x0000ff00) << 8) | (((uint32_t)(x)&0x000000ff) << 24)))
#define __bswap64(x) \
((uint64_t)((((uint64_t)(x)&0xff00000000000000ULL) >> 56) | \
(((uint64_t)(x)&0x00ff000000000000ULL) >> 40) | \
(((uint64_t)(x)&0x0000ff0000000000ULL) >> 24) | \
(((uint64_t)(x)&0x000000ff00000000ULL) >> 8) | \
(((uint64_t)(x)&0x00000000ff000000ULL) << 8) | \
(((uint64_t)(x)&0x0000000000ff0000ULL) << 24) | \
(((uint64_t)(x)&0x000000000000ff00ULL) << 40) | \
(((uint64_t)(x)&0x00000000000000ffULL) << 56)))
#if __BYTE_ORDER == __LITTLE_ENDIAN
// Definitions from musl libc
#define htobe16(x) __bswap16(x)
#define be16toh(x) __bswap16(x)
#define betoh16(x) __bswap16(x)
#define htobe32(x) __bswap32(x)
#define be32toh(x) __bswap32(x)
#define betoh32(x) __bswap32(x)
#define htobe64(x) __bswap64(x)
#define be64toh(x) __bswap64(x)
#define betoh64(x) __bswap64(x)
#define htole16(x) (uint16_t)(x)
#define le16toh(x) (uint16_t)(x)
#define letoh16(x) (uint16_t)(x)
#define htole32(x) (uint32_t)(x)
#define le32toh(x) (uint32_t)(x)
#define letoh32(x) (uint32_t)(x)
#define htole64(x) (uint64_t)(x)
#define le64toh(x) (uint64_t)(x)
#define letoh64(x) (uint64_t)(x)
// From Apple Open Source Libc
#define ntohs(x) __bswap16(x)
#define htons(x) __bswap16(x)
#define ntohl(x) __bswap32(x)
#define htonl(x) __bswap32(x)
#define ntohll(x) __bswap64(x)
#define htonll(x) __bswap64(x)
#define NTOHL(x) (x) = ntohl((uint32_t)x)
#define NTOHS(x) (x) = ntohs((uint16_t)x)
#define NTOHLL(x) (x) = ntohll((uint64_t)x)
#define HTONL(x) (x) = htonl((uint32_t)x)
#define HTONS(x) (x) = htons((uint16_t)x)
#define HTONLL(x) (x) = htonll((uint64_t)x)
#else // BIG_ENDIAN
// Definitions from musl libc
#define htobe16(x) (uint16_t)(x)
#define be16toh(x) (uint16_t)(x)
#define betoh16(x) (uint16_t)(x)
#define htobe32(x) (uint32_t)(x)
#define be32toh(x) (uint32_t)(x)
#define betoh32(x) (uint32_t)(x)
#define htobe64(x) (uint64_t)(x)
#define be64toh(x) (uint64_t)(x)
#define betoh64(x) (uint64_t)(x)
#define htole16(x) __bswap16(x)
#define le16toh(x) __bswap16(x)
#define letoh16(x) __bswap16(x)
#define htole32(x) __bswap32(x)
#define le32toh(x) __bswap32(x)
#define letoh32(x) __bswap32(x)
#define htole64(x) __bswap64(x)
#define le64toh(x) __bswap64(x)
#define letoh64(x) __bswap64(x)
// From Apple Open Source libc
#define ntohl(x) ((uint32_t)(x))
#define ntohs(x) ((uint16_t)(x))
#define htonl(x) ((uint32_t)(x))
#define htons(x) ((uint16_t)(x))
#define ntohll(x) ((uint64_t)(x))
#define htonll(x) ((uint64_t)(x))
#define NTOHL(x) (x)
#define NTOHS(x) (x)
#define NTOHLL(x) (x)
#define HTONL(x) (x)
#define HTONS(x) (x)
#define HTONLL(x) (x)
#endif // endian check
#endif //__ENDIAN_H_
================================================
FILE: lib/embeddedartistry_libc/include/errno.h
================================================
#ifndef ERRNO_H__
#define ERRNO_H__
#ifdef __cplusplus
extern "C" {
#endif
// TODO:
// int *__errno_location(void);
//#define errno (*__errno_location())
// For GLIBC on host, we need to use their definition of errno for linking purposes
#ifdef __GLIBC__
#include_next "errno.h"
#else
extern int errno;
#endif
#define EPERM 1 /* Operation not permitted */
#define ENOENT 2 /* No such file or directory */
#define ESRCH 3 /* No such process */
#define EINTR 4 /* Interrupted system call */
#define EIO 5 /* Input/output error */
#define ENXIO 6 /* Device not configured */
#define E2BIG 7 /* Argument list too long */
#define ENOEXEC 8 /* Exec format error */
#define EBADF 9 /* Bad file descriptor */
#define ECHILD 10 /* No child processes */
#define EDEADLK 11 /* Resource deadlock avoided */
/* 11 was EAGAIN */
#define ENOMEM 12 /* Cannot allocate memory */
#define EACCES 13 /* Permission denied */
#define EFAULT 14 /* Bad address */
#define ENOTBLK 15 /* Block device required */
#define EBUSY 16 /* Device / Resource busy */
#define EEXIST 17 /* File exists */
#define EXDEV 18 /* Cross-device link */
#define ENODEV 19 /* Operation not supported by device */
#define ENOTDIR 20 /* Not a directory */
#define EISDIR 21 /* Is a directory */
#define EINVAL 22 /* Invalid argument */
#define ENFILE 23 /* Too many open files in system */
#define EMFILE 24 /* Too many open files */
#define ENOTTY 25 /* Inappropriate ioctl for device */
#define ETXTBSY 26 /* Text file busy */
#define EFBIG 27 /* File too large */
#define ENOSPC 28 /* No space left on device */
#define ESPIPE 29 /* Illegal seek */
#define EROFS 30 /* Read-only file system */
#define EMLINK 31 /* Too many links */
#define EPIPE 32 /* Broken pipe */
/* math software */
#define EDOM 33 /* Numerical argument out of domain */
#define ERANGE 34 /* Result too large */
/* non-blocking and interrupt i/o */
#define EAGAIN 35 /* Resource temporarily unavailable */
#define EWOULDBLOCK EAGAIN /* Operation would block */
#define EINPROGRESS 36 /* Operation now in progress */
#define EALREADY 37 /* Operation already in progress */
/* ipc/network software -- argument errors */
#define ENOTSOCK 38 /* Socket operation on non-socket */
#define EDESTADDRREQ 39 /* Destination address required */
#define EMSGSIZE 40 /* Message too long */
#define EPROTOTYPE 41 /* Protocol wrong type for socket */
#define ENOPROTOOPT 42 /* Protocol not available */
#define EPROTONOSUPPORT 43 /* Protocol not supported */
#define ESOCKTNOSUPPORT 44 /* Socket type not supported */
#define ENOTSUP 45 /* Operation not supported */
#define EOPNOTSUPP ENOTSUP /* Operation not supported on socket */
#define EPFNOSUPPORT 46 /* Protocol family not supported */
#define EAFNOSUPPORT 47 /* Address family not supported by protocol family */
#define EADDRINUSE 48 /* Address already in use */
#define EADDRNOTAVAIL 49 /* Can't assign requested address */
/* ipc/network software -- operational errors */
#define ENETDOWN 50 /* Network is down */
#define ENETUNREACH 51 /* Network is unreachable */
#define ENETRESET 52 /* Network dropped connection on reset */
#define ECONNABORTED 53 /* Software caused connection abort */
#define ECONNRESET 54 /* Connection reset by peer */
#define ENOBUFS 55 /* No buffer space available */
#define EISCONN 56 /* Socket is already connected */
#define ENOTCONN 57 /* Socket is not connected */
#define ESHUTDOWN 58 /* Can't send after socket shutdown */
#define ETOOMANYREFS 59 /* Too many references: can't splice */
#define ETIMEDOUT 60 /* Operation timed out */
#define ECONNREFUSED 61 /* Connection refused */
#define ELOOP 62 /* Too many levels of symbolic links */
#define ENAMETOOLONG 63 /* File name too long */
/* should be rearranged */
#define EHOSTDOWN 64 /* Host is down */
#define EHOSTUNREACH 65 /* No route to host */
#define ENOTEMPTY 66 /* Directory not empty */
/* quotas & mush */
#define EPROCLIM 67 /* Too many processes */
#define EUSERS 68 /* Too many users */
#define EDQUOT 69 /* Disc quota exceeded */
/* Network File System */
#define ESTALE 70 /* Stale NFS file handle */
#define EREMOTE 71 /* Too many levels of remote in path */
#define EBADRPC 72 /* RPC struct is bad */
#define ERPCMISMATCH 73 /* RPC version wrong */
#define EPROGUNAVAIL 74 /* RPC prog. not avail */
#define EPROGMISMATCH 75 /* Program version wrong */
#define EPROCUNAVAIL 76 /* Bad procedure for program */
#define ENOLCK 77 /* No locks available */
#define ENOSYS 78 /* Function not implemented */
#define EFTYPE 79 /* Inappropriate file type or format */
#define EAUTH 80 /* Authentication error */
#define ENEEDAUTH 81 /* Need authenticator */
/* Intelligent device errors */
#define EPWROFF 82 /* Device power is off */
#define EDEVERR 83 /* Device error, e.g. paper out */
#define EOVERFLOW 84 /* Value too large to be stored in data type */
/* Program loading errors */
#define EBADEXEC 85 /* Bad executable */
#define EBADARCH 86 /* Bad CPU type in executable */
#define ESHLIBVERS 87 /* Shared library version mismatch */
#define EBADMACHO 88 /* Malformed Macho file */
#define ECANCELED 89 /* Operation canceled */
#define EIDRM 90 /* Identifier removed */
#define ENOMSG 91 /* No message of desired type */
#define EILSEQ 92 /* Illegal byte sequence */
#define ENOATTR 93 /* Attribute not found */
#define EBADMSG 94 /* Bad message */
#define EMULTIHOP 95 /* Reserved */
#define ENODATA 96 /* No message available on STREAM */
#define ENOLINK 97 /* Reserved */
#define ENOSR 98 /* No STREAM resources */
#define ENOSTR 99 /* Not a STREAM */
#define EPROTO 100 /* Protocol error */
#define ETIME 101 /* STREAM ioctl timeout */
#define ENOPOLICY 103 /* No such policy registered */
#define ENOTRECOVERABLE 104 /* State not recoverable */
#define EOWNERDEAD 105 /* Previous owner died */
#define EQFULL 106 /* Interface output queue is full */
#define ELAST 106 /* Must be equal largest errno */
#ifdef __cplusplus
}
#endif
#endif // ERRNO_H__
================================================
FILE: lib/embeddedartistry_libc/include/float.h
================================================
#ifndef FLOAT_H__
#define FLOAT_H__
#ifdef __cplusplus
extern "C" {
#endif
#if 0
//TODO
int __flt_rounds(void);
#define FLT_ROUNDS (__flt_rounds())
#endif
#define FLT_RADIX 2
#define FLT_TRUE_MIN 1.40129846432481707092e-45F
#define FLT_MIN 1.17549435082228750797e-38F
#define FLT_MAX 3.40282346638528859812e+38F
#define FLT_EPSILON 1.1920928955078125e-07F
// TODO: is this correct? I see this other value... #define FLT_EPSILON 1.19209290E-07F
// ARM also says this: 1.19209290e-7F
// Check against http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0491f/Babbfeda.html
#define FLT_MANT_DIG 24
#define FLT_MIN_EXP (-125)
#define FLT_MAX_EXP 128
#define FLT_HAS_SUBNORM 1
#define FLT_DIG 6
#define FLT_DECIMAL_DIG 9
#define FLT_MIN_10_EXP (-37)
#define FLT_MAX_10_EXP 38
#define DBL_TRUE_MIN 4.94065645841246544177e-324
#define DBL_MIN 2.22507385850720138309e-308
#define DBL_MAX 1.79769313486231570815e+308
#define DBL_EPSILON 2.22044604925031308085e-16
#define DBL_MANT_DIG 53
#define DBL_MIN_EXP (-1021)
#define DBL_MAX_EXP 1024
#define DBL_HAS_SUBNORM 1
#define DBL_DIG 15
#define DBL_DECIMAL_DIG 17
#define DBL_MIN_10_EXP (-307)
#define DBL_MAX_10_EXP 308
#define LDBL_HAS_SUBNORM 1
#define LDBL_DECIMAL_DIG DECIMAL_DIG
// Architecture-specific Definitions
#include <_types/_float.h>
#ifdef __cplusplus
}
#endif
#endif // FLOAT_H__
================================================
FILE: lib/embeddedartistry_libc/include/inttypes.h
================================================
#ifndef INTTYPES_H__
#define INTTYPES_H__
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
/// Division type for maximal integer storage
typedef struct
{
intmax_t quot; /**< The quotient */
intmax_t rem; /**< The remainder */
} imaxdiv_t;
/**
* @brief Computes the absolute value of an intmax_t number.
*
* Computes the absolute value of an intmax_t number.
* The behavior is undefined if the result cannot be represented by the return type.
*
* @param j value
* @return The absolute value of n (i.e. |n|), if it is representable.
* */
intmax_t imaxabs(intmax_t j);
/**
* @brief Computes both the quotient and the remainder of the division of the numerator x by the
* denominator y.
*
* Computes both the quotient and the remainder of the division of the numerator x by the
* denominator y. Computes quotient and remainder simultaneously. The quotient is the algebraic
* quotient with any fractional part discarded (truncated towards zero). The remainder is such that
* quot * y + rem == x.
*
* Computes the quotient (the result of the expression x/y) and remainder (the result of the
* expression x%y) simultaneously.
*
* @param numer intmax_t values (numerator)
* @param denom intmax_t values (denominator)
*
* @return If both the remainder and the quotient can be represented
* as objects of the corresponding type (int, long, long long, imaxdiv_t,
* respectively), returns both as an object of type @see div_t, @see ldiv_t, @see lldiv_t, @see
* imaxdiv_t.
*
* If either the remainder or the quotient cannot be represented, the behavior is undefined.
* */
imaxdiv_t imaxdiv(intmax_t numer, intmax_t denom);
#ifndef DISABLE_UNIMPLEMENTED_LIBC_APIS
intmax_t strtoimax(const char* __restrict, char** __restrict, int);
uintmax_t strtoumax(const char* __restrict, char** __restrict, int);
#include <wctype.h>
intmax_t wcstoimax(const wchar_t* __restrict, wchar_t** __restrict, int);
uintmax_t wcstoumax(const wchar_t* __restrict, wchar_t** __restrict, int);
#endif
#if UINTPTR_MAX == UINT64_MAX
#define __PRI64 "l"
#define __PRIPTR "l"
#else
#define __PRI64 "ll"
#define __PRIPTR ""
#endif
#define PRId8 "hhd"
#define PRId16 "hd"
#define PRId32 "d"
#define PRId64 __PRI64 "d"
#define PRIdLEAST8 "hhd"
#define PRIdLEAST16 "hd"
#define PRIdLEAST32 "d"
#define PRIdLEAST64 __PRI64 "d"
#define PRIdFAST8 "hhd"
#define PRIdFAST16 "d"
#define PRIdFAST32 "d"
#define PRIdFAST64 __PRI64 "d"
#define PRIi8 "hhi"
#define PRIi16 "hi"
#define PRIi32 "i"
#define PRIi64 __PRI64 "i"
#define PRIiLEAST8 "hhi"
#define PRIiLEAST16 "h"
#define PRIiLEAST32 "i"
#define PRIiLEAST64 __PRI64 "i"
#define PRIiFAST8 "hhi"
#define PRIiFAST16 "i"
#define PRIiFAST32 "i"
#define PRIiFAST64 __PRI64 "i"
#define PRIo8 "hho"
#define PRIo16 "ho"
#define PRIo32 "o"
#define PRIo64 __PRI64 "o"
#define PRIoLEAST8 "hho"
#define PRIoLEAST16 "ho"
#define PRIoLEAST32 "o"
#define PRIoLEAST64 __PRI64 "o"
#define PRIoFAST8 "hho"
#define PRIoFAST16 "o"
#define PRIoFAST32 "o"
#define PRIoFAST64 __PRI64 "o"
#define PRIu8 "hhu"
#define PRIu16 "hu"
#define PRIu32 "u"
#define PRIu64 __PRI64 "u"
#define PRIuLEAST8 "hhu"
#define PRIuLEAST16 "hu"
#define PRIuLEAST32 "u"
#define PRIuLEAST64 __PRI64 "u"
#define PRIuFAST8 "hhu"
#define PRIuFAST16 "u"
#define PRIuFAST32 "u"
#define PRIuFAST64 __PRI64 "u"
#define PRIx8 "hhx"
#define PRIx16 "hx"
#define PRIx32 "x"
#define PRIx64 __PRI64 "x"
#define PRIxLEAST8 "hhx"
#define PRIxLEAST16 "hx"
#define PRIxLEAST32 "x"
#define PRIxLEAST64 __PRI64 "x"
#define PRIxFAST8 "hhx"
#define PRIxFAST16 "x"
#define PRIxFAST32 "x"
#define PRIxFAST64 __PRI64 "x"
#define PRIX8 "hhX"
#define PRIX16 "hX"
#define PRIX32 "X"
#define PRIX64 __PRI64 "X"
#define PRIXLEAST8 "hhX"
#define PRIXLEAST16 "hX"
#define PRIXLEAST32 "X"
#define PRIXLEAST64 __PRI64 "X"
#define PRIXFAST8 "hhX"
#define PRIXFAST16 "X"
#define PRIXFAST32 "X"
#define PRIXFAST64 __PRI64 "X"
#define PRIdMAX __PRI64 "d"
#define PRIiMAX __PRI64 "i"
#define PRIoMAX __PRI64 "o"
#define PRIuMAX __PRI64 "u"
#define PRIxMAX __PRI64 "x"
#define PRIXMAX __PRI64 "X"
#define PRIdPTR __PRIPTR "d"
#define PRIiPTR __PRIPTR "i"
#define PRIoPTR __PRIPTR "o"
#define PRIuPTR __PRIPTR "u"
#define PRIxPTR __PRIPTR "x"
#define PRIXPTR __PRIPTR "X"
#ifndef DISABLE_UNIMPLEMENTED_LIBC_APIS
#define SCNd8 "hhd"
#define SCNd16 "hd"
#define SCNd32 "d"
#define SCNd64 __PRI64 "d"
#define SCNdLEAST8 "hhd"
#define SCNdLEAST16 "hd"
#define SCNdLEAST32 "d"
#define SCNdLEAST64 __PRI64 "d"
#define SCNdFAST8 "hhd"
#define SCNdFAST16 "d"
#define SCNdFAST32 "d"
#define SCNdFAST64 __PRI64 "d"
#define SCNi8 "hhi"
#define SCNi16 "hi"
#define SCNi32 "i"
#define SCNi64 __PRI64 "i"
#define SCNiLEAST8 "hhi"
#define SCNiLEAST16 "hi"
#define SCNiLEAST32 "i"
#define SCNiLEAST64 __PRI64 "i"
#define SCNiFAST8 "hhi"
#define SCNiFAST16 "i"
#define SCNiFAST32 "i"
#define SCNiFAST64 __PRI64 "i"
#define SCNu8 "hhu"
#define SCNu16 "hu"
#define SCNu32 "u"
#define SCNu64 __PRI64 "u"
#define SCNuLEAST8 "hhu"
#define SCNuLEAST16 "hu"
#define SCNuLEAST32 "u"
#define SCNuLEAST64 __PRI64 "u"
#define SCNuFAST8 "hhu"
#define SCNuFAST16 "u"
#define SCNuFAST32 "u"
#define SCNuFAST64 __PRI64 "u"
#define SCNo8 "hho"
#define SCNo16 "ho"
#define SCNo32 "o"
#define SCNo64 __PRI64 "o"
#define SCNoLEAST8 "hho"
#define SCNoLEAST16 "ho"
#define SCNoLEAST32 "o"
#define SCNoLEAST64 __PRI64 "o"
#define SCNoFAST8 "hho"
#define SCNoFAST16 "o"
#define SCNoFAST32 "o"
#define SCNoFAST64 __PRI64 "o"
#define SCNx8 "hhx"
#define SCNx16 "hx"
#define SCNx32 "x"
#define SCNx64 __PRI64 "x"
#define SCNxLEAST8 "hhx"
#define SCNxLEAST16 "hx"
#define SCNxLEAST32 "x"
#define SCNxLEAST64 __PRI64 "x"
#define SCNxFAST8 "hhx"
#define SCNxFAST16 "x"
#define SCNxFAST32 "x"
#define SCNxFAST64 __PRI64 "x"
#define SCNdMAX __PRI64 "d"
#define SCNiMAX __PRI64 "i"
#define SCNoMAX __PRI64 "o"
#define SCNuMAX __PRI64 "u"
#define SCNxMAX __PRI64 "x"
#define SCNdPTR __PRIPTR "d"
#define SCNiPTR __PRIPTR "i"
#define SCNoPTR __PRIPTR "o"
#define SCNuPTR __PRIPTR "u"
#define SCNxPTR __PRIPTR "x"
#endif // DISABLE_UNIMPLEMENTED_LIBC_APIS
#ifdef __cplusplus
}
#endif
#endif // INTTYPES_H__
================================================
FILE: lib/embeddedartistry_libc/include/langinfo.h
================================================
#ifndef __LANGINFO_H_
#define __LANGINFO_H_
#ifdef __cplusplus
extern "C" {
#endif
#include <nl_types.h>
// TODO: pull documentation from
// https://www.gnu.org/software/libc/manual/html_node/The-Elegant-and-Fast-Way.html
/**
* The nl_langinfo function can be used to access individual elements of the locale categories.
* Unlike the localeconv function, which returns all the information, nl_langinfo lets the caller
* select what information it requires. This is very fast and it is not a problem to call this
* function multiple times.
*
* A second advantage is that in addition to the numeric and monetary formatting information,
* information from the LC_TIME and LC_MESSAGES categories is available.
*
* The type `item` is defined in nl_types.h. The argument item is a numeric value defined in this
* header.
*/
char* nl_langinfo(nl_item item);
#define ABDAY_1 0x20000
#define ABDAY_2 0x20001
#define ABDAY_3 0x20002
#define ABDAY_4 0x20003
#define ABDAY_5 0x20004
#define ABDAY_6 0x20005
#define ABDAY_7 0x20006
#define DAY_1 0x20007
#define DAY_2 0x20008
#define DAY_3 0x20009
#define DAY_4 0x2000A
#define DAY_5 0x2000B
#define DAY_6 0x2000C
#define DAY_7 0x2000D
#define ABMON_1 0x2000E
#define ABMON_2 0x2000F
#define ABMON_3 0x20010
#define ABMON_4 0x20011
#define ABMON_5 0x20012
#define ABMON_6 0x20013
#define ABMON_7 0x20014
#define ABMON_8 0x20015
#define ABMON_9 0x20016
#define ABMON_10 0x20017
#define ABMON_11 0x20018
#define ABMON_12 0x20019
#define MON_1 0x2001A
#define MON_2 0x2001B
#define MON_3 0x2001C
#define MON_4 0x2001D
#define MON_5 0x2001E
#define MON_6 0x2001F
#define MON_7 0x20020
#define MON_8 0x20021
#define MON_9 0x20022
#define MON_10 0x20023
#define MON_11 0x20024
#define MON_12 0x20025
#define AM_STR 0x20026
#define PM_STR 0x20027
#define D_T_FMT 0x20028
#define D_FMT 0x20029
#define T_FMT 0x2002A
#define T_FMT_AMPM 0x2002B
#define ERA 0x2002C
#define ERA_D_FMT 0x2002E
#define ALT_DIGITS 0x2002F
#define ERA_D_T_FMT 0x20030
#define ERA_T_FMT 0x20031
#define CODESET 14
#define CRNCYSTR 0x4000F
#define RADIXCHAR 0x10000
#define THOUSEP 0x10001
#define YESEXPR 0x50000
#define NOEXPR 0x50001
#define _NL_LOCALE_NAME(cat) (((cat) << 16) | 0xffff)
#if defined(_GNU_SOURCE)
#define NL_LOCALE_NAME(cat) _NL_LOCALE_NAME(cat)
#endif
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
#define YESSTR 0x50002
#define NOSTR 0x50003
#endif
#ifdef __cplusplus
}
#endif
#endif // __LANGINFO_H_
================================================
FILE: lib/embeddedartistry_libc/include/limits.h
================================================
#ifndef LIMITS_H__
#define LIMITS_H__
// System Specific Limits
#include <_limits.h>
/* Support signed or unsigned plain-char */
#if '\0' - 1 > 0
/*! Expands to the integer constant 0. Minimum value of char */
#define CHAR_MIN 0
/*! Expands to the integer constant 255. Maximum value of char */
#define CHAR_MAX 255
#else
/*! Expands to the integer constant -128. Minimum value of char */
#define CHAR_MIN (-128)
/*! Expands to the integer constant 127. Maximum value of char */
#define CHAR_MAX 127
#endif
/* Some universal constants... */
/*! Expands to the integer constant 8. Number of bits in byte */
#define CHAR_BIT 8
/*! Expands to the integer constant -128. Minimum value of signed char */
#define SCHAR_MIN (-128)
/*! Expands to the integer constant 127. Maximum value of signed char */
#define SCHAR_MAX 127
/*! Expands to the integer constant 255. Maximum value of unsigned char */
#define UCHAR_MAX 255
/*! Expands to -1 - 0x7fff. Minimum value of signed short */
#define SHRT_MIN (-1 - 0x7fff)
/*! Expands to the Hex constant 0x7fff. Maximum value of signed short */
#define SHRT_MAX 0x7fff
/*! Expands to hex 0xffff. Maximum value of unsigned short */
#define USHRT_MAX 0xffff
/*! Expands to hex -1 - 0x7fffffff. Minimum value of signed int */
#define INT_MIN (-1 - 0x7fffffff)
/*! Expands to hex 0x7fffffff. Maximum value of signed int */
#define INT_MAX 0x7fffffff
/*! Expands to hex 0xffffffffU. Maximum value of unsigned int */
#define UINT_MAX 0xffffffffU
/*! Expands to (-LONG_MAX - 1). Minimum value of signed long */
#define LONG_MIN (-LONG_MAX - 1)
/*! Expands to (2UL * LONG_MAX + 1). Maximum value of unsigned long */
#define ULONG_MAX (2UL * LONG_MAX + 1)
/*! Expands to (-LLONG_MAX - 1). Minimum value of signed long long */
#define LLONG_MIN (-LLONG_MAX - 1)
/*! Expands to (2ULL * LLONG_MAX + 1). Maximum value of unsigned long long */
#define ULLONG_MAX (2ULL * LLONG_MAX + 1)
/*! Maximum multibyte length of a character across all locales */
#define MB_LEN_MAX 4
#endif // LIMITS_H__
================================================
FILE: lib/embeddedartistry_libc/include/locale.h
================================================
#ifndef __LOCALE_H_
#define __LOCALE_H_
#ifdef __cplusplus
extern "C" {
#endif
// TODO: documnentation
#define LC_CTYPE 0
#define LC_NUMERIC 1
#define LC_TIME 2
#define LC_COLLATE 3
#define LC_MONETARY 4
#define LC_MESSAGES 5
#define LC_ALL 6
struct lconv
{
char* decimal_point;
char* thousands_sep;
char* grouping;
char* int_curr_symbol;
char* currency_symbol;
char* mon_decimal_point;
char* mon_thousands_sep;
char* mon_grouping;
char* positive_sign;
char* negative_sign;
char int_frac_digits;
char frac_digits;
char p_cs_precedes;
char p_sep_by_space;
char n_cs_precedes;
char n_sep_by_space;
char p_sign_posn;
char n_sign_posn;
char int_p_cs_precedes;
char int_p_sep_by_space;
char int_n_cs_precedes;
char int_n_sep_by_space;
char int_p_sign_posn;
char int_n_sign_posn;
};
#ifndef DISABLE_UNIMPLEMENTED_LIBC_APIS
char* setlocale(int, const char*);
struct lconv* localeconv(void);
#endif
#ifdef __cplusplus
}
#endif
#endif // __LOCALE_H_
================================================
FILE: lib/embeddedartistry_libc/include/math.h
================================================
#ifndef MATH_H__
#define MATH_H__
#ifdef __cplusplus
extern "C" {
#endif
#include <openlibm_fenv.h>
#include <openlibm_math.h>
#ifdef FLT_EVAL_METHOD
#if FLT_EVAL_METHOD == 0
typedef float float_t;
typedef double double_t;
#elif FLT_EVAL_METHOD == 1
typedef double float_t;
typedef double double_t;
#elif FLT_EVAL_METHOD == 2
typedef long double float_t;
typedef long double double_t;
#else
typedef float float_t;
typedef double double_t;
#endif // FLT_EVAL_METHOD value
#else
typedef float float_t;
typedef double double_t;
#endif // ifdef FLT_EVAL_METHOD
double fabs(double);
float fabsf(float);
// long double fabsl(long double);
#ifdef __cplusplus
}
#endif
#endif // MATH_H__
================================================
FILE: lib/embeddedartistry_libc/include/memory.h
================================================
#include <string.h>
/**
* This file just serves as a functional passthrough to string.h.
*
* All primary definitions can be found in string.h. Please keep this file empty.
*/
================================================
FILE: lib/embeddedartistry_libc/include/nl_types.h
================================================
#ifndef __NL_TYPES_H
#define __NL_TYPES_H
#ifdef __cplusplus
extern "C" {
#endif
#define NL_SETD 1
#define NL_CAT_LOCALE 1
typedef int nl_item;
typedef void* nl_catd;
#ifndef DISABLE_UNIMPLEMENTED_LIBC_APIS
nl_catd catopen(const char*, int);
char* catgets(nl_catd, int, int, const char*);
int catclose(nl_catd);
#endif
#ifdef __cplusplus
}
#endif
#endif // __NL_TYPES_H
================================================
FILE: lib/embeddedartistry_libc/include/setjmp.h
================================================
#ifndef __SETJMP_H_
#define __SETJMP_H_
#include <_types/_setjmp.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct __jmp_buf_tag
{
__jmp_buf __jb;
unsigned long __fl;
unsigned long __ss[128 / sizeof(long)];
} jmp_buf[1];
typedef jmp_buf sigjmp_buf;
#ifndef DISABLE_UNIMPLEMENTED_LIBC_APIS
int sigsetjmp(sigjmp_buf, int);
void siglongjmp(sigjmp_buf, int) __attribute__((noreturn));
#endif
#ifndef DISABLE_UNIMPLEMENTED_LIBC_APIS
int _setjmp(jmp_buf);
int setjmp(jmp_buf);
void _longjmp(jmp_buf, int) __attribute__((noreturn));
void longjmp(jmp_buf, int) __attribute__((noreturn));
#endif
#ifdef __cplusplus
}
#endif
#endif // __SETJMP_H_
================================================
FILE: lib/embeddedartistry_libc/include/stdarg.h
================================================
#ifndef _STDARG_H
#define _STDARG_H
#ifdef __cplusplus
extern "C" {
#endif
#define va_start(v, l) __builtin_va_start(v, l)
#define va_end(v) __builtin_va_end(v)
#define va_arg(v, l) __builtin_va_arg(v, l)
#define va_copy(d, s) __builtin_va_copy(d, s)
typedef __builtin_va_list va_list;
typedef __builtin_va_list __isoc_va_list;
#ifdef __cplusplus
}
#endif
#endif
================================================
FILE: lib/embeddedartistry_libc/include/stdbool.h
================================================
#ifndef __STDBOOL_H_
#define __STDBOOL_H_
#ifndef __cplusplus
/*
* Only defined for C, since C++ has its own bool support
* */
/** Expands to the integer constant 1. */
#define true 1
/** Expands to the integer constant 0. */
#define false 0
/** Expands to _Bool. */
typedef _Bool bool;
#endif
#endif //__STDBOOL_H_
================================================
FILE: lib/embeddedartistry_libc/include/stddef.h
================================================
#ifndef STDDEF_H_
#define STDDEF_H_
#include <_types/_ptrdiff_t.h>
#include <_types/_size_t.h>
#pragma mark - NULL -
#ifdef __cplusplus
/*! Expands to 0L (for C++). Implementation-defined null pointer constant */
#define NULL 0L
#else
/*! Expands to ((void*)0) (not C++). Implementation-defined null pointer constant */
#define NULL ((void*)0)
#endif
#pragma mark - offsetof -
#if __GNUC__ > 3
/*! byte offset from the beginning of a struct type to specified member */
#define offsetof(type, member) __builtin_offsetof(type, member)
#else
/*! byte offset from the beginning of a struct type to specified member */
#define offsetof(type, member) ((size_t)((char*)&(((type*)0)->member) - (char*)0))
#endif
#pragma mark - max_align_t -
#if(defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \
(defined(__cplusplus) && __cplusplus >= 201103L)
/*! A type with alignment requirement as great as any other scalar type */
typedef long double max_align_t;
#endif
#endif // STDDEF_H_
================================================
FILE: lib/embeddedartistry_libc/include/stdint.h
================================================
/*
* Copyright (c) 2000-2010 Apple Inc.
* All rights reserved.
*/
#ifndef STDINT_H_
#define STDINT_H_
#include <limits.h>
#if __LP64__
#define __WORDSIZE 64
#else
#define __WORDSIZE 32
#endif
/* from ISO/IEC 988:1999 spec */
/* 7.18.1.1 Exact-width integer types */
#include <_types/_int16_t.h>
#include <_types/_int32_t.h>
#include <_types/_int64_t.h>
#include <_types/_int8_t.h>
#include <_types/_uint16_t.h>
#include <_types/_uint32_t.h>
#include <_types/_uint64_t.h>
#include <_types/_uint8_t.h>
/* 7.18.1.2 Minimum-width integer types */
/*! smallest signed integer type with width of at least 8 */
typedef int8_t int_least8_t;
/*! smallest signed integer type with width of at least 16 */
typedef int16_t int_least16_t;
/*! smallest signed integer type with width of at least 32 */
typedef int32_t int_least32_t;
/*! smallest signed integer type with width of at least 64 */
typedef int64_t int_least64_t;
/*! smallest unsigned integer type with width of at least 8 */
typedef uint8_t uint_least8_t;
/*! smallest unsigned integer type with width of at least 16 */
typedef uint16_t uint_least16_t;
/*! smallest unsigned integer type with width of at least 32 */
typedef uint32_t uint_least32_t;
/*! smallest unsigned integer type with width of at least 64 */
typedef uint64_t uint_least64_t;
/* 7.18.1.3 Fastest-width integer types */
/*! fastest signed integer type with width of at least 8 */
typedef int8_t int_fast8_t;
/*! fastest signed integer type with width of at least 16 */
typedef int32_t int_fast16_t;
/*! fastest signed integer type with width of at least 32 */
typedef int32_t int_fast32_t;
/*! fastest signed integer type with width of at least 64 */
typedef int64_t int_fast64_t;
/*! fastest unsigned integer type with width of at least 8 */
typedef uint8_t uint_fast8_t;
/*! fastest unsigned integer type with width of at least 16 */
typedef uint32_t uint_fast16_t;
/*! fastest unsigned integer type with width of at least 32 */
typedef uint32_t uint_fast32_t;
/*! fastest unsigned integer type with width of at least 64 */
typedef uint64_t uint_fast64_t;
/* 7.18.1.4 Integer types capable of holding object pointers */
#include <_types/_intptr_t.h>
#include <_types/_uintptr_t.h>
/* 7.18.1.5 Greatest-width integer types */
#include <_types/_intmax_t.h>
#include <_types/_uintmax_t.h>
/* 7.18.2 Limits of specified-width integer types:
* These #defines specify the minimum and maximum limits
* of each of the types declared above.
*/
/* 7.18.2.1 Limits of exact-width integer types */
/*! Expands to 127. Maximum value of an object of type int8_t */
#define INT8_MAX 127
/*! Expands to 32767. Maximum value of an object of type int16_t */
#define INT16_MAX 32767
/*! Expands to 2147483647. Maximum value of an object of type int32_t */
#define INT32_MAX 2147483647
/*! Expands to 9223372036854775807LL. Maximum value of an object of type int64_t */
#define INT64_MAX 9223372036854775807LL
/*! Expands to -128. Minimum value of an object of type int8_t */
#define INT8_MIN -128
/*! Expands to -32768. Minimum value of an object of type int16_t */
#define INT16_MIN -32768
/*
Note: the literal "most negative int" cannot be written in C --
the rules in the standard (section 6.4.4.1 in C99) will give it
an unsigned type, so INT32_MIN (and the most negative member of
any larger signed type) must be written via a constant expression.
*/
/*! Expands to (-INT32_MAX - 1). Minimum value of an object of type int32_t */
#define INT32_MIN (-INT32_MAX - 1)
/*! Expands to (-INT64_MAX - 1). Minimum value of an object of type int64_t */
#define INT64_MIN (-INT64_MAX - 1)
/*! Expands to 255. Maximum value of an object of type uint8_t */
#define UINT8_MAX 255
/*! Expands to 65535. Maximum value of an object of type uint16_t */
#define UINT16_MAX 65535
/*! Expands to 4294967295U. Maximum value of an object of type uint32_t */
#define UINT32_MAX 4294967295U
/*! Expands to 18446744073709551615ULL. Maximum value of an object of type uint64_t */
#define UINT64_MAX 18446744073709551615ULL
/* 7.18.2.2 Limits of minimum-width integer types */
/*! Minimum value of an object of type int_least8_t */
#define INT_LEAST8_MIN INT8_MIN
/*! Minimum value of an object of type int_least16_t */
#define INT_LEAST16_MIN INT16_MIN
/*! Minimum value of an object of type int_least32_t */
#define INT_LEAST32_MIN INT32_MIN
/*! Minimum value of an object of type int_least64_t */
#define INT_LEAST64_MIN INT64_MIN
/*! Minimum value of an object of type uint_least8_t */
#define UINT_LEAST8_MIN UINT8_MIN
/*! Minimum value of an object of type uint_least16_t */
#define UINT_LEAST16_MIN UINT16_MIN
/*! Minimum value of an object of type uint_least32_t */
#define UINT_LEAST32_MIN UINT32_MIN
/*! Minimum value of an object of type uint_least64_t */
#define UINT_LEAST64_MIN UINT64_MIN
/*! Maximum value of an object of type uint_least8_t */
#define INT_LEAST8_MAX INT8_MAX
/*! Maximum value of an object of type int_least16_t */
#define INT_LEAST16_MAX INT16_MAX
/*! Maximum value of an object of type int_least32_t */
#define INT_LEAST32_MAX INT32_MAX
/*! Maximum value of an object of type int_least64_t */
#define INT_LEAST64_MAX INT64_MAX
/*! Maximum value of an object of type uint_least8_t */
#define UINT_LEAST8_MAX UINT8_MAX
/*! Maximum value of an object of type uint_least16_t */
#define UINT_LEAST16_MAX UINT16_MAX
/*! Maximum value of an object of type uint_least32_t */
#define UINT_LEAST32_MAX UINT32_MAX
/*! Maximum value of an object of type uint_least64_t */
#define UINT_LEAST64_MAX UINT64_MAX
/* 7.18.2.3 Limits of fastest minimum-width integer types */
/*! Minimum value of an object of type int_fast8_t */
#define INT_FAST8_MIN INT8_MIN
/*! Minimum value of an object of type int_fast16_t */
#define INT_FAST16_MIN INT32_MIN
/*! Minimum value of an object of type int_fast32_t */
#define INT_FAST32_MIN INT32_MIN
/*! Minimum value of an object of type int_fast64_t */
#define INT_FAST64_MIN INT64_MIN
/*! Maximum value of an object of type int_fast8_t */
#define INT_FAST8_MAX INT8_MAX
/*! Maximum value of an object of type int_fast16_t */
#define INT_FAST16_MAX INT32_MAX
/*! Maximum value of an object of type int_fast32_t */
#define INT_FAST32_MAX INT32_MAX
/*! Maximum value of an object of type int_fast64_t */
#define INT_FAST64_MAX INT64_MAX
/*! Minimum value of an object of type uint_fast8_t */
#define UINT_FAST8_MIN UINT8_MIN
/*! Minimum value of an object of type uint_fast16_t */
#define UINT_FAST16_MIN UINT32_MIN
/*! Minimum value of an object of type uint_fast32_t */
#define UINT_FAST32_MIN UINT32_MIN
/*! Minimum value of an object of type uint_fast64_t */
#define UINT_FAST64_MIN UINT64_MIN
/*! Maximum value of an object of type uint_fast8_t */
#define UINT_FAST8_MAX UINT8_MAX
/*! Maximum value of an object of type uint_fast16_t */
#define UINT_FAST16_MAX UINT32_MAX
/*! Maximum value of an object of type uint_fast32_t */
#define UINT_FAST32_MAX UINT32_MAX
/*! Maximum value of an object of type uint_fast64_t */
#define UINT_FAST64_MAX UINT64_MAX
#if __WORDSIZE == 64
/*! Minimum value of an object of type intptr_t */
#define INTPTR_MIN INT64_MIN
/*! Maximum value of an object of type intptr_t */
#define INTPTR_MAX INT64_MAX
/*! Maximum value of an object of type uintptr_t */
#define UINTPTR_MAX UINT64_MAX
/*! Minimum value of an object of type ptrdiff_t */
#define PTRDIFF_MIN INT64_MIN
/*! Maximum value of an object of type ptrdiff_t */
#define PTRDIFF_MAX INT64_MAX
/*! Maximum value of object of size_t type */
#define SIZE_MAX UINT64_MAX
#else // __WORDSIZE is 32 bits
/*! Minimum value of an object of type intptr_t */
#define INTPTR_MIN INT32_MIN
/*! Maximum value of an object of type intptr_t */
#define INTPTR_MAX INT32_MAX
/*! Maximum value of an object of type uintptr_t */
#define UINTPTR_MAX UINT32_MAX
/*! Minimum value of an object of type ptrdiff_t */
#define PTRDIFF_MIN INT32_MIN
/*! Maximum value of an object of type ptrdiff_t */
#define PTRDIFF_MAX INT32_MAX
#endif
/*! Minimum value of an object of type intmax_t */
#define INTMAX_MIN INT64_MIN
/*! Maximum value of an object of type intmax_t */
#define INTMAX_MAX INT64_MAX
/*! Maximum value of an object of type uintmax_t */
#define UINTMAX_MAX UINT64_MAX
/*! Maximum value of object of size_t type */
#ifndef SIZE_MAX
#define SIZE_MAX UINT32_MAX
#endif
#if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1
/*! Expands to (SIZE_MAX >> 1).
* The largest acceptable size for bounds-checked functions, expands to either constant or variable
* which may change at runtime (e.g. as the currently allocated memory size changes).
* */
#define RSIZE_MAX (SIZE_MAX >> 1)
#endif
#ifndef WCHAR_MAX
#ifdef __WCHAR_MAX__
/*! Maximum value of object of wchar_t type. */
#define WCHAR_MAX __WCHAR_MAX__
#else
/*! Expands to 0x7fffffff. Maximum value of object of wchar_t type */
#define WCHAR_MAX 0x7fffffff
#endif
#endif
/* WCHAR_MIN should be 0 if wchar_t is an unsigned type and
(-WCHAR_MAX-1) if wchar_t is a signed type. Unfortunately,
it turns out that -fshort-wchar changes the signedness of
the type. */
#ifndef WCHAR_MIN
#if WCHAR_MAX == 0xffff
/*! Expands to 0. Minimum value of object of wchar_t type */
#define WCHAR_MIN 0
#else
/*! Expands to (-WCHAR_MAX - 1). Minimum value of object of wchar_t type */
#define WCHAR_MIN (-WCHAR_MAX - 1)
#endif
#endif
/*! Minimum value of object of wint_t type */
#define WINT_MIN INT32_MIN
/*! Maximum value of object of wint_t type */
#define WINT_MAX INT32_MAX
/*! Minimum value of object of sig_atomic_t type */
#define SIG_ATOMIC_MIN INT32_MIN
/*! Maximum value of object of sig_atomic_t type */
#define SIG_ATOMIC_MAX INT32_MAX
/* 7.18.4 Macros for integer constants */
/*! Expands to an integer constant expression having the value specified by its argument and the
* type int_least8_t */
#define INT8_C(v) (v)
/*! Expands to an integer constant expression having the value specified by its argument and the
* type int_least16_t */
#define INT16_C(v) (v)
/*! Expands to an integer constant expression having the value specified by its argument and the
* type int_least32_t */
#define INT32_C(v) (v)
/*! Expands to an integer constant expression having the value specified by its argument and the
* type int_least64_t */
#define INT64_C(v) (v##LL)
/*! Expands to an integer constant expression having the value specified by its argument and the
* type uint_least8_t */
#define UINT8_C(v) (v##U)
/*! Expands to an integer constant expression having the value specified by its argument and the
* type uint_least16_t */
#define UINT16_C(v) (v##U)
/*! Expands to an integer constant expression having the value specified by its argument and the
* type uint_least32_t */
#define UINT32_C(v) (v##U)
/*! Expands to an integer constant expression having the value specified by its argument and the
* type uint_least64_t */
#define UINT64_C(v) (v##ULL)
#ifdef __LP64__
/*! Expands to an integer constant expression having the value specified by its argument and the
* type intmax_t */
#define INTMAX_C(v) (v##L)
/*! Expands to an integer constant expression having the value specified by its argument and the
* type uintmax_t */
#define UINTMAX_C(v) (v##UL)
#else
/*! Expands to an integer constant expression having the value specified by its argument and the
* type intmax_t */
#define INTMAX_C(v) (v##LL)
/*! Expands to an integer constant expression having the value specified by its argument and the
* type uintmax_t */
#define UINTMAX_C(v) (v##ULL)
#endif
#endif /* STDINT_H_ */
================================================
FILE: lib/embeddedartistry_libc/include/stdio.h
================================================
#ifndef STDIO_H__
#define STDIO_H__
#include <printf.h>
#include <stdarg.h>
#include <stddef.h>
#include <wctype.h> //TODO: eliminate need for this header here (refactor types?)
#ifdef __cplusplus
extern "C" {
#endif //__cplusplus
/// NOTE: The files included here are primarily stubs to get C++ compiling.
/// If you are linking on a host machine, these functions will need to be
/// supplied by the system library
/// If you are linking on bare metal, these symbols will not be defined!
/// Only the functions defined in printf.h and in the Supported Functions
/// section below are currently safe for bare metal
#pragma mark - Definitions -
#undef EOF
#define EOF (-1)
typedef union _G_fpos64_t
{
char __opaque[16];
long long __lldata;
double __align;
} fpos_t;
/*
* Stdio buffers.
*/
struct __sbuf
{
unsigned char* _base;
int _size;
};
/*
* struct __sFILE_fake is the start of a struct __sFILE, with only the
* minimal fields allocated. In __sinit() we really allocate the 3
* standard streams, etc., and point away from this fake.
*/
struct __sFILE_fake
{
unsigned char* _p; /* current position in (some) buffer */
int _r; /* read space left for getc() */
int _w; /* write space left for putc() */
short _flags; /* flags, below; this FILE is free if 0 */
short _file; /* fileno, if Unix descriptor, else -1 */
struct __sbuf _bf; /* the buffer (at least 1 byte, if !NULL) */
int _lbfsize; /* 0 or -_bf._size, for inline putc */
struct _reent* _data;
};
#if !defined(__FILE_defined)
typedef struct __sFILE_fake FILE;
#define __FILE_defined
#endif
#pragma mark - Supported Functions -
/// Requires a definition of _putchar() for your platform
int putchar(int c);
int puts(const char*);
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
int asprintf(char**, const char*, ...);
int vasprintf(char**, const char*, __isoc_va_list);
#endif
#pragma mark - Unsupported Functions -
#ifndef DISABLE_UNIMPLEMENTED_LIBC_APIS
int fseek(FILE*, long, int);
long ftell(FILE*);
void rewind(FILE*);
int fgetpos(FILE* __restrict, fpos_t* __restrict);
int fsetpos(FILE*, const fpos_t*);
size_t fread(void* __restrict, size_t, size_t, FILE* __restrict);
size_t fwrite(const void* __restrict, size_t, size_t, FILE* __restrict);
char* fgets(char* __restrict, int, FILE* __restrict);
#if __STDC_VERSION__ < 201112L
char* gets(char*);
#endif
int fputc(int, FILE*);
int putc(int, FILE*);
wchar_t* fgetws(wchar_t* __restrict, int, FILE* __restrict);
int fputws(const wchar_t* __restrict, FILE* __restrict);
int fgetc(FILE*);
int getc(FILE*);
int getchar(void);
int ungetc(int, FILE*);
wint_t fgetwc(FILE*);
wint_t getwc(FILE*);
wint_t getwchar(void);
wint_t ungetwc(wint_t, FILE*);
wint_t fputwc(wchar_t, FILE*);
wint_t putwc(wchar_t, FILE*);
wint_t putwchar(wchar_t);
char* tmpnam(char*);
FILE* tmpfile(void);
int fwide(FILE*, int);
int fputs(const char* __restrict, FILE* __restrict);
FILE* fopen(const char* __restrict, const char* __restrict);
FILE* freopen(const char* __restrict, const char* __restrict, FILE* __restrict);
int fclose(FILE*);
int feof(FILE*);
int ferror(FILE*);
int fflush(FILE*);
void clearerr(FILE*);
int remove(const char*);
int rename(const char*, const char*);
int setvbuf(FILE* __restrict, char* __restrict, int, size_t);
void setbuf(FILE* __restrict, char* __restrict);
int scanf(const char* __restrict, ...);
int fscanf(FILE* __restrict, const char* __restrict, ...);
int sscanf(const char* __restrict, const char* __restrict, ...);
int vscanf(const char* __restrict, __isoc_va_list);
int vfscanf(FILE* __restrict, const char* __restrict, __isoc_va_list);
int vsscanf(const char* __restrict, const char* __restrict, __isoc_va_list);
int wscanf(const wchar_t* __restrict, ...);
int fwscanf(FILE* __restrict, const wchar_t* __restrict, ...);
int swscanf(const wchar_t* __restrict, const wchar_t* __restrict, ...);
int vwscanf(const wchar_t* __restrict, __isoc_va_list);
int vfwscanf(FILE* __restrict, const wchar_t* __restrict, __isoc_va_list);
int vswscanf(const wchar_t* __restrict, const wchar_t* __restrict, __isoc_va_list);
/// Unsupported printf variants
void perror(const char*);
int wprintf(const wchar_t* __restrict, ...);
int fprintf(FILE* __restrict, const char* __restrict, ...);
int vprintf(const char* __restrict, __isoc_va_list);
int vfprintf(FILE* __restrict, const char* __restrict, __isoc_va_list);
int vsprintf(char* __restrict, const char* __restrict, __isoc_va_list);
int fwprintf(FILE* __restrict, const wchar_t* __restrict, ...);
int swprintf(wchar_t* __restrict, size_t, const wchar_t* __restrict, ...);
int vwprintf(const wchar_t* __restrict, __isoc_va_list);
int vfwprintf(FILE* __restrict, const wchar_t* __restrict, __isoc_va_list);
int vswprintf(wchar_t* __restrict, size_t, const wchar_t* __restrict, __isoc_va_list);
#endif
#ifdef __cplusplus
}
#endif //__cplusplus
#endif // STDIO_H__
================================================
FILE: lib/embeddedartistry_libc/include/stdlib.h
================================================
#ifndef STDLIB_H_
#define STDLIB_H_
#include <stddef.h>
#include <stdint.h>
#include <wctype.h> //TODO: remove need for this? due to wchar_t
#ifdef __cplusplus
extern "C" {
#endif //__cplusplus
#pragma mark - definitions & types -
/// Division type for integers
typedef struct
{
int quot; /**< The quotient */
int rem; /**< The remainder */
} div_t;
/// Division type for long integers
typedef struct
{
long quot; /**< The quotient */
long rem; /**< The remainder */
} ldiv_t;
/// Division type for long long integers
typedef struct
{
long long quot; /**< The quotient */
long long rem; /**< The remainder */
} lldiv_t;
/*! Expands to 1. Indicates program execution execution status. */
#define EXIT_FAILURE 1
/*! Expands to 0. indicates program execution execution status. */
#define EXIT_SUCCESS 0
/*! Expands to an integer constant expression equal to the maximum value returned by the function
* @see rand() It's guaranteed that this value is at least 32767
* */
#define RAND_MAX (0x7fffffff)
/// Length of the current locale's multi-byte character.
/// We are faking this for now, since we don't provide locale support.
#define MB_CUR_MAX sizeof(wchar_t)
#pragma mark - runtime -
// TODO
void abort(void) __attribute__((noreturn));
int atexit(void (*)(void));
void exit(int) __attribute__((noreturn));
/** TODO: CLEANUP DOC
* Terminates the process normally by returning control to the host environment,
* but without performing any of the regular cleanup tasks for terminating processes (as function
* exit does). No object destructors, nor functions registered by atexit or at_quick_exit are called
*/
void _Exit(int) __attribute__((noreturn));
int at_quick_exit(void (*)(void));
void quick_exit(int) __attribute__((noreturn));
int cxa_atexit(void (*)(void*), void*, void*);
#ifndef DISABLE_UNIMPLEMENTED_LIBC_APIS
// Unsupported in bare metal environments:
char* getenv(const char*);
#endif
#ifndef DISABLE_UNIMPLEMENTED_LIBC_APIS
// Unsupported in bare metal environments:
int system(const char*);
#endif
#pragma mark - Multibyte APIs -
#ifndef DISABLE_UNIMPLEMENTED_LIBC_APIS
int mblen(const char*, size_t);
int mbtowc(wchar_t* __restrict, const char* __restrict, size_t);
int wctomb(char*, wchar_t);
size_t mbstowcs(wchar_t* __restrict, const char* __restrict, size_t);
size_t wcstombs(char* __restrict, const wchar_t* __restrict, size_t);
#endif
#pragma mark - ascii-to-x -
/**
* @brief Interprets an integer value in a byte string pointed to by str.
*
* Interprets an integer value in a byte string pointed to by str.
* Discards any whitespace characters until the first non-whitespace character
* is found, then takes as many characters as possible to form a valid integer number
* representation and converts them to an integer value.
* The valid integer value consists of the following parts:
* a) (optional) plus or minus sign
* b) numeric digits
*
* @param str pointer to the null-terminated byte string to be interpreted
* @return Integer value corresponding to the contents of str on success.
* If the converted value falls out of range of corresponding return type,
* the return value is undefined. If no conversion can be performed, 0 is returned.
* */
int atoi(const char* str);
/**
* @brief Interprets a Long value in a byte string pointed to by str.
*
* Interprets a Long value in a byte string pointed to by str.
* Discards any whitespace characters until the first non-whitespace character
* is found, then takes as many characters as possible to form a valid long number
* representation and converts them to an long value.
* The valid Long value consists of the following parts:
* a) (optional) plus or minus sign
* b) numeric digits
*
* @param str pointer to the null-terminated byte string to be interpreted
* @return long value corresponding to the contents of str on success.
* If the converted value falls out of range of corresponding return type,
* the return value is undefined. If no conversion can be performed, 0 is returned.
* */
long atol(const char* str);
/**
* @brief Interprets a Long Long value in a byte string pointed to by str.
*
* Interprets a Long Long value in a byte string pointed to by str.
* Discards any whitespace characters until the first non-whitespace character
* is found, then takes as many characters as possible to form a valid long number
* representation and converts them to an long long value.
* The valid Long long value consists of the following parts:
* a) (optional) plus or minus sign
* b) numeric digits
*
* @param str pointer to the null-terminated byte string to be interpreted
* @return long value corresponding to the contents of str on success.
* If the converted value falls out of range of corresponding return type,
* the return value is undefined. If no conversion can be performed, 0 is returned.
* */
long long atoll(const char* str);
/**
* @brief Interprets a floating-point value in a byte string pointed to by str.
*
* Interprets a floating-point value in a byte string pointed to by str.
* Function discards any whitespace characters (as determined by @see isspace()
* until first non-whitespace character is found. Then it takes as many characters
* as possible to form a valid floating-point representation and converts them to
* a floating-point value.
* The valid floating-point value can be one of the following:
* 1) decimal floating-point expression. It consists of the following parts:
* a) (optional) plus or minus sign
* b) nonempty sequence of decimal digits optionally containing
* decimal-point character
* c) (optional) e or E followed with optional minus or plus sign
* and nonempty sequence of decimal digits (defines exponent)
*
*
* @param str pointer to the null-terminated byte string to be interpreted
* @return double value corresponding to the contents of str on success.
* If the converted value falls out of range of corresponding return type,
* the return value is undefined. If no conversion can be performed, 0.0 is returned.
* */
double atof(const char* str);
#pragma mark - str-to-x -
/**
* @brief Interprets a floating-point value in a byte string pointed to by str.
*
* Interprets a floating-point value in a byte string pointed to by str.
* Function discards any whitespace characters (as determined by @see isspace())
* until first non-whitespace character is found. Then it takes as many characters
* as possible to form a valid floating-point representation and converts them to
* a floating-point value.
* The valid floating-point value can be one of the following:
* a) decimal floating-point expression. It consists of the following parts:
* 1) (optional) plus or minus sign
* 2) nonempty sequence of decimal digits optionally containing decimal-point character
* (as determined by the current C locale) (defines significand)
* 3) (optional) e or E followed with optional minus or plus sign and nonempty sequence
* of decimal digits (defines exponent)
* b) binary floating-point expression. It consists of the following parts:
* 1) (optional) plus or minus sign
* 2) 0x or 0X
* c) infinity expression. It consists of the following parts:
* 1) (optional) plus or minus sign
* 2) INF or INFINITY ignoring case
* d) not-a-number expression. It consists of the following parts:
* 1) (optional) plus or minus sign
* 2) NAN or NAN(char_sequence) ignoring case of the NAN part. char_sequence can only
* contain digits, Latin letters, and underscores. The result is a quiet NaN floating-point value.
*
*
*
* The functions sets the pointer pointed to by str_end to point to the character past the last
* character interpreted. If str_end is NULL, it is ignored.
*
*
* @param str a pointer to the null-terminated byte string to be interpreted
* @param str_end pointer to a pointer to character
* @return Floating-point value corresponding to the contents of str on success.
* If the converted value falls out of range of corresponding return type, range
* error occurs and HUGE_VAL, HUGE_VALF or HUGE_VALL is returned.
* If no conversion can be performed, 0 is returned.
* */
float strtof(const char* __restrict str, char** __restrict str_end);
/**
* @brief Interprets a floating-point value in a byte string pointed to by str.
*
* Interprets a floating-point value in a byte string pointed to by str.
* Function discards any whitespace characters (as determined by @see isspace())
* until first non-whitespace character is found. Then it takes as many characters
* as possible to form a valid floating-point representation and converts them to
* a floating-point value.
* The valid floating-point value can be one of the following:
* a) decimal floating-point expression. It consists of the following parts:
* 1) (optional) plus or minus sign
* 2) nonempty sequence of decimal digits optionally containing decimal-point character
* (as determined by the current C locale) (defines significand)
* 3) (optional) e or E followed with optional minus or plus sign and nonempty sequence
* of decimal digits (defines exponent)
* b) binary floating-point expression. It consists of the following parts:
* 1) (optional) plus or minus sign
* 2) 0x or 0X
* c) infinity expression. It consists of the following parts:
* 1) (optional) plus or minus sign
* 2) INF or INFINITY ignoring case
* d) not-a-number expression. It consists of the following parts:
* 1) (optional) plus or minus sign
* 2) NAN or NAN(char_sequence) ignoring case of the NAN part. char_sequence can only
* contain digits, Latin letters, and underscores. The result is a quiet NaN floating-point value.
*
*
*
* The functions sets the pointer pointed to by str_end to point to the character past the last
* character interpreted. If str_end is NULL, it is ignored.
*
*
* @param str a pointer to the null-terminated byte string to be interpreted
* @param str_end pointer to a pointer to character
* @return Floating-point value corresponding to the contents of str on success.
* If the converted value falls out of range of corresponding return type, range
* error occurs and HUGE_VAL, HUGE_VALF or HUGE_VALL is returned.
* If no conversion can be performed, 0 is returned.
* */
double strtod(const char* __restrict str, char** __restrict str_end);
/**
* @brief Interprets an long value in a byte string pointed to by str.
*
*
* Interprets an long value in a byte string pointed to by str.
* Discards any whitespace characters (as identified by calling @see isspace())
* until the first non-whitespace character is found, then takes as many characters
* as possible to form a valid base-n (where n=base) long number representation and
* converts them to an long value. The valid long value consists of the following parts:
*
* 1) (optional) plus or minus sign
* 2) (optional) prefix (0) indicating octal base (applies only when the base is 8 or 0)
* 3) (optional) prefix (0x or 0X) indicating hexadecimal base (applies only when the base is
* 16 or 0) 4) a sequence of digits
*
*
* The set of valid values for base is {0,2,3,...,36}. The set of valid digits for base-2 integers
* is {0,1}, for base-3 integers is {0,1,2}, and so on. For bases larger than 10, valid digits
* include alphabetic characters, starting from Aa for base-11 integer, to Zz for base-36 integer.
* The case of the characters is ignored.
*
*
* If the value of base is 0, the numeric base is auto-detected: if the prefix is 0, the base
* is octal, if the prefix is 0x or 0X, the base is hexadecimal, otherwise the base is decimal.
*
* If the minus sign was part of the input sequence, the numeric value calculated from
* the sequence of digits is negated as if by unary minus in the result type.
*
* The functions sets the pointer pointed to by str_end to point to the character past
* the last character interpreted. If str_end is NULL, it is ignored.
*
* If the str is empty or does not have the expected form, no conversion is performed,
* and (if str_end is not NULL) the value of str is stored in the object pointed to by str_end.
*
* @param str pointer to the null-terminated byte string to be interpreted
* @param str_end pointer to a pointer to character.
* @param base base of the interpreted integer value
*
* @return returns the result of the conversion, unless the value would underflow or overflow.
* If the converted value falls out of range of corresponding return type, a range error occurs
* (setting errno to ERANGE) and LONG_MAX, LONG_MIN, LLONG_MAX or LLONG_MIN is returned.
* If no conversion can be performed, 0 is returned.
* */
long strtol(const char* __restrict str, char** __restrict str_end, int base);
/**
* @brief Interprets an unsigned long value in a byte string pointed to by str.
*
*
* Interprets an unsigned long value in a byte string pointed to by str.
* Discards any whitespace characters (as identified by calling @see isspace())
* until the first non-whitespace character is found, then takes as many characters
* as possible to form a valid base-n (where n=base) long number representation and
* converts them to an unsigned long value. The valid long value consists of the following parts:
*
* 1) (optional) plus or minus sign
* 2) (optional) prefix (0) indicating octal base (applies only when the base is 8 or 0)
* 3) (optional) prefix (0x or 0X) indicating hexadecimal base (applies only when the base is
* 16 or 0) 4) a sequence of digits
*
*
* The set of valid values for base is {0,2,3,...,36}. The set of valid digits for base-2 integers
* is {0,1}, for base-3 integers is {0,1,2}, and so on. For bases larger than 10, valid digits
* include alphabetic characters, starting from Aa for base-11 integer, to Zz for base-36 integer.
* The case of the characters is ignored.
*
*
* If the value of base is 0, the numeric base is auto-detected: if the prefix is 0, the base
* is octal, if the prefix is 0x or 0X, the base is hexadecimal, otherwise the base is decimal.
*
* If the minus sign was part of the input sequence, the numeric value calculated from
* the sequence of digits is negated as if by unary minus in the result type.
*
*
* If the str is empty or does not have the expected form, no conversion is performed,
* and (if str_end is not NULL) the value of str is stored in the object pointed to by str_end.
*
* @param str pointer to the null-terminated byte string to be interpreted
* @param str_end pointer to a pointer to character.
* @param base base of the interpreted integer value
*
* @return returns the result of the conversion, unless the value would underflow or overflow.
* If the converted value falls out of range of corresponding return type, a range error occurs
* (setting errno to ERANGE) and LONG_MAX, LONG_MIN, LLONG_MAX or LLONG_MIN is returned.
* If no conversion can be performed, 0 is returned.
* */
unsigned long strtoul(const char* __restrict str, char** __restrict str_end, int base);
/**
* @brief Interprets an long long value in a byte string pointed to by str.
*
*
* Interprets an long value in a byte string pointed to by str.
* Discards any whitespace characters (as identified by calling @see isspace())
* until the first non-whitespace character is found, then takes as many characters
* as possible to form a valid base-n (where n=base) long number representation and
* converts them to an long long value. The valid long value consists of the following parts:
*
* 1) (optional) plus or minus sign
* 2) (optional) prefix (0) indicating octal base (applies only when the base is 8 or 0)
* 3) (optional) prefix (0x or 0X) indicating hexadecimal base (applies only when the base is
* 16 or 0) 4) a sequence of digits
*
*
* The set of valid values for base is {0,2,3,...,36}. The set of valid digits for base-2 integers
* is {0,1}, for base-3 integers is {0,1,2}, and so on. For bases larger than 10, valid digits
* include alphabetic characters, starting from Aa for base-11 integer, to Zz for base-36 integer.
* The case of the characters is ignored.
*
*
* If the value of base is 0, the numeric base is auto-detected: if the prefix is 0, the base
* is octal, if the prefix is 0x or 0X, the base is hexadecimal, otherwise the base is decimal.
*
* If the minus sign was part of the input sequence, the numeric value calculated from
* the sequence of digits is negated as if by unary minus in the result type.
*
* The functions sets the pointer pointed to by str_end to point to the character past
* the last character interpreted. If str_end is NULL, it is ignored.
*
* If the str is empty or does not have the expected form, no conversion is performed,
* and (if str_end is not NULL) the value of str is stored in the object pointed to by str_end.
*
* @param str pointer to the null-terminated byte string to be interpreted
* @param str_end pointer to a pointer to character.
* @param base base of the interpreted integer value
*
* @return returns the result of the conversion, unless the value would underflow or overflow.
* If the converted value falls out of range of corresponding return type, a range error occurs
* (setting errno to ERANGE) and LONG_MAX, LONG_MIN, LLONG_MAX or LLONG_MIN is returned.
* If no conversion can be performed, 0 is returned.
* */
long long strtoll(const char* __restrict str, char** __restrict str_end, int base);
/**
* @brief Interprets an unsigned long long value in a byte string pointed to by str.
*
*
* Interprets an unsigned long long value in a byte string pointed to by str.
* Discards any whitespace characters (as identified by calling @see isspace())
* until the first non-whitespace character is found, then takes as many characters
* as possible to form a valid base-n (where n=base) long number representation and
* converts them to an unsigned long long value. The valid long value consists of the following
* parts:
*
* 1) (optional) plus or minus sign
* 2) (optional) prefix (0) indicating octal base (applies only when the base is 8 or 0)
* 3) (optional) prefix (0x or 0X) indicating hexadecimal base (applies only when the base is
* 16 or 0) 4) a sequence of digits
*
*
* The set of valid values for base is {0,2,3,...,36}. The set of valid digits for base-2 integers
* is {0,1}, for base-3 integers is {0,1,2}, and so on. For bases larger than 10, valid digits
* include alphabetic characters, starting from Aa for base-11 integer, to Zz for base-36 integer.
* The case of the characters is ignored.
*
*
* If the value of base is 0, the numeric base is auto-detected: if the prefix is 0, the base
* is octal, if the prefix is 0x or 0X, the base is hexadecimal, otherwise the base is decimal.
*
* If the minus sign was part of the input sequence, the numeric value calculated from
* the sequence of digits is negated as if by unary minus in the result type.
*
*
* If the str is empty or does not have the expected form, no conversion is performed,
* and (if str_end is not NULL) the value of str is stored in the object pointed to by str_end.
*
* @param str pointer to the null-terminated byte string to be interpreted
* @param str_end pointer to a pointer to character.
* @param base base of the interpreted integer value
*
* @return returns the result of the conversion, unless the value would underflow or overflow.
* If the converted value falls out of range of corresponding return type, a range error occurs
* (setting errno to ERANGE) and LONG_MAX, LONG_MIN, LLONG_MAX or LLONG_MIN is returned.
* If no conversion can be performed, 0 is returned.
* */
unsigned long long strtoull(const char* __restrict str, char** __restrict str_end, int base);
// TODO:
long double strtold(const char* __restrict, char** __restrict);
#pragma mark - math -
/**
* @brief Computes the absolute value of an integer number.
*
* Computes the absolute value of an integer number.
* The behavior is undefined if the result cannot be represented by the return type.
*
* @param n integer value
* @return The absolute value of n (i.e. |n|), if it is representable.
* */
int abs(int n);
/**
* @brief Computes the absolute value of an long number.
*
* Computes the absolute value of an long number.
* The behavior is undefined if the result cannot be represented by the return type.
*
* @param n long value
* @return The absolute value of n (i.e. |n|), if it is representable.
* */
long labs(long n);
/**
* @brief Computes the absolute value of an long long number.
*
* Computes the absolute value of an long long number.
* The behavior is undefined if the result cannot be represented by the return type.
*
* @param n long long value
* @return The absolute value of n (i.e. |n|), if it is representable.
* */
long long llabs(long long n);
/**
* @brief Computes both the quotient and the remainder of the division of the numerator x by the
* denominator y.
*
* Computes both the quotient and the remainder of the division of the numerator x by the
* denominator y.
*
* @param x integer values
* @param y integer values
*
* @return If both the remainder and the quotient can be represented
* as objects of the corresponding type (int, long, long long, imaxdiv_t,
* respectively), returns both as an object of type @see div_t, @see ldiv_t, @see lldiv_t, @see
* imaxdiv_t.
*
* If either the remainder or the quotient cannot be represented, the behavior is undefined.
* */
div_t div(int x, int y);
/**
* @brief Computes both the quotient and the remainder of the division of the numerator x by the
* denominator y.
*
* Computes both the quotient and the remainder of the division of the numerator x by the
* denominator y. Computes quotient and remainder simultaneously. The quotient is the algebraic
* quotient with any fractional part discarded (truncated towards zero). The remainder is such that
* quot * y + rem == x.
*
* Computes the quotient (the result of the expression x/y) and remainder (the result of the
* expression x%y) simultaneously.
*
* @param x integer values
* @param y integer values
*
* @return If both the remainder and the quotient can be represented
* as objects of the corresponding type (int, long, long long, imaxdiv_t,
* respectively), returns both as an object of type @see div_t, @see ldiv_t, @see lldiv_t, @see
* imaxdiv_t.
*
* If either the remainder or the quotient cannot be represented, the behavior is undefined.
* */
ldiv_t ldiv(long x, long y);
/**
* @brief Computes both the quotient and the remainder of the division of the numerator x by the
* denominator y.
*
* Computes both the quotient and the remainder of the division of the numerator x by the
* denominator y. Computes quotient and remainder simultaneously. The quotient is the algebraic
* quotient with any fractional part discarded (truncated towards zero). The remainder is such that
* quot * y + rem == x.
*
* Computes the quotient (the result of the expression x/y) and remainder (the result of the
* expression x%y) simultaneously.
*
* @param x integer values
* @param y integer values
*
* @return If both the remainder and the quotient can be represented
* as objects of the corresponding type (int, long, long long, imaxdiv_t,
* respectively), returns both as an object of type @see div_t, @see ldiv_t, @see lldiv_t, @see
* imaxdiv_t.
*
* If either the remainder or the quotient cannot be represented, the behavior is undefined.
* */
lldiv_t lldiv(long long x, long long y);
#pragma mark - random number generation -
int rand_r(unsigned int* ctx);
/**
* @brief Returns a pseudo-random integer value between 0 and @see RAND_MAX (0 and @see
* RAND_MAX included).
*
* Returns a pseudo-random integer value between 0 and @see RAND_MAX (0 and @see RAND_MAX
* included).
*
* @see srand() seeds the pseudo-random number generator used by rand.
* If rand is used before any calls to @see srand, rand behaves as if it was seeded with @see srand.
* Each time rand is seeded with srand, it must produce the same sequence of values.
*
* rand is not guaranteed to be thread-safe.
*
* @return Pseudo-random integer value between 0 and RAND_MAX, inclusive.
* */
int rand(void);
/**
* @brief Seeds the pseudo-random number generator used by @see rand with the value seed.
*
* Seeds the pseudo-random number generator used by @see rand with the value seed.
* If rand() is used before any calls to srand, @see rand behaves as if it was seeded with srand.
* Each time rand is seeded with the same seed, it must produce the same sequence of values.
*
* srand() is not guaranteed to be thread-safe.
*
* @param seed the seed value
* */
void srand(unsigned seed);
#pragma mark - sorting -
/**
* @brief Sorts the given array pointed to by vbase in ascending order.
*
* The heapsort() function is a modified selection sort. It sorts an array of nmemb objects,
* the initial member of which is pointed to by vbase. The size of each object is specified by size.
*
* The contents of the array base are sorted in ascending order according to a comparison
* function pointed to by compar, which requires two arguments pointing to the objects being
* compared.
*
* @param vbase a pointer to the array to sort
* @param nmemb the number of objects to sort
* @param size the size of each object in the array
* @param compar comparison function which returns a negative integer
* value if the first argument is less than the second,a positive integer value
* if the first argument is greater than the second and zero if the arguments are equal.
* key is passed as the first argument, an element from the array as the second.
* The signature of the comparison function should be equivalent to the following:
* int cmp(const void *a, const void *b);
*
* @return the value 0 if successful; otherwise the value -1 is returned and
* the global variable errno is set to indicate the error.
*
* */
int heapsort(void* vbase, size_t nmemb, size_t size, int (*compar)(const void*, const void*));
/**
* @brief Sorts the given array pointed to by vbase in ascending order.
*
* It sorts an array of nmemb objects,
* the initial member of which is pointed to by vbase. The size of each object is specified by size.
* The heapsort_r() function behaves identically to @see heapsort(), except that it
* takes an additional argument, thunk, which is passed unchanged as the
* first argument to function pointed to compar. This allows the comparison
* function to access additional data without using global variables, and
* thus heapsort_r() is suitable for use in functions which must be reentrant.
* And is therefore reentrant and safe to use in threads.
*
* The contents of the array base are sorted in ascending order according to a comparison
* function pointed to by compar, which requires two arguments pointing to the objects being
* compared.
*
* @param vbase a pointer to the array to sort
* @param nmemb the number of objects to sort
* @param size the size of each object in the array
* @param thunk additional data(variable) for compar
* @param compar comparison function which returns a negative integer
* value if the first argument is less than the second,a positive integer value
* if the first argument is greater than the second and zero if the arguments are equal.
* key is passed as the first argument, an element from the array as the second.
* The signature of the comparison function should be equivalent to the following:
* int cmp(const void *a, const void *b);
*
* @return the value 0 if successful; otherwise the value -1 is returned and
* the global variable errno is set to indicate the error.
*
* */
int heapsort_r(void* vbase, size_t nmemb, size_t size, void* thunk,
int (*compar)(void*, const void*, const void*));
/**
* @brief Finds an element equal to element pointed to by key in an array pointed to by ptr.
*
*
*
* @param key pointer to the element to search for
* @param ptr pointer to the array to examine
* @param count number of element in the array
* @param size size of each element in the array in bytes
* @param comp comparison function which returns a negative integer
* value if the first argument is less than the second,a positive integer value
* if the first argument is greater than the second and zero if the arguments are equal.
* key is passed as the first argument, an element from the array as the second.
* The signature of the comparison function should be equivalent to the following:
* int cmp(const void *a, const void *b);
* The function must not modify the objects passed to it and must return consistent
* results when called for the same objects, regardless of their positions in the array.
*
* @return Pointer to an element in the array that compares equal to *key, or
* null pointer if such element has not been found.
* */
void* bsearch(const void* key, const void* ptr, size_t count, size_t size,
int (*comp)(const void*, const void*));
/**
* @brief Sorts the given array pointed to by ptr in ascending order.
*
* The qsort_r() function behaves identically to @see qsort(), except that it
* takes an additional argument, thunk, which is passed unchanged as the
* first argument to function pointed to compar. This allows the comparison
* function to access additional data without using global variables, and
* thus qsort_r() is suitable for use in functions which must be reentrant.
* And is therefore reentrant and safe to use in threads.
*
* @param a pointer to the element to sort
* @param n number of element in the array
* @param es size of each element in the array in bytes
* @param thunk additional data(variable) for cmp
* @param cmp comparison function which returns a negative integer
* value if the first argument is less than the second,a positive integer value
* if the first argument is greater than the second and zero if the arguments are equal.
* key is passed as the first argument, an element from the array as the second.
* The signature of the comparison function should be equivalent to the following:
* int cmp(const void *a, const void *b);
* The function must not modify the objects passed to it and must return consistent
* */
void qsort_r(void* a, size_t n, size_t es, void* thunk,
int (*cmp)(void*, const void*, const void*));
/**
* @brief Sorts the given array pointed to by ptr in ascending order.
*
* Sorts the given array pointed to by ptr in ascending order.
* The array contains count elements of size bytes.
* Function pointed to by comp is used for object comparison.
*
* @param a pointer to the element to sort
* @param n number of element in the array
* @param es size of each element in the array in bytes
* @param compar comparison function which returns a negative integer
* value if the first argument is less than the second,a positive integer value
* if the first argument is greater than the second and zero if the arguments are equal.
* key is passed as the first argument, an element from the array as the second.
* The signature of the comparison function should be equivalent to the following:
* int cmp(const void *a, const void *b);
* The function must not modify the objects passed to it and must return consistent
* */
void qsort(void* a, size_t n, size_t es, int (*compar)(const void*, const void*));
#pragma mark - memory -
/**
* @brief Allocates size bytes of uninitialized storage.
*
* If size is zero, the behavior is implementation defined (null pointer may be returned,
* or some non-null pointer may be returned that may not be used to access storage, but has to be
* passed to @see free). malloc is thread-safe: it behaves as though only accessing the memory
* locations visible through its argument, and not any static storage.
*
* @param size number of bytes to allocate
* @return On success, returns the pointer to the beginning of newly allocated memory.
* The returned pointer must be deallocated with @see free() or @see realloc().
* On failure, returns a null pointer.
* */
void* malloc(size_t size);
/**
* @brief Deallocates allocated memory space.
*
* Deallocates the space previously allocated by @see malloc, @see calloc, @see realloc.
* If ptr is a null pointer, the function does nothing.
*
* The behavior is undefined if the value of ptr does not equal a value returned earlier
* by @see malloc, @see calloc, @see realloc.
*
* The behavior is undefined if the memory area referred to by ptr has already been deallocated,
* that is, free() or realloc has already been called with ptr as the argument and no calls to
* malloc, calloc or realloc resulted in a pointer equal to ptr afterwards.
*
* The behavior is undefined if after free returns, an access is made through the pointer ptr
* (unless another allocation function happened to result in a pointer value equal to ptr)
*
* @param ptr pointer to the memory to deallocate
* */
void free(void* ptr);
/**
* @brief Allocates memory for an array of given number objects of size
* and initializes all bytes in the allocated storage to zero.
*
* Allocates memory for an array of num objects of size size and initializes
* all bytes in the allocated storage to zero.
*
* @param num number of objects
* @param size size of the array
* @return (None)
* */
void* calloc(size_t num, size_t size);
/**
* @brief Reallocates the given area of memory.
*
* Reallocates the given area of memory. It must be previously allocated by @see malloc,
* @see calloc or @see realloc and not yet freed with a call to @see free or @see realloc.
* Otherwise, the results are undefined.
*
* The reallocation is done by either:
* 1) expanding or contracting the existing area pointed to by ptr, if possible.
* The contents of the area remain unchanged up to the lesser of the new and old sizes.
* If the area is expanded, the contents of the new part of the array are undefined.
* 2) allocating a new memory block of size size bytes, copying memory area with size
* equal the lesser of the new and the old sizes, and freeing the old block.
*
* If there is not enough memory, the old memory block is not freed and null pointer is returned.
* If ptr is NULL, the behavior is the same as calling malloc(size).
*
* @param ptr pointer to the memory area to be reallocated
* @param size new size of the array
*
* @return pointer to new memory allocation.
* If `size` is zero (e.g. `realloc(ptr,0)`) then returns NULL
* */
void* realloc(void* ptr, size_t size);
/**
* @brief Reallocates the given area of memory.
*
* Reallocates the given area of memory. It must be previously allocated by @see malloc,
* @see calloc or @see realloc and not yet freed with a call to @see free or @see realloc.
* Otherwise, the results are undefined.
*
* reallocf is a FreeBSD extension to realloc that frees
* the input pointer if an error occurrs
*
* This library does not handle the BSD case where `realloc(ptr,0)` frees the ptr
*
* @param ptr pointer to the memory area to be reallocated
* @param size new size of the array
*
* @return pointer to new memory allocation.
* If `size` is zero (e.g. `realloc(ptr,0)`) then returns NULL
* */
void* reallocf(void* ptr, size_t size);
#ifdef _POSIX_MEMALIGN_VISIBLE
/** Posix Memory Alignment Extension
*
* Generated aligned memory. This function forwards the request to aligned malloc.
* Allocated memory must be freed with aligned_free().
*
* @param memptr A pointer to the pointer which will store the aligned memory. The
* memory must be freed with aligned_free(). memptr must not be NULL.
* @param alignment The target alignment for the memory. Must be a power of 2.
* @param size The size of the allocation. Must be > 0.
*
* @pre `memptr` is not NULL. `alignment` is power-of-2. `size` > 0.
*
* @returns ENOMEM if memory could not be allocated, EINVAL if alignment is not a power-of-2, and
* 0 on successful allocation.
*/
int posix_memalign(void** memptr, size_t alignment, size_t size);
#endif
#if(defined(__ISO_C_VISIBLE) && __ISO_C_VISIBLE >= 2011) || (__STDC_VERSION >= 20112L) || \
__cplusplus >= 201103L
/** C11 Aligned Memory Allocation
*
* @param align Specifies the alignment. Must be a valid alignment supported by the
* implementation (e.g., here - a power of 2).
* @param size Specifies the number of bytes to allocate.
*
* This implementation requires you to call aligned_free() to free memory, not free().
*
* @return pointer to new memory allocation; NULL on failure.
*/
void* aligned_alloc(size_t align, size_t size);
#endif
#ifdef __cplusplus
}
#endif //__cplusplus
#endif // STDLIB_H_
================================================
FILE: lib/embeddedartistry_libc/include/string.h
================================================
#ifndef STRING_H_
#define STRING_H_
#ifdef __cplusplus
extern "C" {
#endif //__cplusplus
#include <stddef.h>
#include <stdint.h>
#pragma mark - memory -
/**
* @brief Compares the first n characters of the two objects pointed to by s1 and s2.
*
* Compares the first n characters of the objects pointed to by s1 and s2.
* The comparison is done lexicographically.
*
* The behavior is undefined if access occurs beyond the end of either object pointed to by s1 and
* s2. The behavior is undefined if either s1 or s2 is a null pointer.
*
* @param s1 pointers to the objects to compare
* @param s2 pointers to the objects to compare
* @param n the number of bytes to examine
* @return Negative value if s1 appears before s2 in lexicographical order.
* Zero if s1 and s2 compare equal, or if n is zero.
* Positive value if s1 appears after s2 in lexicographical order.
* */
int memcmp(const void* s1, const void* s2, size_t n);
/**
* @brief Copies the value c into each of the first n characters of the object pointed to by dest.
*
* Copies the value c (after conversion to unsigned char as if by (unsigned char)c ) into each of
* the first n characters of the object pointed to by dest.
*
* The behavior is undefined if access occurs beyond the end of the dest array.
* The behavior is undefined if dest is a null pointer.
*
* @param dest pointer to the object to fill
* @param c fill byte
* @param n number of bytes to fill
* @return A copy of dest
* */
void* memset(void* dest, int c, size_t n);
/**
* @brief Copies n characters from the object pointed to by src to the object pointed to by dest.
*
* Copies n characters from the object pointed to by src to the object pointed to by dest.
* Both objects are interpreted as arrays of unsigned char.
*
* The behavior is undefined if access occurs beyond the end of the dest array.
* If the objects overlap (which is a violation of the restrict contract) (since C99), the behavior
* is undefined. The behavior is undefined if either dest or src is a null pointer.
*
* @param dest pointer to the object to copy to
* @param src pointer to the object to copy from
* @param n number of bytes to copy
* @return a copy of dest
* */
void* memcpy(void* __restrict dest, const void* __restrict src, size_t n);
/**
* @brief Copies n characters from the object pointed to by src to the object pointed to by dest.
*
* Copies n characters from the object pointed to by src to the object pointed to by dest.
* Both objects are interpreted as arrays of unsigned char.
*
* The behavior is undefined if access occurs beyond the end of the dest array.
* The behavior is undefined if either dest or src is a null pointer.
*
* @param dest pointer to the object to copy to
* @param src pointer to the object to copy from
* @param n number of bytes to copy
* @return a copy of dest
* */
void* memmove(void* dest, const void* src, size_t n);
/**
* @brief Finds the first occurrence of c in the initial n characters of the object pointed to by s
*
* Finds the first occurrence of c (after conversion to unsigned char as if by (unsigned char)c )
* in the initial n characters (each interpreted as unsigned char) of the object pointed to by s.
*
* The behavior is undefined if access occurs beyond the end of the array (s) searched.
* The behavior is undefined if s is a null pointer.
*
* @param s pointer to the object to be examined
* @param c character to search for
* @param n max number of characters to examine
* @return a copy of dest
* */
void* memchr(const void* s, int c, size_t n);
/**
* @brief Find substring s in memory area l.
*
* Finds the start of the first occurrence of the substring s of length s_len in the memory area l
* of length l_len.
*
* The behavior is undefined if access occurs beyond the end of the array (s) searched.
* The behavior is undefined if s is a null pointer.
*
* @param l pointer to the object to be examined
* @param l_len number of characters to examine
* @param s the substring to search for
* @param s_len number of characters to examine
* @return a pointer to the beginning of the substring, or NULL if the substring is not found.
* */
void* memmem(const void* l, size_t l_len, const void* s, size_t s_len);
#pragma mark - string -
/**
* @brief Returns the length of the given null-terminated byte string.
*
* Returns the length of the given null-terminated byte string, that is,
* the number of characters in a character array whose first element is
* pointed to by str up to and not including the first null character.
*
* The behavior is undefined if str is not a pointer to a null-terminated byte string.
*
* @param str pointer to the null-terminated byte string to be examined
* @return The length of the null-terminated byte string str.
* */
size_t strlen(const char* str);
/**
* @brief Returns the length of the given null-terminated byte string.
*
* Same as @sa strlen, except that the function returns zero if str is a null pointer
* and returns maxlen if the null character was not found in the first maxlen bytes of str.
*
* The behavior is undefined if str points to a character array which lacks the null character
* and the size of that character array < maxlen; in other words, an erroneous value of maxlen does
* not expose impending buffer overflow.
*
* @param str pointer to the null-terminated byte string to be examined
* @param maxlen maximum number of characters to examine
* @return The length of the null-terminated byte string str on success, zero if str is a null
* pointer, maxlen if the null character was not found.
* */
size_t strnlen(const char* str, size_t maxlen);
/**
* @brief Copies the null-terminated byte string pointed to by src to the character array whose
* first element is pointed to by dest.
*
* Copies the null-terminated byte string pointed to by src, including the null terminator,
* to the character array whose first element is pointed to by dest. It may clobber the rest
* of the destination array with unspecified values and that the following errors are detected
* at runtime and call the currently installed constraint handler function:
* The behavior is undefined if the dest array is not large enough.
* The behavior is undefined if the strings overlap.
* The behavior is undefined if either dest is not a pointer to a character array or src is not a
* pointer to a null-terminated byte string. The behavior is undefined if the size of the character
* array pointed to by dest <= strlen(src, destsz)
*
* @param dst pointer to the character array to write to
* @param src pointer to the null-terminated byte string to copy from
* @return a copy of dest
* */
char* strcpy(char* __restrict dst, const char* __restrict src);
/**
* @brief Copies at most maxlen characters of the character array pointed to by src to character
* array pointed to by dest.
*
* Copies at most maxlen characters of the character array pointed to by src (including the
* terminating null character, but not any of the characters that follow the null character) to
* character array pointed to by dest. If maxlen is reached before the entire array src was copied,
* the resulting character array is not null-terminated. If, after copying the terminating null
* character from src, maxlen is not reached, additional null characters are written to dest until
* the total of maxlen characters have been written.
*
* The behavior is undefined if the character arrays overlap, if either dest or src is not a pointer
* to a character array (including if dest or src is a null pointer), if the size of the array
* pointed to by dest is less than maxlen, or if the size of the array pointed to by src is less
* than maxlen and it does not contain a null character.
*
* @param dst pointer to the character array to copy to
* @param src pointer to the character array to copy from
* @param maxlen maximum number of characters to copy
* @return a copy of dest
* */
char* strncpy(char* __restrict dst, const char* __restrict src, size_t maxlen);
/**
* @brief Finds the first occurrence of the substring in the string
*
* Finds the first occurrence of the null-terminated byte string pointed to by substring in the
* null-terminated byte string pointed to by string. The terminating null characters are not
* compared.
*
* The behavior is undefined if either stirng or substring is not a pointer to a null-terminated
* byte string.
*
* @param string pointer to the null-terminated byte string to examine
* @param substring pointer to the null-terminated byte string to search for
* @return Pointer to the first character of the found substring in string, or NULL if no such
* substring is found. If substring points to an empty string, string is returned.
* */
char* strstr(const char* string, const char* substring);
/**
* @brief Finds the first occurrence of find in the initial slen characters of the object pointed to
* by s
*
* Locates the first occurrence of the null-terminated string find in the string s,
* where not more than slen characters are searched. Characters that appear after a `\0' character
* are not searched.
*
* The behavior is undefined if either find or s is not a pointer to a null-terminated byte string.
*
* @param s pointer to the null-terminated byte string to examine
* @param find pointer to the null-terminated byte string to search for
* @param slen maxinum number of characters to search for
* @return If find is an empty string, s is returned; if find occurs nowhere in s, NULL is returned;
* otherwise a pointer to the first character of the first occurrence of find is returned.
* */
char* strnstr(const char* s, const char* find, size_t slen);
/**
* @brief Compares two null-terminated byte strings lexicographically.
*
* Compares two null-terminated byte strings lexicographically.
*
* The behavior is undefined if s1 or s2 are not pointers to null-terminated byte strings.
*
* @param s1 pointers to the null-terminated byte strings to compare
* @param s2 pointers to the null-terminated byte strings to compare
* @return Negative value if s1 appears before s2 in lexicographical order.
* Zero if s1 and s2 compare equal, or if n is zero.
* Positive value if s1 appears after s2 in lexicographical order.
* */
int strcmp(const char* s1, const char* s2);
/**
* @brief Compares at most n characters of two possibly null-terminated arrays.
*
* Compares at most count characters of two possibly null-terminated arrays.
* The comparison is done lexicographically.
*
* The behavior is undefined when access occurs past the end of either array s1 or s2.
* The behavior is undefined when either s1 or s2 is the null pointer.
*
* @param s1 pointers to the null-terminated byte strings to compare
* @param s2 pointers to the null-terminated byte strings to compare
* @param n maximum number of characters to compare
* @return Negative value if s1 appears before s2 in lexicographical order.
* Zero if s1 and s2 compare equal, or if n is zero.
* Positive value if s1 appears after s2 in lexicographical order.
* */
int strncmp(const char* s1, const char* s2, size_t n);
/**
* @brief Duplicate the passed in string str.
*
* Returns a pointer to a new string which is a duplicate of the string str.
* Memory for the new string is obtained with malloc(3), and can be freed with free(3).
*
* @param str a pointer to a string to duplicate
* @return a pointer to the duplicated string on success. NULL if insufficient memory was available,
* with errno set to indicate cause of error.
* */
char* strdup(const char* str);
/**
* @brief Duplicate n bytes of the passed in string str.
*
* strndup is similar to @sa strdup, but copies at most n bytes.
* If str is longer than n, only n bytes are copied, and a terminating null byte ('\0') is added.
*
* @param str a pointer to a string to duplicate
* @param n maximum number of bytes to copy
* @return a pointer to the duplicated string on success. NULL if insufficient memory was available,
* with errno set to indicate cause of error.
* */
char* strndup(const char* str, size_t n);
/**
* @brief Finds the first occurrence of c in the null-terminated byte string pointed to by s.
*
* Finds the first occurrence of c (after conversion to char as if by (char)c ) in the
* null-terminated byte string pointed to by s (each character interpreted as unsigned char). The
* terminating null character is considered to be a part of the string and can be found when
* searching for '\0'.
*
* The behavior is undefined if s is not a pointer to a null-terminated byte string.
*
* @param s pointer to the null-terminated byte string to be analyzed
* @param c character to search for
* @return a pointer to the found character in s, or null pointer if no such character is found.
* */
char* strchr(const char* s, int c);
/**
* @brief Finds the last occurrence of c in the null-terminated byte string pointed to by s.
*
* Finds the last occurrence of c (after conversion to char as if by (char)c ) in the
* null-terminated byte string pointed to by s (each character interpreted as unsigned char). The
* terminating null character is considered to be a part of the string and can be found when
* searching for '\0'.
*
* The behavior is undefined if s is not a pointer to a null-terminated byte string.
*
* @param s pointer to the null-terminated byte string to be analyzed
* @param c character to search for
* @return a pointer to the found character in s, or null pointer if no such character is found.
* */
char* strrchr(const char* s, int c);
/**
* @brief Appends a copy of the null-terminated byte string pointed to
* by src to the end of the null-terminated byte string pointed to by dest.
*
* Appends a copy of the null-terminated byte string pointed to by src to the end of
* the null-terminated byte string pointed to by dest. The character src[0] replaces
* the null terminator at the end of dest. The resulting byte string is null-terminated.
*
* The behavior is undefined if the destination array is not large enough for the contents
* of both src and dest and the terminating null character.
* The behavior is undefined if the strings overlap.
* The behavior is undefined if either dest or src is not a pointer to a null-terminated byte
* string.
*
* @param dst pointer to the null-terminated byte string to append to
* @param src pointer to the null-terminated byte string to copy from
* @return a copy of dest
* */
char* strcat(char* __restrict dst, const char* __restrict src);
/**
* @brief Appends at most maxlen characters from the character array pointed to by src,
* to the end of the null-terminated byte string pointed to by dest.
*
* Appends at most count characters from the character array pointed to by src,
* stopping if the null character is found, to the end of the null-terminated byte string pointed to
* by dest. The character src[0] replaces the null terminator at the end of dest. The terminating
* null character is always appended in the end (so the maximum number of bytes the function may
* write is maxlen+1).
*
* The behavior is undefined if the destination array is not large enough for the contents
* of both src and dest and the terminating null character.
* The behavior is undefined if the strings overlap.
* The behavior is undefined if either dest or src is not a pointer to a null-terminated byte
* string.
*
* @param dst pointer to the null-terminated byte string to append to
* @param src pointer to the null-terminated byte string to copy from
* @param maxlen maximum number of characters to copy
* @return a copy of dest
* */
char* strncat(char* __restrict dst, const char* __restrict src, size_t maxlen);
/**
* @brief Finds the next token in a null-terminated byte string pointed to by s.
*
* Finds the next token in a null-terminated byte string pointed to by s.
* The separator characters are identified by null-terminated byte string pointed to by delim.
* This function is designed to be called multiples times to obtain successive tokens from the same
* string.
*
* - If s != NULL, the call is treated as the first call to strtok for this particular string.
* The function searches for the first character which is not contained in delim.
*
* The behavior is undefined if either s or delim is not a pointer to a null-terminated byte
* string.
*
* @param s pointer to the null-terminated byte string to tokenize
* @param delim pointer to the null-terminated byte string identifying delimiters
* @return Returns pointer to the beginning of the next token or NULL if there are no more tokens.
* */
char* strtok(char* s, const char* delim);
// TODO: documentation
size_t strxfrm(char* __restrict, const char* __restrict, size_t);
size_t strcspn(const char*, const char*);
size_t strspn(const char*, const char*);
char* strpbrk(const char*, const char*);
int strcoll(const char*, const char*);
char* strerror(int);
int strerror_r(int, char*, size_t);
#ifdef __cplusplus
}
#endif //__cplusplus
#endif /* STRING_H_ */
================================================
FILE: lib/embeddedartistry_libc/include/strings.h
================================================
#ifndef STRINGS_H_
#define STRINGS_H_
#include <stddef.h>
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif //__cplusplus
/**
* @brief Finds the last (most significant) bit set in the given mask
*
* Finds the last (most significant) bit set in the given (int) mask and return the index of that
* bit.
*
* Bits are numbered starting at 1, the least significant bit.
*
* @param mask The bit mask
* @return The index of the bit if mask is not zero, 0 otherwise.
* */
int fls(int mask);
/**
* @brief Finds the last (most significant) bit set in the given mask
*
* Finds the last (most significant) bit set in the given (long) mask and return the index of that
* bit.
*
* Bits are numbered starting at 1, the least significant bit.
*
* @param mask The bit mask
* @return The index of the bit if mask is not zero, 0 otherwise.
* */
int flsl(long mask);
/**
* @brief Finds the last (most significant) bit set in the given mask
*
* Finds the last (most significant) bit set in the given (long long) mask and return the index of
* that bit.
*
* Bits are numbered starting at 1, the least significant bit.
*
* @param mask The bit mask
* @return The index of the bit if mask is not zero, 0 otherwise.
* */
int flsll(long long mask);
#ifdef __cplusplus
}
#endif //__cplusplus
#endif // STRINGS_H_
================================================
FILE: lib/embeddedartistry_libc/include/time.h
================================================
#ifndef _TIME_H_
#define _TIME_H_
#include <_types/_time_t.h>
#include <stddef.h>
#ifdef __cplusplus
extern "C" {
#endif
#pragma mark - Types and Definitions -
#define CLOCKS_PER_SEC 1000000L
#define TIME_UTC 1
#if defined(_BSD_SOURCE) || defined(_GNU_SOURCE)
#define __tm_gmtoff tm_gmtoff
#define __tm_zone tm_zone
#endif
typedef int clockid_t;
typedef void* timer_t;
typedef unsigned long clock_t;
typedef unsigned useconds_t;
#define _STRUCT_TIMESPEC
struct timespec
{
time_t tv_sec;
long tv_nsec;
};
#define _STRUCT_TIMEVAL
struct timeval
{
time_t tv_sec;
suseconds_t tv_usec;
};
#define __timespec_defined 1
#define __timeval_defined 1
#define __clock_t_defined 1
#define __useconds_t_defined 1
struct tm
{
int tm_sec; /* seconds after the minute [0-60] */
int tm_min; /* minutes after the hour [0-59] */
int tm_hour; /* hours since midnight [0-23] */
int tm_mday; /* day of the month [1-31] */
int tm_mon; /* months since January [0-11] */
int tm_year; /* years since 1900 */
int tm_wday; /* days since Sunday [0-6] */
int tm_yday; /* days since January 1 [0-365] */
int tm_isdst; /* Daylight Savings Time flag */
long __tm_gmtoff; /* offset from CUT in seconds */
char* __tm_zone; /* timezone abbreviation */
};
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \
defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
#define CLOCK_REALTIME 0
#define CLOCK_MONOTONIC 1
#define CLOCK_PROCESS_CPUTIME_ID 2
#define CLOCK_THREAD_CPUTIME_ID 3
#define CLOCK_MONOTONIC_RAW 4
#define CLOCK_REALTIME_COARSE 5
#define CLOCK_MONOTONIC_COARSE 6
#define CLOCK_BOOTTIME 7
#define CLOCK_REALTIME_ALARM 8
#define CLOCK_BOOTTIME_ALARM 9
#define CLOCK_SGI_CYCLE 10
#define CLOCK_TAI 11
#define TIMER_ABSTIME 1
struct itimerspec
{
struct timespec it_interval;
struct timespec it_value;
};
#endif
#pragma mark - Functions -
char* asctime(const struct tm*);
#ifndef DISABLE_UNIMPLEMENTED_LIBC_APIS
clock_t clock(void);
time_t time(time_t*);
double difftime(time_t, time_t);
time_t mktime(struct tm*);
size_t strftime(char* __restrict, size_t, const char* __restrict, const struct tm* __restrict);
struct tm* gmtime(const time_t*);
struct tm* localtime(const time_t*);
char* ctime(const time_t*);
int timespec_get(struct timespec*, int);
#endif
#if defined(_GNU_SOURCE) || defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) || \
defined(_BSD_SOURCE)
char* asctime_r(const struct tm* __restrict, char* __restrict);
#ifndef DISABLE_UNIMPLEMENTED_LIBC_APIS
struct tm* gmtime_r(const time_t* __restrict, struct tm* __restrict);
struct tm* localtime_r(const time_t* __restrict, struct tm* __restrict);
char* ctime_r(const time_t*, char*);
int nanosleep(const struct timespec*, struct timespec*);
int clock_getres(clockid_t, struct timespec*);
int clock_gettime(clockid_t, struct timespec*);
int clock_settime(clockid_t, const struct timespec*);
int clock_nanosleep(clockid_t, int, const struct timespec*, struct timespec*);
// int clock_getcpuclockid(pid_t, clockid_t*);
struct sigevent;
int timer_create(clockid_t, struct sigevent* __restrict, timer_t* __restrict);
int timer_delete(timer_t);
int timer_settime(timer_t, int, const struct itimerspec* __restrict, struct itimerspec* __restrict);
int timer_gettime(timer_t, struct itimerspec*);
int timer_getoverrun(timer_t);
extern char* tzname[2];
#endif // DISABLE_UNIMPLEMENTED_LIBC_APIS
#endif
#if defined(_XOPEN_SOURCE) || defined(_BSD_SOURCE) || defined(_GNU_SOURCE)
#ifndef DISABLE_UNIMPLEMENTED_LIBC_APIS
char* strptime(const char* __restrict, const char* __restrict, struct tm* __restrict);
extern int daylight;
extern long timezone;
extern int getdate_err;
struct tm* getdate(const char*);
#endif // DISABLE_UNIMPLEMENTED_LIBC_APIS
#endif
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
#ifndef DISABLE_UNIMPLEMENTED_LIBC_APIS
int stime(const time_t*);
time_t timegm(struct tm*);
#endif // DISABLE_UNIMPLEMENTED_LIBC_APIS
#endif
#ifdef __cplusplus
}
#endif
#endif /* !_TIME_H_ */
================================================
FILE: lib/embeddedartistry_libc/include/wchar.h
================================================
#ifndef WCHAR_H_
#define WCHAR_H_
#ifdef __cplusplus
extern "C" {
#endif
#include <stddef.h>
#include <stdint.h>
#include <wctype.h>
#pragma mark - Definitions -
typedef struct
{
unsigned __opaque1, __opaque2;
} mbstate_t;
#pragma mark - Supported APIs -
int wcwidth(wchar_t);
int wcswidth(const wchar_t*, size_t);
wchar_t* wcschr(const wchar_t*, wchar_t);
#pragma mark - Unspported API -
#ifndef DISABLE_UNIMPLEMENTED_LIBC_APIS
wint_t btowc(int);
int wctob(wint_t);
wchar_t* wcscpy(wchar_t* __restrict, const wchar_t* __restrict);
wchar_t* wcsncpy(wchar_t* __restrict, const wchar_t* __restrict, size_t);
wchar_t* wcscat(wchar_t* __restrict, const wchar_t* __restrict);
wchar_t* wcsncat(wchar_t* __restrict, const wchar_t* __restrict, size_t);
int wcscmp(const wchar_t*, const wchar_t*);
int wcsncmp(const wchar_t*, const wchar_t*, size_t);
int wcscoll(const wchar_t*, const wchar_t*);
size_t wcsxfrm(wchar_t* __restrict, const wchar_t* __restrict, size_t);
wchar_t* wcsrchr(const wchar_t*, wchar_t);
size_t wcscspn(const wchar_t*, const wchar_t*);
size_t wcsspn(const wchar_t*, const wchar_t*);
wchar_t* wcspbrk(const wchar_t*, const wchar_t*);
wchar_t* wcstok(wchar_t* __restrict, const wchar_t* __restrict, wchar_t** __restrict);
size_t wcslen(const wchar_t*);
wchar_t* wcsstr(const wchar_t* __restrict, const wchar_t* __restrict);
wchar_t* wcswcs(const wchar_t*, const wchar_t*);
wchar_t* wmemchr(const wchar_t*, wchar_t, size_t);
int wmemcmp(const wchar_t*, const wchar_t*, size_t);
wchar_t* wmemcpy(wchar_t* __restrict, const wchar_t* __restrict, size_t);
wchar_t* wmemmove(wchar_t*, const wchar_t*, size_t);
wchar_t* wmemset(wchar_t*, wchar_t, size_t);
int mbsinit(const mbstate_t*);
size_t mbrtowc(wchar_t* __restrict, const char* __restrict, size_t, mbstate_t* __restrict);
size_t wcrtomb(char* __restrict, wchar_t, mbstate_t* __restrict);
size_t mbrlen(const char* __restrict, size_t, mbstate_t* __restrict);
size_t mbsrtowcs(wchar_t* __restrict, const char** __restrict, size_t, mbstate_t* __restrict);
size_t wcsrtombs(char* __restrict, const wchar_t** __restrict, size_t, mbstate_t* __restrict);
float wcstof(const wchar_t* __restrict, wchar_t** __restrict);
double wcstod(const wchar_t* __restrict, wchar_t** __restrict);
long double wcstold(const wchar_t* __restrict, wchar_t** __restrict);
long wcstol(const wchar_t* __restrict, wchar_t** __restrict, int);
unsigned long wcstoul(const wchar_t* __restrict, wchar_t** __restrict, int);
long long wcstoll(const wchar_t* __restrict, wchar_t** __restrict, int);
unsigned long long wcstoull(const wchar_t* __restrict, wchar_t** __restrict, int);
size_t mbsnrtowcs(wchar_t* __restrict, const char** __restrict, size_t, size_t,
mbstate_t* __restrict);
size_t wcsnrtombs(char* __restrict, const wchar_t** __restrict, size_t, size_t,
mbstate_t* __restrict);
wchar_t* wcsdup(const wchar_t*);
size_t wcsnlen(const wchar_t*, size_t);
wchar_t* wcpcpy(wchar_t* __restrict, const wchar_t* __restrict);
wchar_t* wcpncpy(wchar_t* __restrict, const wchar_t* __restrict, size_t);
int wcscasecmp(const wchar_t*, const wchar_t*);
int wcsncasecmp(const wchar_t*, const wchar_t*, size_t);
struct tm;
size_t wcsftime(wchar_t* __restrict, size_t, const wchar_t* __restrict,
const struct tm* __restrict);
#endif
#ifdef __cplusplus
}
#endif
#endif // WCHAR_H_
================================================
FILE: lib/embeddedartistry_libc/include/wctype.h
================================================
#ifndef WCTYPE_H__
#define WCTYPE_H__
#ifdef __cplusplus
extern "C" {
#endif
#include <_types/_wchar_t.h>
typedef const int* wctrans_t;
typedef unsigned wint_t;
typedef unsigned long wctype_t;
#undef WEOF
#define WEOF 0xffffffffU
#define WCTYPE_ALNUM 1
#define WCTYPE_ALPHA 2
#define WCTYPE_BLANK 3
#define WCTYPE_CNTRL 4
#define WCTYPE_DIGIT 5
#define WCTYPE_GRAPH 6
#define WCTYPE_LOWER 7
#define WCTYPE_PRINT 8
#define WCTYPE_PUNCT 9
#define WCTYPE_SPACE 10
#define WCTYPE_UPPER 11
#define WCTYPE_XDIGIT 12
int iswalnum(wint_t);
int iswalpha(wint_t);
int iswblank(wint_t);
int iswcntrl(wint_t);
int iswctype(wint_t, wctype_t);
int iswdigit(wint_t);
int iswgraph(wint_t);
int iswlower(wint_t);
int iswprint(wint_t);
int iswpunct(wint_t);
int iswspace(wint_t);
int iswupper(wint_t);
int iswxdigit(wint_t);
wint_t towctrans(wint_t, wctrans_t);
wint_t towlower(wint_t);
wint_t towupper(wint_t);
wctrans_t wctrans(const char*);
wctype_t wctype(const char*);
#ifdef __cplusplus
}
#endif
#endif // WCTYPE_H__
================================================
FILE: minimal/Makefile
================================================
PROJECT := minimal
BUILD_DIR ?= build
CFLAGS += -nostdlib
SRCS = \
startup_samd21.c \
$(PROJECT).c
include ../common-standalone.mk
================================================
FILE: minimal/minimal.c
================================================
#include <samd21g18a.h>
#include <port.h>
#define LED_0_PIN PIN_PA17
static void set_output(const uint8_t pin) {
struct port_config config_port_pin;
port_get_config_defaults(&config_port_pin);
config_port_pin.direction = PORT_PIN_DIR_OUTPUT;
port_pin_set_config(pin, &config_port_pin);
port_pin_set_output_level(pin, false);
}
int main() {
set_output(LED_0_PIN);
while (true) {
port_pin_toggle_output_level(LED_0_PIN);
for (int i = 0; i < 100000; ++i) {}
}
}
================================================
FILE: minimal/samd21g18a_flash.ld
================================================
MEMORY
{
rom (rx) : ORIGIN = 0x00000000, LENGTH = 0x00040000
ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00008000
}
STACK_SIZE = 0x2000;
/* Section Definitions */
SECTIONS
{
.text :
{
KEEP(*(.vectors .vectors.*))
*(.text.*)
*(.rodata.*)
_etext = .;
} > rom
.gnu_build_id :
{
PROVIDE(g_gnu_build_id = .);
*(.note.gnu.build-id)
} > rom
/* .bss section which is used for uninitialized data */
.bss (NOLOAD) :
{
_sbss = . ;
*(.bss .bss.*)
*(COMMON)
_ebss = . ;
} > ram
.data :
{
_sdata = .;
*(.data*);
_edata = .;
} > ram AT >rom
/* stack section */
.stack (NOLOAD):
{
. = ALIGN(8);
_sstack = .;
. = . + STACK_SIZE;
. = ALIGN(8);
_estack = .;
} > ram
. = ALIGN(4);
_end = . ;
}
================================================
FILE: minimal/startup_samd21.c
================================================
#include "samd21.h"
/* These are defined in the linker script */
extern uint32_t _stext;
extern uint32_t _etext;
extern uint32_t _sbss;
extern uint32_t _ebss;
extern uint32_t _sdata;
extern uint32_t _edata;
extern uint32_t _sstack;
extern uint32_t _estack;
/* Forward define main */
int main(void);
/* Exception Table */
__attribute__ ((section(".vectors")))
const DeviceVectors exception_table = {
/* Configure Initial Stack Pointer, using linker-generated symbols */
.pvStack = (void*) (&_estack),
.pfnReset_Handler = (void*) Reset_Handler,
.pfnNMI_Handler = (void*) NMI_Handler,
.pfnHardFault_Handler = (void*) HardFault_Handler,
};
void NMI_Handler(void) {
while (1) {}
}
void HardFault_Handler(void) {
while (1) {}
}
/**
* This is the code that gets called on processor reset.
* To initialize the device, and call the main() routine.
*/
void Reset_Handler(void)
{
/* Copy init values from text to data */
uint32_t *init_values_ptr = &_etext;
uint32_t *data_ptr = &_sdata;
if (init_values_ptr != data_ptr) {
for (; data_ptr < &_edata;) {
*data_ptr++ = *init_values_ptr++;
}
}
/* Clear the zero segment */
for (uint32_t *bss_ptr = &_sbss; bss_ptr < &_ebss;) {
*bss_ptr++ = 0;
}
/* Overwriting the default value of the NVMCTRL.CTRLB.MANW bit (errata reference 13134) */
NVMCTRL->CTRLB.bit.MANW = 1;
/* Branch to main function */
main();
/* Infinite loop */
while (1);
}
================================================
FILE: openocd.cfg
================================================
source [find interface/cmsis-dap.cfg]
source [find target/at91samdXX.cfg]
================================================
FILE: reloc/Makefile
================================================
PROJECT := reloc
BUILD_DIR ?= build
INCLUDES = \
$(ASF_PATH)/sam0/drivers/sercom \
$(ASF_PATH)/sam0/drivers/sercom/usart \
$(ASF_PATH)/common/services/serial \
$(ASF_PATH)/common/services/serial/sam0_usart
SRCS = \
$(ASF_PATH)/sam0/drivers/sercom/usart/usart.c \
$(ASF_PATH)/sam0/drivers/sercom/sercom.c \
startup_samd21.c \
$(PROJECT).c
include ../common-standalone.mk
================================================
FILE: reloc/reloc.c
================================================
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <samd21g18a.h>
#include <port.h>
#include <usart_serial.h>
static struct usart_module stdio_uart_module;
// LIBC SYSCALLS
/////////////////////
extern int _end;
caddr_t _sbrk(int incr) {
static unsigned char *heap = NULL;
unsigned char *prev_heap;
if (heap == NULL) {
heap = (unsigned char *)&_end;
}
prev_heap = heap;
heap += incr;
return (caddr_t) prev_heap;
}
int _close(int file) {
return -1;
}
int _fstat(int file, struct stat *st) {
st->st_mode = S_IFCHR;
return 0;
}
int _isatty(int file) {
return 1;
}
int _lseek(int file, int ptr, int dir) {
return 0;
}
void _exit(int status) {
__asm("BKPT #0");
}
void _kill(int pid, int sig) {
return;
}
int _getpid(void) {
return -1;
}
int _write (int file, char * ptr, int len) {
int written = 0;
if ((file != 1) && (file != 2) && (file != 3)) {
return -1;
}
for (; len != 0; --len) {
if (usart_serial_putchar(&stdio_uart_module, (uint8_t)*ptr++)) {
return -1;
}
++written;
}
return written;
}
int _read (int file, char * ptr, int len) {
int read = 0;
if (file != 0) {
return -1;
}
for (; len > 0; --len) {
usart_serial_getchar(&stdio_uart_module, (uint8_t *)ptr++);
read++;
}
return read;
}
// APP
////////////////////
#define LED_0_PIN PIN_PA17
static void serial_init(void) {
struct usart_config usart_conf;
usart_get_config_defaults(&usart_conf);
usart_conf.mux_setting = USART_RX_3_TX_2_XCK_3;
usart_conf.pinmux_pad0 = PINMUX_UNUSED;
usart_conf.pinmux_pad1 = PINMUX_UNUSED;
usart_conf.pinmux_pad2 = PINMUX_PB22D_SERCOM5_PAD2;
usart_conf.pinmux_pad3 = PINMUX_PB23D_SERCOM5_PAD3;
usart_serial_init(&stdio_uart_module, SERCOM5, &usart_conf);
usart_enable(&stdio_uart_module);
}
static void set_output(const uint8_t pin) {
struct port_config config_port_pin;
port_get_config_defaults(&config_port_pin);
config_port_pin.direction = PORT_PIN_DIR_OUTPUT;
port_pin_set_config(pin, &config_port_pin);
port_pin_set_output_level(pin, false);
}
static void from_rom(void) {
printf("Running from rom (%p)\n", &from_rom);
}
static void __attribute__((section (".ramexec"))) from_ram(void) {
printf("Running from ram (%p)\n", &from_ram);
}
int main() {
serial_init();
set_output(LED_0_PIN);
from_rom();
from_ram();
while (true) {
port_pin_toggle_output_level(LED_0_PIN);
for (int i = 0; i < 100000; ++i) {}
}
}
================================================
FILE: reloc/samd21g18a_flash.ld
================================================
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
MEMORY
{
rom (rx) : ORIGIN = 0x00000000, LENGTH = 0x00040000
ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00008000
}
STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0x2000;
/* Section Definitions */
SECTIONS
{
.text :
{
. = ALIGN(4);
_stext = .;
KEEP(*(.vectors .vectors.*))
*(.text .text.*)
*(.rodata .rodata*)
. = ALIGN(4);
} > rom
/* .ARM.exidx is sorted, so has to go in its own output section. */
PROVIDE_HIDDEN (__exidx_start = .);
.ARM.exidx :
{
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
} > rom
PROVIDE_HIDDEN (__exidx_end = .);
. = ALIGN(4);
_etext = .;
/* .bss section which is used for uninitialized data */
.bss (NOLOAD) :
{
. = ALIGN(4);
_sbss = . ;
*(.bss .bss.*)
*(COMMON)
. = ALIGN(4);
_ebss = . ;
} > ram
.data : AT (_etext)
{
. = ALIGN(4);
_sdata = .;
*(.data .data.*);
*(.ramexec .ramexec*);
. = ALIGN(4);
_edata = .;
} > ram
/* stack section */
.stack (NOLOAD):
{
. = ALIGN(8);
_sstack = .;
. = . + STACK_SIZE;
. = ALIGN(8);
_estack = .;
} > ram
. = ALIGN(4);
_end = . ;
}
================================================
FILE: reloc/startup_samd21.c
================================================
#include "samd21.h"
/* Initialize segments */
extern uint32_t _stext;
extern uint32_t _etext;
extern uint32_t _sbss;
extern uint32_t _ebss;
extern uint32_t _sdata;
extern uint32_t _edata;
extern uint32_t _sstack;
extern uint32_t _estack;
/** \cond DOXYGEN_SHOULD_SKIP_THIS */
int main(void);
/** \endcond */
/* Default empty handler */
void Dummy_Handler(void);
/* Cortex-M0+ core handlers */
void NMI_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void HardFault_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void SVC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void PendSV_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void SysTick_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
/* Peripherals handlers */
void PM_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void SYSCTRL_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void WDT_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void RTC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void EIC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void NVMCTRL_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void DMAC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#ifdef ID_USB
void USB_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
void EVSYS_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void SERCOM0_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void SERCOM1_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void SERCOM2_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void SERCOM3_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#ifdef ID_SERCOM4
void SERCOM4_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
#ifdef ID_SERCOM5
void SERCOM5_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
void TCC0_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void TCC1_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void TCC2_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void TC3_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void TC4_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
void TC5_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#ifdef ID_TC6
void TC6_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
#ifdef ID_TC7
void TC7_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
#ifdef ID_ADC
void ADC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
#ifdef ID_AC
void AC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
#ifdef ID_DAC
void DAC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
#ifdef ID_PTC
void PTC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
#ifdef ID_I2S
void I2S_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
#ifdef ID_AC1
void AC1_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
#endif
/* Exception Table */
__attribute__ ((section(".vectors")))
const DeviceVectors exception_table = {
/* Configure Initial Stack Pointer, using linker-generated symbols */
.pvStack = (void*) (&_estack),
.pfnReset_Handler = (void*) Reset_Handler,
.pfnNMI_Handler = (void*) NMI_Handler,
.pfnHardFault_Handler = (void*) HardFault_Handler,
.pvReservedM12 = (void*) (0UL), /* Reserved */
.pvReservedM11 = (void*) (0UL), /* Reserved */
.pvReservedM10 = (void*) (0UL), /* Reserved */
.pvReservedM9 = (void*) (0UL), /* Reserved */
.pvReservedM8 = (void*) (0UL), /* Reserved */
.pvReservedM7 = (void*) (0UL), /* Reserved */
.pvReservedM6 = (void*) (0UL), /* Reserved */
.pfnSVC_Handler = (void*) SVC_Handler,
.pvReservedM4 = (void*) (0UL), /* Reserved */
.pvReservedM3 = (void*) (0UL), /* Reserved */
.pfnPendSV_Handler = (void*) PendSV_Handler,
.pfnSysTick_Handler = (void*) SysTick_Handler,
/* Configurable interrupts */
.pfnPM_Handler = (void*) PM_Handler, /* 0 Power Manager */
.pfnSYSCTRL_Handler = (void*) SYSCTRL_Handler, /* 1 System Control */
.pfnWDT_Handler = (void*) WDT_Handler, /* 2 Watchdog Timer */
.pfnRTC_Handler = (void*) RTC_Handler, /* 3 Real-Time Counter */
.pfnEIC_Handler = (void*) EIC_Handler, /* 4 External Interrupt Controller */
.pfnNVMCTRL_Handler = (void*) NVMCTRL_Handler, /* 5 Non-Volatile Memory Controller */
.pfnDMAC_Handler = (void*) DMAC_Handler, /* 6 Direct Memory Access Controller */
#ifdef ID_USB
.pfnUSB_Handler = (void*) USB_Handler, /* 7 Universal Serial Bus */
#else
.pvReserved7 = (void*) (0UL), /* 7 Reserved */
#endif
.pfnEVSYS_Handler = (void*) EVSYS_Handler, /* 8 Event System Interface */
.pfnSERCOM0_Handler = (void*) SERCOM0_Handler, /* 9 Serial Communication Interface 0 */
.pfnSERCOM1_Handler = (void*) SERCOM1_Handler, /* 10 Serial Communication Interface 1 */
.pfnSERCOM2_Handler = (void*) SERCOM2_Handler, /* 11 Serial Communication Interface 2 */
.pfnSERCOM3_Handler = (void*) SERCOM3_Handler, /* 12 Serial Communication Interface 3 */
#ifdef ID_SERCOM4
.pfnSERCOM4_Handler = (void*) SERCOM4_Handler, /* 13 Serial Communication Interface 4 */
#else
.pvReserved13 = (void*) (0UL), /* 13 Reserved */
#endif
#ifdef ID_SERCOM5
.pfnSERCOM5_Handler = (void*) SERCOM5_Handler, /* 14 Serial Communication Interface 5 */
#else
.pvReserved14 = (void*) (0UL), /* 14 Reserved */
#endif
.pfnTCC0_Handler = (void*) TCC0_Handler, /* 15 Timer Counter Control 0 */
.pfnTCC1_Handler = (void*) TCC1_Handler, /* 16 Timer Counter Control 1 */
.pfnTCC2_Handler = (void*) TCC2_Handler, /* 17 Timer Counter Control 2 */
.pfnTC3_Handler = (void*) TC3_Handler, /* 18 Basic Timer Counter 0 */
.pfnTC4_Handler = (void*) TC4_Handler, /* 19 Basic Timer Counter 1 */
.pfnTC5_Handler = (void*) TC5_Handler, /* 20 Basic Timer Counter 2 */
#ifdef ID_TC6
.pfnTC6_Handler = (void*) TC6_Handler, /* 21 Basic Timer Counter 3 */
#else
.pvReserved21 = (void*) (0UL), /* 21 Reserved */
#endif
#ifdef ID_TC7
.pfnTC7_Handler = (void*) TC7_Handler, /* 22 Basic Timer Counter 4 */
#else
.pvReserved22 = (void*) (0UL), /* 22 Reserved */
#endif
#ifdef ID_ADC
.pfnADC_Handler = (void*) ADC_Handler, /* 23 Analog Digital Converter */
#else
.pvReserved23 = (void*) (0UL), /* 23 Reserved */
#endif
#ifdef ID_AC
.pfnAC_Handler = (void*) AC_Handler, /* 24 Analog Comparators 0 */
#else
.pvReserved24 = (void*) (0UL), /* 24 Reserved */
#endif
#ifdef ID_DAC
.pfnDAC_Handler = (void*) DAC_Handler, /* 25 Digital Analog Converter */
#else
.pvReserved25 = (void*) (0UL), /* 25 Reserved */
#endif
#ifdef ID_PTC
.pfnPTC_Handler = (void*) PTC_Handler, /* 26 Peripheral Touch Controller */
#else
.pvReserved26 = (void*) (0UL), /* 26 Reserved */
#endif
#ifdef ID_I2S
.pfnI2S_Handler = (void*) I2S_Handler, /* 27 Inter-IC Sound Interface */
#else
.pvReserved27 = (void*) (0UL), /* 27 Reserved */
#endif
#ifdef ID_AC1
.pfnAC1_Handler = (void*) AC1_Handler /* 28 Analog Comparators 1 */
#else
.pvReserved28 = (void*) (0UL) /* 28 Reserved */
#endif
};
/**
* \brief This is the code that gets called on processor reset.
* To initialize the device, and call the main() routine.
*/
void Reset_Handler(void)
{
/* Initialize the data segment */
uint32_t *pSrc = &_etext;
uint32_t *pDest = &_sdata;
if (pSrc != pDest) {
for (; pDest < &_edata;) {
*pDest++ = *pSrc++;
}
}
/* Clear the zero segment */
for (pDest = &_sbss; pDest < &_ebss;) {
*pDest++ = 0;
}
/* Set the vector table base address */
pSrc = (uint32_t *) & _stext;
SCB->VTOR = ((uint32_t) pSrc & SCB_VTOR_TBLOFF_Msk);
/* Change default QOS values to have the best performance */
SBMATRIX->SFR[SBMATRIX_SLAVE_HMCRAMC0].reg = 2;
DMAC->QOSCTRL.bit.DQOS = 2;
DMAC->QOSCTRL.bit.FQOS = 2;
DMAC->QOSCTRL.bit.WRBQOS = 2;
/* Overwriting the default value of the NVMCTRL.CTRLB.MANW bit (errata reference 13134) */
NVMCTRL->CTRLB.bit.MANW = 1;
/* Branch to main function */
main();
/* Infinite loop */
while (1);
}
/**
* \brief Default interrupt handler for unused IRQs.
*/
void Dummy_Handler(void)
{
while (1) {
}
}
================================================
FILE: rust/.cargo/config
================================================
[target.thumbv6m-none-eabi]
linker = "arm-none-eabi-gcc"
rustflags = [
"-C", "link-arg=-mcpu=cortex-m0plus",
"-C", "link-arg=-mthumb",
"-C", "link-arg=-Tlayout.ld",
"-C", "link-arg=-nostartfiles",
]
================================================
FILE: rust/Cargo.toml
================================================
[package]
name = "rust"
version = "0.1.0"
authors = ["François Baldassari <hello@franc0is.com>"]
[dependencies]
rust-libcore = "*"
[profile.dev]
panic = "abort"
[profile.release]
panic = "abort"
================================================
FILE: rust/Makefile
================================================
PROJECT := rust
TARGET := thumbv6m-none-eabi
BUILD_DIR ?= build
CARGO = cargo
CC=arm-none-eabi-gcc
LD=arm-none-eabi-ld
OCPY=arm-none-eabi-objcopy
ODUMP=arm-none-eabi-objdump
SZ=arm-none-eabi-size
OCD=arduino-openocd
MKDIR=mkdir
.PHONY: all
all: $(BUILD_DIR)/$(PROJECT).bin
$(BUILD_DIR)/$(PROJECT).bin: $(BUILD_DIR)/$(TARGET)/debug/$(PROJECT)
$(OCPY) $< $@ -O binary
$(SZ) $<
.PHONY: $(BUILD_DIR)/$(TARGET)/debug/$(PROJECT)
$(BUILD_DIR)/$(TARGET)/debug/$(PROJECT):
$(MKDIR) -p $(BUILD_DIR)
CARGO_TARGET_DIR=$(BUILD_DIR) $(CARGO) build --target=$(TARGET)
.PHONY: clean
clean:
rm -rf $(BUILD_DIR)
================================================
FILE: rust/layout.ld
================================================
/*
* Pretty minimal linker script for Rust on STM32F4.
*
* Derived from my C++ script and the linker script from Zinc (http://zinc.rs).
*/
/*
* Mark the Rust-defined ISR_VECTORS table as our entry point. This defines
* the root of the linker's reachability analysis for `--gc-sections` and
* ensures that our code is not eliminated during GC.
*/
ENTRY(ISR_VECTORS)
/*
* Memory layout for the larger STM32F407 parts. We pretend that SRAM1/2 are
* a contiguous region for now. For information on why you might want to change
* this, see: http://cliffle.com/article/2015/06/11/matrix/
*/
MEMORY
{
rom (rx) : ORIGIN = 0x00000000, LENGTH = 0x00040000
ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00008000
}
/*
* Output section layout.
*/
SECTIONS {
/* Vector tables */
.vector : ALIGN(4) {
/* Reduces writes to NAND flash, which erases to 0xFF. */
FILL(0xff)
KEEP(*(.isr_vector))
KEEP(*(.isr_vector_nvic))
} > rom
/* Program code and read-only data. */
.text : ALIGN(4) {
FILL(0xff)
*(.text*)
*(.rodata .rodata.*)
} > rom
/*
* Initialized data. Initialized data lives in two places: its LOADADDR
* is in ROM, but it is accessed at a different address in RAM. It is
* the responsibility of runtime startup code to copy the initialization
* image from the LOADADDR to the ADDR; see _data_load, below.
*/
.data : ALIGN(4) {
/* Start of data, for reference by the runtime. */
_data = .;
/* Actual data symbols. Sorting by alignment packs them tighter. */
*(SORT_BY_ALIGNMENT(.data*))
/* Round up to a word boundary, so the runtime can use word copies. */
. = ALIGN(4);
/* End of data to initialize, for the runtime. */
_edata = .;
} > ram AT>rom = 0xff
/*
* Uninitialized data. This should be zeroed by the runtime startup code
* before use.
*/
.bss : ALIGN(4) {
/* Start of area to zero, for reference by the runtime. */
_bss = .;
*(.bss*)
*(COMMON) /* Not clear that Rust generates COMMON data, but. */
/* Round up to a word boundary, so the runtime can write whole words. */
. = ALIGN(4);
/* End of area to zero, for the runtime. */
_ebss = .;
} > ram
.stack (NOLOAD):
{
. = ALIGN(8);
. = . + 0x2000;
. = ALIGN(8);
/* Used by the Rust-defined vector table to determine the initial SP. */
__STACK_BASE = .;
}
/* Explicitly discard sections that we don't need. */
/DISCARD/ :
{
*(.glue_7*) /* arm-thumb interworking */
*(.v4_bx) /* ARMv4 interworking fixup for missing BX */
*(.vfp11_veneer) /* VFP11 bugfixes s.a. http://sourceware.org/ml/binutils/2006-12/msg00196.html */
*(.iplt .igot.plt) /* STT_GNU_IFUNC symbols */
*(.rel.*) /* dynamic relocations */
*(.ARM.exidx*) /* index entries for section unwinding */
*(.ARM.extab*) /* exception unwinding information */
}
}
/* The start of the data initialization image in ROM, for the runtime. */
_data_load = LOADADDR(.data);
================================================
FILE: rust/src/main.rs
================================================
#![feature(lang_items,start)]
#![no_std]
#![no_main]
/******************************************************************************/
// Items required by some part of core or the runtime.
/// This will be invoked on `panic!`. We don't currently panic, and there are
/// some pieces missing to enable it (particularly `abort`), but the compiler
/// looks for this when `no_std` is enabled so we have to provide it.
#[lang = "panic_fmt"]
pub extern fn panic_fmt(_msg: core::fmt::Arguments,
_file: &'static str,
_line: u32) -> ! {
loop {}
}
/******************************************************************************/
// Application environment.
extern {
/// This symbol is exported by the linker script, and defines the initial
/// stack pointer.
static __STACK_BASE: u32;
}
/// ARMvx-M interrupt and exception handl
Showing preview only (1,667K chars total). Download the full file or copy to clipboard to get everything.
gitextract_gdqveklf/
├── .gitignore
├── Makefile
├── README.md
├── bootload/
│ ├── Makefile
│ ├── app.ld
│ ├── boot.ld
│ ├── bootload-app.c
│ ├── bootload-boot.c
│ ├── memory_map.h
│ ├── memory_map.ld
│ └── startup_samd21.c
├── bootload-reloc/
│ ├── Makefile
│ ├── app.ld
│ ├── boot.ld
│ ├── bootload-reloc-app.c
│ ├── bootload-reloc-boot.c
│ ├── memory_map.h
│ ├── memory_map.ld
│ └── startup_samd21.c
├── common-bootloaded.mk
├── common-standalone.mk
├── default/
│ ├── Makefile
│ ├── default.c
│ └── samd21g18a_flash.ld
├── lib/
│ └── embeddedartistry_libc/
│ ├── include/
│ │ ├── assert.h
│ │ ├── complex.h
│ │ ├── crt.h
│ │ ├── ctype.h
│ │ ├── endian.h
│ │ ├── errno.h
│ │ ├── float.h
│ │ ├── inttypes.h
│ │ ├── langinfo.h
│ │ ├── limits.h
│ │ ├── locale.h
│ │ ├── math.h
│ │ ├── memory.h
│ │ ├── nl_types.h
│ │ ├── setjmp.h
│ │ ├── stdarg.h
│ │ ├── stdbool.h
│ │ ├── stddef.h
│ │ ├── stdint.h
│ │ ├── stdio.h
│ │ ├── stdlib.h
│ │ ├── string.h
│ │ ├── strings.h
│ │ ├── time.h
│ │ ├── wchar.h
│ │ └── wctype.h
│ ├── libc.a
│ └── libprintf.a
├── minimal/
│ ├── Makefile
│ ├── minimal.c
│ ├── samd21g18a_flash.ld
│ └── startup_samd21.c
├── openocd.cfg
├── reloc/
│ ├── Makefile
│ ├── reloc.c
│ ├── samd21g18a_flash.ld
│ └── startup_samd21.c
├── rust/
│ ├── .cargo/
│ │ └── config
│ ├── Cargo.toml
│ ├── Makefile
│ ├── layout.ld
│ └── src/
│ └── main.rs
├── utils/
│ └── get-fw-size
├── with-libc/
│ ├── Makefile
│ ├── samd21g18a_flash.ld
│ ├── startup_samd21.c
│ └── with-libc.c
└── xdk-asf-3.32.0/
├── common/
│ ├── applications/
│ │ ├── led_chaser/
│ │ │ ├── at32uc3l064_stk600-rcuc3l0/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_example.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── led_chaser.ewd
│ │ │ │ ├── led_chaser.ewp
│ │ │ │ └── led_chaser.eww
│ │ │ ├── atxmega128a1_stk600-rc100x/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_example.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── led_chaser.ewd
│ │ │ │ ├── led_chaser.ewp
│ │ │ │ └── led_chaser.eww
│ │ │ ├── atxmega128a1_xplain/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_example.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── led_chaser.ewd
│ │ │ │ ├── led_chaser.ewp
│ │ │ │ └── led_chaser.eww
│ │ │ ├── atxmega256a3u_stk600-rc064x/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_example.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── led_chaser.ewd
│ │ │ │ ├── led_chaser.ewp
│ │ │ │ └── led_chaser.eww
│ │ │ ├── atxmega32a4u_stk600-rc044x/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_example.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── led_chaser.ewd
│ │ │ │ ├── led_chaser.ewp
│ │ │ │ └── led_chaser.eww
│ │ │ ├── atxmega32e5_stk600-rc032x/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_example.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── led_chaser.ewd
│ │ │ │ ├── led_chaser.ewp
│ │ │ │ └── led_chaser.eww
│ │ │ ├── atxmega32e5_xmega_e5_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_example.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── led_chaser.ewd
│ │ │ │ ├── led_chaser.ewp
│ │ │ │ └── led_chaser.eww
│ │ │ └── led_example.c
│ │ ├── mxt143e_xplained_calculator_demo/
│ │ │ ├── at32uc3a256_uc3_a3_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_calc_demo.ewd
│ │ │ │ ├── mxt143e_xplained_calc_demo.ewp
│ │ │ │ └── mxt143e_xplained_calc_demo.eww
│ │ │ ├── at32uc3l064_uc3_l0_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_calc_demo.ewd
│ │ │ │ ├── mxt143e_xplained_calc_demo.ewp
│ │ │ │ └── mxt143e_xplained_calc_demo.eww
│ │ │ ├── atmel_logo_small.h
│ │ │ ├── atxmega128a1_xmega_a1_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── conf_usart_spi.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_calc_demo.ewd
│ │ │ │ ├── mxt143e_xplained_calc_demo.ewp
│ │ │ │ └── mxt143e_xplained_calc_demo.eww
│ │ │ ├── atxmega128b1_xmega_b1_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── conf_usart_spi.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_calc_demo.ewd
│ │ │ │ ├── mxt143e_xplained_calc_demo.ewp
│ │ │ │ └── mxt143e_xplained_calc_demo.eww
│ │ │ ├── atxmega256a3bu_xmega_a3bu_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── conf_usart_spi.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_calc_demo.ewd
│ │ │ │ ├── mxt143e_xplained_calc_demo.ewp
│ │ │ │ └── mxt143e_xplained_calc_demo.eww
│ │ │ ├── atxmega384c3_xmega_c3_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── conf_usart_spi.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_calc_demo.ewd
│ │ │ │ ├── mxt143e_xplained_calc_demo.ewp
│ │ │ │ └── mxt143e_xplained_calc_demo.eww
│ │ │ ├── calculator.c
│ │ │ ├── conf_membag.h
│ │ │ ├── conf_sysfont.h
│ │ │ ├── conf_win.h
│ │ │ ├── conf_wtk.h
│ │ │ ├── sam4s16c_sam4s_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_calc_demo.eww
│ │ │ │ ├── mxt143e_xplained_calc_demo_flash.ewd
│ │ │ │ ├── mxt143e_xplained_calc_demo_flash.ewp
│ │ │ │ ├── mxt143e_xplained_calc_demo_sram.ewd
│ │ │ │ └── mxt143e_xplained_calc_demo_sram.ewp
│ │ │ ├── widget_gui.c
│ │ │ └── widget_gui.h
│ │ ├── mxt143e_xplained_multi-touch_demo/
│ │ │ ├── at32uc3a3256_uc3_a3_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_multi-touch_demo.ewd
│ │ │ │ ├── mxt143e_xplained_multi-touch_demo.ewp
│ │ │ │ └── mxt143e_xplained_multi-touch_demo.eww
│ │ │ ├── at32uc3l064_uc3_l0_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_multi-touch_demo.ewd
│ │ │ │ ├── mxt143e_xplained_multi-touch_demo.ewp
│ │ │ │ └── mxt143e_xplained_multi-touch_demo.eww
│ │ │ ├── atxmega128a1_xmega_a1_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── conf_usart_spi.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_multi-touch_demo.ewd
│ │ │ │ ├── mxt143e_xplained_multi-touch_demo.ewp
│ │ │ │ └── mxt143e_xplained_multi-touch_demo.eww
│ │ │ ├── atxmega128b1_xmega_b1_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── conf_usart_spi.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_multi-touch_demo.ewd
│ │ │ │ ├── mxt143e_xplained_multi-touch_demo.ewp
│ │ │ │ └── mxt143e_xplained_multi-touch_demo.eww
│ │ │ ├── atxmega256a3bu_xmega_a3bu_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── conf_usart_spi.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_multi-touch_demo.ewd
│ │ │ │ ├── mxt143e_xplained_multi-touch_demo.ewp
│ │ │ │ └── mxt143e_xplained_multi-touch_demo.eww
│ │ │ ├── atxmega384c3_xmega_c3_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── conf_usart_spi.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_multi-touch_demo.ewd
│ │ │ │ ├── mxt143e_xplained_multi-touch_demo.ewp
│ │ │ │ └── mxt143e_xplained_multi-touch_demo.eww
│ │ │ ├── conf_sysfont.h
│ │ │ ├── multi-touch_demo.c
│ │ │ └── sam4s16c_sam4s_xplained/
│ │ │ ├── conf_board.h
│ │ │ ├── conf_clock.h
│ │ │ ├── conf_ili9341.h
│ │ │ ├── conf_mxt.h
│ │ │ ├── conf_spi_master.h
│ │ │ ├── conf_twim.h
│ │ │ ├── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── gcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── asf.h
│ │ │ │ └── config.mk
│ │ │ └── iar/
│ │ │ ├── asf.h
│ │ │ ├── mxt143e_xplained_multi-touch_demo.eww
│ │ │ ├── mxt143e_xplained_multi-touch_demo_flash.ewd
│ │ │ ├── mxt143e_xplained_multi-touch_demo_flash.ewp
│ │ │ ├── mxt143e_xplained_multi-touch_demo_sram.ewd
│ │ │ └── mxt143e_xplained_multi-touch_demo_sram.ewp
│ │ ├── mxt143e_xplained_paint_demo/
│ │ │ ├── at32uc3a3256_uc3_a3_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_paint_demo.ewd
│ │ │ │ ├── mxt143e_xplained_paint_demo.ewp
│ │ │ │ └── mxt143e_xplained_paint_demo.eww
│ │ │ ├── at32uc3l064_uc3_l0_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_paint_demo.ewd
│ │ │ │ ├── mxt143e_xplained_paint_demo.ewp
│ │ │ │ └── mxt143e_xplained_paint_demo.eww
│ │ │ ├── atxmega128a1_xmega_a1_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── conf_usart_spi.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_paint_demo.ewd
│ │ │ │ ├── mxt143e_xplained_paint_demo.ewp
│ │ │ │ └── mxt143e_xplained_paint_demo.eww
│ │ │ ├── atxmega128b1_xmega_b1_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── conf_usart_spi.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_paint_demo.ewd
│ │ │ │ ├── mxt143e_xplained_paint_demo.ewp
│ │ │ │ └── mxt143e_xplained_paint_demo.eww
│ │ │ ├── atxmega256a3bu_xmega_a3bu_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── conf_usart_spi.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_paint_demo.ewd
│ │ │ │ ├── mxt143e_xplained_paint_demo.ewp
│ │ │ │ └── mxt143e_xplained_paint_demo.eww
│ │ │ ├── atxmega384c3_xmega_c3_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_ili9341.h
│ │ │ │ ├── conf_mxt.h
│ │ │ │ ├── conf_twim.h
│ │ │ │ ├── conf_usart_spi.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── mxt143e_xplained_paint_demo.ewd
│ │ │ │ ├── mxt143e_xplained_paint_demo.ewp
│ │ │ │ └── mxt143e_xplained_paint_demo.eww
│ │ │ ├── conf_sysfont.h
│ │ │ ├── paint_demo.c
│ │ │ └── sam4s16c_sam4s_xplained/
│ │ │ ├── conf_board.h
│ │ │ ├── conf_clock.h
│ │ │ ├── conf_ili9341.h
│ │ │ ├── conf_mxt.h
│ │ │ ├── conf_spi_master.h
│ │ │ ├── conf_twim.h
│ │ │ ├── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── gcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── asf.h
│ │ │ │ └── config.mk
│ │ │ └── iar/
│ │ │ ├── asf.h
│ │ │ ├── mxt143e_xplained_paint_demo.eww
│ │ │ ├── mxt143e_xplained_paint_demo_flash.ewd
│ │ │ ├── mxt143e_xplained_paint_demo_flash.ewp
│ │ │ ├── mxt143e_xplained_paint_demo_sram.ewd
│ │ │ └── mxt143e_xplained_paint_demo_sram.ewp
│ │ ├── sensors/
│ │ │ ├── altitude_demo/
│ │ │ │ └── main.cpp
│ │ │ ├── compass_calibration/
│ │ │ │ └── main.c
│ │ │ ├── dcm_demo/
│ │ │ │ └── main.cpp
│ │ │ ├── inertial_demo/
│ │ │ │ └── main.c
│ │ │ ├── inertial_visualizer/
│ │ │ │ ├── data_visualizer.c
│ │ │ │ ├── data_visualizer.h
│ │ │ │ └── main.c
│ │ │ ├── inertial_wake/
│ │ │ │ └── main.c
│ │ │ ├── lightprox_demo/
│ │ │ │ └── main.c
│ │ │ ├── lightprox_visualizer/
│ │ │ │ ├── data_visualizer.c
│ │ │ │ ├── data_visualizer.h
│ │ │ │ └── main.c
│ │ │ ├── lightprox_wake/
│ │ │ │ └── main.c
│ │ │ ├── pressure_demo/
│ │ │ │ └── main.c
│ │ │ ├── prox_calibrate/
│ │ │ │ └── main.c
│ │ │ └── prox_gesture/
│ │ │ └── main.c
│ │ ├── user_application/
│ │ │ ├── at32uc3a0512_evk1100/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── at32uc3a0512_evk1105/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── at32uc3a0512_stk600-rcuc3a0/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── at32uc3a3256_evk1104/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── at32uc3a3256_uc3_a3_xplained/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── at32uc3a3256s_rz600/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── at32uc3b0256_evk1101/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── at32uc3b0256_stk600-rcuc3b0/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── at32uc3c0512c_stk600-rcuc3c0/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── at32uc3c0512c_uc3c_ek/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── at32uc3l0256_stk600-rcuc3l0/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── at32uc3l064_stk600-rcuc3l0/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── at32uc3l064_uc3_l0_xplained/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── at32uc3l064_uc3l_ek/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega1284p_mega_xplained/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega1284p_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega128_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega128rfa1_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega168a_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega168pb_xplained_mini/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega169p_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega16_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega2560_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega256rfr2_atmega256rfr2_xplained_pro/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega324a_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega324pa_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega324pb_xplained_pro/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega328_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega328p_xplained_mini/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega328pb_xplained_mini/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega329p_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega32_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega48a_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega640_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega644a_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega64_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atmega88a_stk600-mega/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atuc128d3_stk600-rcuc3d/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atuc256l3u_stk600-rcuc3l3/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atuc256l4u_stk600-rcuc3l4/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega128a1_stk600-rc100x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega128a1_xmega_a1_xplained/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega128a1_xplain/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega128a1u_stk600-rc100x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega128a3u_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega128a4u_stk600-rc044x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega128b1_stk600-rc100x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega128b1_stk600-rc100x_lcdx/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega128b1_xmega_b1_xplained/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega128b3_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega128b3_stk600-rc064x_lcdx/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega128c3_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega16a4_stk600-rc044x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega16a4u_stk600-rc044x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega16c4_stk600-rc044x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega192a3u_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega192c3_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega192d3_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega256a3_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega256a3b_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega256a3bu_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega256a3bu_xmega_a3bu_xplained/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega256a3u_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega256c3_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega32a4_stk600-rc044x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega32a4u_stk600-rc044x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega32c4_stk600-rc044x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega32d4_stk600-rc044x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega32e5_stk600-rc032x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega32e5_xmega_e5_xplained/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega384c3_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega384c3_xmega_c3_xplained/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega64a1u_stk600-rc100x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega64a3_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega64a3u_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega64a4u_stk600-rc044x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega64b1_stk600-rc100x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega64b1_stk600-rc100x_lcdx/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega64b3_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega64b3_stk600-rc064x_lcdx/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega64c3_stk600-rc064x/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega_rf212b_zigbit_ext/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega_rf212b_zigbit_usb/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega_rf233_zigbit_ext/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── atxmega_rf233_zigbit_usb/
│ │ │ │ ├── config/
│ │ │ │ │ └── conf_board.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── main.c
│ │ │ ├── sam3n4c_sam3n_ek/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam3s4c_sam3s_ek/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam3sd8c_sam3s_ek2/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam3u4e_sam3u_ek/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam3x8e_arduino_due_x/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam3x8h_sam3x_ek/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam4c16c_sam4c_ek/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam4cmp16c_sam4cmp_db/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam4cms16c_sam4cms_db/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam4cp16b_sam4cp16bmb/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam4e16e_sam4e_ek/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam4lc4c_sam4l_ek/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam4n16c_sam4n_xplained_pro/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam4s16c_sam4s_ek/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam4s16c_sam4s_wpir_rd/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam4s16c_sam4s_xplained/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam4sd32c_atpl230amb/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── sam4sd32c_sam4s_ek2/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── same70q21_same70_xplained/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── samv71q21_samv71_xplained_ultra/
│ │ │ │ ├── config/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ └── conf_clock.h
│ │ │ │ └── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ └── user_board/
│ │ │ ├── config/
│ │ │ │ └── conf_board.h
│ │ │ └── doxygen/
│ │ │ └── doxyfile.doxygen
│ │ └── xplained_pro_user_application/
│ │ ├── main.c
│ │ ├── sam4e16e_sam4e_xplained_pro/
│ │ │ ├── config/
│ │ │ │ ├── conf_board.h
│ │ │ │ └── conf_clock.h
│ │ │ └── doxygen/
│ │ │ └── doxyfile.doxygen
│ │ ├── sam4lc4c_sam4l_xplained_pro/
│ │ │ ├── config/
│ │ │ │ ├── conf_board.h
│ │ │ │ └── conf_clock.h
│ │ │ └── doxygen/
│ │ │ └── doxyfile.doxygen
│ │ ├── sam4lc8c_sam4l_xplained_pro/
│ │ │ ├── config/
│ │ │ │ ├── conf_board.h
│ │ │ │ └── conf_clock.h
│ │ │ └── doxygen/
│ │ │ └── doxyfile.doxygen
│ │ ├── sam4sd32c_sam4s_xplained_pro/
│ │ │ ├── config/
│ │ │ │ ├── conf_board.h
│ │ │ │ └── conf_clock.h
│ │ │ └── doxygen/
│ │ │ └── doxyfile.doxygen
│ │ ├── samg53n19_samg_xplained_pro/
│ │ │ ├── config/
│ │ │ │ ├── conf_board.h
│ │ │ │ └── conf_clock.h
│ │ │ └── doxygen/
│ │ │ └── doxyfile.doxygen
│ │ ├── samg55j19_samg_xplained_pro/
│ │ │ ├── config/
│ │ │ │ ├── conf_board.h
│ │ │ │ └── conf_clock.h
│ │ │ └── doxygen/
│ │ │ └── doxyfile.doxygen
│ │ └── xmega_a1u_xplained_pro/
│ │ ├── config/
│ │ │ ├── conf_at45dbx.h
│ │ │ ├── conf_board.h
│ │ │ └── conf_clock.h
│ │ └── doxygen/
│ │ └── doxyfile.doxygen
│ ├── boards/
│ │ ├── board.h
│ │ ├── security_xplained/
│ │ │ ├── doxygen/
│ │ │ │ └── common.boards.security_xplained/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── security_xplained.c
│ │ │ └── security_xplained.h
│ │ ├── sensors_xplained/
│ │ │ ├── doxygen/
│ │ │ │ └── common.boards.sensors_xplained/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── sensors_xplained.c
│ │ │ ├── sensors_xplained.h
│ │ │ └── xplained_headers.h
│ │ └── user_board/
│ │ ├── board_config/
│ │ │ └── conf_board.h
│ │ ├── debug_config/
│ │ │ ├── flash.gdb
│ │ │ ├── flash.mac
│ │ │ ├── ram.gdb
│ │ │ └── ram.mac
│ │ ├── init.c
│ │ └── user_board.h
│ ├── drivers/
│ │ └── nvm/
│ │ ├── common_nvm.h
│ │ ├── doxygen/
│ │ │ ├── common.drivers.nvm_extmem_0/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── common.drivers.nvm_extmem_1/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── common.drivers.nvm_extmem_2/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── common.drivers.nvm_no_extmem_0/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── common.drivers.nvm_no_extmem_1/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── common.drivers.nvm_no_extmem_2/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── common.drivers.nvm_no_extmem_3/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── common.drivers.nvm_no_extmem_5/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ └── common.drivers.nvm_no_extmem_6/
│ │ │ ├── doxyfile.doxygen
│ │ │ └── doxygen_module_mainpage.h
│ │ ├── example/
│ │ │ ├── at32uc3a0512_evk1100/
│ │ │ │ ├── conf_at45dbx.h
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_example.ewd
│ │ │ │ ├── nvm_example.ewp
│ │ │ │ └── nvm_example.eww
│ │ │ ├── at32uc3a3256_evk1104/
│ │ │ │ ├── conf_at45dbx.h
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_example.ewd
│ │ │ │ ├── nvm_example.ewp
│ │ │ │ └── nvm_example.eww
│ │ │ ├── at32uc3b0256_evk1101/
│ │ │ │ ├── conf_at45dbx.h
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_example.ewd
│ │ │ │ ├── nvm_example.ewp
│ │ │ │ └── nvm_example.eww
│ │ │ ├── atuc128d3_stk600-rcuc3d/
│ │ │ │ ├── conf_at45dbx.h
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ └── gcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── asf.h
│ │ │ │ └── config.mk
│ │ │ ├── atuc256l4u_stk600-rcuc3l4/
│ │ │ │ ├── conf_at45dbx.h
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── conf_usart_spi.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ └── gcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── asf.h
│ │ │ │ └── config.mk
│ │ │ ├── atxmega128a1_xmega_a1_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_example.ewd
│ │ │ │ ├── nvm_example.ewp
│ │ │ │ └── nvm_example.eww
│ │ │ ├── atxmega128a1_xplain/
│ │ │ │ ├── conf_at45dbx.h
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_example.ewd
│ │ │ │ ├── nvm_example.ewp
│ │ │ │ └── nvm_example.eww
│ │ │ ├── atxmega128a1u_stk600-rc100x/
│ │ │ │ ├── conf_at45dbx.h
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_example.ewd
│ │ │ │ ├── nvm_example.ewp
│ │ │ │ └── nvm_example.eww
│ │ │ ├── atxmega128b1_xmega_b1_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_example.ewd
│ │ │ │ ├── nvm_example.ewp
│ │ │ │ └── nvm_example.eww
│ │ │ ├── atxmega256a3bu_xmega_a3bu_xplained/
│ │ │ │ ├── conf_at45dbx.h
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── conf_usart_spi.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_example.ewd
│ │ │ │ ├── nvm_example.ewp
│ │ │ │ └── nvm_example.eww
│ │ │ ├── atxmega256a3u_stk600-rc064x/
│ │ │ │ ├── conf_at45dbx.h
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_example.ewd
│ │ │ │ ├── nvm_example.ewp
│ │ │ │ └── nvm_example.eww
│ │ │ ├── atxmega32a4u_stk600-rc044x/
│ │ │ │ ├── conf_at45dbx.h
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── conf_spi_master.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_example.ewd
│ │ │ │ ├── nvm_example.ewp
│ │ │ │ └── nvm_example.eww
│ │ │ ├── nvm_example.c
│ │ │ ├── sam3n4c_sam3n_ek/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_example.eww
│ │ │ │ ├── nvm_example_flash.ewd
│ │ │ │ ├── nvm_example_flash.ewp
│ │ │ │ ├── nvm_example_sram.ewd
│ │ │ │ └── nvm_example_sram.ewp
│ │ │ ├── sam3s4c_sam3s_ek/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_example.eww
│ │ │ │ ├── nvm_example_flash.ewd
│ │ │ │ ├── nvm_example_flash.ewp
│ │ │ │ ├── nvm_example_sram.ewd
│ │ │ │ └── nvm_example_sram.ewp
│ │ │ ├── sam3u4e_sam3u_ek/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_nvm_example.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_example.eww
│ │ │ │ ├── nvm_example_flash.ewd
│ │ │ │ ├── nvm_example_flash.ewp
│ │ │ │ ├── nvm_example_sram.ewd
│ │ │ │ └── nvm_example_sram.ewp
│ │ │ └── sam4s16c_sam4s_ek/
│ │ │ ├── conf_board.h
│ │ │ ├── conf_clock.h
│ │ │ ├── conf_nvm.h
│ │ │ ├── conf_nvm_example.h
│ │ │ ├── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── gcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── asf.h
│ │ │ │ └── config.mk
│ │ │ └── iar/
│ │ │ ├── asf.h
│ │ │ ├── nvm_example.eww
│ │ │ ├── nvm_example_flash.ewd
│ │ │ ├── nvm_example_flash.ewp
│ │ │ ├── nvm_example_sram.ewd
│ │ │ └── nvm_example_sram.ewp
│ │ ├── sam/
│ │ │ ├── module_config/
│ │ │ │ └── conf_nvm.h
│ │ │ └── sam_nvm.c
│ │ ├── uc3/
│ │ │ ├── flash_api.h
│ │ │ ├── module_config/
│ │ │ │ └── conf_nvm.h
│ │ │ └── uc3_nvm.c
│ │ ├── unit_tests/
│ │ │ ├── at32uc3a3256_evk1104/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_usart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_unit_tests.ewd
│ │ │ │ ├── nvm_unit_tests.ewp
│ │ │ │ └── nvm_unit_tests.eww
│ │ │ ├── atxmega256a3bu_xmega_a3bu_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_usart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_unit_tests.ewd
│ │ │ │ ├── nvm_unit_tests.ewp
│ │ │ │ └── nvm_unit_tests.eww
│ │ │ ├── sam4s16c_sam4s_ek/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_nvm.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_uart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── nvm_unit_tests.eww
│ │ │ │ ├── nvm_unit_tests_flash.ewd
│ │ │ │ ├── nvm_unit_tests_flash.ewp
│ │ │ │ ├── nvm_unit_tests_sram.ewd
│ │ │ │ └── nvm_unit_tests_sram.ewp
│ │ │ └── unit_tests.c
│ │ └── xmega/
│ │ ├── module_config/
│ │ │ └── conf_nvm.h
│ │ └── xmega_nvm.c
│ ├── services/
│ │ ├── adp/
│ │ │ ├── adp.c
│ │ │ ├── adp.h
│ │ │ ├── adp_interface.h
│ │ │ ├── example/
│ │ │ │ ├── adp_example.c
│ │ │ │ ├── adp_example_adc.h
│ │ │ │ ├── adp_example_tc.h
│ │ │ │ ├── adp_window.c
│ │ │ │ ├── adp_window.h
│ │ │ │ ├── sam/
│ │ │ │ │ ├── adp_example_adc.c
│ │ │ │ │ └── adp_example_tc.c
│ │ │ │ ├── sam0/
│ │ │ │ │ ├── adp_example_adc.c
│ │ │ │ │ └── adp_example_tc.c
│ │ │ │ ├── xplained_pro_sam4s_spi/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_spi_master.h
│ │ │ │ │ ├── conf_tc.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── adp_example.eww
│ │ │ │ │ ├── adp_example_flash.ewd
│ │ │ │ │ ├── adp_example_flash.ewp
│ │ │ │ │ ├── adp_example_sram.ewd
│ │ │ │ │ ├── adp_example_sram.ewp
│ │ │ │ │ └── asf.h
│ │ │ │ ├── xplained_pro_sam4s_twi/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_tc.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── adp_example.eww
│ │ │ │ │ ├── adp_example_flash.ewd
│ │ │ │ │ ├── adp_example_flash.ewp
│ │ │ │ │ ├── adp_example_sram.ewd
│ │ │ │ │ ├── adp_example_sram.ewp
│ │ │ │ │ └── asf.h
│ │ │ │ ├── xplained_pro_samd21_spi/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clocks.h
│ │ │ │ │ ├── conf_spi.h
│ │ │ │ │ ├── conf_tc.h
│ │ │ │ │ └── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ ├── xplained_pro_samd21_twi/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clocks.h
│ │ │ │ │ └── conf_tc.h
│ │ │ │ ├── xplained_pro_saml21_spi/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clocks.h
│ │ │ │ │ ├── conf_spi.h
│ │ │ │ │ ├── conf_tc.h
│ │ │ │ │ └── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── xplained_pro_saml21_twi/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clocks.h
│ │ │ │ ├── conf_tc.h
│ │ │ │ └── gcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── asf.h
│ │ │ │ └── config.mk
│ │ │ ├── sam/
│ │ │ │ ├── adp_interface_spi.c
│ │ │ │ └── adp_interface_twi.c
│ │ │ └── sam0/
│ │ │ ├── adp_interface_spi.c
│ │ │ └── adp_interface_twi.c
│ │ ├── calendar/
│ │ │ ├── calendar.c
│ │ │ ├── calendar.h
│ │ │ ├── doxygen/
│ │ │ │ └── common.services.calendar/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── example1/
│ │ │ │ ├── at32uc3l064_uc3_l0_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── calendar_example1.ewd
│ │ │ │ │ ├── calendar_example1.ewp
│ │ │ │ │ └── calendar_example1.eww
│ │ │ │ ├── atuc128d3_stk600-rcuc3d/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ └── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ ├── atuc256l4u_stk600-rcuc3l4/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ └── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ ├── atxmega128a1_xplain/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── calendar_example1.ewd
│ │ │ │ │ ├── calendar_example1.ewp
│ │ │ │ │ └── calendar_example1.eww
│ │ │ │ └── example1.c
│ │ │ ├── example2/
│ │ │ │ ├── at32uc3l064_uc3_l0_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── calendar_example2.ewd
│ │ │ │ │ ├── calendar_example2.ewp
│ │ │ │ │ └── calendar_example2.eww
│ │ │ │ ├── atuc128d3_stk600-rcuc3d/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ └── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ ├── atuc256l4u_stk600-rcuc3l4/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ └── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ ├── atxmega128a1_xplain/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── calendar_example2.ewd
│ │ │ │ │ ├── calendar_example2.ewp
│ │ │ │ │ └── calendar_example2.eww
│ │ │ │ └── example2.c
│ │ │ └── unit_tests/
│ │ │ ├── at32uc3l064_uc3_l0_xplained/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_usart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── calendar_unit_tests.ewd
│ │ │ │ ├── calendar_unit_tests.ewp
│ │ │ │ └── calendar_unit_tests.eww
│ │ │ ├── atuc128d3_stk600-rcuc3d/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_usart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ └── gcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── asf.h
│ │ │ │ └── config.mk
│ │ │ ├── atuc256l4u_stk600-rcuc3l4/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_usart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ └── gcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── asf.h
│ │ │ │ └── config.mk
│ │ │ ├── atxmega128a1_xplain/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_usart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── calendar_unit_tests.ewd
│ │ │ │ ├── calendar_unit_tests.ewp
│ │ │ │ └── calendar_unit_tests.eww
│ │ │ └── unit_tests.c
│ │ ├── clock/
│ │ │ ├── dfll.h
│ │ │ ├── doxygen/
│ │ │ │ ├── common.services.basic.clock_0/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_1/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_10/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_11/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_12/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_13/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_14/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_15/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_16/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_17/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_18/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_19/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_2/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_20/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_21/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_22/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_23/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_24/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_25/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_26/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_27/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_3/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_4/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_5/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_6/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.clock_8/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ └── common.services.basic.clock_9/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── example1/
│ │ │ │ ├── at32uc3a0512_evk1100/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.ewd
│ │ │ │ │ ├── clock_example1.ewp
│ │ │ │ │ └── clock_example1.eww
│ │ │ │ ├── at32uc3a0512_evk1105/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.ewd
│ │ │ │ │ ├── clock_example1.ewp
│ │ │ │ │ └── clock_example1.eww
│ │ │ │ ├── at32uc3a3256_evk1104/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.ewd
│ │ │ │ │ ├── clock_example1.ewp
│ │ │ │ │ └── clock_example1.eww
│ │ │ │ ├── at32uc3a3256_uc3_a3_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.ewd
│ │ │ │ │ ├── clock_example1.ewp
│ │ │ │ │ └── clock_example1.eww
│ │ │ │ ├── at32uc3b0256_evk1101/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.ewd
│ │ │ │ │ ├── clock_example1.ewp
│ │ │ │ │ └── clock_example1.eww
│ │ │ │ ├── at32uc3c0512c_uc3c_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.ewd
│ │ │ │ │ ├── clock_example1.ewp
│ │ │ │ │ └── clock_example1.eww
│ │ │ │ ├── at32uc3l064_stk600-rcuc3l0/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.ewd
│ │ │ │ │ ├── clock_example1.ewp
│ │ │ │ │ └── clock_example1.eww
│ │ │ │ ├── at32uc3l064_uc3_l0_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.ewd
│ │ │ │ │ ├── clock_example1.ewp
│ │ │ │ │ └── clock_example1.eww
│ │ │ │ ├── at32uc3l064_uc3l_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.ewd
│ │ │ │ │ ├── clock_example1.ewp
│ │ │ │ │ └── clock_example1.eww
│ │ │ │ ├── atmega128rfa1_stk600/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.ewd
│ │ │ │ │ ├── clock_example1.ewp
│ │ │ │ │ └── clock_example1.eww
│ │ │ │ ├── atmega256rfr2_atmega256rfr2_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.ewd
│ │ │ │ │ ├── clock_example1.ewp
│ │ │ │ │ └── clock_example1.eww
│ │ │ │ ├── atuc128d3_stk600-rcuc3d/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ └── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ ├── atuc256l4u_stk600-rcuc3l4/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ └── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ ├── atxmega128a1_xplain/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.ewd
│ │ │ │ │ ├── clock_example1.ewp
│ │ │ │ │ └── clock_example1.eww
│ │ │ │ ├── atxmega256a3bu_xmega_a3bu_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.ewd
│ │ │ │ │ ├── clock_example1.ewp
│ │ │ │ │ └── clock_example1.eww
│ │ │ │ ├── clock_example1.c
│ │ │ │ ├── clock_example1_sam.c
│ │ │ │ ├── sam3n4c_sam3n_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam3s4c_sam3s_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam3sd8c_sam3s_ek2/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam3u4e_sam3u_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam3x8e_arduino_due_x/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam3x8h_sam3x_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam4c16c_sam4c_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam4cmp16c_sam4cmp_db/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam4cms16c_sam4cms_db/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam4cp16b_sam4cp16bmb/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam4e16e_sam4e_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam4lc4c_sam4l_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ └── clock_example1_flash.ewp
│ │ │ │ ├── sam4lc4c_sam4l_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ └── clock_example1_flash.ewp
│ │ │ │ ├── sam4lc8c_sam4l8_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ └── clock_example1_flash.ewp
│ │ │ │ ├── sam4n16c_sam4n_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam4s16c_sam4s_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam4s16c_sam4s_wpir_rd/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam4s16c_sam4s_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam4sd32c_atpl230amb/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── sam4sd32c_sam4s_ek2/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── same70q21_same70_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── samg53n19_samg_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ ├── samg55j19_samg_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example1.eww
│ │ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ │ └── clock_example1_sram.ewp
│ │ │ │ └── samv71q21_samv71_xplained_ultra/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── clock_example1.eww
│ │ │ │ ├── clock_example1_flash.ewd
│ │ │ │ ├── clock_example1_flash.ewp
│ │ │ │ ├── clock_example1_sram.ewd
│ │ │ │ └── clock_example1_sram.ewp
│ │ │ ├── example2/
│ │ │ │ ├── at32uc3a0512_evk1100/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.ewd
│ │ │ │ │ ├── clock_example2.ewp
│ │ │ │ │ └── clock_example2.eww
│ │ │ │ ├── at32uc3a0512_evk1105/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.ewd
│ │ │ │ │ ├── clock_example2.ewp
│ │ │ │ │ └── clock_example2.eww
│ │ │ │ ├── at32uc3a3256_evk1104/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.ewd
│ │ │ │ │ ├── clock_example2.ewp
│ │ │ │ │ └── clock_example2.eww
│ │ │ │ ├── at32uc3a3256_uc3_a3_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.ewd
│ │ │ │ │ ├── clock_example2.ewp
│ │ │ │ │ └── clock_example2.eww
│ │ │ │ ├── at32uc3b0256_evk1101/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.ewd
│ │ │ │ │ ├── clock_example2.ewp
│ │ │ │ │ └── clock_example2.eww
│ │ │ │ ├── at32uc3c0512c_uc3c_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.ewd
│ │ │ │ │ ├── clock_example2.ewp
│ │ │ │ │ └── clock_example2.eww
│ │ │ │ ├── at32uc3l064_stk600-rcuc3l0/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.ewd
│ │ │ │ │ ├── clock_example2.ewp
│ │ │ │ │ └── clock_example2.eww
│ │ │ │ ├── at32uc3l064_uc3l_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.ewd
│ │ │ │ │ ├── clock_example2.ewp
│ │ │ │ │ └── clock_example2.eww
│ │ │ │ ├── atuc128d3_stk600-rcuc3d/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ └── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ ├── atuc256l4u_stk600-rcuc3l4/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ └── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ ├── atxmega128a1_xplain/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.ewd
│ │ │ │ │ ├── clock_example2.ewp
│ │ │ │ │ └── clock_example2.eww
│ │ │ │ ├── atxmega128a1u_xmega_a1u_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.ewd
│ │ │ │ │ ├── clock_example2.ewp
│ │ │ │ │ └── clock_example2.eww
│ │ │ │ ├── atxmega256a3bu_xmega_a3bu_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.ewd
│ │ │ │ │ ├── clock_example2.ewp
│ │ │ │ │ └── clock_example2.eww
│ │ │ │ ├── clock_example2_sam.c
│ │ │ │ ├── clock_example2_sam4l.c
│ │ │ │ ├── clock_example2_uc3.c
│ │ │ │ ├── clock_example2_xmega.c
│ │ │ │ ├── sam3n4c_sam3n_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── sam3s4c_sam3s_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── sam3sd8c_sam3s_ek2/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── sam3u4e_sam3u_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── sam3x8e_arduino_due_x/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── sam3x8h_sam3x_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── sam4c16c_sam4c_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── sam4cmp16c_sam4cmp_db/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── sam4cms16c_sam4cms_db/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── sam4e16e_sam4e_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── sam4lc4c_sam4l_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ └── clock_example2_flash.ewp
│ │ │ │ ├── sam4lc4c_sam4l_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ └── clock_example2_flash.ewp
│ │ │ │ ├── sam4lc8c_sam4l8_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ └── clock_example2_flash.ewp
│ │ │ │ ├── sam4n16c_sam4n_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── sam4s16c_sam4s_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── sam4s16c_sam4s_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── sam4sd32c_sam4s_ek2/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── same70q21_same70_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── samg53n19_samg_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ ├── samg55j19_samg_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example2.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example2.eww
│ │ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ │ └── clock_example2_sram.ewp
│ │ │ │ └── samv71q21_samv71_xplained_ultra/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_example2.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── clock_example2.eww
│ │ │ │ ├── clock_example2_flash.ewd
│ │ │ │ ├── clock_example2_flash.ewp
│ │ │ │ ├── clock_example2_sram.ewd
│ │ │ │ └── clock_example2_sram.ewp
│ │ │ ├── example3/
│ │ │ │ ├── at32uc3a0512_evk1100/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.ewd
│ │ │ │ │ ├── clock_example3.ewp
│ │ │ │ │ └── clock_example3.eww
│ │ │ │ ├── at32uc3a0512_evk1105/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.ewd
│ │ │ │ │ ├── clock_example3.ewp
│ │ │ │ │ └── clock_example3.eww
│ │ │ │ ├── at32uc3a3256_evk1104/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.ewd
│ │ │ │ │ ├── clock_example3.ewp
│ │ │ │ │ └── clock_example3.eww
│ │ │ │ ├── at32uc3a3256_uc3_a3_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.ewd
│ │ │ │ │ ├── clock_example3.ewp
│ │ │ │ │ └── clock_example3.eww
│ │ │ │ ├── at32uc3b0256_evk1101/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.ewd
│ │ │ │ │ ├── clock_example3.ewp
│ │ │ │ │ └── clock_example3.eww
│ │ │ │ ├── at32uc3c0512c_uc3c_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.ewd
│ │ │ │ │ ├── clock_example3.ewp
│ │ │ │ │ └── clock_example3.eww
│ │ │ │ ├── at32uc3l064_stk600-rcuc3l0/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.ewd
│ │ │ │ │ ├── clock_example3.ewp
│ │ │ │ │ └── clock_example3.eww
│ │ │ │ ├── at32uc3l064_uc3_l0_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.ewd
│ │ │ │ │ ├── clock_example3.ewp
│ │ │ │ │ └── clock_example3.eww
│ │ │ │ ├── at32uc3l064_uc3l_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.ewd
│ │ │ │ │ ├── clock_example3.ewp
│ │ │ │ │ └── clock_example3.eww
│ │ │ │ ├── atuc128d3_stk600-rcuc3d/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ └── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ ├── atuc256l4u_stk600-rcuc3l4/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ └── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ ├── atxmega128a1_xplain/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.ewd
│ │ │ │ │ ├── clock_example3.ewp
│ │ │ │ │ └── clock_example3.eww
│ │ │ │ ├── atxmega128a1u_xmega_a1u_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.ewd
│ │ │ │ │ ├── clock_example3.ewp
│ │ │ │ │ └── clock_example3.eww
│ │ │ │ ├── clock_example3_sam.c
│ │ │ │ ├── clock_example3_sam4l.c
│ │ │ │ ├── clock_example3_uc3a3_a4.c
│ │ │ │ ├── clock_example3_uc3a_uc3b.c
│ │ │ │ ├── clock_example3_uc3c.c
│ │ │ │ ├── clock_example3_uc3d.c
│ │ │ │ ├── clock_example3_uc3l.c
│ │ │ │ ├── clock_example3_xmega.c
│ │ │ │ ├── clock_example3_xmega_a1u.c
│ │ │ │ ├── sam3n4c_sam3n_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ ├── sam3s4c_sam3s_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ ├── sam3sd8c_sam3s_ek2/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ ├── sam3u4e_sam3u_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ ├── sam3x8e_arduino_due_x/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ ├── sam3x8h_sam3x_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ ├── sam4c16c_sam4c_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ ├── sam4e16e_sam4e_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ ├── sam4lc4c_sam4l_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ └── clock_example3_flash.ewp
│ │ │ │ ├── sam4lc4c_sam4l_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ └── clock_example3_flash.ewp
│ │ │ │ ├── sam4lc8c_sam4l8_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ └── clock_example3_flash.ewp
│ │ │ │ ├── sam4n16c_sam4n_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ ├── sam4s16c_sam4s_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ ├── sam4s16c_sam4s_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ ├── sam4sd32c_sam4s_ek2/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ ├── same70q21_same70_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ ├── samg53n19_samg_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ ├── samg55j19_samg_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example3.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_example3.eww
│ │ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ │ └── clock_example3_sram.ewp
│ │ │ │ └── samv71q21_samv71_xplained_ultra/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_example3.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── clock_example3.eww
│ │ │ │ ├── clock_example3_flash.ewd
│ │ │ │ ├── clock_example3_flash.ewp
│ │ │ │ ├── clock_example3_sram.ewd
│ │ │ │ └── clock_example3_sram.ewp
│ │ │ ├── genclk.h
│ │ │ ├── mega/
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── osc.h
│ │ │ ├── pll.h
│ │ │ ├── sam3n/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── sam3s/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── sam3u/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── sam3x/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── sam4c/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── sam4cm/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── sam4cp/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── sam4e/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── sam4l/
│ │ │ │ ├── dfll.c
│ │ │ │ ├── dfll.h
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.c
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.c
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── sam4n/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── sam4s/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── same70/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── samg/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── sams70/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── samv70/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── samv71/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── sysclk.h
│ │ │ ├── uc3a0_a1/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── uc3a3_a4/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── uc3b0_b1/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── uc3c/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.c
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.c
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── uc3d/
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.c
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.c
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── uc3l/
│ │ │ │ ├── dfll.c
│ │ │ │ ├── dfll.h
│ │ │ │ ├── genclk.h
│ │ │ │ ├── module_config/
│ │ │ │ │ └── conf_clock.h
│ │ │ │ ├── osc.c
│ │ │ │ ├── osc.h
│ │ │ │ ├── pll.c
│ │ │ │ ├── pll.h
│ │ │ │ ├── sysclk.c
│ │ │ │ └── sysclk.h
│ │ │ ├── unit_tests/
│ │ │ │ ├── at32uc3a0512_evk1100/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_test.h
│ │ │ │ │ ├── conf_usart_serial.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_unit_tests.ewd
│ │ │ │ │ ├── clock_unit_tests.ewp
│ │ │ │ │ └── clock_unit_tests.eww
│ │ │ │ ├── at32uc3a0512_evk1105/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_test.h
│ │ │ │ │ ├── conf_usart_serial.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_unit_tests.ewd
│ │ │ │ │ ├── clock_unit_tests.ewp
│ │ │ │ │ └── clock_unit_tests.eww
│ │ │ │ ├── at32uc3a3256_evk1104/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_test.h
│ │ │ │ │ ├── conf_usart_serial.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_unit_tests.ewd
│ │ │ │ │ ├── clock_unit_tests.ewp
│ │ │ │ │ └── clock_unit_tests.eww
│ │ │ │ ├── at32uc3b0256_evk1101/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_test.h
│ │ │ │ │ ├── conf_usart_serial.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_unit_tests.ewd
│ │ │ │ │ ├── clock_unit_tests.ewp
│ │ │ │ │ └── clock_unit_tests.eww
│ │ │ │ ├── at32uc3c0512c_uc3c_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_test.h
│ │ │ │ │ ├── conf_usart_serial.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_unit_tests.ewd
│ │ │ │ │ ├── clock_unit_tests.ewp
│ │ │ │ │ └── clock_unit_tests.eww
│ │ │ │ ├── at32uc3l064_uc3l_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_test.h
│ │ │ │ │ ├── conf_usart_serial.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_unit_tests.ewd
│ │ │ │ │ ├── clock_unit_tests.ewp
│ │ │ │ │ └── clock_unit_tests.eww
│ │ │ │ ├── atuc128d3_stk600-rcuc3d/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_test.h
│ │ │ │ │ ├── conf_usart_serial.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ └── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ ├── sam4lc4c_sam4l_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_test.h
│ │ │ │ │ ├── conf_uart_serial.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_unit_tests.eww
│ │ │ │ │ ├── clock_unit_tests_flash.ewd
│ │ │ │ │ └── clock_unit_tests_flash.ewp
│ │ │ │ ├── sam4lc4c_sam4l_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_test.h
│ │ │ │ │ ├── conf_uart_serial.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_unit_tests.eww
│ │ │ │ │ ├── clock_unit_tests_flash.ewd
│ │ │ │ │ └── clock_unit_tests_flash.ewp
│ │ │ │ ├── sam4lc8c_sam4l8_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_test.h
│ │ │ │ │ ├── conf_uart_serial.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── clock_unit_tests.eww
│ │ │ │ │ ├── clock_unit_tests_flash.ewd
│ │ │ │ │ └── clock_unit_tests_flash.ewp
│ │ │ │ └── unit_tests.c
│ │ │ └── xmega/
│ │ │ ├── module_config/
│ │ │ │ └── conf_clock.h
│ │ │ ├── module_config_usb/
│ │ │ │ └── conf_clock.h
│ │ │ ├── osc.h
│ │ │ ├── pll.h
│ │ │ ├── sysclk.c
│ │ │ └── sysclk.h
│ │ ├── cpu/
│ │ │ ├── doxygen/
│ │ │ │ ├── common.services.basic.cpu_0/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.basic.cpu_1/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ └── common.services.basic.cpu_2/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── reset_cause.h
│ │ │ └── reset_cause_example/
│ │ │ ├── at32uc3a0512_evk1100/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── cpu_example.ewd
│ │ │ │ ├── cpu_example.ewp
│ │ │ │ └── cpu_example.eww
│ │ │ ├── at32uc3a3256_evk1104/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── cpu_example.ewd
│ │ │ │ ├── cpu_example.ewp
│ │ │ │ └── cpu_example.eww
│ │ │ ├── at32uc3b0256_evk1101/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── cpu_example.ewd
│ │ │ │ ├── cpu_example.ewp
│ │ │ │ └── cpu_example.eww
│ │ │ ├── at32uc3c0512c_uc3c_ek/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── cpu_example.ewd
│ │ │ │ ├── cpu_example.ewp
│ │ │ │ └── cpu_example.eww
│ │ │ ├── at32uc3l064_uc3l_ek/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── cpu_example.ewd
│ │ │ │ ├── cpu_example.ewp
│ │ │ │ └── cpu_example.eww
│ │ │ ├── atuc128d3_stk600-rcuc3d/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ └── gcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── asf.h
│ │ │ │ └── config.mk
│ │ │ ├── atxmega128a1_stk600-rc100x/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── cpu_example.ewd
│ │ │ │ ├── cpu_example.ewp
│ │ │ │ └── cpu_example.eww
│ │ │ ├── atxmega128a1_xplain/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── cpu_example.ewd
│ │ │ │ ├── cpu_example.ewp
│ │ │ │ └── cpu_example.eww
│ │ │ ├── atxmega32e5_stk600-rc032x/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── cpu_example.ewd
│ │ │ │ ├── cpu_example.ewp
│ │ │ │ └── cpu_example.eww
│ │ │ ├── reset_cause_example.c
│ │ │ ├── reset_cause_example_sam4l.c
│ │ │ ├── sam4lc4c_sam4l_ek/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_uart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── cpu_example.eww
│ │ │ │ ├── cpu_example_flash.ewd
│ │ │ │ └── cpu_example_flash.ewp
│ │ │ ├── sam4lc4c_sam4l_xplained_pro/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_uart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── cpu_example.eww
│ │ │ │ ├── cpu_example_flash.ewd
│ │ │ │ └── cpu_example_flash.ewp
│ │ │ └── sam4lc8c_sam4l8_xplained_pro/
│ │ │ ├── conf_board.h
│ │ │ ├── conf_clock.h
│ │ │ ├── conf_uart_serial.h
│ │ │ ├── doxygen/
│ │ │ │ └── doxyfile.doxygen
│ │ │ ├── gcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── asf.h
│ │ │ │ └── config.mk
│ │ │ └── iar/
│ │ │ ├── asf.h
│ │ │ ├── cpu_example.eww
│ │ │ ├── cpu_example_flash.ewd
│ │ │ └── cpu_example_flash.ewp
│ │ ├── crc32/
│ │ │ ├── crc32.c
│ │ │ ├── crc32.h
│ │ │ └── doxygen/
│ │ │ └── common.services.crc32/
│ │ │ ├── doxyfile.doxygen
│ │ │ └── doxygen_module_mainpage.h
│ │ ├── delay/
│ │ │ ├── delay.h
│ │ │ ├── doxygen/
│ │ │ │ ├── common.services.delay_mega/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.delay_sam/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.delay_uc3/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ └── common.services.delay_xmega/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── example/
│ │ │ │ ├── at32uc3l064_uc3_l0_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.ewd
│ │ │ │ │ ├── delay_example.ewp
│ │ │ │ │ └── delay_example.eww
│ │ │ │ ├── atxmega128a1_xmega_a1_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.ewd
│ │ │ │ │ ├── delay_example.ewp
│ │ │ │ │ └── delay_example.eww
│ │ │ │ ├── delay_example.c
│ │ │ │ ├── sam3n4c_sam3n_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── sam3s4c_sam3s_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── sam3sd8c_sam3s_ek2/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── sam3u4e_sam3u_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── sam3x8h_sam3x_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── sam4c16c_sam4c_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── sam4cp16b_sam4cp16bmb/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── sam4e16e_sam4e_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── sam4n16c_sam4n_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── sam4s16c_sam4s_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── sam4s16c_sam4s_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── sam4sd32c_atpl230amb/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── sam4sd32c_sam4s_ek2/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── same70q21_same70_xplained/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── samg53n19_samg_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ ├── samg55j19_samg_xplained_pro/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── delay_example.eww
│ │ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ │ └── delay_example_sram.ewp
│ │ │ │ └── samv71q21_samv71_xplained_ultra/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── delay_example.eww
│ │ │ │ ├── delay_example_flash.ewd
│ │ │ │ ├── delay_example_flash.ewp
│ │ │ │ ├── delay_example_sram.ewd
│ │ │ │ └── delay_example_sram.ewp
│ │ │ ├── mega/
│ │ │ │ └── cycle_counter.h
│ │ │ ├── sam/
│ │ │ │ ├── cycle_counter.c
│ │ │ │ └── cycle_counter.h
│ │ │ └── xmega/
│ │ │ └── cycle_counter.h
│ │ ├── fifo/
│ │ │ ├── doxygen/
│ │ │ │ └── common.services.basic.fifo/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── fifo.c
│ │ │ ├── fifo.h
│ │ │ └── unit_tests/
│ │ │ ├── at32uc3a0512_evk1100/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_usart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ └── gcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── asf.h
│ │ │ │ └── config.mk
│ │ │ ├── at32uc3a0512_evk1105/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_usart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ └── gcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── asf.h
│ │ │ │ └── config.mk
│ │ │ ├── atuc128d3_stk600-rcuc3d/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_usart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ └── gcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── asf.h
│ │ │ │ └── config.mk
│ │ │ ├── atxmega128a1_xplain/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_usart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── fifo_unit_tests.ewd
│ │ │ │ ├── fifo_unit_tests.ewp
│ │ │ │ └── fifo_unit_tests.eww
│ │ │ ├── sam4lc4c_sam4l_ek/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_uart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── fifo_unit_tests.eww
│ │ │ │ ├── fifo_unit_tests_flash.ewd
│ │ │ │ └── fifo_unit_tests_flash.ewp
│ │ │ ├── sam4lc4c_sam4l_xplained_pro/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_uart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── fifo_unit_tests.eww
│ │ │ │ ├── fifo_unit_tests_flash.ewd
│ │ │ │ └── fifo_unit_tests_flash.ewp
│ │ │ ├── sam4lc8c_sam4l8_xplained_pro/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_uart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── fifo_unit_tests.eww
│ │ │ │ ├── fifo_unit_tests_flash.ewd
│ │ │ │ └── fifo_unit_tests_flash.ewp
│ │ │ └── unit_tests.c
│ │ ├── freertos/
│ │ │ ├── dbg_print/
│ │ │ │ ├── dbg_print.c
│ │ │ │ ├── dbg_print.h
│ │ │ │ ├── module-config/
│ │ │ │ │ └── conf_dbg_print.h
│ │ │ │ └── quick_start_basic/
│ │ │ │ ├── conf_dbg_print.h
│ │ │ │ ├── qs_dbg_print_basic.c
│ │ │ │ ├── qs_dbg_print_basic.h
│ │ │ │ └── samd20_xplained_pro/
│ │ │ │ ├── FreeRTOSConfig.h
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clocks.h
│ │ │ │ └── gcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── asf.h
│ │ │ │ └── config.mk
│ │ │ └── sam/
│ │ │ ├── doxygen/
│ │ │ │ ├── common.services.layer.freertos.pdc_0/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.layer.freertos.spi_0/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.layer.freertos.twi_0/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.layer.freertos.twihs_0/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ ├── common.services.layer.freertos.uart_0/
│ │ │ │ │ ├── doxyfile.doxygen
│ │ │ │ │ └── doxygen_module_mainpage.h
│ │ │ │ └── common.services.layer.freertos.usart_0/
│ │ │ │ ├── doxyfile.doxygen
│ │ │ │ └── doxygen_module_mainpage.h
│ │ │ ├── freertos_peripheral_control.c
│ │ │ ├── freertos_peripheral_control.h
│ │ │ ├── freertos_peripheral_control_private.h
│ │ │ ├── freertos_spi_master.c
│ │ │ ├── freertos_spi_master.h
│ │ │ ├── freertos_twi_master.c
│ │ │ ├── freertos_twi_master.h
│ │ │ ├── freertos_twihs_master.c
│ │ │ ├── freertos_twihs_master.h
│ │ │ ├── freertos_uart_serial.c
│ │ │ ├── freertos_uart_serial.h
│ │ │ ├── freertos_usart_serial.c
│ │ │ ├── freertos_usart_serial.h
│ │ │ └── unit_tests/
│ │ │ ├── freertos_spi_master/
│ │ │ │ ├── FreeRTOSConfig.h
│ │ │ │ ├── sam3n4c_sam3n_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example.h
│ │ │ │ │ ├── conf_spi_master.h
│ │ │ │ │ ├── conf_test.h
│ │ │ │ │ ├── conf_uart_serial.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── freertos_sam_spi_unit_tests.eww
│ │ │ │ │ ├── freertos_sam_spi_unit_tests_flash.ewd
│ │ │ │ │ └── freertos_sam_spi_unit_tests_flash.ewp
│ │ │ │ ├── sam4c16c_sam4c_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example.h
│ │ │ │ │ ├── conf_spi_master.h
│ │ │ │ │ ├── conf_test.h
│ │ │ │ │ ├── conf_uart_serial.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── freertos_sam_spi_unit_tests.eww
│ │ │ │ │ ├── freertos_sam_spi_unit_tests_flash.ewd
│ │ │ │ │ ├── freertos_sam_spi_unit_tests_flash.ewp
│ │ │ │ │ ├── freertos_sam_spi_unit_tests_sram.ewd
│ │ │ │ │ └── freertos_sam_spi_unit_tests_sram.ewp
│ │ │ │ └── spi_unit_tests.c
│ │ │ ├── freertos_twi_master/
│ │ │ │ ├── FreeRTOSConfig.h
│ │ │ │ ├── sam3x8h_sam3x_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example.h
│ │ │ │ │ ├── conf_test.h
│ │ │ │ │ ├── conf_uart_serial.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── freertos_sam_twi_unit_tests.eww
│ │ │ │ │ ├── freertos_sam_twi_unit_tests_flash.ewd
│ │ │ │ │ ├── freertos_sam_twi_unit_tests_flash.ewp
│ │ │ │ │ ├── freertos_sam_twi_unit_tests_sram.ewd
│ │ │ │ │ └── freertos_sam_twi_unit_tests_sram.ewp
│ │ │ │ ├── sam4c16c_sam4c_ek/
│ │ │ │ │ ├── conf_board.h
│ │ │ │ │ ├── conf_clock.h
│ │ │ │ │ ├── conf_example.h
│ │ │ │ │ ├── conf_test.h
│ │ │ │ │ ├── conf_uart_serial.h
│ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── asf.h
│ │ │ │ │ │ └── config.mk
│ │ │ │ │ └── iar/
│ │ │ │ │ ├── asf.h
│ │ │ │ │ ├── freertos_sam_twi_unit_tests.eww
│ │ │ │ │ ├── freertos_sam_twi_unit_tests_flash.ewd
│ │ │ │ │ ├── freertos_sam_twi_unit_tests_flash.ewp
│ │ │ │ │ ├── freertos_sam_twi_unit_tests_sram.ewd
│ │ │ │ │ └── freertos_sam_twi_unit_tests_sram.ewp
│ │ │ │ └── twi_unit_tests.c
│ │ │ └── freertos_usart_master/
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── sam3n4c_sam3n_ek/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_example.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_uart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── freertos_sam_usart_unit_tests.eww
│ │ │ │ ├── freertos_sam_usart_unit_tests_flash.ewd
│ │ │ │ └── freertos_sam_usart_unit_tests_flash.ewp
│ │ │ ├── sam3s4c_sam3s_ek/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_example.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_uart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── freertos_sam_usart_unit_tests.eww
│ │ │ │ ├── freertos_sam_usart_unit_tests_flash.ewd
│ │ │ │ └── freertos_sam_usart_unit_tests_flash.ewp
│ │ │ ├── sam3sd8c_sam3s_ek2/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_example.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_uart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── freertos_sam_usart_unit_tests.eww
│ │ │ │ ├── freertos_sam_usart_unit_tests_flash.ewd
│ │ │ │ ├── freertos_sam_usart_unit_tests_flash.ewp
│ │ │ │ ├── freertos_sam_usart_unit_tests_sram.ewd
│ │ │ │ └── freertos_sam_usart_unit_tests_sram.ewp
│ │ │ ├── sam3u4e_sam3u_ek/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_example.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_uart_serial.h
│ │ │ │ ├── doxygen/
│ │ │ │ │ └── doxyfile.doxygen
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── asf.h
│ │ │ │ │ └── config.mk
│ │ │ │ └── iar/
│ │ │ │ ├── asf.h
│ │ │ │ ├── freertos_sam_usart_unit_tests.eww
│ │ │ │ ├── freertos_sam_usart_unit_tests_flash.ewd
│ │ │ │ └── freertos_sam_usart_unit_tests_flash.ewp
│ │ │ ├── sam3x8e_arduino_due_x/
│ │ │ │ ├── conf_board.h
│ │ │ │ ├── conf_clock.h
│ │ │ │ ├── conf_example.h
│ │ │ │ ├── conf_test.h
│ │ │ │ ├── conf_uart_serial.h
Copy disabled (too large)
Download .json
Condensed preview — 21000 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (117,767K chars).
[
{
"path": ".gitignore",
"chars": 16,
"preview": "cscope.out\nbuild"
},
{
"path": "Makefile",
"chars": 659,
"preview": "PROJECTS := \\\n\t\trust \\\n\t\tbootload-reloc \\\n\t\treloc \\\n\t\tbootload \\\n\t\twith-libc \\\n\t\tminimal \\\n\t\tdefault\n\n\nOCD := openocd\nRM"
},
{
"path": "README.md",
"chars": 2276,
"preview": "# Bootstrapping C (and rust) applications on Cortex-M MCUs\n\nQuick explorations of different ways to bootstrap a GNU C (o"
},
{
"path": "bootload/Makefile",
"chars": 429,
"preview": "PROJECT := bootload\nBUILD_DIR ?= build\n\nINCLUDES = \\\n\t$(ASF_PATH)/sam0/drivers/sercom \\\n\t$(ASF_PATH)/sam0/drivers/sercom"
},
{
"path": "bootload/app.ld",
"chars": 1298,
"preview": "OUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-littlearm\", \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\n\nINCLUDE memory_map.ld\n\nSTACK_SI"
},
{
"path": "bootload/boot.ld",
"chars": 1300,
"preview": "OUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-littlearm\", \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\n\nINCLUDE memory_map.ld\n\nSTACK_SI"
},
{
"path": "bootload/bootload-app.c",
"chars": 2334,
"preview": "#include <stdarg.h>\n#include <stdio.h>\n#include <string.h>\n#include <sys/types.h>\n#include <sys/stat.h>\n\n#include <samd2"
},
{
"path": "bootload/bootload-boot.c",
"chars": 2341,
"preview": "#include <stdarg.h>\n#include <stdio.h>\n#include <string.h>\n#include <sys/types.h>\n#include <sys/stat.h>\n\n#include <samd2"
},
{
"path": "bootload/memory_map.h",
"chars": 131,
"preview": "#pragma once\n\nextern int __bootrom_start__;\nextern int __bootrom_size__;\nextern int __approm_start__;\nextern int __appro"
},
{
"path": "bootload/memory_map.ld",
"chars": 335,
"preview": "MEMORY\n{\n bootrom (rx) : ORIGIN = 0x00000000, LENGTH = 0x00004000\n approm (rx) : ORIGIN = 0x00004000, LENGTH = 0x"
},
{
"path": "bootload/startup_samd21.c",
"chars": 10255,
"preview": "#include \"samd21.h\"\n\n/* Initialize segments */\nextern uint32_t _stext;\nextern uint32_t _etext;\nextern uint32_t _sbss;\nex"
},
{
"path": "bootload-reloc/Makefile",
"chars": 435,
"preview": "PROJECT := bootload-reloc\nBUILD_DIR ?= build\n\nINCLUDES = \\\n\t$(ASF_PATH)/sam0/drivers/sercom \\\n\t$(ASF_PATH)/sam0/drivers/"
},
{
"path": "bootload-reloc/app.ld",
"chars": 1406,
"preview": "OUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-littlearm\", \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\n\nINCLUDE memory_map.ld\n\nSTACK_SI"
},
{
"path": "bootload-reloc/boot.ld",
"chars": 1300,
"preview": "OUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-littlearm\", \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\n\nINCLUDE memory_map.ld\n\nSTACK_SI"
},
{
"path": "bootload-reloc/bootload-reloc-app.c",
"chars": 2334,
"preview": "#include <stdarg.h>\n#include <stdio.h>\n#include <string.h>\n#include <sys/types.h>\n#include <sys/stat.h>\n\n#include <samd2"
},
{
"path": "bootload-reloc/bootload-reloc-boot.c",
"chars": 2670,
"preview": "#include <stdarg.h>\n#include <stdio.h>\n#include <string.h>\n#include <sys/types.h>\n#include <sys/stat.h>\n\n#include <samd2"
},
{
"path": "bootload-reloc/memory_map.h",
"chars": 184,
"preview": "#pragma once\n\nextern int __bootrom_start__;\nextern int __bootrom_size__;\nextern int __approm_start__;\nextern int __appro"
},
{
"path": "bootload-reloc/memory_map.ld",
"chars": 455,
"preview": "MEMORY\n{\n bootrom (rx) : ORIGIN = 0x00000000, LENGTH = 0x00010000\n approm (rx) : ORIGIN = 0x00010000, LENGTH = 0x"
},
{
"path": "bootload-reloc/startup_samd21.c",
"chars": 10199,
"preview": "#include \"samd21.h\"\n\n/* Initialize segments */\nextern uint32_t _stext;\nextern uint32_t _etext;\nextern uint32_t _sbss;\nex"
},
{
"path": "common-bootloaded.mk",
"chars": 2618,
"preview": "ASF_PATH = ../xdk-asf-3.32.0\n\nSRCS += \\\n\t$(ASF_PATH)/common/utils/interrupt/interrupt_sam_nvic.c \\\n\t$(ASF_PATH)/common2/"
},
{
"path": "common-standalone.mk",
"chars": 2746,
"preview": "ASF_PATH := ../xdk-asf-3.32.0\nREPO_ROOT := $(shell git rev-parse --show-toplevel)\n\nifdef DEBUG\n\tNO_ECHO :=\nelse\n\tNO_ECHO"
},
{
"path": "default/Makefile",
"chars": 163,
"preview": "PROJECT := default\nBUILD_DIR ?= build\n\nSRCS = \\\n\t$(ASF_PATH)/sam0/utils/cmsis/samd21/source/gcc/startup_samd21.c \\\n\t$(PR"
},
{
"path": "default/default.c",
"chars": 559,
"preview": "#include <samd21g18a.h>\n\n#include <port.h>\n#include <delay.h>\n\n#define LED_0_PIN PIN_PA17\n\nstatic void set_output(const "
},
{
"path": "default/samd21g18a_flash.ld",
"chars": 4592,
"preview": "/**\n * \\file\n *\n * \\brief Linker script for running in internal FLASH on the SAMD21G18A\n *\n * Copyright (c) 2014-2015 At"
},
{
"path": "lib/embeddedartistry_libc/include/assert.h",
"chars": 515,
"preview": "#ifndef ASSERT_H_\n#define ASSERT_H_\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#ifdef NDEBUG\n#define assert(x) (void)0\n#el"
},
{
"path": "lib/embeddedartistry_libc/include/complex.h",
"chars": 94,
"preview": "#ifndef COMPLEX_H__\n#define COMPLEX_H__\n\n#include <openlibm_complex.h>\n\n#endif // COMPLEX_H__\n"
},
{
"path": "lib/embeddedartistry_libc/include/crt.h",
"chars": 170,
"preview": "#ifndef __CRT_H_\n#define __CRT_H_\n\n#define CRT_HAS_INITFINI_ARRAY\n\nvoid CRTStartup(void);\nvoid __libc_init_array(void);\n"
},
{
"path": "lib/embeddedartistry_libc/include/ctype.h",
"chars": 10030,
"preview": "#ifndef CTYPE_H_\n#define CTYPE_H_\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#define _CTYPE_A 0x00000100L /* Alpha */\n#def"
},
{
"path": "lib/embeddedartistry_libc/include/endian.h",
"chars": 3352,
"preview": "#ifndef __ENDIAN_H_\n#define __ENDIAN_H_\n\n#define __LITTLE_ENDIAN 1234\n#define __BIG_ENDIAN 4321\n#define __PDP_ENDIAN 341"
},
{
"path": "lib/embeddedartistry_libc/include/errno.h",
"chars": 5949,
"preview": "#ifndef ERRNO_H__\n#define ERRNO_H__\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n// TODO:\n// int *__errno_location(void);\n//"
},
{
"path": "lib/embeddedartistry_libc/include/float.h",
"chars": 1362,
"preview": "#ifndef FLOAT_H__\n#define FLOAT_H__\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#if 0\n//TODO\nint __flt_rounds(void);\n#defin"
},
{
"path": "lib/embeddedartistry_libc/include/inttypes.h",
"chars": 6158,
"preview": "#ifndef INTTYPES_H__\n#define INTTYPES_H__\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#include <stdint.h>\n\n/// Division typ"
},
{
"path": "lib/embeddedartistry_libc/include/langinfo.h",
"chars": 2458,
"preview": "#ifndef __LANGINFO_H_\n#define __LANGINFO_H_\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#include <nl_types.h>\n\n// TODO: pul"
},
{
"path": "lib/embeddedartistry_libc/include/limits.h",
"chars": 2046,
"preview": "#ifndef LIMITS_H__\n#define LIMITS_H__\n\n// System Specific Limits\n#include <_limits.h>\n\n/* Support signed or unsigned pla"
},
{
"path": "lib/embeddedartistry_libc/include/locale.h",
"chars": 973,
"preview": "#ifndef __LOCALE_H_\n#define __LOCALE_H_\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n// TODO: documnentation\n\n#define LC_CTY"
},
{
"path": "lib/embeddedartistry_libc/include/math.h",
"chars": 686,
"preview": "#ifndef MATH_H__\n#define MATH_H__\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#include <openlibm_fenv.h>\n#include <openlibm"
},
{
"path": "lib/embeddedartistry_libc/include/memory.h",
"chars": 180,
"preview": "#include <string.h>\n\n/**\n * This file just serves as a functional passthrough to string.h.\n *\n * All primary definitions"
},
{
"path": "lib/embeddedartistry_libc/include/nl_types.h",
"chars": 376,
"preview": "#ifndef __NL_TYPES_H\n#define __NL_TYPES_H\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#define NL_SETD 1\n#define NL_CAT_LOCA"
},
{
"path": "lib/embeddedartistry_libc/include/setjmp.h",
"chars": 656,
"preview": "#ifndef __SETJMP_H_\n#define __SETJMP_H_\n\n#include <_types/_setjmp.h>\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\ntypedef st"
},
{
"path": "lib/embeddedartistry_libc/include/stdarg.h",
"chars": 368,
"preview": "#ifndef _STDARG_H\n#define _STDARG_H\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#define va_start(v, l) __builtin_va_start(v"
},
{
"path": "lib/embeddedartistry_libc/include/stdbool.h",
"chars": 325,
"preview": "#ifndef __STDBOOL_H_\n#define __STDBOOL_H_\n\n#ifndef __cplusplus\n\n/*\n * Only defined for C, since C++ has its own bool sup"
},
{
"path": "lib/embeddedartistry_libc/include/stddef.h",
"chars": 1002,
"preview": "#ifndef STDDEF_H_\n#define STDDEF_H_\n\n#include <_types/_ptrdiff_t.h>\n#include <_types/_size_t.h>\n\n#pragma mark - NULL -\n\n"
},
{
"path": "lib/embeddedartistry_libc/include/stdint.h",
"chars": 11621,
"preview": "/*\n * Copyright (c) 2000-2010 Apple Inc.\n * All rights reserved.\n */\n\n#ifndef STDINT_H_\n#define STDINT_H_\n\n#include <lim"
},
{
"path": "lib/embeddedartistry_libc/include/stdio.h",
"chars": 4878,
"preview": "#ifndef STDIO_H__\n#define STDIO_H__\n\n#include <printf.h>\n#include <stdarg.h>\n#include <stddef.h>\n#include <wctype.h> //T"
},
{
"path": "lib/embeddedartistry_libc/include/stdlib.h",
"chars": 37231,
"preview": "#ifndef STDLIB_H_\n#define STDLIB_H_\n\n#include <stddef.h>\n#include <stdint.h>\n#include <wctype.h> //TODO: remove need for"
},
{
"path": "lib/embeddedartistry_libc/include/string.h",
"chars": 17218,
"preview": "#ifndef STRING_H_\n#define STRING_H_\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif //__cplusplus\n\n#include <stddef.h>\n#include "
},
{
"path": "lib/embeddedartistry_libc/include/strings.h",
"chars": 1331,
"preview": "#ifndef STRINGS_H_\n#define STRINGS_H_\n\n#include <stddef.h>\n#include <stdint.h>\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif /"
},
{
"path": "lib/embeddedartistry_libc/include/time.h",
"chars": 3993,
"preview": "#ifndef _TIME_H_\n#define _TIME_H_\n\n#include <_types/_time_t.h>\n#include <stddef.h>\n\n#ifdef __cplusplus\nextern \"C\" {\n#end"
},
{
"path": "lib/embeddedartistry_libc/include/wchar.h",
"chars": 3345,
"preview": "#ifndef WCHAR_H_\n#define WCHAR_H_\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#include <stddef.h>\n#include <stdint.h>\n#incl"
},
{
"path": "lib/embeddedartistry_libc/include/wctype.h",
"chars": 1014,
"preview": "#ifndef WCTYPE_H__\n#define WCTYPE_H__\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#include <_types/_wchar_t.h>\n\ntypedef con"
},
{
"path": "minimal/Makefile",
"chars": 137,
"preview": "PROJECT := minimal\nBUILD_DIR ?= build\n\nCFLAGS += -nostdlib\n\nSRCS = \\\n\tstartup_samd21.c \\\n\t$(PROJECT).c\n\ninclude ../commo"
},
{
"path": "minimal/minimal.c",
"chars": 489,
"preview": "#include <samd21g18a.h>\n\n#include <port.h>\n\n#define LED_0_PIN PIN_PA17\n\nstatic void set_output(const uint8_t pin) {\n st"
},
{
"path": "minimal/samd21g18a_flash.ld",
"chars": 916,
"preview": "MEMORY\n{\n rom (rx) : ORIGIN = 0x00000000, LENGTH = 0x00040000\n ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x"
},
{
"path": "minimal/startup_samd21.c",
"chars": 1651,
"preview": "#include \"samd21.h\"\n\n/* These are defined in the linker script */\nextern uint32_t _stext;\nextern uint32_t _etext;\nextern"
},
{
"path": "openocd.cfg",
"chars": 74,
"preview": "source [find interface/cmsis-dap.cfg]\nsource [find target/at91samdXX.cfg]\n"
},
{
"path": "reloc/Makefile",
"chars": 382,
"preview": "PROJECT := reloc\nBUILD_DIR ?= build\n\nINCLUDES = \\\n\t$(ASF_PATH)/sam0/drivers/sercom \\\n\t$(ASF_PATH)/sam0/drivers/sercom/us"
},
{
"path": "reloc/reloc.c",
"chars": 2541,
"preview": "#include <stdarg.h>\n#include <stdio.h>\n#include <string.h>\n#include <sys/types.h>\n#include <sys/stat.h>\n\n#include <samd2"
},
{
"path": "reloc/samd21g18a_flash.ld",
"chars": 1432,
"preview": "OUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-littlearm\", \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\n\nMEMORY\n{\n rom (rx) : ORI"
},
{
"path": "reloc/startup_samd21.c",
"chars": 10199,
"preview": "#include \"samd21.h\"\n\n/* Initialize segments */\nextern uint32_t _stext;\nextern uint32_t _etext;\nextern uint32_t _sbss;\nex"
},
{
"path": "rust/.cargo/config",
"chars": 207,
"preview": "[target.thumbv6m-none-eabi]\nlinker = \"arm-none-eabi-gcc\"\nrustflags = [\n \"-C\", \"link-arg=-mcpu=cortex-m0plus\",\n \"-C\", \""
},
{
"path": "rust/Cargo.toml",
"chars": 198,
"preview": "[package]\nname = \"rust\"\nversion = \"0.1.0\"\nauthors = [\"François Baldassari <hello@franc0is.com>\"]\n\n[dependencies]\nrust-li"
},
{
"path": "rust/Makefile",
"chars": 604,
"preview": "PROJECT := rust\nTARGET := thumbv6m-none-eabi\nBUILD_DIR ?= build\nCARGO = cargo\n\nCC=arm-none-eabi-gcc\nLD=arm-none-eabi-ld\n"
},
{
"path": "rust/layout.ld",
"chars": 3220,
"preview": "/*\n * Pretty minimal linker script for Rust on STM32F4.\n *\n * Derived from my C++ script and the linker script from Zinc"
},
{
"path": "rust/src/main.rs",
"chars": 6125,
"preview": "#![feature(lang_items,start)]\n#![no_std]\n#![no_main]\n\n/*****************************************************************"
},
{
"path": "utils/get-fw-size",
"chars": 742,
"preview": "#!/bin/bash\n\nif [ $# -le 2 ]\nthen\n echo \"This script requires 3 arguments.\"\n echo -e \"\\nUsage:\\nget-fw-size FILE "
},
{
"path": "with-libc/Makefile",
"chars": 505,
"preview": "PROJECT := with-libc\nBUILD_DIR ?= build\n\n#\n# Uncomment for non-newlib libc\n#\n#CFLAGS += -nostdlib -DCUSTOM_LIBC\n#LDFLAGS"
},
{
"path": "with-libc/samd21g18a_flash.ld",
"chars": 1397,
"preview": "OUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-littlearm\", \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\n\nMEMORY\n{\n rom (rx) : ORI"
},
{
"path": "with-libc/startup_samd21.c",
"chars": 10334,
"preview": "#include \"samd21.h\"\n\n/* Initialize segments */\nextern uint32_t _stext;\nextern uint32_t _etext;\nextern uint32_t _sbss;\nex"
},
{
"path": "with-libc/with-libc.c",
"chars": 2343,
"preview": "#include <stdarg.h>\n#include <stdio.h>\n#include <string.h>\n#include <sys/types.h>\n#include <sys/stat.h>\n\n#include <samd2"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/at32uc3l064_stk600-rcuc3l0/conf_board.h",
"chars": 3876,
"preview": "/**\n * \\file\n *\n * \\brief Board configuration for clock example 1\n *\n * Copyright (c) 2010-2015 Atmel Corporation. All r"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/at32uc3l064_stk600-rcuc3l0/conf_clock.h",
"chars": 2309,
"preview": "/**\n * \\file\n *\n * \\brief Clock system configuration for clock example 1\n *\n * Copyright (c) 2014-2015 Atmel Corporation"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/at32uc3l064_stk600-rcuc3l0/conf_example.h",
"chars": 2064,
"preview": "/**\n * \\file\n *\n * \\brief Example specific configuration file\n *\n * Copyright (c) 2014-2015 Atmel Corporation. All right"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/at32uc3l064_stk600-rcuc3l0/doxygen/doxyfile.doxygen",
"chars": 70891,
"preview": "# Doxyfile 1.7.1\n\n# This file describes the settings to be used by the documentation system\n# doxygen (www.doxygen.org) "
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/at32uc3l064_stk600-rcuc3l0/gcc/Makefile",
"chars": 2841,
"preview": "# List of available make goals:\n#\n# all Default target, builds the project\n# clean "
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/at32uc3l064_stk600-rcuc3l0/gcc/asf.h",
"chars": 2962,
"preview": "/**\n * \\file\n *\n * \\brief Autogenerated API include file for the Atmel Software Framework (ASF)\n *\n * Copyright (c) 2012"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/at32uc3l064_stk600-rcuc3l0/gcc/config.mk",
"chars": 5234,
"preview": "#\n# Copyright (c) 2009-2010 Atmel Corporation. All rights reserved.\n#\n# \\asf_license_start\n#\n# \\page License\n#\n# Redistr"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/at32uc3l064_stk600-rcuc3l0/iar/asf.h",
"chars": 2962,
"preview": "/**\n * \\file\n *\n * \\brief Autogenerated API include file for the Atmel Software Framework (ASF)\n *\n * Copyright (c) 2012"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/at32uc3l064_stk600-rcuc3l0/iar/led_chaser.ewd",
"chars": 13217,
"preview": "<project>\n\t<fileVersion>2</fileVersion>\n\t<configuration>\n\t\t<name>Debug</name>\n\t\t<toolchain>\n\t\t\t<name>AVR32</name>\n\t\t</to"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/at32uc3l064_stk600-rcuc3l0/iar/led_chaser.ewp",
"chars": 45554,
"preview": "<project>\n\t<fileVersion>2</fileVersion>\n\t<configuration>\n\t\t<name>Debug</name>\n\t\t<toolchain>\n\t\t\t<name>AVR32</name>\n\t\t</to"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/at32uc3l064_stk600-rcuc3l0/iar/led_chaser.eww",
"chars": 114,
"preview": "<workspace>\n\t<batchBuild></batchBuild>\n\t<project>\n\t\t<path>$WS_DIR$\\led_chaser.ewp</path>\n\t</project>\n</workspace>\n"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega128a1_stk600-rc100x/conf_board.h",
"chars": 2642,
"preview": "/**\n * \\file\n *\n * \\brief Example specific board configuration file\n *\n * Copyright (c) 2014-2015 Atmel Corporation. All"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega128a1_stk600-rc100x/conf_clock.h",
"chars": 1965,
"preview": "/**\n * \\file\n *\n * \\brief Example specific clock configuration file\n *\n * Copyright (c) 2014-2015 Atmel Corporation. All"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega128a1_stk600-rc100x/conf_example.h",
"chars": 2070,
"preview": "/**\n * \\file\n *\n * \\brief Example specific configuration file\n *\n * Copyright (c) 2014-2015 Atmel Corporation. All right"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega128a1_stk600-rc100x/doxygen/doxyfile.doxygen",
"chars": 70505,
"preview": "# Doxyfile 1.7.1\n\n# This file describes the settings to be used by the documentation system\n# doxygen (www.doxygen.org) "
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega128a1_stk600-rc100x/gcc/Makefile",
"chars": 2185,
"preview": "# List of available make goals:\n#\n# all Default goal: build the project\n# clean Cl"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega128a1_stk600-rc100x/gcc/asf.h",
"chars": 2863,
"preview": "/**\n * \\file\n *\n * \\brief Autogenerated API include file for the Atmel Software Framework (ASF)\n *\n * Copyright (c) 2012"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega128a1_stk600-rc100x/gcc/config.mk",
"chars": 4588,
"preview": "#\n# Copyright (c) 2010 Atmel Corporation. All rights reserved.\n#\n# \\asf_license_start\n#\n# \\page License\n#\n# Redistributi"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega128a1_stk600-rc100x/iar/asf.h",
"chars": 2863,
"preview": "/**\n * \\file\n *\n * \\brief Autogenerated API include file for the Atmel Software Framework (ASF)\n *\n * Copyright (c) 2012"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega128a1_stk600-rc100x/iar/led_chaser.ewd",
"chars": 42429,
"preview": "<project>\n\t<fileVersion>2</fileVersion>\n\t<configuration>\n\t\t<name>Debug</name>\n\t\t<toolchain>\n\t\t\t<name>AVR</name>\n\t\t</tool"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega128a1_stk600-rc100x/iar/led_chaser.ewp",
"chars": 50637,
"preview": "<project>\n\t<fileVersion>2</fileVersion>\n\t<configuration>\n\t\t<name>Debug</name>\n\t\t<toolchain>\n\t\t\t<name>AVR</name>\n\t\t</tool"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega128a1_stk600-rc100x/iar/led_chaser.eww",
"chars": 114,
"preview": "<workspace>\n\t<batchBuild></batchBuild>\n\t<project>\n\t\t<path>$WS_DIR$\\led_chaser.ewp</path>\n\t</project>\n</workspace>\n"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega128a1_xplain/conf_board.h",
"chars": 1965,
"preview": "/**\n * \\file\n *\n * \\brief Example specific board configuration file\n *\n * Copyright (c) 2014-2015 Atmel Corporation. All"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega128a1_xplain/conf_clock.h",
"chars": 1965,
"preview": "/**\n * \\file\n *\n * \\brief Example specific clock configuration file\n *\n * Copyright (c) 2014-2015 Atmel Corporation. All"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega128a1_xplain/conf_example.h",
"chars": 2070,
"preview": "/**\n * \\file\n *\n * \\brief Example specific configuration file\n *\n * Copyright (c) 2014-2015 Atmel Corporation. All right"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega128a1_xplain/doxygen/doxyfile.doxygen",
"chars": 70450,
"preview": "# Doxyfile 1.7.1\n\n# This file describes the settings to be used by the documentation system\n# doxygen (www.doxygen.org) "
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega128a1_xplain/gcc/Makefile",
"chars": 2185,
"preview": "# List of available make goals:\n#\n# all Default goal: build the project\n# clean Cl"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega128a1_xplain/gcc/asf.h",
"chars": 2856,
"preview": "/**\n * \\file\n *\n * \\brief Autogenerated API include file for the Atmel Software Framework (ASF)\n *\n * Copyright (c) 2012"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega128a1_xplain/gcc/config.mk",
"chars": 4567,
"preview": "#\n# Copyright (c) 2010 Atmel Corporation. All rights reserved.\n#\n# \\asf_license_start\n#\n# \\page License\n#\n# Redistributi"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega128a1_xplain/iar/asf.h",
"chars": 2856,
"preview": "/**\n * \\file\n *\n * \\brief Autogenerated API include file for the Atmel Software Framework (ASF)\n *\n * Copyright (c) 2012"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega128a1_xplain/iar/led_chaser.ewd",
"chars": 42429,
"preview": "<project>\n\t<fileVersion>2</fileVersion>\n\t<configuration>\n\t\t<name>Debug</name>\n\t\t<toolchain>\n\t\t\t<name>AVR</name>\n\t\t</tool"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega128a1_xplain/iar/led_chaser.ewp",
"chars": 50487,
"preview": "<project>\n\t<fileVersion>2</fileVersion>\n\t<configuration>\n\t\t<name>Debug</name>\n\t\t<toolchain>\n\t\t\t<name>AVR</name>\n\t\t</tool"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega128a1_xplain/iar/led_chaser.eww",
"chars": 114,
"preview": "<workspace>\n\t<batchBuild></batchBuild>\n\t<project>\n\t\t<path>$WS_DIR$\\led_chaser.ewp</path>\n\t</project>\n</workspace>\n"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega256a3u_stk600-rc064x/conf_board.h",
"chars": 2642,
"preview": "/**\n * \\file\n *\n * \\brief Example specific board configuration file\n *\n * Copyright (c) 2014-2015 Atmel Corporation. All"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega256a3u_stk600-rc064x/conf_clock.h",
"chars": 1965,
"preview": "/**\n * \\file\n *\n * \\brief Example specific clock configuration file\n *\n * Copyright (c) 2014-2015 Atmel Corporation. All"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega256a3u_stk600-rc064x/conf_example.h",
"chars": 2070,
"preview": "/**\n * \\file\n *\n * \\brief Example specific configuration file\n *\n * Copyright (c) 2014-2015 Atmel Corporation. All right"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega256a3u_stk600-rc064x/doxygen/doxyfile.doxygen",
"chars": 70660,
"preview": "# Doxyfile 1.7.1\n\n# This file describes the settings to be used by the documentation system\n# doxygen (www.doxygen.org) "
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega256a3u_stk600-rc064x/gcc/Makefile",
"chars": 2185,
"preview": "# List of available make goals:\n#\n# all Default goal: build the project\n# clean Cl"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega256a3u_stk600-rc064x/gcc/asf.h",
"chars": 2930,
"preview": "/**\n * \\file\n *\n * \\brief Autogenerated API include file for the Atmel Software Framework (ASF)\n *\n * Copyright (c) 2012"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega256a3u_stk600-rc064x/gcc/config.mk",
"chars": 4825,
"preview": "#\n# Copyright (c) 2010 Atmel Corporation. All rights reserved.\n#\n# \\asf_license_start\n#\n# \\page License\n#\n# Redistributi"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega256a3u_stk600-rc064x/iar/asf.h",
"chars": 2930,
"preview": "/**\n * \\file\n *\n * \\brief Autogenerated API include file for the Atmel Software Framework (ASF)\n *\n * Copyright (c) 2012"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega256a3u_stk600-rc064x/iar/led_chaser.ewd",
"chars": 42429,
"preview": "<project>\n\t<fileVersion>2</fileVersion>\n\t<configuration>\n\t\t<name>Debug</name>\n\t\t<toolchain>\n\t\t\t<name>AVR</name>\n\t\t</tool"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega256a3u_stk600-rc064x/iar/led_chaser.ewp",
"chars": 50658,
"preview": "<project>\n\t<fileVersion>2</fileVersion>\n\t<configuration>\n\t\t<name>Debug</name>\n\t\t<toolchain>\n\t\t\t<name>AVR</name>\n\t\t</tool"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega256a3u_stk600-rc064x/iar/led_chaser.eww",
"chars": 114,
"preview": "<workspace>\n\t<batchBuild></batchBuild>\n\t<project>\n\t\t<path>$WS_DIR$\\led_chaser.ewp</path>\n\t</project>\n</workspace>\n"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32a4u_stk600-rc044x/conf_board.h",
"chars": 2642,
"preview": "/**\n * \\file\n *\n * \\brief Example specific board configuration file\n *\n * Copyright (c) 2014-2015 Atmel Corporation. All"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32a4u_stk600-rc044x/conf_clock.h",
"chars": 1965,
"preview": "/**\n * \\file\n *\n * \\brief Example specific clock configuration file\n *\n * Copyright (c) 2014-2015 Atmel Corporation. All"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32a4u_stk600-rc044x/conf_example.h",
"chars": 2070,
"preview": "/**\n * \\file\n *\n * \\brief Example specific configuration file\n *\n * Copyright (c) 2014-2015 Atmel Corporation. All right"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32a4u_stk600-rc044x/doxygen/doxyfile.doxygen",
"chars": 70616,
"preview": "# Doxyfile 1.7.1\n\n# This file describes the settings to be used by the documentation system\n# doxygen (www.doxygen.org) "
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32a4u_stk600-rc044x/gcc/Makefile",
"chars": 2185,
"preview": "# List of available make goals:\n#\n# all Default goal: build the project\n# clean Cl"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32a4u_stk600-rc044x/gcc/asf.h",
"chars": 2930,
"preview": "/**\n * \\file\n *\n * \\brief Autogenerated API include file for the Atmel Software Framework (ASF)\n *\n * Copyright (c) 2012"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32a4u_stk600-rc044x/gcc/config.mk",
"chars": 4762,
"preview": "#\n# Copyright (c) 2010 Atmel Corporation. All rights reserved.\n#\n# \\asf_license_start\n#\n# \\page License\n#\n# Redistributi"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32a4u_stk600-rc044x/iar/asf.h",
"chars": 2930,
"preview": "/**\n * \\file\n *\n * \\brief Autogenerated API include file for the Atmel Software Framework (ASF)\n *\n * Copyright (c) 2012"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32a4u_stk600-rc044x/iar/led_chaser.ewd",
"chars": 42429,
"preview": "<project>\n\t<fileVersion>2</fileVersion>\n\t<configuration>\n\t\t<name>Debug</name>\n\t\t<toolchain>\n\t\t\t<name>AVR</name>\n\t\t</tool"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32a4u_stk600-rc044x/iar/led_chaser.ewp",
"chars": 50405,
"preview": "<project>\n\t<fileVersion>2</fileVersion>\n\t<configuration>\n\t\t<name>Debug</name>\n\t\t<toolchain>\n\t\t\t<name>AVR</name>\n\t\t</tool"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32a4u_stk600-rc044x/iar/led_chaser.eww",
"chars": 114,
"preview": "<workspace>\n\t<batchBuild></batchBuild>\n\t<project>\n\t\t<path>$WS_DIR$\\led_chaser.ewp</path>\n\t</project>\n</workspace>\n"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32e5_stk600-rc032x/conf_board.h",
"chars": 2642,
"preview": "/**\n * \\file\n *\n * \\brief Example specific board configuration file\n *\n * Copyright (c) 2014-2015 Atmel Corporation. All"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32e5_stk600-rc032x/conf_clock.h",
"chars": 1965,
"preview": "/**\n * \\file\n *\n * \\brief Example specific clock configuration file\n *\n * Copyright (c) 2014-2015 Atmel Corporation. All"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32e5_stk600-rc032x/conf_example.h",
"chars": 2070,
"preview": "/**\n * \\file\n *\n * \\brief Example specific configuration file\n *\n * Copyright (c) 2014-2015 Atmel Corporation. All right"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32e5_stk600-rc032x/doxygen/doxyfile.doxygen",
"chars": 70467,
"preview": "# Doxyfile 1.7.1\n\n# This file describes the settings to be used by the documentation system\n# doxygen (www.doxygen.org) "
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32e5_stk600-rc032x/gcc/Makefile",
"chars": 2185,
"preview": "# List of available make goals:\n#\n# all Default goal: build the project\n# clean Cl"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32e5_stk600-rc032x/gcc/asf.h",
"chars": 2792,
"preview": "/**\n * \\file\n *\n * \\brief Autogenerated API include file for the Atmel Software Framework (ASF)\n *\n * Copyright (c) 2012"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32e5_stk600-rc032x/gcc/config.mk",
"chars": 4585,
"preview": "#\n# Copyright (c) 2010 Atmel Corporation. All rights reserved.\n#\n# \\asf_license_start\n#\n# \\page License\n#\n# Redistributi"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32e5_stk600-rc032x/iar/asf.h",
"chars": 2792,
"preview": "/**\n * \\file\n *\n * \\brief Autogenerated API include file for the Atmel Software Framework (ASF)\n *\n * Copyright (c) 2012"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32e5_stk600-rc032x/iar/led_chaser.ewd",
"chars": 42429,
"preview": "<project>\n\t<fileVersion>2</fileVersion>\n\t<configuration>\n\t\t<name>Debug</name>\n\t\t<toolchain>\n\t\t\t<name>AVR</name>\n\t\t</tool"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32e5_stk600-rc032x/iar/led_chaser.ewp",
"chars": 49720,
"preview": "<project>\n\t<fileVersion>2</fileVersion>\n\t<configuration>\n\t\t<name>Debug</name>\n\t\t<toolchain>\n\t\t\t<name>AVR</name>\n\t\t</tool"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32e5_stk600-rc032x/iar/led_chaser.eww",
"chars": 114,
"preview": "<workspace>\n\t<batchBuild></batchBuild>\n\t<project>\n\t\t<path>$WS_DIR$\\led_chaser.ewp</path>\n\t</project>\n</workspace>\n"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32e5_xmega_e5_xplained/conf_board.h",
"chars": 1964,
"preview": "/**\n * \\file\n *\n * \\brief Example specific board configuration file\n *\n * Copyright (c) 2014-2015 Atmel Corporation. All"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32e5_xmega_e5_xplained/conf_clock.h",
"chars": 1965,
"preview": "/**\n * \\file\n *\n * \\brief Example specific clock configuration file\n *\n * Copyright (c) 2014-2015 Atmel Corporation. All"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32e5_xmega_e5_xplained/conf_example.h",
"chars": 2067,
"preview": "/**\n * \\file\n *\n * \\brief Example specific configuration file\n *\n * Copyright (c) 2014-2015 Atmel Corporation. All right"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32e5_xmega_e5_xplained/doxygen/doxyfile.doxygen",
"chars": 70543,
"preview": "# Doxyfile 1.7.1\n\n# This file describes the settings to be used by the documentation system\n# doxygen (www.doxygen.org) "
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32e5_xmega_e5_xplained/gcc/Makefile",
"chars": 2185,
"preview": "# List of available make goals:\n#\n# all Default goal: build the project\n# clean Cl"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32e5_xmega_e5_xplained/gcc/asf.h",
"chars": 2867,
"preview": "/**\n * \\file\n *\n * \\brief Autogenerated API include file for the Atmel Software Framework (ASF)\n *\n * Copyright (c) 2012"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32e5_xmega_e5_xplained/gcc/config.mk",
"chars": 4597,
"preview": "#\n# Copyright (c) 2010 Atmel Corporation. All rights reserved.\n#\n# \\asf_license_start\n#\n# \\page License\n#\n# Redistributi"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32e5_xmega_e5_xplained/iar/asf.h",
"chars": 2867,
"preview": "/**\n * \\file\n *\n * \\brief Autogenerated API include file for the Atmel Software Framework (ASF)\n *\n * Copyright (c) 2012"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32e5_xmega_e5_xplained/iar/led_chaser.ewd",
"chars": 42429,
"preview": "<project>\n\t<fileVersion>2</fileVersion>\n\t<configuration>\n\t\t<name>Debug</name>\n\t\t<toolchain>\n\t\t\t<name>AVR</name>\n\t\t</tool"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32e5_xmega_e5_xplained/iar/led_chaser.ewp",
"chars": 49827,
"preview": "<project>\n\t<fileVersion>2</fileVersion>\n\t<configuration>\n\t\t<name>Debug</name>\n\t\t<toolchain>\n\t\t\t<name>AVR</name>\n\t\t</tool"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/atxmega32e5_xmega_e5_xplained/iar/led_chaser.eww",
"chars": 114,
"preview": "<workspace>\n\t<batchBuild></batchBuild>\n\t<project>\n\t\t<path>$WS_DIR$\\led_chaser.ewp</path>\n\t</project>\n</workspace>\n"
},
{
"path": "xdk-asf-3.32.0/common/applications/led_chaser/led_example.c",
"chars": 3651,
"preview": "/**\n * \\file\n *\n * \\mainpage\n *\n * \\section title Led Chaser example\n *\n * \\section file File(s)\n * - \\ref led_example.c"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/at32uc3a256_uc3_a3_xplained/conf_board.h",
"chars": 2136,
"preview": "/**\n * \\file\n *\n * \\brief Board configuration\n *\n * Copyright (C) 2014-2015 Atmel Corporation. All rights reserved.\n *\n "
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/at32uc3a256_uc3_a3_xplained/conf_clock.h",
"chars": 2573,
"preview": "/**\n * \\file\n *\n * \\brief System clock driver configuration\n *\n * Copyright (C) 2014-2015 Atmel Corporation. All rights "
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/at32uc3a256_uc3_a3_xplained/conf_ili9341.h",
"chars": 3551,
"preview": "/**\n * \\file\n *\n * \\brief ILI9341 display controller driver configuration\n *\n * Copyright (C) 2014-2015 Atmel Corporatio"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/at32uc3a256_uc3_a3_xplained/conf_mxt.h",
"chars": 2044,
"preview": "/**\n * \\file\n *\n * \\brief maXTouch driver configuration\n *\n * Copyright (C) 2014-2015 Atmel Corporation. All rights rese"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/at32uc3a256_uc3_a3_xplained/conf_spi_master.h",
"chars": 2002,
"preview": "/**\n * \\file\n *\n * \\brief SPI Master driver configuration\n *\n * Copyright (C) 2014-2015 Atmel Corporation. All rights re"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/at32uc3a256_uc3_a3_xplained/conf_twim.h",
"chars": 3907,
"preview": "/**\n * \\file\n *\n * \\brief TWIM Configuration File for AVR UC3.\n *\n * Copyright (C) 2014-2015 Atmel Corporation. All righ"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/at32uc3a256_uc3_a3_xplained/doxygen/doxyfile.doxygen",
"chars": 73346,
"preview": "# Doxyfile 1.7.1\n\n# This file describes the settings to be used by the documentation system\n# doxygen (www.doxygen.org) "
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/at32uc3a256_uc3_a3_xplained/gcc/Makefile",
"chars": 2841,
"preview": "# List of available make goals:\n#\n# all Default target, builds the project\n# clean "
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/at32uc3a256_uc3_a3_xplained/gcc/asf.h",
"chars": 3830,
"preview": "/**\n * \\file\n *\n * \\brief Autogenerated API include file for the Atmel Software Framework (ASF)\n *\n * Copyright (c) 2012"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/at32uc3a256_uc3_a3_xplained/gcc/config.mk",
"chars": 7320,
"preview": "#\n# Copyright (c) 2009-2010 Atmel Corporation. All rights reserved.\n#\n# \\asf_license_start\n#\n# \\page License\n#\n# Redistr"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/at32uc3a256_uc3_a3_xplained/iar/asf.h",
"chars": 3830,
"preview": "/**\n * \\file\n *\n * \\brief Autogenerated API include file for the Atmel Software Framework (ASF)\n *\n * Copyright (c) 2012"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/at32uc3a256_uc3_a3_xplained/iar/mxt143e_xplained_calc_demo.ewd",
"chars": 13217,
"preview": "<project>\n\t<fileVersion>2</fileVersion>\n\t<configuration>\n\t\t<name>Debug</name>\n\t\t<toolchain>\n\t\t\t<name>AVR32</name>\n\t\t</to"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/at32uc3a256_uc3_a3_xplained/iar/mxt143e_xplained_calc_demo.ewp",
"chars": 54650,
"preview": "<project>\n\t<fileVersion>2</fileVersion>\n\t<configuration>\n\t\t<name>Debug</name>\n\t\t<toolchain>\n\t\t\t<name>AVR32</name>\n\t\t</to"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/at32uc3a256_uc3_a3_xplained/iar/mxt143e_xplained_calc_demo.eww",
"chars": 130,
"preview": "<workspace>\n\t<batchBuild></batchBuild>\n\t<project>\n\t\t<path>$WS_DIR$\\mxt143e_xplained_calc_demo.ewp</path>\n\t</project>\n</w"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/at32uc3l064_uc3_l0_xplained/conf_board.h",
"chars": 2136,
"preview": "/**\n * \\file\n *\n * \\brief Board configuration\n *\n * Copyright (C) 2014-2015 Atmel Corporation. All rights reserved.\n *\n "
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/at32uc3l064_uc3_l0_xplained/conf_clock.h",
"chars": 2587,
"preview": "/**\n * \\file\n *\n * \\brief System clock driver configuration\n *\n * Copyright (C) 2014-2015 Atmel Corporation. All rights "
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/at32uc3l064_uc3_l0_xplained/conf_ili9341.h",
"chars": 3551,
"preview": "/**\n * \\file\n *\n * \\brief ILI9341 display controller driver configuration\n *\n * Copyright (C) 2014-2015 Atmel Corporatio"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/at32uc3l064_uc3_l0_xplained/conf_mxt.h",
"chars": 2044,
"preview": "/**\n * \\file\n *\n * \\brief maXTouch driver configuration\n *\n * Copyright (C) 2014-2015 Atmel Corporation. All rights rese"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/at32uc3l064_uc3_l0_xplained/conf_spi_master.h",
"chars": 2002,
"preview": "/**\n * \\file\n *\n * \\brief SPI Master driver configuration\n *\n * Copyright (C) 2014-2015 Atmel Corporation. All rights re"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/at32uc3l064_uc3_l0_xplained/conf_twim.h",
"chars": 3939,
"preview": "/**\n * \\file\n *\n * \\brief TWIM Configuration File for AVR UC3.\n *\n * Copyright (C) 2014-2015 Atmel Corporation. All righ"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/at32uc3l064_uc3_l0_xplained/doxygen/doxyfile.doxygen",
"chars": 73414,
"preview": "# Doxyfile 1.7.1\n\n# This file describes the settings to be used by the documentation system\n# doxygen (www.doxygen.org) "
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/at32uc3l064_uc3_l0_xplained/gcc/Makefile",
"chars": 2841,
"preview": "# List of available make goals:\n#\n# all Default target, builds the project\n# clean "
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/at32uc3l064_uc3_l0_xplained/gcc/asf.h",
"chars": 3843,
"preview": "/**\n * \\file\n *\n * \\brief Autogenerated API include file for the Atmel Software Framework (ASF)\n *\n * Copyright (c) 2012"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/at32uc3l064_uc3_l0_xplained/gcc/config.mk",
"chars": 7437,
"preview": "#\n# Copyright (c) 2009-2010 Atmel Corporation. All rights reserved.\n#\n# \\asf_license_start\n#\n# \\page License\n#\n# Redistr"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/at32uc3l064_uc3_l0_xplained/iar/asf.h",
"chars": 3843,
"preview": "/**\n * \\file\n *\n * \\brief Autogenerated API include file for the Atmel Software Framework (ASF)\n *\n * Copyright (c) 2012"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/at32uc3l064_uc3_l0_xplained/iar/mxt143e_xplained_calc_demo.ewd",
"chars": 13217,
"preview": "<project>\n\t<fileVersion>2</fileVersion>\n\t<configuration>\n\t\t<name>Debug</name>\n\t\t<toolchain>\n\t\t\t<name>AVR32</name>\n\t\t</to"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/at32uc3l064_uc3_l0_xplained/iar/mxt143e_xplained_calc_demo.ewp",
"chars": 54825,
"preview": "<project>\n\t<fileVersion>2</fileVersion>\n\t<configuration>\n\t\t<name>Debug</name>\n\t\t<toolchain>\n\t\t\t<name>AVR32</name>\n\t\t</to"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/at32uc3l064_uc3_l0_xplained/iar/mxt143e_xplained_calc_demo.eww",
"chars": 130,
"preview": "<workspace>\n\t<batchBuild></batchBuild>\n\t<project>\n\t\t<path>$WS_DIR$\\mxt143e_xplained_calc_demo.ewp</path>\n\t</project>\n</w"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/atmel_logo_small.h",
"chars": 18675,
"preview": "/**\n * \\file\n *\n * \\brief Small Atmel Logo image for the ILI9341 display controller\n *\n * Copyright (C) 2014-2015 Atmel "
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/atxmega128a1_xmega_a1_xplained/conf_board.h",
"chars": 2013,
"preview": "/**\n * \\file\n *\n * \\brief Board configuration\n *\n * Copyright (C) 2014-2015 Atmel Corporation. All rights reserved.\n *\n "
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/atxmega128a1_xmega_a1_xplained/conf_clock.h",
"chars": 2110,
"preview": "/**\n * \\file\n *\n * \\brief Clock system driver configuration\n *\n * Copyright (C) 2014-2015 Atmel Corporation. All rights "
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/atxmega128a1_xmega_a1_xplained/conf_ili9341.h",
"chars": 3309,
"preview": "/**\n * \\file\n *\n * \\brief ILI9341 display controller driver configuration\n *\n * Copyright (C) 2014-2015 Atmel Corporatio"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/atxmega128a1_xmega_a1_xplained/conf_mxt.h",
"chars": 2050,
"preview": "/**\n * \\file\n *\n * \\brief maxTouch driver configuration\n *\n * Copyright (C) 2014-2015 Atmel Corporation. All rights rese"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/atxmega128a1_xmega_a1_xplained/conf_twim.h",
"chars": 2133,
"preview": "/**\n * \\file\n *\n * \\brief TWI Master driver configuration\n *\n * Copyright (C) 2014-2015 Atmel Corporation. All rights re"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/atxmega128a1_xmega_a1_xplained/conf_usart_spi.h",
"chars": 1978,
"preview": "/**\n * \\file\n *\n * \\brief USART SPI driver configuration\n *\n * Copyright (C) 2014-2015 Atmel Corporation. All rights res"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/atxmega128a1_xmega_a1_xplained/doxygen/doxyfile.doxygen",
"chars": 73415,
"preview": "# Doxyfile 1.7.1\n\n# This file describes the settings to be used by the documentation system\n# doxygen (www.doxygen.org) "
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/atxmega128a1_xmega_a1_xplained/gcc/Makefile",
"chars": 2185,
"preview": "# List of available make goals:\n#\n# all Default goal: build the project\n# clean Cl"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/atxmega128a1_xmega_a1_xplained/gcc/asf.h",
"chars": 3949,
"preview": "/**\n * \\file\n *\n * \\brief Autogenerated API include file for the Atmel Software Framework (ASF)\n *\n * Copyright (c) 2012"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/atxmega128a1_xmega_a1_xplained/gcc/config.mk",
"chars": 6902,
"preview": "#\n# Copyright (c) 2010 Atmel Corporation. All rights reserved.\n#\n# \\asf_license_start\n#\n# \\page License\n#\n# Redistributi"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/atxmega128a1_xmega_a1_xplained/iar/asf.h",
"chars": 3949,
"preview": "/**\n * \\file\n *\n * \\brief Autogenerated API include file for the Atmel Software Framework (ASF)\n *\n * Copyright (c) 2012"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/atxmega128a1_xmega_a1_xplained/iar/mxt143e_xplained_calc_demo.ewd",
"chars": 42429,
"preview": "<project>\n\t<fileVersion>2</fileVersion>\n\t<configuration>\n\t\t<name>Debug</name>\n\t\t<toolchain>\n\t\t\t<name>AVR</name>\n\t\t</tool"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/atxmega128a1_xmega_a1_xplained/iar/mxt143e_xplained_calc_demo.ewp",
"chars": 60498,
"preview": "<project>\n\t<fileVersion>2</fileVersion>\n\t<configuration>\n\t\t<name>Debug</name>\n\t\t<toolchain>\n\t\t\t<name>AVR</name>\n\t\t</tool"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/atxmega128a1_xmega_a1_xplained/iar/mxt143e_xplained_calc_demo.eww",
"chars": 130,
"preview": "<workspace>\n\t<batchBuild></batchBuild>\n\t<project>\n\t\t<path>$WS_DIR$\\mxt143e_xplained_calc_demo.ewp</path>\n\t</project>\n</w"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/atxmega128b1_xmega_b1_xplained/conf_board.h",
"chars": 2013,
"preview": "/**\n * \\file\n *\n * \\brief Board configuration\n *\n * Copyright (C) 2014-2015 Atmel Corporation. All rights reserved.\n *\n "
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/atxmega128b1_xmega_b1_xplained/conf_clock.h",
"chars": 2110,
"preview": "/**\n * \\file\n *\n * \\brief Clock system driver configuration\n *\n * Copyright (C) 2014-2015 Atmel Corporation. All rights "
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/atxmega128b1_xmega_b1_xplained/conf_ili9341.h",
"chars": 3309,
"preview": "/**\n * \\file\n *\n * \\brief ILI9341 display controller driver configuration\n *\n * Copyright (C) 2014-2015 Atmel Corporatio"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/atxmega128b1_xmega_b1_xplained/conf_mxt.h",
"chars": 2050,
"preview": "/**\n * \\file\n *\n * \\brief maxTouch driver configuration\n *\n * Copyright (C) 2014-2015 Atmel Corporation. All rights rese"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/atxmega128b1_xmega_b1_xplained/conf_twim.h",
"chars": 2133,
"preview": "/**\n * \\file\n *\n * \\brief TWI Master driver configuration\n *\n * Copyright (C) 2014-2015 Atmel Corporation. All rights re"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/atxmega128b1_xmega_b1_xplained/conf_usart_spi.h",
"chars": 1978,
"preview": "/**\n * \\file\n *\n * \\brief USART SPI driver configuration\n *\n * Copyright (C) 2014-2015 Atmel Corporation. All rights res"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/atxmega128b1_xmega_b1_xplained/doxygen/doxyfile.doxygen",
"chars": 73523,
"preview": "# Doxyfile 1.7.1\n\n# This file describes the settings to be used by the documentation system\n# doxygen (www.doxygen.org) "
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/atxmega128b1_xmega_b1_xplained/gcc/Makefile",
"chars": 2185,
"preview": "# List of available make goals:\n#\n# all Default goal: build the project\n# clean Cl"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/atxmega128b1_xmega_b1_xplained/gcc/asf.h",
"chars": 4016,
"preview": "/**\n * \\file\n *\n * \\brief Autogenerated API include file for the Atmel Software Framework (ASF)\n *\n * Copyright (c) 2012"
},
{
"path": "xdk-asf-3.32.0/common/applications/mxt143e_xplained_calculator_demo/atxmega128b1_xmega_b1_xplained/gcc/config.mk",
"chars": 7086,
"preview": "#\n# Copyright (c) 2010 Atmel Corporation. All rights reserved.\n#\n# \\asf_license_start\n#\n# \\page License\n#\n# Redistributi"
}
]
// ... and 20800 more files (download for full content)
About this extraction
This page contains the full source code of the memfault/zero-to-main GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 21000 files (340.1 MB), approximately 27.9M tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.