ASF4 Project Folder Structure - Full

The following is the folder structure generated for a simple project containing a SAM D21 with a single USART.

The root folder contains the following files:

  • atmel_start.c – Code for initializing MCU, drivers, and middleware in the project
  • atmel_start.h – API for initializing MCU, drivers, and middleware in the project
  • atmel_start_pins.h – Pin MUX mappings as made by the user inside Atmel START
  • driver_init.c – Code for initializing drivers
  • driver_init.h – API for initializing drivers
  • main.c – Main application, initializing the selected peripherals
  • atmel_start_config.atstartAtmel START-internal description of the project
  • atmelStart.gpdscAtmel START-internal description of the project
.
├── atmel_start.c
├── atmel_start_config.atstart
├── AtmelStart.gpdsc
├── atmel_start.h
├── atmel_start_pins.h
├── config
│   ├── hpl_dmac_v100_config.h
│   ├── hpl_gclk1_v210_config.h
│   ├── hpl_pm1_v201_config.h
│   ├── hpl_sercom_v200_config.h
│   ├── hpl_sysctrl_v201a_config.h
│   └── peripheral_clk_config.h
├── driver_init.c
├── driver_init.h
├── examples
│   ├── driver_examples.c
│   └── driver_examples.h
├── hal
│   ├── documentation
│   │   └── usart_async.rst
│   ├── include
│   │   ├── hal_atomic.h
│   │   ├── hal_delay.h
│   │   ├── hal_gpio.h
│   │   ├── hal_init.h
│   │   ├── hal_io.h
│   │   ├── hal_sleep.h
│   │   ├── hal_usart_async.h
│   │   ├── hpl_core.h
│   │   ├── hpl_delay.h
│   │   ├── hpl_dma.h
│   │   ├── hpl_gpio.h
│   │   ├── hpl_i2c_m_async.h
│   │   ├── hpl_i2c_m_sync.h
│   │   ├── hpl_i2c_s_async.h
│   │   ├── hpl_i2c_s_sync.h
│   │   ├── hpl_init.h
│   │   ├── hpl_irq.h
│   │   ├── hpl_missing_features.h
│   │   ├── hpl_reset.h
│   │   ├── hpl_sleep.h
│   │   ├── hpl_spi_async.h
│   │   ├── hpl_spi.h
│   │   ├── hpl_spi_m_async.h
│   │   ├── hpl_spi_m_sync.h
│   │   ├── hpl_spi_s_async.h
│   │   ├── hpl_spi_s_sync.h
│   │   ├── hpl_spi_sync.h
│   │   ├── hpl_usart_async.h
│   │   ├── hpl_usart.h
│   │   └── hpl_usart_sync.h
│   ├── src
│   │   ├── hal_atomic.c
│   │   ├── hal_delay.c
│   │   ├── hal_gpio.c
│   │   ├── hal_init.c
│   │   ├── hal_io.c
│   │   ├── hal_sleep.c
│   │   └── hal_usart_async.c
│   └── utils
│       ├── include
│       │   ├── compiler.h
│       │   ├── err_codes.h
│       │   ├── events.h
│       │   ├── parts.h
│       │   ├── utils_assert.h
│       │   ├── utils_event.h
│       │   ├── utils.h
│       │   ├── utils_increment_macro.h
│       │   ├── utils_list.h
│       │   ├── utils_repeat_macro.h
│       │   └── utils_ringbuffer.h
│       └── src
│           ├── utils_assert.c
│           ├── utils_event.c
│           ├── utils_list.c
│           ├── utils_ringbuffer.c
│           └── utils_syscalls.c
├── hpl
│   ├── core
│   │   ├── hpl_core_m0plus_base.c
│   │   ├── hpl_core_port.h
│   │   └── hpl_init.c
│   ├── dmac
│   │   └── hpl_dmac_v100.c
│   ├── gclk
│   │   ├── hpl_gclk1_v210_base.c
│   │   └── hpl_gclk1_v210_base.h
│   ├── pm
│   │   ├── hpl_pm1_v201a.c
│   │   └── hpl_pm1_v201_base.h
│   ├── port
│   │   └── hpl_port_v100.c
│   ├── sercom
│   │   └── hpl_sercom_v200.c
│   └── sysctrl
│       └── hpl_sysctrl_v201a.c
├── hri
│   ├── hri_dmac_v100.h
│   ├── hri_gclk1_v210.h
│   ├── hri_nvmctrl_v106.h
│   ├── hri_pm_v201a.h
│   ├── hri_port_v100.h
│   ├── hri_sercom_v200.h
│   └── hri_sysctrl_v201a.h
└── main.c