There are few people talk about the structure of the atmel studio code set.
I look through the library and the document and give the following result.
http://www.microchip.com/avr-support/advanced-software-framework-(asf)
https://www.microchip.com/mplab/avr-support/advanced-software-framework
http://ww1.microchip.com/downloads/en/DeviceDoc/50002633A.pdf
Advanced Software Framework(ASF) is the framwork used by Mircochip for Atmel product
ASF4 must be used in conjunction with Atmel START, which replaces the ASF Wizard of ASF3.
After configuring in the Atmel START, you can see a list of library inside the folder.
列出磁碟區 Windows 的資料夾 PATH
磁碟區序號為 EE0C-64C1
C:.
├─.atmel-start-backup
├─.atmelstart
├─Config
├─Debug
│ ├─Config
│ ├─Device_Startup
│ ├─examples
│ ├─hal
│ │ ├─include
│ │ ├─src
│ │ └─utils
│ │ ├─include
│ │ └─src
│ ├─hpl
│ │ ├─adc
│ │ ├─core
│ │ ├─dmac
│ │ ├─gclk
│ │ ├─mclk
│ │ ├─osc32kctrl
│ │ ├─oscctrl
│ │ ├─pm
│ │ ├─port
│ │ ├─rtc
│ │ ├─sercom
│ │ ├─systick
│ │ ├─tc
│ │ └─wdt
│ └─hri
├─Device_Startup
├─examples
├─hal
│ ├─include
│ ├─src
│ └─utils
│ ├─include
│ └─src
├─hpl
│ ├─adc
│ ├─core
│ ├─dmac
│ ├─gclk
│ ├─mclk
│ ├─osc32kctrl
│ ├─oscctrl
│ ├─pm
│ ├─port
│ ├─rtc
│ ├─sercom
│ ├─systick
│ ├─tc
│ └─wdt
└─hri
atmel_start_pins.h –> let you find the name of the pin and use it in the program –> \param[in] pin The pin number for device, (const uint8_t pin)
(if middleware is used, it will be the toppest model)
Three main word appear:
• Hardware Abstraction Layer – HAL
Naming convention: HAL functions start with usecase_, for example: adc_dma_driver
• Hardware Proxy Layer – HPL
Naming convention: HPL functions start with usecase, for example: _usart_async_init()
• Hardware Register Interface – HRI
accessing the register.
PS, in the utils, it has list, marco, ringbuffer for you to use