summaryrefslogtreecommitdiff
path: root/bsp
diff options
context:
space:
mode:
authorsheltonyu <[email protected]>2022-05-19 11:07:28 +0800
committerguo <[email protected]>2022-05-19 15:00:03 +0800
commitd466bd054045d9a92fc36069793ac75d242e5583 (patch)
tree687989b794428154bbccf166c77d454098c0f0eb /bsp
parent53be4393aa49257c53e9854439d1e442daa3edce (diff)
[bsp/at32] 1、调整文件结构,合并各系列独立的rt-drivers,以便维护。 2、更新各系列library和工程相关内容
Diffstat (limited to 'bsp')
-rw-r--r--bsp/at32/at32f403a-start/.config14
-rw-r--r--bsp/at32/at32f403a-start/SConstruct5
-rw-r--r--bsp/at32/at32f403a-start/applications/main.c4
-rw-r--r--bsp/at32/at32f403a-start/board/SConscript6
-rw-r--r--bsp/at32/at32f403a-start/project.ewp136
-rw-r--r--bsp/at32/at32f403a-start/project.uvproj162
-rw-r--r--bsp/at32/at32f403a-start/project.uvprojx140
-rw-r--r--bsp/at32/at32f403a-start/rtconfig.h2
-rw-r--r--bsp/at32/at32f407-start/.config19
-rw-r--r--bsp/at32/at32f407-start/SConstruct5
-rw-r--r--bsp/at32/at32f407-start/applications/main.c4
-rw-r--r--bsp/at32/at32f407-start/board/SConscript6
-rw-r--r--bsp/at32/at32f407-start/project.ewp154
-rw-r--r--bsp/at32/at32f407-start/project.uvproj166
-rw-r--r--bsp/at32/at32f407-start/project.uvprojx186
-rw-r--r--bsp/at32/at32f407-start/rtconfig.h2
-rw-r--r--bsp/at32/at32f413-start/.config2
-rw-r--r--bsp/at32/at32f413-start/SConstruct5
-rw-r--r--bsp/at32/at32f413-start/applications/main.c4
-rw-r--r--bsp/at32/at32f413-start/board/SConscript6
-rw-r--r--bsp/at32/at32f413-start/project.ewp132
-rw-r--r--bsp/at32/at32f413-start/project.uvproj158
-rw-r--r--bsp/at32/at32f413-start/project.uvprojx134
-rw-r--r--bsp/at32/at32f415-start/.config10
-rw-r--r--bsp/at32/at32f415-start/SConstruct5
-rw-r--r--bsp/at32/at32f415-start/applications/main.c4
-rw-r--r--bsp/at32/at32f415-start/board/SConscript6
-rw-r--r--bsp/at32/at32f415-start/project.ewp122
-rw-r--r--bsp/at32/at32f415-start/project.uvoptx826
-rw-r--r--bsp/at32/at32f415-start/project.uvproj162
-rw-r--r--bsp/at32/at32f415-start/project.uvprojx370
-rw-r--r--bsp/at32/at32f435-start/.config9
-rw-r--r--bsp/at32/at32f435-start/SConstruct5
-rw-r--r--bsp/at32/at32f435-start/applications/main.c4
-rw-r--r--bsp/at32/at32f435-start/board/SConscript6
-rw-r--r--bsp/at32/at32f435-start/project.ewp160
-rw-r--r--bsp/at32/at32f435-start/project.uvproj122
-rw-r--r--bsp/at32/at32f435-start/project.uvprojx134
-rw-r--r--bsp/at32/at32f435-start/rtconfig.h5
-rw-r--r--bsp/at32/at32f437-start/.config24
-rw-r--r--bsp/at32/at32f437-start/SConstruct5
-rw-r--r--bsp/at32/at32f437-start/applications/main.c4
-rw-r--r--bsp/at32/at32f437-start/board/SConscript6
-rw-r--r--bsp/at32/at32f437-start/project.ewp156
-rw-r--r--bsp/at32/at32f437-start/project.uvproj160
-rw-r--r--bsp/at32/at32f437-start/project.uvprojx128
-rw-r--r--bsp/at32/at32f437-start/rtconfig.h5
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/SConscript (renamed from bsp/at32/libraries/f403a_407/firmware/SConscript)0
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/arm_common_tables.h (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/arm_common_tables.h)0
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/arm_const_structs.h (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/arm_const_structs.h)0
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/arm_helium_utils.h (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/arm_helium_utils.h)0
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/arm_math.h (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/arm_math.h)0
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/arm_mve_tables.h (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/arm_mve_tables.h)0
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/arm_vec_math.h (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/arm_vec_math.h)0
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/cmsis_armcc.h (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/cmsis_armcc.h)0
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/cmsis_armclang.h (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/cmsis_armclang.h)0
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/cmsis_armclang_ltm.h (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/cmsis_armclang_ltm.h)0
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/cmsis_compiler.h (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/cmsis_compiler.h)0
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/cmsis_gcc.h (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/cmsis_gcc.h)0
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/cmsis_iccarm.h (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/cmsis_iccarm.h)0
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/cmsis_version.h (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/cmsis_version.h)0
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/core_cm4.h (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/core_cm4.h)0
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/mpu_armv7.h (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/mpu_armv7.h)0
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/mpu_armv8.h (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/mpu_armv8.h)0
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/pmu_armv8.h (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/pmu_armv8.h)0
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/at32f403a_407.h (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/at32f403a_407.h)6
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/at32f403a_407_conf_template.h (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/at32f403a_407_conf_template.h)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F403AxC_FLASH.ld (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F403AxC_FLASH.ld)6
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F403AxE_FLASH.ld (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F403AxE_FLASH.ld)6
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F403AxG_FLASH.ld (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F403AxG_FLASH.ld)6
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F407xC_FLASH.ld (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F407xC_FLASH.ld)6
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F407xE_FLASH.ld (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F407xE_FLASH.ld)6
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F407xG_FLASH.ld (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F407xG_FLASH.ld)6
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/gcc/startup_at32f403a_407.s (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/gcc/startup_at32f403a_407.s)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F403AxC.icf (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F403AxC.icf)0
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F403AxE.icf (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F403AxE.icf)0
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F403AxG.icf (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F403AxG.icf)0
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F407xC.icf (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F407xC.icf)0
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F407xE.icf (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F407xE.icf)0
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F407xG.icf (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F407xG.icf)0
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/iar/startup_at32f403a_407.s (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/iar/startup_at32f403a_407.s)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/mdk/startup_at32f403a_407.s (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/mdk/startup_at32f403a_407.s)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/system_at32f403a_407.c (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/system_at32f403a_407.c)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/system_at32f403a_407.h (renamed from bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/system_at32f403a_407.h)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_acc.h (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_acc.h)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_adc.h (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_adc.h)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_bpr.h (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_bpr.h)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_can.h (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_can.h)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_crc.h (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_crc.h)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_crm.h (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_crm.h)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_dac.h (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_dac.h)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_debug.h (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_debug.h)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_def.h (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_def.h)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_dma.h (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_dma.h)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_emac.h (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_emac.h)7
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_exint.h (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_exint.h)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_flash.h (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_flash.h)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_gpio.h (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_gpio.h)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_i2c.h (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_i2c.h)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_misc.h (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_misc.h)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_pwc.h (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_pwc.h)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_rtc.h (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_rtc.h)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_sdio.h (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_sdio.h)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_spi.h (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_spi.h)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_tmr.h (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_tmr.h)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_usart.h (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_usart.h)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_usb.h (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_usb.h)5
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_wdt.h (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_wdt.h)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_wwdt.h (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_wwdt.h)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_xmc.h (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_xmc.h)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_acc.c (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_acc.c)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_adc.c (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_adc.c)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_bpr.c (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_bpr.c)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_can.c (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_can.c)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_crc.c (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_crc.c)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_crm.c (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_crm.c)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_dac.c (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_dac.c)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_debug.c (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_debug.c)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_dma.c (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_dma.c)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_emac.c (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_emac.c)39
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_exint.c (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_exint.c)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_flash.c (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_flash.c)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_gpio.c (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_gpio.c)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_i2c.c (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_i2c.c)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_misc.c (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_misc.c)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_pwc.c (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_pwc.c)10
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_rtc.c (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_rtc.c)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_sdio.c (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_sdio.c)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_spi.c (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_spi.c)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_tmr.c (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_tmr.c)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_usart.c (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_usart.c)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_usb.c (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_usb.c)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_wdt.c (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_wdt.c)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_wwdt.c (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_wwdt.c)4
-rw-r--r--bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_xmc.c (renamed from bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_xmc.c)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/SConscript (renamed from bsp/at32/libraries/f413/firmware/SConscript)0
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/arm_common_tables.h (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/arm_common_tables.h)0
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/arm_const_structs.h (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/arm_const_structs.h)0
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/arm_helium_utils.h (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/arm_helium_utils.h)0
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/arm_math.h (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/arm_math.h)0
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/arm_mve_tables.h (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/arm_mve_tables.h)0
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/arm_vec_math.h (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/arm_vec_math.h)0
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/cmsis_armcc.h (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/cmsis_armcc.h)0
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/cmsis_armclang.h (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/cmsis_armclang.h)0
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/cmsis_armclang_ltm.h (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/cmsis_armclang_ltm.h)0
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/cmsis_compiler.h (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/cmsis_compiler.h)0
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/cmsis_gcc.h (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/cmsis_gcc.h)0
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/cmsis_iccarm.h (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/cmsis_iccarm.h)0
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/cmsis_version.h (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/cmsis_version.h)0
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/core_cm4.h (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/core_cm4.h)0
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/mpu_armv7.h (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/mpu_armv7.h)0
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/mpu_armv8.h (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/mpu_armv8.h)0
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/pmu_armv8.h (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/pmu_armv8.h)0
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/at32f413.h (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/at32f413.h)6
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/at32f413_conf_template.h (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/at32f413_conf_template.h)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F413x8_FLASH.ld (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F413x8_FLASH.ld)0
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F413xB_FLASH.ld (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F413xB_FLASH.ld)0
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F413xC_FLASH.ld (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F413xC_FLASH.ld)0
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/gcc/startup_at32f413.s (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/startup/gcc/startup_at32f413.s)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F413x8.icf (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F413x8.icf)0
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F413xB.icf (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F413xB.icf)0
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F413xC.icf (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F413xC.icf)0
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/iar/startup_at32f413.s (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/startup/iar/startup_at32f413.s)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/mdk/startup_at32f413.s (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/startup/mdk/startup_at32f413.s)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/system_at32f413.c (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/system_at32f413.c)10
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/system_at32f413.h (renamed from bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/system_at32f413.h)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_acc.h (renamed from bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_acc.h)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_adc.h (renamed from bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_adc.h)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_bpr.h (renamed from bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_bpr.h)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_can.h (renamed from bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_can.h)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_crc.h (renamed from bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_crc.h)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_crm.h (renamed from bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_crm.h)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_debug.h (renamed from bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_debug.h)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_def.h (renamed from bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_def.h)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_dma.h (renamed from bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_dma.h)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_exint.h (renamed from bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_exint.h)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_flash.h (renamed from bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_flash.h)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_gpio.h (renamed from bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_gpio.h)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_i2c.h (renamed from bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_i2c.h)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_misc.h (renamed from bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_misc.h)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_pwc.h (renamed from bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_pwc.h)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_rtc.h (renamed from bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_rtc.h)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_sdio.h (renamed from bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_sdio.h)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_spi.h (renamed from bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_spi.h)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_tmr.h (renamed from bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_tmr.h)9
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_usart.h (renamed from bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_usart.h)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_usb.h (renamed from bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_usb.h)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_wdt.h (renamed from bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_wdt.h)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_wwdt.h (renamed from bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_wwdt.h)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_acc.c (renamed from bsp/at32/libraries/f413/firmware/drivers/src/at32f413_acc.c)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_adc.c (renamed from bsp/at32/libraries/f413/firmware/drivers/src/at32f413_adc.c)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_bpr.c (renamed from bsp/at32/libraries/f413/firmware/drivers/src/at32f413_bpr.c)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_can.c (renamed from bsp/at32/libraries/f413/firmware/drivers/src/at32f413_can.c)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_crc.c (renamed from bsp/at32/libraries/f413/firmware/drivers/src/at32f413_crc.c)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_crm.c (renamed from bsp/at32/libraries/f413/firmware/drivers/src/at32f413_crm.c)11
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_debug.c (renamed from bsp/at32/libraries/f413/firmware/drivers/src/at32f413_debug.c)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_dma.c (renamed from bsp/at32/libraries/f413/firmware/drivers/src/at32f413_dma.c)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_exint.c (renamed from bsp/at32/libraries/f413/firmware/drivers/src/at32f413_exint.c)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_flash.c (renamed from bsp/at32/libraries/f413/firmware/drivers/src/at32f413_flash.c)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_gpio.c (renamed from bsp/at32/libraries/f413/firmware/drivers/src/at32f413_gpio.c)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_i2c.c (renamed from bsp/at32/libraries/f413/firmware/drivers/src/at32f413_i2c.c)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_misc.c (renamed from bsp/at32/libraries/f413/firmware/drivers/src/at32f413_misc.c)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_pwc.c (renamed from bsp/at32/libraries/f413/firmware/drivers/src/at32f413_pwc.c)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_rtc.c (renamed from bsp/at32/libraries/f413/firmware/drivers/src/at32f413_rtc.c)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_sdio.c (renamed from bsp/at32/libraries/f413/firmware/drivers/src/at32f413_sdio.c)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_spi.c (renamed from bsp/at32/libraries/f413/firmware/drivers/src/at32f413_spi.c)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_tmr.c (renamed from bsp/at32/libraries/f413/firmware/drivers/src/at32f413_tmr.c)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_usart.c (renamed from bsp/at32/libraries/f413/firmware/drivers/src/at32f413_usart.c)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_usb.c (renamed from bsp/at32/libraries/f413/firmware/drivers/src/at32f413_usb.c)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_wdt.c (renamed from bsp/at32/libraries/f413/firmware/drivers/src/at32f413_wdt.c)4
-rw-r--r--bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_wwdt.c (renamed from bsp/at32/libraries/f413/firmware/drivers/src/at32f413_wwdt.c)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/SConscript (renamed from bsp/at32/libraries/f415/firmware/SConscript)0
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/arm_common_tables.h (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/arm_common_tables.h)0
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/arm_const_structs.h (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/arm_const_structs.h)0
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/arm_helium_utils.h (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/arm_helium_utils.h)0
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/arm_math.h (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/arm_math.h)0
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/arm_mve_tables.h (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/arm_mve_tables.h)0
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/arm_vec_math.h (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/arm_vec_math.h)0
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/cmsis_armcc.h (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/cmsis_armcc.h)0
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/cmsis_armclang.h (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/cmsis_armclang.h)0
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/cmsis_armclang_ltm.h (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/cmsis_armclang_ltm.h)0
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/cmsis_compiler.h (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/cmsis_compiler.h)0
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/cmsis_gcc.h (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/cmsis_gcc.h)0
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/cmsis_iccarm.h (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/cmsis_iccarm.h)0
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/cmsis_version.h (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/cmsis_version.h)0
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/core_cm4.h (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/core_cm4.h)0
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/mpu_armv7.h (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/mpu_armv7.h)0
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/mpu_armv8.h (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/mpu_armv8.h)0
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/pmu_armv8.h (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/pmu_armv8.h)0
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/at32f415.h (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/at32f415.h)6
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/at32f415_conf_template.h (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/at32f415_conf_template.h)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F415x8_FLASH.ld (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F415x8_FLASH.ld)0
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F415xB_FLASH.ld (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F415xB_FLASH.ld)0
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F415xC_FLASH.ld (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F415xC_FLASH.ld)0
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/gcc/startup_at32f415.s (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/startup/gcc/startup_at32f415.s)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F415x8.icf (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F415x8.icf)0
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F415xB.icf (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F415xB.icf)0
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F415xC.icf (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F415xC.icf)0
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/iar/startup_at32f415.s (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/startup/iar/startup_at32f415.s)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/mdk/startup_at32f415.s (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/startup/mdk/startup_at32f415.s)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/system_at32f415.c (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/system_at32f415.c)10
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/system_at32f415.h (renamed from bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/system_at32f415.h)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_adc.h (renamed from bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_adc.h)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_can.h (renamed from bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_can.h)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_cmp.h (renamed from bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_cmp.h)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_crc.h (renamed from bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_crc.h)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_crm.h (renamed from bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_crm.h)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_debug.h (renamed from bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_debug.h)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_def.h (renamed from bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_def.h)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_dma.h (renamed from bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_dma.h)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_ertc.h (renamed from bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_ertc.h)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_exint.h (renamed from bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_exint.h)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_flash.h (renamed from bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_flash.h)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_gpio.h (renamed from bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_gpio.h)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_i2c.h (renamed from bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_i2c.h)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_misc.h (renamed from bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_misc.h)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_pwc.h (renamed from bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_pwc.h)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_sdio.h (renamed from bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_sdio.h)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_spi.h (renamed from bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_spi.h)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_tmr.h (renamed from bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_tmr.h)10
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_usart.h (renamed from bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_usart.h)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_usb.h (renamed from bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_usb.h)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_wdt.h (renamed from bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_wdt.h)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_wwdt.h (renamed from bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_wwdt.h)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_adc.c (renamed from bsp/at32/libraries/f415/firmware/drivers/src/at32f415_adc.c)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_can.c (renamed from bsp/at32/libraries/f415/firmware/drivers/src/at32f415_can.c)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_cmp.c (renamed from bsp/at32/libraries/f415/firmware/drivers/src/at32f415_cmp.c)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_crc.c (renamed from bsp/at32/libraries/f415/firmware/drivers/src/at32f415_crc.c)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_crm.c (renamed from bsp/at32/libraries/f415/firmware/drivers/src/at32f415_crm.c)11
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_debug.c (renamed from bsp/at32/libraries/f415/firmware/drivers/src/at32f415_debug.c)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_dma.c (renamed from bsp/at32/libraries/f415/firmware/drivers/src/at32f415_dma.c)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_ertc.c (renamed from bsp/at32/libraries/f415/firmware/drivers/src/at32f415_ertc.c)10
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_exint.c (renamed from bsp/at32/libraries/f415/firmware/drivers/src/at32f415_exint.c)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_flash.c (renamed from bsp/at32/libraries/f415/firmware/drivers/src/at32f415_flash.c)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_gpio.c (renamed from bsp/at32/libraries/f415/firmware/drivers/src/at32f415_gpio.c)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_i2c.c (renamed from bsp/at32/libraries/f415/firmware/drivers/src/at32f415_i2c.c)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_misc.c (renamed from bsp/at32/libraries/f415/firmware/drivers/src/at32f415_misc.c)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_pwc.c (renamed from bsp/at32/libraries/f415/firmware/drivers/src/at32f415_pwc.c)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_sdio.c (renamed from bsp/at32/libraries/f415/firmware/drivers/src/at32f415_sdio.c)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_spi.c (renamed from bsp/at32/libraries/f415/firmware/drivers/src/at32f415_spi.c)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_tmr.c (renamed from bsp/at32/libraries/f415/firmware/drivers/src/at32f415_tmr.c)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_usart.c (renamed from bsp/at32/libraries/f415/firmware/drivers/src/at32f415_usart.c)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_usb.c (renamed from bsp/at32/libraries/f415/firmware/drivers/src/at32f415_usb.c)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_wdt.c (renamed from bsp/at32/libraries/f415/firmware/drivers/src/at32f415_wdt.c)4
-rw-r--r--bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_wwdt.c (renamed from bsp/at32/libraries/f415/firmware/drivers/src/at32f415_wwdt.c)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/SConscript (renamed from bsp/at32/libraries/f435_437/firmware/SConscript)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/arm_common_tables.h (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/arm_common_tables.h)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/arm_const_structs.h (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/arm_const_structs.h)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/arm_helium_utils.h (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/arm_helium_utils.h)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/arm_math.h (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/arm_math.h)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/arm_mve_tables.h (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/arm_mve_tables.h)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/arm_vec_math.h (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/arm_vec_math.h)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/cmsis_armcc.h (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/cmsis_armcc.h)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/cmsis_armclang.h (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/cmsis_armclang.h)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/cmsis_armclang_ltm.h (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/cmsis_armclang_ltm.h)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/cmsis_compiler.h (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/cmsis_compiler.h)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/cmsis_gcc.h (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/cmsis_gcc.h)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/cmsis_iccarm.h (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/cmsis_iccarm.h)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/cmsis_version.h (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/cmsis_version.h)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/core_cm4.h (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/core_cm4.h)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/mpu_armv7.h (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/mpu_armv7.h)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/mpu_armv8.h (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/mpu_armv8.h)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/pmu_armv8.h (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/pmu_armv8.h)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/at32f435_437.h (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/at32f435_437.h)6
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/at32f435_437_conf_template.h (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/at32f435_437_conf_template.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F435xC_FLASH.ld (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F435xC_FLASH.ld)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F435xG_FLASH.ld (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F435xG_FLASH.ld)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F435xM_FLASH.ld (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F435xM_FLASH.ld)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F437xC_FLASH.ld (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F437xC_FLASH.ld)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F437xG_FLASH.ld (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F437xG_FLASH.ld)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F437xM_FLASH.ld (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F437xM_FLASH.ld)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/gcc/startup_at32f435_437.s (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/gcc/startup_at32f435_437.s)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F435xC.icf (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F435xC.icf)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F435xG.icf (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F435xG.icf)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F435xM.icf (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F435xM.icf)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F437xC.icf (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F437xC.icf)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F437xG.icf (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F437xG.icf)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F437xM.icf (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F437xM.icf)0
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/iar/startup_at32f435_437.s (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/iar/startup_at32f435_437.s)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/mdk/startup_at32f435_437.s (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/mdk/startup_at32f435_437.s)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/system_at32f435_437.c (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/system_at32f435_437.c)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/system_at32f435_437.h (renamed from bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/system_at32f435_437.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_acc.h (renamed from bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_acc.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_adc.h (renamed from bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_adc.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_can.h (renamed from bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_can.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_crc.h (renamed from bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_crc.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_crm.h (renamed from bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_crm.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_dac.h (renamed from bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_dac.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_debug.h (renamed from bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_debug.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_def.h (renamed from bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_def.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_dma.h (renamed from bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_dma.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_dvp.h (renamed from bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_dvp.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_edma.h (renamed from bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_edma.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_emac.h (renamed from bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_emac.h)6
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_ertc.h (renamed from bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_ertc.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_exint.h (renamed from bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_exint.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_flash.h (renamed from bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_flash.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_gpio.h (renamed from bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_gpio.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_i2c.h (renamed from bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_i2c.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_misc.h (renamed from bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_misc.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_pwc.h (renamed from bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_pwc.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_qspi.h (renamed from bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_qspi.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_scfg.h (renamed from bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_scfg.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_sdio.h (renamed from bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_sdio.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_spi.h (renamed from bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_spi.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_tmr.h (renamed from bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_tmr.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_usart.h (renamed from bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_usart.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_usb.h (renamed from bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_usb.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_wdt.h (renamed from bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_wdt.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_wwdt.h (renamed from bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_wwdt.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_xmc.h (renamed from bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_xmc.h)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_acc.c (renamed from bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_acc.c)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_adc.c (renamed from bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_adc.c)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_can.c (renamed from bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_can.c)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_crc.c (renamed from bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_crc.c)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_crm.c (renamed from bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_crm.c)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_dac.c (renamed from bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_dac.c)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_debug.c (renamed from bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_debug.c)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_dma.c (renamed from bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_dma.c)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_dvp.c (renamed from bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_dvp.c)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_edma.c (renamed from bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_edma.c)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_emac.c (renamed from bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_emac.c)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_ertc.c (renamed from bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_ertc.c)10
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_exint.c (renamed from bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_exint.c)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_flash.c (renamed from bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_flash.c)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_gpio.c (renamed from bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_gpio.c)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_i2c.c (renamed from bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_i2c.c)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_misc.c (renamed from bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_misc.c)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_pwc.c (renamed from bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_pwc.c)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_qspi.c (renamed from bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_qspi.c)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_scfg.c (renamed from bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_scfg.c)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_sdio.c (renamed from bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_sdio.c)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_spi.c (renamed from bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_spi.c)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_tmr.c (renamed from bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_tmr.c)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_usart.c (renamed from bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_usart.c)6
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_usb.c (renamed from bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_usb.c)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_wdt.c (renamed from bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_wdt.c)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_wwdt.c (renamed from bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_wwdt.c)4
-rw-r--r--bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_xmc.c (renamed from bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_xmc.c)6
-rw-r--r--bsp/at32/libraries/f403a_407/.ignore_format.yml6
-rw-r--r--bsp/at32/libraries/f403a_407/SConscript14
-rw-r--r--bsp/at32/libraries/f403a_407/rt_drivers/SConscript60
-rw-r--r--bsp/at32/libraries/f403a_407/rt_drivers/drv_adc.c151
-rw-r--r--bsp/at32/libraries/f403a_407/rt_drivers/drv_adc.h54
-rw-r--r--bsp/at32/libraries/f403a_407/rt_drivers/drv_can.h52
-rw-r--r--bsp/at32/libraries/f403a_407/rt_drivers/drv_common.c149
-rw-r--r--bsp/at32/libraries/f403a_407/rt_drivers/drv_common.h36
-rw-r--r--bsp/at32/libraries/f403a_407/rt_drivers/drv_emac.c868
-rw-r--r--bsp/at32/libraries/f403a_407/rt_drivers/drv_emac.h89
-rw-r--r--bsp/at32/libraries/f403a_407/rt_drivers/drv_flash.c210
-rw-r--r--bsp/at32/libraries/f403a_407/rt_drivers/drv_gpio.c557
-rw-r--r--bsp/at32/libraries/f403a_407/rt_drivers/drv_gpio.h53
-rw-r--r--bsp/at32/libraries/f403a_407/rt_drivers/drv_rtc.c146
-rw-r--r--bsp/at32/libraries/f403a_407/rt_drivers/drv_sdio.c823
-rw-r--r--bsp/at32/libraries/f403a_407/rt_drivers/drv_sdio.h203
-rw-r--r--bsp/at32/libraries/f403a_407/rt_drivers/drv_soft_i2c.c219
-rw-r--r--bsp/at32/libraries/f403a_407/rt_drivers/drv_spi.c340
-rw-r--r--bsp/at32/libraries/f403a_407/rt_drivers/drv_spi.h40
-rw-r--r--bsp/at32/libraries/f403a_407/rt_drivers/drv_wdt.c127
-rw-r--r--bsp/at32/libraries/f413/SConscript14
-rw-r--r--bsp/at32/libraries/f413/rt_drivers/SConscript57
-rw-r--r--bsp/at32/libraries/f413/rt_drivers/drv_adc.c146
-rw-r--r--bsp/at32/libraries/f413/rt_drivers/drv_adc.h46
-rw-r--r--bsp/at32/libraries/f413/rt_drivers/drv_can.c850
-rw-r--r--bsp/at32/libraries/f413/rt_drivers/drv_can.h52
-rw-r--r--bsp/at32/libraries/f413/rt_drivers/drv_common.h36
-rw-r--r--bsp/at32/libraries/f413/rt_drivers/drv_flash.c210
-rw-r--r--bsp/at32/libraries/f413/rt_drivers/drv_flash.h30
-rw-r--r--bsp/at32/libraries/f413/rt_drivers/drv_gpio.c557
-rw-r--r--bsp/at32/libraries/f413/rt_drivers/drv_hwtimer.c383
-rw-r--r--bsp/at32/libraries/f413/rt_drivers/drv_hwtimer.h80
-rw-r--r--bsp/at32/libraries/f413/rt_drivers/drv_log.h27
-rw-r--r--bsp/at32/libraries/f413/rt_drivers/drv_pwm.c483
-rw-r--r--bsp/at32/libraries/f413/rt_drivers/drv_pwm.h123
-rw-r--r--bsp/at32/libraries/f413/rt_drivers/drv_rtc.c146
-rw-r--r--bsp/at32/libraries/f413/rt_drivers/drv_sdio.c823
-rw-r--r--bsp/at32/libraries/f413/rt_drivers/drv_sdio.h203
-rw-r--r--bsp/at32/libraries/f413/rt_drivers/drv_soft_i2c.c218
-rw-r--r--bsp/at32/libraries/f413/rt_drivers/drv_soft_i2c.h61
-rw-r--r--bsp/at32/libraries/f413/rt_drivers/drv_spi.c331
-rw-r--r--bsp/at32/libraries/f413/rt_drivers/drv_spi.h40
-rw-r--r--bsp/at32/libraries/f413/rt_drivers/drv_usart.c295
-rw-r--r--bsp/at32/libraries/f413/rt_drivers/drv_usart.h21
-rw-r--r--bsp/at32/libraries/f413/rt_drivers/drv_wdt.c127
-rw-r--r--bsp/at32/libraries/f415/SConscript14
-rw-r--r--bsp/at32/libraries/f415/rt_drivers/SConscript57
-rw-r--r--bsp/at32/libraries/f415/rt_drivers/drv_adc.c141
-rw-r--r--bsp/at32/libraries/f415/rt_drivers/drv_adc.h54
-rw-r--r--bsp/at32/libraries/f415/rt_drivers/drv_can.c677
-rw-r--r--bsp/at32/libraries/f415/rt_drivers/drv_common.c149
-rw-r--r--bsp/at32/libraries/f415/rt_drivers/drv_common.h36
-rw-r--r--bsp/at32/libraries/f415/rt_drivers/drv_flash.c210
-rw-r--r--bsp/at32/libraries/f415/rt_drivers/drv_flash.h30
-rw-r--r--bsp/at32/libraries/f415/rt_drivers/drv_gpio.c557
-rw-r--r--bsp/at32/libraries/f415/rt_drivers/drv_gpio.h53
-rw-r--r--bsp/at32/libraries/f415/rt_drivers/drv_hwtimer.c375
-rw-r--r--bsp/at32/libraries/f415/rt_drivers/drv_hwtimer.h80
-rw-r--r--bsp/at32/libraries/f415/rt_drivers/drv_log.h27
-rw-r--r--bsp/at32/libraries/f415/rt_drivers/drv_pwm.c464
-rw-r--r--bsp/at32/libraries/f415/rt_drivers/drv_pwm.h167
-rw-r--r--bsp/at32/libraries/f415/rt_drivers/drv_sdio.c823
-rw-r--r--bsp/at32/libraries/f415/rt_drivers/drv_sdio.h203
-rw-r--r--bsp/at32/libraries/f415/rt_drivers/drv_soft_i2c.c214
-rw-r--r--bsp/at32/libraries/f415/rt_drivers/drv_soft_i2c.h61
-rw-r--r--bsp/at32/libraries/f415/rt_drivers/drv_usart.c295
-rw-r--r--bsp/at32/libraries/f415/rt_drivers/drv_usart.h21
-rw-r--r--bsp/at32/libraries/f415/rt_drivers/drv_wdt.c127
-rw-r--r--bsp/at32/libraries/f435_437/.ignore_format.yml6
-rw-r--r--bsp/at32/libraries/f435_437/SConscript14
-rw-r--r--bsp/at32/libraries/f435_437/rt_drivers/drv_can.c868
-rw-r--r--bsp/at32/libraries/f435_437/rt_drivers/drv_can.h52
-rw-r--r--bsp/at32/libraries/f435_437/rt_drivers/drv_common.c149
-rw-r--r--bsp/at32/libraries/f435_437/rt_drivers/drv_flash.h30
-rw-r--r--bsp/at32/libraries/f435_437/rt_drivers/drv_gpio.h53
-rw-r--r--bsp/at32/libraries/f435_437/rt_drivers/drv_hwtimer.c431
-rw-r--r--bsp/at32/libraries/f435_437/rt_drivers/drv_hwtimer.h80
-rw-r--r--bsp/at32/libraries/f435_437/rt_drivers/drv_log.h27
-rw-r--r--bsp/at32/libraries/f435_437/rt_drivers/drv_pwm.c541
-rw-r--r--bsp/at32/libraries/f435_437/rt_drivers/drv_pwm.h167
-rw-r--r--bsp/at32/libraries/f435_437/rt_drivers/drv_rtc.c175
-rw-r--r--bsp/at32/libraries/f435_437/rt_drivers/drv_soft_i2c.h61
-rw-r--r--bsp/at32/libraries/f435_437/rt_drivers/drv_spi.c340
-rw-r--r--bsp/at32/libraries/f435_437/rt_drivers/drv_spi.h40
-rw-r--r--bsp/at32/libraries/f435_437/rt_drivers/drv_usart.c347
-rw-r--r--bsp/at32/libraries/f435_437/rt_drivers/drv_usart.h21
-rw-r--r--bsp/at32/libraries/rt_drivers/SConscript (renamed from bsp/at32/libraries/f435_437/rt_drivers/SConscript)0
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_adc.c (renamed from bsp/at32/libraries/f435_437/rt_drivers/drv_adc.c)21
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_adc.h (renamed from bsp/at32/libraries/f435_437/rt_drivers/drv_adc.h)0
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_can.c (renamed from bsp/at32/libraries/f403a_407/rt_drivers/drv_can.c)123
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_can.h (renamed from bsp/at32/libraries/f415/rt_drivers/drv_can.h)4
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_common.c (renamed from bsp/at32/libraries/f413/rt_drivers/drv_common.c)3
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_common.h (renamed from bsp/at32/libraries/f435_437/rt_drivers/drv_common.h)3
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_emac.c (renamed from bsp/at32/libraries/f435_437/rt_drivers/drv_emac.c)47
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_emac.h (renamed from bsp/at32/libraries/f435_437/rt_drivers/drv_emac.h)10
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_flash.c (renamed from bsp/at32/libraries/f435_437/rt_drivers/drv_flash.c)4
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_flash.h (renamed from bsp/at32/libraries/f403a_407/rt_drivers/drv_flash.h)0
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_gpio.c (renamed from bsp/at32/libraries/f435_437/rt_drivers/drv_gpio.c)19
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_gpio.h (renamed from bsp/at32/libraries/f413/rt_drivers/drv_gpio.h)4
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_hwtimer.c (renamed from bsp/at32/libraries/f403a_407/rt_drivers/drv_hwtimer.c)39
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_hwtimer.h (renamed from bsp/at32/libraries/f403a_407/rt_drivers/drv_hwtimer.h)0
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_log.h (renamed from bsp/at32/libraries/f403a_407/rt_drivers/drv_log.h)0
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_pwm.c (renamed from bsp/at32/libraries/f403a_407/rt_drivers/drv_pwm.c)40
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_pwm.h (renamed from bsp/at32/libraries/f403a_407/rt_drivers/drv_pwm.h)0
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_qspi.c (renamed from bsp/at32/libraries/f435_437/rt_drivers/drv_qspi.c)4
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_qspi.h (renamed from bsp/at32/libraries/f435_437/rt_drivers/drv_qspi.h)0
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_rtc.c (renamed from bsp/at32/libraries/f415/rt_drivers/drv_rtc.c)55
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_sdio.c (renamed from bsp/at32/libraries/f435_437/rt_drivers/drv_sdio.c)12
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_sdio.h (renamed from bsp/at32/libraries/f435_437/rt_drivers/drv_sdio.h)19
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_sdram.c (renamed from bsp/at32/libraries/f435_437/rt_drivers/drv_sdram.c)4
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_sdram.h (renamed from bsp/at32/libraries/f435_437/rt_drivers/drv_sdram.h)0
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_soft_i2c.c (renamed from bsp/at32/libraries/f435_437/rt_drivers/drv_soft_i2c.c)4
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_soft_i2c.h (renamed from bsp/at32/libraries/f403a_407/rt_drivers/drv_soft_i2c.h)0
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_spi.c (renamed from bsp/at32/libraries/f415/rt_drivers/drv_spi.c)4
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_spi.h (renamed from bsp/at32/libraries/f415/rt_drivers/drv_spi.h)4
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_usart.c (renamed from bsp/at32/libraries/f403a_407/rt_drivers/drv_usart.c)4
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_usart.h (renamed from bsp/at32/libraries/f403a_407/rt_drivers/drv_usart.h)0
-rw-r--r--bsp/at32/libraries/rt_drivers/drv_wdt.c (renamed from bsp/at32/libraries/f435_437/rt_drivers/drv_wdt.c)4
497 files changed, 2428 insertions, 20726 deletions
diff --git a/bsp/at32/at32f403a-start/.config b/bsp/at32/at32f403a-start/.config
index 98bbea454c..f923b5a583 100644
--- a/bsp/at32/at32f403a-start/.config
+++ b/bsp/at32/at32f403a-start/.config
@@ -126,6 +126,14 @@ CONFIG_FINSH_ARG_MAX=10
# Device virtual file system
#
# CONFIG_RT_USING_DFS is not set
+# CONFIG_RT_DFS_ELM_USE_LFN_0 is not set
+# CONFIG_RT_DFS_ELM_USE_LFN_1 is not set
+# CONFIG_RT_DFS_ELM_USE_LFN_2 is not set
+# CONFIG_RT_DFS_ELM_USE_LFN_3 is not set
+# CONFIG_RT_DFS_ELM_LFN_UNICODE_0 is not set
+# CONFIG_RT_DFS_ELM_LFN_UNICODE_1 is not set
+# CONFIG_RT_DFS_ELM_LFN_UNICODE_2 is not set
+# CONFIG_RT_DFS_ELM_LFN_UNICODE_3 is not set
#
# Device Drivers
@@ -416,10 +424,12 @@ CONFIG_BSP_USING_SERIAL=y
CONFIG_BSP_USING_GPIO=y
# CONFIG_BSP_USING_ON_CHIP_FLASH is not set
# CONFIG_BSP_USING_RTC is not set
+# CONFIG_BSP_RTC_USING_LEXT is not set
+# CONFIG_BSP_RTC_USING_LICK is not set
CONFIG_BSP_USING_UART=y
CONFIG_BSP_USING_UART1=y
-CONFIG_BSP_USING_UART2=y
-CONFIG_BSP_USING_UART3=y
+# CONFIG_BSP_USING_UART2 is not set
+# CONFIG_BSP_USING_UART3 is not set
# CONFIG_BSP_USING_PWM is not set
# CONFIG_BSP_USING_HWTIMER is not set
# CONFIG_BSP_USING_SPI is not set
diff --git a/bsp/at32/at32f403a-start/SConstruct b/bsp/at32/at32f403a-start/SConstruct
index fc83bac5bb..2e8fe7dc96 100644
--- a/bsp/at32/at32f403a-start/SConstruct
+++ b/bsp/at32/at32f403a-start/SConstruct
@@ -46,11 +46,14 @@ Export('SDK_LIB')
# prepare building environment
objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
-at32_library = 'f403a_407'
+at32_library = 'AT32F403A_407_Firmware_Library'
rtconfig.BSP_LIBRARY_TYPE = at32_library
# include libraries
objs.extend(SConscript(os.path.join(libraries_path_prefix, at32_library, 'SConscript')))
+# include drivers
+objs.extend(SConscript(os.path.join(libraries_path_prefix, 'rt_drivers', 'SConscript')))
+
# make a building
DoBuilding(TARGET, objs)
diff --git a/bsp/at32/at32f403a-start/applications/main.c b/bsp/at32/at32f403a-start/applications/main.c
index e7610d47e4..75d464a465 100644
--- a/bsp/at32/at32f403a-start/applications/main.c
+++ b/bsp/at32/at32f403a-start/applications/main.c
@@ -5,12 +5,12 @@
*
* Change Logs:
* Date Author Notes
- * 2022-03-08 shelton first version
+ * 2022-05-16 shelton first version
*/
#include <rtthread.h>
#include <rtdevice.h>
-#include "board.h"
+#include "drv_common.h"
#include "drv_gpio.h"
/* defined the led2 pin: pd13 */
diff --git a/bsp/at32/at32f403a-start/board/SConscript b/bsp/at32/at32f403a-start/board/SConscript
index dae1c31ce9..a5970038c8 100644
--- a/bsp/at32/at32f403a-start/board/SConscript
+++ b/bsp/at32/at32f403a-start/board/SConscript
@@ -18,11 +18,11 @@ path += [cwd + '/inc']
startup_path_prefix = SDK_LIB
if rtconfig.PLATFORM == 'gcc':
- src += [startup_path_prefix + '/f403a_407/firmware/cmsis/cm4/device_support/startup/gcc/startup_at32f403a_407.s']
+ src += [startup_path_prefix + '/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/gcc/startup_at32f403a_407.s']
elif rtconfig.PLATFORM in ['armcc', 'armclang']:
- src += [startup_path_prefix + '/f403a_407/firmware/cmsis/cm4/device_support/startup/mdk/startup_at32f403a_407.s']
+ src += [startup_path_prefix + '/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/mdk/startup_at32f403a_407.s']
elif rtconfig.CROSS_TOOL == 'iar':
- src += [startup_path_prefix + '/f403a_407/firmware/cmsis/cm4/device_support/startup/iar/startup_at32f403a_407.s']
+ src += [startup_path_prefix + '/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/iar/startup_at32f403a_407.s']
CPPDEFINES = ['AT32F403AVGT7']
group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)
diff --git a/bsp/at32/at32f403a-start/project.ewp b/bsp/at32/at32f403a-start/project.ewp
index dfcd218882..80ffcf2b31 100644
--- a/bsp/at32/at32f403a-start/project.ewp
+++ b/bsp/at32/at32f403a-start/project.ewp
@@ -348,23 +348,23 @@
<option>
<name>CCIncludePath2</name>
<state />
- <state>$PROJ_DIR$\..\libraries\f403a_407\firmware\cmsis\cm4\core_support</state>
+ <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\stdio</state>
+ <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\poll</state>
<state>$PROJ_DIR$\..\..\..\components\finsh</state>
<state>$PROJ_DIR$\..\..\..\libcpu\arm\common</state>
<state>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4</state>
<state>$PROJ_DIR$\board\inc</state>
<state>$PROJ_DIR$\..\..\..\components\drivers\include</state>
- <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\stdio</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\cmsis\cm4\core_support</state>
+ <state>$PROJ_DIR$\..\libraries\rt_drivers</state>
<state>$PROJ_DIR$\.</state>
- <state>$PROJ_DIR$\..\libraries\f403a_407\rt_drivers</state>
<state>$PROJ_DIR$\applications</state>
- <state>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\inc</state>
<state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
<state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension</state>
<state>$PROJ_DIR$\..\..\..\components\libc\compilers\common</state>
- <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\poll</state>
- <state>$PROJ_DIR$\..\libraries\f403a_407\firmware\cmsis\cm4\device_support</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\inc</state>
<state>$PROJ_DIR$\..\..\..\include</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\cmsis\cm4\device_support</state>
<state>$PROJ_DIR$\board</state>
</option>
<option>
@@ -1388,23 +1388,23 @@
<option>
<name>CCIncludePath2</name>
<state />
- <state>$PROJ_DIR$\..\libraries\f403a_407\firmware\cmsis\cm4\core_support</state>
+ <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\stdio</state>
+ <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\poll</state>
<state>$PROJ_DIR$\..\..\..\components\finsh</state>
<state>$PROJ_DIR$\..\..\..\libcpu\arm\common</state>
<state>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4</state>
<state>$PROJ_DIR$\board\inc</state>
<state>$PROJ_DIR$\..\..\..\components\drivers\include</state>
- <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\stdio</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\cmsis\cm4\core_support</state>
+ <state>$PROJ_DIR$\..\libraries\rt_drivers</state>
<state>$PROJ_DIR$\.</state>
- <state>$PROJ_DIR$\..\libraries\f403a_407\rt_drivers</state>
<state>$PROJ_DIR$\applications</state>
- <state>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\inc</state>
<state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
<state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension</state>
<state>$PROJ_DIR$\..\..\..\components\libc\compilers\common</state>
- <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\poll</state>
- <state>$PROJ_DIR$\..\libraries\f403a_407\firmware\cmsis\cm4\device_support</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\inc</state>
<state>$PROJ_DIR$\..\..\..\include</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\cmsis\cm4\device_support</state>
<state>$PROJ_DIR$\board</state>
</option>
<option>
@@ -2095,16 +2095,13 @@
<name>$PROJ_DIR$\..\..\..\components\libc\compilers\common\stdlib.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_open.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_lseek.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscalls.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscalls.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_write.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_remove.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_read.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_mem.c</name>
@@ -2113,25 +2110,28 @@
<name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_close.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_write.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\environ.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\environ.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_remove.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_read.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_open.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_lseek.c</name>
</file>
</group>
<group>
<name>CPU</name>
<file>
- <name>$PROJ_DIR$\..\..\..\libcpu\arm\common\showmem.c</name>
+ <name>$PROJ_DIR$\..\..\..\libcpu\arm\common\div0.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\libcpu\arm\common\backtrace.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\libcpu\arm\common\div0.c</name>
+ <name>$PROJ_DIR$\..\..\..\libcpu\arm\common\showmem.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4\context_iar.S</name>
@@ -2143,10 +2143,13 @@
<group>
<name>DeviceDrivers</name>
<file>
- <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\pipe.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\workqueue.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\completion.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\ringbuffer.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\pipe.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\components\drivers\ipc\waitqueue.c</name>
@@ -2158,10 +2161,7 @@
<name>$PROJ_DIR$\..\..\..\components\drivers\ipc\dataqueue.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\workqueue.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\ringbuffer.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\completion.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\components\drivers\misc\pin.c</name>
@@ -2173,22 +2173,22 @@
<group>
<name>Drivers</name>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\cmsis\cm4\device_support\startup\iar\startup_at32f403a_407.s</name>
- </file>
- <file>
<name>$PROJ_DIR$\board\src\at32_msp.c</name>
</file>
<file>
<name>$PROJ_DIR$\board\src\board.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\rt_drivers\drv_gpio.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\cmsis\cm4\device_support\startup\iar\startup_at32f403a_407.s</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\libraries\rt_drivers\drv_gpio.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\rt_drivers\drv_usart.c</name>
+ <name>$PROJ_DIR$\..\libraries\rt_drivers\drv_usart.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\rt_drivers\drv_common.c</name>
+ <name>$PROJ_DIR$\..\libraries\rt_drivers\drv_common.c</name>
</file>
</group>
<group>
@@ -2206,7 +2206,7 @@
<group>
<name>Kernel</name>
<file>
- <name>$PROJ_DIR$\..\..\..\src\thread.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\device.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\src\mempool.c</name>
@@ -2218,6 +2218,9 @@
<name>$PROJ_DIR$\..\..\..\src\mem.c</name>
</file>
<file>
+ <name>$PROJ_DIR$\..\..\..\src\scheduler.c</name>
+ </file>
+ <file>
<name>$PROJ_DIR$\..\..\..\src\irq.c</name>
</file>
<file>
@@ -2227,7 +2230,7 @@
<name>$PROJ_DIR$\..\..\..\src\timer.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\object.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\thread.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\src\memheap.c</name>
@@ -2236,97 +2239,94 @@
<name>$PROJ_DIR$\..\..\..\src\clock.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\scheduler.c</name>
- </file>
- <file>
<name>$PROJ_DIR$\..\..\..\src\kservice.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\ipc.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\object.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\device.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\ipc.c</name>
</file>
</group>
<group>
<name>Libraries</name>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_exint.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_exint.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_emac.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_emac.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_rtc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_rtc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_spi.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_spi.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_dac.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_dac.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_bpr.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_bpr.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_gpio.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_gpio.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_sdio.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_sdio.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_wdt.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_wdt.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_usart.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_usart.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\cmsis\cm4\device_support\system_at32f403a_407.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\cmsis\cm4\device_support\system_at32f403a_407.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_flash.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_flash.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_dma.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_dma.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_pwc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_pwc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_acc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_acc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_can.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_can.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_crm.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_crm.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_crc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_crc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_wwdt.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_wwdt.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_debug.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_debug.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_usb.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_usb.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_adc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_adc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_i2c.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_i2c.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_misc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_misc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_tmr.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_tmr.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_xmc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_xmc.c</name>
</file>
</group>
<group>
diff --git a/bsp/at32/at32f403a-start/project.uvproj b/bsp/at32/at32f403a-start/project.uvproj
index 23d964c938..4caf8bef0c 100644
--- a/bsp/at32/at32f403a-start/project.uvproj
+++ b/bsp/at32/at32f403a-start/project.uvproj
@@ -359,7 +359,7 @@
<MiscControls />
<Define>USE_STDPERIPH_DRIVER, __RTTHREAD__, AT32F403AVGT7, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND</Define>
<Undefine />
- <IncludePath>applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;board\inc;..\libraries\f403a_407\rt_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\f403a_407\firmware\cmsis\cm4\device_support;..\libraries\f403a_407\firmware\cmsis\cm4\core_support;..\libraries\f403a_407\firmware\drivers\inc;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc</IncludePath>
+ <IncludePath>applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;board\inc;..\libraries\rt_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\AT32F403A_407_Firmware_Library\cmsis\cm4\device_support;..\libraries\AT32F403A_407_Firmware_Library\cmsis\cm4\core_support;..\libraries\AT32F403A_407_Firmware_Library\drivers\inc;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc</IncludePath>
</VariousControls>
</Cads>
<Aads>
@@ -444,6 +444,13 @@
<GroupName>CPU</GroupName>
<Files>
<File>
+ <FileName>showmem.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\libcpu\arm\common\showmem.c</FilePath>
+ </File>
+ </Files>
+ <Files>
+ <File>
<FileName>div0.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\libcpu\arm\common\div0.c</FilePath>
@@ -458,9 +465,9 @@
</Files>
<Files>
<File>
- <FileName>showmem.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\..\..\libcpu\arm\common\showmem.c</FilePath>
+ <FileName>context_rvds.S</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\libcpu\arm\cortex-m4\context_rvds.S</FilePath>
</File>
</Files>
<Files>
@@ -470,13 +477,6 @@
<FilePath>..\..\..\libcpu\arm\cortex-m4\cpuport.c</FilePath>
</File>
</Files>
- <Files>
- <File>
- <FileName>context_rvds.S</FileName>
- <FileType>2</FileType>
- <FilePath>..\..\..\libcpu\arm\cortex-m4\context_rvds.S</FilePath>
- </File>
- </Files>
</Group>
<Group>
<GroupName>DeviceDrivers</GroupName>
@@ -489,37 +489,37 @@
</Files>
<Files>
<File>
- <FileName>dataqueue.c</FileName>
+ <FileName>pipe.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\dataqueue.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\pipe.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>workqueue.c</FileName>
+ <FileName>completion.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\workqueue.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\completion.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>ringbuffer.c</FileName>
+ <FileName>workqueue.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\ringbuffer.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\workqueue.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>pipe.c</FileName>
+ <FileName>ringbuffer.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\pipe.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\ringbuffer.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>completion.c</FileName>
+ <FileName>dataqueue.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\completion.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\dataqueue.c</FilePath>
</File>
</Files>
<Files>
@@ -548,13 +548,6 @@
<GroupName>Drivers</GroupName>
<Files>
<File>
- <FileName>startup_at32f403a_407.s</FileName>
- <FileType>2</FileType>
- <FilePath>..\libraries\f403a_407\firmware\cmsis\cm4\device_support\startup\mdk\startup_at32f403a_407.s</FilePath>
- </File>
- </Files>
- <Files>
- <File>
<FileName>at32_msp.c</FileName>
<FileType>1</FileType>
<FilePath>board\src\at32_msp.c</FilePath>
@@ -569,23 +562,30 @@
</Files>
<Files>
<File>
+ <FileName>startup_at32f403a_407.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\cmsis\cm4\device_support\startup\mdk\startup_at32f403a_407.s</FilePath>
+ </File>
+ </Files>
+ <Files>
+ <File>
<FileName>drv_gpio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\rt_drivers\drv_gpio.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_gpio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>drv_usart.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\rt_drivers\drv_usart.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_usart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>drv_common.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\rt_drivers\drv_common.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_common.c</FilePath>
</File>
</Files>
</Group>
@@ -617,6 +617,20 @@
<GroupName>Kernel</GroupName>
<Files>
<File>
+ <FileName>mempool.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\src\mempool.c</FilePath>
+ </File>
+ </Files>
+ <Files>
+ <File>
+ <FileName>components.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\src\components.c</FilePath>
+ </File>
+ </Files>
+ <Files>
+ <File>
<FileName>mem.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\src\mem.c</FilePath>
@@ -645,9 +659,9 @@
</Files>
<Files>
<File>
- <FileName>timer.c</FileName>
+ <FileName>thread.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\timer.c</FilePath>
+ <FilePath>..\..\..\src\thread.c</FilePath>
</File>
</Files>
<Files>
@@ -666,16 +680,16 @@
</Files>
<Files>
<File>
- <FileName>kservice.c</FileName>
+ <FileName>timer.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\kservice.c</FilePath>
+ <FilePath>..\..\..\src\timer.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>scheduler.c</FileName>
+ <FileName>kservice.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\scheduler.c</FilePath>
+ <FilePath>..\..\..\src\kservice.c</FilePath>
</File>
</Files>
<Files>
@@ -687,30 +701,16 @@
</Files>
<Files>
<File>
- <FileName>device.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\..\..\src\device.c</FilePath>
- </File>
- </Files>
- <Files>
- <File>
- <FileName>mempool.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\..\..\src\mempool.c</FilePath>
- </File>
- </Files>
- <Files>
- <File>
- <FileName>thread.c</FileName>
+ <FileName>scheduler.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\thread.c</FilePath>
+ <FilePath>..\..\..\src\scheduler.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>components.c</FileName>
+ <FileName>device.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\components.c</FilePath>
+ <FilePath>..\..\..\src\device.c</FilePath>
</File>
</Files>
</Group>
@@ -720,182 +720,182 @@
<File>
<FileName>at32f403a_407_exint.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_exint.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_exint.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_emac.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_emac.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_emac.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_rtc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_rtc.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_rtc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_spi.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_spi.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_spi.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_dac.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_dac.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_dac.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_bpr.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_bpr.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_bpr.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_gpio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_gpio.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_gpio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_sdio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_sdio.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_sdio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_wdt.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_wdt.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_wdt.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_usart.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_usart.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_usart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>system_at32f403a_407.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\cmsis\cm4\device_support\system_at32f403a_407.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\cmsis\cm4\device_support\system_at32f403a_407.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_flash.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_flash.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_flash.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_dma.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_dma.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_dma.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_pwc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_pwc.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_pwc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_acc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_acc.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_acc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_can.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_can.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_can.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_crm.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_crm.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_crm.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_crc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_crc.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_crc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_wwdt.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_wwdt.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_wwdt.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_debug.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_debug.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_debug.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_usb.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_usb.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_usb.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_adc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_adc.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_adc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_i2c.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_i2c.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_i2c.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_misc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_misc.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_misc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_tmr.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_tmr.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_tmr.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_xmc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_xmc.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_xmc.c</FilePath>
</File>
</Files>
</Group>
diff --git a/bsp/at32/at32f403a-start/project.uvprojx b/bsp/at32/at32f403a-start/project.uvprojx
index a8a4e37e16..cf99b796c5 100644
--- a/bsp/at32/at32f403a-start/project.uvprojx
+++ b/bsp/at32/at32f403a-start/project.uvprojx
@@ -335,7 +335,7 @@
<MiscControls />
<Define>USE_STDPERIPH_DRIVER, __RTTHREAD__, AT32F403AVGT7, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND</Define>
<Undefine />
- <IncludePath>applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;board\inc;..\libraries\f403a_407\rt_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\f403a_407\firmware\cmsis\cm4\device_support;..\libraries\f403a_407\firmware\cmsis\cm4\core_support;..\libraries\f403a_407\firmware\drivers\inc;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc</IncludePath>
+ <IncludePath>applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;board\inc;..\libraries\rt_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\AT32F403A_407_Firmware_Library\cmsis\cm4\device_support;..\libraries\AT32F403A_407_Firmware_Library\cmsis\cm4\core_support;..\libraries\AT32F403A_407_Firmware_Library\drivers\inc;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc</IncludePath>
</VariousControls>
</Cads>
<Aads>
@@ -404,16 +404,16 @@
</Files>
<Files>
<File>
- <FileName>stdlib.c</FileName>
+ <FileName>time.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\libc\compilers\common\stdlib.c</FilePath>
+ <FilePath>..\..\..\components\libc\compilers\common\time.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>time.c</FileName>
+ <FileName>stdlib.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\libc\compilers\common\time.c</FilePath>
+ <FilePath>..\..\..\components\libc\compilers\common\stdlib.c</FilePath>
</File>
</Files>
</Group>
@@ -459,51 +459,51 @@
<GroupName>DeviceDrivers</GroupName>
<Files>
<File>
- <FileName>ringbuffer.c</FileName>
+ <FileName>waitqueue.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\ringbuffer.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\waitqueue.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>pipe.c</FileName>
+ <FileName>ringblk_buf.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\pipe.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\ringblk_buf.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>completion.c</FileName>
+ <FileName>dataqueue.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\completion.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\dataqueue.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>waitqueue.c</FileName>
+ <FileName>workqueue.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\waitqueue.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\workqueue.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>ringblk_buf.c</FileName>
+ <FileName>ringbuffer.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\ringblk_buf.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\ringbuffer.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>dataqueue.c</FileName>
+ <FileName>pipe.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\dataqueue.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\pipe.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>workqueue.c</FileName>
+ <FileName>completion.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\workqueue.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\completion.c</FilePath>
</File>
</Files>
<Files>
@@ -525,13 +525,6 @@
<GroupName>Drivers</GroupName>
<Files>
<File>
- <FileName>startup_at32f403a_407.s</FileName>
- <FileType>2</FileType>
- <FilePath>..\libraries\f403a_407\firmware\cmsis\cm4\device_support\startup\mdk\startup_at32f403a_407.s</FilePath>
- </File>
- </Files>
- <Files>
- <File>
<FileName>at32_msp.c</FileName>
<FileType>1</FileType>
<FilePath>board\src\at32_msp.c</FilePath>
@@ -546,23 +539,30 @@
</Files>
<Files>
<File>
+ <FileName>startup_at32f403a_407.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\cmsis\cm4\device_support\startup\mdk\startup_at32f403a_407.s</FilePath>
+ </File>
+ </Files>
+ <Files>
+ <File>
<FileName>drv_gpio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\rt_drivers\drv_gpio.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_gpio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>drv_usart.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\rt_drivers\drv_usart.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_usart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>drv_common.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\rt_drivers\drv_common.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_common.c</FilePath>
</File>
</Files>
</Group>
@@ -594,9 +594,9 @@
<GroupName>Kernel</GroupName>
<Files>
<File>
- <FileName>thread.c</FileName>
+ <FileName>device.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\thread.c</FilePath>
+ <FilePath>..\..\..\src\device.c</FilePath>
</File>
</Files>
<Files>
@@ -622,6 +622,13 @@
</Files>
<Files>
<File>
+ <FileName>scheduler.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\src\scheduler.c</FilePath>
+ </File>
+ </Files>
+ <Files>
+ <File>
<FileName>irq.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\src\irq.c</FilePath>
@@ -643,9 +650,9 @@
</Files>
<Files>
<File>
- <FileName>object.c</FileName>
+ <FileName>thread.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\object.c</FilePath>
+ <FilePath>..\..\..\src\thread.c</FilePath>
</File>
</Files>
<Files>
@@ -664,13 +671,6 @@
</Files>
<Files>
<File>
- <FileName>scheduler.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\..\..\src\scheduler.c</FilePath>
- </File>
- </Files>
- <Files>
- <File>
<FileName>kservice.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\src\kservice.c</FilePath>
@@ -678,16 +678,16 @@
</Files>
<Files>
<File>
- <FileName>ipc.c</FileName>
+ <FileName>object.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\ipc.c</FilePath>
+ <FilePath>..\..\..\src\object.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>device.c</FileName>
+ <FileName>ipc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\device.c</FilePath>
+ <FilePath>..\..\..\src\ipc.c</FilePath>
</File>
</Files>
</Group>
@@ -697,182 +697,182 @@
<File>
<FileName>at32f403a_407_exint.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_exint.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_exint.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_emac.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_emac.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_emac.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_rtc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_rtc.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_rtc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_spi.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_spi.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_spi.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_dac.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_dac.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_dac.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_bpr.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_bpr.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_bpr.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_gpio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_gpio.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_gpio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_sdio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_sdio.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_sdio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_wdt.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_wdt.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_wdt.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_usart.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_usart.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_usart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>system_at32f403a_407.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\cmsis\cm4\device_support\system_at32f403a_407.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\cmsis\cm4\device_support\system_at32f403a_407.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_flash.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_flash.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_flash.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_dma.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_dma.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_dma.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_pwc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_pwc.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_pwc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_acc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_acc.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_acc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_can.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_can.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_can.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_crm.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_crm.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_crm.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_crc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_crc.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_crc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_wwdt.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_wwdt.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_wwdt.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_debug.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_debug.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_debug.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_usb.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_usb.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_usb.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_adc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_adc.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_adc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_i2c.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_i2c.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_i2c.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_misc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_misc.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_misc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_tmr.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_tmr.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_tmr.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_xmc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_xmc.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_xmc.c</FilePath>
</File>
</Files>
</Group>
diff --git a/bsp/at32/at32f403a-start/rtconfig.h b/bsp/at32/at32f403a-start/rtconfig.h
index 67fa0442da..92dbb53365 100644
--- a/bsp/at32/at32f403a-start/rtconfig.h
+++ b/bsp/at32/at32f403a-start/rtconfig.h
@@ -174,7 +174,5 @@
#define BSP_USING_GPIO
#define BSP_USING_UART
#define BSP_USING_UART1
-#define BSP_USING_UART2
-#define BSP_USING_UART3
#endif
diff --git a/bsp/at32/at32f407-start/.config b/bsp/at32/at32f407-start/.config
index e3571da93a..4f1cd8e2f8 100644
--- a/bsp/at32/at32f407-start/.config
+++ b/bsp/at32/at32f407-start/.config
@@ -126,14 +126,6 @@ CONFIG_FINSH_ARG_MAX=10
# Device virtual file system
#
# CONFIG_RT_USING_DFS is not set
-# CONFIG_RT_DFS_ELM_USE_LFN_0 is not set
-# CONFIG_RT_DFS_ELM_USE_LFN_1 is not set
-# CONFIG_RT_DFS_ELM_USE_LFN_2 is not set
-# CONFIG_RT_DFS_ELM_USE_LFN_3 is not set
-# CONFIG_RT_DFS_ELM_LFN_UNICODE_0 is not set
-# CONFIG_RT_DFS_ELM_LFN_UNICODE_1 is not set
-# CONFIG_RT_DFS_ELM_LFN_UNICODE_2 is not set
-# CONFIG_RT_DFS_ELM_LFN_UNICODE_3 is not set
#
# Device Drivers
@@ -208,9 +200,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_RT_USING_SAL is not set
# CONFIG_RT_USING_NETDEV is not set
# CONFIG_RT_USING_LWIP is not set
-# CONFIG_RT_USING_LWIP141 is not set
-# CONFIG_RT_USING_LWIP203 is not set
-# CONFIG_RT_USING_LWIP212 is not set
# CONFIG_RT_USING_AT is not set
#
@@ -427,15 +416,11 @@ CONFIG_BSP_USING_SERIAL=y
CONFIG_BSP_USING_GPIO=y
# CONFIG_BSP_USING_ON_CHIP_FLASH is not set
# CONFIG_BSP_USING_EMAC is not set
-# CONFIG_PHY_USING_DM9162 is not set
-# CONFIG_PHY_USING_DP83848 is not set
# CONFIG_BSP_USING_RTC is not set
-# CONFIG_BSP_RTC_USING_LEXT is not set
-# CONFIG_BSP_RTC_USING_LICK is not set
CONFIG_BSP_USING_UART=y
CONFIG_BSP_USING_UART1=y
-CONFIG_BSP_USING_UART2=y
-CONFIG_BSP_USING_UART3=y
+# CONFIG_BSP_USING_UART2 is not set
+# CONFIG_BSP_USING_UART3 is not set
# CONFIG_BSP_USING_PWM is not set
# CONFIG_BSP_USING_HWTIMER is not set
# CONFIG_BSP_USING_SPI is not set
diff --git a/bsp/at32/at32f407-start/SConstruct b/bsp/at32/at32f407-start/SConstruct
index fc83bac5bb..2e8fe7dc96 100644
--- a/bsp/at32/at32f407-start/SConstruct
+++ b/bsp/at32/at32f407-start/SConstruct
@@ -46,11 +46,14 @@ Export('SDK_LIB')
# prepare building environment
objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
-at32_library = 'f403a_407'
+at32_library = 'AT32F403A_407_Firmware_Library'
rtconfig.BSP_LIBRARY_TYPE = at32_library
# include libraries
objs.extend(SConscript(os.path.join(libraries_path_prefix, at32_library, 'SConscript')))
+# include drivers
+objs.extend(SConscript(os.path.join(libraries_path_prefix, 'rt_drivers', 'SConscript')))
+
# make a building
DoBuilding(TARGET, objs)
diff --git a/bsp/at32/at32f407-start/applications/main.c b/bsp/at32/at32f407-start/applications/main.c
index e7610d47e4..75d464a465 100644
--- a/bsp/at32/at32f407-start/applications/main.c
+++ b/bsp/at32/at32f407-start/applications/main.c
@@ -5,12 +5,12 @@
*
* Change Logs:
* Date Author Notes
- * 2022-03-08 shelton first version
+ * 2022-05-16 shelton first version
*/
#include <rtthread.h>
#include <rtdevice.h>
-#include "board.h"
+#include "drv_common.h"
#include "drv_gpio.h"
/* defined the led2 pin: pd13 */
diff --git a/bsp/at32/at32f407-start/board/SConscript b/bsp/at32/at32f407-start/board/SConscript
index 509d11d5c9..66967ab0eb 100644
--- a/bsp/at32/at32f407-start/board/SConscript
+++ b/bsp/at32/at32f407-start/board/SConscript
@@ -18,11 +18,11 @@ path += [cwd + '/inc']
startup_path_prefix = SDK_LIB
if rtconfig.PLATFORM == 'gcc':
- src += [startup_path_prefix + '/f403a_407/firmware/cmsis/cm4/device_support/startup/gcc/startup_at32f403a_407.s']
+ src += [startup_path_prefix + '/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/gcc/startup_at32f403a_407.s']
elif rtconfig.PLATFORM in ['armcc', 'armclang']:
- src += [startup_path_prefix + '/f403a_407/firmware/cmsis/cm4/device_support/startup/mdk/startup_at32f403a_407.s']
+ src += [startup_path_prefix + '/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/mdk/startup_at32f403a_407.s']
elif rtconfig.CROSS_TOOL == 'iar':
- src += [startup_path_prefix + '/f403a_407/firmware/cmsis/cm4/device_support/startup/iar/startup_at32f403a_407.s']
+ src += [startup_path_prefix + '/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/iar/startup_at32f403a_407.s']
CPPDEFINES = ['AT32F407VGT7']
group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)
diff --git a/bsp/at32/at32f407-start/project.ewp b/bsp/at32/at32f407-start/project.ewp
index ae0167099d..c32b9b0a2d 100644
--- a/bsp/at32/at32f407-start/project.ewp
+++ b/bsp/at32/at32f407-start/project.ewp
@@ -348,23 +348,23 @@
<option>
<name>CCIncludePath2</name>
<state />
- <state>$PROJ_DIR$\..\libraries\f403a_407\firmware\cmsis\cm4\core_support</state>
+ <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\stdio</state>
+ <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\poll</state>
<state>$PROJ_DIR$\..\..\..\components\finsh</state>
<state>$PROJ_DIR$\..\..\..\libcpu\arm\common</state>
<state>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4</state>
<state>$PROJ_DIR$\board\inc</state>
<state>$PROJ_DIR$\..\..\..\components\drivers\include</state>
- <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\stdio</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\cmsis\cm4\core_support</state>
+ <state>$PROJ_DIR$\..\libraries\rt_drivers</state>
<state>$PROJ_DIR$\.</state>
- <state>$PROJ_DIR$\..\libraries\f403a_407\rt_drivers</state>
<state>$PROJ_DIR$\applications</state>
- <state>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\inc</state>
<state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
<state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension</state>
<state>$PROJ_DIR$\..\..\..\components\libc\compilers\common</state>
- <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\poll</state>
- <state>$PROJ_DIR$\..\libraries\f403a_407\firmware\cmsis\cm4\device_support</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\inc</state>
<state>$PROJ_DIR$\..\..\..\include</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\cmsis\cm4\device_support</state>
<state>$PROJ_DIR$\board</state>
</option>
<option>
@@ -1388,23 +1388,23 @@
<option>
<name>CCIncludePath2</name>
<state />
- <state>$PROJ_DIR$\..\libraries\f403a_407\firmware\cmsis\cm4\core_support</state>
+ <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\stdio</state>
+ <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\poll</state>
<state>$PROJ_DIR$\..\..\..\components\finsh</state>
<state>$PROJ_DIR$\..\..\..\libcpu\arm\common</state>
<state>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4</state>
<state>$PROJ_DIR$\board\inc</state>
<state>$PROJ_DIR$\..\..\..\components\drivers\include</state>
- <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\stdio</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\cmsis\cm4\core_support</state>
+ <state>$PROJ_DIR$\..\libraries\rt_drivers</state>
<state>$PROJ_DIR$\.</state>
- <state>$PROJ_DIR$\..\libraries\f403a_407\rt_drivers</state>
<state>$PROJ_DIR$\applications</state>
- <state>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\inc</state>
<state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
<state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension</state>
<state>$PROJ_DIR$\..\..\..\components\libc\compilers\common</state>
- <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\poll</state>
- <state>$PROJ_DIR$\..\libraries\f403a_407\firmware\cmsis\cm4\device_support</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\inc</state>
<state>$PROJ_DIR$\..\..\..\include</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\cmsis\cm4\device_support</state>
<state>$PROJ_DIR$\board</state>
</option>
<option>
@@ -2089,51 +2089,51 @@
<group>
<name>Compiler</name>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\common\time.c</name>
- </file>
- <file>
<name>$PROJ_DIR$\..\..\..\components\libc\compilers\common\stdlib.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_mem.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\common\time.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_close.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_open.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_remove.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_lseek.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\environ.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_remove.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_open.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscalls.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_lseek.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_mem.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_write.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscalls.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_close.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_read.c</name>
</file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\environ.c</name>
+ </file>
</group>
<group>
<name>CPU</name>
<file>
- <name>$PROJ_DIR$\..\..\..\libcpu\arm\common\div0.c</name>
- </file>
- <file>
<name>$PROJ_DIR$\..\..\..\libcpu\arm\common\backtrace.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\libcpu\arm\common\showmem.c</name>
</file>
<file>
+ <name>$PROJ_DIR$\..\..\..\libcpu\arm\common\div0.c</name>
+ </file>
+ <file>
<name>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4\context_iar.S</name>
</file>
<file>
@@ -2143,12 +2143,6 @@
<group>
<name>DeviceDrivers</name>
<file>
- <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\ringblk_buf.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\dataqueue.c</name>
- </file>
- <file>
<name>$PROJ_DIR$\..\..\..\components\drivers\ipc\workqueue.c</name>
</file>
<file>
@@ -2164,6 +2158,12 @@
<name>$PROJ_DIR$\..\..\..\components\drivers\ipc\waitqueue.c</name>
</file>
<file>
+ <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\ringblk_buf.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\dataqueue.c</name>
+ </file>
+ <file>
<name>$PROJ_DIR$\..\..\..\components\drivers\misc\pin.c</name>
</file>
<file>
@@ -2173,22 +2173,22 @@
<group>
<name>Drivers</name>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\cmsis\cm4\device_support\startup\iar\startup_at32f403a_407.s</name>
- </file>
- <file>
<name>$PROJ_DIR$\board\src\at32_msp.c</name>
</file>
<file>
<name>$PROJ_DIR$\board\src\board.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\rt_drivers\drv_gpio.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\cmsis\cm4\device_support\startup\iar\startup_at32f403a_407.s</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\libraries\rt_drivers\drv_gpio.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\rt_drivers\drv_usart.c</name>
+ <name>$PROJ_DIR$\..\libraries\rt_drivers\drv_usart.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\rt_drivers\drv_common.c</name>
+ <name>$PROJ_DIR$\..\libraries\rt_drivers\drv_common.c</name>
</file>
</group>
<group>
@@ -2206,127 +2206,127 @@
<group>
<name>Kernel</name>
<file>
- <name>$PROJ_DIR$\..\..\..\src\object.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\device.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\timer.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\mempool.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\memheap.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\components.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\clock.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\mem.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\kservice.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\irq.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\scheduler.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\idle.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\ipc.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\object.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\device.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\timer.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\mempool.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\memheap.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\components.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\clock.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\thread.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\kservice.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\mem.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\thread.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\irq.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\scheduler.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\idle.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\ipc.c</name>
</file>
</group>
<group>
<name>Libraries</name>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_exint.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_exint.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_emac.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_emac.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_rtc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_rtc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_spi.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_spi.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_dac.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_dac.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_bpr.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_bpr.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_gpio.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_gpio.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_sdio.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_sdio.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_wdt.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_wdt.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_usart.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_usart.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\cmsis\cm4\device_support\system_at32f403a_407.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\cmsis\cm4\device_support\system_at32f403a_407.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_flash.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_flash.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_dma.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_dma.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_pwc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_pwc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_acc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_acc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_can.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_can.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_crm.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_crm.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_crc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_crc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_wwdt.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_wwdt.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_debug.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_debug.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_usb.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_usb.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_adc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_adc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_i2c.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_i2c.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_misc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_misc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_tmr.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_tmr.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_xmc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_xmc.c</name>
</file>
</group>
<group>
diff --git a/bsp/at32/at32f407-start/project.uvproj b/bsp/at32/at32f407-start/project.uvproj
index bba94d52c9..8f28bb98da 100644
--- a/bsp/at32/at32f407-start/project.uvproj
+++ b/bsp/at32/at32f407-start/project.uvproj
@@ -359,7 +359,7 @@
<MiscControls />
<Define>USE_STDPERIPH_DRIVER, AT32F407VGT7, __RTTHREAD__, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND</Define>
<Undefine />
- <IncludePath>applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;board\inc;..\libraries\f403a_407\rt_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\f403a_407\firmware\cmsis\cm4\device_support;..\libraries\f403a_407\firmware\cmsis\cm4\core_support;..\libraries\f403a_407\firmware\drivers\inc;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc</IncludePath>
+ <IncludePath>applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;board\inc;..\libraries\rt_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\AT32F403A_407_Firmware_Library\cmsis\cm4\device_support;..\libraries\AT32F403A_407_Firmware_Library\cmsis\cm4\core_support;..\libraries\AT32F403A_407_Firmware_Library\drivers\inc;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc</IncludePath>
</VariousControls>
</Cads>
<Aads>
@@ -444,23 +444,23 @@
<GroupName>CPU</GroupName>
<Files>
<File>
- <FileName>backtrace.c</FileName>
+ <FileName>showmem.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\libcpu\arm\common\backtrace.c</FilePath>
+ <FilePath>..\..\..\libcpu\arm\common\showmem.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>showmem.c</FileName>
+ <FileName>div0.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\libcpu\arm\common\showmem.c</FilePath>
+ <FilePath>..\..\..\libcpu\arm\common\div0.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>div0.c</FileName>
+ <FileName>backtrace.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\libcpu\arm\common\div0.c</FilePath>
+ <FilePath>..\..\..\libcpu\arm\common\backtrace.c</FilePath>
</File>
</Files>
<Files>
@@ -482,51 +482,51 @@
<GroupName>DeviceDrivers</GroupName>
<Files>
<File>
- <FileName>waitqueue.c</FileName>
+ <FileName>ringbuffer.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\waitqueue.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\ringbuffer.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>ringblk_buf.c</FileName>
+ <FileName>pipe.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\ringblk_buf.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\pipe.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>dataqueue.c</FileName>
+ <FileName>completion.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\dataqueue.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\completion.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>workqueue.c</FileName>
+ <FileName>waitqueue.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\workqueue.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\waitqueue.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>ringbuffer.c</FileName>
+ <FileName>ringblk_buf.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\ringbuffer.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\ringblk_buf.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>pipe.c</FileName>
+ <FileName>dataqueue.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\pipe.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\dataqueue.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>completion.c</FileName>
+ <FileName>workqueue.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\completion.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\workqueue.c</FilePath>
</File>
</Files>
<Files>
@@ -548,13 +548,6 @@
<GroupName>Drivers</GroupName>
<Files>
<File>
- <FileName>startup_at32f403a_407.s</FileName>
- <FileType>2</FileType>
- <FilePath>..\libraries\f403a_407\firmware\cmsis\cm4\device_support\startup\mdk\startup_at32f403a_407.s</FilePath>
- </File>
- </Files>
- <Files>
- <File>
<FileName>at32_msp.c</FileName>
<FileType>1</FileType>
<FilePath>board\src\at32_msp.c</FilePath>
@@ -569,23 +562,30 @@
</Files>
<Files>
<File>
+ <FileName>startup_at32f403a_407.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\cmsis\cm4\device_support\startup\mdk\startup_at32f403a_407.s</FilePath>
+ </File>
+ </Files>
+ <Files>
+ <File>
<FileName>drv_gpio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\rt_drivers\drv_gpio.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_gpio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>drv_usart.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\rt_drivers\drv_usart.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_usart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>drv_common.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\rt_drivers\drv_common.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_common.c</FilePath>
</File>
</Files>
</Group>
@@ -617,44 +617,44 @@
<GroupName>Kernel</GroupName>
<Files>
<File>
- <FileName>device.c</FileName>
+ <FileName>components.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\device.c</FilePath>
+ <FilePath>..\..\..\src\components.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>mempool.c</FileName>
+ <FileName>thread.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\mempool.c</FilePath>
+ <FilePath>..\..\..\src\thread.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>components.c</FileName>
+ <FileName>mem.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\components.c</FilePath>
+ <FilePath>..\..\..\src\mem.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>mem.c</FileName>
+ <FileName>irq.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\mem.c</FilePath>
+ <FilePath>..\..\..\src\irq.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>scheduler.c</FileName>
+ <FileName>idle.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\scheduler.c</FilePath>
+ <FilePath>..\..\..\src\idle.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>irq.c</FileName>
+ <FileName>object.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\irq.c</FilePath>
+ <FilePath>..\..\..\src\object.c</FilePath>
</File>
</Files>
<Files>
@@ -666,51 +666,51 @@
</Files>
<Files>
<File>
- <FileName>idle.c</FileName>
+ <FileName>memheap.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\idle.c</FilePath>
+ <FilePath>..\..\..\src\memheap.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>object.c</FileName>
+ <FileName>clock.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\object.c</FilePath>
+ <FilePath>..\..\..\src\clock.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>thread.c</FileName>
+ <FileName>kservice.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\thread.c</FilePath>
+ <FilePath>..\..\..\src\kservice.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>memheap.c</FileName>
+ <FileName>scheduler.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\memheap.c</FilePath>
+ <FilePath>..\..\..\src\scheduler.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>clock.c</FileName>
+ <FileName>ipc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\clock.c</FilePath>
+ <FilePath>..\..\..\src\ipc.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>kservice.c</FileName>
+ <FileName>device.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\kservice.c</FilePath>
+ <FilePath>..\..\..\src\device.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>ipc.c</FileName>
+ <FileName>mempool.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\ipc.c</FilePath>
+ <FilePath>..\..\..\src\mempool.c</FilePath>
</File>
</Files>
</Group>
@@ -720,182 +720,182 @@
<File>
<FileName>at32f403a_407_exint.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_exint.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_exint.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_emac.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_emac.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_emac.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_rtc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_rtc.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_rtc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_spi.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_spi.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_spi.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_dac.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_dac.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_dac.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_bpr.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_bpr.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_bpr.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_gpio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_gpio.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_gpio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_sdio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_sdio.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_sdio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_wdt.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_wdt.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_wdt.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_usart.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_usart.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_usart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>system_at32f403a_407.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\cmsis\cm4\device_support\system_at32f403a_407.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\cmsis\cm4\device_support\system_at32f403a_407.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_flash.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_flash.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_flash.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_dma.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_dma.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_dma.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_pwc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_pwc.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_pwc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_acc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_acc.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_acc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_can.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_can.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_can.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_crm.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_crm.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_crm.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_crc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_crc.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_crc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_wwdt.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_wwdt.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_wwdt.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_debug.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_debug.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_debug.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_usb.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_usb.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_usb.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_adc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_adc.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_adc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_i2c.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_i2c.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_i2c.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_misc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_misc.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_misc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_tmr.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_tmr.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_tmr.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_xmc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_xmc.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_xmc.c</FilePath>
</File>
</Files>
</Group>
diff --git a/bsp/at32/at32f407-start/project.uvprojx b/bsp/at32/at32f407-start/project.uvprojx
index f61dfd5d7b..3cbbca05b9 100644
--- a/bsp/at32/at32f407-start/project.uvprojx
+++ b/bsp/at32/at32f407-start/project.uvprojx
@@ -335,7 +335,7 @@
<MiscControls />
<Define>USE_STDPERIPH_DRIVER, AT32F407VGT7, __RTTHREAD__, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND</Define>
<Undefine />
- <IncludePath>applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;board\inc;..\libraries\f403a_407\rt_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\f403a_407\firmware\cmsis\cm4\device_support;..\libraries\f403a_407\firmware\cmsis\cm4\core_support;..\libraries\f403a_407\firmware\drivers\inc;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc</IncludePath>
+ <IncludePath>applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;board\inc;..\libraries\rt_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\AT32F403A_407_Firmware_Library\cmsis\cm4\device_support;..\libraries\AT32F403A_407_Firmware_Library\cmsis\cm4\core_support;..\libraries\AT32F403A_407_Firmware_Library\drivers\inc;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc</IncludePath>
</VariousControls>
</Cads>
<Aads>
@@ -390,30 +390,30 @@
<GroupName>Compiler</GroupName>
<Files>
<File>
- <FileName>syscalls.c</FileName>
+ <FileName>syscall_mem.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\libc\compilers\armlibc\syscalls.c</FilePath>
+ <FilePath>..\..\..\components\libc\compilers\armlibc\syscall_mem.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>syscall_mem.c</FileName>
+ <FileName>syscalls.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\libc\compilers\armlibc\syscall_mem.c</FilePath>
+ <FilePath>..\..\..\components\libc\compilers\armlibc\syscalls.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>stdlib.c</FileName>
+ <FileName>time.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\libc\compilers\common\stdlib.c</FilePath>
+ <FilePath>..\..\..\components\libc\compilers\common\time.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>time.c</FileName>
+ <FileName>stdlib.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\libc\compilers\common\time.c</FilePath>
+ <FilePath>..\..\..\components\libc\compilers\common\stdlib.c</FilePath>
</File>
</Files>
</Group>
@@ -442,16 +442,16 @@
</Files>
<Files>
<File>
- <FileName>context_rvds.S</FileName>
- <FileType>2</FileType>
- <FilePath>..\..\..\libcpu\arm\cortex-m4\context_rvds.S</FilePath>
+ <FileName>cpuport.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\libcpu\arm\cortex-m4\cpuport.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>cpuport.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\..\..\libcpu\arm\cortex-m4\cpuport.c</FilePath>
+ <FileName>context_rvds.S</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\libcpu\arm\cortex-m4\context_rvds.S</FilePath>
</File>
</Files>
</Group>
@@ -459,51 +459,51 @@
<GroupName>DeviceDrivers</GroupName>
<Files>
<File>
- <FileName>pipe.c</FileName>
+ <FileName>waitqueue.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\pipe.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\waitqueue.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>workqueue.c</FileName>
+ <FileName>ringblk_buf.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\workqueue.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\ringblk_buf.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>completion.c</FileName>
+ <FileName>dataqueue.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\completion.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\dataqueue.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>ringblk_buf.c</FileName>
+ <FileName>workqueue.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\ringblk_buf.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\workqueue.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>dataqueue.c</FileName>
+ <FileName>ringbuffer.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\dataqueue.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\ringbuffer.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>waitqueue.c</FileName>
+ <FileName>pipe.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\waitqueue.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\pipe.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>ringbuffer.c</FileName>
+ <FileName>completion.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\ringbuffer.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\completion.c</FilePath>
</File>
</Files>
<Files>
@@ -525,13 +525,6 @@
<GroupName>Drivers</GroupName>
<Files>
<File>
- <FileName>startup_at32f403a_407.s</FileName>
- <FileType>2</FileType>
- <FilePath>..\libraries\f403a_407\firmware\cmsis\cm4\device_support\startup\mdk\startup_at32f403a_407.s</FilePath>
- </File>
- </Files>
- <Files>
- <File>
<FileName>at32_msp.c</FileName>
<FileType>1</FileType>
<FilePath>board\src\at32_msp.c</FilePath>
@@ -546,23 +539,30 @@
</Files>
<Files>
<File>
+ <FileName>startup_at32f403a_407.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\cmsis\cm4\device_support\startup\mdk\startup_at32f403a_407.s</FilePath>
+ </File>
+ </Files>
+ <Files>
+ <File>
<FileName>drv_gpio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\rt_drivers\drv_gpio.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_gpio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>drv_usart.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\rt_drivers\drv_usart.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_usart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>drv_common.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\rt_drivers\drv_common.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_common.c</FilePath>
</File>
</Files>
</Group>
@@ -594,100 +594,100 @@
<GroupName>Kernel</GroupName>
<Files>
<File>
- <FileName>irq.c</FileName>
+ <FileName>device.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\irq.c</FilePath>
+ <FilePath>..\..\..\src\device.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>idle.c</FileName>
+ <FileName>mempool.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\idle.c</FilePath>
+ <FilePath>..\..\..\src\mempool.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>scheduler.c</FileName>
+ <FileName>thread.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\scheduler.c</FilePath>
+ <FilePath>..\..\..\src\thread.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>mem.c</FileName>
+ <FileName>components.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\mem.c</FilePath>
+ <FilePath>..\..\..\src\components.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>memheap.c</FileName>
+ <FileName>mem.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\memheap.c</FilePath>
+ <FilePath>..\..\..\src\mem.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>clock.c</FileName>
+ <FileName>irq.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\clock.c</FilePath>
+ <FilePath>..\..\..\src\irq.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>thread.c</FileName>
+ <FileName>idle.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\thread.c</FilePath>
+ <FilePath>..\..\..\src\idle.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>kservice.c</FileName>
+ <FileName>object.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\kservice.c</FilePath>
+ <FilePath>..\..\..\src\object.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>object.c</FileName>
+ <FileName>timer.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\object.c</FilePath>
+ <FilePath>..\..\..\src\timer.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>ipc.c</FileName>
+ <FileName>memheap.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\ipc.c</FilePath>
+ <FilePath>..\..\..\src\memheap.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>device.c</FileName>
+ <FileName>clock.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\device.c</FilePath>
+ <FilePath>..\..\..\src\clock.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>components.c</FileName>
+ <FileName>kservice.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\components.c</FilePath>
+ <FilePath>..\..\..\src\kservice.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>timer.c</FileName>
+ <FileName>scheduler.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\timer.c</FilePath>
+ <FilePath>..\..\..\src\scheduler.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>mempool.c</FileName>
+ <FileName>ipc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\mempool.c</FilePath>
+ <FilePath>..\..\..\src\ipc.c</FilePath>
</File>
</Files>
</Group>
@@ -697,182 +697,182 @@
<File>
<FileName>at32f403a_407_exint.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_exint.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_exint.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_emac.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_emac.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_emac.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_rtc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_rtc.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_rtc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_spi.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_spi.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_spi.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_dac.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_dac.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_dac.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_bpr.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_bpr.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_bpr.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_gpio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_gpio.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_gpio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_sdio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_sdio.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_sdio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_wdt.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_wdt.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_wdt.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_usart.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_usart.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_usart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>system_at32f403a_407.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\cmsis\cm4\device_support\system_at32f403a_407.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\cmsis\cm4\device_support\system_at32f403a_407.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_flash.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_flash.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_flash.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_dma.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_dma.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_dma.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_pwc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_pwc.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_pwc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_acc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_acc.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_acc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_can.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_can.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_can.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_crm.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_crm.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_crm.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_crc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_crc.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_crc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_wwdt.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_wwdt.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_wwdt.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_debug.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_debug.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_debug.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_usb.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_usb.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_usb.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_adc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_adc.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_adc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_i2c.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_i2c.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_i2c.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_misc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_misc.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_misc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_tmr.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_tmr.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_tmr.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f403a_407_xmc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f403a_407\firmware\drivers\src\at32f403a_407_xmc.c</FilePath>
+ <FilePath>..\libraries\AT32F403A_407_Firmware_Library\drivers\src\at32f403a_407_xmc.c</FilePath>
</File>
</Files>
</Group>
diff --git a/bsp/at32/at32f407-start/rtconfig.h b/bsp/at32/at32f407-start/rtconfig.h
index 1516b550f1..e11405a1e5 100644
--- a/bsp/at32/at32f407-start/rtconfig.h
+++ b/bsp/at32/at32f407-start/rtconfig.h
@@ -174,7 +174,5 @@
#define BSP_USING_GPIO
#define BSP_USING_UART
#define BSP_USING_UART1
-#define BSP_USING_UART2
-#define BSP_USING_UART3
#endif
diff --git a/bsp/at32/at32f413-start/.config b/bsp/at32/at32f413-start/.config
index b5d599d00b..16f22d7449 100644
--- a/bsp/at32/at32f413-start/.config
+++ b/bsp/at32/at32f413-start/.config
@@ -416,6 +416,8 @@ CONFIG_BSP_USING_SERIAL=y
CONFIG_BSP_USING_GPIO=y
# CONFIG_BSP_USING_ON_CHIP_FLASH is not set
# CONFIG_BSP_USING_RTC is not set
+# CONFIG_BSP_RTC_USING_LEXT is not set
+# CONFIG_BSP_RTC_USING_LICK is not set
CONFIG_BSP_USING_UART=y
CONFIG_BSP_USING_UART1=y
# CONFIG_BSP_USING_UART2 is not set
diff --git a/bsp/at32/at32f413-start/SConstruct b/bsp/at32/at32f413-start/SConstruct
index 6159121dcf..01bab30749 100644
--- a/bsp/at32/at32f413-start/SConstruct
+++ b/bsp/at32/at32f413-start/SConstruct
@@ -46,11 +46,14 @@ Export('SDK_LIB')
# prepare building environment
objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
-at32_library = 'f413'
+at32_library = 'AT32F413_Firmware_Library'
rtconfig.BSP_LIBRARY_TYPE = at32_library
# include libraries
objs.extend(SConscript(os.path.join(libraries_path_prefix, at32_library, 'SConscript')))
+# include drivers
+objs.extend(SConscript(os.path.join(libraries_path_prefix, 'rt_drivers', 'SConscript')))
+
# make a building
DoBuilding(TARGET, objs)
diff --git a/bsp/at32/at32f413-start/applications/main.c b/bsp/at32/at32f413-start/applications/main.c
index 0351aae960..b069536169 100644
--- a/bsp/at32/at32f413-start/applications/main.c
+++ b/bsp/at32/at32f413-start/applications/main.c
@@ -5,12 +5,12 @@
*
* Change Logs:
* Date Author Notes
- * 2022-05-10 shelton first version
+ * 2022-05-16 shelton first version
*/
#include <rtthread.h>
#include <rtdevice.h>
-#include "board.h"
+#include "drv_common.h"
#include "drv_gpio.h"
/* defined the led2 pin: pc2 */
diff --git a/bsp/at32/at32f413-start/board/SConscript b/bsp/at32/at32f413-start/board/SConscript
index 5c7cf6a240..51fe4c11aa 100644
--- a/bsp/at32/at32f413-start/board/SConscript
+++ b/bsp/at32/at32f413-start/board/SConscript
@@ -18,11 +18,11 @@ path += [cwd + '/inc']
startup_path_prefix = SDK_LIB
if rtconfig.CROSS_TOOL == 'gcc':
- src += [startup_path_prefix + '/f413/firmware/cmsis/cm4/device_support/startup/gcc/startup_at32f413.s']
+ src += [startup_path_prefix + '/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/gcc/startup_at32f413.s']
elif rtconfig.CROSS_TOOL == 'keil':
- src += [startup_path_prefix + '/f413/firmware/cmsis/cm4/device_support/startup/mdk/startup_at32f413.s']
+ src += [startup_path_prefix + '/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/mdk/startup_at32f413.s']
elif rtconfig.CROSS_TOOL == 'iar':
- src += [startup_path_prefix + '/f413/firmware/cmsis/cm4/device_support/startup/iar/startup_at32f413.s']
+ src += [startup_path_prefix + '/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/iar/startup_at32f413.s']
CPPDEFINES = ['AT32F413RCT7']
group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)
diff --git a/bsp/at32/at32f413-start/project.ewp b/bsp/at32/at32f413-start/project.ewp
index 03226e3370..6a72f14740 100644
--- a/bsp/at32/at32f413-start/project.ewp
+++ b/bsp/at32/at32f413-start/project.ewp
@@ -348,23 +348,23 @@
<option>
<name>CCIncludePath2</name>
<state />
- <state>$PROJ_DIR$\..\libraries\f413\firmware\cmsis\cm4\core_support</state>
<state>$PROJ_DIR$\..\..\..\components\finsh</state>
<state>$PROJ_DIR$\..\..\..\libcpu\arm\common</state>
<state>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4</state>
<state>$PROJ_DIR$\board\inc</state>
<state>$PROJ_DIR$\..\..\..\components\drivers\include</state>
<state>$PROJ_DIR$\..\..\..\components\libc\posix\io\stdio</state>
+ <state>$PROJ_DIR$\..\libraries\rt_drivers</state>
<state>$PROJ_DIR$\.</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\drivers\inc</state>
<state>$PROJ_DIR$\applications</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\cmsis\cm4\device_support</state>
<state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
- <state>$PROJ_DIR$\..\libraries\f413\firmware\cmsis\cm4\device_support</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\cmsis\cm4\core_support</state>
<state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension</state>
<state>$PROJ_DIR$\..\..\..\components\libc\compilers\common</state>
<state>$PROJ_DIR$\..\..\..\components\libc\posix\io\poll</state>
- <state>$PROJ_DIR$\..\libraries\f413\firmware\drivers\inc</state>
<state>$PROJ_DIR$\..\..\..\include</state>
- <state>$PROJ_DIR$\..\libraries\f413\rt_drivers</state>
<state>$PROJ_DIR$\board</state>
</option>
<option>
@@ -1388,23 +1388,23 @@
<option>
<name>CCIncludePath2</name>
<state />
- <state>$PROJ_DIR$\..\libraries\f413\firmware\cmsis\cm4\core_support</state>
<state>$PROJ_DIR$\..\..\..\components\finsh</state>
<state>$PROJ_DIR$\..\..\..\libcpu\arm\common</state>
<state>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4</state>
<state>$PROJ_DIR$\board\inc</state>
<state>$PROJ_DIR$\..\..\..\components\drivers\include</state>
<state>$PROJ_DIR$\..\..\..\components\libc\posix\io\stdio</state>
+ <state>$PROJ_DIR$\..\libraries\rt_drivers</state>
<state>$PROJ_DIR$\.</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\drivers\inc</state>
<state>$PROJ_DIR$\applications</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\cmsis\cm4\device_support</state>
<state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
- <state>$PROJ_DIR$\..\libraries\f413\firmware\cmsis\cm4\device_support</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\cmsis\cm4\core_support</state>
<state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension</state>
<state>$PROJ_DIR$\..\..\..\components\libc\compilers\common</state>
<state>$PROJ_DIR$\..\..\..\components\libc\posix\io\poll</state>
- <state>$PROJ_DIR$\..\libraries\f413\firmware\drivers\inc</state>
<state>$PROJ_DIR$\..\..\..\include</state>
- <state>$PROJ_DIR$\..\libraries\f413\rt_drivers</state>
<state>$PROJ_DIR$\board</state>
</option>
<option>
@@ -2095,6 +2095,12 @@
<name>$PROJ_DIR$\..\..\..\components\libc\compilers\common\stdlib.c</name>
</file>
<file>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_close.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\environ.c</name>
+ </file>
+ <file>
<name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_remove.c</name>
</file>
<file>
@@ -2115,25 +2121,19 @@
<file>
<name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_mem.c</name>
</file>
- <file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_close.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\environ.c</name>
- </file>
</group>
<group>
<name>CPU</name>
<file>
- <name>$PROJ_DIR$\..\..\..\libcpu\arm\common\showmem.c</name>
- </file>
- <file>
<name>$PROJ_DIR$\..\..\..\libcpu\arm\common\div0.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\libcpu\arm\common\backtrace.c</name>
</file>
<file>
+ <name>$PROJ_DIR$\..\..\..\libcpu\arm\common\showmem.c</name>
+ </file>
+ <file>
<name>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4\context_iar.S</name>
</file>
<file>
@@ -2143,10 +2143,13 @@
<group>
<name>DeviceDrivers</name>
<file>
+ <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\ringblk_buf.c</name>
+ </file>
+ <file>
<name>$PROJ_DIR$\..\..\..\components\drivers\ipc\dataqueue.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\workqueue.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\waitqueue.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\components\drivers\ipc\ringbuffer.c</name>
@@ -2155,13 +2158,10 @@
<name>$PROJ_DIR$\..\..\..\components\drivers\ipc\pipe.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\completion.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\waitqueue.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\workqueue.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\ringblk_buf.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\completion.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\components\drivers\misc\pin.c</name>
@@ -2173,22 +2173,22 @@
<group>
<name>Drivers</name>
<file>
- <name>$PROJ_DIR$\board\src\at32_msp.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\cmsis\cm4\device_support\startup\iar\startup_at32f413.s</name>
</file>
<file>
- <name>$PROJ_DIR$\board\src\board.c</name>
+ <name>$PROJ_DIR$\board\src\at32_msp.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f413\firmware\cmsis\cm4\device_support\startup\iar\startup_at32f413.s</name>
+ <name>$PROJ_DIR$\board\src\board.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f413\rt_drivers\drv_gpio.c</name>
+ <name>$PROJ_DIR$\..\libraries\rt_drivers\drv_gpio.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f413\rt_drivers\drv_usart.c</name>
+ <name>$PROJ_DIR$\..\libraries\rt_drivers\drv_usart.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f413\rt_drivers\drv_common.c</name>
+ <name>$PROJ_DIR$\..\libraries\rt_drivers\drv_common.c</name>
</file>
</group>
<group>
@@ -2206,118 +2206,118 @@
<group>
<name>Kernel</name>
<file>
- <name>$PROJ_DIR$\..\..\..\src\irq.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\src\idle.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\components.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\src\timer.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\object.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\thread.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\thread.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\irq.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\memheap.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\idle.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\clock.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\object.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\kservice.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\memheap.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\ipc.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\mem.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\device.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\clock.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\src\mempool.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\components.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\kservice.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\mem.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\scheduler.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\scheduler.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\ipc.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\src\device.c</name>
</file>
</group>
<group>
<name>Libraries</name>
<file>
- <name>$PROJ_DIR$\..\libraries\f413\firmware\drivers\src\at32f413_gpio.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_gpio.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f413\firmware\drivers\src\at32f413_wdt.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_wdt.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f413\firmware\drivers\src\at32f413_usart.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_usart.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f413\firmware\drivers\src\at32f413_spi.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_spi.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f413\firmware\drivers\src\at32f413_rtc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_rtc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f413\firmware\drivers\src\at32f413_wwdt.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_wwdt.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f413\firmware\drivers\src\at32f413_tmr.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_tmr.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f413\firmware\drivers\src\at32f413_pwc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_pwc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f413\firmware\drivers\src\at32f413_acc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_acc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f413\firmware\drivers\src\at32f413_debug.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_debug.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f413\firmware\drivers\src\at32f413_adc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_adc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f413\firmware\drivers\src\at32f413_i2c.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_i2c.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f413\firmware\drivers\src\at32f413_sdio.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_sdio.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f413\firmware\drivers\src\at32f413_bpr.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_bpr.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f413\firmware\drivers\src\at32f413_crc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_crc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f413\firmware\drivers\src\at32f413_dma.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_dma.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f413\firmware\drivers\src\at32f413_crm.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_crm.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f413\firmware\drivers\src\at32f413_misc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_misc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f413\firmware\drivers\src\at32f413_exint.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_exint.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f413\firmware\drivers\src\at32f413_flash.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_flash.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f413\firmware\drivers\src\at32f413_usb.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_usb.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f413\firmware\cmsis\cm4\device_support\system_at32f413.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\cmsis\cm4\device_support\system_at32f413.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f413\firmware\drivers\src\at32f413_can.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_can.c</name>
</file>
</group>
<group>
diff --git a/bsp/at32/at32f413-start/project.uvproj b/bsp/at32/at32f413-start/project.uvproj
index 726638ea84..9e07f44226 100644
--- a/bsp/at32/at32f413-start/project.uvproj
+++ b/bsp/at32/at32f413-start/project.uvproj
@@ -359,7 +359,7 @@
<MiscControls />
<Define>AT32F413RCT7, USE_STDPERIPH_DRIVER, __RTTHREAD__, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND</Define>
<Undefine />
- <IncludePath>applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;board\inc;..\libraries\f413\rt_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\f413\firmware\cmsis\cm4\device_support;..\libraries\f413\firmware\cmsis\cm4\core_support;..\libraries\f413\firmware\drivers\inc;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc</IncludePath>
+ <IncludePath>applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;board\inc;..\libraries\rt_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\AT32F413_Firmware_Library\cmsis\cm4\device_support;..\libraries\AT32F413_Firmware_Library\cmsis\cm4\core_support;..\libraries\AT32F413_Firmware_Library\drivers\inc;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc</IncludePath>
</VariousControls>
</Cads>
<Aads>
@@ -413,16 +413,16 @@
<GroupName>Compiler</GroupName>
<Files>
<File>
- <FileName>syscalls.c</FileName>
+ <FileName>syscall_mem.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\libc\compilers\armlibc\syscalls.c</FilePath>
+ <FilePath>..\..\..\components\libc\compilers\armlibc\syscall_mem.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>syscall_mem.c</FileName>
+ <FileName>syscalls.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\libc\compilers\armlibc\syscall_mem.c</FilePath>
+ <FilePath>..\..\..\components\libc\compilers\armlibc\syscalls.c</FilePath>
</File>
</Files>
<Files>
@@ -444,23 +444,23 @@
<GroupName>CPU</GroupName>
<Files>
<File>
- <FileName>backtrace.c</FileName>
+ <FileName>showmem.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\libcpu\arm\common\backtrace.c</FilePath>
+ <FilePath>..\..\..\libcpu\arm\common\showmem.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>showmem.c</FileName>
+ <FileName>div0.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\libcpu\arm\common\showmem.c</FilePath>
+ <FilePath>..\..\..\libcpu\arm\common\div0.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>div0.c</FileName>
+ <FileName>backtrace.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\libcpu\arm\common\div0.c</FilePath>
+ <FilePath>..\..\..\libcpu\arm\common\backtrace.c</FilePath>
</File>
</Files>
<Files>
@@ -482,51 +482,51 @@
<GroupName>DeviceDrivers</GroupName>
<Files>
<File>
- <FileName>dataqueue.c</FileName>
+ <FileName>completion.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\dataqueue.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\completion.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>workqueue.c</FileName>
+ <FileName>waitqueue.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\workqueue.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\waitqueue.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>ringbuffer.c</FileName>
+ <FileName>ringblk_buf.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\ringbuffer.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\ringblk_buf.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>pipe.c</FileName>
+ <FileName>dataqueue.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\pipe.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\dataqueue.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>completion.c</FileName>
+ <FileName>workqueue.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\completion.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\workqueue.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>waitqueue.c</FileName>
+ <FileName>ringbuffer.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\waitqueue.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\ringbuffer.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>ringblk_buf.c</FileName>
+ <FileName>pipe.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\ringblk_buf.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\pipe.c</FilePath>
</File>
</Files>
<Files>
@@ -548,13 +548,6 @@
<GroupName>Drivers</GroupName>
<Files>
<File>
- <FileName>startup_at32f413.s</FileName>
- <FileType>2</FileType>
- <FilePath>..\libraries\f413\firmware\cmsis\cm4\device_support\startup\mdk\startup_at32f413.s</FilePath>
- </File>
- </Files>
- <Files>
- <File>
<FileName>at32_msp.c</FileName>
<FileType>1</FileType>
<FilePath>board\src\at32_msp.c</FilePath>
@@ -569,23 +562,30 @@
</Files>
<Files>
<File>
+ <FileName>startup_at32f413.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\cmsis\cm4\device_support\startup\mdk\startup_at32f413.s</FilePath>
+ </File>
+ </Files>
+ <Files>
+ <File>
<FileName>drv_gpio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\rt_drivers\drv_gpio.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_gpio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>drv_usart.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\rt_drivers\drv_usart.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_usart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>drv_common.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\rt_drivers\drv_common.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_common.c</FilePath>
</File>
</Files>
</Group>
@@ -617,6 +617,13 @@
<GroupName>Kernel</GroupName>
<Files>
<File>
+ <FileName>kservice.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\src\kservice.c</FilePath>
+ </File>
+ </Files>
+ <Files>
+ <File>
<FileName>irq.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\src\irq.c</FilePath>
@@ -631,16 +638,16 @@
</Files>
<Files>
<File>
- <FileName>timer.c</FileName>
+ <FileName>mem.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\timer.c</FilePath>
+ <FilePath>..\..\..\src\mem.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>object.c</FileName>
+ <FileName>clock.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\object.c</FilePath>
+ <FilePath>..\..\..\src\clock.c</FilePath>
</File>
</Files>
<Files>
@@ -652,30 +659,23 @@
</Files>
<Files>
<File>
- <FileName>memheap.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\..\..\src\memheap.c</FilePath>
- </File>
- </Files>
- <Files>
- <File>
- <FileName>clock.c</FileName>
+ <FileName>scheduler.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\clock.c</FilePath>
+ <FilePath>..\..\..\src\scheduler.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>kservice.c</FileName>
+ <FileName>ipc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\kservice.c</FilePath>
+ <FilePath>..\..\..\src\ipc.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>ipc.c</FileName>
+ <FileName>memheap.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\ipc.c</FilePath>
+ <FilePath>..\..\..\src\memheap.c</FilePath>
</File>
</Files>
<Files>
@@ -701,16 +701,16 @@
</Files>
<Files>
<File>
- <FileName>mem.c</FileName>
+ <FileName>timer.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\mem.c</FilePath>
+ <FilePath>..\..\..\src\timer.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>scheduler.c</FileName>
+ <FileName>object.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\scheduler.c</FilePath>
+ <FilePath>..\..\..\src\object.c</FilePath>
</File>
</Files>
</Group>
@@ -720,161 +720,161 @@
<File>
<FileName>at32f413_gpio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_gpio.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_gpio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_wdt.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_wdt.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_wdt.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_usart.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_usart.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_usart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_spi.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_spi.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_spi.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_rtc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_rtc.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_rtc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_wwdt.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_wwdt.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_wwdt.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_tmr.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_tmr.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_tmr.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_pwc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_pwc.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_pwc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_acc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_acc.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_acc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_debug.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_debug.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_debug.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_adc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_adc.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_adc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_i2c.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_i2c.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_i2c.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_sdio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_sdio.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_sdio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_bpr.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_bpr.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_bpr.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_crc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_crc.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_crc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_dma.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_dma.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_dma.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_crm.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_crm.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_crm.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_misc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_misc.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_misc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_exint.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_exint.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_exint.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_flash.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_flash.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_flash.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_usb.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_usb.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_usb.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>system_at32f413.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\cmsis\cm4\device_support\system_at32f413.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\cmsis\cm4\device_support\system_at32f413.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_can.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_can.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_can.c</FilePath>
</File>
</Files>
</Group>
diff --git a/bsp/at32/at32f413-start/project.uvprojx b/bsp/at32/at32f413-start/project.uvprojx
index 7fe558727b..1585677f5b 100644
--- a/bsp/at32/at32f413-start/project.uvprojx
+++ b/bsp/at32/at32f413-start/project.uvprojx
@@ -335,7 +335,7 @@
<MiscControls />
<Define>AT32F413RCT7, USE_STDPERIPH_DRIVER, __RTTHREAD__, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND</Define>
<Undefine />
- <IncludePath>applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;board\inc;..\libraries\f413\rt_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\f413\firmware\cmsis\cm4\device_support;..\libraries\f413\firmware\cmsis\cm4\core_support;..\libraries\f413\firmware\drivers\inc;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc</IncludePath>
+ <IncludePath>applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;board\inc;..\libraries\rt_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\AT32F413_Firmware_Library\cmsis\cm4\device_support;..\libraries\AT32F413_Firmware_Library\cmsis\cm4\core_support;..\libraries\AT32F413_Firmware_Library\drivers\inc;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc</IncludePath>
</VariousControls>
</Cads>
<Aads>
@@ -442,16 +442,16 @@
</Files>
<Files>
<File>
- <FileName>cpuport.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\..\..\libcpu\arm\cortex-m4\cpuport.c</FilePath>
+ <FileName>context_rvds.S</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\..\..\libcpu\arm\cortex-m4\context_rvds.S</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>context_rvds.S</FileName>
- <FileType>2</FileType>
- <FilePath>..\..\..\libcpu\arm\cortex-m4\context_rvds.S</FilePath>
+ <FileName>cpuport.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\libcpu\arm\cortex-m4\cpuport.c</FilePath>
</File>
</Files>
</Group>
@@ -459,6 +459,13 @@
<GroupName>DeviceDrivers</GroupName>
<Files>
<File>
+ <FileName>pipe.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\components\drivers\ipc\pipe.c</FilePath>
+ </File>
+ </Files>
+ <Files>
+ <File>
<FileName>completion.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\components\drivers\ipc\completion.c</FilePath>
@@ -501,13 +508,6 @@
</Files>
<Files>
<File>
- <FileName>pipe.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\pipe.c</FilePath>
- </File>
- </Files>
- <Files>
- <File>
<FileName>pin.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\components\drivers\misc\pin.c</FilePath>
@@ -525,13 +525,6 @@
<GroupName>Drivers</GroupName>
<Files>
<File>
- <FileName>startup_at32f413.s</FileName>
- <FileType>2</FileType>
- <FilePath>..\libraries\f413\firmware\cmsis\cm4\device_support\startup\mdk\startup_at32f413.s</FilePath>
- </File>
- </Files>
- <Files>
- <File>
<FileName>at32_msp.c</FileName>
<FileType>1</FileType>
<FilePath>board\src\at32_msp.c</FilePath>
@@ -546,23 +539,30 @@
</Files>
<Files>
<File>
+ <FileName>startup_at32f413.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\cmsis\cm4\device_support\startup\mdk\startup_at32f413.s</FilePath>
+ </File>
+ </Files>
+ <Files>
+ <File>
<FileName>drv_gpio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\rt_drivers\drv_gpio.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_gpio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>drv_usart.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\rt_drivers\drv_usart.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_usart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>drv_common.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\rt_drivers\drv_common.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_common.c</FilePath>
</File>
</Files>
</Group>
@@ -594,16 +594,16 @@
<GroupName>Kernel</GroupName>
<Files>
<File>
- <FileName>mem.c</FileName>
+ <FileName>thread.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\mem.c</FilePath>
+ <FilePath>..\..\..\src\thread.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>scheduler.c</FileName>
+ <FileName>components.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\scheduler.c</FilePath>
+ <FilePath>..\..\..\src\components.c</FilePath>
</File>
</Files>
<Files>
@@ -615,16 +615,16 @@
</Files>
<Files>
<File>
- <FileName>idle.c</FileName>
+ <FileName>object.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\idle.c</FilePath>
+ <FilePath>..\..\..\src\object.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>thread.c</FileName>
+ <FileName>idle.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\thread.c</FilePath>
+ <FilePath>..\..\..\src\idle.c</FilePath>
</File>
</Files>
<Files>
@@ -636,9 +636,9 @@
</Files>
<Files>
<File>
- <FileName>clock.c</FileName>
+ <FileName>timer.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\clock.c</FilePath>
+ <FilePath>..\..\..\src\timer.c</FilePath>
</File>
</Files>
<Files>
@@ -650,23 +650,23 @@
</Files>
<Files>
<File>
- <FileName>object.c</FileName>
+ <FileName>clock.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\object.c</FilePath>
+ <FilePath>..\..\..\src\clock.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>ipc.c</FileName>
+ <FileName>scheduler.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\ipc.c</FilePath>
+ <FilePath>..\..\..\src\scheduler.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>device.c</FileName>
+ <FileName>ipc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\device.c</FilePath>
+ <FilePath>..\..\..\src\ipc.c</FilePath>
</File>
</Files>
<Files>
@@ -678,16 +678,16 @@
</Files>
<Files>
<File>
- <FileName>timer.c</FileName>
+ <FileName>device.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\timer.c</FilePath>
+ <FilePath>..\..\..\src\device.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>components.c</FileName>
+ <FileName>mem.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\components.c</FilePath>
+ <FilePath>..\..\..\src\mem.c</FilePath>
</File>
</Files>
</Group>
@@ -697,161 +697,161 @@
<File>
<FileName>at32f413_gpio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_gpio.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_gpio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_wdt.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_wdt.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_wdt.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_usart.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_usart.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_usart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_spi.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_spi.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_spi.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_rtc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_rtc.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_rtc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_wwdt.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_wwdt.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_wwdt.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_tmr.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_tmr.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_tmr.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_pwc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_pwc.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_pwc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_acc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_acc.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_acc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_debug.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_debug.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_debug.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_adc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_adc.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_adc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_i2c.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_i2c.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_i2c.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_sdio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_sdio.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_sdio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_bpr.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_bpr.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_bpr.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_crc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_crc.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_crc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_dma.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_dma.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_dma.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_crm.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_crm.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_crm.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_misc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_misc.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_misc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_exint.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_exint.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_exint.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_flash.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_flash.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_flash.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_usb.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_usb.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_usb.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>system_at32f413.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\cmsis\cm4\device_support\system_at32f413.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\cmsis\cm4\device_support\system_at32f413.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f413_can.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f413\firmware\drivers\src\at32f413_can.c</FilePath>
+ <FilePath>..\libraries\AT32F413_Firmware_Library\drivers\src\at32f413_can.c</FilePath>
</File>
</Files>
</Group>
diff --git a/bsp/at32/at32f415-start/.config b/bsp/at32/at32f415-start/.config
index 4e10ce8666..9042a6bd3a 100644
--- a/bsp/at32/at32f415-start/.config
+++ b/bsp/at32/at32f415-start/.config
@@ -126,14 +126,6 @@ CONFIG_FINSH_ARG_MAX=10
# Device virtual file system
#
# CONFIG_RT_USING_DFS is not set
-# CONFIG_RT_DFS_ELM_USE_LFN_0 is not set
-# CONFIG_RT_DFS_ELM_USE_LFN_1 is not set
-# CONFIG_RT_DFS_ELM_USE_LFN_2 is not set
-# CONFIG_RT_DFS_ELM_USE_LFN_3 is not set
-# CONFIG_RT_DFS_ELM_LFN_UNICODE_0 is not set
-# CONFIG_RT_DFS_ELM_LFN_UNICODE_1 is not set
-# CONFIG_RT_DFS_ELM_LFN_UNICODE_2 is not set
-# CONFIG_RT_DFS_ELM_LFN_UNICODE_3 is not set
#
# Device Drivers
@@ -424,6 +416,8 @@ CONFIG_BSP_USING_SERIAL=y
CONFIG_BSP_USING_GPIO=y
# CONFIG_BSP_USING_ON_CHIP_FLASH is not set
# CONFIG_BSP_USING_RTC is not set
+# CONFIG_BSP_RTC_USING_LEXT is not set
+# CONFIG_BSP_RTC_USING_LICK is not set
CONFIG_BSP_USING_UART=y
CONFIG_BSP_USING_UART1=y
# CONFIG_BSP_USING_UART2 is not set
diff --git a/bsp/at32/at32f415-start/SConstruct b/bsp/at32/at32f415-start/SConstruct
index 0d38fe797a..10eac9bc85 100644
--- a/bsp/at32/at32f415-start/SConstruct
+++ b/bsp/at32/at32f415-start/SConstruct
@@ -46,11 +46,14 @@ Export('SDK_LIB')
# prepare building environment
objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
-at32_library = 'f415'
+at32_library = 'AT32F415_Firmware_Library'
rtconfig.BSP_LIBRARY_TYPE = at32_library
# include libraries
objs.extend(SConscript(os.path.join(libraries_path_prefix, at32_library, 'SConscript')))
+# include drivers
+objs.extend(SConscript(os.path.join(libraries_path_prefix, 'rt_drivers', 'SConscript')))
+
# make a building
DoBuilding(TARGET, objs)
diff --git a/bsp/at32/at32f415-start/applications/main.c b/bsp/at32/at32f415-start/applications/main.c
index 9089f13b54..b069536169 100644
--- a/bsp/at32/at32f415-start/applications/main.c
+++ b/bsp/at32/at32f415-start/applications/main.c
@@ -5,12 +5,12 @@
*
* Change Logs:
* Date Author Notes
- * 2022-05-11 shelton first version
+ * 2022-05-16 shelton first version
*/
#include <rtthread.h>
#include <rtdevice.h>
-#include "board.h"
+#include "drv_common.h"
#include "drv_gpio.h"
/* defined the led2 pin: pc2 */
diff --git a/bsp/at32/at32f415-start/board/SConscript b/bsp/at32/at32f415-start/board/SConscript
index ca3921364c..47bfecd047 100644
--- a/bsp/at32/at32f415-start/board/SConscript
+++ b/bsp/at32/at32f415-start/board/SConscript
@@ -18,11 +18,11 @@ path += [cwd + '/inc']
startup_path_prefix = SDK_LIB
if rtconfig.CROSS_TOOL == 'gcc':
- src += [startup_path_prefix + '/f415/firmware/cmsis/cm4/device_support/startup/gcc/startup_at32f415.s']
+ src += [startup_path_prefix + '/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/gcc/startup_at32f415.s']
elif rtconfig.CROSS_TOOL == 'keil':
- src += [startup_path_prefix + '/f415/firmware/cmsis/cm4/device_support/startup/mdk/startup_at32f415.s']
+ src += [startup_path_prefix + '/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/mdk/startup_at32f415.s']
elif rtconfig.CROSS_TOOL == 'iar':
- src += [startup_path_prefix + '/f415/firmware/cmsis/cm4/device_support/startup/iar/startup_at32f415.s']
+ src += [startup_path_prefix + '/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/iar/startup_at32f415.s']
CPPDEFINES = ['AT32F415RCT7']
group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)
diff --git a/bsp/at32/at32f415-start/project.ewp b/bsp/at32/at32f415-start/project.ewp
index 24c951c0e7..5f5448291c 100644
--- a/bsp/at32/at32f415-start/project.ewp
+++ b/bsp/at32/at32f415-start/project.ewp
@@ -348,23 +348,23 @@
<option>
<name>CCIncludePath2</name>
<state />
+ <state>$PROJ_DIR$\..\libraries\AT32F415_Firmware_Library\cmsis\cm4\core_support</state>
<state>$PROJ_DIR$\..\..\..\components\finsh</state>
<state>$PROJ_DIR$\..\..\..\libcpu\arm\common</state>
<state>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4</state>
<state>$PROJ_DIR$\board\inc</state>
- <state>$PROJ_DIR$\..\libraries\f415\firmware\drivers\inc</state>
<state>$PROJ_DIR$\..\..\..\components\drivers\include</state>
<state>$PROJ_DIR$\..\..\..\components\libc\posix\io\stdio</state>
+ <state>$PROJ_DIR$\..\libraries\rt_drivers</state>
<state>$PROJ_DIR$\.</state>
<state>$PROJ_DIR$\applications</state>
- <state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F415_Firmware_Library\cmsis\cm4\device_support</state>
<state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension</state>
- <state>$PROJ_DIR$\..\libraries\f415\rt_drivers</state>
<state>$PROJ_DIR$\..\..\..\components\libc\compilers\common</state>
<state>$PROJ_DIR$\..\..\..\components\libc\posix\io\poll</state>
- <state>$PROJ_DIR$\..\libraries\f415\firmware\cmsis\cm4\core_support</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F415_Firmware_Library\drivers\inc</state>
<state>$PROJ_DIR$\..\..\..\include</state>
- <state>$PROJ_DIR$\..\libraries\f415\firmware\cmsis\cm4\device_support</state>
+ <state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
<state>$PROJ_DIR$\board</state>
</option>
<option>
@@ -1388,23 +1388,23 @@
<option>
<name>CCIncludePath2</name>
<state />
+ <state>$PROJ_DIR$\..\libraries\AT32F415_Firmware_Library\cmsis\cm4\core_support</state>
<state>$PROJ_DIR$\..\..\..\components\finsh</state>
<state>$PROJ_DIR$\..\..\..\libcpu\arm\common</state>
<state>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4</state>
<state>$PROJ_DIR$\board\inc</state>
- <state>$PROJ_DIR$\..\libraries\f415\firmware\drivers\inc</state>
<state>$PROJ_DIR$\..\..\..\components\drivers\include</state>
<state>$PROJ_DIR$\..\..\..\components\libc\posix\io\stdio</state>
+ <state>$PROJ_DIR$\..\libraries\rt_drivers</state>
<state>$PROJ_DIR$\.</state>
<state>$PROJ_DIR$\applications</state>
- <state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F415_Firmware_Library\cmsis\cm4\device_support</state>
<state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension</state>
- <state>$PROJ_DIR$\..\libraries\f415\rt_drivers</state>
<state>$PROJ_DIR$\..\..\..\components\libc\compilers\common</state>
<state>$PROJ_DIR$\..\..\..\components\libc\posix\io\poll</state>
- <state>$PROJ_DIR$\..\libraries\f415\firmware\cmsis\cm4\core_support</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F415_Firmware_Library\drivers\inc</state>
<state>$PROJ_DIR$\..\..\..\include</state>
- <state>$PROJ_DIR$\..\libraries\f415\firmware\cmsis\cm4\device_support</state>
+ <state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
<state>$PROJ_DIR$\board</state>
</option>
<option>
@@ -2089,37 +2089,37 @@
<group>
<name>Compiler</name>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\common\stdlib.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\common\time.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\common\time.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\common\stdlib.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_remove.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_open.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_read.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_lseek.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_mem.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscalls.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_close.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_read.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\environ.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_remove.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_write.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_mem.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_open.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_close.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_lseek.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\environ.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscalls.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_write.c</name>
</file>
</group>
<group>
@@ -2128,10 +2128,10 @@
<name>$PROJ_DIR$\..\..\..\libcpu\arm\common\div0.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\libcpu\arm\common\backtrace.c</name>
+ <name>$PROJ_DIR$\..\..\..\libcpu\arm\common\showmem.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\libcpu\arm\common\showmem.c</name>
+ <name>$PROJ_DIR$\..\..\..\libcpu\arm\common\backtrace.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4\context_iar.S</name>
@@ -2173,22 +2173,22 @@
<group>
<name>Drivers</name>
<file>
- <name>$PROJ_DIR$\board\src\at32_msp.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F415_Firmware_Library\cmsis\cm4\device_support\startup\iar\startup_at32f415.s</name>
</file>
<file>
- <name>$PROJ_DIR$\board\src\board.c</name>
+ <name>$PROJ_DIR$\board\src\at32_msp.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f415\firmware\cmsis\cm4\device_support\startup\iar\startup_at32f415.s</name>
+ <name>$PROJ_DIR$\board\src\board.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f415\rt_drivers\drv_gpio.c</name>
+ <name>$PROJ_DIR$\..\libraries\rt_drivers\drv_gpio.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f415\rt_drivers\drv_usart.c</name>
+ <name>$PROJ_DIR$\..\libraries\rt_drivers\drv_usart.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f415\rt_drivers\drv_common.c</name>
+ <name>$PROJ_DIR$\..\libraries\rt_drivers\drv_common.c</name>
</file>
</group>
<group>
@@ -2206,18 +2206,12 @@
<group>
<name>Kernel</name>
<file>
- <name>$PROJ_DIR$\..\..\..\src\irq.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\src\idle.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\object.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\src\timer.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\object.c</name>
- </file>
- <file>
<name>$PROJ_DIR$\..\..\..\src\thread.c</name>
</file>
<file>
@@ -2233,9 +2227,6 @@
<name>$PROJ_DIR$\..\..\..\src\ipc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\scheduler.c</name>
- </file>
- <file>
<name>$PROJ_DIR$\..\..\..\src\device.c</name>
</file>
<file>
@@ -2247,74 +2238,83 @@
<file>
<name>$PROJ_DIR$\..\..\..\src\mem.c</name>
</file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\src\scheduler.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\src\irq.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\src\idle.c</name>
+ </file>
</group>
<group>
<name>Libraries</name>
<file>
- <name>$PROJ_DIR$\..\libraries\f415\firmware\drivers\src\at32f415_wdt.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_wdt.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f415\firmware\drivers\src\at32f415_exint.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_exint.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f415\firmware\drivers\src\at32f415_dma.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_dma.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f415\firmware\drivers\src\at32f415_sdio.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_sdio.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f415\firmware\drivers\src\at32f415_adc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_adc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f415\firmware\drivers\src\at32f415_debug.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_debug.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f415\firmware\drivers\src\at32f415_tmr.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_tmr.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f415\firmware\drivers\src\at32f415_ertc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_ertc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f415\firmware\drivers\src\at32f415_wwdt.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_wwdt.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f415\firmware\drivers\src\at32f415_misc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_misc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f415\firmware\drivers\src\at32f415_crm.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_crm.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f415\firmware\drivers\src\at32f415_crc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_crc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f415\firmware\drivers\src\at32f415_usb.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_usb.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f415\firmware\drivers\src\at32f415_flash.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_flash.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f415\firmware\cmsis\cm4\device_support\system_at32f415.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F415_Firmware_Library\cmsis\cm4\device_support\system_at32f415.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f415\firmware\drivers\src\at32f415_usart.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_usart.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f415\firmware\drivers\src\at32f415_can.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_can.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f415\firmware\drivers\src\at32f415_spi.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_spi.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f415\firmware\drivers\src\at32f415_gpio.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_gpio.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f415\firmware\drivers\src\at32f415_cmp.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_cmp.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f415\firmware\drivers\src\at32f415_pwc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_pwc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f415\firmware\drivers\src\at32f415_i2c.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_i2c.c</name>
</file>
</group>
<group>
diff --git a/bsp/at32/at32f415-start/project.uvoptx b/bsp/at32/at32f415-start/project.uvoptx
index 102df865cb..61992f563c 100644
--- a/bsp/at32/at32f415-start/project.uvoptx
+++ b/bsp/at32/at32f415-start/project.uvoptx
@@ -175,835 +175,11 @@
</Target>
<Group>
- <GroupName>Applications</GroupName>
+ <GroupName>Source Group 1</GroupName>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
- <File>
- <GroupNumber>1</GroupNumber>
- <FileNumber>1</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>applications\main.c</PathWithFileName>
- <FilenameWithoutPath>main.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- </Group>
-
- <Group>
- <GroupName>Compiler</GroupName>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <cbSel>0</cbSel>
- <RteFlg>0</RteFlg>
- <File>
- <GroupNumber>2</GroupNumber>
- <FileNumber>2</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\components\libc\compilers\armlibc\syscall_mem.c</PathWithFileName>
- <FilenameWithoutPath>syscall_mem.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>2</GroupNumber>
- <FileNumber>3</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\components\libc\compilers\armlibc\syscalls.c</PathWithFileName>
- <FilenameWithoutPath>syscalls.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>2</GroupNumber>
- <FileNumber>4</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\components\libc\compilers\common\stdlib.c</PathWithFileName>
- <FilenameWithoutPath>stdlib.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>2</GroupNumber>
- <FileNumber>5</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\components\libc\compilers\common\time.c</PathWithFileName>
- <FilenameWithoutPath>time.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- </Group>
-
- <Group>
- <GroupName>CPU</GroupName>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <cbSel>0</cbSel>
- <RteFlg>0</RteFlg>
- <File>
- <GroupNumber>3</GroupNumber>
- <FileNumber>6</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\libcpu\arm\common\backtrace.c</PathWithFileName>
- <FilenameWithoutPath>backtrace.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>3</GroupNumber>
- <FileNumber>7</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\libcpu\arm\common\showmem.c</PathWithFileName>
- <FilenameWithoutPath>showmem.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>3</GroupNumber>
- <FileNumber>8</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\libcpu\arm\common\div0.c</PathWithFileName>
- <FilenameWithoutPath>div0.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>3</GroupNumber>
- <FileNumber>9</FileNumber>
- <FileType>2</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\libcpu\arm\cortex-m4\context_rvds.S</PathWithFileName>
- <FilenameWithoutPath>context_rvds.S</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>3</GroupNumber>
- <FileNumber>10</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\libcpu\arm\cortex-m4\cpuport.c</PathWithFileName>
- <FilenameWithoutPath>cpuport.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- </Group>
-
- <Group>
- <GroupName>DeviceDrivers</GroupName>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <cbSel>0</cbSel>
- <RteFlg>0</RteFlg>
- <File>
- <GroupNumber>4</GroupNumber>
- <FileNumber>11</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\components\drivers\ipc\waitqueue.c</PathWithFileName>
- <FilenameWithoutPath>waitqueue.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>4</GroupNumber>
- <FileNumber>12</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\components\drivers\ipc\ringblk_buf.c</PathWithFileName>
- <FilenameWithoutPath>ringblk_buf.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>4</GroupNumber>
- <FileNumber>13</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\components\drivers\ipc\dataqueue.c</PathWithFileName>
- <FilenameWithoutPath>dataqueue.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>4</GroupNumber>
- <FileNumber>14</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\components\drivers\ipc\workqueue.c</PathWithFileName>
- <FilenameWithoutPath>workqueue.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>4</GroupNumber>
- <FileNumber>15</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\components\drivers\ipc\ringbuffer.c</PathWithFileName>
- <FilenameWithoutPath>ringbuffer.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>4</GroupNumber>
- <FileNumber>16</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\components\drivers\ipc\pipe.c</PathWithFileName>
- <FilenameWithoutPath>pipe.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>4</GroupNumber>
- <FileNumber>17</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\components\drivers\ipc\completion.c</PathWithFileName>
- <FilenameWithoutPath>completion.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>4</GroupNumber>
- <FileNumber>18</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\components\drivers\misc\pin.c</PathWithFileName>
- <FilenameWithoutPath>pin.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>4</GroupNumber>
- <FileNumber>19</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\components\drivers\serial\serial.c</PathWithFileName>
- <FilenameWithoutPath>serial.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- </Group>
-
- <Group>
- <GroupName>Drivers</GroupName>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <cbSel>0</cbSel>
- <RteFlg>0</RteFlg>
- <File>
- <GroupNumber>5</GroupNumber>
- <FileNumber>20</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>board\src\at32_msp.c</PathWithFileName>
- <FilenameWithoutPath>at32_msp.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>5</GroupNumber>
- <FileNumber>21</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>board\src\board.c</PathWithFileName>
- <FilenameWithoutPath>board.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>5</GroupNumber>
- <FileNumber>22</FileNumber>
- <FileType>2</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\libraries\f415\firmware\cmsis\cm4\device_support\startup\mdk\startup_at32f415.s</PathWithFileName>
- <FilenameWithoutPath>startup_at32f415.s</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>5</GroupNumber>
- <FileNumber>23</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\libraries\f415\rt_drivers\drv_gpio.c</PathWithFileName>
- <FilenameWithoutPath>drv_gpio.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>5</GroupNumber>
- <FileNumber>24</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\libraries\f415\rt_drivers\drv_usart.c</PathWithFileName>
- <FilenameWithoutPath>drv_usart.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>5</GroupNumber>
- <FileNumber>25</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\libraries\f415\rt_drivers\drv_common.c</PathWithFileName>
- <FilenameWithoutPath>drv_common.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- </Group>
-
- <Group>
- <GroupName>Finsh</GroupName>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <cbSel>0</cbSel>
- <RteFlg>0</RteFlg>
- <File>
- <GroupNumber>6</GroupNumber>
- <FileNumber>26</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\components\finsh\shell.c</PathWithFileName>
- <FilenameWithoutPath>shell.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>6</GroupNumber>
- <FileNumber>27</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\components\finsh\msh.c</PathWithFileName>
- <FilenameWithoutPath>msh.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>6</GroupNumber>
- <FileNumber>28</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\components\finsh\cmd.c</PathWithFileName>
- <FilenameWithoutPath>cmd.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- </Group>
-
- <Group>
- <GroupName>Kernel</GroupName>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <cbSel>0</cbSel>
- <RteFlg>0</RteFlg>
- <File>
- <GroupNumber>7</GroupNumber>
- <FileNumber>29</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\src\kservice.c</PathWithFileName>
- <FilenameWithoutPath>kservice.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>7</GroupNumber>
- <FileNumber>30</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\src\components.c</PathWithFileName>
- <FilenameWithoutPath>components.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>7</GroupNumber>
- <FileNumber>31</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\src\scheduler.c</PathWithFileName>
- <FilenameWithoutPath>scheduler.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>7</GroupNumber>
- <FileNumber>32</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\src\irq.c</PathWithFileName>
- <FilenameWithoutPath>irq.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>7</GroupNumber>
- <FileNumber>33</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\src\mempool.c</PathWithFileName>
- <FilenameWithoutPath>mempool.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>7</GroupNumber>
- <FileNumber>34</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\src\idle.c</PathWithFileName>
- <FilenameWithoutPath>idle.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>7</GroupNumber>
- <FileNumber>35</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\src\mem.c</PathWithFileName>
- <FilenameWithoutPath>mem.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>7</GroupNumber>
- <FileNumber>36</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\src\thread.c</PathWithFileName>
- <FilenameWithoutPath>thread.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>7</GroupNumber>
- <FileNumber>37</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\src\timer.c</PathWithFileName>
- <FilenameWithoutPath>timer.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>7</GroupNumber>
- <FileNumber>38</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\src\clock.c</PathWithFileName>
- <FilenameWithoutPath>clock.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>7</GroupNumber>
- <FileNumber>39</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\src\object.c</PathWithFileName>
- <FilenameWithoutPath>object.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>7</GroupNumber>
- <FileNumber>40</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\src\ipc.c</PathWithFileName>
- <FilenameWithoutPath>ipc.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>7</GroupNumber>
- <FileNumber>41</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\src\memheap.c</PathWithFileName>
- <FilenameWithoutPath>memheap.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>7</GroupNumber>
- <FileNumber>42</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\..\..\src\device.c</PathWithFileName>
- <FilenameWithoutPath>device.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- </Group>
-
- <Group>
- <GroupName>Libraries</GroupName>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <cbSel>0</cbSel>
- <RteFlg>0</RteFlg>
- <File>
- <GroupNumber>8</GroupNumber>
- <FileNumber>43</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\libraries\f415\firmware\drivers\src\at32f415_wdt.c</PathWithFileName>
- <FilenameWithoutPath>at32f415_wdt.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>8</GroupNumber>
- <FileNumber>44</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\libraries\f415\firmware\drivers\src\at32f415_exint.c</PathWithFileName>
- <FilenameWithoutPath>at32f415_exint.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>8</GroupNumber>
- <FileNumber>45</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\libraries\f415\firmware\drivers\src\at32f415_dma.c</PathWithFileName>
- <FilenameWithoutPath>at32f415_dma.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>8</GroupNumber>
- <FileNumber>46</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\libraries\f415\firmware\drivers\src\at32f415_sdio.c</PathWithFileName>
- <FilenameWithoutPath>at32f415_sdio.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>8</GroupNumber>
- <FileNumber>47</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\libraries\f415\firmware\drivers\src\at32f415_adc.c</PathWithFileName>
- <FilenameWithoutPath>at32f415_adc.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>8</GroupNumber>
- <FileNumber>48</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\libraries\f415\firmware\drivers\src\at32f415_debug.c</PathWithFileName>
- <FilenameWithoutPath>at32f415_debug.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>8</GroupNumber>
- <FileNumber>49</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\libraries\f415\firmware\drivers\src\at32f415_tmr.c</PathWithFileName>
- <FilenameWithoutPath>at32f415_tmr.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>8</GroupNumber>
- <FileNumber>50</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\libraries\f415\firmware\drivers\src\at32f415_ertc.c</PathWithFileName>
- <FilenameWithoutPath>at32f415_ertc.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>8</GroupNumber>
- <FileNumber>51</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\libraries\f415\firmware\drivers\src\at32f415_wwdt.c</PathWithFileName>
- <FilenameWithoutPath>at32f415_wwdt.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>8</GroupNumber>
- <FileNumber>52</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\libraries\f415\firmware\drivers\src\at32f415_misc.c</PathWithFileName>
- <FilenameWithoutPath>at32f415_misc.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>8</GroupNumber>
- <FileNumber>53</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\libraries\f415\firmware\drivers\src\at32f415_crm.c</PathWithFileName>
- <FilenameWithoutPath>at32f415_crm.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>8</GroupNumber>
- <FileNumber>54</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\libraries\f415\firmware\drivers\src\at32f415_crc.c</PathWithFileName>
- <FilenameWithoutPath>at32f415_crc.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>8</GroupNumber>
- <FileNumber>55</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\libraries\f415\firmware\drivers\src\at32f415_usb.c</PathWithFileName>
- <FilenameWithoutPath>at32f415_usb.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>8</GroupNumber>
- <FileNumber>56</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\libraries\f415\firmware\drivers\src\at32f415_flash.c</PathWithFileName>
- <FilenameWithoutPath>at32f415_flash.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>8</GroupNumber>
- <FileNumber>57</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\libraries\f415\firmware\cmsis\cm4\device_support\system_at32f415.c</PathWithFileName>
- <FilenameWithoutPath>system_at32f415.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>8</GroupNumber>
- <FileNumber>58</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\libraries\f415\firmware\drivers\src\at32f415_usart.c</PathWithFileName>
- <FilenameWithoutPath>at32f415_usart.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>8</GroupNumber>
- <FileNumber>59</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\libraries\f415\firmware\drivers\src\at32f415_can.c</PathWithFileName>
- <FilenameWithoutPath>at32f415_can.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>8</GroupNumber>
- <FileNumber>60</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\libraries\f415\firmware\drivers\src\at32f415_spi.c</PathWithFileName>
- <FilenameWithoutPath>at32f415_spi.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>8</GroupNumber>
- <FileNumber>61</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\libraries\f415\firmware\drivers\src\at32f415_gpio.c</PathWithFileName>
- <FilenameWithoutPath>at32f415_gpio.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>8</GroupNumber>
- <FileNumber>62</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\libraries\f415\firmware\drivers\src\at32f415_cmp.c</PathWithFileName>
- <FilenameWithoutPath>at32f415_cmp.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>8</GroupNumber>
- <FileNumber>63</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\libraries\f415\firmware\drivers\src\at32f415_pwc.c</PathWithFileName>
- <FilenameWithoutPath>at32f415_pwc.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>8</GroupNumber>
- <FileNumber>64</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\libraries\f415\firmware\drivers\src\at32f415_i2c.c</PathWithFileName>
- <FilenameWithoutPath>at32f415_i2c.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
</Group>
</ProjectOpt>
diff --git a/bsp/at32/at32f415-start/project.uvproj b/bsp/at32/at32f415-start/project.uvproj
index b21bd51e40..495834c3fc 100644
--- a/bsp/at32/at32f415-start/project.uvproj
+++ b/bsp/at32/at32f415-start/project.uvproj
@@ -359,7 +359,7 @@
<MiscControls />
<Define>USE_STDPERIPH_DRIVER, __RTTHREAD__, AT32F415RCT7, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND</Define>
<Undefine />
- <IncludePath>applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;board\inc;..\libraries\f415\rt_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\f415\firmware\cmsis\cm4\device_support;..\libraries\f415\firmware\cmsis\cm4\core_support;..\libraries\f415\firmware\drivers\inc;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc</IncludePath>
+ <IncludePath>applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;board\inc;..\libraries\rt_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\AT32F415_Firmware_Library\cmsis\cm4\device_support;..\libraries\AT32F415_Firmware_Library\cmsis\cm4\core_support;..\libraries\AT32F415_Firmware_Library\drivers\inc;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc</IncludePath>
</VariousControls>
</Cads>
<Aads>
@@ -413,16 +413,16 @@
<GroupName>Compiler</GroupName>
<Files>
<File>
- <FileName>syscalls.c</FileName>
+ <FileName>syscall_mem.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\libc\compilers\armlibc\syscalls.c</FilePath>
+ <FilePath>..\..\..\components\libc\compilers\armlibc\syscall_mem.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>syscall_mem.c</FileName>
+ <FileName>syscalls.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\libc\compilers\armlibc\syscall_mem.c</FilePath>
+ <FilePath>..\..\..\components\libc\compilers\armlibc\syscalls.c</FilePath>
</File>
</Files>
<Files>
@@ -444,6 +444,13 @@
<GroupName>CPU</GroupName>
<Files>
<File>
+ <FileName>div0.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\libcpu\arm\common\div0.c</FilePath>
+ </File>
+ </Files>
+ <Files>
+ <File>
<FileName>backtrace.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\libcpu\arm\common\backtrace.c</FilePath>
@@ -458,9 +465,9 @@
</Files>
<Files>
<File>
- <FileName>div0.c</FileName>
+ <FileName>cpuport.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\libcpu\arm\common\div0.c</FilePath>
+ <FilePath>..\..\..\libcpu\arm\cortex-m4\cpuport.c</FilePath>
</File>
</Files>
<Files>
@@ -470,13 +477,6 @@
<FilePath>..\..\..\libcpu\arm\cortex-m4\context_rvds.S</FilePath>
</File>
</Files>
- <Files>
- <File>
- <FileName>cpuport.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\..\..\libcpu\arm\cortex-m4\cpuport.c</FilePath>
- </File>
- </Files>
</Group>
<Group>
<GroupName>DeviceDrivers</GroupName>
@@ -489,6 +489,13 @@
</Files>
<Files>
<File>
+ <FileName>ringbuffer.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\components\drivers\ipc\ringbuffer.c</FilePath>
+ </File>
+ </Files>
+ <Files>
+ <File>
<FileName>pipe.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\components\drivers\ipc\pipe.c</FilePath>
@@ -517,13 +524,6 @@
</Files>
<Files>
<File>
- <FileName>ringbuffer.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\ringbuffer.c</FilePath>
- </File>
- </Files>
- <Files>
- <File>
<FileName>dataqueue.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\components\drivers\ipc\dataqueue.c</FilePath>
@@ -548,6 +548,13 @@
<GroupName>Drivers</GroupName>
<Files>
<File>
+ <FileName>startup_at32f415.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\cmsis\cm4\device_support\startup\mdk\startup_at32f415.s</FilePath>
+ </File>
+ </Files>
+ <Files>
+ <File>
<FileName>at32_msp.c</FileName>
<FileType>1</FileType>
<FilePath>board\src\at32_msp.c</FilePath>
@@ -562,30 +569,23 @@
</Files>
<Files>
<File>
- <FileName>startup_at32f415.s</FileName>
- <FileType>2</FileType>
- <FilePath>..\libraries\f415\firmware\cmsis\cm4\device_support\startup\mdk\startup_at32f415.s</FilePath>
- </File>
- </Files>
- <Files>
- <File>
<FileName>drv_gpio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\rt_drivers\drv_gpio.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_gpio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>drv_usart.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\rt_drivers\drv_usart.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_usart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>drv_common.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\rt_drivers\drv_common.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_common.c</FilePath>
</File>
</Files>
</Group>
@@ -617,100 +617,100 @@
<GroupName>Kernel</GroupName>
<Files>
<File>
- <FileName>kservice.c</FileName>
+ <FileName>mem.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\kservice.c</FilePath>
+ <FilePath>..\..\..\src\mem.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>components.c</FileName>
+ <FileName>irq.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\components.c</FilePath>
+ <FilePath>..\..\..\src\irq.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>timer.c</FileName>
+ <FileName>clock.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\timer.c</FilePath>
+ <FilePath>..\..\..\src\clock.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>scheduler.c</FileName>
+ <FileName>timer.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\scheduler.c</FilePath>
+ <FilePath>..\..\..\src\timer.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>irq.c</FileName>
+ <FileName>idle.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\irq.c</FilePath>
+ <FilePath>..\..\..\src\idle.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>mempool.c</FileName>
+ <FileName>object.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\mempool.c</FilePath>
+ <FilePath>..\..\..\src\object.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>idle.c</FileName>
+ <FileName>thread.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\idle.c</FilePath>
+ <FilePath>..\..\..\src\thread.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>mem.c</FileName>
+ <FileName>memheap.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\mem.c</FilePath>
+ <FilePath>..\..\..\src\memheap.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>thread.c</FileName>
+ <FileName>kservice.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\thread.c</FilePath>
+ <FilePath>..\..\..\src\kservice.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>clock.c</FileName>
+ <FileName>components.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\clock.c</FilePath>
+ <FilePath>..\..\..\src\components.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>object.c</FileName>
+ <FileName>ipc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\object.c</FilePath>
+ <FilePath>..\..\..\src\ipc.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>ipc.c</FileName>
+ <FileName>scheduler.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\ipc.c</FilePath>
+ <FilePath>..\..\..\src\scheduler.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>memheap.c</FileName>
+ <FileName>device.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\memheap.c</FilePath>
+ <FilePath>..\..\..\src\device.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>device.c</FileName>
+ <FileName>mempool.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\device.c</FilePath>
+ <FilePath>..\..\..\src\mempool.c</FilePath>
</File>
</Files>
</Group>
@@ -720,154 +720,154 @@
<File>
<FileName>at32f415_wdt.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_wdt.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_wdt.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f415_exint.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_exint.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_exint.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f415_dma.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_dma.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_dma.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f415_sdio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_sdio.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_sdio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f415_adc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_adc.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_adc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f415_debug.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_debug.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_debug.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f415_tmr.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_tmr.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_tmr.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f415_ertc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_ertc.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_ertc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f415_wwdt.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_wwdt.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_wwdt.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f415_misc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_misc.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_misc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f415_crm.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_crm.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_crm.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f415_crc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_crc.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_crc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f415_usb.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_usb.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_usb.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f415_flash.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_flash.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_flash.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>system_at32f415.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\cmsis\cm4\device_support\system_at32f415.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\cmsis\cm4\device_support\system_at32f415.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f415_usart.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_usart.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_usart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f415_can.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_can.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_can.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f415_spi.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_spi.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_spi.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f415_gpio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_gpio.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_gpio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f415_cmp.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_cmp.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_cmp.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f415_pwc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_pwc.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_pwc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f415_i2c.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_i2c.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_i2c.c</FilePath>
</File>
</Files>
</Group>
diff --git a/bsp/at32/at32f415-start/project.uvprojx b/bsp/at32/at32f415-start/project.uvprojx
index 0f8d4b45c7..b1799d2d05 100644
--- a/bsp/at32/at32f415-start/project.uvprojx
+++ b/bsp/at32/at32f415-start/project.uvprojx
@@ -1,10 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd">
-
<SchemaVersion>2.1</SchemaVersion>
-
<Header>### uVision Project, (C) Keil Software</Header>
-
<Targets>
<Target>
<TargetName>rt-thread</TargetName>
@@ -18,28 +15,28 @@
<Vendor>ArteryTek</Vendor>
<PackID>ArteryTek.AT32F415_DFP.2.0.4</PackID>
<Cpu>IRAM(0x20000000,0x8000) IROM(0x08000000,0x40000) CPUTYPE("Cortex-M4") CLOCK(12000000) ELITTLE</Cpu>
- <FlashUtilSpec></FlashUtilSpec>
- <StartupFile></StartupFile>
+ <FlashUtilSpec />
+ <StartupFile />
<FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0AT32F415_256 -FS08000000 -FL040000 -FP0($$Device:-AT32F415RCT7$Flash\AT32F415_256.FLM))</FlashDriverDll>
<DeviceId>0</DeviceId>
<RegisterFile>$$Device:-AT32F415RCT7$Device\Include\at32f415.h</RegisterFile>
- <MemoryEnv></MemoryEnv>
- <Cmp></Cmp>
- <Asm></Asm>
- <Linker></Linker>
- <OHString></OHString>
- <InfinionOptionDll></InfinionOptionDll>
- <SLE66CMisc></SLE66CMisc>
- <SLE66AMisc></SLE66AMisc>
- <SLE66LinkerMisc></SLE66LinkerMisc>
+ <MemoryEnv />
+ <Cmp />
+ <Asm />
+ <Linker />
+ <OHString />
+ <InfinionOptionDll />
+ <SLE66CMisc />
+ <SLE66AMisc />
+ <SLE66LinkerMisc />
<SFDFile>$$Device:-AT32F415RCT7$SVD\AT32F415xx_v2.svd</SFDFile>
<bCustSvd>0</bCustSvd>
<UseEnv>0</UseEnv>
- <BinPath></BinPath>
- <IncludePath></IncludePath>
- <LibPath></LibPath>
- <RegisterFilePath></RegisterFilePath>
- <DBRegisterFilePath></DBRegisterFilePath>
+ <BinPath />
+ <IncludePath />
+ <LibPath />
+ <RegisterFilePath />
+ <DBRegisterFilePath />
<TargetStatus>
<Error>0</Error>
<ExitCodeStop>0</ExitCodeStop>
@@ -61,8 +58,8 @@
<BeforeCompile>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
- <UserProg1Name></UserProg1Name>
- <UserProg2Name></UserProg2Name>
+ <UserProg1Name />
+ <UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopU1X>0</nStopU1X>
@@ -71,8 +68,8 @@
<BeforeMake>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
- <UserProg1Name></UserProg1Name>
- <UserProg2Name></UserProg2Name>
+ <UserProg1Name />
+ <UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopB1X>0</nStopB1X>
@@ -82,14 +79,14 @@
<RunUserProg1>1</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name>fromelf --bin !L --output rtthread.bin</UserProg1Name>
- <UserProg2Name></UserProg2Name>
+ <UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopA1X>0</nStopA1X>
<nStopA2X>0</nStopA2X>
</AfterMake>
<SelectedForBatchBuild>0</SelectedForBatchBuild>
- <SVCSIdString></SVCSIdString>
+ <SVCSIdString />
</TargetCommonOption>
<CommonProperty>
<UseCPPCompiler>0</UseCPPCompiler>
@@ -103,8 +100,8 @@
<AssembleAssemblyFile>0</AssembleAssemblyFile>
<PublicsOnly>0</PublicsOnly>
<StopOnExitCode>3</StopOnExitCode>
- <CustomArgument></CustomArgument>
- <IncludeLibraryModules></IncludeLibraryModules>
+ <CustomArgument />
+ <IncludeLibraryModules />
<ComprImg>1</ComprImg>
</CommonProperty>
<DllOption>
@@ -137,11 +134,11 @@
</Flash1>
<bUseTDR>1</bUseTDR>
<Flash2>BIN\UL2CM3.DLL</Flash2>
- <Flash3></Flash3>
- <Flash4></Flash4>
- <pFcarmOut></pFcarmOut>
- <pFcarmGrp></pFcarmGrp>
- <pFcArmRoot></pFcArmRoot>
+ <Flash3 />
+ <Flash4 />
+ <pFcarmOut />
+ <pFcarmGrp />
+ <pFcArmRoot />
<FcArmLst>0</FcArmLst>
</Utilities>
<TargetArmAds>
@@ -174,7 +171,7 @@
<RvctClst>0</RvctClst>
<GenPPlst>0</GenPPlst>
<AdsCpuType>"Cortex-M4"</AdsCpuType>
- <RvctDeviceName></RvctDeviceName>
+ <RvctDeviceName />
<mOS>0</mOS>
<uocRom>0</uocRom>
<uocRam>0</uocRam>
@@ -308,7 +305,7 @@
<Size>0x0</Size>
</OCR_RVCT10>
</OnChipMemories>
- <RvctStartVector></RvctStartVector>
+ <RvctStartVector />
</ArmAdsMisc>
<Cads>
<interw>1</interw>
@@ -335,10 +332,10 @@
<v6WtE>0</v6WtE>
<v6Rtti>0</v6Rtti>
<VariousControls>
- <MiscControls></MiscControls>
+ <MiscControls />
<Define>USE_STDPERIPH_DRIVER, __RTTHREAD__, AT32F415RCT7, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND</Define>
- <Undefine></Undefine>
- <IncludePath>applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;board\inc;..\libraries\f415\rt_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\f415\firmware\cmsis\cm4\device_support;..\libraries\f415\firmware\cmsis\cm4\core_support;..\libraries\f415\firmware\drivers\inc;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc</IncludePath>
+ <Undefine />
+ <IncludePath>applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;board\inc;..\libraries\rt_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\AT32F415_Firmware_Library\cmsis\cm4\device_support;..\libraries\AT32F415_Firmware_Library\cmsis\cm4\core_support;..\libraries\AT32F415_Firmware_Library\drivers\inc;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc</IncludePath>
</VariousControls>
</Cads>
<Aads>
@@ -353,10 +350,10 @@
<useXO>0</useXO>
<ClangAsOpt>4</ClangAsOpt>
<VariousControls>
- <MiscControls></MiscControls>
- <Define></Define>
- <Undefine></Undefine>
- <IncludePath></IncludePath>
+ <MiscControls />
+ <Define />
+ <Undefine />
+ <IncludePath />
</VariousControls>
</Aads>
<LDads>
@@ -368,13 +365,13 @@
<useFile>0</useFile>
<TextAddressRange>0x08000000</TextAddressRange>
<DataAddressRange>0x20000000</DataAddressRange>
- <pXoBase></pXoBase>
+ <pXoBase />
<ScatterFile>.\board\linker_scripts\link.sct</ScatterFile>
- <IncludeLibs></IncludeLibs>
- <IncludeLibsPath></IncludeLibsPath>
- <Misc></Misc>
- <LinkerInputFile></LinkerInputFile>
- <DisabledWarnings></DisabledWarnings>
+ <IncludeLibs />
+ <IncludeLibsPath />
+ <Misc />
+ <LinkerInputFile />
+ <DisabledWarnings />
</LDads>
</TargetArmAds>
</TargetOption>
@@ -397,20 +394,26 @@
<FileType>1</FileType>
<FilePath>..\..\..\components\libc\compilers\armlibc\syscall_mem.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>syscalls.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\components\libc\compilers\armlibc\syscalls.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
- <FileName>stdlib.c</FileName>
+ <FileName>time.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\libc\compilers\common\stdlib.c</FilePath>
+ <FilePath>..\..\..\components\libc\compilers\common\time.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
- <FileName>time.c</FileName>
+ <FileName>stdlib.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\libc\compilers\common\time.c</FilePath>
+ <FilePath>..\..\..\components\libc\compilers\common\stdlib.c</FilePath>
</File>
</Files>
</Group>
@@ -418,25 +421,33 @@
<GroupName>CPU</GroupName>
<Files>
<File>
+ <FileName>div0.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\libcpu\arm\common\div0.c</FilePath>
+ </File>
+ </Files>
+ <Files>
+ <File>
<FileName>backtrace.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\libcpu\arm\common\backtrace.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>showmem.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\libcpu\arm\common\showmem.c</FilePath>
</File>
- <File>
- <FileName>div0.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\..\..\libcpu\arm\common\div0.c</FilePath>
- </File>
+ </Files>
+ <Files>
<File>
<FileName>context_rvds.S</FileName>
<FileType>2</FileType>
<FilePath>..\..\..\libcpu\arm\cortex-m4\context_rvds.S</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>cpuport.c</FileName>
<FileType>1</FileType>
@@ -448,45 +459,61 @@
<GroupName>DeviceDrivers</GroupName>
<Files>
<File>
- <FileName>waitqueue.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\waitqueue.c</FilePath>
- </File>
- <File>
- <FileName>ringblk_buf.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\ringblk_buf.c</FilePath>
- </File>
- <File>
<FileName>dataqueue.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\components\drivers\ipc\dataqueue.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>workqueue.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\components\drivers\ipc\workqueue.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>ringbuffer.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\components\drivers\ipc\ringbuffer.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>pipe.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\components\drivers\ipc\pipe.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>completion.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\components\drivers\ipc\completion.c</FilePath>
</File>
+ </Files>
+ <Files>
+ <File>
+ <FileName>waitqueue.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\components\drivers\ipc\waitqueue.c</FilePath>
+ </File>
+ </Files>
+ <Files>
+ <File>
+ <FileName>ringblk_buf.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\components\drivers\ipc\ringblk_buf.c</FilePath>
+ </File>
+ </Files>
+ <Files>
<File>
<FileName>pin.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\components\drivers\misc\pin.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>serial.c</FileName>
<FileType>1</FileType>
@@ -498,34 +525,44 @@
<GroupName>Drivers</GroupName>
<Files>
<File>
+ <FileName>startup_at32f415.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\cmsis\cm4\device_support\startup\mdk\startup_at32f415.s</FilePath>
+ </File>
+ </Files>
+ <Files>
+ <File>
<FileName>at32_msp.c</FileName>
<FileType>1</FileType>
<FilePath>board\src\at32_msp.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>board.c</FileName>
<FileType>1</FileType>
<FilePath>board\src\board.c</FilePath>
</File>
- <File>
- <FileName>startup_at32f415.s</FileName>
- <FileType>2</FileType>
- <FilePath>..\libraries\f415\firmware\cmsis\cm4\device_support\startup\mdk\startup_at32f415.s</FilePath>
- </File>
+ </Files>
+ <Files>
<File>
<FileName>drv_gpio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\rt_drivers\drv_gpio.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_gpio.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>drv_usart.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\rt_drivers\drv_usart.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_usart.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>drv_common.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\rt_drivers\drv_common.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_common.c</FilePath>
</File>
</Files>
</Group>
@@ -537,11 +574,15 @@
<FileType>1</FileType>
<FilePath>..\..\..\components\finsh\shell.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>msh.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\components\finsh\msh.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>cmd.c</FileName>
<FileType>1</FileType>
@@ -553,75 +594,101 @@
<GroupName>Kernel</GroupName>
<Files>
<File>
+ <FileName>object.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\src\object.c</FilePath>
+ </File>
+ </Files>
+ <Files>
+ <File>
+ <FileName>ipc.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\src\ipc.c</FilePath>
+ </File>
+ </Files>
+ <Files>
+ <File>
+ <FileName>memheap.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\src\memheap.c</FilePath>
+ </File>
+ </Files>
+ <Files>
+ <File>
+ <FileName>device.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\src\device.c</FilePath>
+ </File>
+ </Files>
+ <Files>
+ <File>
<FileName>kservice.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\src\kservice.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>components.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\src\components.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>scheduler.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\src\scheduler.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>irq.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\src\irq.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>mempool.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\src\mempool.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>idle.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\src\idle.c</FilePath>
</File>
+ </Files>
+ <Files>
+ <File>
+ <FileName>timer.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\src\timer.c</FilePath>
+ </File>
+ </Files>
+ <Files>
<File>
<FileName>mem.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\src\mem.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>thread.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\src\thread.c</FilePath>
</File>
- <File>
- <FileName>timer.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\..\..\src\timer.c</FilePath>
- </File>
+ </Files>
+ <Files>
<File>
<FileName>clock.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\src\clock.c</FilePath>
</File>
- <File>
- <FileName>object.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\..\..\src\object.c</FilePath>
- </File>
- <File>
- <FileName>ipc.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\..\..\src\ipc.c</FilePath>
- </File>
- <File>
- <FileName>memheap.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\..\..\src\memheap.c</FilePath>
- </File>
- <File>
- <FileName>device.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\..\..\src\device.c</FilePath>
- </File>
</Files>
</Group>
<Group>
@@ -630,138 +697,177 @@
<File>
<FileName>at32f415_wdt.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_wdt.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_wdt.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>at32f415_exint.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_exint.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_exint.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>at32f415_dma.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_dma.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_dma.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>at32f415_sdio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_sdio.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_sdio.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>at32f415_adc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_adc.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_adc.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>at32f415_debug.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_debug.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_debug.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>at32f415_tmr.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_tmr.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_tmr.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>at32f415_ertc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_ertc.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_ertc.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>at32f415_wwdt.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_wwdt.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_wwdt.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>at32f415_misc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_misc.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_misc.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>at32f415_crm.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_crm.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_crm.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>at32f415_crc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_crc.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_crc.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>at32f415_usb.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_usb.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_usb.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>at32f415_flash.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_flash.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_flash.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>system_at32f415.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\cmsis\cm4\device_support\system_at32f415.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\cmsis\cm4\device_support\system_at32f415.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>at32f415_usart.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_usart.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_usart.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>at32f415_can.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_can.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_can.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>at32f415_spi.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_spi.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_spi.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>at32f415_gpio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_gpio.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_gpio.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>at32f415_cmp.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_cmp.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_cmp.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>at32f415_pwc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_pwc.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_pwc.c</FilePath>
</File>
+ </Files>
+ <Files>
<File>
<FileName>at32f415_i2c.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f415\firmware\drivers\src\at32f415_i2c.c</FilePath>
+ <FilePath>..\libraries\AT32F415_Firmware_Library\drivers\src\at32f415_i2c.c</FilePath>
</File>
</Files>
</Group>
</Groups>
</Target>
</Targets>
-
<RTE>
- <apis/>
- <components/>
- <files/>
+ <apis />
+ <components />
+ <files />
</RTE>
-
<LayerInfo>
<Layers>
<Layer>
<LayName>&lt;Project Info&gt;</LayName>
- <LayDesc></LayDesc>
- <LayUrl></LayUrl>
- <LayKeys></LayKeys>
- <LayCat></LayCat>
- <LayLic></LayLic>
+ <LayDesc />
+ <LayUrl />
+ <LayKeys />
+ <LayCat />
+ <LayLic />
<LayTarg>0</LayTarg>
<LayPrjMark>1</LayPrjMark>
</Layer>
</Layers>
</LayerInfo>
-
</Project>
diff --git a/bsp/at32/at32f435-start/.config b/bsp/at32/at32f435-start/.config
index 832675b426..df2ce53407 100644
--- a/bsp/at32/at32f435-start/.config
+++ b/bsp/at32/at32f435-start/.config
@@ -64,9 +64,8 @@ CONFIG_RT_USING_SMALL_MEM=y
CONFIG_RT_USING_MEMHEAP=y
CONFIG_RT_MEMHEAP_FAST_MODE=y
# CONFIG_RT_MEMHEAP_BSET_MODE is not set
-# CONFIG_RT_USING_SMALL_MEM_AS_HEAP is not set
-CONFIG_RT_USING_MEMHEAP_AS_HEAP=y
-CONFIG_RT_USING_MEMHEAP_AUTO_BINDING=y
+CONFIG_RT_USING_SMALL_MEM_AS_HEAP=y
+# CONFIG_RT_USING_MEMHEAP_AS_HEAP is not set
# CONFIG_RT_USING_SLAB_AS_HEAP is not set
# CONFIG_RT_USING_USERHEAP is not set
# CONFIG_RT_USING_NOHEAP is not set
@@ -421,8 +420,8 @@ CONFIG_BSP_USING_GPIO=y
# CONFIG_BSP_USING_RTC is not set
CONFIG_BSP_USING_UART=y
CONFIG_BSP_USING_UART1=y
-CONFIG_BSP_USING_UART2=y
-CONFIG_BSP_USING_UART3=y
+# CONFIG_BSP_USING_UART2 is not set
+# CONFIG_BSP_USING_UART3 is not set
# CONFIG_BSP_USING_PWM is not set
# CONFIG_BSP_USING_HWTIMER is not set
# CONFIG_BSP_USING_SPI is not set
diff --git a/bsp/at32/at32f435-start/SConstruct b/bsp/at32/at32f435-start/SConstruct
index e05107494c..3cc2879e44 100644
--- a/bsp/at32/at32f435-start/SConstruct
+++ b/bsp/at32/at32f435-start/SConstruct
@@ -46,11 +46,14 @@ Export('SDK_LIB')
# prepare building environment
objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
-at32_library = 'f435_437'
+at32_library = 'AT32F435_437_Firmware_Library'
rtconfig.BSP_LIBRARY_TYPE = at32_library
# include libraries
objs.extend(SConscript(os.path.join(libraries_path_prefix, at32_library, 'SConscript')))
+# include drivers
+objs.extend(SConscript(os.path.join(libraries_path_prefix, 'rt_drivers', 'SConscript')))
+
# make a building
DoBuilding(TARGET, objs)
diff --git a/bsp/at32/at32f435-start/applications/main.c b/bsp/at32/at32f435-start/applications/main.c
index 5f04827d0d..75d464a465 100644
--- a/bsp/at32/at32f435-start/applications/main.c
+++ b/bsp/at32/at32f435-start/applications/main.c
@@ -5,12 +5,12 @@
*
* Change Logs:
* Date Author Notes
- * 2022-03-28 shelton first version
+ * 2022-05-16 shelton first version
*/
#include <rtthread.h>
#include <rtdevice.h>
-#include "board.h"
+#include "drv_common.h"
#include "drv_gpio.h"
/* defined the led2 pin: pd13 */
diff --git a/bsp/at32/at32f435-start/board/SConscript b/bsp/at32/at32f435-start/board/SConscript
index 20471cdd2d..8bdc208807 100644
--- a/bsp/at32/at32f435-start/board/SConscript
+++ b/bsp/at32/at32f435-start/board/SConscript
@@ -18,11 +18,11 @@ path += [cwd + '/inc']
startup_path_prefix = SDK_LIB
if rtconfig.PLATFORM == 'gcc':
- src += [startup_path_prefix + '/f435_437/firmware/cmsis/cm4/device_support/startup/gcc/startup_at32f435_437.s']
+ src += [startup_path_prefix + '/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/gcc/startup_at32f435_437.s']
elif rtconfig.PLATFORM in ['armcc', 'armclang']:
- src += [startup_path_prefix + '/f435_437/firmware/cmsis/cm4/device_support/startup/mdk/startup_at32f435_437.s']
+ src += [startup_path_prefix + '/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/mdk/startup_at32f435_437.s']
elif rtconfig.CROSS_TOOL == 'iar':
- src += [startup_path_prefix + '/f435_437/firmware/cmsis/cm4/device_support/startup/iar/startup_at32f435_437.s']
+ src += [startup_path_prefix + '/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/iar/startup_at32f435_437.s']
CPPDEFINES = ['AT32F435ZMT7']
group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)
diff --git a/bsp/at32/at32f435-start/project.ewp b/bsp/at32/at32f435-start/project.ewp
index e13c53af17..ea0f5fd743 100644
--- a/bsp/at32/at32f435-start/project.ewp
+++ b/bsp/at32/at32f435-start/project.ewp
@@ -348,20 +348,20 @@
<option>
<name>CCIncludePath2</name>
<state />
- <state>$PROJ_DIR$\..\libraries\f435_437\rt_drivers</state>
- <state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
<state>$PROJ_DIR$\..\..\..\components\finsh</state>
<state>$PROJ_DIR$\..\..\..\libcpu\arm\common</state>
<state>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\cmsis\cm4\device_support</state>
<state>$PROJ_DIR$\board\inc</state>
<state>$PROJ_DIR$\..\..\..\components\drivers\include</state>
- <state>$PROJ_DIR$\..\libraries\f435_437\firmware\cmsis\cm4\device_support</state>
- <state>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\inc</state>
+ <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\stdio</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\inc</state>
+ <state>$PROJ_DIR$\..\libraries\rt_drivers</state>
<state>$PROJ_DIR$\.</state>
<state>$PROJ_DIR$\applications</state>
- <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\stdio</state>
+ <state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
<state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension</state>
- <state>$PROJ_DIR$\..\libraries\f435_437\firmware\cmsis\cm4\core_support</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\cmsis\cm4\core_support</state>
<state>$PROJ_DIR$\..\..\..\components\libc\compilers\common</state>
<state>$PROJ_DIR$\..\..\..\components\libc\posix\io\poll</state>
<state>$PROJ_DIR$\..\..\..\include</state>
@@ -1388,20 +1388,20 @@
<option>
<name>CCIncludePath2</name>
<state />
- <state>$PROJ_DIR$\..\libraries\f435_437\rt_drivers</state>
- <state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
<state>$PROJ_DIR$\..\..\..\components\finsh</state>
<state>$PROJ_DIR$\..\..\..\libcpu\arm\common</state>
<state>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\cmsis\cm4\device_support</state>
<state>$PROJ_DIR$\board\inc</state>
<state>$PROJ_DIR$\..\..\..\components\drivers\include</state>
- <state>$PROJ_DIR$\..\libraries\f435_437\firmware\cmsis\cm4\device_support</state>
- <state>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\inc</state>
+ <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\stdio</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\inc</state>
+ <state>$PROJ_DIR$\..\libraries\rt_drivers</state>
<state>$PROJ_DIR$\.</state>
<state>$PROJ_DIR$\applications</state>
- <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\stdio</state>
+ <state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
<state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension</state>
- <state>$PROJ_DIR$\..\libraries\f435_437\firmware\cmsis\cm4\core_support</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\cmsis\cm4\core_support</state>
<state>$PROJ_DIR$\..\..\..\components\libc\compilers\common</state>
<state>$PROJ_DIR$\..\..\..\components\libc\posix\io\poll</state>
<state>$PROJ_DIR$\..\..\..\include</state>
@@ -2089,49 +2089,49 @@
<group>
<name>Compiler</name>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\common\time.c</name>
- </file>
- <file>
<name>$PROJ_DIR$\..\..\..\components\libc\compilers\common\stdlib.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_write.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\common\time.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_close.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_open.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\environ.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_lseek.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_remove.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_open.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscalls.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_lseek.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_mem.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscalls.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_write.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_close.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_read.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_mem.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\environ.c</name>
</file>
</group>
<group>
<name>CPU</name>
<file>
- <name>$PROJ_DIR$\..\..\..\libcpu\arm\common\showmem.c</name>
+ <name>$PROJ_DIR$\..\..\..\libcpu\arm\common\backtrace.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\libcpu\arm\common\div0.c</name>
+ <name>$PROJ_DIR$\..\..\..\libcpu\arm\common\showmem.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\libcpu\arm\common\backtrace.c</name>
+ <name>$PROJ_DIR$\..\..\..\libcpu\arm\common\div0.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4\context_iar.S</name>
@@ -2143,25 +2143,25 @@
<group>
<name>DeviceDrivers</name>
<file>
- <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\completion.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\workqueue.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\ringblk_buf.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\ringbuffer.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\workqueue.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\pipe.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\dataqueue.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\completion.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\ringbuffer.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\waitqueue.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\pipe.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\ringblk_buf.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\waitqueue.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\dataqueue.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\components\drivers\misc\pin.c</name>
@@ -2173,22 +2173,22 @@
<group>
<name>Drivers</name>
<file>
- <name>$PROJ_DIR$\board\src\at32_msp.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\cmsis\cm4\device_support\startup\iar\startup_at32f435_437.s</name>
</file>
<file>
- <name>$PROJ_DIR$\board\src\board.c</name>
+ <name>$PROJ_DIR$\board\src\at32_msp.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\cmsis\cm4\device_support\startup\iar\startup_at32f435_437.s</name>
+ <name>$PROJ_DIR$\board\src\board.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\rt_drivers\drv_gpio.c</name>
+ <name>$PROJ_DIR$\..\libraries\rt_drivers\drv_gpio.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\rt_drivers\drv_usart.c</name>
+ <name>$PROJ_DIR$\..\libraries\rt_drivers\drv_usart.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\rt_drivers\drv_common.c</name>
+ <name>$PROJ_DIR$\..\libraries\rt_drivers\drv_common.c</name>
</file>
</group>
<group>
@@ -2206,136 +2206,136 @@
<group>
<name>Kernel</name>
<file>
- <name>$PROJ_DIR$\..\..\..\src\mempool.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\src\idle.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\device.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\mem.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\mempool.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\timer.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\components.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\thread.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\mem.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\clock.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\irq.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\kservice.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\idle.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\src\object.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\ipc.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\timer.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\src\memheap.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\device.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\clock.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\components.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\kservice.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\src\thread.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\src\scheduler.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\irq.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\ipc.c</name>
</file>
</group>
<group>
<name>Libraries</name>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_gpio.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_gpio.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_exint.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_exint.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_i2c.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_i2c.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\cmsis\cm4\device_support\system_at32f435_437.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\cmsis\cm4\device_support\system_at32f435_437.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_acc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_acc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_dac.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_dac.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_qspi.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_qspi.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_crc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_crc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_dma.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_dma.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_can.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_can.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_ertc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_ertc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_usb.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_usb.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_spi.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_spi.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_pwc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_pwc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_tmr.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_tmr.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_edma.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_edma.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_emac.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_emac.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_xmc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_xmc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_debug.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_debug.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_dvp.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_dvp.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_misc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_misc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_usart.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_usart.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_wdt.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_wdt.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_flash.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_flash.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_adc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_adc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_wwdt.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_wwdt.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_scfg.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_scfg.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_sdio.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_sdio.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_crm.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_crm.c</name>
</file>
</group>
<group>
diff --git a/bsp/at32/at32f435-start/project.uvproj b/bsp/at32/at32f435-start/project.uvproj
index 383bbd98ec..d9139f309f 100644
--- a/bsp/at32/at32f435-start/project.uvproj
+++ b/bsp/at32/at32f435-start/project.uvproj
@@ -359,7 +359,7 @@
<MiscControls />
<Define>USE_STDPERIPH_DRIVER, AT32F435ZMT7, __RTTHREAD__, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND</Define>
<Undefine />
- <IncludePath>applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;board\inc;..\libraries\f435_437\rt_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\f435_437\firmware\cmsis\cm4\device_support;..\libraries\f435_437\firmware\cmsis\cm4\core_support;..\libraries\f435_437\firmware\drivers\inc;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc</IncludePath>
+ <IncludePath>applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;board\inc;..\libraries\rt_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\AT32F435_437_Firmware_Library\cmsis\cm4\device_support;..\libraries\AT32F435_437_Firmware_Library\cmsis\cm4\core_support;..\libraries\AT32F435_437_Firmware_Library\drivers\inc;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc</IncludePath>
</VariousControls>
</Cads>
<Aads>
@@ -444,23 +444,23 @@
<GroupName>CPU</GroupName>
<Files>
<File>
- <FileName>showmem.c</FileName>
+ <FileName>div0.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\libcpu\arm\common\showmem.c</FilePath>
+ <FilePath>..\..\..\libcpu\arm\common\div0.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>div0.c</FileName>
+ <FileName>backtrace.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\libcpu\arm\common\div0.c</FilePath>
+ <FilePath>..\..\..\libcpu\arm\common\backtrace.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>backtrace.c</FileName>
+ <FileName>showmem.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\libcpu\arm\common\backtrace.c</FilePath>
+ <FilePath>..\..\..\libcpu\arm\common\showmem.c</FilePath>
</File>
</Files>
<Files>
@@ -482,51 +482,51 @@
<GroupName>DeviceDrivers</GroupName>
<Files>
<File>
- <FileName>pipe.c</FileName>
+ <FileName>dataqueue.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\pipe.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\dataqueue.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>completion.c</FileName>
+ <FileName>workqueue.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\completion.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\workqueue.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>waitqueue.c</FileName>
+ <FileName>ringbuffer.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\waitqueue.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\ringbuffer.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>ringblk_buf.c</FileName>
+ <FileName>pipe.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\ringblk_buf.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\pipe.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>dataqueue.c</FileName>
+ <FileName>completion.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\dataqueue.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\completion.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>workqueue.c</FileName>
+ <FileName>waitqueue.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\workqueue.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\waitqueue.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>ringbuffer.c</FileName>
+ <FileName>ringblk_buf.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\ringbuffer.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\ringblk_buf.c</FilePath>
</File>
</Files>
<Files>
@@ -550,7 +550,7 @@
<File>
<FileName>startup_at32f435_437.s</FileName>
<FileType>2</FileType>
- <FilePath>..\libraries\f435_437\firmware\cmsis\cm4\device_support\startup\mdk\startup_at32f435_437.s</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\cmsis\cm4\device_support\startup\mdk\startup_at32f435_437.s</FilePath>
</File>
</Files>
<Files>
@@ -571,21 +571,21 @@
<File>
<FileName>drv_gpio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\rt_drivers\drv_gpio.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_gpio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>drv_usart.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\rt_drivers\drv_usart.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_usart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>drv_common.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\rt_drivers\drv_common.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_common.c</FilePath>
</File>
</Files>
</Group>
@@ -638,13 +638,6 @@
</Files>
<Files>
<File>
- <FileName>timer.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\..\..\src\timer.c</FilePath>
- </File>
- </Files>
- <Files>
- <File>
<FileName>device.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\src\device.c</FilePath>
@@ -694,6 +687,13 @@
</Files>
<Files>
<File>
+ <FileName>timer.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\src\timer.c</FilePath>
+ </File>
+ </Files>
+ <Files>
+ <File>
<FileName>mem.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\src\mem.c</FilePath>
@@ -720,203 +720,203 @@
<File>
<FileName>at32f435_437_gpio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_gpio.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_gpio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_exint.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_exint.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_exint.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_i2c.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_i2c.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_i2c.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>system_at32f435_437.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\cmsis\cm4\device_support\system_at32f435_437.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\cmsis\cm4\device_support\system_at32f435_437.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_acc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_acc.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_acc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_dac.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_dac.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_dac.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_qspi.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_qspi.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_qspi.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_crc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_crc.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_crc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_dma.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_dma.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_dma.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_can.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_can.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_can.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_ertc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_ertc.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_ertc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_usb.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_usb.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_usb.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_spi.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_spi.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_spi.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_pwc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_pwc.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_pwc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_tmr.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_tmr.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_tmr.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_edma.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_edma.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_edma.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_emac.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_emac.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_emac.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_xmc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_xmc.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_xmc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_debug.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_debug.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_debug.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_dvp.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_dvp.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_dvp.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_misc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_misc.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_misc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_usart.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_usart.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_usart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_wdt.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_wdt.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_wdt.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_flash.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_flash.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_flash.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_adc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_adc.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_adc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_wwdt.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_wwdt.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_wwdt.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_scfg.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_scfg.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_scfg.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_sdio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_sdio.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_sdio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_crm.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_crm.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_crm.c</FilePath>
</File>
</Files>
</Group>
diff --git a/bsp/at32/at32f435-start/project.uvprojx b/bsp/at32/at32f435-start/project.uvprojx
index cf1377930f..9f1c555c66 100644
--- a/bsp/at32/at32f435-start/project.uvprojx
+++ b/bsp/at32/at32f435-start/project.uvprojx
@@ -335,7 +335,7 @@
<MiscControls />
<Define>USE_STDPERIPH_DRIVER, AT32F435ZMT7, __RTTHREAD__, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND</Define>
<Undefine />
- <IncludePath>applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;board\inc;..\libraries\f435_437\rt_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\f435_437\firmware\cmsis\cm4\device_support;..\libraries\f435_437\firmware\cmsis\cm4\core_support;..\libraries\f435_437\firmware\drivers\inc;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc</IncludePath>
+ <IncludePath>applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;board\inc;..\libraries\rt_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\AT32F435_437_Firmware_Library\cmsis\cm4\device_support;..\libraries\AT32F435_437_Firmware_Library\cmsis\cm4\core_support;..\libraries\AT32F435_437_Firmware_Library\drivers\inc;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc</IncludePath>
</VariousControls>
</Cads>
<Aads>
@@ -459,13 +459,6 @@
<GroupName>DeviceDrivers</GroupName>
<Files>
<File>
- <FileName>completion.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\completion.c</FilePath>
- </File>
- </Files>
- <Files>
- <File>
<FileName>waitqueue.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\components\drivers\ipc\waitqueue.c</FilePath>
@@ -508,6 +501,13 @@
</Files>
<Files>
<File>
+ <FileName>completion.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\components\drivers\ipc\completion.c</FilePath>
+ </File>
+ </Files>
+ <Files>
+ <File>
<FileName>pin.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\components\drivers\misc\pin.c</FilePath>
@@ -527,7 +527,7 @@
<File>
<FileName>startup_at32f435_437.s</FileName>
<FileType>2</FileType>
- <FilePath>..\libraries\f435_437\firmware\cmsis\cm4\device_support\startup\mdk\startup_at32f435_437.s</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\cmsis\cm4\device_support\startup\mdk\startup_at32f435_437.s</FilePath>
</File>
</Files>
<Files>
@@ -548,21 +548,21 @@
<File>
<FileName>drv_gpio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\rt_drivers\drv_gpio.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_gpio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>drv_usart.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\rt_drivers\drv_usart.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_usart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>drv_common.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\rt_drivers\drv_common.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_common.c</FilePath>
</File>
</Files>
</Group>
@@ -594,58 +594,58 @@
<GroupName>Kernel</GroupName>
<Files>
<File>
- <FileName>mem.c</FileName>
+ <FileName>device.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\mem.c</FilePath>
+ <FilePath>..\..\..\src\device.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>scheduler.c</FileName>
+ <FileName>mempool.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\scheduler.c</FilePath>
+ <FilePath>..\..\..\src\mempool.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>irq.c</FileName>
+ <FileName>components.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\irq.c</FilePath>
+ <FilePath>..\..\..\src\components.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>idle.c</FileName>
+ <FileName>mem.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\idle.c</FilePath>
+ <FilePath>..\..\..\src\mem.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>thread.c</FileName>
+ <FileName>scheduler.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\thread.c</FilePath>
+ <FilePath>..\..\..\src\scheduler.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>memheap.c</FileName>
+ <FileName>irq.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\memheap.c</FilePath>
+ <FilePath>..\..\..\src\irq.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>clock.c</FileName>
+ <FileName>timer.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\clock.c</FilePath>
+ <FilePath>..\..\..\src\timer.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>kservice.c</FileName>
+ <FileName>idle.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\kservice.c</FilePath>
+ <FilePath>..\..\..\src\idle.c</FilePath>
</File>
</Files>
<Files>
@@ -657,37 +657,37 @@
</Files>
<Files>
<File>
- <FileName>ipc.c</FileName>
+ <FileName>thread.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\ipc.c</FilePath>
+ <FilePath>..\..\..\src\thread.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>device.c</FileName>
+ <FileName>memheap.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\device.c</FilePath>
+ <FilePath>..\..\..\src\memheap.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>mempool.c</FileName>
+ <FileName>clock.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\mempool.c</FilePath>
+ <FilePath>..\..\..\src\clock.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>timer.c</FileName>
+ <FileName>kservice.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\timer.c</FilePath>
+ <FilePath>..\..\..\src\kservice.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>components.c</FileName>
+ <FileName>ipc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\components.c</FilePath>
+ <FilePath>..\..\..\src\ipc.c</FilePath>
</File>
</Files>
</Group>
@@ -697,203 +697,203 @@
<File>
<FileName>at32f435_437_gpio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_gpio.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_gpio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_exint.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_exint.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_exint.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_i2c.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_i2c.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_i2c.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>system_at32f435_437.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\cmsis\cm4\device_support\system_at32f435_437.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\cmsis\cm4\device_support\system_at32f435_437.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_acc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_acc.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_acc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_dac.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_dac.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_dac.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_qspi.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_qspi.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_qspi.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_crc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_crc.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_crc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_dma.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_dma.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_dma.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_can.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_can.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_can.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_ertc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_ertc.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_ertc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_usb.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_usb.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_usb.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_spi.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_spi.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_spi.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_pwc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_pwc.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_pwc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_tmr.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_tmr.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_tmr.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_edma.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_edma.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_edma.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_emac.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_emac.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_emac.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_xmc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_xmc.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_xmc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_debug.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_debug.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_debug.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_dvp.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_dvp.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_dvp.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_misc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_misc.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_misc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_usart.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_usart.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_usart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_wdt.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_wdt.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_wdt.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_flash.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_flash.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_flash.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_adc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_adc.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_adc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_wwdt.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_wwdt.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_wwdt.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_scfg.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_scfg.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_scfg.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_sdio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_sdio.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_sdio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_crm.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_crm.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_crm.c</FilePath>
</File>
</Files>
</Group>
diff --git a/bsp/at32/at32f435-start/rtconfig.h b/bsp/at32/at32f435-start/rtconfig.h
index f750a9b026..581d959ba0 100644
--- a/bsp/at32/at32f435-start/rtconfig.h
+++ b/bsp/at32/at32f435-start/rtconfig.h
@@ -40,8 +40,7 @@
#define RT_USING_SMALL_MEM
#define RT_USING_MEMHEAP
#define RT_MEMHEAP_FAST_MODE
-#define RT_USING_MEMHEAP_AS_HEAP
-#define RT_USING_MEMHEAP_AUTO_BINDING
+#define RT_USING_SMALL_MEM_AS_HEAP
#define RT_USING_HEAP
/* Kernel Device Object */
@@ -175,7 +174,5 @@
#define BSP_USING_GPIO
#define BSP_USING_UART
#define BSP_USING_UART1
-#define BSP_USING_UART2
-#define BSP_USING_UART3
#endif
diff --git a/bsp/at32/at32f437-start/.config b/bsp/at32/at32f437-start/.config
index 03966610e2..b01fa641fb 100644
--- a/bsp/at32/at32f437-start/.config
+++ b/bsp/at32/at32f437-start/.config
@@ -64,9 +64,8 @@ CONFIG_RT_USING_SMALL_MEM=y
CONFIG_RT_USING_MEMHEAP=y
CONFIG_RT_MEMHEAP_FAST_MODE=y
# CONFIG_RT_MEMHEAP_BSET_MODE is not set
-# CONFIG_RT_USING_SMALL_MEM_AS_HEAP is not set
-CONFIG_RT_USING_MEMHEAP_AS_HEAP=y
-CONFIG_RT_USING_MEMHEAP_AUTO_BINDING=y
+CONFIG_RT_USING_SMALL_MEM_AS_HEAP=y
+# CONFIG_RT_USING_MEMHEAP_AS_HEAP is not set
# CONFIG_RT_USING_SLAB_AS_HEAP is not set
# CONFIG_RT_USING_USERHEAP is not set
# CONFIG_RT_USING_NOHEAP is not set
@@ -127,14 +126,6 @@ CONFIG_FINSH_ARG_MAX=10
# Device virtual file system
#
# CONFIG_RT_USING_DFS is not set
-# CONFIG_RT_DFS_ELM_USE_LFN_0 is not set
-# CONFIG_RT_DFS_ELM_USE_LFN_1 is not set
-# CONFIG_RT_DFS_ELM_USE_LFN_2 is not set
-# CONFIG_RT_DFS_ELM_USE_LFN_3 is not set
-# CONFIG_RT_DFS_ELM_LFN_UNICODE_0 is not set
-# CONFIG_RT_DFS_ELM_LFN_UNICODE_1 is not set
-# CONFIG_RT_DFS_ELM_LFN_UNICODE_2 is not set
-# CONFIG_RT_DFS_ELM_LFN_UNICODE_3 is not set
#
# Device Drivers
@@ -209,9 +200,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_RT_USING_SAL is not set
# CONFIG_RT_USING_NETDEV is not set
# CONFIG_RT_USING_LWIP is not set
-# CONFIG_RT_USING_LWIP141 is not set
-# CONFIG_RT_USING_LWIP203 is not set
-# CONFIG_RT_USING_LWIP212 is not set
# CONFIG_RT_USING_AT is not set
#
@@ -429,16 +417,12 @@ CONFIG_BSP_USING_SERIAL=y
CONFIG_BSP_USING_GPIO=y
# CONFIG_BSP_USING_ON_CHIP_FLASH is not set
# CONFIG_BSP_USING_EMAC is not set
-# CONFIG_PHY_USING_DM9162 is not set
-# CONFIG_PHY_USING_DP83848 is not set
# CONFIG_BSP_USING_QSPI is not set
# CONFIG_BSP_USING_RTC is not set
-# CONFIG_BSP_RTC_USING_LEXT is not set
-# CONFIG_BSP_RTC_USING_LICK is not set
CONFIG_BSP_USING_UART=y
CONFIG_BSP_USING_UART1=y
-CONFIG_BSP_USING_UART2=y
-CONFIG_BSP_USING_UART3=y
+# CONFIG_BSP_USING_UART2 is not set
+# CONFIG_BSP_USING_UART3 is not set
# CONFIG_BSP_USING_PWM is not set
# CONFIG_BSP_USING_HWTIMER is not set
# CONFIG_BSP_USING_SPI is not set
diff --git a/bsp/at32/at32f437-start/SConstruct b/bsp/at32/at32f437-start/SConstruct
index e05107494c..3cc2879e44 100644
--- a/bsp/at32/at32f437-start/SConstruct
+++ b/bsp/at32/at32f437-start/SConstruct
@@ -46,11 +46,14 @@ Export('SDK_LIB')
# prepare building environment
objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
-at32_library = 'f435_437'
+at32_library = 'AT32F435_437_Firmware_Library'
rtconfig.BSP_LIBRARY_TYPE = at32_library
# include libraries
objs.extend(SConscript(os.path.join(libraries_path_prefix, at32_library, 'SConscript')))
+# include drivers
+objs.extend(SConscript(os.path.join(libraries_path_prefix, 'rt_drivers', 'SConscript')))
+
# make a building
DoBuilding(TARGET, objs)
diff --git a/bsp/at32/at32f437-start/applications/main.c b/bsp/at32/at32f437-start/applications/main.c
index 5f04827d0d..75d464a465 100644
--- a/bsp/at32/at32f437-start/applications/main.c
+++ b/bsp/at32/at32f437-start/applications/main.c
@@ -5,12 +5,12 @@
*
* Change Logs:
* Date Author Notes
- * 2022-03-28 shelton first version
+ * 2022-05-16 shelton first version
*/
#include <rtthread.h>
#include <rtdevice.h>
-#include "board.h"
+#include "drv_common.h"
#include "drv_gpio.h"
/* defined the led2 pin: pd13 */
diff --git a/bsp/at32/at32f437-start/board/SConscript b/bsp/at32/at32f437-start/board/SConscript
index f2bd1c028d..dd39194f5f 100644
--- a/bsp/at32/at32f437-start/board/SConscript
+++ b/bsp/at32/at32f437-start/board/SConscript
@@ -18,11 +18,11 @@ path += [cwd + '/inc']
startup_path_prefix = SDK_LIB
if rtconfig.PLATFORM == 'gcc':
- src += [startup_path_prefix + '/f435_437/firmware/cmsis/cm4/device_support/startup/gcc/startup_at32f435_437.s']
+ src += [startup_path_prefix + '/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/gcc/startup_at32f435_437.s']
elif rtconfig.PLATFORM in ['armcc', 'armclang']:
- src += [startup_path_prefix + '/f435_437/firmware/cmsis/cm4/device_support/startup/mdk/startup_at32f435_437.s']
+ src += [startup_path_prefix + '/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/mdk/startup_at32f435_437.s']
elif rtconfig.CROSS_TOOL == 'iar':
- src += [startup_path_prefix + '/f435_437/firmware/cmsis/cm4/device_support/startup/iar/startup_at32f435_437.s']
+ src += [startup_path_prefix + '/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/iar/startup_at32f435_437.s']
CPPDEFINES = ['AT32F437ZMT7']
group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)
diff --git a/bsp/at32/at32f437-start/project.ewp b/bsp/at32/at32f437-start/project.ewp
index d8401b8724..04f9e4db63 100644
--- a/bsp/at32/at32f437-start/project.ewp
+++ b/bsp/at32/at32f437-start/project.ewp
@@ -348,20 +348,20 @@
<option>
<name>CCIncludePath2</name>
<state />
- <state>$PROJ_DIR$\..\libraries\f435_437\rt_drivers</state>
- <state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
<state>$PROJ_DIR$\..\..\..\components\finsh</state>
<state>$PROJ_DIR$\..\..\..\libcpu\arm\common</state>
<state>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\cmsis\cm4\device_support</state>
<state>$PROJ_DIR$\board\inc</state>
<state>$PROJ_DIR$\..\..\..\components\drivers\include</state>
- <state>$PROJ_DIR$\..\libraries\f435_437\firmware\cmsis\cm4\device_support</state>
- <state>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\inc</state>
+ <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\stdio</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\inc</state>
+ <state>$PROJ_DIR$\..\libraries\rt_drivers</state>
<state>$PROJ_DIR$\.</state>
<state>$PROJ_DIR$\applications</state>
- <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\stdio</state>
+ <state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
<state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension</state>
- <state>$PROJ_DIR$\..\libraries\f435_437\firmware\cmsis\cm4\core_support</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\cmsis\cm4\core_support</state>
<state>$PROJ_DIR$\..\..\..\components\libc\compilers\common</state>
<state>$PROJ_DIR$\..\..\..\components\libc\posix\io\poll</state>
<state>$PROJ_DIR$\..\..\..\include</state>
@@ -1388,20 +1388,20 @@
<option>
<name>CCIncludePath2</name>
<state />
- <state>$PROJ_DIR$\..\libraries\f435_437\rt_drivers</state>
- <state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
<state>$PROJ_DIR$\..\..\..\components\finsh</state>
<state>$PROJ_DIR$\..\..\..\libcpu\arm\common</state>
<state>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\cmsis\cm4\device_support</state>
<state>$PROJ_DIR$\board\inc</state>
<state>$PROJ_DIR$\..\..\..\components\drivers\include</state>
- <state>$PROJ_DIR$\..\libraries\f435_437\firmware\cmsis\cm4\device_support</state>
- <state>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\inc</state>
+ <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\stdio</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\inc</state>
+ <state>$PROJ_DIR$\..\libraries\rt_drivers</state>
<state>$PROJ_DIR$\.</state>
<state>$PROJ_DIR$\applications</state>
- <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\stdio</state>
+ <state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
<state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension</state>
- <state>$PROJ_DIR$\..\libraries\f435_437\firmware\cmsis\cm4\core_support</state>
+ <state>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\cmsis\cm4\core_support</state>
<state>$PROJ_DIR$\..\..\..\components\libc\compilers\common</state>
<state>$PROJ_DIR$\..\..\..\components\libc\posix\io\poll</state>
<state>$PROJ_DIR$\..\..\..\include</state>
@@ -2089,60 +2089,63 @@
<group>
<name>Compiler</name>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\common\stdlib.c</name>
- </file>
- <file>
<name>$PROJ_DIR$\..\..\..\components\libc\compilers\common\time.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_write.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\common\stdlib.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_open.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscalls.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_lseek.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_read.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscalls.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_mem.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_read.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_close.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_remove.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_mem.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\environ.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_close.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_open.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\environ.c</name>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_lseek.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_write.c</name>
</file>
</group>
<group>
<name>CPU</name>
<file>
- <name>$PROJ_DIR$\..\..\..\libcpu\arm\common\backtrace.c</name>
- </file>
- <file>
<name>$PROJ_DIR$\..\..\..\libcpu\arm\common\showmem.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\libcpu\arm\common\div0.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4\context_iar.S</name>
+ <name>$PROJ_DIR$\..\..\..\libcpu\arm\common\backtrace.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4\cpuport.c</name>
</file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4\context_iar.S</name>
+ </file>
</group>
<group>
<name>DeviceDrivers</name>
<file>
+ <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\waitqueue.c</name>
+ </file>
+ <file>
<name>$PROJ_DIR$\..\..\..\components\drivers\ipc\ringblk_buf.c</name>
</file>
<file>
@@ -2161,9 +2164,6 @@
<name>$PROJ_DIR$\..\..\..\components\drivers\ipc\completion.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\waitqueue.c</name>
- </file>
- <file>
<name>$PROJ_DIR$\..\..\..\components\drivers\misc\pin.c</name>
</file>
<file>
@@ -2173,22 +2173,22 @@
<group>
<name>Drivers</name>
<file>
- <name>$PROJ_DIR$\board\src\at32_msp.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\cmsis\cm4\device_support\startup\iar\startup_at32f435_437.s</name>
</file>
<file>
- <name>$PROJ_DIR$\board\src\board.c</name>
+ <name>$PROJ_DIR$\board\src\at32_msp.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\cmsis\cm4\device_support\startup\iar\startup_at32f435_437.s</name>
+ <name>$PROJ_DIR$\board\src\board.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\rt_drivers\drv_gpio.c</name>
+ <name>$PROJ_DIR$\..\libraries\rt_drivers\drv_gpio.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\rt_drivers\drv_usart.c</name>
+ <name>$PROJ_DIR$\..\libraries\rt_drivers\drv_usart.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\rt_drivers\drv_common.c</name>
+ <name>$PROJ_DIR$\..\libraries\rt_drivers\drv_common.c</name>
</file>
</group>
<group>
@@ -2209,133 +2209,133 @@
<name>$PROJ_DIR$\..\..\..\src\idle.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\memheap.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\mem.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\timer.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\thread.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\kservice.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\clock.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\irq.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\object.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\clock.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\ipc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\scheduler.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\timer.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\mem.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\memheap.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\ipc.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\device.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\device.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\kservice.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\thread.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\components.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\mempool.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\scheduler.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\components.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\irq.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\src\object.c</name>
+ <name>$PROJ_DIR$\..\..\..\src\mempool.c</name>
</file>
</group>
<group>
<name>Libraries</name>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_gpio.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_gpio.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_exint.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_exint.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_i2c.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_i2c.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\cmsis\cm4\device_support\system_at32f435_437.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\cmsis\cm4\device_support\system_at32f435_437.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_acc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_acc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_dac.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_dac.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_qspi.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_qspi.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_crc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_crc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_dma.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_dma.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_can.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_can.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_ertc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_ertc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_usb.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_usb.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_spi.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_spi.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_pwc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_pwc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_tmr.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_tmr.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_edma.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_edma.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_emac.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_emac.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_xmc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_xmc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_debug.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_debug.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_dvp.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_dvp.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_misc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_misc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_usart.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_usart.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_wdt.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_wdt.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_flash.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_flash.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_adc.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_adc.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_wwdt.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_wwdt.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_scfg.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_scfg.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_sdio.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_sdio.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\libraries\f435_437\firmware\drivers\src\at32f435_437_crm.c</name>
+ <name>$PROJ_DIR$\..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_crm.c</name>
</file>
</group>
<group>
diff --git a/bsp/at32/at32f437-start/project.uvproj b/bsp/at32/at32f437-start/project.uvproj
index b3e7e45d89..2787c9a884 100644
--- a/bsp/at32/at32f437-start/project.uvproj
+++ b/bsp/at32/at32f437-start/project.uvproj
@@ -359,7 +359,7 @@
<MiscControls />
<Define>AT32F437ZMT7, USE_STDPERIPH_DRIVER, __RTTHREAD__, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND</Define>
<Undefine />
- <IncludePath>applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;board\inc;..\libraries\f435_437\rt_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\f435_437\firmware\cmsis\cm4\device_support;..\libraries\f435_437\firmware\cmsis\cm4\core_support;..\libraries\f435_437\firmware\drivers\inc;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc</IncludePath>
+ <IncludePath>applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;board\inc;..\libraries\rt_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\AT32F435_437_Firmware_Library\cmsis\cm4\device_support;..\libraries\AT32F435_437_Firmware_Library\cmsis\cm4\core_support;..\libraries\AT32F435_437_Firmware_Library\drivers\inc;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc</IncludePath>
</VariousControls>
</Cads>
<Aads>
@@ -444,23 +444,23 @@
<GroupName>CPU</GroupName>
<Files>
<File>
- <FileName>showmem.c</FileName>
+ <FileName>backtrace.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\libcpu\arm\common\showmem.c</FilePath>
+ <FilePath>..\..\..\libcpu\arm\common\backtrace.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>div0.c</FileName>
+ <FileName>showmem.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\libcpu\arm\common\div0.c</FilePath>
+ <FilePath>..\..\..\libcpu\arm\common\showmem.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>backtrace.c</FileName>
+ <FileName>div0.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\libcpu\arm\common\backtrace.c</FilePath>
+ <FilePath>..\..\..\libcpu\arm\common\div0.c</FilePath>
</File>
</Files>
<Files>
@@ -482,51 +482,51 @@
<GroupName>DeviceDrivers</GroupName>
<Files>
<File>
- <FileName>workqueue.c</FileName>
+ <FileName>pipe.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\workqueue.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\pipe.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>ringbuffer.c</FileName>
+ <FileName>workqueue.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\ringbuffer.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\workqueue.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>pipe.c</FileName>
+ <FileName>completion.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\pipe.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\completion.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>completion.c</FileName>
+ <FileName>ringblk_buf.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\completion.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\ringblk_buf.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>waitqueue.c</FileName>
+ <FileName>dataqueue.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\waitqueue.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\dataqueue.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>ringblk_buf.c</FileName>
+ <FileName>waitqueue.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\ringblk_buf.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\waitqueue.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>dataqueue.c</FileName>
+ <FileName>ringbuffer.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\dataqueue.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\ringbuffer.c</FilePath>
</File>
</Files>
<Files>
@@ -550,7 +550,7 @@
<File>
<FileName>startup_at32f435_437.s</FileName>
<FileType>2</FileType>
- <FilePath>..\libraries\f435_437\firmware\cmsis\cm4\device_support\startup\mdk\startup_at32f435_437.s</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\cmsis\cm4\device_support\startup\mdk\startup_at32f435_437.s</FilePath>
</File>
</Files>
<Files>
@@ -571,21 +571,21 @@
<File>
<FileName>drv_gpio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\rt_drivers\drv_gpio.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_gpio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>drv_usart.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\rt_drivers\drv_usart.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_usart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>drv_common.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\rt_drivers\drv_common.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_common.c</FilePath>
</File>
</Files>
</Group>
@@ -617,20 +617,6 @@
<GroupName>Kernel</GroupName>
<Files>
<File>
- <FileName>object.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\..\..\src\object.c</FilePath>
- </File>
- </Files>
- <Files>
- <File>
- <FileName>timer.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\..\..\src\timer.c</FilePath>
- </File>
- </Files>
- <Files>
- <File>
<FileName>thread.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\src\thread.c</FilePath>
@@ -638,23 +624,23 @@
</Files>
<Files>
<File>
- <FileName>memheap.c</FileName>
+ <FileName>clock.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\memheap.c</FilePath>
+ <FilePath>..\..\..\src\clock.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>clock.c</FileName>
+ <FileName>kservice.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\clock.c</FilePath>
+ <FilePath>..\..\..\src\kservice.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>kservice.c</FileName>
+ <FileName>object.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\kservice.c</FilePath>
+ <FilePath>..\..\..\src\object.c</FilePath>
</File>
</Files>
<Files>
@@ -666,16 +652,16 @@
</Files>
<Files>
<File>
- <FileName>device.c</FileName>
+ <FileName>memheap.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\device.c</FilePath>
+ <FilePath>..\..\..\src\memheap.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>mempool.c</FileName>
+ <FileName>device.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\mempool.c</FilePath>
+ <FilePath>..\..\..\src\device.c</FilePath>
</File>
</Files>
<Files>
@@ -687,9 +673,9 @@
</Files>
<Files>
<File>
- <FileName>mem.c</FileName>
+ <FileName>timer.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\mem.c</FilePath>
+ <FilePath>..\..\..\src\timer.c</FilePath>
</File>
</Files>
<Files>
@@ -708,11 +694,25 @@
</Files>
<Files>
<File>
+ <FileName>mempool.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\src\mempool.c</FilePath>
+ </File>
+ </Files>
+ <Files>
+ <File>
<FileName>idle.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\src\idle.c</FilePath>
</File>
</Files>
+ <Files>
+ <File>
+ <FileName>mem.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\src\mem.c</FilePath>
+ </File>
+ </Files>
</Group>
<Group>
<GroupName>Libraries</GroupName>
@@ -720,203 +720,203 @@
<File>
<FileName>at32f435_437_gpio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_gpio.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_gpio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_exint.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_exint.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_exint.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_i2c.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_i2c.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_i2c.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>system_at32f435_437.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\cmsis\cm4\device_support\system_at32f435_437.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\cmsis\cm4\device_support\system_at32f435_437.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_acc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_acc.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_acc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_dac.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_dac.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_dac.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_qspi.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_qspi.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_qspi.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_crc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_crc.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_crc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_dma.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_dma.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_dma.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_can.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_can.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_can.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_ertc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_ertc.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_ertc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_usb.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_usb.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_usb.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_spi.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_spi.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_spi.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_pwc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_pwc.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_pwc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_tmr.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_tmr.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_tmr.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_edma.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_edma.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_edma.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_emac.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_emac.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_emac.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_xmc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_xmc.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_xmc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_debug.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_debug.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_debug.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_dvp.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_dvp.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_dvp.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_misc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_misc.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_misc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_usart.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_usart.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_usart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_wdt.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_wdt.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_wdt.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_flash.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_flash.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_flash.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_adc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_adc.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_adc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_wwdt.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_wwdt.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_wwdt.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_scfg.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_scfg.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_scfg.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_sdio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_sdio.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_sdio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_crm.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_crm.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_crm.c</FilePath>
</File>
</Files>
</Group>
diff --git a/bsp/at32/at32f437-start/project.uvprojx b/bsp/at32/at32f437-start/project.uvprojx
index a0718f1132..2364041bc2 100644
--- a/bsp/at32/at32f437-start/project.uvprojx
+++ b/bsp/at32/at32f437-start/project.uvprojx
@@ -335,7 +335,7 @@
<MiscControls />
<Define>AT32F437ZMT7, USE_STDPERIPH_DRIVER, __RTTHREAD__, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND</Define>
<Undefine />
- <IncludePath>applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;board\inc;..\libraries\f435_437\rt_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\f435_437\firmware\cmsis\cm4\device_support;..\libraries\f435_437\firmware\cmsis\cm4\core_support;..\libraries\f435_437\firmware\drivers\inc;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc</IncludePath>
+ <IncludePath>applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;board\inc;..\libraries\rt_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\AT32F435_437_Firmware_Library\cmsis\cm4\device_support;..\libraries\AT32F435_437_Firmware_Library\cmsis\cm4\core_support;..\libraries\AT32F435_437_Firmware_Library\drivers\inc;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc</IncludePath>
</VariousControls>
</Cads>
<Aads>
@@ -473,9 +473,9 @@
</Files>
<Files>
<File>
- <FileName>completion.c</FileName>
+ <FileName>dataqueue.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\completion.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\dataqueue.c</FilePath>
</File>
</Files>
<Files>
@@ -501,9 +501,9 @@
</Files>
<Files>
<File>
- <FileName>dataqueue.c</FileName>
+ <FileName>completion.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\components\drivers\ipc\dataqueue.c</FilePath>
+ <FilePath>..\..\..\components\drivers\ipc\completion.c</FilePath>
</File>
</Files>
<Files>
@@ -527,7 +527,7 @@
<File>
<FileName>startup_at32f435_437.s</FileName>
<FileType>2</FileType>
- <FilePath>..\libraries\f435_437\firmware\cmsis\cm4\device_support\startup\mdk\startup_at32f435_437.s</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\cmsis\cm4\device_support\startup\mdk\startup_at32f435_437.s</FilePath>
</File>
</Files>
<Files>
@@ -548,21 +548,21 @@
<File>
<FileName>drv_gpio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\rt_drivers\drv_gpio.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_gpio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>drv_usart.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\rt_drivers\drv_usart.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_usart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>drv_common.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\rt_drivers\drv_common.c</FilePath>
+ <FilePath>..\libraries\rt_drivers\drv_common.c</FilePath>
</File>
</Files>
</Group>
@@ -594,37 +594,37 @@
<GroupName>Kernel</GroupName>
<Files>
<File>
- <FileName>components.c</FileName>
+ <FileName>device.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\components.c</FilePath>
+ <FilePath>..\..\..\src\device.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>timer.c</FileName>
+ <FileName>mempool.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\timer.c</FilePath>
+ <FilePath>..\..\..\src\mempool.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>idle.c</FileName>
+ <FileName>thread.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\idle.c</FilePath>
+ <FilePath>..\..\..\src\thread.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>mem.c</FileName>
+ <FileName>components.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\mem.c</FilePath>
+ <FilePath>..\..\..\src\components.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>scheduler.c</FileName>
+ <FileName>mem.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\scheduler.c</FilePath>
+ <FilePath>..\..\..\src\mem.c</FilePath>
</File>
</Files>
<Files>
@@ -636,58 +636,58 @@
</Files>
<Files>
<File>
- <FileName>mempool.c</FileName>
+ <FileName>idle.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\mempool.c</FilePath>
+ <FilePath>..\..\..\src\idle.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>ipc.c</FileName>
+ <FileName>object.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\ipc.c</FilePath>
+ <FilePath>..\..\..\src\object.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>object.c</FileName>
+ <FileName>timer.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\object.c</FilePath>
+ <FilePath>..\..\..\src\timer.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>clock.c</FileName>
+ <FileName>memheap.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\clock.c</FilePath>
+ <FilePath>..\..\..\src\memheap.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>thread.c</FileName>
+ <FileName>clock.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\thread.c</FilePath>
+ <FilePath>..\..\..\src\clock.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>memheap.c</FileName>
+ <FileName>kservice.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\memheap.c</FilePath>
+ <FilePath>..\..\..\src\kservice.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>kservice.c</FileName>
+ <FileName>scheduler.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\kservice.c</FilePath>
+ <FilePath>..\..\..\src\scheduler.c</FilePath>
</File>
</Files>
<Files>
<File>
- <FileName>device.c</FileName>
+ <FileName>ipc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\..\src\device.c</FilePath>
+ <FilePath>..\..\..\src\ipc.c</FilePath>
</File>
</Files>
</Group>
@@ -697,203 +697,203 @@
<File>
<FileName>at32f435_437_gpio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_gpio.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_gpio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_exint.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_exint.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_exint.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_i2c.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_i2c.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_i2c.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>system_at32f435_437.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\cmsis\cm4\device_support\system_at32f435_437.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\cmsis\cm4\device_support\system_at32f435_437.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_acc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_acc.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_acc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_dac.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_dac.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_dac.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_qspi.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_qspi.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_qspi.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_crc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_crc.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_crc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_dma.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_dma.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_dma.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_can.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_can.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_can.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_ertc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_ertc.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_ertc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_usb.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_usb.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_usb.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_spi.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_spi.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_spi.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_pwc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_pwc.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_pwc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_tmr.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_tmr.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_tmr.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_edma.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_edma.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_edma.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_emac.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_emac.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_emac.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_xmc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_xmc.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_xmc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_debug.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_debug.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_debug.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_dvp.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_dvp.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_dvp.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_misc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_misc.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_misc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_usart.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_usart.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_usart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_wdt.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_wdt.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_wdt.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_flash.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_flash.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_flash.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_adc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_adc.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_adc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_wwdt.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_wwdt.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_wwdt.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_scfg.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_scfg.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_scfg.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_sdio.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_sdio.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_sdio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>at32f435_437_crm.c</FileName>
<FileType>1</FileType>
- <FilePath>..\libraries\f435_437\firmware\drivers\src\at32f435_437_crm.c</FilePath>
+ <FilePath>..\libraries\AT32F435_437_Firmware_Library\drivers\src\at32f435_437_crm.c</FilePath>
</File>
</Files>
</Group>
diff --git a/bsp/at32/at32f437-start/rtconfig.h b/bsp/at32/at32f437-start/rtconfig.h
index 3043781eef..b6ca605021 100644
--- a/bsp/at32/at32f437-start/rtconfig.h
+++ b/bsp/at32/at32f437-start/rtconfig.h
@@ -40,8 +40,7 @@
#define RT_USING_SMALL_MEM
#define RT_USING_MEMHEAP
#define RT_MEMHEAP_FAST_MODE
-#define RT_USING_MEMHEAP_AS_HEAP
-#define RT_USING_MEMHEAP_AUTO_BINDING
+#define RT_USING_SMALL_MEM_AS_HEAP
#define RT_USING_HEAP
/* Kernel Device Object */
@@ -175,7 +174,5 @@
#define BSP_USING_GPIO
#define BSP_USING_UART
#define BSP_USING_UART1
-#define BSP_USING_UART2
-#define BSP_USING_UART3
#endif
diff --git a/bsp/at32/libraries/f403a_407/firmware/SConscript b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/SConscript
index 8ff517be72..8ff517be72 100644
--- a/bsp/at32/libraries/f403a_407/firmware/SConscript
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/SConscript
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/arm_common_tables.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/arm_common_tables.h
index 721b18dd2d..721b18dd2d 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/arm_common_tables.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/arm_common_tables.h
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/arm_const_structs.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/arm_const_structs.h
index 83984c40cd..83984c40cd 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/arm_const_structs.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/arm_const_structs.h
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/arm_helium_utils.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/arm_helium_utils.h
index 85688575eb..85688575eb 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/arm_helium_utils.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/arm_helium_utils.h
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/arm_math.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/arm_math.h
index 2483e6ecfb..2483e6ecfb 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/arm_math.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/arm_math.h
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/arm_mve_tables.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/arm_mve_tables.h
index c07f988f5c..c07f988f5c 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/arm_mve_tables.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/arm_mve_tables.h
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/arm_vec_math.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/arm_vec_math.h
index 0ce9464bcb..0ce9464bcb 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/arm_vec_math.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/arm_vec_math.h
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/cmsis_armcc.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/cmsis_armcc.h
index 9570d3623e..9570d3623e 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/cmsis_armcc.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/cmsis_armcc.h
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/cmsis_armclang.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/cmsis_armclang.h
index b466ba4345..b466ba4345 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/cmsis_armclang.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/cmsis_armclang.h
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/cmsis_armclang_ltm.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/cmsis_armclang_ltm.h
index e0c5b941b1..e0c5b941b1 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/cmsis_armclang_ltm.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/cmsis_armclang_ltm.h
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/cmsis_compiler.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/cmsis_compiler.h
index 8d3ab9721e..8d3ab9721e 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/cmsis_compiler.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/cmsis_compiler.h
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/cmsis_gcc.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/cmsis_gcc.h
index 683ce0f261..683ce0f261 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/cmsis_gcc.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/cmsis_gcc.h
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/cmsis_iccarm.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/cmsis_iccarm.h
index 890ba207eb..890ba207eb 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/cmsis_iccarm.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/cmsis_iccarm.h
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/cmsis_version.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/cmsis_version.h
index c999178e04..c999178e04 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/cmsis_version.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/cmsis_version.h
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/core_cm4.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/core_cm4.h
index 6a50d5e86d..6a50d5e86d 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/core_cm4.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/core_cm4.h
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/mpu_armv7.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/mpu_armv7.h
index 442fc21a3b..442fc21a3b 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/mpu_armv7.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/mpu_armv7.h
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/mpu_armv8.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/mpu_armv8.h
index 3a197fbb49..3a197fbb49 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/mpu_armv8.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/mpu_armv8.h
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/pmu_armv8.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/pmu_armv8.h
index 23b37d95e4..23b37d95e4 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/core_support/pmu_armv8.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/core_support/pmu_armv8.h
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/at32f403a_407.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/at32f403a_407.h
index 3008531daa..6e8046d0a5 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/at32f403a_407.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/at32f403a_407.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407.h
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief at32f403a_407 header file
**************************************************************************
* Copyright notice & Disclaimer
@@ -97,7 +97,7 @@ extern "C" {
*/
#define __AT32F403A_407_LIBRARY_VERSION_MAJOR (0x02) /*!< [31:24] major version */
#define __AT32F403A_407_LIBRARY_VERSION_MIDDLE (0x00) /*!< [23:16] middle version */
-#define __AT32F403A_407_LIBRARY_VERSION_MINOR (0x07) /*!< [15:8] minor version */
+#define __AT32F403A_407_LIBRARY_VERSION_MINOR (0x09) /*!< [15:8] minor version */
#define __AT32F403A_407_LIBRARY_VERSION_RC (0x00) /*!< [7:0] release candidate */
#define __AT32F403A_407_LIBRARY_VERSION ((__AT32F403A_407_LIBRARY_VERSION_MAJOR << 24) | \
(__AT32F403A_407_LIBRARY_VERSION_MIDDLE << 16) | \
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/at32f403a_407_conf_template.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/at32f403a_407_conf_template.h
index a1f7a5df00..97e0d9827e 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/at32f403a_407_conf_template.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/at32f403a_407_conf_template.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_conf.h
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief at32f403a_407 config header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F403AxC_FLASH.ld b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F403AxC_FLASH.ld
index 5c7050764b..7238b76aae 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F403AxC_FLASH.ld
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F403AxC_FLASH.ld
@@ -22,7 +22,7 @@
ENTRY(Reset_Handler)
/* Highest address of the user mode stack */
-_estack = 0x20017FFF; /* end of RAM */
+_estack = 0x20018000; /* end of RAM */
/* Generate a link error if heap and stack don't fit into RAM */
_Min_Heap_Size = 0x200; /* required amount of heap */
@@ -134,12 +134,12 @@ SECTIONS
/* User_heap_stack section, used to check that there is enough RAM left */
._user_heap_stack :
{
- . = ALIGN(4);
+ . = ALIGN(8);
PROVIDE ( end = . );
PROVIDE ( _end = . );
. = . + _Min_Heap_Size;
. = . + _Min_Stack_Size;
- . = ALIGN(4);
+ . = ALIGN(8);
} >RAM
/* Remove information from the standard libraries */
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F403AxE_FLASH.ld b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F403AxE_FLASH.ld
index f2ab8b57c9..90635dce94 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F403AxE_FLASH.ld
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F403AxE_FLASH.ld
@@ -22,7 +22,7 @@
ENTRY(Reset_Handler)
/* Highest address of the user mode stack */
-_estack = 0x20017FFF; /* end of RAM */
+_estack = 0x20018000; /* end of RAM */
/* Generate a link error if heap and stack don't fit into RAM */
_Min_Heap_Size = 0x200; /* required amount of heap */
@@ -134,12 +134,12 @@ SECTIONS
/* User_heap_stack section, used to check that there is enough RAM left */
._user_heap_stack :
{
- . = ALIGN(4);
+ . = ALIGN(8);
PROVIDE ( end = . );
PROVIDE ( _end = . );
. = . + _Min_Heap_Size;
. = . + _Min_Stack_Size;
- . = ALIGN(4);
+ . = ALIGN(8);
} >RAM
/* Remove information from the standard libraries */
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F403AxG_FLASH.ld b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F403AxG_FLASH.ld
index 2fe5e3f920..0d6508289b 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F403AxG_FLASH.ld
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F403AxG_FLASH.ld
@@ -22,7 +22,7 @@
ENTRY(Reset_Handler)
/* Highest address of the user mode stack */
-_estack = 0x20017FFF; /* end of RAM */
+_estack = 0x20018000; /* end of RAM */
/* Generate a link error if heap and stack don't fit into RAM */
_Min_Heap_Size = 0x200; /* required amount of heap */
@@ -134,12 +134,12 @@ SECTIONS
/* User_heap_stack section, used to check that there is enough RAM left */
._user_heap_stack :
{
- . = ALIGN(4);
+ . = ALIGN(8);
PROVIDE ( end = . );
PROVIDE ( _end = . );
. = . + _Min_Heap_Size;
. = . + _Min_Stack_Size;
- . = ALIGN(4);
+ . = ALIGN(8);
} >RAM
/* Remove information from the standard libraries */
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F407xC_FLASH.ld b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F407xC_FLASH.ld
index 57bf09e833..9c648aaf85 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F407xC_FLASH.ld
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F407xC_FLASH.ld
@@ -22,7 +22,7 @@
ENTRY(Reset_Handler)
/* Highest address of the user mode stack */
-_estack = 0x20017FFF; /* end of RAM */
+_estack = 0x20018000; /* end of RAM */
/* Generate a link error if heap and stack don't fit into RAM */
_Min_Heap_Size = 0x200; /* required amount of heap */
@@ -134,12 +134,12 @@ SECTIONS
/* User_heap_stack section, used to check that there is enough RAM left */
._user_heap_stack :
{
- . = ALIGN(4);
+ . = ALIGN(8);
PROVIDE ( end = . );
PROVIDE ( _end = . );
. = . + _Min_Heap_Size;
. = . + _Min_Stack_Size;
- . = ALIGN(4);
+ . = ALIGN(8);
} >RAM
/* Remove information from the standard libraries */
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F407xE_FLASH.ld b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F407xE_FLASH.ld
index 28c6a63091..0f43a0d231 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F407xE_FLASH.ld
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F407xE_FLASH.ld
@@ -22,7 +22,7 @@
ENTRY(Reset_Handler)
/* Highest address of the user mode stack */
-_estack = 0x20017FFF; /* end of RAM */
+_estack = 0x20018000; /* end of RAM */
/* Generate a link error if heap and stack don't fit into RAM */
_Min_Heap_Size = 0x200; /* required amount of heap */
@@ -134,12 +134,12 @@ SECTIONS
/* User_heap_stack section, used to check that there is enough RAM left */
._user_heap_stack :
{
- . = ALIGN(4);
+ . = ALIGN(8);
PROVIDE ( end = . );
PROVIDE ( _end = . );
. = . + _Min_Heap_Size;
. = . + _Min_Stack_Size;
- . = ALIGN(4);
+ . = ALIGN(8);
} >RAM
/* Remove information from the standard libraries */
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F407xG_FLASH.ld b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F407xG_FLASH.ld
index 5ee5c4210a..09764fd6f5 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F407xG_FLASH.ld
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F407xG_FLASH.ld
@@ -22,7 +22,7 @@
ENTRY(Reset_Handler)
/* Highest address of the user mode stack */
-_estack = 0x20017FFF; /* end of RAM */
+_estack = 0x20018000; /* end of RAM */
/* Generate a link error if heap and stack don't fit into RAM */
_Min_Heap_Size = 0x200; /* required amount of heap */
@@ -134,12 +134,12 @@ SECTIONS
/* User_heap_stack section, used to check that there is enough RAM left */
._user_heap_stack :
{
- . = ALIGN(4);
+ . = ALIGN(8);
PROVIDE ( end = . );
PROVIDE ( _end = . );
. = . + _Min_Heap_Size;
. = . + _Min_Stack_Size;
- . = ALIGN(4);
+ . = ALIGN(8);
} >RAM
/* Remove information from the standard libraries */
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/gcc/startup_at32f403a_407.s b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/gcc/startup_at32f403a_407.s
index c3cdec6c65..86a0937d3b 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/gcc/startup_at32f403a_407.s
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/gcc/startup_at32f403a_407.s
@@ -1,8 +1,8 @@
/**
******************************************************************************
* @file startup_at32f403a_407.s
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief at32f403a_407xx devices vector table for gcc toolchain.
* this module performs:
* - set the initial sp
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F403AxC.icf b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F403AxC.icf
index 5c133472cb..5c133472cb 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F403AxC.icf
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F403AxC.icf
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F403AxE.icf b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F403AxE.icf
index 4b5ba6a97b..4b5ba6a97b 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F403AxE.icf
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F403AxE.icf
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F403AxG.icf b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F403AxG.icf
index 97734051a2..97734051a2 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F403AxG.icf
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F403AxG.icf
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F407xC.icf b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F407xC.icf
index 5c133472cb..5c133472cb 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F407xC.icf
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F407xC.icf
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F407xE.icf b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F407xE.icf
index 4b5ba6a97b..4b5ba6a97b 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F407xE.icf
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F407xE.icf
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F407xG.icf b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F407xG.icf
index 97734051a2..97734051a2 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F407xG.icf
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F407xG.icf
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/iar/startup_at32f403a_407.s b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/iar/startup_at32f403a_407.s
index 7fe5840d98..99d8330ef6 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/iar/startup_at32f403a_407.s
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/iar/startup_at32f403a_407.s
@@ -1,7 +1,7 @@
;**************************************************************************
;* @file startup_at32f403a_407.s
-;* @version v2.0.7
-;* @date 2022-02-11
+;* @version v2.0.9
+;* @date 2022-04-25
;* @brief at32f403a_407 startup file for IAR Systems
;**************************************************************************
;
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/mdk/startup_at32f403a_407.s b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/mdk/startup_at32f403a_407.s
index b728677e7d..3ca9b3129e 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/startup/mdk/startup_at32f403a_407.s
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/startup/mdk/startup_at32f403a_407.s
@@ -1,7 +1,7 @@
;**************************************************************************
;* @file startup_at32f403a_407.s
-;* @version v2.0.7
-;* @date 2022-02-11
+;* @version v2.0.9
+;* @date 2022-04-25
;* @brief at32f403a_407 startup file for keil
;**************************************************************************
;
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/system_at32f403a_407.c b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/system_at32f403a_407.c
index 8c2cd6e8cd..1fea754ae4 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/system_at32f403a_407.c
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/system_at32f403a_407.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file system_at32f403a_407.c
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief contains all the functions for cmsis cortex-m4 system source file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/system_at32f403a_407.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/system_at32f403a_407.h
index 6d9183ff95..dd23713450 100644
--- a/bsp/at32/libraries/f403a_407/firmware/cmsis/cm4/device_support/system_at32f403a_407.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/cmsis/cm4/device_support/system_at32f403a_407.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file system_at32f403a_407.h
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief cmsis cortex-m4 system header file.
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_acc.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_acc.h
index d84f99c048..5415a248b3 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_acc.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_acc.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_acc.h
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief at32f403a_407 acc header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_adc.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_adc.h
index 4e3b5dbd47..cb072971f5 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_adc.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_adc.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_adc.h
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief at32f403a_407 adc header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_bpr.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_bpr.h
index c29c6795f0..03235e1068 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_bpr.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_bpr.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_bpr.h
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief at32f403a_407 bpr header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_can.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_can.h
index 1c9771be7d..247dfff393 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_can.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_can.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_can.h
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief at32f403a_407 can header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_crc.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_crc.h
index eaa3935f43..99a81578f9 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_crc.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_crc.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_crc.h
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief at32f403a_407 crc header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_crm.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_crm.h
index 2ac5d4e289..eaaa59e9b5 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_crm.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_crm.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_crm.h
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief at32f403a_407 crm header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_dac.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_dac.h
index 67e5e03ad1..6b80067615 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_dac.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_dac.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_dac.h
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief at32f403a_407 dac header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_debug.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_debug.h
index 84953370ca..7de5a36f5a 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_debug.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_debug.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_debug.h
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief at32f403a_407 debug header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_def.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_def.h
index 57fe3aaae5..f54003a42d 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_def.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_def.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_def.h
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief at32f403a_407 macros header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_dma.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_dma.h
index 8c8ac9db96..7f755bb3ae 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_dma.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_dma.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_dma.h
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief at32f403a_407 dma header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_emac.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_emac.h
index 2dd54e4ae3..7fb82a44ed 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_emac.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_emac.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_emac.h
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief at32f403a_407 emac header file
**************************************************************************
* Copyright notice & Disclaimer
@@ -45,7 +45,7 @@ extern "C" {
* @{
*/
-#define PHY_TIMEOUT (0x0FFFFFFF) /*!< timeout for phy response */
+#define PHY_TIMEOUT (0x000FFFFF) /*!< timeout for phy response */
/** @defgroup EMAC_smi_clock_border_definition
* @brief emac smi clock border
@@ -1639,7 +1639,6 @@ void emac_dma_eight_pbl_mode_set(confirm_state new_state);
void emac_dma_address_aligned_beats_set(confirm_state new_state);
void emac_dma_poll_demand_set(emac_dma_tx_rx_type transfer_type, uint32_t value);
uint32_t emac_dma_poll_demand_get(emac_dma_tx_rx_type transfer_type);
-flag_status emac_dma_status_get(uint32_t flag);
emac_dma_receive_process_status_type emac_dma_receive_status_get(void);
emac_dma_transmit_process_status_type emac_dma_transmit_status_get(void);
void emac_dma_operations_set(emac_dma_operations_type ops, confirm_state new_state);
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_exint.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_exint.h
index 438723765f..a03d6e169a 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_exint.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_exint.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_exint.h
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief at32f403a_407 exint header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_flash.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_flash.h
index ccb14b9d79..1e31aefff2 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_flash.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_flash.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_flash.h
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief at32f403a_407 flash header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_gpio.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_gpio.h
index 588ef3bef5..a4c3a9ae3f 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_gpio.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_gpio.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_gpio.h
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief at32f403a_407 gpio header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_i2c.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_i2c.h
index 24997252c8..bb46a0ac34 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_i2c.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_i2c.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_i2c.h
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief at32f403a_407 i2c header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_misc.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_misc.h
index c43bc7956d..1f06dc2b18 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_misc.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_misc.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_misc.h
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief at32f403a_407 misc header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_pwc.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_pwc.h
index 2bfb06d97b..7b154cd257 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_pwc.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_pwc.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_pwc.h
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief at32f403a_407 pwc header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_rtc.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_rtc.h
index 2dfbd586b1..5c4671db49 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_rtc.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_rtc.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_rtc.h
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief at32f403a_407 rtc header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_sdio.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_sdio.h
index fd7282049d..f9b1238541 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_sdio.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_sdio.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_sdio.h
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief at32f403a_407 sdio header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_spi.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_spi.h
index 4dafd89252..205363f454 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_spi.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_spi.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_spi.h
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief at32f403a_407 spi header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_tmr.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_tmr.h
index b0a5036779..1404b70177 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_tmr.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_tmr.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_tmr.h
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief at32f403a_407 tmr header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_usart.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_usart.h
index a0ba18bb02..c168b5a771 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_usart.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_usart.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_usart.h
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief at32f403a_407 usart header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_usb.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_usb.h
index 32835f8a55..f52d3e85db 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_usb.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_usb.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_usb.h
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief at32f403a_407 usb header file
**************************************************************************
* Copyright notice & Disclaimer
@@ -517,6 +517,7 @@ typedef struct
uint8_t *trans_buf; /*!< endpoint transmission buffer */
uint16_t last_len; /*!< last transfer length */
+ uint16_t rem0_len; /*!< rem transfer length */
uint16_t ept0_slen; /*!< endpoint 0 transfer sum length */
}usb_ept_info;
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_wdt.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_wdt.h
index 5d1b24516a..f870840a7b 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_wdt.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_wdt.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_wdt.h
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief at32f403a_407 wdt header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_wwdt.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_wwdt.h
index 3f1e61893a..8c26c5a8b1 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_wwdt.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_wwdt.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_wwdt.h
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief at32f403a_407 wwdt header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_xmc.h b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_xmc.h
index 24615ca61e..67d26450fc 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/inc/at32f403a_407_xmc.h
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/inc/at32f403a_407_xmc.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_xmc.h
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief at32f403a_407 xmc header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_acc.c b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_acc.c
index 41e18e909d..770db6ac86 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_acc.c
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_acc.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_acc.c
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief contains all the functions for the acc firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_adc.c b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_adc.c
index 7e223dba20..5161242761 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_adc.c
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_adc.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_adc.c
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief contains all the functions for the adc firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_bpr.c b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_bpr.c
index 42e915eb30..08e1922e1f 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_bpr.c
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_bpr.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_bpr.c
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief contains all the functions for the bpr firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_can.c b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_can.c
index 8618f0d054..12e4586d95 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_can.c
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_can.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_can.c
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief contains all the functions for the can firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_crc.c b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_crc.c
index 57ff557eb6..aa81315212 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_crc.c
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_crc.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_crc.c
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief contains all the functions for the crc firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_crm.c b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_crm.c
index b0f9410179..c3ea29c3ae 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_crm.c
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_crm.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_crm.c
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief contains all the functions for the crm firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_dac.c b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_dac.c
index 3c870d9d91..b956361598 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_dac.c
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_dac.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_dac.c
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief contains all the functions for the dac firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_debug.c b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_debug.c
index b8ecdf30ee..893cd604bd 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_debug.c
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_debug.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_debug.c
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief contains all the functions for the debug firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_dma.c b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_dma.c
index d72ecd56d2..39e036d0c7 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_dma.c
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_dma.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_dma.c
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief contains all the functions for the dma firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_emac.c b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_emac.c
index 43780837e8..a8b93ce5fe 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_emac.c
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_emac.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_emac.c
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief contains all the functions for the emac firmware library
**************************************************************************
* Copyright notice & Disclaimer
@@ -265,6 +265,7 @@ error_status emac_phy_register_read(uint8_t address, uint8_t reg, uint16_t *data
do
{
+ timeout++;
*data = EMAC->miidt_bit.md;
} while((EMAC->miiaddr_bit.mb) && (timeout < PHY_TIMEOUT));
@@ -1246,40 +1247,6 @@ uint32_t emac_dma_poll_demand_get(emac_dma_tx_rx_type transfer_type)
}
/**
- * @brief get emac dma status
- * @param flag: specifies the flag to check.
- * this parameter can be one of the following values:
- * - DMA_TX_DONE
- * - DMA_TX_STOP
- * - DMA_TX_UNAVAILABLE
- * - DMA_TX_JABBER_TIMEOUT
- * - DMA_RX_OVERFLOW
- * - DMA_TX_UNDERFLOW
- * - DMA_RX_DONE
- * - DMA_RX_UNAVAILABLE
- * - DMA_RX_STOP
- * - DMA_RX_WDG_TIMEOUT
- * - DMA_TX_EARLY
- * - DMA_FATAL_BUS_ERROR
- * - DMA_RX_EARLY
- * - DMA_MMC_STATUS
- * - DMA_PMT_STATUS
- * - DMA_TST_STATUS
- * @retval the new state of usart_flag (SET or RESET).
- */
-flag_status emac_dma_status_get(uint32_t flag)
-{
- if(EMAC_DMA->sts & flag)
- {
- return SET;
- }
- else
- {
- return RESET;
- }
-}
-
-/**
* @brief get receive dma process status
* @param none
* @retval every situation it describe in RM
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_exint.c b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_exint.c
index 012589158a..c6ef1c335e 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_exint.c
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_exint.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_exint.c
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief contains all the functions for the exint firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_flash.c b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_flash.c
index 8e125e4675..98e7cb9922 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_flash.c
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_flash.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_flash.c
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief contains all the functions for the flash firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_gpio.c b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_gpio.c
index 6d06cc6722..fbff02dd12 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_gpio.c
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_gpio.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_gpio.c
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief contains all the functions for the gpio firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_i2c.c b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_i2c.c
index f11fa6851d..8a55b48b3d 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_i2c.c
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_i2c.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_i2c.c
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief contains all the functions for the i2c firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_misc.c b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_misc.c
index c19074331f..25b34c1253 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_misc.c
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_misc.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_misc.c
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief contains all the functions for the misc firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_pwc.c b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_pwc.c
index 600396a755..fc945a9cf3 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_pwc.c
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_pwc.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_pwc.c
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief contains all the functions for the pwc firmware library
**************************************************************************
* Copyright notice & Disclaimer
@@ -126,9 +126,9 @@ void pwc_wakeup_pin_enable(uint32_t pin_num, confirm_state new_state)
*/
void pwc_flag_clear(uint32_t pwc_flag)
{
- if(pwc_flag == PWC_STANDBY_FLAG)
+ if(pwc_flag & PWC_STANDBY_FLAG)
PWC->ctrl_bit.clsef = TRUE;
- if(pwc_flag == PWC_WAKEUP_FLAG)
+ if(pwc_flag & PWC_WAKEUP_FLAG)
PWC->ctrl_bit.clswef = TRUE;
}
@@ -222,7 +222,7 @@ void pwc_voltage_regulate_set(pwc_regulator_type pwc_regulator)
*/
void pwc_standby_mode_enter(void)
{
- PWC->ctrl_bit.clswef = FALSE;
+ PWC->ctrl_bit.clswef = TRUE;
PWC->ctrl_bit.lpsel = TRUE;
SCB->SCR |= 0x04;
#if defined (__CC_ARM)
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_rtc.c b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_rtc.c
index a94b51917a..f6f453cdfb 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_rtc.c
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_rtc.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_rtc.c
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief contains all the functions for the rtc firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_sdio.c b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_sdio.c
index 015cb59c32..8b66019283 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_sdio.c
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_sdio.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_sdio.c
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief contains all the functions for the sdio firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_spi.c b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_spi.c
index 3c181b1bc7..720aa92117 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_spi.c
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_spi.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_spi.c
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief contains all the functions for the spi firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_tmr.c b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_tmr.c
index bbb06b9de6..e92df95008 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_tmr.c
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_tmr.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_tmr.c
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief contains all the functions for the tmr firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_usart.c b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_usart.c
index 4bfd3d3799..2fde5c6780 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_usart.c
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_usart.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_usart.c
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief contains all the functions for the usart firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_usb.c b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_usb.c
index 69d628f4d6..a177da5657 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_usb.c
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_usb.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_usb.c
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief contains the functions for the usb firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_wdt.c b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_wdt.c
index 26c0d58bef..782123fbb1 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_wdt.c
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_wdt.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_wdt.c
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief contains all the functions for the wdt firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_wwdt.c b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_wwdt.c
index 57c7c826ed..8b543852c3 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_wwdt.c
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_wwdt.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_wwdt.c
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief contains all the functions for the wwdt firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_xmc.c b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_xmc.c
index 8e220cb412..6b215e91fa 100644
--- a/bsp/at32/libraries/f403a_407/firmware/drivers/src/at32f403a_407_xmc.c
+++ b/bsp/at32/libraries/AT32F403A_407_Firmware_Library/drivers/src/at32f403a_407_xmc.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f403a_407_xmc.c
- * @version v2.0.7
- * @date 2022-02-11
+ * @version v2.0.9
+ * @date 2022-04-25
* @brief contains all the functions for the xmc firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/SConscript b/bsp/at32/libraries/AT32F413_Firmware_Library/SConscript
index 69df1e395a..69df1e395a 100644
--- a/bsp/at32/libraries/f413/firmware/SConscript
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/SConscript
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/arm_common_tables.h b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/arm_common_tables.h
index 721b18dd2d..721b18dd2d 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/arm_common_tables.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/arm_common_tables.h
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/arm_const_structs.h b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/arm_const_structs.h
index 83984c40cd..83984c40cd 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/arm_const_structs.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/arm_const_structs.h
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/arm_helium_utils.h b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/arm_helium_utils.h
index 85688575eb..85688575eb 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/arm_helium_utils.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/arm_helium_utils.h
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/arm_math.h b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/arm_math.h
index 2483e6ecfb..2483e6ecfb 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/arm_math.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/arm_math.h
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/arm_mve_tables.h b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/arm_mve_tables.h
index c07f988f5c..c07f988f5c 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/arm_mve_tables.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/arm_mve_tables.h
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/arm_vec_math.h b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/arm_vec_math.h
index 0ce9464bcb..0ce9464bcb 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/arm_vec_math.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/arm_vec_math.h
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/cmsis_armcc.h b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/cmsis_armcc.h
index 9570d3623e..9570d3623e 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/cmsis_armcc.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/cmsis_armcc.h
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/cmsis_armclang.h b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/cmsis_armclang.h
index b466ba4345..b466ba4345 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/cmsis_armclang.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/cmsis_armclang.h
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/cmsis_armclang_ltm.h b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/cmsis_armclang_ltm.h
index e0c5b941b1..e0c5b941b1 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/cmsis_armclang_ltm.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/cmsis_armclang_ltm.h
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/cmsis_compiler.h b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/cmsis_compiler.h
index 8d3ab9721e..8d3ab9721e 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/cmsis_compiler.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/cmsis_compiler.h
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/cmsis_gcc.h b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/cmsis_gcc.h
index 683ce0f261..683ce0f261 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/cmsis_gcc.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/cmsis_gcc.h
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/cmsis_iccarm.h b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/cmsis_iccarm.h
index 890ba207eb..890ba207eb 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/cmsis_iccarm.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/cmsis_iccarm.h
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/cmsis_version.h b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/cmsis_version.h
index c999178e04..c999178e04 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/cmsis_version.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/cmsis_version.h
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/core_cm4.h b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/core_cm4.h
index 6a50d5e86d..6a50d5e86d 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/core_cm4.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/core_cm4.h
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/mpu_armv7.h b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/mpu_armv7.h
index 442fc21a3b..442fc21a3b 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/mpu_armv7.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/mpu_armv7.h
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/mpu_armv8.h b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/mpu_armv8.h
index 3a197fbb49..3a197fbb49 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/mpu_armv8.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/mpu_armv8.h
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/pmu_armv8.h b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/pmu_armv8.h
index 23b37d95e4..23b37d95e4 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/core_support/pmu_armv8.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/core_support/pmu_armv8.h
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/at32f413.h b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/at32f413.h
index 07480aa856..f6085b33d9 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/at32f413.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/at32f413.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f413 header file
**************************************************************************
* Copyright notice & Disclaimer
@@ -87,7 +87,7 @@ extern "C" {
*/
#define __AT32F413_LIBRARY_VERSION_MAJOR (0x02) /*!< [31:24] major version */
#define __AT32F413_LIBRARY_VERSION_MIDDLE (0x00) /*!< [23:16] middle version */
-#define __AT32F413_LIBRARY_VERSION_MINOR (0x04) /*!< [15:8] minor version */
+#define __AT32F413_LIBRARY_VERSION_MINOR (0x05) /*!< [15:8] minor version */
#define __AT32F413_LIBRARY_VERSION_RC (0x00) /*!< [7:0] release candidate */
#define __AT32F413_LIBRARY_VERSION ((__AT32F413_LIBRARY_VERSION_MAJOR << 24) | \
(__AT32F413_LIBRARY_VERSION_MIDDLE << 16) | \
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/at32f413_conf_template.h b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/at32f413_conf_template.h
index 48bfee0f4a..697e7c0be1 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/at32f413_conf_template.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/at32f413_conf_template.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_conf.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f413 config header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F413x8_FLASH.ld b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F413x8_FLASH.ld
index 9caee13004..9caee13004 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F413x8_FLASH.ld
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F413x8_FLASH.ld
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F413xB_FLASH.ld b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F413xB_FLASH.ld
index 52088ada96..52088ada96 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F413xB_FLASH.ld
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F413xB_FLASH.ld
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F413xC_FLASH.ld b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F413xC_FLASH.ld
index ada75c8a9c..ada75c8a9c 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F413xC_FLASH.ld
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F413xC_FLASH.ld
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/startup/gcc/startup_at32f413.s b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/gcc/startup_at32f413.s
index 3b03f80f2d..b5d66dc48c 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/startup/gcc/startup_at32f413.s
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/gcc/startup_at32f413.s
@@ -1,8 +1,8 @@
/**
******************************************************************************
* @file startup_at32f413.s
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f413xx devices vector table for gcc toolchain.
* this module performs:
* - set the initial sp
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F413x8.icf b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F413x8.icf
index cd94ed669e..cd94ed669e 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F413x8.icf
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F413x8.icf
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F413xB.icf b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F413xB.icf
index 912235b9c0..912235b9c0 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F413xB.icf
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F413xB.icf
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F413xC.icf b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F413xC.icf
index 0f25e92744..0f25e92744 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F413xC.icf
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F413xC.icf
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/startup/iar/startup_at32f413.s b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/iar/startup_at32f413.s
index 1e352729ed..a80dcc38f1 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/startup/iar/startup_at32f413.s
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/iar/startup_at32f413.s
@@ -1,7 +1,7 @@
;**************************************************************************
;* @file startup_at32f413.s
-;* @version v2.0.4
-;* @date 2022-04-02
+;* @version v2.0.5
+;* @date 2022-05-20
;* @brief at32f413 startup file for IAR Systems
;**************************************************************************
;
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/startup/mdk/startup_at32f413.s b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/mdk/startup_at32f413.s
index 0a65e8dc0b..9dbc2dac2d 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/startup/mdk/startup_at32f413.s
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/startup/mdk/startup_at32f413.s
@@ -1,7 +1,7 @@
;**************************************************************************
;* @file startup_at32f403a_407.s
-;* @version v2.0.4
-;* @date 2022-04-02
+;* @version v2.0.5
+;* @date 2022-05-20
;* @brief at32f403a_407 startup file for keil
;**************************************************************************
;
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/system_at32f413.c b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/system_at32f413.c
index 1ce206cdb5..846d23e5bc 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/system_at32f413.c
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/system_at32f413.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file system_at32f413.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for cmsis cortex-m4 system source file
**************************************************************************
* Copyright notice & Disclaimer
@@ -81,13 +81,13 @@ void SystemInit (void)
/* wait sclk switch status */
while(CRM->cfg_bit.sclksts != CRM_SCLK_HICK);
+ /* reset hexten, hextbyps, cfden and pllen bits */
+ CRM->ctrl &= ~(0x010D0000U);
+
/* reset cfg register, include sclk switch, ahbdiv, apb1div, apb2div, adcdiv,
clkout pllrcs, pllhextdiv, pllmult, usbdiv and pllrange bits */
CRM->cfg = 0;
- /* reset hexten, hextbyps, cfden and pllen bits */
- CRM->ctrl &= ~(0x010D0000U);
-
/* reset clkout[3], usbbufs, hickdiv, clkoutdiv */
CRM->misc1 = 0;
diff --git a/bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/system_at32f413.h b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/system_at32f413.h
index 787ecf1381..adc9926592 100644
--- a/bsp/at32/libraries/f413/firmware/cmsis/cm4/device_support/system_at32f413.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/cmsis/cm4/device_support/system_at32f413.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file system_at32f413.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief cmsis cortex-m4 system header file.
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_acc.h b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_acc.h
index f74e736133..3607e36fb5 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_acc.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_acc.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_acc.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f413 acc header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_adc.h b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_adc.h
index 1be2eadcb8..2d16d8c1e5 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_adc.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_adc.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_adc.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f413 adc header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_bpr.h b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_bpr.h
index bd110916d9..c61839a1a3 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_bpr.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_bpr.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_bpr.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f413 bpr header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_can.h b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_can.h
index 435b280f79..5ba05a9704 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_can.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_can.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_can.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f413 can header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_crc.h b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_crc.h
index 2d09936f7b..a3372dfd07 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_crc.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_crc.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_crc.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f413 crc header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_crm.h b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_crm.h
index 5cffca9c71..6cdfba68c4 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_crm.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_crm.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_crm.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f413 crm header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_debug.h b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_debug.h
index 3393702e02..f83cde2342 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_debug.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_debug.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_debug.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f413 debug header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_def.h b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_def.h
index 538f384656..a518d683c7 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_def.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_def.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_def.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f413 macros header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_dma.h b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_dma.h
index 376b49b89a..62b6c6c663 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_dma.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_dma.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_dma.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f413 dma header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_exint.h b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_exint.h
index 3616468a04..ff07816442 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_exint.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_exint.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_exint.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f413 exint header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_flash.h b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_flash.h
index d9ec74b986..790e78b9d6 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_flash.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_flash.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_flash.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f413 flash header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_gpio.h b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_gpio.h
index 699935a51d..bcc80b275d 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_gpio.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_gpio.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_gpio.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f413 gpio header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_i2c.h b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_i2c.h
index ef2359d79a..6fd86930ec 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_i2c.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_i2c.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_i2c.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f413 i2c header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_misc.h b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_misc.h
index c886cda34c..99e5094817 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_misc.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_misc.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_misc.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f413 misc header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_pwc.h b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_pwc.h
index 1440cd92a1..57fa5b2097 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_pwc.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_pwc.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_pwc.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f413 pwc header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_rtc.h b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_rtc.h
index c847661e27..024b10e0a2 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_rtc.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_rtc.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_rtc.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f413 rtc header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_sdio.h b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_sdio.h
index 12108cb6ea..42c8a1d2fa 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_sdio.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_sdio.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_sdio.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f413 sdio header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_spi.h b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_spi.h
index 4190a33fe6..ab2805133d 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_spi.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_spi.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_spi.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f413 spi header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_tmr.h b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_tmr.h
index 33bb6410e9..0654ca3432 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_tmr.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_tmr.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_tmr.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f413 tmr header file
**************************************************************************
* Copyright notice & Disclaimer
@@ -834,15 +834,10 @@ typedef struct
#define TMR3 ((tmr_type *) TMR3_BASE)
#define TMR4 ((tmr_type *) TMR4_BASE)
#define TMR5 ((tmr_type *) TMR5_BASE)
-#define TMR6 ((tmr_type *) TMR6_BASE)
-#define TMR7 ((tmr_type *) TMR7_BASE)
#define TMR8 ((tmr_type *) TMR8_BASE)
#define TMR9 ((tmr_type *) TMR9_BASE)
#define TMR10 ((tmr_type *) TMR10_BASE)
#define TMR11 ((tmr_type *) TMR11_BASE)
-#define TMR12 ((tmr_type *) TMR12_BASE)
-#define TMR13 ((tmr_type *) TMR13_BASE)
-#define TMR14 ((tmr_type *) TMR14_BASE)
/** @defgroup TMR_exported_functions
* @{
diff --git a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_usart.h b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_usart.h
index a0f4f003b9..062f359705 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_usart.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_usart.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_usart.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f413 usart header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_usb.h b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_usb.h
index c25d7ddb51..d1b1053240 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_usb.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_usb.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_usb.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f413 usb header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_wdt.h b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_wdt.h
index 6367bed1a3..39fa082557 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_wdt.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_wdt.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_wdt.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f413 wdt header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_wwdt.h b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_wwdt.h
index 588779341d..5c26304542 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/inc/at32f413_wwdt.h
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/inc/at32f413_wwdt.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_wwdt.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f413 wwdt header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_acc.c b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_acc.c
index 7fb95239a2..1eec3f85ef 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_acc.c
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_acc.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_acc.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the acc firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_adc.c b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_adc.c
index 9718b33a04..ca75cd1cbb 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_adc.c
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_adc.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_adc.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the adc firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_bpr.c b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_bpr.c
index 3341533c61..955b7a3908 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_bpr.c
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_bpr.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_bpr.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the bpr firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_can.c b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_can.c
index 64ff214510..feb5e4b7a6 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_can.c
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_can.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_can.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the can firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_crc.c b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_crc.c
index 9939a0d98a..6eed245d7f 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_crc.c
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_crc.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_crc.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the crc firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_crm.c b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_crm.c
index 9cf35bbbdc..f4451f9e32 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_crm.c
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_crm.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_crm.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the crm firmware library
**************************************************************************
* Copyright notice & Disclaimer
@@ -61,13 +61,13 @@ void crm_reset(void)
/* wait sclk switch status */
while(CRM->cfg_bit.sclksts != CRM_SCLK_HICK);
+ /* reset hexten, hextbyps, cfden and pllen bits */
+ CRM->ctrl &= ~(0x010D0000U);
+
/* reset cfg register, include sclk switch, ahbdiv, apb1div, apb2div, adcdiv,
clkout pllrcs, pllhextdiv, pllmult, usbdiv and pllrange bits */
CRM->cfg = 0;
- /* reset hexten, hextbyps, cfden and pllen bits */
- CRM->ctrl &= ~(0x010D0000U);
-
/* reset clkout[3], usbbufs, hickdiv, clkoutdiv */
CRM->misc1 = 0;
@@ -339,6 +339,7 @@ void crm_flag_clear(uint32_t flag)
case CRM_LOWPOWER_RESET_FLAG:
case CRM_ALL_RESET_FLAG:
CRM->ctrlsts_bit.rstfc = TRUE;
+ while(CRM->ctrlsts_bit.rstfc == TRUE);
break;
case CRM_LICK_READY_INT_FLAG:
CRM->clkint_bit.lickstblfc = TRUE;
diff --git a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_debug.c b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_debug.c
index b16604fbb1..c46f1fc721 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_debug.c
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_debug.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_debug.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the debug firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_dma.c b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_dma.c
index 7645bc1fa5..fc7c3167bd 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_dma.c
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_dma.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_dma.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the dma firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_exint.c b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_exint.c
index 46838a7329..38f6ff27d4 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_exint.c
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_exint.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_exint.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the exint firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_flash.c b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_flash.c
index 9737e7056f..c5952f9807 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_flash.c
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_flash.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_flash.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the flash firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_gpio.c b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_gpio.c
index 871354a731..cd96b527c6 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_gpio.c
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_gpio.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_gpio.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the gpio firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_i2c.c b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_i2c.c
index 1a938bbafe..6612b6e16e 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_i2c.c
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_i2c.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_i2c.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the i2c firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_misc.c b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_misc.c
index f46a3fac43..cb58807a86 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_misc.c
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_misc.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_misc.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the misc firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_pwc.c b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_pwc.c
index 986ef33648..d0c93983aa 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_pwc.c
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_pwc.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_pwc.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the pwc firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_rtc.c b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_rtc.c
index 363bfad740..a66158b056 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_rtc.c
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_rtc.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_rtc.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the rtc firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_sdio.c b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_sdio.c
index 5059010094..10cfa0501b 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_sdio.c
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_sdio.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_sdio.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the sdio firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_spi.c b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_spi.c
index a9eaeea290..656e4be81e 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_spi.c
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_spi.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_spi.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the spi firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_tmr.c b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_tmr.c
index 9a1ab889da..44f3eeb9f3 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_tmr.c
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_tmr.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_tmr.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the tmr firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_usart.c b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_usart.c
index e41005c1eb..14e5210faa 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_usart.c
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_usart.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_usart.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the usart firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_usb.c b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_usb.c
index 1036aed77f..cea418ed99 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_usb.c
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_usb.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_usb.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains the functions for the usb firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_wdt.c b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_wdt.c
index d31c72bf70..94d779c7a8 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_wdt.c
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_wdt.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_wdt.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the wdt firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_wwdt.c b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_wwdt.c
index 44fa2b56a6..6de009cf99 100644
--- a/bsp/at32/libraries/f413/firmware/drivers/src/at32f413_wwdt.c
+++ b/bsp/at32/libraries/AT32F413_Firmware_Library/drivers/src/at32f413_wwdt.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f413_wwdt.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the wwdt firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/SConscript b/bsp/at32/libraries/AT32F415_Firmware_Library/SConscript
index 488c061990..488c061990 100644
--- a/bsp/at32/libraries/f415/firmware/SConscript
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/SConscript
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/arm_common_tables.h b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/arm_common_tables.h
index 721b18dd2d..721b18dd2d 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/arm_common_tables.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/arm_common_tables.h
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/arm_const_structs.h b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/arm_const_structs.h
index 83984c40cd..83984c40cd 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/arm_const_structs.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/arm_const_structs.h
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/arm_helium_utils.h b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/arm_helium_utils.h
index 85688575eb..85688575eb 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/arm_helium_utils.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/arm_helium_utils.h
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/arm_math.h b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/arm_math.h
index 2483e6ecfb..2483e6ecfb 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/arm_math.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/arm_math.h
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/arm_mve_tables.h b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/arm_mve_tables.h
index c07f988f5c..c07f988f5c 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/arm_mve_tables.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/arm_mve_tables.h
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/arm_vec_math.h b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/arm_vec_math.h
index 0ce9464bcb..0ce9464bcb 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/arm_vec_math.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/arm_vec_math.h
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/cmsis_armcc.h b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/cmsis_armcc.h
index 9570d3623e..9570d3623e 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/cmsis_armcc.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/cmsis_armcc.h
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/cmsis_armclang.h b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/cmsis_armclang.h
index b466ba4345..b466ba4345 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/cmsis_armclang.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/cmsis_armclang.h
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/cmsis_armclang_ltm.h b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/cmsis_armclang_ltm.h
index e0c5b941b1..e0c5b941b1 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/cmsis_armclang_ltm.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/cmsis_armclang_ltm.h
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/cmsis_compiler.h b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/cmsis_compiler.h
index 8d3ab9721e..8d3ab9721e 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/cmsis_compiler.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/cmsis_compiler.h
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/cmsis_gcc.h b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/cmsis_gcc.h
index 683ce0f261..683ce0f261 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/cmsis_gcc.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/cmsis_gcc.h
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/cmsis_iccarm.h b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/cmsis_iccarm.h
index 890ba207eb..890ba207eb 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/cmsis_iccarm.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/cmsis_iccarm.h
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/cmsis_version.h b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/cmsis_version.h
index c999178e04..c999178e04 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/cmsis_version.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/cmsis_version.h
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/core_cm4.h b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/core_cm4.h
index 6a50d5e86d..6a50d5e86d 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/core_cm4.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/core_cm4.h
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/mpu_armv7.h b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/mpu_armv7.h
index 442fc21a3b..442fc21a3b 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/mpu_armv7.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/mpu_armv7.h
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/mpu_armv8.h b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/mpu_armv8.h
index 3a197fbb49..3a197fbb49 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/mpu_armv8.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/mpu_armv8.h
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/pmu_armv8.h b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/pmu_armv8.h
index 23b37d95e4..23b37d95e4 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/core_support/pmu_armv8.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/core_support/pmu_armv8.h
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/at32f415.h b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/at32f415.h
index cf3de32deb..785ea224b0 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/at32f415.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/at32f415.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f415 header file
**************************************************************************
* Copyright notice & Disclaimer
@@ -89,7 +89,7 @@ extern "C" {
*/
#define __AT32F415_LIBRARY_VERSION_MAJOR (0x02) /*!< [31:24] major version */
#define __AT32F415_LIBRARY_VERSION_MIDDLE (0x00) /*!< [23:16] middle version */
-#define __AT32F415_LIBRARY_VERSION_MINOR (0x04) /*!< [15:8] minor version */
+#define __AT32F415_LIBRARY_VERSION_MINOR (0x05) /*!< [15:8] minor version */
#define __AT32F415_LIBRARY_VERSION_RC (0x00) /*!< [7:0] release candidate */
#define __AT32F415_LIBRARY_VERSION ((__AT32F415_LIBRARY_VERSION_MAJOR << 24) | \
(__AT32F415_LIBRARY_VERSION_MIDDLE << 16) | \
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/at32f415_conf_template.h b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/at32f415_conf_template.h
index 88d354f629..82190bb56e 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/at32f415_conf_template.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/at32f415_conf_template.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_conf.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f415 config header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F415x8_FLASH.ld b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F415x8_FLASH.ld
index 7ad1dd110d..7ad1dd110d 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F415x8_FLASH.ld
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F415x8_FLASH.ld
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F415xB_FLASH.ld b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F415xB_FLASH.ld
index 48cad651cd..48cad651cd 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F415xB_FLASH.ld
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F415xB_FLASH.ld
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F415xC_FLASH.ld b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F415xC_FLASH.ld
index baf2e7d716..baf2e7d716 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F415xC_FLASH.ld
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F415xC_FLASH.ld
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/startup/gcc/startup_at32f415.s b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/gcc/startup_at32f415.s
index a4996ca728..8e25548056 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/startup/gcc/startup_at32f415.s
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/gcc/startup_at32f415.s
@@ -1,8 +1,8 @@
/**
******************************************************************************
* @file startup_at32f415.s
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f415xx devices vector table for gcc toolchain.
* this module performs:
* - set the initial sp
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F415x8.icf b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F415x8.icf
index cd94ed669e..cd94ed669e 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F415x8.icf
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F415x8.icf
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F415xB.icf b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F415xB.icf
index 912235b9c0..912235b9c0 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F415xB.icf
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F415xB.icf
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F415xC.icf b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F415xC.icf
index 0f25e92744..0f25e92744 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F415xC.icf
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F415xC.icf
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/startup/iar/startup_at32f415.s b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/iar/startup_at32f415.s
index 61722888d3..ec945ddf8f 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/startup/iar/startup_at32f415.s
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/iar/startup_at32f415.s
@@ -1,7 +1,7 @@
;**************************************************************************
;* @file startup_at32f415.s
-;* @version v2.0.4
-;* @date 2022-04-02
+;* @version v2.0.5
+;* @date 2022-05-20
;* @brief at32f415 startup file for IAR Systems
;**************************************************************************
;
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/startup/mdk/startup_at32f415.s b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/mdk/startup_at32f415.s
index 1fcdace388..3adfea23bf 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/startup/mdk/startup_at32f415.s
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/startup/mdk/startup_at32f415.s
@@ -1,7 +1,7 @@
;**************************************************************************
;* @file startup_at32f415.s
-;* @version v2.0.4
-;* @date 2022-04-02
+;* @version v2.0.5
+;* @date 2022-05-20
;* @brief at32f415 startup file for keil
;**************************************************************************
;
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/system_at32f415.c b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/system_at32f415.c
index 53d918ad18..bd1e931849 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/system_at32f415.c
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/system_at32f415.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file system_at32f415.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for cmsis cortex-m4 system source file
**************************************************************************
* Copyright notice & Disclaimer
@@ -81,6 +81,9 @@ void SystemInit (void)
/* wait sclk switch status */
while(CRM->cfg_bit.sclksts != CRM_SCLK_HICK);
+ /* reset hexten, hextbyps, cfden and pllen bits */
+ CRM->ctrl &= ~(0x010D0000U);
+
/* reset cfg register, include sclk switch, ahbdiv, apb1div, apb2div, adcdiv,
clkout pllrcs, pllhextdiv, pllmult, usbdiv and pllrange bits */
CRM->cfg = 0;
@@ -88,9 +91,6 @@ void SystemInit (void)
/* reset pllfr, pllms, pllns and pllfref bits */
CRM->pll = (0x00001F10U);
- /* reset hexten, hextbyps, cfden and pllen bits */
- CRM->ctrl &= ~(0x010D0000U);
-
/* reset clkout[3], usbbufs, hickdiv, clkoutdiv */
CRM->misc1 = 0x00100000;
diff --git a/bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/system_at32f415.h b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/system_at32f415.h
index 21e3a4d756..fee8791971 100644
--- a/bsp/at32/libraries/f415/firmware/cmsis/cm4/device_support/system_at32f415.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/cmsis/cm4/device_support/system_at32f415.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file system_at32f415.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief cmsis cortex-m4 system header file.
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_adc.h b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_adc.h
index 79925f410e..de84b42322 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_adc.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_adc.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_adc.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f415 adc header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_can.h b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_can.h
index b90de09804..fb37904e87 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_can.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_can.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_can.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f415 can header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_cmp.h b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_cmp.h
index ac337536ed..f53353eeac 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_cmp.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_cmp.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_cmp.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f415 cmp header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_crc.h b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_crc.h
index 8821b2bbe3..9b4ce4b8ba 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_crc.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_crc.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_crc.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f415 crc header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_crm.h b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_crm.h
index c0a8b2cd0a..60b14931a6 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_crm.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_crm.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_crm.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f415 crm header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_debug.h b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_debug.h
index a8ebebcad2..b44d57ff09 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_debug.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_debug.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_debug.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f415 debug header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_def.h b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_def.h
index 9b76f67b32..f861e3b7f8 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_def.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_def.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_def.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f415 macros header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_dma.h b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_dma.h
index 1df462a96b..cf88b9ce99 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_dma.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_dma.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_dma.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f415 dma header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_ertc.h b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_ertc.h
index 92180f5374..9afe8eb4a3 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_ertc.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_ertc.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_ertc.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f415 ertc header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_exint.h b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_exint.h
index d6735b0dd5..76170acbaa 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_exint.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_exint.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_exint.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f415 exint header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_flash.h b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_flash.h
index 0fe5c28d2d..8880db8844 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_flash.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_flash.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_flash.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f415 flash header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_gpio.h b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_gpio.h
index 1b6297c92d..8bf9de4c4a 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_gpio.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_gpio.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_gpio.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f415 gpio header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_i2c.h b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_i2c.h
index a78d752a73..d3786ba240 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_i2c.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_i2c.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_i2c.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f415 i2c header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_misc.h b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_misc.h
index 558cd2bc67..cc2cb6fb71 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_misc.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_misc.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_misc.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f415 misc header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_pwc.h b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_pwc.h
index 5dd93a4d1c..48cb7b9ac6 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_pwc.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_pwc.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_pwc.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f415 pwc header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_sdio.h b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_sdio.h
index 8a1e4505d1..f8bac257d9 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_sdio.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_sdio.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_sdio.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f415 sdio header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_spi.h b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_spi.h
index ce6a6950ff..d4852dfd16 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_spi.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_spi.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_spi.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f415 spi header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_tmr.h b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_tmr.h
index 502602b7e9..6f19fd6485 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_tmr.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_tmr.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_tmr.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f415 tmr header file
**************************************************************************
* Copyright notice & Disclaimer
@@ -834,15 +834,9 @@ typedef struct
#define TMR3 ((tmr_type *) TMR3_BASE)
#define TMR4 ((tmr_type *) TMR4_BASE)
#define TMR5 ((tmr_type *) TMR5_BASE)
-#define TMR6 ((tmr_type *) TMR6_BASE)
-#define TMR7 ((tmr_type *) TMR7_BASE)
-#define TMR8 ((tmr_type *) TMR8_BASE)
#define TMR9 ((tmr_type *) TMR9_BASE)
#define TMR10 ((tmr_type *) TMR10_BASE)
#define TMR11 ((tmr_type *) TMR11_BASE)
-#define TMR12 ((tmr_type *) TMR12_BASE)
-#define TMR13 ((tmr_type *) TMR13_BASE)
-#define TMR14 ((tmr_type *) TMR14_BASE)
/** @defgroup TMR_exported_functions
* @{
diff --git a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_usart.h b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_usart.h
index 4674de0050..20b43c6f99 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_usart.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_usart.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_usart.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f415 usart header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_usb.h b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_usb.h
index 4252bcfae7..41ec1d405d 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_usb.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_usb.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_usb.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f415 usb header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_wdt.h b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_wdt.h
index 9bea1ea163..3881388747 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_wdt.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_wdt.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_wdt.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f415 wdt header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_wwdt.h b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_wwdt.h
index 9dcc9919ad..a79ee9348f 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/inc/at32f415_wwdt.h
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/inc/at32f415_wwdt.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_wwdt.h
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief at32f415 wwdt header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_adc.c b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_adc.c
index 835183e38f..bb9a9ff73f 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_adc.c
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_adc.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_adc.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the adc firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_can.c b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_can.c
index 41a80de1cd..a9c16ccac4 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_can.c
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_can.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_can.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the can firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_cmp.c b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_cmp.c
index 67bfbabf9b..6463bd4154 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_cmp.c
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_cmp.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_cmp.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the gpio firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_crc.c b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_crc.c
index 88083448f9..a7826ae60f 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_crc.c
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_crc.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_crc.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the crc firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_crm.c b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_crm.c
index 47aaafd3bd..989a3d9138 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_crm.c
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_crm.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_crm.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the crm firmware library
**************************************************************************
* Copyright notice & Disclaimer
@@ -61,6 +61,9 @@ void crm_reset(void)
/* wait sclk switch status */
while(CRM->cfg_bit.sclksts != CRM_SCLK_HICK);
+ /* reset hexten, hextbyps, cfden and pllen bits */
+ CRM->ctrl &= ~(0x010D0000U);
+
/* reset cfg register, include sclk switch, ahbdiv, apb1div, apb2div, adcdiv,
clkout pllrcs, pllhextdiv, pllmult, usbdiv and pllrange bits */
CRM->cfg = 0;
@@ -68,9 +71,6 @@ void crm_reset(void)
/* reset pllfr, pllms, pllns and pllfref bits */
CRM->pll = (0x00001F10U);
- /* reset hexten, hextbyps, cfden and pllen bits */
- CRM->ctrl &= ~(0x010D0000U);
-
/* reset clkout[3], usbbufs, hickdiv, clkoutdiv */
CRM->misc1 = 0x00100000;
@@ -343,6 +343,7 @@ void crm_flag_clear(uint32_t flag)
case CRM_LOWPOWER_RESET_FLAG:
case CRM_ALL_RESET_FLAG:
CRM->ctrlsts_bit.rstfc = TRUE;
+ while(CRM->ctrlsts_bit.rstfc == TRUE);
break;
case CRM_LICK_READY_INT_FLAG:
CRM->clkint_bit.lickstblfc = TRUE;
diff --git a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_debug.c b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_debug.c
index 8c4717eeda..c05cd3a76e 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_debug.c
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_debug.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_debug.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the debug firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_dma.c b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_dma.c
index 6cf37f4edf..e1aafacb00 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_dma.c
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_dma.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_dma.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the dma firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_ertc.c b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_ertc.c
index 19d88c88a7..40517dcb5d 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_ertc.c
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_ertc.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_ertc.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the ertc firmware library
**************************************************************************
* Copyright notice & Disclaimer
@@ -1460,13 +1460,7 @@ flag_status ertc_flag_get(uint32_t flag)
*/
void ertc_flag_clear(uint32_t flag)
{
- /* disable write protection */
- ertc_write_protect_disable();
-
ERTC->sts = ~(flag | 0x00000080) | (ERTC->sts_bit.imen << 7);
-
- /* enable write protection */
- ertc_write_protect_enable();
}
/**
diff --git a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_exint.c b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_exint.c
index b78615878c..86be50c982 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_exint.c
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_exint.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_exint.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the exint firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_flash.c b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_flash.c
index b422c15f1f..5922395942 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_flash.c
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_flash.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_flash.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the flash firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_gpio.c b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_gpio.c
index b54836bb53..5e2cf8036b 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_gpio.c
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_gpio.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_gpio.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the gpio firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_i2c.c b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_i2c.c
index 3eb07a79c9..47988ebe5e 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_i2c.c
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_i2c.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_i2c.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the i2c firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_misc.c b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_misc.c
index 5a3a7e2df1..90719fde7a 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_misc.c
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_misc.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_misc.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the misc firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_pwc.c b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_pwc.c
index 55819f85db..75f4134496 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_pwc.c
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_pwc.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_pwc.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the pwc firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_sdio.c b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_sdio.c
index 98b30881e8..d9d878261e 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_sdio.c
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_sdio.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_sdio.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the sdio firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_spi.c b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_spi.c
index 960552ddc8..fc0f41d5ff 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_spi.c
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_spi.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_spi.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the spi firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_tmr.c b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_tmr.c
index f6f3f2c6d6..9890d8c563 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_tmr.c
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_tmr.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_tmr.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the tmr firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_usart.c b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_usart.c
index a99845279d..3d5e17263f 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_usart.c
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_usart.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_usart.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the usart firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_usb.c b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_usb.c
index 40fafe2b44..cb0c758dda 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_usb.c
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_usb.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_usb.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the usb firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_wdt.c b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_wdt.c
index 29fadcb675..24d1803bb7 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_wdt.c
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_wdt.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_wdt.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the wdt firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_wwdt.c b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_wwdt.c
index f6c3647586..9a1e460baa 100644
--- a/bsp/at32/libraries/f415/firmware/drivers/src/at32f415_wwdt.c
+++ b/bsp/at32/libraries/AT32F415_Firmware_Library/drivers/src/at32f415_wwdt.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f415_wwdt.c
- * @version v2.0.4
- * @date 2022-04-02
+ * @version v2.0.5
+ * @date 2022-05-20
* @brief contains all the functions for the wwdt firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/SConscript b/bsp/at32/libraries/AT32F435_437_Firmware_Library/SConscript
index dea4245d58..dea4245d58 100644
--- a/bsp/at32/libraries/f435_437/firmware/SConscript
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/SConscript
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/arm_common_tables.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/arm_common_tables.h
index 721b18dd2d..721b18dd2d 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/arm_common_tables.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/arm_common_tables.h
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/arm_const_structs.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/arm_const_structs.h
index 83984c40cd..83984c40cd 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/arm_const_structs.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/arm_const_structs.h
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/arm_helium_utils.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/arm_helium_utils.h
index 85688575eb..85688575eb 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/arm_helium_utils.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/arm_helium_utils.h
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/arm_math.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/arm_math.h
index 2483e6ecfb..2483e6ecfb 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/arm_math.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/arm_math.h
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/arm_mve_tables.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/arm_mve_tables.h
index c07f988f5c..c07f988f5c 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/arm_mve_tables.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/arm_mve_tables.h
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/arm_vec_math.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/arm_vec_math.h
index 0ce9464bcb..0ce9464bcb 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/arm_vec_math.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/arm_vec_math.h
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/cmsis_armcc.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/cmsis_armcc.h
index 9570d3623e..9570d3623e 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/cmsis_armcc.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/cmsis_armcc.h
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/cmsis_armclang.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/cmsis_armclang.h
index b466ba4345..b466ba4345 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/cmsis_armclang.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/cmsis_armclang.h
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/cmsis_armclang_ltm.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/cmsis_armclang_ltm.h
index e0c5b941b1..e0c5b941b1 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/cmsis_armclang_ltm.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/cmsis_armclang_ltm.h
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/cmsis_compiler.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/cmsis_compiler.h
index 8d3ab9721e..8d3ab9721e 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/cmsis_compiler.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/cmsis_compiler.h
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/cmsis_gcc.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/cmsis_gcc.h
index 683ce0f261..683ce0f261 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/cmsis_gcc.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/cmsis_gcc.h
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/cmsis_iccarm.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/cmsis_iccarm.h
index 890ba207eb..890ba207eb 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/cmsis_iccarm.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/cmsis_iccarm.h
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/cmsis_version.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/cmsis_version.h
index c999178e04..c999178e04 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/cmsis_version.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/cmsis_version.h
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/core_cm4.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/core_cm4.h
index 6a50d5e86d..6a50d5e86d 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/core_cm4.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/core_cm4.h
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/mpu_armv7.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/mpu_armv7.h
index 442fc21a3b..442fc21a3b 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/mpu_armv7.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/mpu_armv7.h
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/mpu_armv8.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/mpu_armv8.h
index 3a197fbb49..3a197fbb49 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/mpu_armv8.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/mpu_armv8.h
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/pmu_armv8.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/pmu_armv8.h
index 23b37d95e4..23b37d95e4 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/core_support/pmu_armv8.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/core_support/pmu_armv8.h
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/at32f435_437.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/at32f435_437.h
index d21a23a12c..f7d6a7da34 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/at32f435_437.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/at32f435_437.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 header file
**************************************************************************
* Copyright notice & Disclaimer
@@ -100,7 +100,7 @@ extern "C" {
*/
#define __AT32F435_437_LIBRARY_VERSION_MAJOR (0x02) /*!< [31:24] major version */
#define __AT32F435_437_LIBRARY_VERSION_MIDDLE (0x00) /*!< [23:16] middle version */
-#define __AT32F435_437_LIBRARY_VERSION_MINOR (0x07) /*!< [15:8] minor version */
+#define __AT32F435_437_LIBRARY_VERSION_MINOR (0x08) /*!< [15:8] minor version */
#define __AT32F435_437_LIBRARY_VERSION_RC (0x00) /*!< [7:0] release candidate */
#define __AT32F435_437_LIBRARY_VERSION ((__AT32F435_437_LIBRARY_VERSION_MAJOR << 24) | \
(__AT32F435_437_LIBRARY_VERSION_MIDDLE << 16) | \
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/at32f435_437_conf_template.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/at32f435_437_conf_template.h
index ebcbc89c3b..6599acfc4b 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/at32f435_437_conf_template.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/at32f435_437_conf_template.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_conf.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 config header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F435xC_FLASH.ld b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F435xC_FLASH.ld
index b266a5fc52..b266a5fc52 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F435xC_FLASH.ld
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F435xC_FLASH.ld
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F435xG_FLASH.ld b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F435xG_FLASH.ld
index bb41dfc49c..bb41dfc49c 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F435xG_FLASH.ld
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F435xG_FLASH.ld
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F435xM_FLASH.ld b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F435xM_FLASH.ld
index b14a236d69..b14a236d69 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F435xM_FLASH.ld
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F435xM_FLASH.ld
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F437xC_FLASH.ld b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F437xC_FLASH.ld
index a9e55dd771..a9e55dd771 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F437xC_FLASH.ld
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F437xC_FLASH.ld
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F437xG_FLASH.ld b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F437xG_FLASH.ld
index 49ddec76ee..49ddec76ee 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F437xG_FLASH.ld
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F437xG_FLASH.ld
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F437xM_FLASH.ld b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F437xM_FLASH.ld
index 8b4db93ab6..8b4db93ab6 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/gcc/linker/AT32F437xM_FLASH.ld
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/gcc/linker/AT32F437xM_FLASH.ld
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/gcc/startup_at32f435_437.s b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/gcc/startup_at32f435_437.s
index 35feb5c32e..3291e9456b 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/gcc/startup_at32f435_437.s
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/gcc/startup_at32f435_437.s
@@ -1,8 +1,8 @@
/**
******************************************************************************
* @file startup_at32f435_437.s
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 devices vector table for gcc toolchain.
* this module performs:
* - set the initial sp
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F435xC.icf b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F435xC.icf
index e9b6bd1a08..e9b6bd1a08 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F435xC.icf
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F435xC.icf
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F435xG.icf b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F435xG.icf
index 690530ac82..690530ac82 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F435xG.icf
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F435xG.icf
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F435xM.icf b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F435xM.icf
index 398099a3df..398099a3df 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F435xM.icf
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F435xM.icf
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F437xC.icf b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F437xC.icf
index e9b6bd1a08..e9b6bd1a08 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F437xC.icf
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F437xC.icf
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F437xG.icf b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F437xG.icf
index 690530ac82..690530ac82 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F437xG.icf
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F437xG.icf
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F437xM.icf b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F437xM.icf
index 398099a3df..398099a3df 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/iar/linker/AT32F437xM.icf
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/iar/linker/AT32F437xM.icf
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/iar/startup_at32f435_437.s b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/iar/startup_at32f435_437.s
index 21f845e3f1..0c98e7d5d7 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/iar/startup_at32f435_437.s
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/iar/startup_at32f435_437.s
@@ -1,7 +1,7 @@
;**************************************************************************
;* @file startup_at32f435_437.s
-;* @version v2.0.7
-;* @date 2022-04-02
+;* @version v2.0.8
+;* @date 2022-04-25
;* @brief at32f435_437 startup file for IAR Systems
;**************************************************************************
;
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/mdk/startup_at32f435_437.s b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/mdk/startup_at32f435_437.s
index 9c3c3c8c1b..0f1321199a 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/startup/mdk/startup_at32f435_437.s
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/startup/mdk/startup_at32f435_437.s
@@ -1,7 +1,7 @@
;**************************************************************************
;* @file startup_at32f435_437.s
-;* @version v2.0.7
-;* @date 2022-04-02
+;* @version v2.0.8
+;* @date 2022-04-25
;* @brief at32f435_437 startup file for keil
;**************************************************************************
;
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/system_at32f435_437.c b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/system_at32f435_437.c
index 9df3511c76..70070c7796 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/system_at32f435_437.c
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/system_at32f435_437.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file system_at32f435_437.c
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief contains all the functions for cmsis cortex-m4 system source file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/system_at32f435_437.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/system_at32f435_437.h
index 7d30a2317a..1365c30f43 100644
--- a/bsp/at32/libraries/f435_437/firmware/cmsis/cm4/device_support/system_at32f435_437.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/cmsis/cm4/device_support/system_at32f435_437.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file system_at32f435_437.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief cmsis cortex-m4 system header file.
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_acc.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_acc.h
index 9f6a9121c7..50eac602f0 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_acc.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_acc.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_acc.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 acc header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_adc.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_adc.h
index 5dd1bb2873..9f390c9ee8 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_adc.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_adc.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_adc.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 adc header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_can.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_can.h
index 18f3c0c4d5..9fcb209d15 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_can.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_can.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_can.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 can header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_crc.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_crc.h
index 158f184396..484f3abfbb 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_crc.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_crc.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_crc.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 crc header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_crm.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_crm.h
index 4244b33c76..5358d720d3 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_crm.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_crm.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_crm.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 crm header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_dac.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_dac.h
index c9ef45f647..01cb78b8aa 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_dac.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_dac.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_dac.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 dac header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_debug.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_debug.h
index 9e8d035c0c..80adf93513 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_debug.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_debug.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_mcudbg.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 mcudbg header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_def.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_def.h
index ee26fb86d6..285988cd42 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_def.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_def.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_def.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 macros header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_dma.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_dma.h
index 80b71428f0..ce8adb3d7c 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_dma.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_dma.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_dma.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 dma header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_dvp.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_dvp.h
index 42daa212b2..3169c63fa2 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_dvp.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_dvp.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_dvp.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 dvp header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_edma.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_edma.h
index 04db63ffe9..9d0d408d6c 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_edma.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_edma.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_edma.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 edma header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_emac.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_emac.h
index d259d65dd1..85c04805b6 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_emac.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_emac.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_emac.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 eth header file
**************************************************************************
* Copyright notice & Disclaimer
@@ -44,7 +44,7 @@ extern "C" {
* @{
*/
-#define PHY_TIMEOUT (0x0FFFFFFF) /*!< timeout for phy response */
+#define PHY_TIMEOUT (0x000FFFFF) /*!< timeout for phy response */
/** @defgroup EMAC_smi_clock_border_definition
* @brief emac smi clock border
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_ertc.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_ertc.h
index 2185626b6e..a13eafd19c 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_ertc.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_ertc.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_ertc.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 ertc header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_exint.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_exint.h
index ca25fa995c..fe25afa692 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_exint.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_exint.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_exint.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 exint header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_flash.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_flash.h
index 931a7c1b81..19cf2d83f7 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_flash.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_flash.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_flash.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 flash header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_gpio.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_gpio.h
index 303bb3fb8e..c6b487d505 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_gpio.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_gpio.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_gpio.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 gpio header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_i2c.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_i2c.h
index 20370ec98b..cdab00e6fe 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_i2c.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_i2c.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_i2c.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 i2c header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_misc.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_misc.h
index 893f71f5d2..9d14517952 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_misc.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_misc.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_misc.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 misc header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_pwc.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_pwc.h
index 667304b12e..0d302a43a6 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_pwc.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_pwc.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_pwc.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 pwr header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_qspi.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_qspi.h
index bcb861c8bc..4cd235ec1c 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_qspi.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_qspi.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_qspi.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 qspi header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_scfg.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_scfg.h
index 03109a1a92..0c221880ca 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_scfg.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_scfg.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_scfg.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 system config header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_sdio.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_sdio.h
index 1ad057ce9d..33d5ca76f5 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_sdio.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_sdio.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_sdio.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 sdio header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_spi.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_spi.h
index c5b0e3321b..d28b3d90d6 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_spi.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_spi.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_spi.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 spi header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_tmr.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_tmr.h
index a0e6629914..de800e971a 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_tmr.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_tmr.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_tmr.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 tmr header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_usart.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_usart.h
index de0116d2d0..4416c3a61d 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_usart.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_usart.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_usart.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 usart header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_usb.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_usb.h
index 00bdbf3080..9e41b14cb9 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_usb.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_usb.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_usb.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 usb header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_wdt.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_wdt.h
index f80358b573..2b823eee1b 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_wdt.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_wdt.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_wdt.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 wdt header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_wwdt.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_wwdt.h
index 4f4fbecaca..d8a572372e 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_wwdt.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_wwdt.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_wwdt.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 wwdt header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_xmc.h b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_xmc.h
index d1128ff378..7d3b9e68dc 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/inc/at32f435_437_xmc.h
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/inc/at32f435_437_xmc.h
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_xmc.h
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief at32f435_437 xmc header file
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_acc.c b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_acc.c
index d239ac4839..69a3ae74ee 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_acc.c
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_acc.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_acc.c
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief contains all the functions for the acc firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_adc.c b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_adc.c
index 18b1f6adb1..5ca6d054bc 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_adc.c
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_adc.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_adc.c
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief contains all the functions for the adc firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_can.c b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_can.c
index 57310b57fc..e4df40f222 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_can.c
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_can.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_can.c
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief contains all the functions for the can firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_crc.c b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_crc.c
index b6e02f4071..3d225cabea 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_crc.c
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_crc.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_crc.c
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief contains all the functions for the crc firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_crm.c b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_crm.c
index 1f3da57c1b..378aa9443a 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_crm.c
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_crm.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_crm.c
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief contains all the functions for the crm firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_dac.c b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_dac.c
index e8c38c8722..daa9a528f6 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_dac.c
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_dac.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_dac.c
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief contains all the functions for the dac firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_debug.c b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_debug.c
index 84c3488e70..86d07cdbac 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_debug.c
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_debug.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_mcudbg.c
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief contains all the functions for the mcudbg firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_dma.c b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_dma.c
index 22f5bf0040..24dce61dc4 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_dma.c
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_dma.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_dma.c
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief contains all the functions for the dma firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_dvp.c b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_dvp.c
index 35cc05df63..f8de9ada7d 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_dvp.c
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_dvp.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_dvp.c
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief contains all the functions for the dvp firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_edma.c b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_edma.c
index 5e9bb0cb05..42cc0a28dd 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_edma.c
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_edma.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_edma.c
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief contains all the functions for the edma firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_emac.c b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_emac.c
index 0ddb0d7dc3..749766eeb5 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_emac.c
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_emac.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_emac.c
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief contains all the functions for the emac firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_ertc.c b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_ertc.c
index 18c6f29e48..ab5aaed58f 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_ertc.c
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_ertc.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_ertc.c
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief contains all the functions for the ertc firmware library
**************************************************************************
* Copyright notice & Disclaimer
@@ -1506,13 +1506,7 @@ flag_status ertc_flag_get(uint32_t flag)
*/
void ertc_flag_clear(uint32_t flag)
{
- /* disable write protection */
- ertc_write_protect_disable();
-
ERTC->sts = ~(flag | 0x00000080) | (ERTC->sts_bit.imen << 7);
-
- /* enable write protection */
- ertc_write_protect_enable();
}
/**
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_exint.c b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_exint.c
index 74ca291998..bade7c89b7 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_exint.c
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_exint.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_exint.c
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief contains all the functions for the exint firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_flash.c b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_flash.c
index 54a5f4f915..1003400d75 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_flash.c
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_flash.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_flash.c
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief contains all the functions for the flash firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_gpio.c b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_gpio.c
index 87a2245f89..e6af8067db 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_gpio.c
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_gpio.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_gpio.c
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief contains all the functions for the gpio firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_i2c.c b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_i2c.c
index 8c129a6abf..5bf12026e3 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_i2c.c
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_i2c.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_i2c.c
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief contains all the functions for the i2c firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_misc.c b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_misc.c
index 8baee0d7fe..c94394eca8 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_misc.c
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_misc.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_misc.c
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief contains all the functions for the misc firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_pwc.c b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_pwc.c
index 72bd814872..0ea1c278d5 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_pwc.c
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_pwc.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_pwc.c
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief contains all the functions for the pwc firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_qspi.c b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_qspi.c
index dcb3d41a96..e46c06506a 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_qspi.c
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_qspi.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_qspi.c
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief contain all the functions for qspi firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_scfg.c b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_scfg.c
index 8e65c1fee3..3d31f26f2f 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_scfg.c
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_scfg.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_scfg.c
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief contains all the functions for the system config firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_sdio.c b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_sdio.c
index 5d90fd97d6..f5b53efa38 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_sdio.c
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_sdio.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_sdio.c
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief contains all the functions for the sdio firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_spi.c b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_spi.c
index 81fc943cf2..abc26cd272 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_spi.c
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_spi.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_spi.c
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief contains all the functions for the spi firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_tmr.c b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_tmr.c
index 5617697ff1..cc62736683 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_tmr.c
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_tmr.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_tmr.c
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief contains all the functions for the tmr firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_usart.c b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_usart.c
index 623a28c73d..58803c89ba 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_usart.c
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_usart.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_usart.c
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief contains all the functions for the usart firmware library
**************************************************************************
* Copyright notice & Disclaimer
@@ -117,7 +117,7 @@ void usart_init(usart_type* usart_x, uint32_t baud_rate, usart_data_bit_num_type
crm_clocks_freq_type clocks_freq;
uint32_t apb_clock, temp_val;
crm_clocks_freq_get(&clocks_freq);
- if((usart_x == USART1) || (usart_x == USART6) || (usart_x == UART7) || (usart_x == UART8))
+ if((usart_x == USART1) || (usart_x == USART6))
{
apb_clock = clocks_freq.apb2_freq;
}
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_usb.c b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_usb.c
index 307d447067..8f63015236 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_usb.c
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_usb.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_usb.c
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief contains all the functions for the usb firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_wdt.c b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_wdt.c
index ada418d67f..a93eec352a 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_wdt.c
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_wdt.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_wdt.c
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief contains all the functions for the wdt firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_wwdt.c b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_wwdt.c
index 7e45b3bdd2..967af61a40 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_wwdt.c
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_wwdt.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_wwdt.c
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief contains all the functions for the wwdt firmware library
**************************************************************************
* Copyright notice & Disclaimer
diff --git a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_xmc.c b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_xmc.c
index 1e18df84cf..ac6df0b167 100644
--- a/bsp/at32/libraries/f435_437/firmware/drivers/src/at32f435_437_xmc.c
+++ b/bsp/at32/libraries/AT32F435_437_Firmware_Library/drivers/src/at32f435_437_xmc.c
@@ -1,8 +1,8 @@
/**
**************************************************************************
* @file at32f435_437_xmc.c
- * @version v2.0.7
- * @date 2022-04-02
+ * @version v2.0.8
+ * @date 2022-04-25
* @brief contains all the functions for the xmc firmware library
**************************************************************************
* Copyright notice & Disclaimer
@@ -505,7 +505,7 @@ void xmc_sdram_init(xmc_sdram_init_type *xmc_sdram_init_struct, xmc_sdram_timing
XMC_SDRAM->ctrl_bit[XMC_SDRAM_BANK2].wrp = xmc_sdram_init_struct->write_protection;
/* sdctrl2 bstr is not care */
XMC_SDRAM->ctrl_bit[XMC_SDRAM_BANK1].bstr = xmc_sdram_init_struct->burst_read;
- XMC_SDRAM->ctrl_bit[XMC_SDRAM_BANK2].rd = xmc_sdram_init_struct->read_delay;
+ XMC_SDRAM->ctrl_bit[XMC_SDRAM_BANK1].rd = xmc_sdram_init_struct->read_delay;
/* sdctrl2 clkdiv is not care */
XMC_SDRAM->ctrl_bit[XMC_SDRAM_BANK1].clkdiv = xmc_sdram_init_struct->clkdiv;
diff --git a/bsp/at32/libraries/f403a_407/.ignore_format.yml b/bsp/at32/libraries/f403a_407/.ignore_format.yml
deleted file mode 100644
index b5c3accab5..0000000000
--- a/bsp/at32/libraries/f403a_407/.ignore_format.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-# files format check exclude path, please follow the instructions below to modify;
-# If you need to exclude an entire folder, add the folder path in dir_path;
-# If you need to exclude a file, add the path to the file in file_path.
-
-dir_path:
-- firmware
diff --git a/bsp/at32/libraries/f403a_407/SConscript b/bsp/at32/libraries/f403a_407/SConscript
deleted file mode 100644
index c7ef7659ec..0000000000
--- a/bsp/at32/libraries/f403a_407/SConscript
+++ /dev/null
@@ -1,14 +0,0 @@
-# for module compiling
-import os
-from building import *
-
-cwd = GetCurrentDir()
-objs = []
-list = os.listdir(cwd)
-
-for d in list:
- path = os.path.join(cwd, d)
- if os.path.isfile(os.path.join(path, 'SConscript')):
- objs = objs + SConscript(os.path.join(d, 'SConscript'))
-
-Return('objs')
diff --git a/bsp/at32/libraries/f403a_407/rt_drivers/SConscript b/bsp/at32/libraries/f403a_407/rt_drivers/SConscript
deleted file mode 100644
index a28fb192d9..0000000000
--- a/bsp/at32/libraries/f403a_407/rt_drivers/SConscript
+++ /dev/null
@@ -1,60 +0,0 @@
-# RT-Thread building script for component
-Import('RTT_ROOT')
-Import('rtconfig')
-from building import *
-
-cwd = GetCurrentDir()
-
-# add the general drivers.
-src = Split("""
-drv_common.c
-""")
-
-if GetDepend(['RT_USING_PIN']):
- src += ['drv_gpio.c']
-
-if GetDepend(['RT_USING_WDT']):
- src += ['drv_wdt.c']
-
-if GetDepend(['BSP_USING_SERIAL']):
- src += ['drv_usart.c']
-
-if GetDepend(['BSP_USING_PWM']):
- src += ['drv_pwm.c']
-
-if GetDepend(['BSP_USING_HWTIMER']):
- src += ['drv_hwtimer.c']
-
-if GetDepend(['BSP_USING_SPI']):
- src += ['drv_spi.c']
-
-if GetDepend(['BSP_USING_EMAC', 'RT_USING_LWIP']):
- src += ['drv_emac.c']
-
-if GetDepend(['RT_USING_I2C', 'RT_USING_I2C_BITOPS']):
- if GetDepend('BSP_USING_I2C1') or GetDepend('BSP_USING_I2C2') or GetDepend('BSP_USING_I2C3') or GetDepend('BSP_USING_I2C4'):
- src += ['drv_soft_i2c.c']
-
-if GetDepend(['BSP_USING_ADC']):
- src += Glob('drv_adc.c')
-
-if GetDepend('BSP_USING_RTC'):
- src += ['drv_rtc.c']
-
-if GetDepend('BSP_USING_ON_CHIP_FLASH'):
- src += ['drv_flash.c']
-
-if GetDepend(['BSP_USING_WDT']):
- src += ['drv_wdt.c']
-
-if GetDepend(['BSP_USING_CAN']):
- src += ['drv_can.c']
-
-if GetDepend(['BSP_USING_SDIO']):
- src += ['drv_sdio.c']
-
-CPPPATH = [cwd]
-
-group = DefineGroup('Drivers', src, depend = [''], CPPPATH = CPPPATH)
-
-Return('group')
diff --git a/bsp/at32/libraries/f403a_407/rt_drivers/drv_adc.c b/bsp/at32/libraries/f403a_407/rt_drivers/drv_adc.c
deleted file mode 100644
index 9bf34a26e5..0000000000
--- a/bsp/at32/libraries/f403a_407/rt_drivers/drv_adc.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-11 shelton first version
- */
-
-#include "board.h"
-#include "drv_adc.h"
-
-#if defined(BSP_USING_ADC1) || defined(BSP_USING_ADC2) || \
- defined(BSP_USING_ADC3)
-
-//#define DRV_DEBUG
-#define LOG_TAG "drv.adc"
-#include <drv_log.h>
-
-struct at32_adc
-{
- struct rt_adc_device at32_adc_device;
- adc_type *adc_x;
- char *name;
-};
-
-static struct at32_adc at32_adc_obj[] =
-{
-#ifdef BSP_USING_ADC1
- ADC1_CONFIG,
-#endif
-
-#ifdef BSP_USING_ADC2
- ADC2_CONFIG,
-#endif
-
-#ifdef BSP_USING_ADC3
- ADC3_CONFIG,
-#endif
-};
-
-static rt_err_t at32_adc_enabled(struct rt_adc_device *device, rt_uint32_t channel, rt_bool_t enabled)
-{
- adc_type *adc_x;
- adc_base_config_type adc_config_struct;
-
- RT_ASSERT(device != RT_NULL);
- adc_x = device->parent.user_data;
-
- at32_msp_adc_init(adc_x);
-
- /* adc_x configuration */
- adc_base_default_para_init(&adc_config_struct);
- adc_config_struct.data_align = ADC_RIGHT_ALIGNMENT;
- adc_config_struct.ordinary_channel_length = 1;
- adc_config_struct.repeat_mode = FALSE;
- adc_config_struct.sequence_mode = FALSE;
- adc_base_config(adc_x, &adc_config_struct);
- adc_combine_mode_select(ADC_INDEPENDENT_MODE);
- adc_ordinary_conversion_trigger_set(adc_x, ADC12_ORDINARY_TRIG_SOFTWARE, TRUE);
-
- if (!enabled)
- {
- /* disable adc_x */
- adc_enable(adc_x, FALSE);
- }
- else
- {
- /* enable adc_x */
- adc_enable(adc_x, TRUE);
-
- /* enable adc_x calibration */
- adc_calibration_init(adc_x);
- /* check the end of adc_x reset calibration register */
- while(adc_calibration_init_status_get(adc_x) == SET)
- {
- }
- /* start adc_x calibration */
- adc_calibration_start(adc_x);
- /* check the end of adc_x calibration */
- while(adc_calibration_status_get(adc_x) == SET)
- {
- }
- }
-
- return RT_EOK;
-}
-
-static rt_err_t at32_get_adc_value(struct rt_adc_device *device, rt_uint32_t channel, rt_uint32_t *value)
-{
- adc_type *adc_x;
- rt_uint32_t timeout = 0;
-
- RT_ASSERT(device != RT_NULL);
- adc_x = device->parent.user_data;
-
- /* adc_x regular channels configuration */
- adc_ordinary_channel_set(adc_x, (adc_channel_select_type)channel, 1, ADC_SAMPLETIME_239_5);
-
- /* start adc_x software conversion */
- adc_ordinary_software_trigger_enable(adc_x, TRUE);
-
- /* wait for the adc to convert */
- while((adc_flag_get(adc_x, ADC_CCE_FLAG) == RESET) && timeout < 0xFFFF)
- {
- timeout ++;
- }
-
- if(timeout >= 0xFFFF)
- {
- LOG_D("channel%d converts timeout, please confirm adc_x enabled or not", channel);
- }
-
- /* get adc value */
- *value = adc_ordinary_conversion_data_get(adc_x);
-
- return RT_EOK;
-}
-
-static const struct rt_adc_ops at_adc_ops =
-{
- .enabled = at32_adc_enabled,
- .convert = at32_get_adc_value,
-};
-
-static int rt_hw_adc_init(void)
-{
- int result = RT_EOK;
- int i = 0;
-
- for (i = 0; i < sizeof(at32_adc_obj) / sizeof(at32_adc_obj[0]); i++)
- {
- /* register ADC device */
- if (rt_hw_adc_register(&at32_adc_obj[i].at32_adc_device, at32_adc_obj[i].name, &at_adc_ops, at32_adc_obj[i].adc_x) == RT_EOK)
- {
- LOG_D("%s register success", at32_adc_obj[i].name);
- }
- else
- {
- LOG_E("%s register failed", at32_adc_obj[i].name);
- result = -RT_ERROR;
- }
-
- }
-
- return result;
-}
-INIT_BOARD_EXPORT(rt_hw_adc_init);
-
-#endif /* BSP_USING_ADC */
diff --git a/bsp/at32/libraries/f403a_407/rt_drivers/drv_adc.h b/bsp/at32/libraries/f403a_407/rt_drivers/drv_adc.h
deleted file mode 100644
index 03daa7b471..0000000000
--- a/bsp/at32/libraries/f403a_407/rt_drivers/drv_adc.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-11 leo first version
- */
-
-#ifndef __ADC_CONFIG_H__
-#define __ADC_CONFIG_H__
-
-#include <rtthread.h>
-#include <drivers/adc.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if defined(BSP_USING_ADC1) || defined(BSP_USING_ADC2) || defined(BSP_USING_ADC3)
-
-#ifndef ADC1_CONFIG
-#define ADC1_CONFIG \
- { \
- .adc_x = ADC1, \
- .name = "adc1", \
- }
-#endif /* ADC1_CONFIG */
-
-#ifndef ADC2_CONFIG
-#define ADC2_CONFIG \
- { \
- .adc_x = ADC2, \
- .name = "adc2", \
- }
-#endif /* ADC2_CONFIG */
-
-#ifndef ADC3_CONFIG
-#define ADC3_CONFIG \
- { \
- .adc_x = ADC3, \
- .name = "adc3", \
- }
-#endif /* ADC3_CONFIG */
-
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __ADC_CONFIG_H__ */
diff --git a/bsp/at32/libraries/f403a_407/rt_drivers/drv_can.h b/bsp/at32/libraries/f403a_407/rt_drivers/drv_can.h
deleted file mode 100644
index cec0239989..0000000000
--- a/bsp/at32/libraries/f403a_407/rt_drivers/drv_can.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-11 shelton first version
- */
-
-#ifndef __DRV_CAN_H__
-#define __DRV_CAN_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtdevice.h>
-#include <rtthread.h>
-#include "board.h"
-
-struct at32_baud_rate
-{
- rt_uint32_t baud_rate;
- can_baudrate_type baud_struct;
-};
-
-struct can_config
-{
- can_type *can_x;
- can_base_type base_init_struct;
- can_baudrate_type baudrate_init_struct;
- can_filter_init_type filter_init_struct;
-};
-
-/* at32 can device */
-struct at32_can
-{
- char *name;
- struct can_config config;
- struct rt_can_device device; /* inherit from can device */
-};
-
-int rt_hw_can_init(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /*__DRV_CAN_H__ */
-
-/************************** end of file ******************/
diff --git a/bsp/at32/libraries/f403a_407/rt_drivers/drv_common.c b/bsp/at32/libraries/f403a_407/rt_drivers/drv_common.c
deleted file mode 100644
index 75404bb74a..0000000000
--- a/bsp/at32/libraries/f403a_407/rt_drivers/drv_common.c
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-08 shelton first version
- */
-
-#include "board.h"
-#include "drv_common.h"
-
-#ifdef RT_USING_SERIAL
-#include "drv_usart.h"
-#endif
-
-#define DBG_TAG "drv_common"
-#define DBG_LVL DBG_INFO
-#include <rtdbg.h>
-
-#ifdef RT_USING_FINSH
-#include <finsh.h>
-static void reboot(uint8_t argc, char **argv)
-{
- rt_hw_cpu_reset();
-}
-MSH_CMD_EXPORT(reboot, Reboot System);
-#endif /* RT_USING_FINSH */
-
-extern __IO uint32_t uwTick;
-static uint32_t _systick_ms = 1;
-
-/* systick configuration */
-void rt_hw_systick_init(void)
-{
- systick_clock_source_config(SYSTICK_CLOCK_SOURCE_AHBCLK_NODIV);
- SysTick_Config(system_core_clock / RT_TICK_PER_SECOND);
-
- nvic_irq_enable(SysTick_IRQn, 0, 0);
-
- _systick_ms = 1000u / RT_TICK_PER_SECOND;
- if(_systick_ms == 0)
- _systick_ms = 1;
-}
-
-/**
- * this is the timer interrupt service routine.
- */
-void SysTick_Handler(void)
-{
- /* enter interrupt */
- rt_interrupt_enter();
-
- rt_tick_increase();
-
- /* leave interrupt */
- rt_interrupt_leave();
-}
-
-/**
- * @brief this function is executed in case of error occurrence.
- * @param none
- * @retval none
- */
-void _Error_Handler(char *s, int num)
-{
- /* User can add his own implementation to report the HAL error return state */
- LOG_E("Error_Handler at file:%s num:%d", s, num);
- while (1)
- {
- }
-}
-
-/**
- * this function will delay for some us.
- *
- * @param us the delay time of us
- */
-void rt_hw_us_delay(rt_uint32_t us)
-{
- rt_uint32_t ticks;
- rt_uint32_t told, tnow, tcnt = 0;
- rt_uint32_t reload = SysTick->LOAD;
-
- ticks = us * reload / (1000000 / RT_TICK_PER_SECOND);
- told = SysTick->VAL;
- while (1)
- {
- tnow = SysTick->VAL;
- if (tnow != told)
- {
- if (tnow < told)
- {
- tcnt += told - tnow;
- }
- else
- {
- tcnt += reload - tnow + told;
- }
- told = tnow;
- if (tcnt >= ticks)
- {
- break;
- }
- }
- }
-}
-
-/**
- * this function will initial at32 board.
- */
-RT_WEAK void rt_hw_board_init()
-{
- /* system clock initialization */
- system_clock_config();
-
- /* configure nvic priority group */
- nvic_priority_group_config(NVIC_PRIORITY_GROUP_4);
-
- /* systick init */
- rt_hw_systick_init();
-
- /* heap initialization */
-#if defined(RT_USING_HEAP)
- rt_system_heap_init((void *)HEAP_BEGIN, (void *)HEAP_END);
-#endif
-
- /* pin driver initialization is open by default */
-#ifdef RT_USING_PIN
- rt_hw_pin_init();
-#endif
-
- /* usart driver initialization is open by default */
-#ifdef RT_USING_SERIAL
- rt_hw_usart_init();
-#endif
-
- /* set the shell console output device */
-#if defined(RT_USING_CONSOLE) && defined(RT_USING_DEVICE)
- rt_console_set_device(RT_CONSOLE_DEVICE_NAME);
-#endif
-
- /* board underlying hardware initialization */
-#ifdef RT_USING_COMPONENTS_INIT
- rt_components_board_init();
-#endif
-}
-
diff --git a/bsp/at32/libraries/f403a_407/rt_drivers/drv_common.h b/bsp/at32/libraries/f403a_407/rt_drivers/drv_common.h
deleted file mode 100644
index c9d725bb52..0000000000
--- a/bsp/at32/libraries/f403a_407/rt_drivers/drv_common.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-08 shelton first version
- */
-
-#ifndef __DRV_COMMON_H__
-#define __DRV_COMMON_H__
-
-#include <rtthread.h>
-#include <rthw.h>
-#ifdef RT_USING_DEVICE
-#include <rtdevice.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void _Error_Handler(char *s, int num);
-
-#ifndef Error_Handler
-#define Error_Handler() _Error_Handler(__FILE__, __LINE__)
-#endif
-
-//#define DMA_NOT_AVAILABLE ((DMA_INSTANCE_TYPE *)0xFFFFFFFFU)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/bsp/at32/libraries/f403a_407/rt_drivers/drv_emac.c b/bsp/at32/libraries/f403a_407/rt_drivers/drv_emac.c
deleted file mode 100644
index 9ca854265f..0000000000
--- a/bsp/at32/libraries/f403a_407/rt_drivers/drv_emac.c
+++ /dev/null
@@ -1,868 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-21 shelton first version
- */
-
-#include "drv_emac.h"
-#include <netif/ethernetif.h>
-#include <lwipopts.h>
-
-/* debug option */
-//#define EMAC_RX_DUMP
-//#define EMAC_TX_DUMP
-//#define DRV_DEBUG
-#define LOG_TAG "drv.emac"
-#include <drv_log.h>
-
-#define CRYSTAL_ON_PHY 0
-
-/* emac memory buffer configuration */
-#define EMAC_NUM_RX_BUF 4 /* 0x1800 for rx (4 * 1536 = 6k) */
-#define EMAC_NUM_TX_BUF 2 /* 0x0600 for tx (2 * 1536 = 3k) */
-
-#define MAX_ADDR_LEN 6
-
-struct rt_at32_emac
-{
- /* inherit from ethernet device */
- struct eth_device parent;
-#ifndef PHY_USING_INTERRUPT_MODE
- rt_timer_t poll_link_timer;
-#endif
-
- /* interface address info, hw address */
- rt_uint8_t dev_addr[MAX_ADDR_LEN];
- /* emac_speed */
- emac_speed_type emac_speed;
- /* emac_duplex_mode */
- emac_duplex_type emac_mode;
-};
-
-static emac_dma_desc_type *dma_rx_dscr_tab, *dma_tx_dscr_tab;
-extern emac_dma_desc_type *dma_rx_desc_to_get, *dma_tx_desc_to_set;
-
-static rt_uint8_t *rx_buff, *tx_buff;
-static struct rt_at32_emac at32_emac_device;
-static uint8_t phy_addr = 0xFF;
-static struct rt_semaphore tx_wait;
-static rt_bool_t tx_is_waiting = RT_FALSE;
-
-#if defined(EMAC_RX_DUMP) || defined(EMAC_TX_DUMP)
-#define __is_print(ch) ((unsigned int)((ch) - ' ') < 127u - ' ')
-static void dump_hex(const rt_uint8_t *ptr, rt_size_t buflen)
-{
- unsigned char *buf = (unsigned char *)ptr;
- int i, j;
-
- for (i = 0; i < buflen; i += 16)
- {
- rt_kprintf("%08X: ", i);
-
- for (j = 0; j < 16; j++)
- if (i + j < buflen)
- rt_kprintf("%02X ", buf[i + j]);
- else
- rt_kprintf(" ");
- rt_kprintf(" ");
-
- for (j = 0; j < 16; j++)
- if (i + j < buflen)
- rt_kprintf("%c", __is_print(buf[i + j]) ? buf[i + j] : '.');
- rt_kprintf("\n");
- }
-}
-#endif
-
-/**
- * @brief phy reset
- */
-static void phy_reset(void)
-{
- gpio_init_type gpio_init_struct;
-
- crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE);
-
- gpio_default_para_init(&gpio_init_struct);
- gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
- gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
- gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
- gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
- gpio_init_struct.gpio_pins = GPIO_PINS_8;
- gpio_init(GPIOC, &gpio_init_struct);
-
- gpio_bits_reset(GPIOC, GPIO_PINS_8);
- rt_thread_mdelay(2);
- gpio_bits_set(GPIOC, GPIO_PINS_8);
- rt_thread_mdelay(2000);
-}
-
-/**
- * @brief phy clock config
- */
-static void phy_clock_config(void)
-{
-#if (CRYSTAL_ON_PHY == 0)
- /* if CRYSTAL_NO_PHY, output clock with pa8 of mcu */
- gpio_init_type gpio_init_struct;
-
- crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
-
- gpio_default_para_init(&gpio_init_struct);
- gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
- gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
- gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
- gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
- gpio_init_struct.gpio_pins = GPIO_PINS_8;
- gpio_init(GPIOA, &gpio_init_struct);
-
- /* 9162 clkout output sysclk / 8 == 25 mhz, so system clock must be 200 mhz */
- /* 83848 clkout output sysclk / 4 == 50 mhz, so system clock must be 200 mhz */
- crm_clock_out_set(CRM_CLKOUT_SCLK);
-#if defined (PHY_USING_DM9162)
- crm_clkout_div_set(CRM_CLKOUT_DIV_8);
-#elif defined (PHY_USING_DP83848)
- crm_clkout_div_set(CRM_CLKOUT_DIV_4);
-#endif
-#endif
-}
-
-/**
- * @brief reset phy register
- */
-static error_status emac_phy_register_reset(void)
-{
- uint16_t data = 0;
- uint32_t timeout = 0;
- uint32_t i = 0;
-
- if(emac_phy_register_write(phy_addr, PHY_CONTROL_REG, PHY_RESET_BIT) == ERROR)
- {
- return ERROR;
- }
-
- for(i = 0; i < 0x000FFFFF; i++);
-
- do
- {
- timeout++;
- if(emac_phy_register_read(phy_addr, PHY_CONTROL_REG, &data) == ERROR)
- {
- return ERROR;
- }
- } while((data & PHY_RESET_BIT) && (timeout < PHY_TIMEOUT));
-
- for(i = 0; i < 0x00FFFFF; i++);
- if(timeout == PHY_TIMEOUT)
- {
- return ERROR;
- }
- return SUCCESS;
-}
-
-/**
- * @brief set mac speed related parameters
- */
-static error_status emac_speed_config(emac_auto_negotiation_type nego, emac_duplex_type mode, emac_speed_type speed)
-{
- uint16_t data = 0;
- uint32_t timeout = 0;
- if(nego == EMAC_AUTO_NEGOTIATION_ON)
- {
- do
- {
- timeout++;
- if(emac_phy_register_read(phy_addr, PHY_STATUS_REG, &data) == ERROR)
- {
- return ERROR;
- }
- } while(!(data & PHY_LINKED_STATUS_BIT) && (timeout < PHY_TIMEOUT));
-
- if(timeout == PHY_TIMEOUT)
- {
- return ERROR;
- }
-
- timeout = 0;
-
- if(emac_phy_register_write(phy_addr, PHY_CONTROL_REG, PHY_AUTO_NEGOTIATION_BIT) == ERROR)
- {
- return ERROR;
- }
-
- do
- {
- timeout++;
- if(emac_phy_register_read(phy_addr, PHY_STATUS_REG, &data) == ERROR)
- {
- return ERROR;
- }
- } while(!(data & PHY_NEGO_COMPLETE_BIT) && (timeout < PHY_TIMEOUT));
-
- if(timeout == PHY_TIMEOUT)
- {
- return ERROR;
- }
-
- if(emac_phy_register_read(phy_addr, PHY_SPECIFIED_CS_REG, &data) == ERROR)
- {
- return ERROR;
- }
-#ifdef PHY_USING_DM9162
- if(data & PHY_FULL_DUPLEX_100MBPS_BIT)
- {
- emac_fast_speed_set(EMAC_SPEED_100MBPS);
- emac_duplex_mode_set(EMAC_FULL_DUPLEX);
- }
- else if(data & PHY_HALF_DUPLEX_100MBPS_BIT)
- {
- emac_fast_speed_set(EMAC_SPEED_100MBPS);
- emac_duplex_mode_set(EMAC_HALF_DUPLEX);
- }
- else if(data & PHY_FULL_DUPLEX_10MBPS_BIT)
- {
- emac_fast_speed_set(EMAC_SPEED_10MBPS);
- emac_duplex_mode_set(EMAC_FULL_DUPLEX);
- }
- else if(data & PHY_HALF_DUPLEX_10MBPS_BIT)
- {
- emac_fast_speed_set(EMAC_SPEED_10MBPS);
- emac_duplex_mode_set(EMAC_HALF_DUPLEX);
- }
-#endif
-#ifdef PHY_USING_DP83848
- if(data & PHY_DUPLEX_MODE)
- {
- emac_duplex_mode_set(EMAC_FULL_DUPLEX);
- }
- else
- {
- emac_duplex_mode_set(EMAC_HALF_DUPLEX);
- }
- if(data & PHY_SPEED_MODE)
- {
- emac_fast_speed_set(EMAC_SPEED_10MBPS);
- }
- else
- {
- emac_fast_speed_set(EMAC_SPEED_100MBPS);
- }
-#endif
- }
- else
- {
- if(emac_phy_register_write(phy_addr, PHY_CONTROL_REG, (uint16_t)((mode << 8) | (speed << 13))) == ERROR)
- {
- return ERROR;
- }
- if(speed == EMAC_SPEED_100MBPS)
- {
- emac_fast_speed_set(EMAC_SPEED_100MBPS);
- }
- else
- {
- emac_fast_speed_set(EMAC_SPEED_10MBPS);
- }
- if(mode == EMAC_FULL_DUPLEX)
- {
- emac_duplex_mode_set(EMAC_FULL_DUPLEX);
- }
- else
- {
- emac_duplex_mode_set(EMAC_HALF_DUPLEX);
- }
- }
-
- return SUCCESS;
-}
-
-/**
- * @brief initialize emac phy
- */
-static error_status emac_phy_init(emac_control_config_type *control_para)
-{
- emac_clock_range_set();
- if(emac_phy_register_reset() == ERROR)
- {
- return ERROR;
- }
- if(emac_speed_config(control_para->auto_nego, control_para->duplex_mode, control_para->fast_ethernet_speed) == ERROR)
- {
- return ERROR;
- }
-
- emac_control_config(control_para);
- return SUCCESS;
-}
-
-/**
- * @brief emac initialization function
- */
-static rt_err_t rt_at32_emac_init(rt_device_t dev)
-{
- emac_control_config_type mac_control_para;
- emac_dma_config_type dma_control_para;
-
- /* check till phy detected */
- while(phy_addr == 0xFF)
- {
- rt_thread_mdelay(1000);
- }
-
- /* emac reset */
- emac_reset();
-
- /* software reset emac dma */
- emac_dma_software_reset_set();
- while(emac_dma_software_reset_get() == SET);
-
- emac_control_para_init(&mac_control_para);
- mac_control_para.auto_nego = EMAC_AUTO_NEGOTIATION_ON;
- if(emac_phy_init(&mac_control_para) == ERROR)
- {
- LOG_E("emac hardware init failed");
- return ERROR;
- }
- else
- {
- LOG_D("emac hardware init success");
- }
-
- emac_transmit_flow_control_enable(TRUE);
- emac_zero_quanta_pause_disable(TRUE);
-
- /* set mac address */
- emac_local_address_set(at32_emac_device.dev_addr);
-
- /* set emac dma rx link list */
- emac_dma_descriptor_list_address_set(EMAC_DMA_RECEIVE, dma_rx_dscr_tab, rx_buff, EMAC_NUM_RX_BUF);
- /* set emac dma tx link list */
- emac_dma_descriptor_list_address_set(EMAC_DMA_TRANSMIT, dma_tx_dscr_tab, tx_buff, EMAC_NUM_TX_BUF);
-
- /* emac interrupt init */
- emac_dma_config(&dma_control_para);
- emac_dma_interrupt_enable(EMAC_DMA_INTERRUPT_NORMAL_SUMMARY, TRUE);
- emac_dma_interrupt_enable(EMAC_DMA_INTERRUPT_RX, TRUE);
- nvic_irq_enable(EMAC_IRQn, 0x07, 0);
-
- /* enable emac */
- emac_start();
-
- return RT_EOK;
-}
-
-static rt_err_t rt_at32_emac_open(rt_device_t dev, rt_uint16_t oflag)
-{
- LOG_D("emac open");
- return RT_EOK;
-}
-
-static rt_err_t rt_at32_emac_close(rt_device_t dev)
-{
- LOG_D("emac close");
- return RT_EOK;
-}
-
-static rt_size_t rt_at32_emac_read(rt_device_t dev, rt_off_t pos, void *buffer, rt_size_t size)
-{
- LOG_D("emac read");
- rt_set_errno(-RT_ENOSYS);
- return 0;
-}
-
-static rt_size_t rt_at32_emac_write(rt_device_t dev, rt_off_t pos, const void *buffer, rt_size_t size)
-{
- LOG_D("emac write");
- rt_set_errno(-RT_ENOSYS);
- return 0;
-}
-
-static rt_err_t rt_at32_emac_control(rt_device_t dev, int cmd, void *args)
-{
- switch (cmd)
- {
- case NIOCTL_GADDR:
- /* get mac address */
- if (args)
- {
- SMEMCPY(args, at32_emac_device.dev_addr, 6);
- }
- else
- {
- return -RT_ERROR;
- }
- break;
-
- default :
- break;
- }
-
- return RT_EOK;
-}
-
-/**
- * @brief transmit data
- */
-rt_err_t rt_at32_emac_tx(rt_device_t dev, struct pbuf *p)
-{
- struct pbuf *q;
- rt_uint32_t offset;
-
- while ((dma_tx_desc_to_set->status & EMAC_DMATXDESC_OWN) != RESET)
- {
- rt_err_t result;
- rt_uint32_t level;
-
- level = rt_hw_interrupt_disable();
- tx_is_waiting = RT_TRUE;
- rt_hw_interrupt_enable(level);
-
- /* it's own bit set, wait it */
- result = rt_sem_take(&tx_wait, RT_WAITING_FOREVER);
- if (result == RT_EOK) break;
- if (result == -RT_ERROR) return -RT_ERROR;
- }
-
- offset = 0;
- for (q = p; q != NULL; q = q->next)
- {
- uint8_t *buffer;
-
- /* copy the frame to be sent into memory pointed by the current ethernet dma tx descriptor */
- buffer = (uint8_t*)((dma_tx_desc_to_set->buf1addr) + offset);
- SMEMCPY(buffer, q->payload, q->len);
- offset += q->len;
- }
-
-#ifdef EMAC_TX_DUMP
- dump_hex(p->payload, p->tot_len);
-#endif
- /* prepare transmit descriptors to give to dma */
- LOG_D("transmit frame length :%d", p->tot_len);
-
- /* setting the frame length: bits[12:0] */
- dma_tx_desc_to_set->controlsize = (p->tot_len & EMAC_DMATXDESC_TBS1);
- /* Setting the last segment and first segment bits (in this case a frame is transmitted in one descriptor) */
- dma_tx_desc_to_set->status |= EMAC_DMATXDESC_LS | EMAC_DMATXDESC_FS;
- /* enable tx completion interrupt */
- dma_tx_desc_to_set->status |= EMAC_DMATXDESC_IC;
- /* set own bit of the tx descriptor status: gives the buffer back to ethernet dma */
- dma_tx_desc_to_set->status |= EMAC_DMATXDESC_OWN;
-
- /* When Tx Buffer unavailable flag is set: clear it and resume transmission */
- if(emac_dma_flag_get(EMAC_DMA_TBU_FLAG) != RESET)
- {
- emac_dma_flag_clear(EMAC_DMA_TBU_FLAG);
- emac_dma_poll_demand_set(EMAC_DMA_TRANSMIT, 0);
- }
-
- /* selects the next dma tx descriptor list for next buffer to send */
- dma_tx_desc_to_set = (emac_dma_desc_type*) (dma_tx_desc_to_set->buf2nextdescaddr);
-
- return ERR_OK;
-}
-
-/**
- * @brief receive data
- */
-struct pbuf *rt_at32_emac_rx(rt_device_t dev)
-{
- struct pbuf *p = NULL;
- struct pbuf *q = NULL;
- rt_uint32_t offset = 0;
- uint16_t len = 0;
- uint8_t *buffer;
-
- /* get received frame */
- len = emac_received_packet_size_get();
- if(len > 0)
- {
- LOG_D("receive frame len : %d", len);
- /* we allocate a pbuf chain of pbufs from the lwip buffer pool */
- p = pbuf_alloc(PBUF_RAW, len, PBUF_POOL);
-
- if(p != NULL)
- {
- for (q = p; q != RT_NULL; q= q->next)
- {
- /* get rx buffer */
- buffer = (uint8_t *)(dma_rx_desc_to_get->buf1addr);
-#ifdef EMAC_RX_DUMP
- dump_hex(buffer, len);
-#endif
- /* copy the received frame into buffer from memory pointed by the current ethernet dma rx descriptor */
- SMEMCPY(q->payload, (buffer + offset), q->len);
- offset += q->len;
- }
- }
- }
- else
- {
- return p;
- }
-
- /* release descriptors to dma */
- dma_rx_desc_to_get->status |= EMAC_DMARXDESC_OWN;
-
- /* when rx buffer unavailable flag is set: clear it and resume reception */
- if(emac_dma_flag_get(EMAC_DMA_RBU_FLAG) != RESET)
- {
- /* clear rbu ethernet dma flag */
- emac_dma_flag_clear(EMAC_DMA_RBU_FLAG);
- /* resume dma reception */
- emac_dma_poll_demand_set(EMAC_DMA_RECEIVE, 0);
- }
-
- /* update the ethernet dma global rx descriptor with next rx decriptor */
- /* chained mode */
- if((dma_rx_desc_to_get->controlsize & EMAC_DMARXDESC_RCH) != RESET)
- {
- /* selects the next dma rx descriptor list for next buffer to read */
- dma_rx_desc_to_get = (emac_dma_desc_type*) (dma_rx_desc_to_get->buf2nextdescaddr);
- }
- /* ring mode */
- else
- {
- if((dma_rx_desc_to_get->controlsize & EMAC_DMARXDESC_RER) != RESET)
- {
- /* selects the first dma rx descriptor for next buffer to read: last rx descriptor was used */
- dma_rx_desc_to_get = (emac_dma_desc_type*) (EMAC_DMA->rdladdr);
- }
- else
- {
- /* selects the next dma rx descriptor list for next buffer to read */
- dma_rx_desc_to_get = (emac_dma_desc_type*) ((uint32_t)dma_rx_desc_to_get + 0x10 + ((EMAC_DMA->bm & 0x0000007C) >> 2));
- }
- }
- return p;
-}
-
-void EMAC_IRQHandler(void)
-{
- /* enter interrupt */
- rt_interrupt_enter();
-
- /* clear received it */
- if(emac_dma_flag_get(EMAC_DMA_NIS_FLAG) != RESET)
- {
- emac_dma_flag_clear(EMAC_DMA_NIS_FLAG);
- }
- if(emac_dma_flag_get(EMAC_DMA_AIS_FLAG) != RESET)
- {
- emac_dma_flag_clear(EMAC_DMA_AIS_FLAG);
- }
- if(emac_dma_flag_get(EMAC_DMA_OVF_FLAG) != RESET)
- {
- emac_dma_flag_clear(EMAC_DMA_OVF_FLAG);
- }
- if(emac_dma_flag_get(EMAC_DMA_RBU_FLAG) != RESET)
- {
- emac_dma_flag_clear(EMAC_DMA_RBU_FLAG);
- }
-
- /* packet receiption */
- if (emac_dma_flag_get(EMAC_DMA_RI_FLAG) == SET)
- {
- /* a frame has been received */
- eth_device_ready(&(at32_emac_device.parent));
- emac_dma_flag_clear(EMAC_DMA_RI_FLAG);
- }
-
- /* packet transmission */
- if (emac_dma_flag_get(EMAC_DMA_TI_FLAG) == SET)
- {
- if (tx_is_waiting == RT_TRUE)
- {
- tx_is_waiting = RT_FALSE;
- rt_sem_release(&tx_wait);
- }
-
- emac_dma_flag_clear(EMAC_DMA_TI_FLAG);
- }
-
- /* leave interrupt */
- rt_interrupt_leave();
-}
-
-enum {
- PHY_LINK = (1 << 0),
- PHY_10M = (1 << 1),
- PHY_FULLDUPLEX = (1 << 2),
-};
-
-static void phy_linkchange()
-{
- static rt_uint8_t phy_speed = 0;
- rt_uint8_t phy_speed_new = 0;
- rt_uint16_t status;
-
- emac_phy_register_read(phy_addr, PHY_BASIC_STATUS_REG, (uint16_t *)&status);
- LOG_D("phy basic status reg is 0x%X", status);
-
- if (status & (PHY_AUTONEGO_COMPLETE_MASK | PHY_LINKED_STATUS_MASK))
- {
- rt_uint16_t SR = 0;
-
- phy_speed_new |= PHY_LINK;
-
- emac_phy_register_read(phy_addr, PHY_SPECIFIED_CS_REG, (uint16_t *)&SR);
- LOG_D("phy control status reg is 0x%X", SR);
-
- if (SR & (PHY_SPEED_MODE))
- {
- phy_speed_new |= PHY_10M;
- }
-
- if (SR & (PHY_DUPLEX_MODE))
- {
- phy_speed_new |= PHY_FULLDUPLEX;
- }
- }
-
- if (phy_speed != phy_speed_new)
- {
- phy_speed = phy_speed_new;
- if (phy_speed & PHY_LINK)
- {
- LOG_D("link up");
- if (phy_speed & PHY_10M)
- {
- LOG_D("10Mbps");
- at32_emac_device.emac_speed = EMAC_SPEED_10MBPS;
- }
- else
- {
- at32_emac_device.emac_speed = EMAC_SPEED_100MBPS;
- LOG_D("100Mbps");
- }
-
- if (phy_speed & PHY_FULLDUPLEX)
- {
- LOG_D("full-duplex");
- at32_emac_device.emac_mode = EMAC_FULL_DUPLEX;
- }
- else
- {
- LOG_D("half-duplex");
- at32_emac_device.emac_mode = EMAC_HALF_DUPLEX;
- }
-
- /* send link up. */
- eth_device_linkchange(&at32_emac_device.parent, RT_TRUE);
- }
- else
- {
- LOG_I("link down");
- eth_device_linkchange(&at32_emac_device.parent, RT_FALSE);
- }
- }
-}
-
-#ifdef PHY_USING_INTERRUPT_MODE
-static void emac_phy_isr(void *args)
-{
- rt_uint32_t status = 0;
-
- emac_phy_register_read(phy_addr, PHY_INTERRUPT_FLAG_REG, (uint16_t *)&status);
- LOG_D("phy interrupt status reg is 0x%X", status);
-
- phy_linkchange();
-}
-#endif /* PHY_USING_INTERRUPT_MODE */
-
-static void phy_monitor_thread_entry(void *parameter)
-{
- uint8_t detected_count = 0;
-
- while(phy_addr == 0xFF)
- {
- /* phy search */
- rt_uint32_t i, temp;
- for (i = 0; i <= 0x1F; i++)
- {
- emac_phy_register_read(i, PHY_BASIC_STATUS_REG, (uint16_t *)&temp);
-
- if (temp != 0xFFFF && temp != 0x00)
- {
- phy_addr = i;
- break;
- }
- }
-
- detected_count++;
- rt_thread_mdelay(1000);
-
- if (detected_count > 10)
- {
- LOG_E("No PHY device was detected, please check hardware!");
- }
- }
-
- LOG_D("Found a phy, address:0x%02X", phy_addr);
-
- /* reset phy */
- LOG_D("RESET PHY!");
- emac_phy_register_write(phy_addr, PHY_BASIC_CONTROL_REG, PHY_RESET_MASK);
- rt_thread_mdelay(2000);
- emac_phy_register_write(phy_addr, PHY_BASIC_CONTROL_REG, PHY_AUTO_NEGOTIATION_MASK);
-
- phy_linkchange();
-#ifdef PHY_USING_INTERRUPT_MODE
- /* configuration intterrupt pin */
- rt_pin_mode(PHY_INT_PIN, PIN_MODE_INPUT_PULLUP);
- rt_pin_attach_irq(PHY_INT_PIN, PIN_IRQ_MODE_FALLING, emac_phy_isr, (void *)"callbackargs");
- rt_pin_irq_enable(PHY_INT_PIN, PIN_IRQ_ENABLE);
-
- /* enable phy interrupt */
- emac_phy_register_write(phy_addr, PHY_INTERRUPT_MASK_REG, PHY_INT_MASK);
-#if defined(PHY_INTERRUPT_CTRL_REG)
- emac_phy_register_write(phy_addr, PHY_INTERRUPT_CTRL_REG, PHY_INTERRUPT_EN);
-#endif
-#else /* PHY_USING_INTERRUPT_MODE */
- at32_emac_device.poll_link_timer = rt_timer_create("phylnk", (void (*)(void*))phy_linkchange,
- NULL, RT_TICK_PER_SECOND, RT_TIMER_FLAG_PERIODIC);
- if (!at32_emac_device.poll_link_timer || rt_timer_start(at32_emac_device.poll_link_timer) != RT_EOK)
- {
- LOG_E("Start link change detection timer failed");
- }
-#endif /* PHY_USING_INTERRUPT_MODE */
-}
-
-/* Register the EMAC device */
-static int rt_hw_at32_emac_init(void)
-{
- rt_err_t state = RT_EOK;
-
- /* Prepare receive and send buffers */
- rx_buff = (rt_uint8_t *)rt_calloc(EMAC_NUM_RX_BUF, EMAC_MAX_PACKET_LENGTH);
- if (rx_buff == RT_NULL)
- {
- LOG_E("No memory");
- state = -RT_ENOMEM;
- goto __exit;
- }
-
- tx_buff = (rt_uint8_t *)rt_calloc(EMAC_NUM_TX_BUF, EMAC_MAX_PACKET_LENGTH);
- if (tx_buff == RT_NULL)
- {
- LOG_E("No memory");
- state = -RT_ENOMEM;
- goto __exit;
- }
-
- dma_rx_dscr_tab = (emac_dma_desc_type *)rt_calloc(EMAC_NUM_RX_BUF, sizeof(emac_dma_desc_type));
- if (dma_rx_dscr_tab == RT_NULL)
- {
- LOG_E("No memory");
- state = -RT_ENOMEM;
- goto __exit;
- }
-
- dma_tx_dscr_tab = (emac_dma_desc_type *)rt_calloc(EMAC_NUM_TX_BUF, sizeof(emac_dma_desc_type));
- if (dma_tx_dscr_tab == RT_NULL)
- {
- LOG_E("No memory");
- state = -RT_ENOMEM;
- goto __exit;
- }
-
- /* phy clock */
- phy_clock_config();
-
- /* enable periph clock */
- crm_periph_clock_enable(CRM_EMAC_PERIPH_CLOCK, TRUE);
- crm_periph_clock_enable(CRM_EMACTX_PERIPH_CLOCK, TRUE);
- crm_periph_clock_enable(CRM_EMACRX_PERIPH_CLOCK, TRUE);
-
- /* interface mode */
- gpio_pin_remap_config(MII_RMII_SEL_GMUX, TRUE);
-
- /* emac gpio init */
- at32_msp_emac_init(NULL);
-
- at32_emac_device.emac_speed = EMAC_SPEED_100MBPS;
- at32_emac_device.emac_mode = EMAC_FULL_DUPLEX;
-
- at32_emac_device.dev_addr[0] = 0x00;
- at32_emac_device.dev_addr[1] = 0x80;
- at32_emac_device.dev_addr[2] = 0xE1;
- /* generate mac addr from unique id (only for test). */
- at32_emac_device.dev_addr[3] = *(rt_uint8_t *)(0x1FFFF7E8 + 4);
- at32_emac_device.dev_addr[4] = *(rt_uint8_t *)(0x1FFFF7E8 + 2);
- at32_emac_device.dev_addr[5] = *(rt_uint8_t *)(0x1FFFF7E8 + 0);
-
- at32_emac_device.parent.parent.init = rt_at32_emac_init;
- at32_emac_device.parent.parent.open = rt_at32_emac_open;
- at32_emac_device.parent.parent.close = rt_at32_emac_close;
- at32_emac_device.parent.parent.read = rt_at32_emac_read;
- at32_emac_device.parent.parent.write = rt_at32_emac_write;
- at32_emac_device.parent.parent.control = rt_at32_emac_control;
- at32_emac_device.parent.parent.user_data = RT_NULL;
-
- at32_emac_device.parent.eth_rx = rt_at32_emac_rx;
- at32_emac_device.parent.eth_tx = rt_at32_emac_tx;
-
- /* reset phy */
- phy_reset();
-
- /* start phy monitor */
- rt_thread_t tid;
- tid = rt_thread_create("phy",
- phy_monitor_thread_entry,
- RT_NULL,
- 1024,
- RT_THREAD_PRIORITY_MAX - 2,
- 2);
- if (tid != RT_NULL)
- {
- rt_thread_startup(tid);
- }
- else
- {
- state = -RT_ERROR;
- }
-
- /* register eth device */
- state = eth_device_init(&(at32_emac_device.parent), "e0");
- if (RT_EOK == state)
- {
- LOG_D("emac device init success");
- }
- else
- {
- LOG_E("emac device init faild: %d", state);
- state = -RT_ERROR;
- goto __exit;
- }
-__exit:
- if (state != RT_EOK)
- {
- if (rx_buff)
- {
- rt_free(rx_buff);
- }
-
- if (tx_buff)
- {
- rt_free(tx_buff);
- }
-
- if (dma_rx_dscr_tab)
- {
- rt_free(dma_rx_dscr_tab);
- }
-
- if (dma_tx_dscr_tab)
- {
- rt_free(dma_tx_dscr_tab);
- }
- }
-
- return state;
-}
-
-INIT_DEVICE_EXPORT(rt_hw_at32_emac_init);
diff --git a/bsp/at32/libraries/f403a_407/rt_drivers/drv_emac.h b/bsp/at32/libraries/f403a_407/rt_drivers/drv_emac.h
deleted file mode 100644
index 64833938e4..0000000000
--- a/bsp/at32/libraries/f403a_407/rt_drivers/drv_emac.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-18 shelton first version
- */
-
-#ifndef __DRV_ETH_H__
-#define __DRV_ETH_H__
-
-#include <rtthread.h>
-#include <rthw.h>
-#include <rtdevice.h>
-#include <board.h>
-
-#define CRYSTAL_ON_PHY 0 /* phy does not with crystal */
-
-/* the phy basic control register */
-#define PHY_BASIC_CONTROL_REG 0x00U
-#define PHY_RESET_MASK (1<<15)
-#define PHY_AUTO_NEGOTIATION_MASK (1<<12)
-
-/* the phy basic status register */
-#define PHY_BASIC_STATUS_REG 0x01U
-#define PHY_LINKED_STATUS_MASK (1<<2)
-#define PHY_AUTONEGO_COMPLETE_MASK (1<<5)
-
-/* the phy id one register */
-#define PHY_ID1_REG 0x02U
-/* the phy id two register */
-#define PHY_ID2_REG 0x03U
-/* the phy auto-negotiate advertise register */
-#define PHY_AUTONEG_ADVERTISE_REG 0x04U
-
-#if defined (PHY_USING_DM9162)
- #define PHY_CONTROL_REG (0x00) /*!< basic mode control register */
- #define PHY_STATUS_REG (0x01) /*!< basic mode status register */
- #define PHY_SPECIFIED_CS_REG (0x11) /*!< specified configuration and status register */
- /* phy control register */
- #define PHY_AUTO_NEGOTIATION_BIT (0x1000) /*!< enable auto negotiation */
- #define PHY_LOOPBACK_BIT (0x4000) /*!< enable loopback */
- #define PHY_RESET_BIT (0x8000) /*!< reset phy */
- /* phy status register */
- #define PHY_LINKED_STATUS_BIT (0x0004) /*!< link status */
- #define PHY_NEGO_COMPLETE_BIT (0x0020) /*!< auto negotiation complete */
- /* phy specified control/status register */
- #define PHY_FULL_DUPLEX_100MBPS_BIT (0x8000) /*!< full duplex 100 mbps */
- #define PHY_HALF_DUPLEX_100MBPS_BIT (0x4000) /*!< half duplex 100 mbps */
- #define PHY_FULL_DUPLEX_10MBPS_BIT (0x2000) /*!< full duplex 10 mbps */
- #define PHY_HALF_DUPLEX_10MBPS_BIT (0x1000) /*!< half duplex 10 mbps */
- #define PHY_DUPLEX_MODE (PHY_FULL_DUPLEX_100MBPS_BIT | PHY_FULL_DUPLEX_10MBPS_BIT) /*!< full duplex mode */
- #define PHY_SPEED_MODE (PHY_FULL_DUPLEX_10MBPS_BIT | PHY_HALF_DUPLEX_10MBPS_BIT) /*!< 10 mbps */
- /* the phy interrupt source flag register. */
- #define PHY_INTERRUPT_FLAG_REG 0x15U
- /* the phy interrupt mask register. */
- #define PHY_INTERRUPT_MASK_REG 0x15U
- #define PHY_LINK_CHANGE_FLAG (1<<2)
- #define PHY_LINK_CHANGE_MASK (1<<9)
- #define PHY_INT_MASK 0
-#elif defined (PHY_USING_DP83848)
- #define PHY_CONTROL_REG (0x00) /*!< basic mode control register */
- #define PHY_STATUS_REG (0x01) /*!< basic mode status register */
- #define PHY_SPECIFIED_CS_REG (0x10) /*!< phy status register */
- /* phy control register */
- #define PHY_AUTO_NEGOTIATION_BIT (0x1000) /*!< enable auto negotiation */
- #define PHY_LOOPBACK_BIT (0x4000) /*!< enable loopback */
- #define PHY_RESET_BIT (0x8000) /*!< reset phy */
- /* phy status register */
- #define PHY_LINKED_STATUS_BIT (0x0004) /*!< link status */
- #define PHY_NEGO_COMPLETE_BIT (0x0020) /*!< auto negotiation complete */
-
- #define PHY_DUPLEX_MODE (0x0004) /*!< full duplex mode */
- #define PHY_SPEED_MODE (0x0002) /*!< 10 mbps */
-
- /* the phy interrupt source flag register. */
- #define PHY_INTERRUPT_FLAG_REG 0x12U
- #define PHY_LINK_CHANGE_FLAG (1<<13)
- /* the phy interrupt control register. */
- #define PHY_INTERRUPT_CTRL_REG 0x11U
- #define PHY_INTERRUPT_EN ((1<<0)|(1<<1))
- /* the phy interrupt mask register. */
- #define PHY_INTERRUPT_MASK_REG 0x12U
- #define PHY_INT_MASK (1<<5)
-#endif
-
-#endif /* __DRV_ETH_H__ */
diff --git a/bsp/at32/libraries/f403a_407/rt_drivers/drv_flash.c b/bsp/at32/libraries/f403a_407/rt_drivers/drv_flash.c
deleted file mode 100644
index e763e817bc..0000000000
--- a/bsp/at32/libraries/f403a_407/rt_drivers/drv_flash.c
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-24 shelton first version
- */
-
-#include <rtthread.h>
-#include "board.h"
-
-#ifdef BSP_USING_ON_CHIP_FLASH
-#include "drv_flash.h"
-
-#if defined(PKG_USING_FAL)
-#include "fal.h"
-#endif
-
-//#define DRV_DEBUG
-#define LOG_TAG "drv.flash"
-#include <drv_log.h>
-
-/**
- * @brief gets the page of a given address
- * @param addr: address of the flash memory
- * @retval the page of a given address
- */
-static rt_uint32_t get_page(uint32_t addr)
-{
- rt_uint32_t page = 0;
-
- page = RT_ALIGN_DOWN(addr, FLASH_PAGE_SIZE);
-
- return page;
-}
-
-/**
- * @brief read data from flash.
- * @note this operation's units is word.
- *
- * @param addr flash address
- * @param buf buffer to store read data
- * @param size read bytes size
- *
- * @return result
- */
-int at32_flash_read(rt_uint32_t addr, rt_uint8_t *buf, rt_uint32_t size)
-{
- rt_uint32_t i;
-
- if ((addr + size) > AT32_FLASH_END_ADDRESS)
- {
- LOG_E("read outrange flash size! addr is (0x%p)", (void *)(addr + size));
- return -RT_EINVAL;
- }
-
- for (i = 0; i < size; i++, buf++, addr++)
- {
- *buf = *(rt_uint8_t *) addr;
- }
-
- return size;
-}
-
-/**
- * @brief write data to flash.
- * @note this operation's units is word.
- * @note this operation must after erase. @see flash_erase.
- *
- * @param addr flash address
- * @param buf the write data buffer
- * @param size write bytes size
- *
- * @return result
- */
-int at32_flash_write(rt_uint32_t addr, const rt_uint8_t *buf, rt_uint32_t size)
-{
- rt_err_t result = RT_EOK;
- rt_uint32_t end_addr = addr + size;
-
- if (addr % 4 != 0)
- {
- LOG_E("write addr must be 4-byte alignment");
- return -RT_EINVAL;
- }
-
- if ((end_addr) > AT32_FLASH_END_ADDRESS)
- {
- LOG_E("write outrange flash size! addr is (0x%p)", (void *)(addr + size));
- return -RT_EINVAL;
- }
-
- flash_unlock();
-
- while (addr < end_addr)
- {
- if (flash_word_program(addr, *((rt_uint32_t *)buf)) == FLASH_OPERATE_DONE)
- {
- if (*(rt_uint32_t *)addr != *(rt_uint32_t *)buf)
- {
- result = -RT_ERROR;
- break;
- }
- addr += 4;
- buf += 4;
- }
- else
- {
- result = -RT_ERROR;
- break;
- }
- }
-
- flash_lock();
-
- if (result != RT_EOK)
- {
- return result;
- }
-
- return size;
-}
-
-/**
- * @brief erase data on flash .
- * @note this operation is irreversible.
- * @note this operation's units is different which on many chips.
- *
- * @param addr flash address
- * @param size erase bytes size
- *
- * @return result
- */
-int at32_flash_erase(rt_uint32_t addr, rt_uint32_t size)
-{
- rt_err_t result = RT_EOK;
- rt_uint32_t end_addr = addr + size;
- rt_uint32_t page_addr = 0;
-
- flash_unlock();
-
- if ((end_addr) > AT32_FLASH_END_ADDRESS)
- {
- LOG_E("erase outrange flash size! addr is (0x%p)", (void *)(addr + size));
- return -RT_EINVAL;
- }
-
- while(addr < end_addr)
- {
- page_addr = get_page(addr);
-
- if(flash_sector_erase(page_addr) != FLASH_OPERATE_DONE)
- {
- result = -RT_ERROR;
- goto __exit;
- }
-
- addr += FLASH_PAGE_SIZE;
- }
-
- flash_lock();
-
-__exit:
- if(result != RT_EOK)
- {
- return result;
- }
-
- return size;
-}
-
-#if defined(PKG_USING_FAL)
-
-static int fal_flash_read(long offset, rt_uint8_t *buf, rt_uint32_t size);
-static int fal_flash_write(long offset, const rt_uint8_t *buf, rt_uint32_t size);
-static int fal_flash_erase(long offset, rt_uint32_t size);
-
-const struct fal_flash_dev at32_onchip_flash =
-{
- "onchip_flash",
- AT32_FLASH_START_ADRESS,
- AT32_FLASH_SIZE,
- FLASH_PAGE_SIZE,
- {
- NULL,
- fal_flash_read,
- fal_flash_write,
- fal_flash_erase
- }
-};
-
-static int fal_flash_read(long offset, rt_uint8_t *buf, rt_uint32_t size)
-{
- return at32_flash_read(at32_onchip_flash.addr + offset, buf, size);
-}
-
-static int fal_flash_write(long offset, const rt_uint8_t *buf, rt_uint32_t size)
-{
- return at32_flash_write(at32_onchip_flash.addr + offset, buf, size);
-}
-
-static int fal_flash_erase(long offset, rt_uint32_t size)
-{
- return at32_flash_erase(at32_onchip_flash.addr + offset, size);
-}
-
-#endif
-#endif /* BSP_USING_ON_CHIP_FLASH */
diff --git a/bsp/at32/libraries/f403a_407/rt_drivers/drv_gpio.c b/bsp/at32/libraries/f403a_407/rt_drivers/drv_gpio.c
deleted file mode 100644
index b66c475050..0000000000
--- a/bsp/at32/libraries/f403a_407/rt_drivers/drv_gpio.c
+++ /dev/null
@@ -1,557 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-08 shelton first version
- */
-
-#include "board.h"
-#include "drv_gpio.h"
-
-#ifdef RT_USING_PIN
-
-#define PIN_NUM(port, no) (((((port) & 0xFu) << 4) | ((no) & 0xFu)))
-#define PIN_PORT(pin) ((uint8_t)(((pin) >> 4) & 0xFu))
-#define PIN_NO(pin) ((uint8_t)((pin) & 0xFu))
-
-#define PIN_ATPORTSOURCE(pin) (gpio_port_source_type)((uint8_t)(((pin) & 0xF0u) >> 4))
-#define PIN_ATPINSOURCE(pin) (gpio_pins_source_type)((uint8_t)((pin) & 0xFu))
-#define PIN_ATPORT(pin) ((gpio_type *)(GPIOA_BASE + (0x400u * PIN_PORT(pin))))
-#define PIN_ATPIN(pin) ((uint16_t)(1u << PIN_NO(pin)))
-
-#if defined(GPIOZ)
- #define __AT32_PORT_MAX 12u
-#elif defined(GPIOK)
- #define __AT32_PORT_MAX 11u
-#elif defined(GPIOJ)
- #define __AT32_PORT_MAX 10u
-#elif defined(GPIOI)
- #define __AT32_PORT_MAX 9u
-#elif defined(GPIOH)
- #define __AT32_PORT_MAX 8u
-#elif defined(GPIOG)
- #define __AT32_PORT_MAX 7u
-#elif defined(GPIOF)
- #define __AT32_PORT_MAX 6u
-#elif defined(GPIOE)
- #define __AT32_PORT_MAX 5u
-#elif defined(GPIOD)
- #define __AT32_PORT_MAX 4u
-#elif defined(GPIOC)
- #define __AT32_PORT_MAX 3u
-#elif defined(GPIOB)
- #define __AT32_PORT_MAX 2u
-#elif defined(GPIOA)
- #define __AT32_PORT_MAX 1u
-#else
- #define __AT32_PORT_MAX 0u
- #error Unsupported AT32 GPIO peripheral.
-#endif
-
-#define PIN_ATPORT_MAX __AT32_PORT_MAX
-
-static const struct pin_irq_map pin_irq_map[] =
-{
- {GPIO_PINS_0, EXINT_LINE_0, EXINT0_IRQn},
- {GPIO_PINS_1, EXINT_LINE_1, EXINT1_IRQn},
- {GPIO_PINS_2, EXINT_LINE_2, EXINT2_IRQn},
- {GPIO_PINS_3, EXINT_LINE_3, EXINT3_IRQn},
- {GPIO_PINS_4, EXINT_LINE_4, EXINT4_IRQn},
- {GPIO_PINS_5, EXINT_LINE_5, EXINT9_5_IRQn},
- {GPIO_PINS_6, EXINT_LINE_6, EXINT9_5_IRQn},
- {GPIO_PINS_7, EXINT_LINE_7, EXINT9_5_IRQn},
- {GPIO_PINS_8, EXINT_LINE_8, EXINT9_5_IRQn},
- {GPIO_PINS_9, EXINT_LINE_9, EXINT9_5_IRQn},
- {GPIO_PINS_10, EXINT_LINE_10, EXINT15_10_IRQn},
- {GPIO_PINS_11, EXINT_LINE_11, EXINT15_10_IRQn},
- {GPIO_PINS_12, EXINT_LINE_12, EXINT15_10_IRQn},
- {GPIO_PINS_13, EXINT_LINE_13, EXINT15_10_IRQn},
- {GPIO_PINS_14, EXINT_LINE_14, EXINT15_10_IRQn},
- {GPIO_PINS_15, EXINT_LINE_15, EXINT15_10_IRQn},
-};
-
-static struct rt_pin_irq_hdr pin_irq_handler_tab[] =
-{
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
-};
-static uint32_t pin_irq_enable_mask = 0;
-
-#define ITEM_NUM(items) sizeof(items) / sizeof(items[0])
-
-static void at32_pin_write(rt_device_t dev, rt_base_t pin, rt_base_t value)
-{
- gpio_type *gpio_port;
-
- uint16_t gpio_pin;
- if (PIN_PORT(pin) < PIN_ATPORT_MAX)
- {
- gpio_port = PIN_ATPORT(pin);
- gpio_pin = PIN_ATPIN(pin);
- }
- else
- {
- return;
- }
- gpio_bits_write(gpio_port, gpio_pin, (confirm_state)value);
-}
-
-static int at32_pin_read(rt_device_t dev, rt_base_t pin)
-{
- gpio_type *gpio_port;
- uint16_t gpio_pin;
- int value;
-
- value = PIN_LOW;
-
- if (PIN_PORT(pin) < PIN_ATPORT_MAX)
- {
- gpio_port = PIN_ATPORT(pin);
- gpio_pin = PIN_ATPIN(pin);
- value = gpio_input_data_bit_read(gpio_port, gpio_pin);
- }
- return value;
-}
-
-static void at32_pin_mode(rt_device_t dev, rt_base_t pin, rt_base_t mode)
-{
- gpio_init_type gpio_init_struct;
- gpio_type *gpio_port;
- uint16_t gpio_pin;
-
- if (PIN_PORT(pin) < PIN_ATPORT_MAX)
- {
- gpio_port = PIN_ATPORT(pin);
- gpio_pin = PIN_ATPIN(pin);
- }
- else
- {
- return;
- }
-
- /* configure gpio_init_struct */
- gpio_default_para_init(&gpio_init_struct);
- gpio_init_struct.gpio_pins = gpio_pin;
- gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
- gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
- gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
- gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
-
- if (mode == PIN_MODE_OUTPUT)
- {
- /* output setting */
- gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
- gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
- gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
- }
- else if (mode == PIN_MODE_INPUT)
- {
- /* input setting: not pull. */
- gpio_init_struct.gpio_mode = GPIO_MODE_INPUT;
- gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
- }
- else if (mode == PIN_MODE_INPUT_PULLUP)
- {
- /* input setting: pull up. */
- gpio_init_struct.gpio_mode = GPIO_MODE_INPUT;
- gpio_init_struct.gpio_pull = GPIO_PULL_UP;
- }
- else if (mode == PIN_MODE_INPUT_PULLDOWN)
- {
- /* input setting: pull down. */
- gpio_init_struct.gpio_mode = GPIO_MODE_INPUT;
- gpio_init_struct.gpio_pull = GPIO_PULL_DOWN;
- }
- else if (mode == PIN_MODE_OUTPUT_OD)
- {
- /* output setting: od. */
- gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
- gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
- }
-
- gpio_init(gpio_port, &gpio_init_struct);
-}
-
-rt_inline rt_int32_t bit2bitno(rt_uint32_t bit)
-{
- int i;
- for (i = 0; i < 32; i++)
- {
- if ((0x01 << i) == bit)
- {
- return i;
- }
- }
- return -1;
-}
-
-rt_inline const struct pin_irq_map *get_pin_irq_map(uint32_t pinbit)
-{
- rt_int32_t mapindex = bit2bitno(pinbit);
- if (mapindex < 0 || mapindex >= ITEM_NUM(pin_irq_map))
- {
- return RT_NULL;
- }
- return &pin_irq_map[mapindex];
-};
-
-static rt_err_t at32_pin_attach_irq(struct rt_device *device, rt_int32_t pin,
- rt_uint32_t mode, void (*hdr)(void *args), void *args)
-{
- uint16_t gpio_pin;
- rt_base_t level;
- rt_int32_t irqindex = -1;
-
- if (PIN_PORT(pin) < PIN_ATPORT_MAX)
- {
- gpio_pin = PIN_ATPIN(pin);
- }
- else
- {
- return -RT_EINVAL;
- }
-
- irqindex = bit2bitno(gpio_pin);
- if (irqindex < 0 || irqindex >= ITEM_NUM(pin_irq_map))
- {
- return -RT_EINVAL;
- }
-
- level = rt_hw_interrupt_disable();
- if (pin_irq_handler_tab[irqindex].pin == pin &&
- pin_irq_handler_tab[irqindex].hdr == hdr &&
- pin_irq_handler_tab[irqindex].mode == mode &&
- pin_irq_handler_tab[irqindex].args == args)
- {
- rt_hw_interrupt_enable(level);
- return RT_EOK;
- }
- if (pin_irq_handler_tab[irqindex].pin != -1)
- {
- rt_hw_interrupt_enable(level);
- return -RT_EBUSY;
- }
- pin_irq_handler_tab[irqindex].pin = pin;
- pin_irq_handler_tab[irqindex].hdr = hdr;
- pin_irq_handler_tab[irqindex].mode = mode;
- pin_irq_handler_tab[irqindex].args = args;
- rt_hw_interrupt_enable(level);
-
- return RT_EOK;
-}
-
-static rt_err_t at32_pin_dettach_irq(struct rt_device *device, rt_int32_t pin)
-{
- uint16_t gpio_pin;
- rt_base_t level;
- rt_int32_t irqindex = -1;
-
- if (PIN_PORT(pin) < PIN_ATPORT_MAX)
- {
- gpio_pin = PIN_ATPIN(pin);
- }
- else
- {
- return -RT_EINVAL;
- }
- irqindex = bit2bitno(gpio_pin);
- if (irqindex < 0 || irqindex >= ITEM_NUM(pin_irq_map))
- {
- return -RT_EINVAL;
- }
-
- level = rt_hw_interrupt_disable();
- if (pin_irq_handler_tab[irqindex].pin == -1)
- {
- rt_hw_interrupt_enable(level);
- return RT_EOK;
- }
- pin_irq_handler_tab[irqindex].pin = -1;
- pin_irq_handler_tab[irqindex].hdr = RT_NULL;
- pin_irq_handler_tab[irqindex].mode = 0;
- pin_irq_handler_tab[irqindex].args = RT_NULL;
- rt_hw_interrupt_enable(level);
-
- return RT_EOK;
-}
-
-static rt_err_t at32_pin_irq_enable(struct rt_device *device, rt_base_t pin,
- rt_uint32_t enabled)
-{
- gpio_init_type gpio_init_struct;
- exint_init_type exint_init_struct;
- gpio_type *gpio_port;
- IRQn_Type irqn;
- uint16_t gpio_pin;
- const struct pin_irq_map *irqmap;
- rt_base_t level;
- rt_int32_t irqindex = -1;
-
- if (PIN_PORT(pin) < PIN_ATPORT_MAX)
- {
- gpio_port = PIN_ATPORT(pin);
- gpio_pin = PIN_ATPIN(pin);
- }
- else
- {
- return -RT_EINVAL;
- }
-
- if (enabled == PIN_IRQ_ENABLE)
- {
- irqindex = bit2bitno(gpio_pin);
- if (irqindex < 0 || irqindex >= ITEM_NUM(pin_irq_map))
- {
- return -RT_EINVAL;
- }
-
- level = rt_hw_interrupt_disable();
-
- if (pin_irq_handler_tab[irqindex].pin == -1)
- {
- rt_hw_interrupt_enable(level);
- return -RT_EINVAL;
- }
-
- irqmap = &pin_irq_map[irqindex];
-
- /* configure gpio_init_struct */
- gpio_default_para_init(&gpio_init_struct);
- exint_default_para_init(&exint_init_struct);
-
- gpio_init_struct.gpio_pins = irqmap->pinbit;
- gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
- exint_init_struct.line_select = irqmap->pinbit;
- exint_init_struct.line_mode = EXINT_LINE_INTERRUPUT;
- exint_init_struct.line_enable = TRUE;
- switch (pin_irq_handler_tab[irqindex].mode)
- {
- case PIN_IRQ_MODE_RISING:
- exint_init_struct.line_polarity = EXINT_TRIGGER_RISING_EDGE;
- break;
- case PIN_IRQ_MODE_FALLING:
- exint_init_struct.line_polarity = EXINT_TRIGGER_FALLING_EDGE;
- break;
- case PIN_IRQ_MODE_RISING_FALLING:
- exint_init_struct.line_polarity = EXINT_TRIGGER_BOTH_EDGE;
- break;
- }
- gpio_init(gpio_port, &gpio_init_struct);
-
- gpio_exint_line_config(PIN_ATPORTSOURCE(pin), PIN_ATPINSOURCE(pin));
-
- exint_init(&exint_init_struct);
-
- nvic_irq_enable(irqmap->irqno, 5, 0);
- pin_irq_enable_mask |= irqmap->pinbit;
-
- rt_hw_interrupt_enable(level);
- }
- else if (enabled == PIN_IRQ_DISABLE)
- {
- irqmap = get_pin_irq_map(gpio_pin);
- if (irqmap == RT_NULL)
- {
- return -RT_EINVAL;
- }
-
- level = rt_hw_interrupt_disable();
-
- pin_irq_enable_mask &= ~irqmap->pinbit;
-
-
- if ((irqmap->pinbit >= GPIO_PINS_5) && (irqmap->pinbit <= GPIO_PINS_9))
- {
- if (!(pin_irq_enable_mask & (GPIO_PINS_5 | GPIO_PINS_6 | GPIO_PINS_7 | GPIO_PINS_8 | GPIO_PINS_9)))
- {
- irqn = irqmap->irqno;
- }
- }
- else if ((irqmap->pinbit >= GPIO_PINS_10) && (irqmap->pinbit <= GPIO_PINS_15))
- {
- if (!(pin_irq_enable_mask & (GPIO_PINS_10 | GPIO_PINS_11 | GPIO_PINS_12 | GPIO_PINS_13 | GPIO_PINS_14 | GPIO_PINS_15)))
- {
- irqn = irqmap->irqno;
- }
- }
- else
- {
- irqn = irqmap->irqno;
- }
- nvic_irq_disable(irqn);
- rt_hw_interrupt_enable(level);
- }
- else
- {
- return -RT_EINVAL;
- }
-
- return RT_EOK;
-}
-
-const static struct rt_pin_ops _at32_pin_ops =
-{
- at32_pin_mode,
- at32_pin_write,
- at32_pin_read,
- at32_pin_attach_irq,
- at32_pin_dettach_irq,
- at32_pin_irq_enable,
- RT_NULL,
-};
-
-rt_inline void pin_irq_handler(int irqno)
-{
- exint_flag_clear(pin_irq_map[irqno].lineno);
- if (pin_irq_handler_tab[irqno].hdr)
- {
- pin_irq_handler_tab[irqno].hdr(pin_irq_handler_tab[irqno].args);
- }
-}
-
-void gpio_exint_handler(uint16_t GPIO_Pin)
-{
- pin_irq_handler(bit2bitno(GPIO_Pin));
-}
-
-void EXINT0_IRQHandler(void)
-{
- rt_interrupt_enter();
- gpio_exint_handler(GPIO_PINS_0);
- rt_interrupt_leave();
-}
-
-void EXINT1_IRQHandler(void)
-{
- rt_interrupt_enter();
- gpio_exint_handler(GPIO_PINS_1);
- rt_interrupt_leave();
-}
-
-void EXINT2_IRQHandler(void)
-{
- rt_interrupt_enter();
- gpio_exint_handler(GPIO_PINS_2);
- rt_interrupt_leave();
-}
-
-void EXINT3_IRQHandler(void)
-{
- rt_interrupt_enter();
- gpio_exint_handler(GPIO_PINS_3);
- rt_interrupt_leave();
-}
-
-void EXINT4_IRQHandler(void)
-{
- rt_interrupt_enter();
- gpio_exint_handler(GPIO_PINS_4);
- rt_interrupt_leave();
-}
-
-void EXINT9_5_IRQHandler(void)
-{
- rt_interrupt_enter();
- if (RESET != exint_flag_get(EXINT_LINE_5))
- {
- gpio_exint_handler(GPIO_PINS_5);
- }
- if (RESET != exint_flag_get(EXINT_LINE_6))
- {
- gpio_exint_handler(GPIO_PINS_6);
- }
- if (RESET != exint_flag_get(EXINT_LINE_7))
- {
- gpio_exint_handler(GPIO_PINS_7);
- }
- if (RESET != exint_flag_get(EXINT_LINE_8))
- {
- gpio_exint_handler(GPIO_PINS_8);
- }
- if (RESET != exint_flag_get(EXINT_LINE_9))
- {
- gpio_exint_handler(GPIO_PINS_9);
- }
- rt_interrupt_leave();
-}
-
-void EXINT15_10_IRQHandler(void)
-{
- rt_interrupt_enter();
- if (RESET != exint_flag_get(EXINT_LINE_10))
- {
- gpio_exint_handler(GPIO_PINS_10);
- }
- if (RESET != exint_flag_get(EXINT_LINE_11))
- {
- gpio_exint_handler(GPIO_PINS_11);
- }
- if (RESET != exint_flag_get(EXINT_LINE_12))
- {
- gpio_exint_handler(GPIO_PINS_12);
- }
- if (RESET != exint_flag_get(EXINT_LINE_13))
- {
- gpio_exint_handler(GPIO_PINS_13);
- }
- if (RESET != exint_flag_get(EXINT_LINE_14))
- {
- gpio_exint_handler(GPIO_PINS_14);
- }
- if (RESET != exint_flag_get(EXINT_LINE_15))
- {
- gpio_exint_handler(GPIO_PINS_15);
- }
- rt_interrupt_leave();
-}
-
-int rt_hw_pin_init(void)
-{
-
-#ifdef GPIOA
- crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
-#endif
-#ifdef GPIOB
- crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
-#endif
-#ifdef GPIOC
- crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE);
-#endif
-#ifdef GPIOD
- crm_periph_clock_enable(CRM_GPIOD_PERIPH_CLOCK, TRUE);
-#endif
-#ifdef GPIOE
- crm_periph_clock_enable(CRM_GPIOE_PERIPH_CLOCK, TRUE);
-#endif
-#ifdef GPIOF
- crm_periph_clock_enable(CRM_GPIOF_PERIPH_CLOCK, TRUE);
-#endif
-#ifdef GPIOG
- crm_periph_clock_enable(CRM_GPIOG_PERIPH_CLOCK, TRUE);
-#endif
-
- crm_periph_clock_enable(CRM_IOMUX_PERIPH_CLOCK, TRUE);
-
- return rt_device_pin_register("pin", &_at32_pin_ops, RT_NULL);
-}
-
-INIT_BOARD_EXPORT(rt_hw_pin_init);
-
-#endif /* RT_USING_PIN */
diff --git a/bsp/at32/libraries/f403a_407/rt_drivers/drv_gpio.h b/bsp/at32/libraries/f403a_407/rt_drivers/drv_gpio.h
deleted file mode 100644
index 16abd818a1..0000000000
--- a/bsp/at32/libraries/f403a_407/rt_drivers/drv_gpio.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2020-01-07 shelton first version
- */
-
-#ifndef __DRV_GPIO_H__
-#define __DRV_GPIO_H__
-
-#include <rthw.h>
-#include <rtdevice.h>
-#include "board.h"
-
-#define __AT32_PORT(port) GPIO##port##_BASE
-
-#define GET_PIN(PORTx,PIN) (rt_base_t)((16 * ( ((rt_base_t)__AT32_PORT(PORTx) - (rt_base_t)GPIOA_BASE)/(0x0400UL) )) + PIN)
-
-#define __AT32_PIN(index, gpio, gpio_index) \
- { \
- index, GPIO##gpio, GPIO_Pins_##gpio_index, \
- GPIO_PortSourceGPIO##gpio, GPIO_PinsSource##gpio_index \
- }
-
-#define __AT32_PIN_RESERVE \
- { \
- -1, 0, 0, 0, 0 \
- }
-
-/* AT32 GPIO driver */
-struct pin_index
-{
- int index;
- gpio_type *gpio_x;
- rt_uint32_t pin;
- rt_uint32_t portsource;
- rt_uint32_t pinsource;
-};
-
-struct pin_irq_map
-{
- rt_uint16_t pinbit;
- rt_uint16_t lineno;
- IRQn_Type irqno;
-};
-
-int rt_hw_pin_init(void);
-
-#endif /* __DRV_GPIO_H__ */
-
diff --git a/bsp/at32/libraries/f403a_407/rt_drivers/drv_rtc.c b/bsp/at32/libraries/f403a_407/rt_drivers/drv_rtc.c
deleted file mode 100644
index 6589d9fd44..0000000000
--- a/bsp/at32/libraries/f403a_407/rt_drivers/drv_rtc.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-10 shelton first version
- */
-
-#include <rtthread.h>
-#include <rtdevice.h>
-#include <sys/time.h>
-#include "board.h"
-
-#ifdef BSP_USING_RTC
-
-#ifndef BKP_DR1
-#define BKP_DR1 RT_NULL
-#endif
-
-//#define DRV_DEBUG
-#define LOG_TAG "drv.rtc"
-#include <drv_log.h>
-
-#define BKUP_REG_DATA 0xA5A5
-
-static time_t get_rtc_timestamp(void)
-{
- return rtc_counter_get();
-}
-
-static rt_err_t set_rtc_time_stamp(time_t time_stamp)
-{
- /* set the rtc counter value */
- rtc_counter_set(time_stamp);
- /* wait until last write operation on rtc registers has finished */
- rtc_wait_config_finish();
- LOG_D("set rtc time.");
-
- bpr_data_write(BPR_DATA1, BKUP_REG_DATA);
- return RT_EOK;
-}
-
-static rt_err_t rt_rtc_config(void)
-{
- /* allow access to pattery powered domain */
- pwc_battery_powered_domain_access(TRUE);
-
-#ifdef BSP_RTC_USING_LICK
- crm_rtc_clock_select(CRM_RTC_CLOCK_LICK);
-#else
- crm_rtc_clock_select(CRM_RTC_CLOCK_LEXT);
-#endif /* BSP_RTC_USING_LICK */
- /* enable rtc */
- crm_rtc_clock_enable(TRUE);
-
- /* wait for rtc registers update finish */
- rtc_wait_update_finish();
- /* wait until last write operation on rtc registers has finished */
- rtc_wait_config_finish();
-
- if (bpr_data_read(BPR_DATA1) != BKUP_REG_DATA)
- {
- LOG_I("RTC hasn't been configured, please use <date> command to config.");
- /* set rtc divider: set rtc period to 1sec */
- rtc_divider_set(32767);
- /* wait until last write operation on rtc registers has finished */
- rtc_wait_config_finish();
- }
- return RT_EOK;
-}
-
-static rt_err_t _rtc_init(void)
-{
- crm_periph_clock_enable(CRM_PWC_PERIPH_CLOCK, TRUE);
- crm_periph_clock_enable(CRM_BPR_PERIPH_CLOCK, TRUE);
-
-#ifdef BSP_RTC_USING_LICK
- crm_clock_source_enable(CRM_CLOCK_SOURCE_LICK, TRUE);
- while(crm_flag_get(CRM_LICK_STABLE_FLAG) == RESET);
-#else
- crm_periph_clock_enable(CRM_PWC_PERIPH_CLOCK, TRUE);
- pwc_battery_powered_domain_access(TRUE);
- crm_clock_source_enable(CRM_CLOCK_SOURCE_LEXT, TRUE);
- while(crm_flag_get(CRM_LEXT_STABLE_FLAG) == RESET);
-#endif /* BSP_RTC_USING_LICK */
- if (rt_rtc_config() != RT_EOK)
- {
- LOG_E("rtc init failed.");
- return -RT_ERROR;
- }
- return RT_EOK;
-}
-
-static rt_err_t _rtc_get_secs(void *args)
-{
- *(rt_uint32_t *)args = get_rtc_timestamp();
- LOG_D("RTC: get rtc_time %x\n", *(rt_uint32_t *)args);
-
- return RT_EOK;
-}
-
-static rt_err_t _rtc_set_secs(void *args)
-{
- rt_err_t result = RT_EOK;
-
- if (set_rtc_time_stamp(*(rt_uint32_t *)args))
- {
- result = -RT_ERROR;
- }
- LOG_D("RTC: set rtc_time %x\n", *(rt_uint32_t *)args);
-
- return result;
-}
-
-static const struct rt_rtc_ops _rtc_ops =
-{
- _rtc_init,
- _rtc_get_secs,
- _rtc_set_secs,
- RT_NULL,
- RT_NULL,
- RT_NULL,
- RT_NULL,
-};
-
-static rt_rtc_dev_t at32_rtc_dev;
-
-int rt_hw_rtc_init(void)
-{
- rt_err_t result;
- at32_rtc_dev.ops = &_rtc_ops;
- result = rt_hw_rtc_register(&at32_rtc_dev, "rtc", RT_DEVICE_FLAG_RDWR,RT_NULL);
- if (result != RT_EOK)
- {
- LOG_E("rtc register err code: %d", result);
- return result;
- }
- LOG_D("rtc init success");
- return RT_EOK;
-}
-
-INIT_DEVICE_EXPORT(rt_hw_rtc_init);
-
-#endif /* BSP_USING_RTC */
diff --git a/bsp/at32/libraries/f403a_407/rt_drivers/drv_sdio.c b/bsp/at32/libraries/f403a_407/rt_drivers/drv_sdio.c
deleted file mode 100644
index 2da45546d9..0000000000
--- a/bsp/at32/libraries/f403a_407/rt_drivers/drv_sdio.c
+++ /dev/null
@@ -1,823 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-08 shelton first version
- */
-
-#include "board.h"
-#include "drv_sdio.h"
-
-#ifdef BSP_USING_SDIO
-#if !defined (BSP_USING_SDIO1)
-#error "Please define at least one SDIOx"
-#endif
-
-//#define DRV_DEBUG
-#define LOG_TAG "drv.sdio"
-#include <drv_log.h>
-
-static struct at32_sdio_config sdio_config = SDIO_BUS_CONFIG;
-static struct at32_sdio_class sdio_obj;
-static struct rt_mmcsd_host *host;
-
-#define SDIO_TX_RX_COMPLETE_TIMEOUT_LOOPS (100000)
-
-#define RT_HW_SDIO_LOCK(_sdio) rt_mutex_take(&_sdio->mutex, RT_WAITING_FOREVER)
-#define RT_HW_SDIO_UNLOCK(_sdio) rt_mutex_release(&_sdio->mutex);
-
-struct sdio_pkg
-{
- struct rt_mmcsd_cmd *cmd;
- void *buff;
- rt_uint32_t flag;
-};
-
-struct rt_hw_sdio
-{
- struct rt_mmcsd_host *host;
- struct at32_sdio_des sdio_des;
- struct rt_event event;
- struct rt_mutex mutex;
- struct sdio_pkg *pkg;
-};
-
-ALIGN(SDIO_ALIGN_LEN)
-static rt_uint8_t cache_buf[SDIO_BUFF_SIZE];
-
-static rt_uint32_t at32_sdio_clk_get(struct at32_sdio *hw_sdio)
-{
- return SDIO_CLOCK_FREQ;
-}
-
-/**
- * @brief this function get order from sdio.
- * @param data
- * @retval sdio order
- */
-static int get_order(rt_uint32_t data)
-{
- int order = 0;
-
- switch (data)
- {
- case 1:
- order = 0;
- break;
- case 2:
- order = 1;
- break;
- case 4:
- order = 2;
- break;
- case 8:
- order = 3;
- break;
- case 16:
- order = 4;
- break;
- case 32:
- order = 5;
- break;
- case 64:
- order = 6;
- break;
- case 128:
- order = 7;
- break;
- case 256:
- order = 8;
- break;
- case 512:
- order = 9;
- break;
- case 1024:
- order = 10;
- break;
- case 2048:
- order = 11;
- break;
- case 4096:
- order = 12;
- break;
- case 8192:
- order = 13;
- break;
- case 16384:
- order = 14;
- break;
- default :
- order = 0;
- break;
- }
-
- return order;
-}
-
-/**
- * @brief this function wait sdio completed.
- * @param sdio rt_hw_sdio
- * @retval none
- */
-static void rt_hw_sdio_wait_completed(struct rt_hw_sdio *sdio)
-{
- rt_uint32_t status;
- struct rt_mmcsd_cmd *cmd = sdio->pkg->cmd;
- struct rt_mmcsd_data *data = cmd->data;
- struct at32_sdio *hw_sdio = sdio->sdio_des.hw_sdio;
-
- if (rt_event_recv(&sdio->event, 0xffffffff, RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR,
- rt_tick_from_millisecond(5000), &status) != RT_EOK)
- {
- LOG_E("wait completed timeout");
- cmd->err = -RT_ETIMEOUT;
- return;
- }
-
- if (sdio->pkg == RT_NULL)
- {
- return;
- }
-
- cmd->resp[0] = hw_sdio->resp1;
- cmd->resp[1] = hw_sdio->resp2;
- cmd->resp[2] = hw_sdio->resp3;
- cmd->resp[3] = hw_sdio->resp4;
-
- if (status & HW_SDIO_ERRORS)
- {
- if ((status & HW_SDIO_IT_CCRCFAIL) && (resp_type(cmd) & (RESP_R3 | RESP_R4)))
- {
- cmd->err = RT_EOK;
- }
- else
- {
- cmd->err = -RT_ERROR;
- }
-
- if (status & HW_SDIO_IT_CTIMEOUT)
- {
- cmd->err = -RT_ETIMEOUT;
- }
-
- if (status & HW_SDIO_IT_DCRCFAIL)
- {
- data->err = -RT_ERROR;
- }
-
- if (status & HW_SDIO_IT_DTIMEOUT)
- {
- data->err = -RT_ETIMEOUT;
- }
-
- if (cmd->err == RT_EOK)
- {
- LOG_D("sta:0x%08X [%08X %08X %08X %08X]", status, cmd->resp[0], cmd->resp[1], cmd->resp[2], cmd->resp[3]);
- }
- else
- {
- LOG_D("err:0x%08x, %s%s%s%s%s%s%s cmd:%d arg:0x%08x rw:%c len:%d blksize:%d",
- status,
- status & HW_SDIO_IT_CCRCFAIL ? "CCRCFAIL " : "",
- status & HW_SDIO_IT_DCRCFAIL ? "DCRCFAIL " : "",
- status & HW_SDIO_IT_CTIMEOUT ? "CTIMEOUT " : "",
- status & HW_SDIO_IT_DTIMEOUT ? "DTIMEOUT " : "",
- status & HW_SDIO_IT_TXUNDERR ? "TXUNDERR " : "",
- status & HW_SDIO_IT_RXOVERR ? "RXOVERR " : "",
- status == 0 ? "NULL" : "",
- cmd->cmd_code,
- cmd->arg,
- data ? (data->flags & DATA_DIR_WRITE ? 'w' : 'r') : '-',
- data ? data->blks * data->blksize : 0,
- data ? data->blksize : 0
- );
- }
- }
- else
- {
- cmd->err = RT_EOK;
- LOG_D("sta:0x%08X [%08X %08X %08X %08X]", status, cmd->resp[0], cmd->resp[1], cmd->resp[2], cmd->resp[3]);
- }
-}
-
-/**
- * @brief this function transfer data by dma.
- * @param sdio rt_hw_sdio
- * @param pkg sdio package
- * @retval none
- */
-static void rt_hw_sdio_transfer_by_dma(struct rt_hw_sdio *sdio, struct sdio_pkg *pkg)
-{
- struct rt_mmcsd_data *data;
- int size;
- void *buff;
- struct at32_sdio *hw_sdio;
-
- if ((RT_NULL == pkg) || (RT_NULL == sdio))
- {
- LOG_E("rt_hw_sdio_transfer_by_dma invalid args");
- return;
- }
-
- data = pkg->cmd->data;
- if (RT_NULL == data)
- {
- LOG_E("rt_hw_sdio_transfer_by_dma invalid args");
- return;
- }
-
- buff = pkg->buff;
- if (RT_NULL == buff)
- {
- LOG_E("rt_hw_sdio_transfer_by_dma invalid args");
- return;
- }
- hw_sdio = sdio->sdio_des.hw_sdio;
- size = data->blks * data->blksize;
-
- if (data->flags & DATA_DIR_WRITE)
- {
- sdio->sdio_des.txconfig((rt_uint32_t *)buff, (rt_uint32_t *)&hw_sdio->fifo, size);
- hw_sdio->dctrl |= HW_SDIO_DMA_ENABLE;
- }
- else if (data->flags & DATA_DIR_READ)
- {
- sdio->sdio_des.rxconfig((rt_uint32_t *)&hw_sdio->fifo, (rt_uint32_t *)buff, size);
- hw_sdio->dctrl |= HW_SDIO_DMA_ENABLE | HW_SDIO_DPSM_ENABLE;
- }
-}
-
-/**
- * @brief this function send command.
- * @param sdio rt_hw_sdio
- * @param pkg sdio package
- * @retval none
- */
-static void rt_hw_sdio_send_command(struct rt_hw_sdio *sdio, struct sdio_pkg *pkg)
-{
- struct rt_mmcsd_cmd *cmd = pkg->cmd;
- struct rt_mmcsd_data *data = cmd->data;
- struct at32_sdio *hw_sdio = sdio->sdio_des.hw_sdio;
- rt_uint32_t reg_cmd;
-
- /* save pkg */
- sdio->pkg = pkg;
-
- LOG_D("CMD:%d ARG:0x%08x RES:%s%s%s%s%s%s%s%s%s rw:%c len:%d blksize:%d",
- cmd->cmd_code,
- cmd->arg,
- resp_type(cmd) == RESP_NONE ? "NONE" : "",
- resp_type(cmd) == RESP_R1 ? "R1" : "",
- resp_type(cmd) == RESP_R1B ? "R1B" : "",
- resp_type(cmd) == RESP_R2 ? "R2" : "",
- resp_type(cmd) == RESP_R3 ? "R3" : "",
- resp_type(cmd) == RESP_R4 ? "R4" : "",
- resp_type(cmd) == RESP_R5 ? "R5" : "",
- resp_type(cmd) == RESP_R6 ? "R6" : "",
- resp_type(cmd) == RESP_R7 ? "R7" : "",
- data ? (data->flags & DATA_DIR_WRITE ? 'w' : 'r') : '-',
- data ? data->blks * data->blksize : 0,
- data ? data->blksize : 0
- );
-
- /* config cmd reg */
- reg_cmd = cmd->cmd_code | HW_SDIO_CPSM_ENABLE;
- if (resp_type(cmd) == RESP_NONE)
- reg_cmd |= HW_SDIO_RESPONSE_NO;
- else if (resp_type(cmd) == RESP_R2)
- reg_cmd |= HW_SDIO_RESPONSE_LONG;
- else
- reg_cmd |= HW_SDIO_RESPONSE_SHORT;
-
- /* config data reg */
- if (data != RT_NULL)
- {
- rt_uint32_t dir = 0;
- rt_uint32_t size = data->blks * data->blksize;
- int order;
-
- hw_sdio->dctrl = 0;
- hw_sdio->dtimer = HW_SDIO_DATATIMEOUT;
- hw_sdio->dlen = size;
- order = get_order(data->blksize);
- dir = (data->flags & DATA_DIR_READ) ? HW_SDIO_TO_HOST : 0;
- hw_sdio->dctrl = /* HW_SDIO_IO_ENABLE | */ (order << 4) | dir;
- }
-
- /* transfer config */
- if (data != RT_NULL)
- {
- rt_hw_sdio_transfer_by_dma(sdio, pkg);
- }
-
- /* open irq */
- hw_sdio->mask |= HW_SDIO_IT_CMDSENT | HW_SDIO_IT_CMDREND | HW_SDIO_ERRORS;
- if (data != RT_NULL)
- {
- hw_sdio->mask |= HW_SDIO_IT_DATAEND;
- }
-
- /* send cmd */
- hw_sdio->arg = cmd->arg;
- hw_sdio->cmd = reg_cmd;
-
- /* wait completed */
- rt_hw_sdio_wait_completed(sdio);
-
- /* waiting for data to be sent to completion */
- if (data != RT_NULL)
- {
- volatile rt_uint32_t count = SDIO_TX_RX_COMPLETE_TIMEOUT_LOOPS;
-
- while (count && (hw_sdio->sta & (HW_SDIO_IT_TXACT | HW_SDIO_IT_RXACT)))
- {
- count--;
- }
-
- if ((count == 0) || (hw_sdio->sta & HW_SDIO_ERRORS))
- {
- cmd->err = -RT_ERROR;
- }
- }
-
- /* close irq, keep sdio irq */
- hw_sdio->mask = hw_sdio->mask & HW_SDIO_IT_SDIOIT ? HW_SDIO_IT_SDIOIT : 0x00;
-
- /* clear pkg */
- sdio->pkg = RT_NULL;
-}
-
-/**
- * @brief this function send sdio request.
- * @param sdio rt_hw_sdio
- * @param req request
- * @retval none
- */
-static void rt_hw_sdio_request(struct rt_mmcsd_host *host, struct rt_mmcsd_req *req)
-{
- struct sdio_pkg pkg;
- struct rt_hw_sdio *sdio = host->private_data;
- struct rt_mmcsd_data *data;
-
- RT_HW_SDIO_LOCK(sdio);
-
- if (req->cmd != RT_NULL)
- {
- memset(&pkg, 0, sizeof(pkg));
- data = req->cmd->data;
- pkg.cmd = req->cmd;
-
- if (data != RT_NULL)
- {
- rt_uint32_t size = data->blks * data->blksize;
-
- RT_ASSERT(size <= SDIO_BUFF_SIZE);
-
- pkg.buff = data->buf;
- if ((rt_uint32_t)data->buf & (SDIO_ALIGN_LEN - 1))
- {
- pkg.buff = cache_buf;
- if (data->flags & DATA_DIR_WRITE)
- {
- memcpy(cache_buf, data->buf, size);
- }
- }
- }
-
- rt_hw_sdio_send_command(sdio, &pkg);
-
- if ((data != RT_NULL) && (data->flags & DATA_DIR_READ) && ((rt_uint32_t)data->buf & (SDIO_ALIGN_LEN - 1)))
- {
- memcpy(data->buf, cache_buf, data->blksize * data->blks);
- }
- }
-
- if (req->stop != RT_NULL)
- {
- memset(&pkg, 0, sizeof(pkg));
- pkg.cmd = req->stop;
- rt_hw_sdio_send_command(sdio, &pkg);
- }
-
- RT_HW_SDIO_UNLOCK(sdio);
-
- mmcsd_req_complete(sdio->host);
-}
-
-/**
- * @brief this function config sdio.
- * @param host rt_mmcsd_host
- * @param io_cfg rt_mmcsd_io_cfg
- * @retval none
- */
-static void rt_hw_sdio_iocfg(struct rt_mmcsd_host *host, struct rt_mmcsd_io_cfg *io_cfg)
-{
- rt_uint32_t clkcr, div, clk_src;
- rt_uint32_t clk = io_cfg->clock;
- struct rt_hw_sdio *sdio = host->private_data;
- struct at32_sdio *hw_sdio = sdio->sdio_des.hw_sdio;
-
- clk_src = sdio->sdio_des.clk_get(sdio->sdio_des.hw_sdio);
- if (clk_src < 400 * 1000)
- {
- LOG_E("The clock rate is too low! rata:%d", clk_src);
- return;
- }
-
- if (clk > host->freq_max) clk = host->freq_max;
-
- if (clk > clk_src)
- {
- LOG_W("Setting rate is greater than clock source rate.");
- clk = clk_src;
- }
-
- LOG_D("clk:%d width:%s%s%s power:%s%s%s",
- clk,
- io_cfg->bus_width == MMCSD_BUS_WIDTH_8 ? "8" : "",
- io_cfg->bus_width == MMCSD_BUS_WIDTH_4 ? "4" : "",
- io_cfg->bus_width == MMCSD_BUS_WIDTH_1 ? "1" : "",
- io_cfg->power_mode == MMCSD_POWER_OFF ? "OFF" : "",
- io_cfg->power_mode == MMCSD_POWER_UP ? "UP" : "",
- io_cfg->power_mode == MMCSD_POWER_ON ? "ON" : ""
- );
-
- RT_HW_SDIO_LOCK(sdio);
-
- div = clk_src / clk;
- if ((clk == 0) || (div == 0))
- {
- clkcr = 0;
- }
- else
- {
- if (div < 2)
- {
- div = 2;
- }
- else if (div > 0x3FF)
- {
- div = 0x3FF;
- }
- div -= 2;
- clkcr = (div & 0xFF) | ((div & 0x300) << 7) | HW_SDIO_CLK_ENABLE;
- }
-
- if (io_cfg->bus_width == MMCSD_BUS_WIDTH_8)
- {
- clkcr |= HW_SDIO_BUSWIDE_8B;
- }
- else if (io_cfg->bus_width == MMCSD_BUS_WIDTH_4)
- {
- clkcr |= HW_SDIO_BUSWIDE_4B;
- }
- else
- {
- clkcr |= HW_SDIO_BUSWIDE_1B;
- }
-
- hw_sdio->clkcr = clkcr;
-
- switch (io_cfg->power_mode)
- {
- case MMCSD_POWER_OFF:
- hw_sdio->power = HW_SDIO_POWER_OFF;
- break;
- case MMCSD_POWER_UP:
- hw_sdio->power = HW_SDIO_POWER_UP;
- break;
- case MMCSD_POWER_ON:
- hw_sdio->power = HW_SDIO_POWER_ON;
- break;
- default:
- LOG_W("unknown power_mode %d", io_cfg->power_mode);
- break;
- }
-
- RT_HW_SDIO_UNLOCK(sdio);
-}
-
-/**
- * @brief this function update sdio interrupt.
- * @param host rt_mmcsd_host
- * @param enable
- * @retval none
- */
-void rt_hw_sdio_irq_update(struct rt_mmcsd_host *host, rt_int32_t enable)
-{
- struct rt_hw_sdio *sdio = host->private_data;
- struct at32_sdio *hw_sdio = sdio->sdio_des.hw_sdio;
-
- if (enable)
- {
- LOG_D("enable sdio irq");
- hw_sdio->mask |= HW_SDIO_IT_SDIOIT;
- }
- else
- {
- LOG_D("disable sdio irq");
- hw_sdio->mask &= ~HW_SDIO_IT_SDIOIT;
- }
-}
-
-/**
- * @brief this function delect sdcard.
- * @param host rt_mmcsd_host
- * @retval 0x01
- */
-static rt_int32_t rt_hw_sd_delect(struct rt_mmcsd_host *host)
-{
- LOG_D("try to detect device");
- return 0x01;
-}
-
-/**
- * @brief this function interrupt process function.
- * @param host rt_mmcsd_host
- * @retval none
- */
-void rt_hw_sdio_irq_process(struct rt_mmcsd_host *host)
-{
- int complete = 0;
- struct rt_hw_sdio *sdio = host->private_data;
- struct at32_sdio *hw_sdio = sdio->sdio_des.hw_sdio;
- rt_uint32_t intstatus = hw_sdio->sta;
-
- if (intstatus & HW_SDIO_ERRORS)
- {
- hw_sdio->icr = HW_SDIO_ERRORS;
- complete = 1;
- }
- else
- {
- if (intstatus & HW_SDIO_IT_CMDREND)
- {
- hw_sdio->icr = HW_SDIO_IT_CMDREND;
-
- if (sdio->pkg != RT_NULL)
- {
- if (!sdio->pkg->cmd->data)
- {
- complete = 1;
- }
- else if ((sdio->pkg->cmd->data->flags & DATA_DIR_WRITE))
- {
- hw_sdio->dctrl |= HW_SDIO_DPSM_ENABLE;
- }
- }
- }
-
- if (intstatus & HW_SDIO_IT_CMDSENT)
- {
- hw_sdio->icr = HW_SDIO_IT_CMDSENT;
-
- if (resp_type(sdio->pkg->cmd) == RESP_NONE)
- {
- complete = 1;
- }
- }
-
- if (intstatus & HW_SDIO_IT_DATAEND)
- {
- hw_sdio->icr = HW_SDIO_IT_DATAEND;
- complete = 1;
- }
- }
-
- if ((intstatus & HW_SDIO_IT_SDIOIT) && (hw_sdio->mask & HW_SDIO_IT_SDIOIT))
- {
- hw_sdio->icr = HW_SDIO_IT_SDIOIT;
- sdio_irq_wakeup(host);
- }
-
- if (complete)
- {
- hw_sdio->mask &= ~HW_SDIO_ERRORS;
- rt_event_send(&sdio->event, intstatus);
- }
-}
-
-static const struct rt_mmcsd_host_ops ops =
-{
- rt_hw_sdio_request,
- rt_hw_sdio_iocfg,
- rt_hw_sd_delect,
- rt_hw_sdio_irq_update,
-};
-
-/**
- * @brief this function create mmcsd host.
- * @param sdio_des at32_sdio_des
- * @retval rt_mmcsd_host
- */
-struct rt_mmcsd_host *sdio_host_create(struct at32_sdio_des *sdio_des)
-{
- struct rt_mmcsd_host *host;
- struct rt_hw_sdio *sdio = RT_NULL;
-
- if ((sdio_des == RT_NULL) || (sdio_des->txconfig == RT_NULL) || (sdio_des->rxconfig == RT_NULL))
- {
- LOG_E("L:%d F:%s %s %s %s",
- (sdio_des == RT_NULL ? "sdio_des is NULL" : ""),
- (sdio_des ? (sdio_des->txconfig ? "txconfig is NULL" : "") : ""),
- (sdio_des ? (sdio_des->rxconfig ? "rxconfig is NULL" : "") : "")
- );
- return RT_NULL;
- }
-
- sdio = rt_malloc(sizeof(struct rt_hw_sdio));
- if (sdio == RT_NULL)
- {
- LOG_E("L:%d F:%s malloc rt_hw_sdio fail");
- return RT_NULL;
- }
- rt_memset(sdio, 0, sizeof(struct rt_hw_sdio));
-
- host = mmcsd_alloc_host();
- if (host == RT_NULL)
- {
- LOG_E("L:%d F:%s mmcsd alloc host fail");
- rt_free(sdio);
- return RT_NULL;
- }
-
- rt_memcpy(&sdio->sdio_des, sdio_des, sizeof(struct at32_sdio_des));
- sdio->sdio_des.hw_sdio = (sdio_des->hw_sdio == RT_NULL ? (struct at32_sdio *)SDIO_BASE_ADDRESS : sdio_des->hw_sdio);
- sdio->sdio_des.clk_get = (sdio_des->clk_get == RT_NULL ? at32_sdio_clk_get : sdio_des->clk_get);
-
- rt_event_init(&sdio->event, "sdio", RT_IPC_FLAG_FIFO);
- rt_mutex_init(&sdio->mutex, "sdio", RT_IPC_FLAG_PRIO);
-
- /* set host defautl attributes */
- host->ops = &ops;
- host->freq_min = 400 * 1000;
- host->freq_max = SDIO_MAX_FREQ;
- host->valid_ocr = 0X00FFFF80;/* the voltage range supported is 1.65v-3.6v */
-#ifndef SDIO_USING_1_BIT
- host->flags = MMCSD_BUSWIDTH_4 | MMCSD_MUTBLKWRITE | MMCSD_SUP_SDIO_IRQ;
-#else
- host->flags = MMCSD_MUTBLKWRITE | MMCSD_SUP_SDIO_IRQ;
-#endif
- host->max_seg_size = SDIO_BUFF_SIZE;
- host->max_dma_segs = 1;
- host->max_blk_size = 512;
- host->max_blk_count = 512;
-
- /* link up host and sdio */
- sdio->host = host;
- host->private_data = sdio;
-
- rt_hw_sdio_irq_update(host, 1);
-
- /* ready to change */
- mmcsd_change(host);
-
- return host;
-}
-
-/**
- * @brief this function configures the dmatx.
- * @param src: pointer to the source buffer
- * @param dst: pointer to the destination buffer
- * @param buffer_size: size of tx buffer
- * @retval none
- */
-void sd_lowlevel_dmatx_config(uint32_t *src, uint32_t *dst, uint32_t buffer_size)
-{
- static uint32_t size = 0;
- dma_init_type dma_init_struct;
-
- size += buffer_size * 4;
- sdio_obj.cfg = &sdio_config;
-
- dma_default_para_init(&dma_init_struct);
- sdio_obj.dma.handle_tx = sdio_config.dma_tx.dma_channel;
- dma_init_struct.direction = DMA_DIR_MEMORY_TO_PERIPHERAL;
- dma_init_struct.buffer_size = buffer_size;
- dma_init_struct.memory_base_addr = (uint32_t)src;
- dma_init_struct.memory_data_width = DMA_MEMORY_DATA_WIDTH_WORD;
- dma_init_struct.memory_inc_enable = TRUE;
- dma_init_struct.peripheral_base_addr = (uint32_t)dst;
- dma_init_struct.peripheral_data_width = DMA_PERIPHERAL_DATA_WIDTH_WORD;
- dma_init_struct.peripheral_inc_enable = FALSE;
- dma_init_struct.priority = DMA_PRIORITY_MEDIUM;
-
- nvic_irq_enable(sdio_config.dma_tx.dma_irq, 2, 0);
-
- dma_init(sdio_obj.dma.handle_tx, &dma_init_struct);
- dma_interrupt_enable(sdio_obj.dma.handle_tx, DMA_FDT_INT, TRUE);
- dma_channel_enable(sdio_obj.dma.handle_tx, TRUE);
-}
-
-/**
- * @brief this function configures the dmarx.
- * @param src: pointer to the source buffer
- * @param dst: pointer to the destination buffer
- * @param buffer_size: size of rx buffer
- * @retval none
- */
-void sd_lowlevel_dmarx_config(uint32_t *src, uint32_t *dst, uint32_t buffer_size)
-{
- sdio_obj.cfg = &sdio_config;
- dma_init_type dma_init_struct;
-
- dma_default_para_init(&dma_init_struct);
- sdio_obj.dma.handle_rx = sdio_config.dma_rx.dma_channel;
- dma_init_struct.direction = DMA_DIR_PERIPHERAL_TO_MEMORY;
- dma_init_struct.buffer_size = buffer_size;
- dma_init_struct.memory_base_addr = (uint32_t)dst;
- dma_init_struct.memory_data_width = DMA_MEMORY_DATA_WIDTH_WORD;
- dma_init_struct.memory_inc_enable = TRUE;
- dma_init_struct.peripheral_base_addr = (uint32_t)src;
- dma_init_struct.peripheral_data_width = DMA_PERIPHERAL_DATA_WIDTH_WORD;
- dma_init_struct.peripheral_inc_enable = FALSE;
- dma_init_struct.priority = DMA_PRIORITY_MEDIUM;
-
- nvic_irq_enable(sdio_config.dma_rx.dma_irq, 2, 0);
-
- dma_init(sdio_obj.dma.handle_rx, &dma_init_struct);
- dma_interrupt_enable(sdio_obj.dma.handle_rx, DMA_FDT_INT, TRUE);
- dma_channel_enable(sdio_obj.dma.handle_rx, TRUE);
-}
-
-void DMA2_Channel4_5_IRQHandler(void)
-{
- if(dma_flag_get(DMA2_FDT4_FLAG))
- {
- dma_flag_clear(DMA2_FDT4_FLAG);
- dma_channel_enable(sdio_config.dma_rx.dma_channel, FALSE);
- }
-}
-
-/**
- * @brief this function get at32 sdio clock.
- * @param hw_sdio: at32_sdio
- * @retval ahb frequency
- */
-static rt_uint32_t at32_sdio_clock_get(struct at32_sdio *hw_sdio)
-{
- crm_clocks_freq_type clocks;
-
- crm_clocks_freq_get(&clocks);
- return clocks.ahb_freq;
-}
-
-static rt_err_t dma_tx_config(rt_uint32_t *src, rt_uint32_t *dst, int size)
-{
- sd_lowlevel_dmatx_config((uint32_t *)src, (uint32_t *)dst, size / 4);
- return RT_EOK;
-}
-
-static rt_err_t dma_rx_config(rt_uint32_t *src, rt_uint32_t *dst, int size)
-{
- sd_lowlevel_dmarx_config((uint32_t *)src, (uint32_t *)dst, size / 4);
- return RT_EOK;
-}
-
-void SDIO1_IRQHandler(void)
-{
- /* enter interrupt */
- rt_interrupt_enter();
-
- rt_hw_sdio_irq_process(host);
-
- /* leave interrupt */
- rt_interrupt_leave();
-}
-
-int rt_hw_sdio_init(void)
-{
- struct at32_sdio_des sdio_des;
- struct at32_sdio_config hsd;
-
- hsd.sdio_x = SDCARD_INSTANCE;
- at32_msp_sdio_init((void *)(hsd.sdio_x));
-
- nvic_irq_enable(SDIO1_IRQn, 2, 0);
-
- sdio_des.clk_get = at32_sdio_clock_get;
- sdio_des.hw_sdio = (struct at32_sdio *)SDCARD_INSTANCE;
- sdio_des.rxconfig = dma_rx_config;
- sdio_des.txconfig = dma_tx_config;
-
- host = sdio_host_create(&sdio_des);
- if (host == RT_NULL)
- {
- LOG_E("host create fail");
- return -1;
- }
-
- return 0;
-}
-
-INIT_DEVICE_EXPORT(rt_hw_sdio_init);
-
-void at32_mmcsd_change(void)
-{
- mmcsd_change(host);
-}
-
-#endif
diff --git a/bsp/at32/libraries/f403a_407/rt_drivers/drv_sdio.h b/bsp/at32/libraries/f403a_407/rt_drivers/drv_sdio.h
deleted file mode 100644
index d196fc116f..0000000000
--- a/bsp/at32/libraries/f403a_407/rt_drivers/drv_sdio.h
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-08 shelton first version
- */
-
-#ifndef _DRV_SDIO_H
-#define _DRV_SDIO_H
-#include <rtthread.h>
-#include "rtdevice.h"
-#include <rthw.h>
-#include <string.h>
-#include <drivers/mmcsd_core.h>
-#include <drivers/sdio.h>
-#include "at32f403a_407.h"
-
-#define SDCARD_INSTANCE_TYPE sdio_type
-
-#define SDCARD_INSTANCE SDIO1
-
-#define SDIO_BUFF_SIZE 4096
-#define SDIO_ALIGN_LEN 32
-
-#ifndef SDIO_MAX_FREQ
-#define SDIO_MAX_FREQ (1000000)
-#endif
-
-#ifndef SDIO_BASE_ADDRESS
-#define SDIO_BASE_ADDRESS SDIO1_BASE
-#endif
-
-#ifndef SDIO_CLOCK_FREQ
-#define SDIO_CLOCK_FREQ (48U * 1000 * 1000)
-#endif
-
-#ifndef SDIO_BUFF_SIZE
-#define SDIO_BUFF_SIZE (4096)
-#endif
-
-#ifndef SDIO_ALIGN_LEN
-#define SDIO_ALIGN_LEN (32)
-#endif
-
-#ifndef SDIO_MAX_FREQ
-#define SDIO_MAX_FREQ (24 * 1000 * 1000)
-#endif
-
-#define HW_SDIO_IT_CCRCFAIL (0x01U << 0)
-#define HW_SDIO_IT_DCRCFAIL (0x01U << 1)
-#define HW_SDIO_IT_CTIMEOUT (0x01U << 2)
-#define HW_SDIO_IT_DTIMEOUT (0x01U << 3)
-#define HW_SDIO_IT_TXUNDERR (0x01U << 4)
-#define HW_SDIO_IT_RXOVERR (0x01U << 5)
-#define HW_SDIO_IT_CMDREND (0x01U << 6)
-#define HW_SDIO_IT_CMDSENT (0x01U << 7)
-#define HW_SDIO_IT_DATAEND (0x01U << 8)
-#define HW_SDIO_IT_STBITERR (0x01U << 9)
-#define HW_SDIO_IT_DBCKEND (0x01U << 10)
-#define HW_SDIO_IT_CMDACT (0x01U << 11)
-#define HW_SDIO_IT_TXACT (0x01U << 12)
-#define HW_SDIO_IT_RXACT (0x01U << 13)
-#define HW_SDIO_IT_TXFIFOHE (0x01U << 14)
-#define HW_SDIO_IT_RXFIFOHF (0x01U << 15)
-#define HW_SDIO_IT_TXFIFOF (0x01U << 16)
-#define HW_SDIO_IT_RXFIFOF (0x01U << 17)
-#define HW_SDIO_IT_TXFIFOE (0x01U << 18)
-#define HW_SDIO_IT_RXFIFOE (0x01U << 19)
-#define HW_SDIO_IT_TXDAVL (0x01U << 20)
-#define HW_SDIO_IT_RXDAVL (0x01U << 21)
-#define HW_SDIO_IT_SDIOIT (0x01U << 22)
-
-#define HW_SDIO_ERRORS \
- (HW_SDIO_IT_CCRCFAIL | HW_SDIO_IT_CTIMEOUT | \
- HW_SDIO_IT_DCRCFAIL | HW_SDIO_IT_DTIMEOUT | \
- HW_SDIO_IT_RXOVERR | HW_SDIO_IT_TXUNDERR)
-
-#define HW_SDIO_POWER_OFF (0x00U)
-#define HW_SDIO_POWER_UP (0x02U)
-#define HW_SDIO_POWER_ON (0x03U)
-
-#define HW_SDIO_FLOW_ENABLE (0x01U << 14)
-#define HW_SDIO_BUSWIDE_1B (0x00U << 11)
-#define HW_SDIO_BUSWIDE_4B (0x01U << 11)
-#define HW_SDIO_BUSWIDE_8B (0x02U << 11)
-#define HW_SDIO_BYPASS_ENABLE (0x01U << 10)
-#define HW_SDIO_IDLE_ENABLE (0x01U << 9)
-#define HW_SDIO_CLK_ENABLE (0x01U << 8)
-
-#define HW_SDIO_SUSPEND_CMD (0x01U << 11)
-#define HW_SDIO_CPSM_ENABLE (0x01U << 10)
-#define HW_SDIO_WAIT_END (0x01U << 9)
-#define HW_SDIO_WAIT_INT (0x01U << 8)
-#define HW_SDIO_RESPONSE_NO (0x00U << 6)
-#define HW_SDIO_RESPONSE_SHORT (0x01U << 6)
-#define HW_SDIO_RESPONSE_LONG (0x03U << 6)
-
-#define HW_SDIO_DATA_LEN_MASK (0x01FFFFFFU)
-
-#define HW_SDIO_IO_ENABLE (0x01U << 11)
-#define HW_SDIO_RWMOD_CK (0x01U << 10)
-#define HW_SDIO_RWSTOP_ENABLE (0x01U << 9)
-#define HW_SDIO_RWSTART_ENABLE (0x01U << 8)
-#define HW_SDIO_DBLOCKSIZE_1 (0x00U << 4)
-#define HW_SDIO_DBLOCKSIZE_2 (0x01U << 4)
-#define HW_SDIO_DBLOCKSIZE_4 (0x02U << 4)
-#define HW_SDIO_DBLOCKSIZE_8 (0x03U << 4)
-#define HW_SDIO_DBLOCKSIZE_16 (0x04U << 4)
-#define HW_SDIO_DBLOCKSIZE_32 (0x05U << 4)
-#define HW_SDIO_DBLOCKSIZE_64 (0x06U << 4)
-#define HW_SDIO_DBLOCKSIZE_128 (0x07U << 4)
-#define HW_SDIO_DBLOCKSIZE_256 (0x08U << 4)
-#define HW_SDIO_DBLOCKSIZE_512 (0x09U << 4)
-#define HW_SDIO_DBLOCKSIZE_1024 (0x0AU << 4)
-#define HW_SDIO_DBLOCKSIZE_2048 (0x0BU << 4)
-#define HW_SDIO_DBLOCKSIZE_4096 (0x0CU << 4)
-#define HW_SDIO_DBLOCKSIZE_8192 (0x0DU << 4)
-#define HW_SDIO_DBLOCKSIZE_16384 (0x0EU << 4)
-#define HW_SDIO_DMA_ENABLE (0x01U << 3)
-#define HW_SDIO_STREAM_ENABLE (0x01U << 2)
-#define HW_SDIO_TO_HOST (0x01U << 1)
-#define HW_SDIO_DPSM_ENABLE (0x01U << 0)
-
-#define HW_SDIO_DATATIMEOUT (0xF0000000U)
-
-struct at32_sdio
-{
- volatile rt_uint32_t power;
- volatile rt_uint32_t clkcr;
- volatile rt_uint32_t arg;
- volatile rt_uint32_t cmd;
- volatile rt_uint32_t respcmd;
- volatile rt_uint32_t resp1;
- volatile rt_uint32_t resp2;
- volatile rt_uint32_t resp3;
- volatile rt_uint32_t resp4;
- volatile rt_uint32_t dtimer;
- volatile rt_uint32_t dlen;
- volatile rt_uint32_t dctrl;
- volatile rt_uint32_t dcount;
- volatile rt_uint32_t sta;
- volatile rt_uint32_t icr;
- volatile rt_uint32_t mask;
- volatile rt_uint32_t reserved0[2];
- volatile rt_uint32_t fifocnt;
- volatile rt_uint32_t reserved1[13];
- volatile rt_uint32_t fifo;
-};
-
-typedef rt_err_t (*dma_txconfig)(rt_uint32_t *src, rt_uint32_t *dst, int size);
-typedef rt_err_t (*dma_rxconfig)(rt_uint32_t *src, rt_uint32_t *dst, int size);
-typedef rt_uint32_t (*sdio_clk_get)(struct at32_sdio *hw_sdio);
-
-#define SDIO_BUS_CONFIG \
- { \
- .sdio_x = SDIO1, \
- .dma_rx.dma_crm = CRM_DMA2_PERIPH_CLOCK, \
- .dma_tx.dma_crm = CRM_DMA2_PERIPH_CLOCK, \
- .dma_rx.dma_channel = DMA2_CHANNEL4, \
- .dma_rx.dma_irq = DMA2_Channel4_5_IRQn, \
- .dma_tx.dma_channel = DMA2_CHANNEL4, \
- .dma_tx.dma_irq = DMA2_Channel4_5_IRQn, \
- }
-
-struct dma_config {
- dma_channel_type *dma_channel;
- crm_periph_clock_type dma_crm;
- IRQn_Type dma_irq;
-};
-
-struct at32_sdio_des
-{
- struct at32_sdio *hw_sdio;
- dma_txconfig txconfig;
- dma_rxconfig rxconfig;
- sdio_clk_get clk_get;
-};
-
-struct at32_sdio_config
-{
- SDCARD_INSTANCE_TYPE *sdio_x;
- struct dma_config dma_rx, dma_tx;
-};
-
-/* at32 sdio dirver class */
-struct at32_sdio_class
-{
- struct at32_sdio_des *des;
- const struct at32_sdio_config *cfg;
- struct rt_mmcsd_host host;
- struct
- {
- dma_channel_type* handle_rx;
- dma_channel_type* handle_tx;
- } dma;
-};
-
-extern void at32_mmcsd_change(void);
-
-#endif
diff --git a/bsp/at32/libraries/f403a_407/rt_drivers/drv_soft_i2c.c b/bsp/at32/libraries/f403a_407/rt_drivers/drv_soft_i2c.c
deleted file mode 100644
index b08adcd56a..0000000000
--- a/bsp/at32/libraries/f403a_407/rt_drivers/drv_soft_i2c.c
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-09 shelton first version
- */
-
-#include "board.h"
-#include "drv_soft_i2c.h"
-
-#ifdef RT_USING_I2C
-
-#define LOG_TAG "drv.i2c"
-#include <drv_log.h>
-
-#if !defined(BSP_USING_I2C1) && !defined(BSP_USING_I2C2) && \
- !defined(BSP_USING_I2C3)
-#error "Please define at least one BSP_USING_I2Cx"
-/* this driver can be disabled at menuconfig RT-Thread Components Device Drivers */
-#endif
-
-static const struct at32_soft_i2c_config soft_i2c_config[] =
-{
-#ifdef BSP_USING_I2C1
- I2C1_BUS_CONFIG,
-#endif
-#ifdef BSP_USING_I2C2
- I2C2_BUS_CONFIG,
-#endif
-#ifdef BSP_USING_I2C3
- I2C3_BUS_CONFIG,
-#endif
-};
-
-static struct at32_i2c i2c_obj[sizeof(soft_i2c_config) / sizeof(soft_i2c_config[0])];
-
-/**
- * this function initializes the i2c pin.
- *
- * @param at32 i2c dirver class.
- */
-static void at32_i2c_gpio_init(struct at32_i2c *i2c)
-{
- struct at32_soft_i2c_config* cfg = (struct at32_soft_i2c_config*)i2c->ops.data;
-
- rt_pin_mode(cfg->scl, PIN_MODE_OUTPUT_OD);
- rt_pin_mode(cfg->sda, PIN_MODE_OUTPUT_OD);
-
- rt_pin_write(cfg->scl, PIN_HIGH);
- rt_pin_write(cfg->sda, PIN_HIGH);
-}
-
-/**
- * this function sets the sda pin.
- *
- * @param at32 config class.
- * @param the sda pin state.
- */
-static void at32_set_sda(void *data, rt_int32_t state)
-{
- struct at32_soft_i2c_config* cfg = (struct at32_soft_i2c_config*)data;
- if (state)
- {
- rt_pin_write(cfg->sda, PIN_HIGH);
- }
- else
- {
- rt_pin_write(cfg->sda, PIN_LOW);
- }
-}
-
-/**
- * this function sets the scl pin.
- *
- * @param at32 config class.
- * @param the scl pin state.
- */
-static void at32_set_scl(void *data, rt_int32_t state)
-{
- struct at32_soft_i2c_config* cfg = (struct at32_soft_i2c_config*)data;
- if (state)
- {
- rt_pin_write(cfg->scl, PIN_HIGH);
- }
- else
- {
- rt_pin_write(cfg->scl, PIN_LOW);
- }
-}
-
-/**
- * this function gets the sda pin state.
- *
- * @param the sda pin state.
- */
-static rt_int32_t at32_get_sda(void *data)
-{
- struct at32_soft_i2c_config* cfg = (struct at32_soft_i2c_config*)data;
- return rt_pin_read(cfg->sda);
-}
-
-/**
- * this function gets the scl pin state.
- *
- * @param the scl pin state.
- */
-static rt_int32_t at32_get_scl(void *data)
-{
- struct at32_soft_i2c_config* cfg = (struct at32_soft_i2c_config*)data;
- return rt_pin_read(cfg->scl);
-}
-
-/**
- * the time delay function.
- *
- * @param microseconds.
- */
-static void at32_udelay(rt_uint32_t us)
-{
- rt_uint32_t ticks;
- rt_uint32_t told, tnow, tcnt = 0;
- rt_uint32_t reload = SysTick->LOAD;
-
- ticks = us * reload / (1000000 / RT_TICK_PER_SECOND);
- told = SysTick->VAL;
- while (1)
- {
- tnow = SysTick->VAL;
- if (tnow != told)
- {
- if (tnow < told)
- {
- tcnt += told - tnow;
- }
- else
- {
- tcnt += reload - tnow + told;
- }
- told = tnow;
- if (tcnt >= ticks)
- {
- break;
- }
- }
- }
-}
-
-static const struct rt_i2c_bit_ops at32_bit_ops_default =
-{
- .data = RT_NULL,
- .set_sda = at32_set_sda,
- .set_scl = at32_set_scl,
- .get_sda = at32_get_sda,
- .get_scl = at32_get_scl,
- .udelay = at32_udelay,
- .delay_us = 1,
- .timeout = 100
-};
-
-/**
- * if i2c is locked, this function will unlock it
- *
- * @param at32 config class
- *
- * @return RT_EOK indicates successful unlock.
- */
-static rt_err_t at32_i2c_bus_unlock(const struct at32_soft_i2c_config *cfg)
-{
- rt_int32_t i = 0;
-
- if (PIN_LOW == rt_pin_read(cfg->sda))
- {
- while (i++ < 9)
- {
- rt_pin_write(cfg->scl, PIN_HIGH);
- at32_udelay(100);
- rt_pin_write(cfg->scl, PIN_LOW);
- at32_udelay(100);
- }
- }
- if (PIN_LOW == rt_pin_read(cfg->sda))
- {
- return -RT_ERROR;
- }
-
- return RT_EOK;
-}
-
-/* i2c initialization function */
-int rt_hw_i2c_init(void)
-{
- rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct at32_i2c);
- rt_err_t result;
-
- for (int i = 0; i < obj_num; i++)
- {
- i2c_obj[i].ops = at32_bit_ops_default;
- i2c_obj[i].ops.data = (void*)&soft_i2c_config[i];
- i2c_obj[i].i2c_bus.priv = &i2c_obj[i].ops;
- at32_i2c_gpio_init(&i2c_obj[i]);
- result = rt_i2c_bit_add_bus(&i2c_obj[i].i2c_bus, soft_i2c_config[i].bus_name);
- RT_ASSERT(result == RT_EOK);
- at32_i2c_bus_unlock(&soft_i2c_config[i]);
-
- LOG_D("software simulation %s init done, pin scl: %d, pin sda %d",
- soft_i2c_config[i].bus_name,
- soft_i2c_config[i].scl,
- soft_i2c_config[i].sda);
- }
-
- return RT_EOK;
-}
-
-INIT_BOARD_EXPORT(rt_hw_i2c_init);
-
-#endif /* RT_USING_I2C */
diff --git a/bsp/at32/libraries/f403a_407/rt_drivers/drv_spi.c b/bsp/at32/libraries/f403a_407/rt_drivers/drv_spi.c
deleted file mode 100644
index 6acfcc5fb7..0000000000
--- a/bsp/at32/libraries/f403a_407/rt_drivers/drv_spi.c
+++ /dev/null
@@ -1,340 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-11 shelton first version
- */
-
-#include "board.h"
-#include "drv_spi.h"
-
-#ifdef RT_USING_SPI
-#if !defined(BSP_USING_SPI1) && !defined(BSP_USING_SPI2) && \
- !defined(BSP_USING_SPI3) && !defined(BSP_USING_SPI4)
-#error "Please define at least one BSP_USING_SPIx"
-#endif
-
-#define ARR_LEN(__N) (sizeof(__N) / sizeof(__N[0]))
-
-//#define DRV_DEBUG
-#define LOG_TAG "drv.pwm"
-#include <drv_log.h>
-
-/* private rt-thread spi ops function */
-static rt_err_t configure(struct rt_spi_device* device, struct rt_spi_configuration* configuration);
-static rt_uint32_t xfer(struct rt_spi_device* device, struct rt_spi_message* message);
-
-static struct rt_spi_ops at32_spi_ops =
-{
- configure,
- xfer
-};
-
-/**
- * attach the spi device to spi bus, this function must be used after initialization.
- */
-rt_err_t rt_hw_spi_device_attach(const char *bus_name, const char *device_name, gpio_type *cs_gpiox, uint16_t cs_gpio_pin)
-{
- gpio_init_type gpio_init_struct;
-
- RT_ASSERT(bus_name != RT_NULL);
- RT_ASSERT(device_name != RT_NULL);
-
- rt_err_t result;
- struct rt_spi_device *spi_device;
- struct at32_spi_cs *cs_pin;
-
- /* initialize the cs pin & select the slave*/
- gpio_default_para_init(&gpio_init_struct);
- gpio_init_struct.gpio_pins = cs_gpio_pin;
- gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
- gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
- gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
- gpio_init(cs_gpiox, &gpio_init_struct);
- gpio_bits_set(cs_gpiox, cs_gpio_pin);
-
- /* attach the device to spi bus */
- spi_device = (struct rt_spi_device *)rt_malloc(sizeof(struct rt_spi_device));
- RT_ASSERT(spi_device != RT_NULL);
- cs_pin = (struct at32_spi_cs *)rt_malloc(sizeof(struct at32_spi_cs));
- RT_ASSERT(cs_pin != RT_NULL);
- cs_pin->gpio_x = cs_gpiox;
- cs_pin->gpio_pin = cs_gpio_pin;
- result = rt_spi_bus_attach_device(spi_device, device_name, bus_name, (void *)cs_pin);
-
- if (result != RT_EOK)
- {
- LOG_D("%s attach to %s faild, %d\n", device_name, bus_name, result);
- }
-
- RT_ASSERT(result == RT_EOK);
-
- LOG_D("%s attach to %s done", device_name, bus_name);
-
- return result;
-}
-
-static rt_err_t configure(struct rt_spi_device* device,
- struct rt_spi_configuration* configuration)
-{
- struct rt_spi_bus * spi_bus = (struct rt_spi_bus *)device->bus;
- struct at32_spi *spi_instance = (struct at32_spi *)spi_bus->parent.user_data;
-
- spi_init_type spi_init_struct;
-
- RT_ASSERT(device != RT_NULL);
- RT_ASSERT(configuration != RT_NULL);
-
- at32_msp_spi_init(spi_instance->config->spi_x);
-
- /* data_width */
- if(configuration->data_width <= 8)
- {
- spi_init_struct.frame_bit_num = SPI_FRAME_8BIT;
- }
- else if(configuration->data_width <= 16)
- {
- spi_init_struct.frame_bit_num = SPI_FRAME_16BIT;
- }
- else
- {
- return RT_EIO;
- }
-
- /* baudrate */
- {
- uint32_t spi_apb_clock;
- uint32_t max_hz;
- crm_clocks_freq_type clocks_struct;
-
- max_hz = configuration->max_hz;
-
- crm_clocks_freq_get(&clocks_struct);
- LOG_D("sys freq: %d\n", clocks_struct.sclk_freq);
- LOG_D("max freq: %d\n", max_hz);
-
- if (spi_instance->config->spi_x == SPI1)
- {
- spi_apb_clock = clocks_struct.apb2_freq;
- LOG_D("pclk2 freq: %d\n", clocks_struct.apb2_freq);
- }
- else
- {
- spi_apb_clock = clocks_struct.apb1_freq;
- LOG_D("pclk1 freq: %d\n", clocks_struct.apb1_freq);
- }
-
- if(max_hz >= (spi_apb_clock / 2))
- {
- spi_init_struct.mclk_freq_division = SPI_MCLK_DIV_2;
- }
- else if (max_hz >= (spi_apb_clock / 4))
- {
- spi_init_struct.mclk_freq_division = SPI_MCLK_DIV_4;
- }
- else if (max_hz >= (spi_apb_clock / 8))
- {
- spi_init_struct.mclk_freq_division = SPI_MCLK_DIV_8;
- }
- else if (max_hz >= (spi_apb_clock / 16))
- {
- spi_init_struct.mclk_freq_division = SPI_MCLK_DIV_16;
- }
- else if (max_hz >= (spi_apb_clock / 32))
- {
- spi_init_struct.mclk_freq_division = SPI_MCLK_DIV_32;
- }
- else if (max_hz >= (spi_apb_clock / 64))
- {
- spi_init_struct.mclk_freq_division = SPI_MCLK_DIV_64;
- }
- else if (max_hz >= (spi_apb_clock / 128))
- {
- spi_init_struct.mclk_freq_division = SPI_MCLK_DIV_128;
- }
- else
- {
- /* min prescaler 256 */
- spi_init_struct.mclk_freq_division = SPI_MCLK_DIV_256;
- }
- } /* baudrate */
-
- switch(configuration->mode & RT_SPI_MODE_3)
- {
- case RT_SPI_MODE_0:
- spi_init_struct.clock_phase = SPI_CLOCK_PHASE_1EDGE;
- spi_init_struct.clock_polarity = SPI_CLOCK_POLARITY_LOW;
- break;
- case RT_SPI_MODE_1:
- spi_init_struct.clock_phase = SPI_CLOCK_PHASE_2EDGE;
- spi_init_struct.clock_polarity = SPI_CLOCK_POLARITY_LOW;
- break;
- case RT_SPI_MODE_2:
- spi_init_struct.clock_phase = SPI_CLOCK_PHASE_1EDGE;
- spi_init_struct.clock_polarity = SPI_CLOCK_POLARITY_HIGH;
- break;
- case RT_SPI_MODE_3:
- spi_init_struct.clock_phase = SPI_CLOCK_PHASE_2EDGE;
- spi_init_struct.clock_polarity = SPI_CLOCK_POLARITY_HIGH;
- break;
- }
-
- /* msb or lsb */
- if(configuration->mode & RT_SPI_MSB)
- {
- spi_init_struct.first_bit_transmission = SPI_FIRST_BIT_MSB;
- }
- else
- {
- spi_init_struct.first_bit_transmission = SPI_FIRST_BIT_LSB;
- }
-
- spi_init_struct.transmission_mode = SPI_TRANSMIT_FULL_DUPLEX;
- spi_init_struct.master_slave_mode = SPI_MODE_MASTER;
- spi_init_struct.cs_mode_selection = SPI_CS_SOFTWARE_MODE;
- /* init spi */
- spi_init(spi_instance->config->spi_x, &spi_init_struct);
-
- /* enable spi */
- spi_enable(spi_instance->config->spi_x, TRUE);
- /* disable spi crc */
- spi_crc_enable(spi_instance->config->spi_x, FALSE);
-
- return RT_EOK;
-};
-
-static rt_uint32_t xfer(struct rt_spi_device* device, struct rt_spi_message* message)
-{
- struct rt_spi_bus * at32_spi_bus = (struct rt_spi_bus *)device->bus;
- struct at32_spi *spi_instance = (struct at32_spi *)at32_spi_bus->parent.user_data;
- struct rt_spi_configuration * config = &device->config;
- struct at32_spi_cs * at32_spi_cs = device->parent.user_data;
-
- RT_ASSERT(device != NULL);
- RT_ASSERT(message != NULL);
-
- /* take cs */
- if(message->cs_take)
- {
- gpio_bits_reset(at32_spi_cs->gpio_x, at32_spi_cs->gpio_pin);
- LOG_D("spi take cs\n");
- }
-
- if(config->data_width <= 8)
- {
- const rt_uint8_t *send_ptr = message->send_buf;
- rt_uint8_t * recv_ptr = message->recv_buf;
- rt_uint32_t size = message->length;
-
- LOG_D("spi poll transfer start: %d\n", size);
-
- while(size--)
- {
- rt_uint8_t data = 0xFF;
-
- if(send_ptr != RT_NULL)
- {
- data = *send_ptr++;
- }
-
- /* wait until the transmit buffer is empty */
- while(spi_i2s_flag_get(spi_instance->config->spi_x, SPI_I2S_TDBE_FLAG) == RESET);
- /* send the byte */
- spi_i2s_data_transmit(spi_instance->config->spi_x, data);
-
- /* wait until a data is received */
- while(spi_i2s_flag_get(spi_instance->config->spi_x, SPI_I2S_RDBF_FLAG) == RESET);
- /* get the received data */
- data = spi_i2s_data_receive(spi_instance->config->spi_x);
-
- if(recv_ptr != RT_NULL)
- {
- *recv_ptr++ = data;
- }
- }
- LOG_D("spi poll transfer finsh\n");
- }
- else if(config->data_width <= 16)
- {
- const rt_uint16_t * send_ptr = message->send_buf;
- rt_uint16_t * recv_ptr = message->recv_buf;
- rt_uint32_t size = message->length;
-
- while(size--)
- {
- rt_uint16_t data = 0xFF;
-
- if(send_ptr != RT_NULL)
- {
- data = *send_ptr++;
- }
-
- /* wait until the transmit buffer is empty */
- while(spi_i2s_flag_get(spi_instance->config->spi_x, SPI_I2S_TDBE_FLAG) == RESET);
- /* send the byte */
- spi_i2s_data_transmit(spi_instance->config->spi_x, data);
-
- /* wait until a data is received */
- while(spi_i2s_flag_get(spi_instance->config->spi_x, SPI_I2S_RDBF_FLAG) == RESET);
- /* get the received data */
- data = spi_i2s_data_receive(spi_instance->config->spi_x);
-
- if(recv_ptr != RT_NULL)
- {
- *recv_ptr++ = data;
- }
- }
- }
-
- /* release cs */
- if(message->cs_release)
- {
- gpio_bits_set(at32_spi_cs->gpio_x, at32_spi_cs->gpio_pin);
- LOG_D("spi release cs\n");
- }
-
- return message->length;
-};
-
-static struct at32_spi_config configs[] = {
-#ifdef BSP_USING_SPI1
- {SPI1, "spi1"},
-#endif
-
-#ifdef BSP_USING_SPI2
- {SPI2, "spi2"},
-#endif
-
-#ifdef BSP_USING_SPI3
- {SPI3, "spi3"},
-#endif
-
-#ifdef BSP_USING_SPI4
- {SPI4, "spi4"},
-#endif
-};
-
-static struct at32_spi spis[sizeof(configs) / sizeof(configs[0])] = {0};
-
-int rt_hw_spi_init(void)
-{
- int i;
- rt_err_t result;
- rt_size_t obj_num = sizeof(spis) / sizeof(struct at32_spi);
-
- for (i = 0; i < obj_num; i++)
- {
- spis[i].config = &configs[i];
- spis[i].spi_bus.parent.user_data = (void *)&spis[i];
- result = rt_spi_bus_register(&(spis[i].spi_bus), spis[i].config->spi_name, &at32_spi_ops);
- }
-
- return result;
-}
-
-INIT_BOARD_EXPORT(rt_hw_spi_init);
-
-#endif
diff --git a/bsp/at32/libraries/f403a_407/rt_drivers/drv_spi.h b/bsp/at32/libraries/f403a_407/rt_drivers/drv_spi.h
deleted file mode 100644
index 74e0c83911..0000000000
--- a/bsp/at32/libraries/f403a_407/rt_drivers/drv_spi.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2020-01-09 shelton first version
- */
-
-#ifndef __DRV_SPI__
-#define __DRV_SPI__
-
-#include <rtthread.h>
-#include <drivers/spi.h>
-#include "at32f403a_407.h"
-
-struct at32_spi_config
-{
- spi_type *spi_x;
- const char *spi_name;
-};
-
-struct at32_spi
-{
- struct at32_spi_config *config;
- struct rt_spi_bus spi_bus;
-};
-
-struct at32_spi_cs
-{
- gpio_type *gpio_x;
- uint32_t gpio_pin;
-};
-
-/* public function */
-int rt_hw_spi_init(void);
-rt_err_t rt_hw_spi_device_attach(const char *bus_name, const char *device_name, gpio_type *cs_gpiox, uint16_t cs_gpio_pin);
-
-#endif // __DRV_SPI__
diff --git a/bsp/at32/libraries/f403a_407/rt_drivers/drv_wdt.c b/bsp/at32/libraries/f403a_407/rt_drivers/drv_wdt.c
deleted file mode 100644
index 4f03f7cdbb..0000000000
--- a/bsp/at32/libraries/f403a_407/rt_drivers/drv_wdt.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-15 shelton first version
- */
-
-#include <drivers/watchdog.h>
-#include "board.h"
-
-#ifdef RT_USING_WDT
-
-#define LICK_VALUE 40000
-
-//#define DRV_DEBUG
-#define LOG_TAG "drv.wdt"
-#include <drv_log.h>
-
-struct at32_wdt_obj
-{
- wdt_type *wdt_x;
- wdt_division_type div;
- rt_uint32_t reload;
- rt_uint16_t is_start;
-};
-static struct at32_wdt_obj at32_wdt;
-static struct rt_watchdog_ops ops;
-static rt_watchdog_t watchdog;
-
-static rt_err_t wdt_init(rt_watchdog_t *wdt)
-{
- return RT_EOK;
-}
-
-static rt_err_t wdt_control(rt_watchdog_t *wdt, int cmd, void *arg)
-{
- switch (cmd)
- {
- /* feed the watchdog */
- case RT_DEVICE_CTRL_WDT_KEEPALIVE:
- wdt_counter_reload();
- break;
- /* set watchdog timeout */
- case RT_DEVICE_CTRL_WDT_SET_TIMEOUT:
-#if defined(LICK_VALUE)
- if(LICK_VALUE)
- {
- at32_wdt.reload = (*((rt_uint32_t*)arg)) * LICK_VALUE / 256 ;
- }
- else
- {
- LOG_E("Please define the value of LICK_VALUE!");
- }
- if(at32_wdt.reload > 0xFFF)
- {
- LOG_E("wdg set timeout parameter too large, please less than %ds",0xFFF * 256 / LICK_VALUE);
- return -RT_EINVAL;
- }
-#else
- #error "Please define the value of LICK_VALUE!"
-#endif
- if(at32_wdt.is_start)
- {
- wdt_register_write_enable(TRUE);
- wdt_divider_set(at32_wdt.div);
- wdt_reload_value_set(at32_wdt.reload);
- wdt_counter_reload();
- wdt_register_write_enable(FALSE);
- wdt_enable();
- }
- break;
- case RT_DEVICE_CTRL_WDT_GET_TIMEOUT:
-#if defined(LICK_VALUE)
- if(LICK_VALUE)
- {
- (*((rt_uint32_t*)arg)) = at32_wdt.reload * 256 / LICK_VALUE;
- }
- else
- {
- LOG_E("Please define the value of LICK_VALUE!");
- }
-#else
- #error "Please define the value of LICK_VALUE!"
-#endif
- break;
- case RT_DEVICE_CTRL_WDT_START:
- wdt_register_write_enable(TRUE);
- wdt_divider_set(at32_wdt.div);
- wdt_reload_value_set(at32_wdt.reload);
- wdt_counter_reload();
- wdt_register_write_enable(FALSE);
- wdt_enable();
- at32_wdt.is_start = 1;
- break;
- default:
- LOG_W("This command is not supported.");
- return -RT_ERROR;
- }
- return RT_EOK;
-}
-
-int rt_hw_wdt_init(void)
-{
- at32_wdt.wdt_x = WDT;
- at32_wdt.div = WDT_CLK_DIV_256;
- at32_wdt.reload = 0x00000FFF;
- at32_wdt.is_start = 0;
-
- ops.init = &wdt_init;
- ops.control = &wdt_control;
- watchdog.ops = &ops;
- /* register watchdog device */
- if (rt_hw_watchdog_register(&watchdog, "wdt", RT_DEVICE_FLAG_DEACTIVATE, RT_NULL) != RT_EOK)
- {
- LOG_E("wdt device register failed.");
- return -RT_ERROR;
- }
- LOG_D("wdt device register success.");
- return RT_EOK;
-}
-
-INIT_BOARD_EXPORT(rt_hw_wdt_init);
-
-#endif /* RT_USING_WDT */
diff --git a/bsp/at32/libraries/f413/SConscript b/bsp/at32/libraries/f413/SConscript
deleted file mode 100644
index c7ef7659ec..0000000000
--- a/bsp/at32/libraries/f413/SConscript
+++ /dev/null
@@ -1,14 +0,0 @@
-# for module compiling
-import os
-from building import *
-
-cwd = GetCurrentDir()
-objs = []
-list = os.listdir(cwd)
-
-for d in list:
- path = os.path.join(cwd, d)
- if os.path.isfile(os.path.join(path, 'SConscript')):
- objs = objs + SConscript(os.path.join(d, 'SConscript'))
-
-Return('objs')
diff --git a/bsp/at32/libraries/f413/rt_drivers/SConscript b/bsp/at32/libraries/f413/rt_drivers/SConscript
deleted file mode 100644
index 0192065380..0000000000
--- a/bsp/at32/libraries/f413/rt_drivers/SConscript
+++ /dev/null
@@ -1,57 +0,0 @@
-# RT-Thread building script for component
-Import('RTT_ROOT')
-Import('rtconfig')
-from building import *
-
-cwd = GetCurrentDir()
-
-# add the general drivers.
-src = Split("""
-drv_common.c
-""")
-
-if GetDepend(['RT_USING_PIN']):
- src += ['drv_gpio.c']
-
-if GetDepend(['RT_USING_WDT']):
- src += ['drv_wdt.c']
-
-if GetDepend(['BSP_USING_SERIAL']):
- src += ['drv_usart.c']
-
-if GetDepend(['BSP_USING_PWM']):
- src += ['drv_pwm.c']
-
-if GetDepend(['BSP_USING_HWTIMER']):
- src += ['drv_hwtimer.c']
-
-if GetDepend(['BSP_USING_SPI']):
- src += ['drv_spi.c']
-
-if GetDepend(['RT_USING_I2C', 'RT_USING_I2C_BITOPS']):
- if GetDepend('BSP_USING_I2C1') or GetDepend('BSP_USING_I2C2') or GetDepend('BSP_USING_I2C3') or GetDepend('BSP_USING_I2C4'):
- src += ['drv_soft_i2c.c']
-
-if GetDepend(['BSP_USING_ADC']):
- src += Glob('drv_adc.c')
-
-if GetDepend('BSP_USING_RTC'):
- src += ['drv_rtc.c']
-
-if GetDepend('BSP_USING_ON_CHIP_FLASH'):
- src += ['drv_flash.c']
-
-if GetDepend(['BSP_USING_WDT']):
- src += ['drv_wdt.c']
-
-if GetDepend(['BSP_USING_CAN']):
- src += ['drv_can.c']
-
-if GetDepend(['BSP_USING_SDIO']):
- src += ['drv_sdio.c']
-
-CPPPATH = [cwd]
-
-group = DefineGroup('Drivers', src, depend = [''], CPPPATH = CPPPATH)
-
-Return('group')
diff --git a/bsp/at32/libraries/f413/rt_drivers/drv_adc.c b/bsp/at32/libraries/f413/rt_drivers/drv_adc.c
deleted file mode 100644
index b6d3af201d..0000000000
--- a/bsp/at32/libraries/f413/rt_drivers/drv_adc.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-05-11 shelton first version
- */
-
-#include "board.h"
-#include "drv_adc.h"
-
-#if defined(BSP_USING_ADC1) || defined(BSP_USING_ADC2)
-
-//#define DRV_DEBUG
-#define LOG_TAG "drv.adc"
-#include <drv_log.h>
-
-struct at32_adc
-{
- struct rt_adc_device at32_adc_device;
- adc_type *adc_x;
- char *name;
-};
-
-static struct at32_adc at32_adc_obj[] =
-{
-#ifdef BSP_USING_ADC1
- ADC1_CONFIG,
-#endif
-
-#ifdef BSP_USING_ADC2
- ADC2_CONFIG,
-#endif
-};
-
-static rt_err_t at32_adc_enabled(struct rt_adc_device *device, rt_uint32_t channel, rt_bool_t enabled)
-{
- adc_type *adc_x;
- adc_base_config_type adc_config_struct;
-
- RT_ASSERT(device != RT_NULL);
- adc_x = device->parent.user_data;
-
- at32_msp_adc_init(adc_x);
-
- /* adc_x configuration */
- adc_base_default_para_init(&adc_config_struct);
- adc_config_struct.data_align = ADC_RIGHT_ALIGNMENT;
- adc_config_struct.ordinary_channel_length = 1;
- adc_config_struct.repeat_mode = FALSE;
- adc_config_struct.sequence_mode = FALSE;
- adc_base_config(adc_x, &adc_config_struct);
- adc_combine_mode_select(ADC_INDEPENDENT_MODE);
- adc_ordinary_conversion_trigger_set(adc_x, ADC12_ORDINARY_TRIG_SOFTWARE, TRUE);
-
- if (!enabled)
- {
- /* disable adc_x */
- adc_enable(adc_x, FALSE);
- }
- else
- {
- /* enable adc_x */
- adc_enable(adc_x, TRUE);
-
- /* enable adc_x calibration */
- adc_calibration_init(adc_x);
- /* check the end of adc_x reset calibration register */
- while(adc_calibration_init_status_get(adc_x) == SET)
- {
- }
- /* start adc_x calibration */
- adc_calibration_start(adc_x);
- /* check the end of adc_x calibration */
- while(adc_calibration_status_get(adc_x) == SET)
- {
- }
- }
-
- return RT_EOK;
-}
-
-static rt_err_t at32_get_adc_value(struct rt_adc_device *device, rt_uint32_t channel, rt_uint32_t *value)
-{
- adc_type *adc_x;
- rt_uint32_t timeout = 0;
-
- RT_ASSERT(device != RT_NULL);
- adc_x = device->parent.user_data;
-
- /* adc_x regular channels configuration */
- adc_ordinary_channel_set(adc_x, (adc_channel_select_type)channel, 1, ADC_SAMPLETIME_239_5);
-
- /* start adc_x software conversion */
- adc_ordinary_software_trigger_enable(adc_x, TRUE);
-
- /* wait for the adc to convert */
- while((adc_flag_get(adc_x, ADC_CCE_FLAG) == RESET) && timeout < 0xFFFF)
- {
- timeout ++;
- }
-
- if(timeout >= 0xFFFF)
- {
- LOG_D("channel%d converts timeout, please confirm adc_x enabled or not", channel);
- }
-
- /* get adc value */
- *value = adc_ordinary_conversion_data_get(adc_x);
-
- return RT_EOK;
-}
-
-static const struct rt_adc_ops at_adc_ops =
-{
- .enabled = at32_adc_enabled,
- .convert = at32_get_adc_value,
-};
-
-static int rt_hw_adc_init(void)
-{
- int result = RT_EOK;
- int i = 0;
-
- for (i = 0; i < sizeof(at32_adc_obj) / sizeof(at32_adc_obj[0]); i++)
- {
- /* register ADC device */
- if (rt_hw_adc_register(&at32_adc_obj[i].at32_adc_device, at32_adc_obj[i].name, &at_adc_ops, at32_adc_obj[i].adc_x) == RT_EOK)
- {
- LOG_D("%s register success", at32_adc_obj[i].name);
- }
- else
- {
- LOG_E("%s register failed", at32_adc_obj[i].name);
- result = -RT_ERROR;
- }
-
- }
-
- return result;
-}
-INIT_BOARD_EXPORT(rt_hw_adc_init);
-
-#endif /* BSP_USING_ADC */
diff --git a/bsp/at32/libraries/f413/rt_drivers/drv_adc.h b/bsp/at32/libraries/f413/rt_drivers/drv_adc.h
deleted file mode 100644
index 3912378588..0000000000
--- a/bsp/at32/libraries/f413/rt_drivers/drv_adc.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-11 leo first version
- */
-
-#ifndef __ADC_CONFIG_H__
-#define __ADC_CONFIG_H__
-
-#include <rtthread.h>
-#include <drivers/adc.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if defined(BSP_USING_ADC1) || defined(BSP_USING_ADC2)
-
-#ifndef ADC1_CONFIG
-#define ADC1_CONFIG \
- { \
- .adc_x = ADC1, \
- .name = "adc1", \
- }
-#endif /* ADC1_CONFIG */
-
-#ifndef ADC2_CONFIG
-#define ADC2_CONFIG \
- { \
- .adc_x = ADC2, \
- .name = "adc2", \
- }
-#endif /* ADC2_CONFIG */
-
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __ADC_CONFIG_H__ */
diff --git a/bsp/at32/libraries/f413/rt_drivers/drv_can.c b/bsp/at32/libraries/f413/rt_drivers/drv_can.c
deleted file mode 100644
index 6a71bc001d..0000000000
--- a/bsp/at32/libraries/f413/rt_drivers/drv_can.c
+++ /dev/null
@@ -1,850 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-05-10 shelton first version
- */
-
-#include "drv_can.h"
-
-#ifdef BSP_USING_CAN
-
-#define LOG_TAG "drv_can"
-#include <drv_log.h>
-
-/* attention !!! baud calculation example: apbclk / ((ss + bs1 + bs2) * brp), ep: 96 / ((1 + 8 + 3) * 8) = 1MHz*/
-/* attention !!! default apbclk 96 mhz */
-static const struct at32_baud_rate can_baud_rate_tab[] =
-{
- {CAN1MBaud, {8 , CAN_RSAW_3TQ, CAN_BTS1_8TQ, CAN_BTS2_3TQ}},
- {CAN800kBaud, {20, CAN_RSAW_1TQ, CAN_BTS1_3TQ, CAN_BTS2_2TQ}},
- {CAN500kBaud, {16, CAN_RSAW_3TQ, CAN_BTS1_8TQ, CAN_BTS2_3TQ}},
- {CAN250kBaud, {32, CAN_RSAW_3TQ, CAN_BTS1_8TQ, CAN_BTS2_3TQ}},
- {CAN125kBaud, {64, CAN_RSAW_3TQ, CAN_BTS1_8TQ, CAN_BTS2_3TQ}},
- {CAN100kBaud, {160, CAN_RSAW_1TQ, CAN_BTS1_3TQ, CAN_BTS2_2TQ}},
- {CAN50kBaud, {320, CAN_RSAW_1TQ, CAN_BTS1_3TQ, CAN_BTS2_2TQ}},
- {CAN20kBaud, {800, CAN_RSAW_1TQ, CAN_BTS1_3TQ, CAN_BTS2_2TQ}},
- {CAN10kBaud, {800, CAN_RSAW_1TQ, CAN_BTS1_8TQ, CAN_BTS2_3TQ}},
-};
-
-#ifdef BSP_USING_CAN1
-static struct at32_can can_instance1 =
-{
- .name = "can1",
- .config.can_x = CAN1,
-};
-#endif
-
-#ifdef BSP_USING_CAN2
-static struct at32_can can_instance2 =
-{
- .name = "can2",
- .config.can_x = CAN2,
-};
-#endif
-
-static rt_uint32_t get_can_baud_index(rt_uint32_t baud)
-{
- rt_uint32_t len, index;
-
- len = sizeof(can_baud_rate_tab) / sizeof(can_baud_rate_tab[0]);
- for (index = 0; index < len; index++)
- {
- if (can_baud_rate_tab[index].baud_rate == baud)
- return index;
- }
- /* default baud is CAN1MBaud */
- return 0;
-}
-
-static rt_err_t _can_config(struct rt_can_device *can, struct can_configure *cfg)
-{
- struct at32_can *can_instance;
- rt_uint32_t baud_index;
-
- RT_ASSERT(can);
- RT_ASSERT(cfg);
-
- can_instance = (struct at32_can *)can->parent.user_data;
- RT_ASSERT(can_instance);
-
- at32_msp_can_init((void *)can_instance->config.can_x);
-
- baud_index = get_can_baud_index(cfg->baud_rate);
- /* get baudrate parameters */
- can_baudrate_default_para_init(&can_instance->config.baudrate_init_struct);
- can_instance->config.baudrate_init_struct.rsaw_size = can_baud_rate_tab[baud_index].baud_struct.rsaw_size;
- can_instance->config.baudrate_init_struct.bts1_size = can_baud_rate_tab[baud_index].baud_struct.bts1_size;
- can_instance->config.baudrate_init_struct.bts2_size = can_baud_rate_tab[baud_index].baud_struct.bts2_size;
- can_instance->config.baudrate_init_struct.baudrate_div = can_baud_rate_tab[baud_index].baud_struct.baudrate_div;
- /* config can baudrate */
- if(can_baudrate_set(can_instance->config.can_x, &(can_instance->config.baudrate_init_struct)) != SUCCESS)
- {
- return -RT_ERROR;
- }
-
- /* config can base parameters */
- can_default_para_init(&(can_instance->config.base_init_struct));
- switch (cfg->mode)
- {
- case RT_CAN_MODE_NORMAL:
- can_instance->config.base_init_struct.mode_selection = CAN_MODE_COMMUNICATE;
- break;
- case RT_CAN_MODE_LISEN:
- can_instance->config.base_init_struct.mode_selection = CAN_MODE_LISTENONLY;
- break;
- case RT_CAN_MODE_LOOPBACK:
- can_instance->config.base_init_struct.mode_selection = CAN_MODE_LOOPBACK;
- break;
- case RT_CAN_MODE_LOOPBACKANLISEN:
- can_instance->config.base_init_struct.mode_selection = CAN_MODE_LISTENONLY_LOOPBACK;
- break;
- }
-
- can_instance->config.base_init_struct.aebo_enable = TRUE;
- can_instance->config.base_init_struct.aed_enable = TRUE;
- can_instance->config.base_init_struct.prsf_enable = FALSE;
- can_instance->config.base_init_struct.mdrsel_selection = CAN_DISCARDING_FIRST_RECEIVED;
- can_instance->config.base_init_struct.mmssr_selection = CAN_SENDING_BY_REQUEST;
- /* init can base function */
- if (can_base_init(can_instance->config.can_x, &(can_instance->config.base_init_struct)) != SUCCESS)
- {
- return -RT_ERROR;
- }
-
- /* config filter parameters */
- can_filter_init(can_instance->config.can_x, &can_instance->config.filter_init_struct);
-
- return RT_EOK;
-}
-
-static rt_err_t _can_control(struct rt_can_device *can, int cmd, void *arg)
-{
- rt_uint32_t argval;
- struct at32_can *can_instance;
- struct rt_can_filter_config *filter_cfg;
-
- RT_ASSERT(can != RT_NULL);
- can_instance = (struct at32_can *)can->parent.user_data;
- RT_ASSERT(can_instance != RT_NULL);
-
- switch (cmd)
- {
- case RT_DEVICE_CTRL_CLR_INT:
- argval = (rt_uint32_t) arg;
- if (argval == RT_DEVICE_FLAG_INT_RX)
- {
- if (CAN1 == can_instance->config.can_x)
- {
- nvic_irq_disable(USBFS_L_CAN1_RX0_IRQn);
- nvic_irq_disable(CAN1_RX1_IRQn);
- }
-
- if (CAN2 == can_instance->config.can_x)
- {
- nvic_irq_disable(CAN2_RX0_IRQn);
- nvic_irq_disable(CAN2_RX1_IRQn);
- }
-
- /* disable interrupt */
- can_interrupt_enable(can_instance->config.can_x, CAN_RF0MIEN_INT, FALSE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF0FIEN_INT, FALSE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF0OIEN_INT, FALSE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF1MIEN_INT, FALSE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF1FIEN_INT, FALSE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF1OIEN_INT, FALSE);
- }
- else if (argval == RT_DEVICE_FLAG_INT_TX)
- {
- if (CAN1 == can_instance->config.can_x)
- {
- nvic_irq_disable(USBFS_H_CAN1_TX_IRQn);
- }
-
- if (CAN2 == can_instance->config.can_x)
- {
- nvic_irq_disable(CAN2_TX_IRQn);
- }
-
- can_interrupt_enable(can_instance->config.can_x, CAN_TCIEN_INT, FALSE);
- }
- else if (argval == RT_DEVICE_CAN_INT_ERR)
- {
- if (CAN1 == can_instance->config.can_x)
- {
- nvic_irq_disable(CAN1_SE_IRQn);
- }
-
- if (CAN2 == can_instance->config.can_x)
- {
- nvic_irq_disable(CAN2_SE_IRQn);
- }
-
- can_interrupt_enable(can_instance->config.can_x, CAN_EAIEN_INT, FALSE);
- can_interrupt_enable(can_instance->config.can_x, CAN_EPIEN_INT, FALSE);
- can_interrupt_enable(can_instance->config.can_x, CAN_BOIEN_INT, FALSE);
- can_interrupt_enable(can_instance->config.can_x, CAN_ETRIEN_INT, FALSE);
- can_interrupt_enable(can_instance->config.can_x, CAN_EOIEN_INT, FALSE);
- }
-
- break;
- case RT_DEVICE_CTRL_SET_INT:
- argval = (rt_uint32_t) arg;
- if (argval == RT_DEVICE_FLAG_INT_RX)
- {
- can_interrupt_enable(can_instance->config.can_x, CAN_RF0MIEN_INT, TRUE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF0FIEN_INT, TRUE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF0OIEN_INT, TRUE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF1MIEN_INT, TRUE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF1FIEN_INT, TRUE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF1OIEN_INT, TRUE);
-
- if (CAN1 == can_instance->config.can_x)
- {
- nvic_irq_enable(USBFS_L_CAN1_RX0_IRQn, 1, 0);
- nvic_irq_enable(CAN1_RX1_IRQn, 1, 0);
- }
-
- if (CAN2 == can_instance->config.can_x)
- {
- nvic_irq_enable(CAN2_RX0_IRQn, 1, 0);
- nvic_irq_enable(CAN2_RX1_IRQn, 1, 0);
- }
-
- }
- else if (argval == RT_DEVICE_FLAG_INT_TX)
- {
- can_interrupt_enable(can_instance->config.can_x, CAN_TCIEN_INT, TRUE);
-
- if (CAN1 == can_instance->config.can_x)
- {
- nvic_irq_enable(USBFS_H_CAN1_TX_IRQn, 1, 0);
- }
-
- if (CAN2 == can_instance->config.can_x)
- {
- nvic_irq_enable(CAN2_TX_IRQn, 1, 0);
- }
- }
- else if (argval == RT_DEVICE_CAN_INT_ERR)
- {
- can_interrupt_enable(can_instance->config.can_x, CAN_EAIEN_INT, TRUE);
- can_interrupt_enable(can_instance->config.can_x, CAN_EPIEN_INT, TRUE);
- can_interrupt_enable(can_instance->config.can_x, CAN_BOIEN_INT, TRUE);
- can_interrupt_enable(can_instance->config.can_x, CAN_ETRIEN_INT, TRUE);
- can_interrupt_enable(can_instance->config.can_x, CAN_EOIEN_INT, TRUE);
-
- if (CAN1 == can_instance->config.can_x)
- {
- nvic_irq_enable(CAN1_SE_IRQn, 1, 0);
- }
-
- if (CAN2 == can_instance->config.can_x)
- {
- nvic_irq_enable(CAN2_SE_IRQn, 1, 0);
- }
- }
- break;
- case RT_CAN_CMD_SET_FILTER:
- {
- rt_uint32_t id_h = 0;
- rt_uint32_t id_l = 0;
- rt_uint32_t mask_h = 0;
- rt_uint32_t mask_l = 0;
- rt_uint32_t mask_l_tail = 0;
-
- if (RT_NULL == arg)
- {
- /* default filter config */
- can_filter_init(can_instance->config.can_x, &can_instance->config.filter_init_struct);
- }
- else
- {
- filter_cfg = (struct rt_can_filter_config *)arg;
- /* get default filter */
- for (int i = 0; i < filter_cfg->count; i++)
- {
- if (filter_cfg->items[i].hdr == -1)
- {
- can_instance->config.filter_init_struct.filter_number = i;
- }
- else
- {
- can_instance->config.filter_init_struct.filter_number = filter_cfg->items[i].hdr;
- }
- /**
- * ID | CAN_FxR1[31:24] | CAN_FxR1[23:16] | CAN_FxR1[15:8] | CAN_FxR1[7:0] |
- * MASK | CAN_FxR2[31:24] | CAN_FxR1[23:16] | CAN_FxR1[15:8] | CAN_FxR1[7:0] |
- * STD ID | STID[10:3] | STDID[2:0] |<- 21bit ->|
- * EXT ID | EXTID[28:21] | EXTID[20:13] | EXTID[12:5] | EXTID[4:0] IDE RTR 0|
- * @note the 32bit STD ID must << 21 to fill CAN_FxR1[31:21] and EXT ID must << 3,
- * -> but the id bit of struct rt_can_filter_item is 29,
- * -> so STD id << 18 and EXT id Don't need << 3, when get the high 16bit.
- * -> FilterIdHigh : (((STDid << 18) or (EXT id)) >> 13) & 0xFFFF,
- * -> FilterIdLow: ((STDid << 18) or (EXT id << 3)) & 0xFFFF.
- * @note the mask bit of struct rt_can_filter_item is 32,
- * -> FilterMaskIdHigh: (((STD mask << 21) or (EXT mask <<3)) >> 16) & 0xFFFF
- * -> FilterMaskIdLow: ((STD mask << 21) or (EXT mask <<3)) & 0xFFFF
- */
- if (filter_cfg->items[i].mode == CAN_FILTER_MODE_ID_MASK)
- {
- mask_l_tail = 0x06;
- }
- else if (filter_cfg->items[i].mode == CAN_FILTER_MODE_ID_LIST)
- {
- mask_l_tail = (filter_cfg->items[i].ide << 2) |
- (filter_cfg->items[i].rtr << 1);
- }
- if (filter_cfg->items[i].ide == RT_CAN_STDID)
- {
- id_h = ((filter_cfg->items[i].id << 18) >> 13) & 0xFFFF;
- id_l = ((filter_cfg->items[i].id << 18) |
- (filter_cfg->items[i].ide << 2) |
- (filter_cfg->items[i].rtr << 1)) & 0xFFFF;
- mask_h = ((filter_cfg->items[i].mask << 21) >> 16) & 0xFFFF;
- mask_l = ((filter_cfg->items[i].mask << 21) | mask_l_tail) & 0xFFFF;
- }
- else if (filter_cfg->items[i].ide == RT_CAN_EXTID)
- {
- id_h = (filter_cfg->items[i].id >> 13) & 0xFFFF;
- id_l = ((filter_cfg->items[i].id << 3) |
- (filter_cfg->items[i].ide << 2) |
- (filter_cfg->items[i].rtr << 1)) & 0xFFFF;
- mask_h = ((filter_cfg->items[i].mask << 3) >> 16) & 0xFFFF;
- mask_l = ((filter_cfg->items[i].mask << 3) | mask_l_tail) & 0xFFFF;
- }
- can_instance->config.filter_init_struct.filter_id_high = id_h;
- can_instance->config.filter_init_struct.filter_id_low = id_l;
- can_instance->config.filter_init_struct.filter_mask_high = mask_h;
- can_instance->config.filter_init_struct.filter_mask_low = mask_l;
- can_instance->config.filter_init_struct.filter_mode = (can_filter_mode_type)filter_cfg->items[i].mode;
-
- /* filter conf */
- can_filter_init(can_instance->config.can_x, &can_instance->config.filter_init_struct);
- }
- }
- break;
- }
- case RT_CAN_CMD_SET_MODE:
- argval = (rt_uint32_t) arg;
- if (argval != RT_CAN_MODE_NORMAL &&
- argval != RT_CAN_MODE_LISEN &&
- argval != RT_CAN_MODE_LOOPBACK &&
- argval != RT_CAN_MODE_LOOPBACKANLISEN)
- {
- return -RT_ERROR;
- }
- if (argval != can_instance->device.config.mode)
- {
- can_instance->device.config.mode = argval;
- return _can_config(&can_instance->device, &can_instance->device.config);
- }
- break;
- case RT_CAN_CMD_SET_BAUD:
- argval = (rt_uint32_t) arg;
- if (argval != CAN1MBaud &&
- argval != CAN800kBaud &&
- argval != CAN500kBaud &&
- argval != CAN250kBaud &&
- argval != CAN125kBaud &&
- argval != CAN100kBaud &&
- argval != CAN50kBaud &&
- argval != CAN20kBaud &&
- argval != CAN10kBaud)
- {
- return -RT_ERROR;
- }
- if (argval != can_instance->device.config.baud_rate)
- {
- can_instance->device.config.baud_rate = argval;
- return _can_config(&can_instance->device, &can_instance->device.config);
- }
- break;
- case RT_CAN_CMD_SET_PRIV:
- argval = (rt_uint32_t) arg;
- if (argval != RT_CAN_MODE_PRIV &&
- argval != RT_CAN_MODE_NOPRIV)
- {
- return -RT_ERROR;
- }
- if (argval != can_instance->device.config.privmode)
- {
- can_instance->device.config.privmode = argval;
- return _can_config(&can_instance->device, &can_instance->device.config);
- }
- break;
- case RT_CAN_CMD_GET_STATUS:
- {
- rt_uint32_t errtype;
- errtype = can_instance->config.can_x->ests;
- can_instance->device.status.rcverrcnt = errtype >> 24;
- can_instance->device.status.snderrcnt = (errtype >> 16 & 0xFF);
- can_instance->device.status.lasterrtype = errtype & 0x70;
- can_instance->device.status.errcode = errtype & 0x07;
-
- rt_memcpy(arg, &can_instance->device.status, sizeof(can_instance->device.status));
- }
- break;
- }
-
- return RT_EOK;
-}
-
-static int _can_sendmsg(struct rt_can_device *can, const void *buf, rt_uint32_t box_num)
-{
- struct can_config *hcan;
- hcan = &((struct at32_can *) can->parent.user_data)->config;
- struct rt_can_msg *pmsg = (struct rt_can_msg *) buf;
- can_tx_message_type tx_message;
-
- /* check select mailbox is empty */
- switch (box_num)
- {
- case CAN_TX_MAILBOX0:
- if (hcan->can_x->tsts_bit.tm0ef != 1)
- {
- /* return function status */
- return -RT_ERROR;
- }
- break;
- case CAN_TX_MAILBOX1:
- if (hcan->can_x->tsts_bit.tm1ef != 1)
- {
- /* return function status */
- return -RT_ERROR;
- }
- break;
- case CAN_TX_MAILBOX2:
- if (hcan->can_x->tsts_bit.tm2ef != 1)
- {
- /* return function status */
- return -RT_ERROR;
- }
- break;
- default:
- RT_ASSERT(0);
- break;
- }
-
- if (RT_CAN_STDID == pmsg->ide)
- {
- tx_message.id_type = CAN_ID_STANDARD;
- tx_message.standard_id = pmsg->id;
- }
- else
- {
- tx_message.id_type = CAN_ID_EXTENDED;
- tx_message.extended_id = pmsg->id;
- }
-
- if (RT_CAN_DTR == pmsg->rtr)
- {
- tx_message.frame_type = CAN_TFT_DATA;
- }
- else
- {
- tx_message.frame_type = CAN_TFT_REMOTE;
- }
-
- /* set up the dlc */
- tx_message.dlc = pmsg->len & 0x0FU;
- /* set up the data field */
- tx_message.data[0] = (uint32_t)pmsg->data[0];
- tx_message.data[1] = (uint32_t)pmsg->data[1];
- tx_message.data[2] = (uint32_t)pmsg->data[2];
- tx_message.data[3] = (uint32_t)pmsg->data[3];
- tx_message.data[4] = (uint32_t)pmsg->data[4];
- tx_message.data[5] = (uint32_t)pmsg->data[5];
- tx_message.data[6] = (uint32_t)pmsg->data[6];
- tx_message.data[7] = (uint32_t)pmsg->data[7];
-
- can_message_transmit(hcan->can_x, &tx_message);
-
- return RT_EOK;
-}
-
-static int _can_recvmsg(struct rt_can_device *can, void *buf, rt_uint32_t fifo)
-{
- struct can_config *hcan;
- hcan = &((struct at32_can *) can->parent.user_data)->config;
- struct rt_can_msg *pmsg = (struct rt_can_msg *) buf;
- can_rx_message_type rx_message;
-
- RT_ASSERT(can);
-
- /* get data */
- can_message_receive(hcan->can_x, (can_rx_fifo_num_type)fifo, &rx_message);
-
- pmsg->data[0] = rx_message.data[0];
- pmsg->data[1] = rx_message.data[1];
- pmsg->data[2] = rx_message.data[2];
- pmsg->data[3] = rx_message.data[3];
- pmsg->data[4] = rx_message.data[4];
- pmsg->data[5] = rx_message.data[5];
- pmsg->data[6] = rx_message.data[6];
- pmsg->data[7] = rx_message.data[7];
-
- pmsg->len = rx_message.dlc;
- pmsg->id = rx_message.id_type;
-
- if (rx_message.id_type == CAN_ID_STANDARD)
- pmsg->id = rx_message.standard_id;
- else
- pmsg->ide = rx_message.extended_id;
-
- pmsg->rtr = rx_message.frame_type;
- pmsg->hdr = rx_message.filter_index;
-
- return RT_EOK;
-}
-
-static const struct rt_can_ops _can_ops =
-{
- _can_config,
- _can_control,
- _can_sendmsg,
- _can_recvmsg,
-};
-
-static void _can_rx_isr(struct rt_can_device *can, rt_uint32_t fifo)
-{
- struct can_config *hcan;
- RT_ASSERT(can);
- hcan = &((struct at32_can *) can->parent.user_data)->config;
-
- switch (fifo)
- {
- case CAN_RX_FIFO0:
- /* save to user list */
- if (can_receive_message_pending_get(hcan->can_x, CAN_RX_FIFO0) && \
- can_flag_get(hcan->can_x, CAN_RF0MN_FLAG))
- {
- rt_hw_can_isr(can, RT_CAN_EVENT_RX_IND | fifo << 8);
- }
- /* check full flag for fifo0 */
- if (can_flag_get(hcan->can_x, CAN_RF0FF_FLAG) == SET)
- {
- /* clear fifo0 full flag */
- can_flag_clear(hcan->can_x, CAN_RF0FF_FLAG);
- }
-
- /* check overrun flag for fifo0 */
- if (can_flag_get(hcan->can_x, CAN_RF0OF_FLAG) == SET)
- {
- /* clear fifo0 overrun flag */
- can_flag_clear(hcan->can_x, CAN_RF0OF_FLAG);
- rt_hw_can_isr(can, RT_CAN_EVENT_RXOF_IND | fifo << 8);
- }
- break;
- case CAN_RX_FIFO1:
- /* save to user list */
- if (can_receive_message_pending_get(hcan->can_x, CAN_RX_FIFO1) && \
- can_flag_get(hcan->can_x, CAN_RF1MN_FLAG))
- {
- rt_hw_can_isr(can, RT_CAN_EVENT_RX_IND | fifo << 8);
- }
- /* check full flag for fifo1 */
- if (can_flag_get(hcan->can_x, CAN_RF1FF_FLAG) == SET)
- {
- /* clear fifo1 full flag */
- can_flag_clear(hcan->can_x, CAN_RF1FF_FLAG);
- }
-
- /* check overrun flag for fifo1 */
- if (can_flag_get(hcan->can_x, CAN_RF1OF_FLAG) == SET)
- {
- /* clear fifo1 overrun flag */
- can_flag_clear(hcan->can_x, CAN_RF1OF_FLAG);
- rt_hw_can_isr(can, RT_CAN_EVENT_RXOF_IND | fifo << 8);
- }
- break;
- }
-}
-
-#ifdef BSP_USING_CAN1
-/**
- * @brief this function handles can1 tx interrupts. transmit fifo0/1/2 is empty can trigger this interrupt
- */
-void USBFS_H_CAN1_TX_IRQHandler(void)
-{
- rt_interrupt_enter();
- struct can_config *hcan;
- hcan = &can_instance1.config;
- if (can_flag_get(hcan->can_x, CAN_TM0TCF_FLAG) == SET)
- {
- if (hcan->can_x->tsts_bit.tm0tsf == 1)
- {
- rt_hw_can_isr(&can_instance1.device, RT_CAN_EVENT_TX_DONE | 0 << 8);
- }
- else
- {
- rt_hw_can_isr(&can_instance1.device, RT_CAN_EVENT_TX_FAIL | 0 << 8);
- }
- /* write 0 to clear transmission status flag */
- can_flag_clear(hcan->can_x, CAN_TM0TCF_FLAG);
- }
- else if (can_flag_get(hcan->can_x, CAN_TM1TCF_FLAG) == SET)
- {
- if (hcan->can_x->tsts_bit.tm1tsf == 1)
- {
- rt_hw_can_isr(&can_instance1.device, RT_CAN_EVENT_TX_DONE | 1 << 8);
- }
- else
- {
- rt_hw_can_isr(&can_instance1.device, RT_CAN_EVENT_TX_FAIL | 1 << 8);
- }
- /* write 0 to clear transmission status flag */
- can_flag_clear(hcan->can_x, CAN_TM1TCF_FLAG);
- }
- else if (can_flag_get(hcan->can_x, CAN_TM2TCF_FLAG) == SET)
- {
- if (hcan->can_x->tsts_bit.tm2tsf == 1)
- {
- rt_hw_can_isr(&can_instance1.device, RT_CAN_EVENT_TX_DONE | 2 << 8);
- }
- else
- {
- rt_hw_can_isr(&can_instance1.device, RT_CAN_EVENT_TX_FAIL | 2 << 8);
- }
- /* write 0 to clear transmission status flag */
- can_flag_clear(hcan->can_x, CAN_TM2TCF_FLAG);
- }
- rt_interrupt_leave();
-}
-
-/**
- * @brief this function handles can1 rx0 interrupts.
- */
-void USBFS_L_CAN1_RX0_IRQHandler(void)
-{
- rt_interrupt_enter();
- _can_rx_isr(&can_instance1.device, CAN_RX_FIFO0);
- rt_interrupt_leave();
-}
-
-/**
- * @brief this function handles can1 rx1 interrupts.
- */
-void CAN1_RX1_IRQHandler(void)
-{
- rt_interrupt_enter();
- _can_rx_isr(&can_instance1.device, CAN_RX_FIFO1);
- rt_interrupt_leave();
-}
-
-/**
- * @brief this function handles can1 sce interrupts.
- */
-void CAN1_SE_IRQHandler(void)
-{
- rt_uint32_t errtype;
- struct can_config *hcan;
-
- hcan = &can_instance1.config;
- errtype = hcan->can_x->ests;
-
- rt_interrupt_enter();
-
- switch ((errtype & 0x70) >> 4)
- {
- case RT_CAN_BUS_BIT_PAD_ERR:
- can_instance1.device.status.bitpaderrcnt++;
- break;
- case RT_CAN_BUS_FORMAT_ERR:
- can_instance1.device.status.formaterrcnt++;
- break;
- case RT_CAN_BUS_ACK_ERR:/* attention !!! test ack err's unit is transmit unit */
- can_instance1.device.status.ackerrcnt++;
- if (!(can_instance1.config.can_x->tsts_bit.tm0tsf == 1))
- rt_hw_can_isr(&can_instance1.device, RT_CAN_EVENT_TX_FAIL | 0 << 8);
- else if (!(can_instance1.config.can_x->tsts_bit.tm1tsf == 1))
- rt_hw_can_isr(&can_instance1.device, RT_CAN_EVENT_TX_FAIL | 1 << 8);
- else if (!(can_instance1.config.can_x->tsts_bit.tm2tsf == 1))
- rt_hw_can_isr(&can_instance1.device, RT_CAN_EVENT_TX_FAIL | 2 << 8);
- break;
- case RT_CAN_BUS_IMPLICIT_BIT_ERR:
- case RT_CAN_BUS_EXPLICIT_BIT_ERR:
- can_instance1.device.status.biterrcnt++;
- break;
- case RT_CAN_BUS_CRC_ERR:
- can_instance1.device.status.crcerrcnt++;
- break;
- }
-
- can_instance1.device.status.lasterrtype = errtype & 0x70;
- can_instance1.device.status.rcverrcnt = errtype >> 24;
- can_instance1.device.status.snderrcnt = (errtype >> 16 & 0xFF);
- can_instance1.device.status.errcode = errtype & 0x07;
- /* clear error flags */
- can_flag_clear(hcan->can_x, CAN_ETR_FLAG);
- rt_interrupt_leave();
-}
-#endif
-
-#ifdef BSP_USING_CAN2
-/**
- * @brief this function handles can2 tx interrupts.
- */
-void CAN2_TX_IRQHandler(void)
-{
- rt_interrupt_enter();
- struct can_config *hcan;
- hcan = &can_instance2.config;
- if (can_flag_get(hcan->can_x, CAN_TM0TCF_FLAG) == SET)
- {
- if (hcan->can_x->tsts_bit.tm0tsf == 1)
- {
- rt_hw_can_isr(&can_instance2.device, RT_CAN_EVENT_TX_DONE | 0 << 8);
- }
- else
- {
- rt_hw_can_isr(&can_instance2.device, RT_CAN_EVENT_TX_FAIL | 0 << 8);
- }
- /* write 0 to clear transmission status flag rqcpx */
- can_flag_clear(hcan->can_x, CAN_TM0TCF_FLAG);
- }
- else if (can_flag_get(hcan->can_x, CAN_TM1TCF_FLAG) == SET)
- {
- if (hcan->can_x->tsts_bit.tm1tsf == 1)
- {
- rt_hw_can_isr(&can_instance2.device, RT_CAN_EVENT_TX_DONE | 1 << 8);
- }
- else
- {
- rt_hw_can_isr(&can_instance2.device, RT_CAN_EVENT_TX_FAIL | 1 << 8);
- }
- /* write 0 to clear transmission status flag rqcpx */
- can_flag_clear(hcan->can_x, CAN_TM1TCF_FLAG);
- }
- else if (can_flag_get(hcan->can_x, CAN_TM2TCF_FLAG) == SET)
- {
- if (hcan->can_x->tsts_bit.tm2tsf == 1)
- {
- rt_hw_can_isr(&can_instance2.device, RT_CAN_EVENT_TX_DONE | 2 << 8);
- }
- else
- {
- rt_hw_can_isr(&can_instance2.device, RT_CAN_EVENT_TX_FAIL | 2 << 8);
- }
- /* write 0 to clear transmission status flag rqcpx */
- can_flag_clear(hcan->can_x, CAN_TM2TCF_FLAG);
- }
- rt_interrupt_leave();
-}
-
-/**
- * @brief this function handles can2 rx0 interrupts.
- */
-void CAN2_RX0_IRQHandler(void)
-{
- rt_interrupt_enter();
- _can_rx_isr(&can_instance2.device, CAN_RX_FIFO0);
- rt_interrupt_leave();
-}
-
-/**
- * @brief this function handles can2 rx1 interrupts.
- */
-void CAN2_RX1_IRQHandler(void)
-{
- rt_interrupt_enter();
- _can_rx_isr(&can_instance2.device, CAN_RX_FIFO1);
- rt_interrupt_leave();
-}
-
-/**
- * @brief this function handles can2 sce interrupts.
- */
-void CAN2_SE_IRQHandler(void)
-{
- rt_uint32_t errtype;
- struct can_config *hcan;
-
- hcan = &can_instance2.config;
- errtype = hcan->can_x->ests;
-
- rt_interrupt_enter();
-
- switch ((errtype & 0x70) >> 4)
- {
- case RT_CAN_BUS_BIT_PAD_ERR:
- can_instance2.device.status.bitpaderrcnt++;
- break;
- case RT_CAN_BUS_FORMAT_ERR:
- can_instance2.device.status.formaterrcnt++;
- break;
- case RT_CAN_BUS_ACK_ERR:
- can_instance2.device.status.ackerrcnt++;
- if (!(can_instance2.config.can_x->tsts_bit.tm0tsf == 1))
- rt_hw_can_isr(&can_instance2.device, RT_CAN_EVENT_TX_FAIL | 0 << 8);
- else if (!(can_instance2.config.can_x->tsts_bit.tm1tsf == 1))
- rt_hw_can_isr(&can_instance2.device, RT_CAN_EVENT_TX_FAIL | 1 << 8);
- else if (!(can_instance2.config.can_x->tsts_bit.tm2tsf == 1))
- rt_hw_can_isr(&can_instance2.device, RT_CAN_EVENT_TX_FAIL | 2 << 8);
- break;
- case RT_CAN_BUS_IMPLICIT_BIT_ERR:
- case RT_CAN_BUS_EXPLICIT_BIT_ERR:
- can_instance2.device.status.biterrcnt++;
- break;
- case RT_CAN_BUS_CRC_ERR:
- can_instance2.device.status.crcerrcnt++;
- break;
- }
-
- can_instance2.device.status.lasterrtype = errtype & 0x70;
- can_instance2.device.status.rcverrcnt = errtype >> 24;
- can_instance2.device.status.snderrcnt = (errtype >> 16 & 0xFF);
- can_instance2.device.status.errcode = errtype & 0x07;
- /* clear error flags */
- can_flag_clear(hcan->can_x, CAN_ETR_FLAG);
- rt_interrupt_leave();
-}
-#endif
-
-int rt_hw_can_init(void)
-{
- struct can_configure config = CANDEFAULTCONFIG;
- config.privmode = RT_CAN_MODE_NOPRIV;
- config.ticks = 50;
-#ifdef RT_CAN_USING_HDR
- config.maxhdr = 14;
-#endif
- /* config default filter */
- can_filter_init_type filter_conf;
- can_filter_default_para_init(&filter_conf);
- filter_conf.filter_activate_enable = TRUE;
- filter_conf.filter_bit = CAN_FILTER_32BIT;
-
-#ifdef BSP_USING_CAN1
- filter_conf.filter_number = 0;
- can_instance1.config.filter_init_struct = filter_conf;
- can_instance1.device.config = config;
-
- /* register can1 device */
- rt_hw_can_register(&can_instance1.device,
- can_instance1.name,
- &_can_ops,
- &can_instance1);
-#endif /* BSP_USING_CAN1 */
-
-#ifdef BSP_USING_CAN2
- filter_conf.filter_number = 0;
- can_instance2.config.filter_init_struct = filter_conf;
- can_instance2.device.config = config;
-
- /* register can2 device */
- rt_hw_can_register(&can_instance2.device,
- can_instance2.name,
- &_can_ops,
- &can_instance2);
-#endif /* BSP_USING_CAN2 */
-
- return 0;
-}
-
-INIT_BOARD_EXPORT(rt_hw_can_init);
-
-#endif /* BSP_USING_CAN */
diff --git a/bsp/at32/libraries/f413/rt_drivers/drv_can.h b/bsp/at32/libraries/f413/rt_drivers/drv_can.h
deleted file mode 100644
index cec0239989..0000000000
--- a/bsp/at32/libraries/f413/rt_drivers/drv_can.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-11 shelton first version
- */
-
-#ifndef __DRV_CAN_H__
-#define __DRV_CAN_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtdevice.h>
-#include <rtthread.h>
-#include "board.h"
-
-struct at32_baud_rate
-{
- rt_uint32_t baud_rate;
- can_baudrate_type baud_struct;
-};
-
-struct can_config
-{
- can_type *can_x;
- can_base_type base_init_struct;
- can_baudrate_type baudrate_init_struct;
- can_filter_init_type filter_init_struct;
-};
-
-/* at32 can device */
-struct at32_can
-{
- char *name;
- struct can_config config;
- struct rt_can_device device; /* inherit from can device */
-};
-
-int rt_hw_can_init(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /*__DRV_CAN_H__ */
-
-/************************** end of file ******************/
diff --git a/bsp/at32/libraries/f413/rt_drivers/drv_common.h b/bsp/at32/libraries/f413/rt_drivers/drv_common.h
deleted file mode 100644
index c9d725bb52..0000000000
--- a/bsp/at32/libraries/f413/rt_drivers/drv_common.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-08 shelton first version
- */
-
-#ifndef __DRV_COMMON_H__
-#define __DRV_COMMON_H__
-
-#include <rtthread.h>
-#include <rthw.h>
-#ifdef RT_USING_DEVICE
-#include <rtdevice.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void _Error_Handler(char *s, int num);
-
-#ifndef Error_Handler
-#define Error_Handler() _Error_Handler(__FILE__, __LINE__)
-#endif
-
-//#define DMA_NOT_AVAILABLE ((DMA_INSTANCE_TYPE *)0xFFFFFFFFU)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/bsp/at32/libraries/f413/rt_drivers/drv_flash.c b/bsp/at32/libraries/f413/rt_drivers/drv_flash.c
deleted file mode 100644
index e763e817bc..0000000000
--- a/bsp/at32/libraries/f413/rt_drivers/drv_flash.c
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-24 shelton first version
- */
-
-#include <rtthread.h>
-#include "board.h"
-
-#ifdef BSP_USING_ON_CHIP_FLASH
-#include "drv_flash.h"
-
-#if defined(PKG_USING_FAL)
-#include "fal.h"
-#endif
-
-//#define DRV_DEBUG
-#define LOG_TAG "drv.flash"
-#include <drv_log.h>
-
-/**
- * @brief gets the page of a given address
- * @param addr: address of the flash memory
- * @retval the page of a given address
- */
-static rt_uint32_t get_page(uint32_t addr)
-{
- rt_uint32_t page = 0;
-
- page = RT_ALIGN_DOWN(addr, FLASH_PAGE_SIZE);
-
- return page;
-}
-
-/**
- * @brief read data from flash.
- * @note this operation's units is word.
- *
- * @param addr flash address
- * @param buf buffer to store read data
- * @param size read bytes size
- *
- * @return result
- */
-int at32_flash_read(rt_uint32_t addr, rt_uint8_t *buf, rt_uint32_t size)
-{
- rt_uint32_t i;
-
- if ((addr + size) > AT32_FLASH_END_ADDRESS)
- {
- LOG_E("read outrange flash size! addr is (0x%p)", (void *)(addr + size));
- return -RT_EINVAL;
- }
-
- for (i = 0; i < size; i++, buf++, addr++)
- {
- *buf = *(rt_uint8_t *) addr;
- }
-
- return size;
-}
-
-/**
- * @brief write data to flash.
- * @note this operation's units is word.
- * @note this operation must after erase. @see flash_erase.
- *
- * @param addr flash address
- * @param buf the write data buffer
- * @param size write bytes size
- *
- * @return result
- */
-int at32_flash_write(rt_uint32_t addr, const rt_uint8_t *buf, rt_uint32_t size)
-{
- rt_err_t result = RT_EOK;
- rt_uint32_t end_addr = addr + size;
-
- if (addr % 4 != 0)
- {
- LOG_E("write addr must be 4-byte alignment");
- return -RT_EINVAL;
- }
-
- if ((end_addr) > AT32_FLASH_END_ADDRESS)
- {
- LOG_E("write outrange flash size! addr is (0x%p)", (void *)(addr + size));
- return -RT_EINVAL;
- }
-
- flash_unlock();
-
- while (addr < end_addr)
- {
- if (flash_word_program(addr, *((rt_uint32_t *)buf)) == FLASH_OPERATE_DONE)
- {
- if (*(rt_uint32_t *)addr != *(rt_uint32_t *)buf)
- {
- result = -RT_ERROR;
- break;
- }
- addr += 4;
- buf += 4;
- }
- else
- {
- result = -RT_ERROR;
- break;
- }
- }
-
- flash_lock();
-
- if (result != RT_EOK)
- {
- return result;
- }
-
- return size;
-}
-
-/**
- * @brief erase data on flash .
- * @note this operation is irreversible.
- * @note this operation's units is different which on many chips.
- *
- * @param addr flash address
- * @param size erase bytes size
- *
- * @return result
- */
-int at32_flash_erase(rt_uint32_t addr, rt_uint32_t size)
-{
- rt_err_t result = RT_EOK;
- rt_uint32_t end_addr = addr + size;
- rt_uint32_t page_addr = 0;
-
- flash_unlock();
-
- if ((end_addr) > AT32_FLASH_END_ADDRESS)
- {
- LOG_E("erase outrange flash size! addr is (0x%p)", (void *)(addr + size));
- return -RT_EINVAL;
- }
-
- while(addr < end_addr)
- {
- page_addr = get_page(addr);
-
- if(flash_sector_erase(page_addr) != FLASH_OPERATE_DONE)
- {
- result = -RT_ERROR;
- goto __exit;
- }
-
- addr += FLASH_PAGE_SIZE;
- }
-
- flash_lock();
-
-__exit:
- if(result != RT_EOK)
- {
- return result;
- }
-
- return size;
-}
-
-#if defined(PKG_USING_FAL)
-
-static int fal_flash_read(long offset, rt_uint8_t *buf, rt_uint32_t size);
-static int fal_flash_write(long offset, const rt_uint8_t *buf, rt_uint32_t size);
-static int fal_flash_erase(long offset, rt_uint32_t size);
-
-const struct fal_flash_dev at32_onchip_flash =
-{
- "onchip_flash",
- AT32_FLASH_START_ADRESS,
- AT32_FLASH_SIZE,
- FLASH_PAGE_SIZE,
- {
- NULL,
- fal_flash_read,
- fal_flash_write,
- fal_flash_erase
- }
-};
-
-static int fal_flash_read(long offset, rt_uint8_t *buf, rt_uint32_t size)
-{
- return at32_flash_read(at32_onchip_flash.addr + offset, buf, size);
-}
-
-static int fal_flash_write(long offset, const rt_uint8_t *buf, rt_uint32_t size)
-{
- return at32_flash_write(at32_onchip_flash.addr + offset, buf, size);
-}
-
-static int fal_flash_erase(long offset, rt_uint32_t size)
-{
- return at32_flash_erase(at32_onchip_flash.addr + offset, size);
-}
-
-#endif
-#endif /* BSP_USING_ON_CHIP_FLASH */
diff --git a/bsp/at32/libraries/f413/rt_drivers/drv_flash.h b/bsp/at32/libraries/f413/rt_drivers/drv_flash.h
deleted file mode 100644
index 42ada3416a..0000000000
--- a/bsp/at32/libraries/f413/rt_drivers/drv_flash.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2021-02-09 shelton the first version
- */
-
-#ifndef __DRV_FLASH_H__
-#define __DRV_FLASH_H__
-
-#include <rtthread.h>
-#include "rtdevice.h"
-#include <rthw.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int at32_flash_read(rt_uint32_t addr, rt_uint8_t *buf, rt_uint32_t size);
-int at32_flash_write(rt_uint32_t addr, const rt_uint8_t *buf, rt_uint32_t size);
-int at32_flash_erase(rt_uint32_t addr, rt_uint32_t size);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __DRV_FLASH_H__ */
diff --git a/bsp/at32/libraries/f413/rt_drivers/drv_gpio.c b/bsp/at32/libraries/f413/rt_drivers/drv_gpio.c
deleted file mode 100644
index b66c475050..0000000000
--- a/bsp/at32/libraries/f413/rt_drivers/drv_gpio.c
+++ /dev/null
@@ -1,557 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-08 shelton first version
- */
-
-#include "board.h"
-#include "drv_gpio.h"
-
-#ifdef RT_USING_PIN
-
-#define PIN_NUM(port, no) (((((port) & 0xFu) << 4) | ((no) & 0xFu)))
-#define PIN_PORT(pin) ((uint8_t)(((pin) >> 4) & 0xFu))
-#define PIN_NO(pin) ((uint8_t)((pin) & 0xFu))
-
-#define PIN_ATPORTSOURCE(pin) (gpio_port_source_type)((uint8_t)(((pin) & 0xF0u) >> 4))
-#define PIN_ATPINSOURCE(pin) (gpio_pins_source_type)((uint8_t)((pin) & 0xFu))
-#define PIN_ATPORT(pin) ((gpio_type *)(GPIOA_BASE + (0x400u * PIN_PORT(pin))))
-#define PIN_ATPIN(pin) ((uint16_t)(1u << PIN_NO(pin)))
-
-#if defined(GPIOZ)
- #define __AT32_PORT_MAX 12u
-#elif defined(GPIOK)
- #define __AT32_PORT_MAX 11u
-#elif defined(GPIOJ)
- #define __AT32_PORT_MAX 10u
-#elif defined(GPIOI)
- #define __AT32_PORT_MAX 9u
-#elif defined(GPIOH)
- #define __AT32_PORT_MAX 8u
-#elif defined(GPIOG)
- #define __AT32_PORT_MAX 7u
-#elif defined(GPIOF)
- #define __AT32_PORT_MAX 6u
-#elif defined(GPIOE)
- #define __AT32_PORT_MAX 5u
-#elif defined(GPIOD)
- #define __AT32_PORT_MAX 4u
-#elif defined(GPIOC)
- #define __AT32_PORT_MAX 3u
-#elif defined(GPIOB)
- #define __AT32_PORT_MAX 2u
-#elif defined(GPIOA)
- #define __AT32_PORT_MAX 1u
-#else
- #define __AT32_PORT_MAX 0u
- #error Unsupported AT32 GPIO peripheral.
-#endif
-
-#define PIN_ATPORT_MAX __AT32_PORT_MAX
-
-static const struct pin_irq_map pin_irq_map[] =
-{
- {GPIO_PINS_0, EXINT_LINE_0, EXINT0_IRQn},
- {GPIO_PINS_1, EXINT_LINE_1, EXINT1_IRQn},
- {GPIO_PINS_2, EXINT_LINE_2, EXINT2_IRQn},
- {GPIO_PINS_3, EXINT_LINE_3, EXINT3_IRQn},
- {GPIO_PINS_4, EXINT_LINE_4, EXINT4_IRQn},
- {GPIO_PINS_5, EXINT_LINE_5, EXINT9_5_IRQn},
- {GPIO_PINS_6, EXINT_LINE_6, EXINT9_5_IRQn},
- {GPIO_PINS_7, EXINT_LINE_7, EXINT9_5_IRQn},
- {GPIO_PINS_8, EXINT_LINE_8, EXINT9_5_IRQn},
- {GPIO_PINS_9, EXINT_LINE_9, EXINT9_5_IRQn},
- {GPIO_PINS_10, EXINT_LINE_10, EXINT15_10_IRQn},
- {GPIO_PINS_11, EXINT_LINE_11, EXINT15_10_IRQn},
- {GPIO_PINS_12, EXINT_LINE_12, EXINT15_10_IRQn},
- {GPIO_PINS_13, EXINT_LINE_13, EXINT15_10_IRQn},
- {GPIO_PINS_14, EXINT_LINE_14, EXINT15_10_IRQn},
- {GPIO_PINS_15, EXINT_LINE_15, EXINT15_10_IRQn},
-};
-
-static struct rt_pin_irq_hdr pin_irq_handler_tab[] =
-{
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
-};
-static uint32_t pin_irq_enable_mask = 0;
-
-#define ITEM_NUM(items) sizeof(items) / sizeof(items[0])
-
-static void at32_pin_write(rt_device_t dev, rt_base_t pin, rt_base_t value)
-{
- gpio_type *gpio_port;
-
- uint16_t gpio_pin;
- if (PIN_PORT(pin) < PIN_ATPORT_MAX)
- {
- gpio_port = PIN_ATPORT(pin);
- gpio_pin = PIN_ATPIN(pin);
- }
- else
- {
- return;
- }
- gpio_bits_write(gpio_port, gpio_pin, (confirm_state)value);
-}
-
-static int at32_pin_read(rt_device_t dev, rt_base_t pin)
-{
- gpio_type *gpio_port;
- uint16_t gpio_pin;
- int value;
-
- value = PIN_LOW;
-
- if (PIN_PORT(pin) < PIN_ATPORT_MAX)
- {
- gpio_port = PIN_ATPORT(pin);
- gpio_pin = PIN_ATPIN(pin);
- value = gpio_input_data_bit_read(gpio_port, gpio_pin);
- }
- return value;
-}
-
-static void at32_pin_mode(rt_device_t dev, rt_base_t pin, rt_base_t mode)
-{
- gpio_init_type gpio_init_struct;
- gpio_type *gpio_port;
- uint16_t gpio_pin;
-
- if (PIN_PORT(pin) < PIN_ATPORT_MAX)
- {
- gpio_port = PIN_ATPORT(pin);
- gpio_pin = PIN_ATPIN(pin);
- }
- else
- {
- return;
- }
-
- /* configure gpio_init_struct */
- gpio_default_para_init(&gpio_init_struct);
- gpio_init_struct.gpio_pins = gpio_pin;
- gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
- gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
- gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
- gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
-
- if (mode == PIN_MODE_OUTPUT)
- {
- /* output setting */
- gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
- gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
- gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
- }
- else if (mode == PIN_MODE_INPUT)
- {
- /* input setting: not pull. */
- gpio_init_struct.gpio_mode = GPIO_MODE_INPUT;
- gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
- }
- else if (mode == PIN_MODE_INPUT_PULLUP)
- {
- /* input setting: pull up. */
- gpio_init_struct.gpio_mode = GPIO_MODE_INPUT;
- gpio_init_struct.gpio_pull = GPIO_PULL_UP;
- }
- else if (mode == PIN_MODE_INPUT_PULLDOWN)
- {
- /* input setting: pull down. */
- gpio_init_struct.gpio_mode = GPIO_MODE_INPUT;
- gpio_init_struct.gpio_pull = GPIO_PULL_DOWN;
- }
- else if (mode == PIN_MODE_OUTPUT_OD)
- {
- /* output setting: od. */
- gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
- gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
- }
-
- gpio_init(gpio_port, &gpio_init_struct);
-}
-
-rt_inline rt_int32_t bit2bitno(rt_uint32_t bit)
-{
- int i;
- for (i = 0; i < 32; i++)
- {
- if ((0x01 << i) == bit)
- {
- return i;
- }
- }
- return -1;
-}
-
-rt_inline const struct pin_irq_map *get_pin_irq_map(uint32_t pinbit)
-{
- rt_int32_t mapindex = bit2bitno(pinbit);
- if (mapindex < 0 || mapindex >= ITEM_NUM(pin_irq_map))
- {
- return RT_NULL;
- }
- return &pin_irq_map[mapindex];
-};
-
-static rt_err_t at32_pin_attach_irq(struct rt_device *device, rt_int32_t pin,
- rt_uint32_t mode, void (*hdr)(void *args), void *args)
-{
- uint16_t gpio_pin;
- rt_base_t level;
- rt_int32_t irqindex = -1;
-
- if (PIN_PORT(pin) < PIN_ATPORT_MAX)
- {
- gpio_pin = PIN_ATPIN(pin);
- }
- else
- {
- return -RT_EINVAL;
- }
-
- irqindex = bit2bitno(gpio_pin);
- if (irqindex < 0 || irqindex >= ITEM_NUM(pin_irq_map))
- {
- return -RT_EINVAL;
- }
-
- level = rt_hw_interrupt_disable();
- if (pin_irq_handler_tab[irqindex].pin == pin &&
- pin_irq_handler_tab[irqindex].hdr == hdr &&
- pin_irq_handler_tab[irqindex].mode == mode &&
- pin_irq_handler_tab[irqindex].args == args)
- {
- rt_hw_interrupt_enable(level);
- return RT_EOK;
- }
- if (pin_irq_handler_tab[irqindex].pin != -1)
- {
- rt_hw_interrupt_enable(level);
- return -RT_EBUSY;
- }
- pin_irq_handler_tab[irqindex].pin = pin;
- pin_irq_handler_tab[irqindex].hdr = hdr;
- pin_irq_handler_tab[irqindex].mode = mode;
- pin_irq_handler_tab[irqindex].args = args;
- rt_hw_interrupt_enable(level);
-
- return RT_EOK;
-}
-
-static rt_err_t at32_pin_dettach_irq(struct rt_device *device, rt_int32_t pin)
-{
- uint16_t gpio_pin;
- rt_base_t level;
- rt_int32_t irqindex = -1;
-
- if (PIN_PORT(pin) < PIN_ATPORT_MAX)
- {
- gpio_pin = PIN_ATPIN(pin);
- }
- else
- {
- return -RT_EINVAL;
- }
- irqindex = bit2bitno(gpio_pin);
- if (irqindex < 0 || irqindex >= ITEM_NUM(pin_irq_map))
- {
- return -RT_EINVAL;
- }
-
- level = rt_hw_interrupt_disable();
- if (pin_irq_handler_tab[irqindex].pin == -1)
- {
- rt_hw_interrupt_enable(level);
- return RT_EOK;
- }
- pin_irq_handler_tab[irqindex].pin = -1;
- pin_irq_handler_tab[irqindex].hdr = RT_NULL;
- pin_irq_handler_tab[irqindex].mode = 0;
- pin_irq_handler_tab[irqindex].args = RT_NULL;
- rt_hw_interrupt_enable(level);
-
- return RT_EOK;
-}
-
-static rt_err_t at32_pin_irq_enable(struct rt_device *device, rt_base_t pin,
- rt_uint32_t enabled)
-{
- gpio_init_type gpio_init_struct;
- exint_init_type exint_init_struct;
- gpio_type *gpio_port;
- IRQn_Type irqn;
- uint16_t gpio_pin;
- const struct pin_irq_map *irqmap;
- rt_base_t level;
- rt_int32_t irqindex = -1;
-
- if (PIN_PORT(pin) < PIN_ATPORT_MAX)
- {
- gpio_port = PIN_ATPORT(pin);
- gpio_pin = PIN_ATPIN(pin);
- }
- else
- {
- return -RT_EINVAL;
- }
-
- if (enabled == PIN_IRQ_ENABLE)
- {
- irqindex = bit2bitno(gpio_pin);
- if (irqindex < 0 || irqindex >= ITEM_NUM(pin_irq_map))
- {
- return -RT_EINVAL;
- }
-
- level = rt_hw_interrupt_disable();
-
- if (pin_irq_handler_tab[irqindex].pin == -1)
- {
- rt_hw_interrupt_enable(level);
- return -RT_EINVAL;
- }
-
- irqmap = &pin_irq_map[irqindex];
-
- /* configure gpio_init_struct */
- gpio_default_para_init(&gpio_init_struct);
- exint_default_para_init(&exint_init_struct);
-
- gpio_init_struct.gpio_pins = irqmap->pinbit;
- gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
- exint_init_struct.line_select = irqmap->pinbit;
- exint_init_struct.line_mode = EXINT_LINE_INTERRUPUT;
- exint_init_struct.line_enable = TRUE;
- switch (pin_irq_handler_tab[irqindex].mode)
- {
- case PIN_IRQ_MODE_RISING:
- exint_init_struct.line_polarity = EXINT_TRIGGER_RISING_EDGE;
- break;
- case PIN_IRQ_MODE_FALLING:
- exint_init_struct.line_polarity = EXINT_TRIGGER_FALLING_EDGE;
- break;
- case PIN_IRQ_MODE_RISING_FALLING:
- exint_init_struct.line_polarity = EXINT_TRIGGER_BOTH_EDGE;
- break;
- }
- gpio_init(gpio_port, &gpio_init_struct);
-
- gpio_exint_line_config(PIN_ATPORTSOURCE(pin), PIN_ATPINSOURCE(pin));
-
- exint_init(&exint_init_struct);
-
- nvic_irq_enable(irqmap->irqno, 5, 0);
- pin_irq_enable_mask |= irqmap->pinbit;
-
- rt_hw_interrupt_enable(level);
- }
- else if (enabled == PIN_IRQ_DISABLE)
- {
- irqmap = get_pin_irq_map(gpio_pin);
- if (irqmap == RT_NULL)
- {
- return -RT_EINVAL;
- }
-
- level = rt_hw_interrupt_disable();
-
- pin_irq_enable_mask &= ~irqmap->pinbit;
-
-
- if ((irqmap->pinbit >= GPIO_PINS_5) && (irqmap->pinbit <= GPIO_PINS_9))
- {
- if (!(pin_irq_enable_mask & (GPIO_PINS_5 | GPIO_PINS_6 | GPIO_PINS_7 | GPIO_PINS_8 | GPIO_PINS_9)))
- {
- irqn = irqmap->irqno;
- }
- }
- else if ((irqmap->pinbit >= GPIO_PINS_10) && (irqmap->pinbit <= GPIO_PINS_15))
- {
- if (!(pin_irq_enable_mask & (GPIO_PINS_10 | GPIO_PINS_11 | GPIO_PINS_12 | GPIO_PINS_13 | GPIO_PINS_14 | GPIO_PINS_15)))
- {
- irqn = irqmap->irqno;
- }
- }
- else
- {
- irqn = irqmap->irqno;
- }
- nvic_irq_disable(irqn);
- rt_hw_interrupt_enable(level);
- }
- else
- {
- return -RT_EINVAL;
- }
-
- return RT_EOK;
-}
-
-const static struct rt_pin_ops _at32_pin_ops =
-{
- at32_pin_mode,
- at32_pin_write,
- at32_pin_read,
- at32_pin_attach_irq,
- at32_pin_dettach_irq,
- at32_pin_irq_enable,
- RT_NULL,
-};
-
-rt_inline void pin_irq_handler(int irqno)
-{
- exint_flag_clear(pin_irq_map[irqno].lineno);
- if (pin_irq_handler_tab[irqno].hdr)
- {
- pin_irq_handler_tab[irqno].hdr(pin_irq_handler_tab[irqno].args);
- }
-}
-
-void gpio_exint_handler(uint16_t GPIO_Pin)
-{
- pin_irq_handler(bit2bitno(GPIO_Pin));
-}
-
-void EXINT0_IRQHandler(void)
-{
- rt_interrupt_enter();
- gpio_exint_handler(GPIO_PINS_0);
- rt_interrupt_leave();
-}
-
-void EXINT1_IRQHandler(void)
-{
- rt_interrupt_enter();
- gpio_exint_handler(GPIO_PINS_1);
- rt_interrupt_leave();
-}
-
-void EXINT2_IRQHandler(void)
-{
- rt_interrupt_enter();
- gpio_exint_handler(GPIO_PINS_2);
- rt_interrupt_leave();
-}
-
-void EXINT3_IRQHandler(void)
-{
- rt_interrupt_enter();
- gpio_exint_handler(GPIO_PINS_3);
- rt_interrupt_leave();
-}
-
-void EXINT4_IRQHandler(void)
-{
- rt_interrupt_enter();
- gpio_exint_handler(GPIO_PINS_4);
- rt_interrupt_leave();
-}
-
-void EXINT9_5_IRQHandler(void)
-{
- rt_interrupt_enter();
- if (RESET != exint_flag_get(EXINT_LINE_5))
- {
- gpio_exint_handler(GPIO_PINS_5);
- }
- if (RESET != exint_flag_get(EXINT_LINE_6))
- {
- gpio_exint_handler(GPIO_PINS_6);
- }
- if (RESET != exint_flag_get(EXINT_LINE_7))
- {
- gpio_exint_handler(GPIO_PINS_7);
- }
- if (RESET != exint_flag_get(EXINT_LINE_8))
- {
- gpio_exint_handler(GPIO_PINS_8);
- }
- if (RESET != exint_flag_get(EXINT_LINE_9))
- {
- gpio_exint_handler(GPIO_PINS_9);
- }
- rt_interrupt_leave();
-}
-
-void EXINT15_10_IRQHandler(void)
-{
- rt_interrupt_enter();
- if (RESET != exint_flag_get(EXINT_LINE_10))
- {
- gpio_exint_handler(GPIO_PINS_10);
- }
- if (RESET != exint_flag_get(EXINT_LINE_11))
- {
- gpio_exint_handler(GPIO_PINS_11);
- }
- if (RESET != exint_flag_get(EXINT_LINE_12))
- {
- gpio_exint_handler(GPIO_PINS_12);
- }
- if (RESET != exint_flag_get(EXINT_LINE_13))
- {
- gpio_exint_handler(GPIO_PINS_13);
- }
- if (RESET != exint_flag_get(EXINT_LINE_14))
- {
- gpio_exint_handler(GPIO_PINS_14);
- }
- if (RESET != exint_flag_get(EXINT_LINE_15))
- {
- gpio_exint_handler(GPIO_PINS_15);
- }
- rt_interrupt_leave();
-}
-
-int rt_hw_pin_init(void)
-{
-
-#ifdef GPIOA
- crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
-#endif
-#ifdef GPIOB
- crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
-#endif
-#ifdef GPIOC
- crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE);
-#endif
-#ifdef GPIOD
- crm_periph_clock_enable(CRM_GPIOD_PERIPH_CLOCK, TRUE);
-#endif
-#ifdef GPIOE
- crm_periph_clock_enable(CRM_GPIOE_PERIPH_CLOCK, TRUE);
-#endif
-#ifdef GPIOF
- crm_periph_clock_enable(CRM_GPIOF_PERIPH_CLOCK, TRUE);
-#endif
-#ifdef GPIOG
- crm_periph_clock_enable(CRM_GPIOG_PERIPH_CLOCK, TRUE);
-#endif
-
- crm_periph_clock_enable(CRM_IOMUX_PERIPH_CLOCK, TRUE);
-
- return rt_device_pin_register("pin", &_at32_pin_ops, RT_NULL);
-}
-
-INIT_BOARD_EXPORT(rt_hw_pin_init);
-
-#endif /* RT_USING_PIN */
diff --git a/bsp/at32/libraries/f413/rt_drivers/drv_hwtimer.c b/bsp/at32/libraries/f413/rt_drivers/drv_hwtimer.c
deleted file mode 100644
index 56bd666745..0000000000
--- a/bsp/at32/libraries/f413/rt_drivers/drv_hwtimer.c
+++ /dev/null
@@ -1,383 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-11 shelton first version
- */
-
-#include "board.h"
-#include "drv_hwtimer.h"
-
-//#define DRV_DEBUG
-#define LOG_TAG "drv.hwtimer"
-#include <drv_log.h>
-
-#ifdef BSP_USING_HWTIMER
-
-enum
-{
-#ifdef BSP_USING_HWTMR1
- TMR1_INDEX,
-#endif
-
-#ifdef BSP_USING_HWTMR2
- TMR2_INDEX,
-#endif
-
-#ifdef BSP_USING_HWTMR3
- TMR3_INDEX,
-#endif
-
-#ifdef BSP_USING_HWTMR4
- TMR4_INDEX,
-#endif
-
-#ifdef BSP_USING_HWTMR5
- TMR5_INDEX,
-#endif
-
-#ifdef BSP_USING_HW_TMR8
- TMR8_INDEX,
-#endif
-
-#ifdef BSP_USING_HWTMR9
- TMR9_INDEX,
-#endif
-
-#ifdef BSP_USING_HWTMR10
- TMR10_INDEX,
-#endif
-
-#ifdef BSP_USING_HWTMR11
- TMR11_INDEX,
-#endif
-};
-
-struct at32_hwtimer
-{
- rt_hwtimer_t tmr_device;
- tmr_type* tmr_x;
- IRQn_Type tmr_irqn;
- char *name;
-};
-
-static struct at32_hwtimer at32_hwtimer_obj[] =
-{
-#ifdef BSP_USING_HWTMR1
- TMR1_CONFIG,
-#endif
-
-#ifdef BSP_USING_HWTMR2
- TMR2_CONFIG,
-#endif
-
-#ifdef BSP_USING_HWTMR3
- TMR3_CONFIG,
-#endif
-
-#ifdef BSP_USING_HWTMR4
- TMR4_CONFIG,
-#endif
-
-#ifdef BSP_USING_HWTMR5
- TMR5_CONFIG,
-#endif
-
-#ifdef BSP_USING_HWTMR8
- TMR8_CONFIG,
-#endif
-
-#ifdef BSP_USING_HWTMR9
- TMR9_CONFIG,
-#endif
-
-#ifdef BSP_USING_HWTMR10
- TMR10_CONFIG,
-#endif
-
-#ifdef BSP_USING_HWTMR11
- TMR11_CONFIG,
-#endif
-};
-
-static void tmr_pclk_get(rt_uint32_t *pclk1_doubler, rt_uint32_t *pclk2_doubler)
-{
- crm_clocks_freq_type clocks_struct;
-
- *pclk1_doubler = 1;
- *pclk2_doubler = 1;
-
- crm_clocks_freq_get(&clocks_struct);
-
- if(clocks_struct.ahb_freq != clocks_struct.apb1_freq)
- {
- *pclk1_doubler = 2;
- }
-
- if(clocks_struct.ahb_freq != clocks_struct.apb2_freq)
- {
- *pclk2_doubler = 2;
- }
-}
-
-static void at32_timer_init(struct rt_hwtimer_device *timer, rt_uint32_t state)
-{
- crm_clocks_freq_type clocks_struct;
- rt_uint32_t pclk1_doubler = 0, pclk2_doubler = 0;
- rt_uint32_t prescaler_value = 0, tmr_clock = 0;
- tmr_type *tmr_x = RT_NULL;
- struct at32_hwtimer *tmr_device = RT_NULL;
-
- RT_ASSERT(timer != RT_NULL);
- if (state)
- {
- tmr_x = (tmr_type *)timer->parent.user_data;
- tmr_device = (struct at32_hwtimer *)timer;
-
- /* timer clock enable */
- at32_msp_hwtmr_init(tmr_x);
-
- /* get timer clock */
- tmr_pclk_get(&pclk1_doubler, &pclk2_doubler);
- crm_clocks_freq_get(&clocks_struct);
- if((tmr_x == TMR1) || (tmr_x == TMR8) || (tmr_x == TMR9) || (tmr_x == TMR10) || (tmr_x == TMR11))
- {
- tmr_clock = clocks_struct.apb2_freq * pclk2_doubler;
- }
- else
- {
- tmr_clock = clocks_struct.apb1_freq * pclk1_doubler;
- }
- /* set timer clock is 1mhz */
- prescaler_value = (uint32_t)(tmr_clock / 10000) - 1;
- tmr_base_init(tmr_x, 10000 - 1, prescaler_value);
- tmr_clock_source_div_set(tmr_x, TMR_CLOCK_DIV1);
- tmr_repetition_counter_set(tmr_x, 0);
-
- if (timer->info->cntmode == HWTIMER_CNTMODE_UP)
- {
- tmr_cnt_dir_set(tmr_x, TMR_COUNT_UP);
- }
- else
- {
- tmr_cnt_dir_set(tmr_x, TMR_COUNT_DOWN);
- }
-
- /* enable the timer global interrupt and clear flag */
- nvic_irq_enable(tmr_device->tmr_irqn, 2, 0);
-
- tmr_interrupt_enable(tmr_x, TMR_OVF_INT, TRUE);
- tmr_flag_clear(tmr_x, TMR_OVF_INT);
-
- LOG_D("%s init success", tmr_device->name);
- }
-}
-
-static rt_err_t at32_timer_start(rt_hwtimer_t *timer, rt_uint32_t pr, rt_hwtimer_mode_t opmode)
-{
- rt_err_t result = RT_EOK;
- tmr_type *tmr_x = RT_NULL;
-
- RT_ASSERT(timer != RT_NULL);
- tmr_x = (tmr_type *)timer->parent.user_data;
-
- /* set tmr_x count */
- tmr_counter_value_set(tmr_x, 0);
- /* set tmr_x period register */
- tmr_period_value_set(tmr_x, pr - 1);
-
- if (opmode == HWTIMER_MODE_ONESHOT)
- {
- /* set timer to one cycle mode */
- tmr_one_cycle_mode_enable(tmr_x, TRUE);
- }
- else
- {
- /* set timer to period mode */
- tmr_one_cycle_mode_enable(tmr_x, FALSE);
- }
-
- /* start timer */
- tmr_counter_enable(tmr_x, TRUE);
-
- return result;
-}
-
-static void at32_timer_stop(rt_hwtimer_t *timer)
-{
- tmr_type *tmr_x = RT_NULL;
-
- RT_ASSERT(timer != RT_NULL);
- tmr_x = (tmr_type *)timer->parent.user_data;
-
- /* stop timer */
- tmr_counter_enable(tmr_x, FALSE);
-
- /* set tmr_x count */
- tmr_counter_value_set(tmr_x, 0);
-}
-
-static rt_uint32_t at32_timer_counter_get(rt_hwtimer_t *timer)
-{
- tmr_type *tmr_x = RT_NULL;
-
- RT_ASSERT(timer != RT_NULL);
-
- tmr_x = (tmr_type *)timer->parent.user_data;
-
- return tmr_counter_value_get(tmr_x);
-}
-
-static rt_err_t at32_timer_ctrl(rt_hwtimer_t *timer, rt_uint32_t cmd, void *arg)
-{
- crm_clocks_freq_type clocks_struct;
- tmr_type *tmr_x = RT_NULL;
- rt_err_t result = RT_EOK;
- rt_uint32_t pclk1_doubler = 0, pclk2_doubler = 0, tmr_clock = 0;
-
- RT_ASSERT(timer != RT_NULL);
- RT_ASSERT(arg != RT_NULL);
-
- tmr_x = (tmr_type *)timer->parent.user_data;
-
- switch(cmd)
- {
- case HWTIMER_CTRL_FREQ_SET:
- {
- rt_uint32_t freq;
- rt_uint16_t val;
-
- /* get timer frequence */
- freq = *((rt_uint32_t *)arg);
-
- /* get timer clock */
- tmr_pclk_get(&pclk1_doubler, &pclk2_doubler);
- crm_clocks_freq_get(&clocks_struct);
- if((tmr_x == TMR1) || (tmr_x == TMR8) || (tmr_x == TMR9) || (tmr_x == TMR10) || (tmr_x == TMR11))
- {
- tmr_clock = clocks_struct.apb2_freq * pclk2_doubler;
- }
- else
- {
- tmr_clock = clocks_struct.apb1_freq * pclk1_doubler;
- }
- /* set div value */
- val = tmr_clock / freq;
-
- tmr_div_value_set(tmr_x, val - 1);
- tmr_event_sw_trigger(tmr_x, TMR_OVERFLOW_SWTRIG);
- }
- break;
- default:
- {
- result = -RT_ENOSYS;
- }
- break;
- }
-
- return result;
-}
-
-static const struct rt_hwtimer_info _info = TMR_DEV_INFO_CONFIG;
-static const struct rt_hwtimer_ops _ops =
-{
- .init = at32_timer_init,
- .start = at32_timer_start,
- .stop = at32_timer_stop,
- .count_get = at32_timer_counter_get,
- .control = at32_timer_ctrl,
-};
-
-#ifdef BSP_USING_HWTMR2
-void TMR2_GLOBAL_IRQHandler(void)
-{
- /* enter interrupt */
- rt_interrupt_enter();
-
- if(tmr_flag_get(TMR2, TMR_OVF_FLAG) == SET)
- {
- rt_device_hwtimer_isr(&at32_hwtimer_obj[TMR2_INDEX].tmr_device);
- tmr_flag_clear(TMR2, TMR_OVF_FLAG);
- }
- /* leave interrupt */
- rt_interrupt_leave();
-}
-#endif
-
-#ifdef BSP_USING_HWTMR3
-void TMR3_GLOBAL_IRQHandler(void)
-{
- /* enter interrupt */
- rt_interrupt_enter();
-
- if(tmr_flag_get(TMR3, TMR_OVF_FLAG) == SET)
- {
- rt_device_hwtimer_isr(&at32_hwtimer_obj[TMR3_INDEX].tmr_device);
- tmr_flag_clear(TMR3, TMR_OVF_FLAG);
- }
- /* leave interrupt */
- rt_interrupt_leave();
-}
-#endif
-
-#ifdef BSP_USING_HWTMR4
-void TMR4_GLOBAL_IRQHandler(void)
-{
- /* enter interrupt */
- rt_interrupt_enter();
-
- if(tmr_flag_get(TMR4, TMR_OVF_FLAG) == SET)
- {
- rt_device_hwtimer_isr(&at32_hwtimer_obj[TMR4_INDEX].tmr_device);
- tmr_flag_clear(TMR4, TMR_OVF_FLAG);
- }
- /* leave interrupt */
- rt_interrupt_leave();
-}
-#endif
-
-#ifdef BSP_USING_HWTMR5
-void TMR5_GLOBAL_IRQHandler(void)
-{
- /* enter interrupt */
- rt_interrupt_enter();
-
- if(tmr_flag_get(TMR5, TMR_OVF_FLAG) == SET)
- {
- rt_device_hwtimer_isr(&at32_hwtimer_obj[TMR5_INDEX].tmr_device);
- tmr_flag_clear(TMR5, TMR_OVF_FLAG);
- }
- /* leave interrupt */
- rt_interrupt_leave();
-}
-#endif
-
-static int rt_hw_hwtimer_init(void)
-{
- int i = 0;
- int result = RT_EOK;
-
- for (i = 0; i < sizeof(at32_hwtimer_obj) / sizeof(at32_hwtimer_obj[0]); i++)
- {
- at32_hwtimer_obj[i].tmr_device.info = &_info;
- at32_hwtimer_obj[i].tmr_device.ops = &_ops;
- if (rt_device_hwtimer_register(&at32_hwtimer_obj[i].tmr_device, at32_hwtimer_obj[i].name, at32_hwtimer_obj[i].tmr_x) == RT_EOK)
- {
- LOG_D("%s register success", at32_hwtimer_obj[i].name);
- }
- else
- {
- LOG_E("%s register failed", at32_hwtimer_obj[i].name);
- result = -RT_ERROR;
- }
- }
-
- return result;
-}
-
-INIT_BOARD_EXPORT(rt_hw_hwtimer_init);
-
-#endif /* BSP_USING_HWTIMER */
diff --git a/bsp/at32/libraries/f413/rt_drivers/drv_hwtimer.h b/bsp/at32/libraries/f413/rt_drivers/drv_hwtimer.h
deleted file mode 100644
index 624437f559..0000000000
--- a/bsp/at32/libraries/f413/rt_drivers/drv_hwtimer.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2020-03-16 Leo first version
- */
-
-#ifndef __TMR_CONFIG_H__
-#define __TMR_CONFIG_H__
-
-#include <rtthread.h>
-#include <drivers/hwtimer.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef TMR_DEV_INFO_CONFIG
-#define TMR_DEV_INFO_CONFIG \
- { \
- .maxfreq = 1000000, \
- .minfreq = 4000, \
- .maxcnt = 0xFFFF, \
- .cntmode = HWTIMER_CNTMODE_UP, \
- }
-#endif /* TIM_DEV_INFO_CONFIG */
-
-#ifdef BSP_USING_HWTMR2
-#ifndef TMR2_CONFIG
-#define TMR2_CONFIG \
- { \
- .tmr_x = TMR2, \
- .tmr_irqn = TMR2_GLOBAL_IRQn, \
- .name = "timer2", \
- }
-#endif /* TMR2_CONFIG */
-#endif /* BSP_USING_HWTMR2 */
-
-#ifdef BSP_USING_HWTMR3
-#ifndef TMR3_CONFIG
-#define TMR3_CONFIG \
- { \
- .tmr_x = TMR3, \
- .tmr_irqn = TMR3_GLOBAL_IRQn, \
- .name = "timer3", \
- }
-#endif /* TMR3_CONFIG */
-#endif /* BSP_USING_HWTMR3 */
-
-#ifdef BSP_USING_HWTMR4
-#ifndef TMR4_CONFIG
-#define TMR4_CONFIG \
- { \
- .tmr_x = TMR4, \
- .tmr_irqn = TMR4_GLOBAL_IRQn, \
- .name = "timer4", \
- }
-#endif /* TMR4_CONFIG */
-#endif /* BSP_USING_HWTMR4 */
-
-#ifdef BSP_USING_HWTMR5
-#ifndef TMR5_CONFIG
-#define TMR5_CONFIG \
- { \
- .tmr_x = TMR5, \
- .tmr_irqn = TMR5_GLOBAL_IRQn, \
- .name = "timer5", \
- }
-#endif /* TMR5_CONFIG */
-#endif /* BSP_USING_HWTMR5 */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __TMR_CONFIG_H__ */
-
diff --git a/bsp/at32/libraries/f413/rt_drivers/drv_log.h b/bsp/at32/libraries/f413/rt_drivers/drv_log.h
deleted file mode 100644
index 45345aa150..0000000000
--- a/bsp/at32/libraries/f413/rt_drivers/drv_log.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-21 shelton first version
- */
-
-/*
- * NOTE: DO NOT include this file on the header file.
- */
-
-#ifndef LOG_TAG
-#define DBG_TAG "drv"
-#else
-#define DBG_TAG LOG_TAG
-#endif /* LOG_TAG */
-
-#ifdef DRV_DEBUG
-#define DBG_LVL DBG_LOG
-#else
-#define DBG_LVL DBG_INFO
-#endif /* DRV_DEBUG */
-
-#include <rtdbg.h>
diff --git a/bsp/at32/libraries/f413/rt_drivers/drv_pwm.c b/bsp/at32/libraries/f413/rt_drivers/drv_pwm.c
deleted file mode 100644
index c0d90be78a..0000000000
--- a/bsp/at32/libraries/f413/rt_drivers/drv_pwm.c
+++ /dev/null
@@ -1,483 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-10 shelton first version
- */
-
-#include "board.h"
-
-#ifdef RT_USING_PWM
-#include "drv_pwm.h"
-#include <drivers/rt_drv_pwm.h>
-
-//#define DRV_DEBUG
-#define LOG_TAG "drv.pwm"
-#include <drv_log.h>
-
-#define MAX_PERIOD 65535
-
-struct rt_device_pwm pwm_device;
-
-struct at32_pwm
-{
- struct rt_device_pwm pwm_device;
- tmr_type* tmr_x;
- rt_uint8_t channel;
- char *name;
-};
-
-enum
-{
-#ifdef BSP_USING_PWM1
- PWM1_INDEX,
-#endif
-#ifdef BSP_USING_PWM2
- PWM2_INDEX,
-#endif
-#ifdef BSP_USING_PWM3
- PWM3_INDEX,
-#endif
-#ifdef BSP_USING_PWM4
- PWM4_INDEX,
-#endif
-#ifdef BSP_USING_PWM5
- PWM5_INDEX,
-#endif
-#ifdef BSP_USING_PWM8
- PWM8_INDEX,
-#endif
-#ifdef BSP_USING_PWM9
- PWM9_INDEX,
-#endif
-#ifdef BSP_USING_PWM10
- PWM10_INDEX,
-#endif
-#ifdef BSP_USING_PWM11
- PWM11_INDEX,
-#endif
-};
-
-static struct at32_pwm at32_pwm_obj[] =
-{
-#ifdef BSP_USING_PWM1
- PWM1_CONFIG,
-#endif
-
-#ifdef BSP_USING_PWM2
- PWM2_CONFIG,
-#endif
-
-#ifdef BSP_USING_PWM3
- PWM3_CONFIG,
-#endif
-
-#ifdef BSP_USING_PWM4
- PWM4_CONFIG,
-#endif
-
-#ifdef BSP_USING_PWM5
- PWM5_CONFIG,
-#endif
-
-#ifdef BSP_USING_PWM8
- PWM8_CONFIG,
-#endif
-
-#ifdef BSP_USING_PWM9
- PWM9_CONFIG,
-#endif
-
-#ifdef BSP_USING_PWM10
- PWM10_CONFIG,
-#endif
-
-#ifdef BSP_USING_PWM11
- PWM11_CONFIG,
-#endif
-};
-
-static rt_err_t drv_pwm_control(struct rt_device_pwm *device, int cmd, void *arg);
-static struct rt_pwm_ops drv_ops =
-{
- drv_pwm_control
-};
-
-static void tmr_pclk_get(rt_uint32_t *pclk1_doubler, rt_uint32_t *pclk2_doubler)
-{
- crm_clocks_freq_type clocks_struct;
-
- *pclk1_doubler = 1;
- *pclk2_doubler = 1;
-
- crm_clocks_freq_get(&clocks_struct);
-
- if(clocks_struct.ahb_freq != clocks_struct.apb1_freq)
- {
- *pclk1_doubler = 2;
- }
-
- if(clocks_struct.ahb_freq != clocks_struct.apb2_freq)
- {
- *pclk2_doubler = 2;
- }
-}
-
-static rt_err_t drv_pwm_enable(tmr_type* tmr_x, struct rt_pwm_configuration *configuration, rt_bool_t enable)
-{
- /* get the value of channel */
- rt_uint32_t channel = configuration->channel;
-
- if (!configuration->complementary)
- {
- if (!enable)
- {
- if(channel == 1)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_1, FALSE);
- }
- else if(channel == 2)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_2, FALSE);
- }
- else if(channel == 3)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_3, FALSE);
- }
- else if(channel == 4)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_4, FALSE);
- }
- }
- else
- {
- if(channel == 1)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_1, TRUE);
- }
- else if(channel == 2)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_2, TRUE);
- }
- else if(channel == 3)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_3, TRUE);
- }
- else if(channel == 4)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_4, TRUE);
- }
- }
- }
- else
- {
- if (!enable)
- {
- if(channel == 1)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_1C, FALSE);
- }
- else if(channel == 2)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_2C, FALSE);
- }
- else if(channel == 3)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_3C, FALSE);
- }
- }
- else
- {
- if(channel == 1)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_1C, TRUE);
- }
- else if(channel == 2)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_2C, TRUE);
- }
- else if(channel == 3)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_3C, TRUE);
- }
- }
- }
-
- /* tmr_x enable counter */
- tmr_counter_enable(tmr_x, TRUE);
-
- return RT_EOK;
-}
-
-static rt_err_t drv_pwm_get(tmr_type* tmr_x, struct rt_pwm_configuration *configuration)
-{
- crm_clocks_freq_type clocks_struct;
- rt_uint32_t pr, div, c1dt, c2dt, c3dt, c4dt;
- rt_uint32_t pclk1_doubler = 0, pclk2_doubler = 0;
- rt_uint32_t channel = configuration->channel;
- rt_uint64_t tmr_clock;
-
- pr = tmr_x->pr;
- div = tmr_x->div;
- c1dt = tmr_x->c1dt;
- c2dt = tmr_x->c2dt;
- c3dt = tmr_x->c3dt;
- c4dt = tmr_x->c4dt;
-
- tmr_pclk_get(&pclk1_doubler, &pclk2_doubler);
-
- crm_clocks_freq_get(&clocks_struct);
-
- if((tmr_x == TMR1) || (tmr_x == TMR8) || (tmr_x == TMR9) || (tmr_x == TMR10) || (tmr_x == TMR11))
- {
- tmr_clock = clocks_struct.apb2_freq * pclk2_doubler;
- }
- else
- {
- tmr_clock = clocks_struct.apb1_freq * pclk1_doubler;
- }
-
- /* convert nanosecond to frequency and duty cycle. */
- tmr_clock /= 1000000UL;
- configuration->period = (pr + 1) * (div + 1) * 1000UL / tmr_clock;
-
- if(channel == 1)
- configuration->pulse = (c1dt) * (div + 1) * 1000UL / tmr_clock;
- if(channel == 2)
- configuration->pulse = (c2dt) * (div + 1) * 1000UL / tmr_clock;
- if(channel == 3)
- configuration->pulse = (c3dt) * (div + 1) * 1000UL / tmr_clock;
- if(channel == 4)
- configuration->pulse = (c4dt) * (div + 1) * 1000UL / tmr_clock;
-
- return RT_EOK;
-}
-
-static rt_err_t drv_pwm_set(tmr_type* tmr_x, struct rt_pwm_configuration *configuration)
-{
- crm_clocks_freq_type clocks_struct;
- tmr_output_config_type tmr_oc_config_struct;
- tmr_channel_select_type channel_select;
- rt_uint32_t period, pulse, channel, tmr_clock;
- rt_uint32_t pclk1_doubler = 0, pclk2_doubler = 0;
- rt_uint64_t psc;
-
- /* init timer pin and enable clock */
- at32_msp_tmr_init(tmr_x);
-
- tmr_pclk_get(&pclk1_doubler, &pclk2_doubler);
-
- crm_clocks_freq_get(&clocks_struct);
-
- if((tmr_x == TMR1) || (tmr_x == TMR8) || (tmr_x == TMR9) || (tmr_x == TMR10) || (tmr_x == TMR11))
- {
- tmr_clock = clocks_struct.apb2_freq * pclk2_doubler;
- }
- else
- {
- tmr_clock = clocks_struct.apb1_freq * pclk1_doubler;
- }
-
- /* convert nanosecond to frequency and duty cycle. */
- tmr_clock /= 1000000UL;
- /* calculate pwm period */
- period = (unsigned long long)configuration->period * tmr_clock / 1000ULL;;
- psc = period / MAX_PERIOD + 1;
- period = period / psc;
- /* calculate pulse width */
- pulse = (unsigned long long)configuration->pulse * tmr_clock / psc / 1000ULL;
- /* get channel parameter */
- channel = configuration->channel;
-
- /* tmr base init */
- tmr_base_init(tmr_x, period - 1, psc - 1);
- tmr_clock_source_div_set(tmr_x, TMR_CLOCK_DIV1);
-
- /* pwm mode configuration */
- tmr_output_default_para_init(&tmr_oc_config_struct);
- /* config pwm mode */
- tmr_oc_config_struct.oc_mode = TMR_OUTPUT_CONTROL_PWM_MODE_A;
-
- if (!configuration->complementary)
- {
- tmr_oc_config_struct.oc_idle_state = FALSE;
- tmr_oc_config_struct.oc_output_state = FALSE;
- tmr_oc_config_struct.oc_polarity = TMR_OUTPUT_ACTIVE_HIGH;
- }
- else
- {
- tmr_oc_config_struct.occ_idle_state = FALSE;
- tmr_oc_config_struct.occ_output_state = FALSE;
- tmr_oc_config_struct.occ_polarity = TMR_OUTPUT_ACTIVE_HIGH;
- }
-
- if(channel == 1)
- {
- channel_select = TMR_SELECT_CHANNEL_1;
- }
- else if(channel == 2)
- {
- channel_select = TMR_SELECT_CHANNEL_2;
- }
- else if(channel == 3)
- {
- channel_select = TMR_SELECT_CHANNEL_3;
- }
- else if(channel == 4)
- {
- channel_select = TMR_SELECT_CHANNEL_4;
- }
-
- /* config tmr pwm output */
- tmr_output_channel_config(tmr_x, channel_select, &tmr_oc_config_struct);
- tmr_output_channel_buffer_enable(tmr_x, channel_select, TRUE);
- tmr_channel_value_set(tmr_x, channel_select, pulse);
- /* enable tmr period buffer */
- tmr_period_buffer_enable(tmr_x, TRUE);
- /* enable output */
- tmr_output_enable(tmr_x, TRUE);
-
- return RT_EOK;
-}
-
-static rt_err_t drv_pwm_control(struct rt_device_pwm *device, int cmd, void *arg)
-{
- struct rt_pwm_configuration *configuration = (struct rt_pwm_configuration *)arg;
- tmr_type *tmr_x = (tmr_type *)device->parent.user_data;
-
- switch (cmd)
- {
- case PWMN_CMD_ENABLE:
- configuration->complementary = RT_TRUE;
- case PWM_CMD_ENABLE:
- return drv_pwm_enable(tmr_x, configuration, RT_TRUE);
- case PWMN_CMD_DISABLE:
- configuration->complementary = RT_FALSE;
- case PWM_CMD_DISABLE:
- return drv_pwm_enable(tmr_x, configuration, RT_FALSE);
- case PWM_CMD_SET:
- return drv_pwm_set(tmr_x, configuration);
- case PWM_CMD_GET:
- return drv_pwm_get(tmr_x, configuration);
- default:
- return RT_EINVAL;
- }
-}
-
-static void pwm_get_channel(void)
-{
-#ifdef BSP_USING_PWM1_CH1
- at32_pwm_obj[PWM1_INDEX].channel = 1;
-#endif
-#ifdef BSP_USING_PWM1_CH2
- at32_pwm_obj[PWM1_INDEX].channel = 2;
-#endif
-#ifdef BSP_USING_PWM1_CH3
- at32_pwm_obj[PWM1_INDEX].channel = 3;
-#endif
-#ifdef BSP_USING_PWM1_CH4
- at32_pwm_obj[PWM1_INDEX].channel = 4;
-#endif
-#ifdef BSP_USING_PWM2_CH1
- at32_pwm_obj[PWM2_INDEX].channel = 1;
-#endif
-#ifdef BSP_USING_PWM2_CH2
- at32_pwm_obj[PWM2_INDEX].channel = 2;
-#endif
-#ifdef BSP_USING_PWM2_CH3
- at32_pwm_obj[PWM2_INDEX].channel = 3;
-#endif
-#ifdef BSP_USING_PWM2_CH4
- at32_pwm_obj[PWM2_INDEX].channel = 4;
-#endif
-#ifdef BSP_USING_PWM3_CH1
- at32_pwm_obj[PWM3_INDEX].channel = 1;
-#endif
-#ifdef BSP_USING_PWM3_CH2
- at32_pwm_obj[PWM3_INDEX].channel = 2;
-#endif
-#ifdef BSP_USING_PWM3_CH3
- at32_pwm_obj[PWM3_INDEX].channel = 3;
-#endif
-#ifdef BSP_USING_PWM3_CH4
- at32_pwm_obj[PWM3_INDEX].channel = 4;
-#endif
-#ifdef BSP_USING_PWM4_CH1
- at32_pwm_obj[PWM4_INDEX].channel = 1;
-#endif
-#ifdef BSP_USING_PWM4_CH2
- at32_pwm_obj[PWM4_INDEX].channel = 2;
-#endif
-#ifdef BSP_USING_PWM4_CH3
- at32_pwm_obj[PWM4_INDEX].channel = 3;
-#endif
-#ifdef BSP_USING_PWM4_CH4
- at32_pwm_obj[PWM4_INDEX].channel = 4;
-#endif
-#ifdef BSP_USING_PWM5_CH1
- at32_pwm_obj[PWM5_INDEX].channel = 1;
-#endif
-#ifdef BSP_USING_PWM5_CH2
- at32_pwm_obj[PWM5_INDEX].channel = 2;
-#endif
-#ifdef BSP_USING_PWM5_CH3
- at32_pwm_obj[PWM5_INDEX].channel = 3;
-#endif
-#ifdef BSP_USING_PWM5_CH4
- at32_pwm_obj[PWM5_INDEX].channel = 4;
-#endif
-#ifdef BSP_USING_PWM8_CH1
- at32_pwm_obj[PWM8_INDEX].channel = 1;
-#endif
-#ifdef BSP_USING_PWM8_CH2
- at32_pwm_obj[PWM8_INDEX].channel = 2;
-#endif
-#ifdef BSP_USING_PWM8_CH3
- at32_pwm_obj[PWM8_INDEX].channel = 3;
-#endif
-#ifdef BSP_USING_PWM8_CH4
- at32_pwm_obj[PWM8_INDEX].channel = 4;
-#endif
-#ifdef BSP_USING_PWM9_CH1
- at32_pwm_obj[PWM9_INDEX].channel = 1;
-#endif
-#ifdef BSP_USING_PWM9_CH2
- at32_pwm_obj[PWM9_INDEX].channel = 2;
-#endif
-#ifdef BSP_USING_PWM9_CH3
- at32_pwm_obj[PWM9_INDEX].channel = 3;
-#endif
-#ifdef BSP_USING_PWM9_CH4
- at32_pwm_obj[PWM9_INDEX].channel = 4;
-#endif
-}
-
-static int rt_hw_pwm_init(void)
-{
- int i = 0;
- int result = RT_EOK;
-
- pwm_get_channel();
-
- for(i = 0; i < sizeof(at32_pwm_obj) / sizeof(at32_pwm_obj[0]); i++)
- {
- if(rt_device_pwm_register(&at32_pwm_obj[i].pwm_device, at32_pwm_obj[i].name, &drv_ops, at32_pwm_obj[i].tmr_x) == RT_EOK)
- {
- LOG_D("%s register success", at32_pwm_obj[i].name);
- }
- else
- {
- LOG_D("%s register failed", at32_pwm_obj[i].name);
- result = -RT_ERROR;
- }
- }
-
- return result;
-}
-
-INIT_BOARD_EXPORT(rt_hw_pwm_init);
-
-#endif /* RT_USING_PWM */
diff --git a/bsp/at32/libraries/f413/rt_drivers/drv_pwm.h b/bsp/at32/libraries/f413/rt_drivers/drv_pwm.h
deleted file mode 100644
index bd0ff1eaca..0000000000
--- a/bsp/at32/libraries/f413/rt_drivers/drv_pwm.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-10 leo first version
- */
-
-#ifndef __PWM_CONFIG_H__
-#define __PWM_CONFIG_H__
-
-#include <rtthread.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef BSP_USING_PWM1
-#ifndef PWM1_CONFIG
-#define PWM1_CONFIG \
- { \
- .tmr_x = TMR1, \
- .name = "pwm1", \
- .channel = 0 \
- }
-#endif /* PWM1_CONFIG */
-#endif /* BSP_USING_PWM1 */
-
-#ifdef BSP_USING_PWM2
-#ifndef PWM2_CONFIG
-#define PWM2_CONFIG \
- { \
- .tmr_x = TMR2, \
- .name = "pwm2", \
- .channel = 0 \
- }
-#endif /* PWM2_CONFIG */
-#endif /* BSP_USING_PWM2 */
-
-#ifdef BSP_USING_PWM3
-#ifndef PWM3_CONFIG
-#define PWM3_CONFIG \
- { \
- .tmr_x = TMR3, \
- .name = "pwm3", \
- .channel = 0 \
- }
-#endif /* PWM3_CONFIG */
-#endif /* BSP_USING_PWM3 */
-
-#ifdef BSP_USING_PWM4
-#ifndef PWM4_CONFIG
-#define PWM4_CONFIG \
- { \
- .tmr_x = TMR4, \
- .name = "pwm4", \
- .channel = 0 \
- }
-#endif /* PWM4_CONFIG */
-#endif /* BSP_USING_PWM4 */
-
-#ifdef BSP_USING_PWM5
-#ifndef PWM5_CONFIG
-#define PWM5_CONFIG \
- { \
- .tmr_x = TMR5, \
- .name = "pwm5", \
- .channel = 0 \
- }
-#endif /* PWM5_CONFIG */
-#endif /* BSP_USING_PWM5 */
-
-#ifdef BSP_USING_PWM8
-#ifndef PWM8_CONFIG
-#define PWM8_CONFIG \
- { \
- .tmr_x = TMR8, \
- .name = "pwm8", \
- .channel = 12 \
- }
-#endif /* PWM8_CONFIG */
-#endif /* BSP_USING_PWM8 */
-
-#ifdef BSP_USING_PWM9
-#ifndef PWM9_CONFIG
-#define PWM9_CONFIG \
- { \
- .tmr_x = TMR9, \
- .name = "pwm9", \
- .channel = 0 \
- }
-#endif /* PWM9_CONFIG */
-#endif /* BSP_USING_PWM9 */
-
-#ifdef BSP_USING_PWM10
-#ifndef PWM10_CONFIG
-#define PWM10_CONFIG \
- { \
- .tmr_x = TMR10, \
- .name = "pwm10", \
- .channel = 0 \
- }
-#endif /* PWM10_CONFIG */
-#endif /* BSP_USING_PWM10 */
-
-#ifdef BSP_USING_PWM11
-#ifndef PWM11_CONFIG
-#define PWM11_CONFIG \
- { \
- .tmr_x = TMR11, \
- .name = "pwm11", \
- .channel = 0 \
- }
-#endif /* PWM11_CONFIG */
-#endif /* BSP_USING_PWM11 */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __PWM_CONFIG_H__ */
diff --git a/bsp/at32/libraries/f413/rt_drivers/drv_rtc.c b/bsp/at32/libraries/f413/rt_drivers/drv_rtc.c
deleted file mode 100644
index 6589d9fd44..0000000000
--- a/bsp/at32/libraries/f413/rt_drivers/drv_rtc.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-10 shelton first version
- */
-
-#include <rtthread.h>
-#include <rtdevice.h>
-#include <sys/time.h>
-#include "board.h"
-
-#ifdef BSP_USING_RTC
-
-#ifndef BKP_DR1
-#define BKP_DR1 RT_NULL
-#endif
-
-//#define DRV_DEBUG
-#define LOG_TAG "drv.rtc"
-#include <drv_log.h>
-
-#define BKUP_REG_DATA 0xA5A5
-
-static time_t get_rtc_timestamp(void)
-{
- return rtc_counter_get();
-}
-
-static rt_err_t set_rtc_time_stamp(time_t time_stamp)
-{
- /* set the rtc counter value */
- rtc_counter_set(time_stamp);
- /* wait until last write operation on rtc registers has finished */
- rtc_wait_config_finish();
- LOG_D("set rtc time.");
-
- bpr_data_write(BPR_DATA1, BKUP_REG_DATA);
- return RT_EOK;
-}
-
-static rt_err_t rt_rtc_config(void)
-{
- /* allow access to pattery powered domain */
- pwc_battery_powered_domain_access(TRUE);
-
-#ifdef BSP_RTC_USING_LICK
- crm_rtc_clock_select(CRM_RTC_CLOCK_LICK);
-#else
- crm_rtc_clock_select(CRM_RTC_CLOCK_LEXT);
-#endif /* BSP_RTC_USING_LICK */
- /* enable rtc */
- crm_rtc_clock_enable(TRUE);
-
- /* wait for rtc registers update finish */
- rtc_wait_update_finish();
- /* wait until last write operation on rtc registers has finished */
- rtc_wait_config_finish();
-
- if (bpr_data_read(BPR_DATA1) != BKUP_REG_DATA)
- {
- LOG_I("RTC hasn't been configured, please use <date> command to config.");
- /* set rtc divider: set rtc period to 1sec */
- rtc_divider_set(32767);
- /* wait until last write operation on rtc registers has finished */
- rtc_wait_config_finish();
- }
- return RT_EOK;
-}
-
-static rt_err_t _rtc_init(void)
-{
- crm_periph_clock_enable(CRM_PWC_PERIPH_CLOCK, TRUE);
- crm_periph_clock_enable(CRM_BPR_PERIPH_CLOCK, TRUE);
-
-#ifdef BSP_RTC_USING_LICK
- crm_clock_source_enable(CRM_CLOCK_SOURCE_LICK, TRUE);
- while(crm_flag_get(CRM_LICK_STABLE_FLAG) == RESET);
-#else
- crm_periph_clock_enable(CRM_PWC_PERIPH_CLOCK, TRUE);
- pwc_battery_powered_domain_access(TRUE);
- crm_clock_source_enable(CRM_CLOCK_SOURCE_LEXT, TRUE);
- while(crm_flag_get(CRM_LEXT_STABLE_FLAG) == RESET);
-#endif /* BSP_RTC_USING_LICK */
- if (rt_rtc_config() != RT_EOK)
- {
- LOG_E("rtc init failed.");
- return -RT_ERROR;
- }
- return RT_EOK;
-}
-
-static rt_err_t _rtc_get_secs(void *args)
-{
- *(rt_uint32_t *)args = get_rtc_timestamp();
- LOG_D("RTC: get rtc_time %x\n", *(rt_uint32_t *)args);
-
- return RT_EOK;
-}
-
-static rt_err_t _rtc_set_secs(void *args)
-{
- rt_err_t result = RT_EOK;
-
- if (set_rtc_time_stamp(*(rt_uint32_t *)args))
- {
- result = -RT_ERROR;
- }
- LOG_D("RTC: set rtc_time %x\n", *(rt_uint32_t *)args);
-
- return result;
-}
-
-static const struct rt_rtc_ops _rtc_ops =
-{
- _rtc_init,
- _rtc_get_secs,
- _rtc_set_secs,
- RT_NULL,
- RT_NULL,
- RT_NULL,
- RT_NULL,
-};
-
-static rt_rtc_dev_t at32_rtc_dev;
-
-int rt_hw_rtc_init(void)
-{
- rt_err_t result;
- at32_rtc_dev.ops = &_rtc_ops;
- result = rt_hw_rtc_register(&at32_rtc_dev, "rtc", RT_DEVICE_FLAG_RDWR,RT_NULL);
- if (result != RT_EOK)
- {
- LOG_E("rtc register err code: %d", result);
- return result;
- }
- LOG_D("rtc init success");
- return RT_EOK;
-}
-
-INIT_DEVICE_EXPORT(rt_hw_rtc_init);
-
-#endif /* BSP_USING_RTC */
diff --git a/bsp/at32/libraries/f413/rt_drivers/drv_sdio.c b/bsp/at32/libraries/f413/rt_drivers/drv_sdio.c
deleted file mode 100644
index 2da45546d9..0000000000
--- a/bsp/at32/libraries/f413/rt_drivers/drv_sdio.c
+++ /dev/null
@@ -1,823 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-08 shelton first version
- */
-
-#include "board.h"
-#include "drv_sdio.h"
-
-#ifdef BSP_USING_SDIO
-#if !defined (BSP_USING_SDIO1)
-#error "Please define at least one SDIOx"
-#endif
-
-//#define DRV_DEBUG
-#define LOG_TAG "drv.sdio"
-#include <drv_log.h>
-
-static struct at32_sdio_config sdio_config = SDIO_BUS_CONFIG;
-static struct at32_sdio_class sdio_obj;
-static struct rt_mmcsd_host *host;
-
-#define SDIO_TX_RX_COMPLETE_TIMEOUT_LOOPS (100000)
-
-#define RT_HW_SDIO_LOCK(_sdio) rt_mutex_take(&_sdio->mutex, RT_WAITING_FOREVER)
-#define RT_HW_SDIO_UNLOCK(_sdio) rt_mutex_release(&_sdio->mutex);
-
-struct sdio_pkg
-{
- struct rt_mmcsd_cmd *cmd;
- void *buff;
- rt_uint32_t flag;
-};
-
-struct rt_hw_sdio
-{
- struct rt_mmcsd_host *host;
- struct at32_sdio_des sdio_des;
- struct rt_event event;
- struct rt_mutex mutex;
- struct sdio_pkg *pkg;
-};
-
-ALIGN(SDIO_ALIGN_LEN)
-static rt_uint8_t cache_buf[SDIO_BUFF_SIZE];
-
-static rt_uint32_t at32_sdio_clk_get(struct at32_sdio *hw_sdio)
-{
- return SDIO_CLOCK_FREQ;
-}
-
-/**
- * @brief this function get order from sdio.
- * @param data
- * @retval sdio order
- */
-static int get_order(rt_uint32_t data)
-{
- int order = 0;
-
- switch (data)
- {
- case 1:
- order = 0;
- break;
- case 2:
- order = 1;
- break;
- case 4:
- order = 2;
- break;
- case 8:
- order = 3;
- break;
- case 16:
- order = 4;
- break;
- case 32:
- order = 5;
- break;
- case 64:
- order = 6;
- break;
- case 128:
- order = 7;
- break;
- case 256:
- order = 8;
- break;
- case 512:
- order = 9;
- break;
- case 1024:
- order = 10;
- break;
- case 2048:
- order = 11;
- break;
- case 4096:
- order = 12;
- break;
- case 8192:
- order = 13;
- break;
- case 16384:
- order = 14;
- break;
- default :
- order = 0;
- break;
- }
-
- return order;
-}
-
-/**
- * @brief this function wait sdio completed.
- * @param sdio rt_hw_sdio
- * @retval none
- */
-static void rt_hw_sdio_wait_completed(struct rt_hw_sdio *sdio)
-{
- rt_uint32_t status;
- struct rt_mmcsd_cmd *cmd = sdio->pkg->cmd;
- struct rt_mmcsd_data *data = cmd->data;
- struct at32_sdio *hw_sdio = sdio->sdio_des.hw_sdio;
-
- if (rt_event_recv(&sdio->event, 0xffffffff, RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR,
- rt_tick_from_millisecond(5000), &status) != RT_EOK)
- {
- LOG_E("wait completed timeout");
- cmd->err = -RT_ETIMEOUT;
- return;
- }
-
- if (sdio->pkg == RT_NULL)
- {
- return;
- }
-
- cmd->resp[0] = hw_sdio->resp1;
- cmd->resp[1] = hw_sdio->resp2;
- cmd->resp[2] = hw_sdio->resp3;
- cmd->resp[3] = hw_sdio->resp4;
-
- if (status & HW_SDIO_ERRORS)
- {
- if ((status & HW_SDIO_IT_CCRCFAIL) && (resp_type(cmd) & (RESP_R3 | RESP_R4)))
- {
- cmd->err = RT_EOK;
- }
- else
- {
- cmd->err = -RT_ERROR;
- }
-
- if (status & HW_SDIO_IT_CTIMEOUT)
- {
- cmd->err = -RT_ETIMEOUT;
- }
-
- if (status & HW_SDIO_IT_DCRCFAIL)
- {
- data->err = -RT_ERROR;
- }
-
- if (status & HW_SDIO_IT_DTIMEOUT)
- {
- data->err = -RT_ETIMEOUT;
- }
-
- if (cmd->err == RT_EOK)
- {
- LOG_D("sta:0x%08X [%08X %08X %08X %08X]", status, cmd->resp[0], cmd->resp[1], cmd->resp[2], cmd->resp[3]);
- }
- else
- {
- LOG_D("err:0x%08x, %s%s%s%s%s%s%s cmd:%d arg:0x%08x rw:%c len:%d blksize:%d",
- status,
- status & HW_SDIO_IT_CCRCFAIL ? "CCRCFAIL " : "",
- status & HW_SDIO_IT_DCRCFAIL ? "DCRCFAIL " : "",
- status & HW_SDIO_IT_CTIMEOUT ? "CTIMEOUT " : "",
- status & HW_SDIO_IT_DTIMEOUT ? "DTIMEOUT " : "",
- status & HW_SDIO_IT_TXUNDERR ? "TXUNDERR " : "",
- status & HW_SDIO_IT_RXOVERR ? "RXOVERR " : "",
- status == 0 ? "NULL" : "",
- cmd->cmd_code,
- cmd->arg,
- data ? (data->flags & DATA_DIR_WRITE ? 'w' : 'r') : '-',
- data ? data->blks * data->blksize : 0,
- data ? data->blksize : 0
- );
- }
- }
- else
- {
- cmd->err = RT_EOK;
- LOG_D("sta:0x%08X [%08X %08X %08X %08X]", status, cmd->resp[0], cmd->resp[1], cmd->resp[2], cmd->resp[3]);
- }
-}
-
-/**
- * @brief this function transfer data by dma.
- * @param sdio rt_hw_sdio
- * @param pkg sdio package
- * @retval none
- */
-static void rt_hw_sdio_transfer_by_dma(struct rt_hw_sdio *sdio, struct sdio_pkg *pkg)
-{
- struct rt_mmcsd_data *data;
- int size;
- void *buff;
- struct at32_sdio *hw_sdio;
-
- if ((RT_NULL == pkg) || (RT_NULL == sdio))
- {
- LOG_E("rt_hw_sdio_transfer_by_dma invalid args");
- return;
- }
-
- data = pkg->cmd->data;
- if (RT_NULL == data)
- {
- LOG_E("rt_hw_sdio_transfer_by_dma invalid args");
- return;
- }
-
- buff = pkg->buff;
- if (RT_NULL == buff)
- {
- LOG_E("rt_hw_sdio_transfer_by_dma invalid args");
- return;
- }
- hw_sdio = sdio->sdio_des.hw_sdio;
- size = data->blks * data->blksize;
-
- if (data->flags & DATA_DIR_WRITE)
- {
- sdio->sdio_des.txconfig((rt_uint32_t *)buff, (rt_uint32_t *)&hw_sdio->fifo, size);
- hw_sdio->dctrl |= HW_SDIO_DMA_ENABLE;
- }
- else if (data->flags & DATA_DIR_READ)
- {
- sdio->sdio_des.rxconfig((rt_uint32_t *)&hw_sdio->fifo, (rt_uint32_t *)buff, size);
- hw_sdio->dctrl |= HW_SDIO_DMA_ENABLE | HW_SDIO_DPSM_ENABLE;
- }
-}
-
-/**
- * @brief this function send command.
- * @param sdio rt_hw_sdio
- * @param pkg sdio package
- * @retval none
- */
-static void rt_hw_sdio_send_command(struct rt_hw_sdio *sdio, struct sdio_pkg *pkg)
-{
- struct rt_mmcsd_cmd *cmd = pkg->cmd;
- struct rt_mmcsd_data *data = cmd->data;
- struct at32_sdio *hw_sdio = sdio->sdio_des.hw_sdio;
- rt_uint32_t reg_cmd;
-
- /* save pkg */
- sdio->pkg = pkg;
-
- LOG_D("CMD:%d ARG:0x%08x RES:%s%s%s%s%s%s%s%s%s rw:%c len:%d blksize:%d",
- cmd->cmd_code,
- cmd->arg,
- resp_type(cmd) == RESP_NONE ? "NONE" : "",
- resp_type(cmd) == RESP_R1 ? "R1" : "",
- resp_type(cmd) == RESP_R1B ? "R1B" : "",
- resp_type(cmd) == RESP_R2 ? "R2" : "",
- resp_type(cmd) == RESP_R3 ? "R3" : "",
- resp_type(cmd) == RESP_R4 ? "R4" : "",
- resp_type(cmd) == RESP_R5 ? "R5" : "",
- resp_type(cmd) == RESP_R6 ? "R6" : "",
- resp_type(cmd) == RESP_R7 ? "R7" : "",
- data ? (data->flags & DATA_DIR_WRITE ? 'w' : 'r') : '-',
- data ? data->blks * data->blksize : 0,
- data ? data->blksize : 0
- );
-
- /* config cmd reg */
- reg_cmd = cmd->cmd_code | HW_SDIO_CPSM_ENABLE;
- if (resp_type(cmd) == RESP_NONE)
- reg_cmd |= HW_SDIO_RESPONSE_NO;
- else if (resp_type(cmd) == RESP_R2)
- reg_cmd |= HW_SDIO_RESPONSE_LONG;
- else
- reg_cmd |= HW_SDIO_RESPONSE_SHORT;
-
- /* config data reg */
- if (data != RT_NULL)
- {
- rt_uint32_t dir = 0;
- rt_uint32_t size = data->blks * data->blksize;
- int order;
-
- hw_sdio->dctrl = 0;
- hw_sdio->dtimer = HW_SDIO_DATATIMEOUT;
- hw_sdio->dlen = size;
- order = get_order(data->blksize);
- dir = (data->flags & DATA_DIR_READ) ? HW_SDIO_TO_HOST : 0;
- hw_sdio->dctrl = /* HW_SDIO_IO_ENABLE | */ (order << 4) | dir;
- }
-
- /* transfer config */
- if (data != RT_NULL)
- {
- rt_hw_sdio_transfer_by_dma(sdio, pkg);
- }
-
- /* open irq */
- hw_sdio->mask |= HW_SDIO_IT_CMDSENT | HW_SDIO_IT_CMDREND | HW_SDIO_ERRORS;
- if (data != RT_NULL)
- {
- hw_sdio->mask |= HW_SDIO_IT_DATAEND;
- }
-
- /* send cmd */
- hw_sdio->arg = cmd->arg;
- hw_sdio->cmd = reg_cmd;
-
- /* wait completed */
- rt_hw_sdio_wait_completed(sdio);
-
- /* waiting for data to be sent to completion */
- if (data != RT_NULL)
- {
- volatile rt_uint32_t count = SDIO_TX_RX_COMPLETE_TIMEOUT_LOOPS;
-
- while (count && (hw_sdio->sta & (HW_SDIO_IT_TXACT | HW_SDIO_IT_RXACT)))
- {
- count--;
- }
-
- if ((count == 0) || (hw_sdio->sta & HW_SDIO_ERRORS))
- {
- cmd->err = -RT_ERROR;
- }
- }
-
- /* close irq, keep sdio irq */
- hw_sdio->mask = hw_sdio->mask & HW_SDIO_IT_SDIOIT ? HW_SDIO_IT_SDIOIT : 0x00;
-
- /* clear pkg */
- sdio->pkg = RT_NULL;
-}
-
-/**
- * @brief this function send sdio request.
- * @param sdio rt_hw_sdio
- * @param req request
- * @retval none
- */
-static void rt_hw_sdio_request(struct rt_mmcsd_host *host, struct rt_mmcsd_req *req)
-{
- struct sdio_pkg pkg;
- struct rt_hw_sdio *sdio = host->private_data;
- struct rt_mmcsd_data *data;
-
- RT_HW_SDIO_LOCK(sdio);
-
- if (req->cmd != RT_NULL)
- {
- memset(&pkg, 0, sizeof(pkg));
- data = req->cmd->data;
- pkg.cmd = req->cmd;
-
- if (data != RT_NULL)
- {
- rt_uint32_t size = data->blks * data->blksize;
-
- RT_ASSERT(size <= SDIO_BUFF_SIZE);
-
- pkg.buff = data->buf;
- if ((rt_uint32_t)data->buf & (SDIO_ALIGN_LEN - 1))
- {
- pkg.buff = cache_buf;
- if (data->flags & DATA_DIR_WRITE)
- {
- memcpy(cache_buf, data->buf, size);
- }
- }
- }
-
- rt_hw_sdio_send_command(sdio, &pkg);
-
- if ((data != RT_NULL) && (data->flags & DATA_DIR_READ) && ((rt_uint32_t)data->buf & (SDIO_ALIGN_LEN - 1)))
- {
- memcpy(data->buf, cache_buf, data->blksize * data->blks);
- }
- }
-
- if (req->stop != RT_NULL)
- {
- memset(&pkg, 0, sizeof(pkg));
- pkg.cmd = req->stop;
- rt_hw_sdio_send_command(sdio, &pkg);
- }
-
- RT_HW_SDIO_UNLOCK(sdio);
-
- mmcsd_req_complete(sdio->host);
-}
-
-/**
- * @brief this function config sdio.
- * @param host rt_mmcsd_host
- * @param io_cfg rt_mmcsd_io_cfg
- * @retval none
- */
-static void rt_hw_sdio_iocfg(struct rt_mmcsd_host *host, struct rt_mmcsd_io_cfg *io_cfg)
-{
- rt_uint32_t clkcr, div, clk_src;
- rt_uint32_t clk = io_cfg->clock;
- struct rt_hw_sdio *sdio = host->private_data;
- struct at32_sdio *hw_sdio = sdio->sdio_des.hw_sdio;
-
- clk_src = sdio->sdio_des.clk_get(sdio->sdio_des.hw_sdio);
- if (clk_src < 400 * 1000)
- {
- LOG_E("The clock rate is too low! rata:%d", clk_src);
- return;
- }
-
- if (clk > host->freq_max) clk = host->freq_max;
-
- if (clk > clk_src)
- {
- LOG_W("Setting rate is greater than clock source rate.");
- clk = clk_src;
- }
-
- LOG_D("clk:%d width:%s%s%s power:%s%s%s",
- clk,
- io_cfg->bus_width == MMCSD_BUS_WIDTH_8 ? "8" : "",
- io_cfg->bus_width == MMCSD_BUS_WIDTH_4 ? "4" : "",
- io_cfg->bus_width == MMCSD_BUS_WIDTH_1 ? "1" : "",
- io_cfg->power_mode == MMCSD_POWER_OFF ? "OFF" : "",
- io_cfg->power_mode == MMCSD_POWER_UP ? "UP" : "",
- io_cfg->power_mode == MMCSD_POWER_ON ? "ON" : ""
- );
-
- RT_HW_SDIO_LOCK(sdio);
-
- div = clk_src / clk;
- if ((clk == 0) || (div == 0))
- {
- clkcr = 0;
- }
- else
- {
- if (div < 2)
- {
- div = 2;
- }
- else if (div > 0x3FF)
- {
- div = 0x3FF;
- }
- div -= 2;
- clkcr = (div & 0xFF) | ((div & 0x300) << 7) | HW_SDIO_CLK_ENABLE;
- }
-
- if (io_cfg->bus_width == MMCSD_BUS_WIDTH_8)
- {
- clkcr |= HW_SDIO_BUSWIDE_8B;
- }
- else if (io_cfg->bus_width == MMCSD_BUS_WIDTH_4)
- {
- clkcr |= HW_SDIO_BUSWIDE_4B;
- }
- else
- {
- clkcr |= HW_SDIO_BUSWIDE_1B;
- }
-
- hw_sdio->clkcr = clkcr;
-
- switch (io_cfg->power_mode)
- {
- case MMCSD_POWER_OFF:
- hw_sdio->power = HW_SDIO_POWER_OFF;
- break;
- case MMCSD_POWER_UP:
- hw_sdio->power = HW_SDIO_POWER_UP;
- break;
- case MMCSD_POWER_ON:
- hw_sdio->power = HW_SDIO_POWER_ON;
- break;
- default:
- LOG_W("unknown power_mode %d", io_cfg->power_mode);
- break;
- }
-
- RT_HW_SDIO_UNLOCK(sdio);
-}
-
-/**
- * @brief this function update sdio interrupt.
- * @param host rt_mmcsd_host
- * @param enable
- * @retval none
- */
-void rt_hw_sdio_irq_update(struct rt_mmcsd_host *host, rt_int32_t enable)
-{
- struct rt_hw_sdio *sdio = host->private_data;
- struct at32_sdio *hw_sdio = sdio->sdio_des.hw_sdio;
-
- if (enable)
- {
- LOG_D("enable sdio irq");
- hw_sdio->mask |= HW_SDIO_IT_SDIOIT;
- }
- else
- {
- LOG_D("disable sdio irq");
- hw_sdio->mask &= ~HW_SDIO_IT_SDIOIT;
- }
-}
-
-/**
- * @brief this function delect sdcard.
- * @param host rt_mmcsd_host
- * @retval 0x01
- */
-static rt_int32_t rt_hw_sd_delect(struct rt_mmcsd_host *host)
-{
- LOG_D("try to detect device");
- return 0x01;
-}
-
-/**
- * @brief this function interrupt process function.
- * @param host rt_mmcsd_host
- * @retval none
- */
-void rt_hw_sdio_irq_process(struct rt_mmcsd_host *host)
-{
- int complete = 0;
- struct rt_hw_sdio *sdio = host->private_data;
- struct at32_sdio *hw_sdio = sdio->sdio_des.hw_sdio;
- rt_uint32_t intstatus = hw_sdio->sta;
-
- if (intstatus & HW_SDIO_ERRORS)
- {
- hw_sdio->icr = HW_SDIO_ERRORS;
- complete = 1;
- }
- else
- {
- if (intstatus & HW_SDIO_IT_CMDREND)
- {
- hw_sdio->icr = HW_SDIO_IT_CMDREND;
-
- if (sdio->pkg != RT_NULL)
- {
- if (!sdio->pkg->cmd->data)
- {
- complete = 1;
- }
- else if ((sdio->pkg->cmd->data->flags & DATA_DIR_WRITE))
- {
- hw_sdio->dctrl |= HW_SDIO_DPSM_ENABLE;
- }
- }
- }
-
- if (intstatus & HW_SDIO_IT_CMDSENT)
- {
- hw_sdio->icr = HW_SDIO_IT_CMDSENT;
-
- if (resp_type(sdio->pkg->cmd) == RESP_NONE)
- {
- complete = 1;
- }
- }
-
- if (intstatus & HW_SDIO_IT_DATAEND)
- {
- hw_sdio->icr = HW_SDIO_IT_DATAEND;
- complete = 1;
- }
- }
-
- if ((intstatus & HW_SDIO_IT_SDIOIT) && (hw_sdio->mask & HW_SDIO_IT_SDIOIT))
- {
- hw_sdio->icr = HW_SDIO_IT_SDIOIT;
- sdio_irq_wakeup(host);
- }
-
- if (complete)
- {
- hw_sdio->mask &= ~HW_SDIO_ERRORS;
- rt_event_send(&sdio->event, intstatus);
- }
-}
-
-static const struct rt_mmcsd_host_ops ops =
-{
- rt_hw_sdio_request,
- rt_hw_sdio_iocfg,
- rt_hw_sd_delect,
- rt_hw_sdio_irq_update,
-};
-
-/**
- * @brief this function create mmcsd host.
- * @param sdio_des at32_sdio_des
- * @retval rt_mmcsd_host
- */
-struct rt_mmcsd_host *sdio_host_create(struct at32_sdio_des *sdio_des)
-{
- struct rt_mmcsd_host *host;
- struct rt_hw_sdio *sdio = RT_NULL;
-
- if ((sdio_des == RT_NULL) || (sdio_des->txconfig == RT_NULL) || (sdio_des->rxconfig == RT_NULL))
- {
- LOG_E("L:%d F:%s %s %s %s",
- (sdio_des == RT_NULL ? "sdio_des is NULL" : ""),
- (sdio_des ? (sdio_des->txconfig ? "txconfig is NULL" : "") : ""),
- (sdio_des ? (sdio_des->rxconfig ? "rxconfig is NULL" : "") : "")
- );
- return RT_NULL;
- }
-
- sdio = rt_malloc(sizeof(struct rt_hw_sdio));
- if (sdio == RT_NULL)
- {
- LOG_E("L:%d F:%s malloc rt_hw_sdio fail");
- return RT_NULL;
- }
- rt_memset(sdio, 0, sizeof(struct rt_hw_sdio));
-
- host = mmcsd_alloc_host();
- if (host == RT_NULL)
- {
- LOG_E("L:%d F:%s mmcsd alloc host fail");
- rt_free(sdio);
- return RT_NULL;
- }
-
- rt_memcpy(&sdio->sdio_des, sdio_des, sizeof(struct at32_sdio_des));
- sdio->sdio_des.hw_sdio = (sdio_des->hw_sdio == RT_NULL ? (struct at32_sdio *)SDIO_BASE_ADDRESS : sdio_des->hw_sdio);
- sdio->sdio_des.clk_get = (sdio_des->clk_get == RT_NULL ? at32_sdio_clk_get : sdio_des->clk_get);
-
- rt_event_init(&sdio->event, "sdio", RT_IPC_FLAG_FIFO);
- rt_mutex_init(&sdio->mutex, "sdio", RT_IPC_FLAG_PRIO);
-
- /* set host defautl attributes */
- host->ops = &ops;
- host->freq_min = 400 * 1000;
- host->freq_max = SDIO_MAX_FREQ;
- host->valid_ocr = 0X00FFFF80;/* the voltage range supported is 1.65v-3.6v */
-#ifndef SDIO_USING_1_BIT
- host->flags = MMCSD_BUSWIDTH_4 | MMCSD_MUTBLKWRITE | MMCSD_SUP_SDIO_IRQ;
-#else
- host->flags = MMCSD_MUTBLKWRITE | MMCSD_SUP_SDIO_IRQ;
-#endif
- host->max_seg_size = SDIO_BUFF_SIZE;
- host->max_dma_segs = 1;
- host->max_blk_size = 512;
- host->max_blk_count = 512;
-
- /* link up host and sdio */
- sdio->host = host;
- host->private_data = sdio;
-
- rt_hw_sdio_irq_update(host, 1);
-
- /* ready to change */
- mmcsd_change(host);
-
- return host;
-}
-
-/**
- * @brief this function configures the dmatx.
- * @param src: pointer to the source buffer
- * @param dst: pointer to the destination buffer
- * @param buffer_size: size of tx buffer
- * @retval none
- */
-void sd_lowlevel_dmatx_config(uint32_t *src, uint32_t *dst, uint32_t buffer_size)
-{
- static uint32_t size = 0;
- dma_init_type dma_init_struct;
-
- size += buffer_size * 4;
- sdio_obj.cfg = &sdio_config;
-
- dma_default_para_init(&dma_init_struct);
- sdio_obj.dma.handle_tx = sdio_config.dma_tx.dma_channel;
- dma_init_struct.direction = DMA_DIR_MEMORY_TO_PERIPHERAL;
- dma_init_struct.buffer_size = buffer_size;
- dma_init_struct.memory_base_addr = (uint32_t)src;
- dma_init_struct.memory_data_width = DMA_MEMORY_DATA_WIDTH_WORD;
- dma_init_struct.memory_inc_enable = TRUE;
- dma_init_struct.peripheral_base_addr = (uint32_t)dst;
- dma_init_struct.peripheral_data_width = DMA_PERIPHERAL_DATA_WIDTH_WORD;
- dma_init_struct.peripheral_inc_enable = FALSE;
- dma_init_struct.priority = DMA_PRIORITY_MEDIUM;
-
- nvic_irq_enable(sdio_config.dma_tx.dma_irq, 2, 0);
-
- dma_init(sdio_obj.dma.handle_tx, &dma_init_struct);
- dma_interrupt_enable(sdio_obj.dma.handle_tx, DMA_FDT_INT, TRUE);
- dma_channel_enable(sdio_obj.dma.handle_tx, TRUE);
-}
-
-/**
- * @brief this function configures the dmarx.
- * @param src: pointer to the source buffer
- * @param dst: pointer to the destination buffer
- * @param buffer_size: size of rx buffer
- * @retval none
- */
-void sd_lowlevel_dmarx_config(uint32_t *src, uint32_t *dst, uint32_t buffer_size)
-{
- sdio_obj.cfg = &sdio_config;
- dma_init_type dma_init_struct;
-
- dma_default_para_init(&dma_init_struct);
- sdio_obj.dma.handle_rx = sdio_config.dma_rx.dma_channel;
- dma_init_struct.direction = DMA_DIR_PERIPHERAL_TO_MEMORY;
- dma_init_struct.buffer_size = buffer_size;
- dma_init_struct.memory_base_addr = (uint32_t)dst;
- dma_init_struct.memory_data_width = DMA_MEMORY_DATA_WIDTH_WORD;
- dma_init_struct.memory_inc_enable = TRUE;
- dma_init_struct.peripheral_base_addr = (uint32_t)src;
- dma_init_struct.peripheral_data_width = DMA_PERIPHERAL_DATA_WIDTH_WORD;
- dma_init_struct.peripheral_inc_enable = FALSE;
- dma_init_struct.priority = DMA_PRIORITY_MEDIUM;
-
- nvic_irq_enable(sdio_config.dma_rx.dma_irq, 2, 0);
-
- dma_init(sdio_obj.dma.handle_rx, &dma_init_struct);
- dma_interrupt_enable(sdio_obj.dma.handle_rx, DMA_FDT_INT, TRUE);
- dma_channel_enable(sdio_obj.dma.handle_rx, TRUE);
-}
-
-void DMA2_Channel4_5_IRQHandler(void)
-{
- if(dma_flag_get(DMA2_FDT4_FLAG))
- {
- dma_flag_clear(DMA2_FDT4_FLAG);
- dma_channel_enable(sdio_config.dma_rx.dma_channel, FALSE);
- }
-}
-
-/**
- * @brief this function get at32 sdio clock.
- * @param hw_sdio: at32_sdio
- * @retval ahb frequency
- */
-static rt_uint32_t at32_sdio_clock_get(struct at32_sdio *hw_sdio)
-{
- crm_clocks_freq_type clocks;
-
- crm_clocks_freq_get(&clocks);
- return clocks.ahb_freq;
-}
-
-static rt_err_t dma_tx_config(rt_uint32_t *src, rt_uint32_t *dst, int size)
-{
- sd_lowlevel_dmatx_config((uint32_t *)src, (uint32_t *)dst, size / 4);
- return RT_EOK;
-}
-
-static rt_err_t dma_rx_config(rt_uint32_t *src, rt_uint32_t *dst, int size)
-{
- sd_lowlevel_dmarx_config((uint32_t *)src, (uint32_t *)dst, size / 4);
- return RT_EOK;
-}
-
-void SDIO1_IRQHandler(void)
-{
- /* enter interrupt */
- rt_interrupt_enter();
-
- rt_hw_sdio_irq_process(host);
-
- /* leave interrupt */
- rt_interrupt_leave();
-}
-
-int rt_hw_sdio_init(void)
-{
- struct at32_sdio_des sdio_des;
- struct at32_sdio_config hsd;
-
- hsd.sdio_x = SDCARD_INSTANCE;
- at32_msp_sdio_init((void *)(hsd.sdio_x));
-
- nvic_irq_enable(SDIO1_IRQn, 2, 0);
-
- sdio_des.clk_get = at32_sdio_clock_get;
- sdio_des.hw_sdio = (struct at32_sdio *)SDCARD_INSTANCE;
- sdio_des.rxconfig = dma_rx_config;
- sdio_des.txconfig = dma_tx_config;
-
- host = sdio_host_create(&sdio_des);
- if (host == RT_NULL)
- {
- LOG_E("host create fail");
- return -1;
- }
-
- return 0;
-}
-
-INIT_DEVICE_EXPORT(rt_hw_sdio_init);
-
-void at32_mmcsd_change(void)
-{
- mmcsd_change(host);
-}
-
-#endif
diff --git a/bsp/at32/libraries/f413/rt_drivers/drv_sdio.h b/bsp/at32/libraries/f413/rt_drivers/drv_sdio.h
deleted file mode 100644
index f1818c347f..0000000000
--- a/bsp/at32/libraries/f413/rt_drivers/drv_sdio.h
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-05-10 shelton first version
- */
-
-#ifndef _DRV_SDIO_H
-#define _DRV_SDIO_H
-#include <rtthread.h>
-#include "rtdevice.h"
-#include <rthw.h>
-#include <string.h>
-#include <drivers/mmcsd_core.h>
-#include <drivers/sdio.h>
-#include "at32f413.h"
-
-#define SDCARD_INSTANCE_TYPE sdio_type
-
-#define SDCARD_INSTANCE SDIO1
-
-#define SDIO_BUFF_SIZE 4096
-#define SDIO_ALIGN_LEN 32
-
-#ifndef SDIO_MAX_FREQ
-#define SDIO_MAX_FREQ (1000000)
-#endif
-
-#ifndef SDIO_BASE_ADDRESS
-#define SDIO_BASE_ADDRESS SDIO1_BASE
-#endif
-
-#ifndef SDIO_CLOCK_FREQ
-#define SDIO_CLOCK_FREQ (48U * 1000 * 1000)
-#endif
-
-#ifndef SDIO_BUFF_SIZE
-#define SDIO_BUFF_SIZE (4096)
-#endif
-
-#ifndef SDIO_ALIGN_LEN
-#define SDIO_ALIGN_LEN (32)
-#endif
-
-#ifndef SDIO_MAX_FREQ
-#define SDIO_MAX_FREQ (24 * 1000 * 1000)
-#endif
-
-#define HW_SDIO_IT_CCRCFAIL (0x01U << 0)
-#define HW_SDIO_IT_DCRCFAIL (0x01U << 1)
-#define HW_SDIO_IT_CTIMEOUT (0x01U << 2)
-#define HW_SDIO_IT_DTIMEOUT (0x01U << 3)
-#define HW_SDIO_IT_TXUNDERR (0x01U << 4)
-#define HW_SDIO_IT_RXOVERR (0x01U << 5)
-#define HW_SDIO_IT_CMDREND (0x01U << 6)
-#define HW_SDIO_IT_CMDSENT (0x01U << 7)
-#define HW_SDIO_IT_DATAEND (0x01U << 8)
-#define HW_SDIO_IT_STBITERR (0x01U << 9)
-#define HW_SDIO_IT_DBCKEND (0x01U << 10)
-#define HW_SDIO_IT_CMDACT (0x01U << 11)
-#define HW_SDIO_IT_TXACT (0x01U << 12)
-#define HW_SDIO_IT_RXACT (0x01U << 13)
-#define HW_SDIO_IT_TXFIFOHE (0x01U << 14)
-#define HW_SDIO_IT_RXFIFOHF (0x01U << 15)
-#define HW_SDIO_IT_TXFIFOF (0x01U << 16)
-#define HW_SDIO_IT_RXFIFOF (0x01U << 17)
-#define HW_SDIO_IT_TXFIFOE (0x01U << 18)
-#define HW_SDIO_IT_RXFIFOE (0x01U << 19)
-#define HW_SDIO_IT_TXDAVL (0x01U << 20)
-#define HW_SDIO_IT_RXDAVL (0x01U << 21)
-#define HW_SDIO_IT_SDIOIT (0x01U << 22)
-
-#define HW_SDIO_ERRORS \
- (HW_SDIO_IT_CCRCFAIL | HW_SDIO_IT_CTIMEOUT | \
- HW_SDIO_IT_DCRCFAIL | HW_SDIO_IT_DTIMEOUT | \
- HW_SDIO_IT_RXOVERR | HW_SDIO_IT_TXUNDERR)
-
-#define HW_SDIO_POWER_OFF (0x00U)
-#define HW_SDIO_POWER_UP (0x02U)
-#define HW_SDIO_POWER_ON (0x03U)
-
-#define HW_SDIO_FLOW_ENABLE (0x01U << 14)
-#define HW_SDIO_BUSWIDE_1B (0x00U << 11)
-#define HW_SDIO_BUSWIDE_4B (0x01U << 11)
-#define HW_SDIO_BUSWIDE_8B (0x02U << 11)
-#define HW_SDIO_BYPASS_ENABLE (0x01U << 10)
-#define HW_SDIO_IDLE_ENABLE (0x01U << 9)
-#define HW_SDIO_CLK_ENABLE (0x01U << 8)
-
-#define HW_SDIO_SUSPEND_CMD (0x01U << 11)
-#define HW_SDIO_CPSM_ENABLE (0x01U << 10)
-#define HW_SDIO_WAIT_END (0x01U << 9)
-#define HW_SDIO_WAIT_INT (0x01U << 8)
-#define HW_SDIO_RESPONSE_NO (0x00U << 6)
-#define HW_SDIO_RESPONSE_SHORT (0x01U << 6)
-#define HW_SDIO_RESPONSE_LONG (0x03U << 6)
-
-#define HW_SDIO_DATA_LEN_MASK (0x01FFFFFFU)
-
-#define HW_SDIO_IO_ENABLE (0x01U << 11)
-#define HW_SDIO_RWMOD_CK (0x01U << 10)
-#define HW_SDIO_RWSTOP_ENABLE (0x01U << 9)
-#define HW_SDIO_RWSTART_ENABLE (0x01U << 8)
-#define HW_SDIO_DBLOCKSIZE_1 (0x00U << 4)
-#define HW_SDIO_DBLOCKSIZE_2 (0x01U << 4)
-#define HW_SDIO_DBLOCKSIZE_4 (0x02U << 4)
-#define HW_SDIO_DBLOCKSIZE_8 (0x03U << 4)
-#define HW_SDIO_DBLOCKSIZE_16 (0x04U << 4)
-#define HW_SDIO_DBLOCKSIZE_32 (0x05U << 4)
-#define HW_SDIO_DBLOCKSIZE_64 (0x06U << 4)
-#define HW_SDIO_DBLOCKSIZE_128 (0x07U << 4)
-#define HW_SDIO_DBLOCKSIZE_256 (0x08U << 4)
-#define HW_SDIO_DBLOCKSIZE_512 (0x09U << 4)
-#define HW_SDIO_DBLOCKSIZE_1024 (0x0AU << 4)
-#define HW_SDIO_DBLOCKSIZE_2048 (0x0BU << 4)
-#define HW_SDIO_DBLOCKSIZE_4096 (0x0CU << 4)
-#define HW_SDIO_DBLOCKSIZE_8192 (0x0DU << 4)
-#define HW_SDIO_DBLOCKSIZE_16384 (0x0EU << 4)
-#define HW_SDIO_DMA_ENABLE (0x01U << 3)
-#define HW_SDIO_STREAM_ENABLE (0x01U << 2)
-#define HW_SDIO_TO_HOST (0x01U << 1)
-#define HW_SDIO_DPSM_ENABLE (0x01U << 0)
-
-#define HW_SDIO_DATATIMEOUT (0xF0000000U)
-
-struct at32_sdio
-{
- volatile rt_uint32_t power;
- volatile rt_uint32_t clkcr;
- volatile rt_uint32_t arg;
- volatile rt_uint32_t cmd;
- volatile rt_uint32_t respcmd;
- volatile rt_uint32_t resp1;
- volatile rt_uint32_t resp2;
- volatile rt_uint32_t resp3;
- volatile rt_uint32_t resp4;
- volatile rt_uint32_t dtimer;
- volatile rt_uint32_t dlen;
- volatile rt_uint32_t dctrl;
- volatile rt_uint32_t dcount;
- volatile rt_uint32_t sta;
- volatile rt_uint32_t icr;
- volatile rt_uint32_t mask;
- volatile rt_uint32_t reserved0[2];
- volatile rt_uint32_t fifocnt;
- volatile rt_uint32_t reserved1[13];
- volatile rt_uint32_t fifo;
-};
-
-typedef rt_err_t (*dma_txconfig)(rt_uint32_t *src, rt_uint32_t *dst, int size);
-typedef rt_err_t (*dma_rxconfig)(rt_uint32_t *src, rt_uint32_t *dst, int size);
-typedef rt_uint32_t (*sdio_clk_get)(struct at32_sdio *hw_sdio);
-
-#define SDIO_BUS_CONFIG \
- { \
- .sdio_x = SDIO1, \
- .dma_rx.dma_crm = CRM_DMA2_PERIPH_CLOCK, \
- .dma_tx.dma_crm = CRM_DMA2_PERIPH_CLOCK, \
- .dma_rx.dma_channel = DMA2_CHANNEL4, \
- .dma_rx.dma_irq = DMA2_Channel4_5_IRQn, \
- .dma_tx.dma_channel = DMA2_CHANNEL4, \
- .dma_tx.dma_irq = DMA2_Channel4_5_IRQn, \
- }
-
-struct dma_config {
- dma_channel_type *dma_channel;
- crm_periph_clock_type dma_crm;
- IRQn_Type dma_irq;
-};
-
-struct at32_sdio_des
-{
- struct at32_sdio *hw_sdio;
- dma_txconfig txconfig;
- dma_rxconfig rxconfig;
- sdio_clk_get clk_get;
-};
-
-struct at32_sdio_config
-{
- SDCARD_INSTANCE_TYPE *sdio_x;
- struct dma_config dma_rx, dma_tx;
-};
-
-/* at32 sdio dirver class */
-struct at32_sdio_class
-{
- struct at32_sdio_des *des;
- const struct at32_sdio_config *cfg;
- struct rt_mmcsd_host host;
- struct
- {
- dma_channel_type* handle_rx;
- dma_channel_type* handle_tx;
- } dma;
-};
-
-extern void at32_mmcsd_change(void);
-
-#endif
diff --git a/bsp/at32/libraries/f413/rt_drivers/drv_soft_i2c.c b/bsp/at32/libraries/f413/rt_drivers/drv_soft_i2c.c
deleted file mode 100644
index faec0d3df2..0000000000
--- a/bsp/at32/libraries/f413/rt_drivers/drv_soft_i2c.c
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-09 shelton first version
- */
-
-#include "board.h"
-#include "drv_soft_i2c.h"
-
-#ifdef RT_USING_I2C
-
-#define LOG_TAG "drv.i2c"
-#include <drv_log.h>
-
-#if !defined(BSP_USING_I2C1) && !defined(BSP_USING_I2C2) && \
- !defined(BSP_USING_I2C3)
-#error "Please define at least one BSP_USING_I2Cx"
-#endif
-
-static const struct at32_soft_i2c_config soft_i2c_config[] =
-{
-#ifdef BSP_USING_I2C1
- I2C1_BUS_CONFIG,
-#endif
-#ifdef BSP_USING_I2C2
- I2C2_BUS_CONFIG,
-#endif
-#ifdef BSP_USING_I2C3
- I2C3_BUS_CONFIG,
-#endif
-};
-
-static struct at32_i2c i2c_obj[sizeof(soft_i2c_config) / sizeof(soft_i2c_config[0])];
-
-/**
- * this function initializes the i2c pin.
- *
- * @param at32 i2c dirver class.
- */
-static void at32_i2c_gpio_init(struct at32_i2c *i2c)
-{
- struct at32_soft_i2c_config* cfg = (struct at32_soft_i2c_config*)i2c->ops.data;
-
- rt_pin_mode(cfg->scl, PIN_MODE_OUTPUT_OD);
- rt_pin_mode(cfg->sda, PIN_MODE_OUTPUT_OD);
-
- rt_pin_write(cfg->scl, PIN_HIGH);
- rt_pin_write(cfg->sda, PIN_HIGH);
-}
-
-/**
- * this function sets the sda pin.
- *
- * @param at32 config class.
- * @param the sda pin state.
- */
-static void at32_set_sda(void *data, rt_int32_t state)
-{
- struct at32_soft_i2c_config* cfg = (struct at32_soft_i2c_config*)data;
- if (state)
- {
- rt_pin_write(cfg->sda, PIN_HIGH);
- }
- else
- {
- rt_pin_write(cfg->sda, PIN_LOW);
- }
-}
-
-/**
- * this function sets the scl pin.
- *
- * @param at32 config class.
- * @param the scl pin state.
- */
-static void at32_set_scl(void *data, rt_int32_t state)
-{
- struct at32_soft_i2c_config* cfg = (struct at32_soft_i2c_config*)data;
- if (state)
- {
- rt_pin_write(cfg->scl, PIN_HIGH);
- }
- else
- {
- rt_pin_write(cfg->scl, PIN_LOW);
- }
-}
-
-/**
- * this function gets the sda pin state.
- *
- * @param the sda pin state.
- */
-static rt_int32_t at32_get_sda(void *data)
-{
- struct at32_soft_i2c_config* cfg = (struct at32_soft_i2c_config*)data;
- return rt_pin_read(cfg->sda);
-}
-
-/**
- * this function gets the scl pin state.
- *
- * @param the scl pin state.
- */
-static rt_int32_t at32_get_scl(void *data)
-{
- struct at32_soft_i2c_config* cfg = (struct at32_soft_i2c_config*)data;
- return rt_pin_read(cfg->scl);
-}
-
-/**
- * the time delay function.
- *
- * @param microseconds.
- */
-static void at32_udelay(rt_uint32_t us)
-{
- rt_uint32_t ticks;
- rt_uint32_t told, tnow, tcnt = 0;
- rt_uint32_t reload = SysTick->LOAD;
-
- ticks = us * reload / (1000000 / RT_TICK_PER_SECOND);
- told = SysTick->VAL;
- while (1)
- {
- tnow = SysTick->VAL;
- if (tnow != told)
- {
- if (tnow < told)
- {
- tcnt += told - tnow;
- }
- else
- {
- tcnt += reload - tnow + told;
- }
- told = tnow;
- if (tcnt >= ticks)
- {
- break;
- }
- }
- }
-}
-
-static const struct rt_i2c_bit_ops at32_bit_ops_default =
-{
- .data = RT_NULL,
- .set_sda = at32_set_sda,
- .set_scl = at32_set_scl,
- .get_sda = at32_get_sda,
- .get_scl = at32_get_scl,
- .udelay = at32_udelay,
- .delay_us = 1,
- .timeout = 100
-};
-
-/**
- * if i2c is locked, this function will unlock it
- *
- * @param at32 config class
- *
- * @return RT_EOK indicates successful unlock.
- */
-static rt_err_t at32_i2c_bus_unlock(const struct at32_soft_i2c_config *cfg)
-{
- rt_int32_t i = 0;
-
- if (PIN_LOW == rt_pin_read(cfg->sda))
- {
- while (i++ < 9)
- {
- rt_pin_write(cfg->scl, PIN_HIGH);
- at32_udelay(100);
- rt_pin_write(cfg->scl, PIN_LOW);
- at32_udelay(100);
- }
- }
- if (PIN_LOW == rt_pin_read(cfg->sda))
- {
- return -RT_ERROR;
- }
-
- return RT_EOK;
-}
-
-/* i2c initialization function */
-int rt_hw_i2c_init(void)
-{
- rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct at32_i2c);
- rt_err_t result;
-
- for (int i = 0; i < obj_num; i++)
- {
- i2c_obj[i].ops = at32_bit_ops_default;
- i2c_obj[i].ops.data = (void*)&soft_i2c_config[i];
- i2c_obj[i].i2c_bus.priv = &i2c_obj[i].ops;
- at32_i2c_gpio_init(&i2c_obj[i]);
- result = rt_i2c_bit_add_bus(&i2c_obj[i].i2c_bus, soft_i2c_config[i].bus_name);
- RT_ASSERT(result == RT_EOK);
- at32_i2c_bus_unlock(&soft_i2c_config[i]);
-
- LOG_D("software simulation %s init done, pin scl: %d, pin sda %d",
- soft_i2c_config[i].bus_name,
- soft_i2c_config[i].scl,
- soft_i2c_config[i].sda);
- }
-
- return RT_EOK;
-}
-
-INIT_BOARD_EXPORT(rt_hw_i2c_init);
-
-#endif /* RT_USING_I2C */
diff --git a/bsp/at32/libraries/f413/rt_drivers/drv_soft_i2c.h b/bsp/at32/libraries/f413/rt_drivers/drv_soft_i2c.h
deleted file mode 100644
index fecab31b4d..0000000000
--- a/bsp/at32/libraries/f413/rt_drivers/drv_soft_i2c.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2020-01-09 shelton first version
- */
-
-#ifndef __DRV_I2C__
-#define __DRV_I2C__
-
-#include <rtthread.h>
-#include <rthw.h>
-#include <rtdevice.h>
-
-/* at32 config class */
-struct at32_soft_i2c_config
-{
- rt_uint8_t scl;
- rt_uint8_t sda;
- const char *bus_name;
-};
-/* at32 i2c dirver class */
-struct at32_i2c
-{
- struct rt_i2c_bit_ops ops;
- struct rt_i2c_bus_device i2c_bus;
-};
-
-#ifdef BSP_USING_I2C1
-#define I2C1_BUS_CONFIG \
- { \
- .scl = BSP_I2C1_SCL_PIN, \
- .sda = BSP_I2C1_SDA_PIN, \
- .bus_name = "i2c1", \
- }
-#endif
-
-#ifdef BSP_USING_I2C2
-#define I2C2_BUS_CONFIG \
- { \
- .scl = BSP_I2C2_SCL_PIN, \
- .sda = BSP_I2C2_SDA_PIN, \
- .bus_name = "i2c2", \
- }
-#endif
-
-#ifdef BSP_USING_I2C3
-#define I2C3_BUS_CONFIG \
- { \
- .scl = BSP_I2C3_SCL_PIN, \
- .sda = BSP_I2C3_SDA_PIN, \
- .bus_name = "i2c3", \
- }
-#endif
-
-int rt_hw_i2c_init(void);
-
-#endif
diff --git a/bsp/at32/libraries/f413/rt_drivers/drv_spi.c b/bsp/at32/libraries/f413/rt_drivers/drv_spi.c
deleted file mode 100644
index a9a3cc39e5..0000000000
--- a/bsp/at32/libraries/f413/rt_drivers/drv_spi.c
+++ /dev/null
@@ -1,331 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-05-11 shelton first version
- */
-
-#include "board.h"
-#include "drv_spi.h"
-
-#ifdef RT_USING_SPI
-#if !defined(BSP_USING_SPI1) && !defined(BSP_USING_SPI2)
-#error "Please define at least one BSP_USING_SPIx"
-#endif
-
-#define ARR_LEN(__N) (sizeof(__N) / sizeof(__N[0]))
-
-//#define DRV_DEBUG
-#define LOG_TAG "drv.pwm"
-#include <drv_log.h>
-
-/* private rt-thread spi ops function */
-static rt_err_t configure(struct rt_spi_device* device, struct rt_spi_configuration* configuration);
-static rt_uint32_t xfer(struct rt_spi_device* device, struct rt_spi_message* message);
-
-static struct rt_spi_ops at32_spi_ops =
-{
- configure,
- xfer
-};
-
-/**
- * attach the spi device to spi bus, this function must be used after initialization.
- */
-rt_err_t rt_hw_spi_device_attach(const char *bus_name, const char *device_name, gpio_type *cs_gpiox, uint16_t cs_gpio_pin)
-{
- gpio_init_type gpio_init_struct;
-
- RT_ASSERT(bus_name != RT_NULL);
- RT_ASSERT(device_name != RT_NULL);
-
- rt_err_t result;
- struct rt_spi_device *spi_device;
- struct at32_spi_cs *cs_pin;
-
- /* initialize the cs pin & select the slave*/
- gpio_default_para_init(&gpio_init_struct);
- gpio_init_struct.gpio_pins = cs_gpio_pin;
- gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
- gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
- gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
- gpio_init(cs_gpiox, &gpio_init_struct);
- gpio_bits_set(cs_gpiox, cs_gpio_pin);
-
- /* attach the device to spi bus */
- spi_device = (struct rt_spi_device *)rt_malloc(sizeof(struct rt_spi_device));
- RT_ASSERT(spi_device != RT_NULL);
- cs_pin = (struct at32_spi_cs *)rt_malloc(sizeof(struct at32_spi_cs));
- RT_ASSERT(cs_pin != RT_NULL);
- cs_pin->gpio_x = cs_gpiox;
- cs_pin->gpio_pin = cs_gpio_pin;
- result = rt_spi_bus_attach_device(spi_device, device_name, bus_name, (void *)cs_pin);
-
- if (result != RT_EOK)
- {
- LOG_D("%s attach to %s faild, %d\n", device_name, bus_name, result);
- }
-
- RT_ASSERT(result == RT_EOK);
-
- LOG_D("%s attach to %s done", device_name, bus_name);
-
- return result;
-}
-
-static rt_err_t configure(struct rt_spi_device* device,
- struct rt_spi_configuration* configuration)
-{
- struct rt_spi_bus * spi_bus = (struct rt_spi_bus *)device->bus;
- struct at32_spi *spi_instance = (struct at32_spi *)spi_bus->parent.user_data;
-
- spi_init_type spi_init_struct;
-
- RT_ASSERT(device != RT_NULL);
- RT_ASSERT(configuration != RT_NULL);
-
- at32_msp_spi_init(spi_instance->config->spi_x);
-
- /* data_width */
- if(configuration->data_width <= 8)
- {
- spi_init_struct.frame_bit_num = SPI_FRAME_8BIT;
- }
- else if(configuration->data_width <= 16)
- {
- spi_init_struct.frame_bit_num = SPI_FRAME_16BIT;
- }
- else
- {
- return RT_EIO;
- }
-
- /* baudrate */
- {
- uint32_t spi_apb_clock;
- uint32_t max_hz;
- crm_clocks_freq_type clocks_struct;
-
- max_hz = configuration->max_hz;
-
- crm_clocks_freq_get(&clocks_struct);
- LOG_D("sys freq: %d\n", clocks_struct.sclk_freq);
- LOG_D("max freq: %d\n", max_hz);
-
- if (spi_instance->config->spi_x == SPI1)
- {
- spi_apb_clock = clocks_struct.apb2_freq;
- LOG_D("pclk2 freq: %d\n", clocks_struct.apb2_freq);
- }
- else
- {
- spi_apb_clock = clocks_struct.apb1_freq;
- LOG_D("pclk1 freq: %d\n", clocks_struct.apb1_freq);
- }
-
- if(max_hz >= (spi_apb_clock / 2))
- {
- spi_init_struct.mclk_freq_division = SPI_MCLK_DIV_2;
- }
- else if (max_hz >= (spi_apb_clock / 4))
- {
- spi_init_struct.mclk_freq_division = SPI_MCLK_DIV_4;
- }
- else if (max_hz >= (spi_apb_clock / 8))
- {
- spi_init_struct.mclk_freq_division = SPI_MCLK_DIV_8;
- }
- else if (max_hz >= (spi_apb_clock / 16))
- {
- spi_init_struct.mclk_freq_division = SPI_MCLK_DIV_16;
- }
- else if (max_hz >= (spi_apb_clock / 32))
- {
- spi_init_struct.mclk_freq_division = SPI_MCLK_DIV_32;
- }
- else if (max_hz >= (spi_apb_clock / 64))
- {
- spi_init_struct.mclk_freq_division = SPI_MCLK_DIV_64;
- }
- else if (max_hz >= (spi_apb_clock / 128))
- {
- spi_init_struct.mclk_freq_division = SPI_MCLK_DIV_128;
- }
- else
- {
- /* min prescaler 256 */
- spi_init_struct.mclk_freq_division = SPI_MCLK_DIV_256;
- }
- } /* baudrate */
-
- switch(configuration->mode & RT_SPI_MODE_3)
- {
- case RT_SPI_MODE_0:
- spi_init_struct.clock_phase = SPI_CLOCK_PHASE_1EDGE;
- spi_init_struct.clock_polarity = SPI_CLOCK_POLARITY_LOW;
- break;
- case RT_SPI_MODE_1:
- spi_init_struct.clock_phase = SPI_CLOCK_PHASE_2EDGE;
- spi_init_struct.clock_polarity = SPI_CLOCK_POLARITY_LOW;
- break;
- case RT_SPI_MODE_2:
- spi_init_struct.clock_phase = SPI_CLOCK_PHASE_1EDGE;
- spi_init_struct.clock_polarity = SPI_CLOCK_POLARITY_HIGH;
- break;
- case RT_SPI_MODE_3:
- spi_init_struct.clock_phase = SPI_CLOCK_PHASE_2EDGE;
- spi_init_struct.clock_polarity = SPI_CLOCK_POLARITY_HIGH;
- break;
- }
-
- /* msb or lsb */
- if(configuration->mode & RT_SPI_MSB)
- {
- spi_init_struct.first_bit_transmission = SPI_FIRST_BIT_MSB;
- }
- else
- {
- spi_init_struct.first_bit_transmission = SPI_FIRST_BIT_LSB;
- }
-
- spi_init_struct.transmission_mode = SPI_TRANSMIT_FULL_DUPLEX;
- spi_init_struct.master_slave_mode = SPI_MODE_MASTER;
- spi_init_struct.cs_mode_selection = SPI_CS_SOFTWARE_MODE;
- /* init spi */
- spi_init(spi_instance->config->spi_x, &spi_init_struct);
-
- /* enable spi */
- spi_enable(spi_instance->config->spi_x, TRUE);
- /* disable spi crc */
- spi_crc_enable(spi_instance->config->spi_x, FALSE);
-
- return RT_EOK;
-};
-
-static rt_uint32_t xfer(struct rt_spi_device* device, struct rt_spi_message* message)
-{
- struct rt_spi_bus * at32_spi_bus = (struct rt_spi_bus *)device->bus;
- struct at32_spi *spi_instance = (struct at32_spi *)at32_spi_bus->parent.user_data;
- struct rt_spi_configuration * config = &device->config;
- struct at32_spi_cs * at32_spi_cs = device->parent.user_data;
-
- RT_ASSERT(device != NULL);
- RT_ASSERT(message != NULL);
-
- /* take cs */
- if(message->cs_take)
- {
- gpio_bits_reset(at32_spi_cs->gpio_x, at32_spi_cs->gpio_pin);
- LOG_D("spi take cs\n");
- }
-
- if(config->data_width <= 8)
- {
- const rt_uint8_t *send_ptr = message->send_buf;
- rt_uint8_t * recv_ptr = message->recv_buf;
- rt_uint32_t size = message->length;
-
- LOG_D("spi poll transfer start: %d\n", size);
-
- while(size--)
- {
- rt_uint8_t data = 0xFF;
-
- if(send_ptr != RT_NULL)
- {
- data = *send_ptr++;
- }
-
- /* wait until the transmit buffer is empty */
- while(spi_i2s_flag_get(spi_instance->config->spi_x, SPI_I2S_TDBE_FLAG) == RESET);
- /* send the byte */
- spi_i2s_data_transmit(spi_instance->config->spi_x, data);
-
- /* wait until a data is received */
- while(spi_i2s_flag_get(spi_instance->config->spi_x, SPI_I2S_RDBF_FLAG) == RESET);
- /* get the received data */
- data = spi_i2s_data_receive(spi_instance->config->spi_x);
-
- if(recv_ptr != RT_NULL)
- {
- *recv_ptr++ = data;
- }
- }
- LOG_D("spi poll transfer finsh\n");
- }
- else if(config->data_width <= 16)
- {
- const rt_uint16_t * send_ptr = message->send_buf;
- rt_uint16_t * recv_ptr = message->recv_buf;
- rt_uint32_t size = message->length;
-
- while(size--)
- {
- rt_uint16_t data = 0xFF;
-
- if(send_ptr != RT_NULL)
- {
- data = *send_ptr++;
- }
-
- /* wait until the transmit buffer is empty */
- while(spi_i2s_flag_get(spi_instance->config->spi_x, SPI_I2S_TDBE_FLAG) == RESET);
- /* send the byte */
- spi_i2s_data_transmit(spi_instance->config->spi_x, data);
-
- /* wait until a data is received */
- while(spi_i2s_flag_get(spi_instance->config->spi_x, SPI_I2S_RDBF_FLAG) == RESET);
- /* get the received data */
- data = spi_i2s_data_receive(spi_instance->config->spi_x);
-
- if(recv_ptr != RT_NULL)
- {
- *recv_ptr++ = data;
- }
- }
- }
-
- /* release cs */
- if(message->cs_release)
- {
- gpio_bits_set(at32_spi_cs->gpio_x, at32_spi_cs->gpio_pin);
- LOG_D("spi release cs\n");
- }
-
- return message->length;
-};
-
-static struct at32_spi_config configs[] = {
-#ifdef BSP_USING_SPI1
- {SPI1, "spi1"},
-#endif
-
-#ifdef BSP_USING_SPI2
- {SPI2, "spi2"},
-#endif
-};
-
-static struct at32_spi spis[sizeof(configs) / sizeof(configs[0])] = {0};
-
-int rt_hw_spi_init(void)
-{
- int i;
- rt_err_t result;
- rt_size_t obj_num = sizeof(spis) / sizeof(struct at32_spi);
-
- for (i = 0; i < obj_num; i++)
- {
- spis[i].config = &configs[i];
- spis[i].spi_bus.parent.user_data = (void *)&spis[i];
- result = rt_spi_bus_register(&(spis[i].spi_bus), spis[i].config->spi_name, &at32_spi_ops);
- }
-
- return result;
-}
-
-INIT_BOARD_EXPORT(rt_hw_spi_init);
-
-#endif
diff --git a/bsp/at32/libraries/f413/rt_drivers/drv_spi.h b/bsp/at32/libraries/f413/rt_drivers/drv_spi.h
deleted file mode 100644
index de182a3b2a..0000000000
--- a/bsp/at32/libraries/f413/rt_drivers/drv_spi.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-05-10 shelton first version
- */
-
-#ifndef __DRV_SPI__
-#define __DRV_SPI__
-
-#include <rtthread.h>
-#include <drivers/spi.h>
-#include "at32f413.h"
-
-struct at32_spi_config
-{
- spi_type *spi_x;
- const char *spi_name;
-};
-
-struct at32_spi
-{
- struct at32_spi_config *config;
- struct rt_spi_bus spi_bus;
-};
-
-struct at32_spi_cs
-{
- gpio_type *gpio_x;
- uint32_t gpio_pin;
-};
-
-/* public function */
-int rt_hw_spi_init(void);
-rt_err_t rt_hw_spi_device_attach(const char *bus_name, const char *device_name, gpio_type *cs_gpiox, uint16_t cs_gpio_pin);
-
-#endif // __DRV_SPI__
diff --git a/bsp/at32/libraries/f413/rt_drivers/drv_usart.c b/bsp/at32/libraries/f413/rt_drivers/drv_usart.c
deleted file mode 100644
index d1fd058dd2..0000000000
--- a/bsp/at32/libraries/f413/rt_drivers/drv_usart.c
+++ /dev/null
@@ -1,295 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-05-11 shelton first version
- */
-
-#include "board.h"
-#include "drv_usart.h"
-
-#ifdef RT_USING_SERIAL
-#if !defined(BSP_USING_UART1) && !defined(BSP_USING_UART2) && \
- !defined(BSP_USING_UART3) && !defined(BSP_USING_UART4) && \
- !defined(BSP_USING_UART5)
- #error "Please define at least one BSP_USING_UARTx"
-#endif
-
-struct at32_usart {
- char *name;
- usart_type* usart_x;
- IRQn_Type irqn;
- struct rt_serial_device serial;
-};
-
-enum {
-#ifdef BSP_USING_UART1
- UART1_INDEX,
-#endif
-#ifdef BSP_USING_UART2
- UART2_INDEX,
-#endif
-#ifdef BSP_USING_UART3
- UART3_INDEX,
-#endif
-#ifdef BSP_USING_UART4
- UART4_INDEX,
-#endif
-#ifdef BSP_USING_UART5
- UART5_INDEX,
-#endif
-};
-
-static struct at32_usart usart_config[] = {
-#ifdef BSP_USING_UART1
- { "uart1",
- USART1,
- USART1_IRQn, },
-#endif
-#ifdef BSP_USING_UART2
- { "uart2",
- USART2,
- USART2_IRQn, },
-#endif
-#ifdef BSP_USING_UART3
- { "uart3",
- USART3,
- USART3_IRQn, },
-#endif
-#ifdef BSP_USING_UART4
- { "uart4",
- UART4,
- UART4_IRQn, },
-#endif
-#ifdef BSP_USING_UART5
- { "uart5",
- UART5,
- UART5_IRQn, },
-#endif
-};
-
-static rt_err_t at32_configure(struct rt_serial_device *serial,
- struct serial_configure *cfg) {
- struct at32_usart *usart_instance = (struct at32_usart *) serial->parent.user_data;
- usart_data_bit_num_type data_bit;
- usart_stop_bit_num_type stop_bit;
- usart_parity_selection_type parity_mode;
-
- RT_ASSERT(serial != RT_NULL);
- RT_ASSERT(cfg != RT_NULL);
-
- RT_ASSERT(usart_instance != RT_NULL);
-
- at32_msp_usart_init((void *)usart_instance->usart_x);
-
- usart_receiver_enable(usart_instance->usart_x, TRUE);
- usart_transmitter_enable(usart_instance->usart_x, TRUE);
-
- usart_hardware_flow_control_set(usart_instance->usart_x, USART_HARDWARE_FLOW_NONE);
-
- switch (cfg->data_bits) {
- case DATA_BITS_8:
- data_bit = USART_DATA_8BITS;
- break;
- case DATA_BITS_9:
- data_bit = USART_DATA_9BITS;
- break;
- default:
- data_bit = USART_DATA_8BITS;
- break;
- }
-
- switch (cfg->stop_bits) {
- case STOP_BITS_1:
- stop_bit = USART_STOP_1_BIT;
- break;
- case STOP_BITS_2:
- stop_bit = USART_STOP_2_BIT;
- break;
- default:
- stop_bit = USART_STOP_1_BIT;
- break;
- }
-
- switch (cfg->parity) {
- case PARITY_NONE:
- parity_mode = USART_PARITY_NONE;
- break;
- case PARITY_ODD:
- parity_mode = USART_PARITY_ODD;
- break;
- case PARITY_EVEN:
- parity_mode = USART_PARITY_EVEN;
- break;
- default:
- parity_mode = USART_PARITY_NONE;
- break;
- }
- usart_parity_selection_config(usart_instance->usart_x, parity_mode);
- usart_init(usart_instance->usart_x, cfg->baud_rate, data_bit, stop_bit);
- usart_enable(usart_instance->usart_x, TRUE);
-
- return RT_EOK;
-}
-
-static rt_err_t at32_control(struct rt_serial_device *serial, int cmd, void *arg) {
- struct at32_usart *usart;
-
- RT_ASSERT(serial != RT_NULL);
- usart = (struct at32_usart *) serial->parent.user_data;
- RT_ASSERT(usart != RT_NULL);
-
- switch (cmd) {
- case RT_DEVICE_CTRL_CLR_INT:
- nvic_irq_disable(usart->irqn);
- usart_interrupt_enable(usart->usart_x, USART_RDBF_INT, FALSE);
- break;
- case RT_DEVICE_CTRL_SET_INT:
- nvic_irq_enable(usart->irqn, 2, 1);
- usart_interrupt_enable(usart->usart_x, USART_RDBF_INT, TRUE);
- break;
- }
-
- return RT_EOK;
-}
-
-static int at32_putc(struct rt_serial_device *serial, char ch) {
- struct at32_usart *usart;
-
- RT_ASSERT(serial != RT_NULL);
- usart = (struct at32_usart *) serial->parent.user_data;
- RT_ASSERT(usart != RT_NULL);
-
- usart_data_transmit(usart->usart_x, (uint8_t)ch);
- while (usart_flag_get(usart->usart_x, USART_TDC_FLAG) == RESET);
-
- return 1;
-}
-
-static int at32_getc(struct rt_serial_device *serial) {
- int ch;
- struct at32_usart *usart;
-
- RT_ASSERT(serial != RT_NULL);
- usart = (struct at32_usart *) serial->parent.user_data;
- RT_ASSERT(usart != RT_NULL);
-
- ch = -1;
- if (usart_flag_get(usart->usart_x, USART_RDBF_FLAG) != RESET) {
- ch = usart_data_receive(usart->usart_x) & 0xff;
- }
-
- return ch;
-}
-
-static const struct rt_uart_ops at32_usart_ops = {
- at32_configure,
- at32_control,
- at32_putc,
- at32_getc,
- RT_NULL
-};
-
-static void usart_isr(struct rt_serial_device *serial) {
- struct at32_usart *usart_instance;
-
- RT_ASSERT(serial != RT_NULL);
-
- usart_instance = (struct at32_usart *) serial->parent.user_data;
- RT_ASSERT(usart_instance != RT_NULL);
-
- if (usart_flag_get(usart_instance->usart_x, USART_RDBF_FLAG) != RESET) {
- rt_hw_serial_isr(serial, RT_SERIAL_EVENT_RX_IND);
- usart_flag_clear(usart_instance->usart_x, USART_RDBF_FLAG);
- }
- else
- {
- if (usart_flag_get(usart_instance->usart_x, USART_CTSCF_FLAG) != RESET) {
- usart_flag_clear(usart_instance->usart_x, USART_CTSCF_FLAG);
- }
-
- if (usart_flag_get(usart_instance->usart_x, USART_BFF_FLAG) != RESET) {
- usart_flag_clear(usart_instance->usart_x, USART_BFF_FLAG);
- }
-
- if (usart_flag_get(usart_instance->usart_x, USART_TDC_FLAG) != RESET) {
- usart_flag_clear(usart_instance->usart_x, USART_TDC_FLAG);
- }
- }
-}
-
-#ifdef BSP_USING_UART1
-void USART1_IRQHandler(void) {
- rt_interrupt_enter();
-
- usart_isr(&usart_config[UART1_INDEX].serial);
-
- rt_interrupt_leave();
-}
-#endif
-#ifdef BSP_USING_UART2
-void USART2_IRQHandler(void) {
- rt_interrupt_enter();
-
- usart_isr(&usart_config[UART2_INDEX].serial);
-
- rt_interrupt_leave();
-}
-#endif
-#ifdef BSP_USING_UART3
-void USART3_IRQHandler(void) {
- rt_interrupt_enter();
-
- usart_isr(&usart_config[UART3_INDEX].serial);
-
- rt_interrupt_leave();
-}
-#endif
-#ifdef BSP_USING_UART4
-void UART4_IRQHandler(void) {
- rt_interrupt_enter();
-
- usart_isr(&usart_config[UART4_INDEX].serial);
-
- rt_interrupt_leave();
-}
-#endif
-#ifdef BSP_USING_UART5
-void UART5_IRQHandler(void) {
- rt_interrupt_enter();
-
- usart_isr(&usart_config[UART5_INDEX].serial);
-
- rt_interrupt_leave();
-}
-#endif
-
-int rt_hw_usart_init(void) {
- rt_size_t obj_num;
- int index;
-
- obj_num = sizeof(usart_config) / sizeof(struct at32_usart);
- struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT;
- rt_err_t result = 0;
-
- for (index = 0; index < obj_num; index++) {
- usart_config[index].serial.ops = &at32_usart_ops;
- usart_config[index].serial.config = config;
-
- /* register uart device */
- result = rt_hw_serial_register(&usart_config[index].serial,
- usart_config[index].name,
- RT_DEVICE_FLAG_RDWR |
- RT_DEVICE_FLAG_INT_RX |
- RT_DEVICE_FLAG_INT_TX,
- &usart_config[index]);
- RT_ASSERT(result == RT_EOK);
- }
-
- return result;
-}
-
-#endif /* BSP_USING_SERIAL */
diff --git a/bsp/at32/libraries/f413/rt_drivers/drv_usart.h b/bsp/at32/libraries/f413/rt_drivers/drv_usart.h
deleted file mode 100644
index fc493d42da..0000000000
--- a/bsp/at32/libraries/f413/rt_drivers/drv_usart.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2020-03-04 shelton first version
- */
-
-#ifndef __DRV_UART_H__
-#define __DRV_UART_H__
-
-#include <rtthread.h>
-#include <rtdevice.h>
-
-int rt_hw_usart_init(void);
-
-#endif /* __DRV_USART_H__ */
-
-/******************* end of file *******************/
diff --git a/bsp/at32/libraries/f413/rt_drivers/drv_wdt.c b/bsp/at32/libraries/f413/rt_drivers/drv_wdt.c
deleted file mode 100644
index 4f03f7cdbb..0000000000
--- a/bsp/at32/libraries/f413/rt_drivers/drv_wdt.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-15 shelton first version
- */
-
-#include <drivers/watchdog.h>
-#include "board.h"
-
-#ifdef RT_USING_WDT
-
-#define LICK_VALUE 40000
-
-//#define DRV_DEBUG
-#define LOG_TAG "drv.wdt"
-#include <drv_log.h>
-
-struct at32_wdt_obj
-{
- wdt_type *wdt_x;
- wdt_division_type div;
- rt_uint32_t reload;
- rt_uint16_t is_start;
-};
-static struct at32_wdt_obj at32_wdt;
-static struct rt_watchdog_ops ops;
-static rt_watchdog_t watchdog;
-
-static rt_err_t wdt_init(rt_watchdog_t *wdt)
-{
- return RT_EOK;
-}
-
-static rt_err_t wdt_control(rt_watchdog_t *wdt, int cmd, void *arg)
-{
- switch (cmd)
- {
- /* feed the watchdog */
- case RT_DEVICE_CTRL_WDT_KEEPALIVE:
- wdt_counter_reload();
- break;
- /* set watchdog timeout */
- case RT_DEVICE_CTRL_WDT_SET_TIMEOUT:
-#if defined(LICK_VALUE)
- if(LICK_VALUE)
- {
- at32_wdt.reload = (*((rt_uint32_t*)arg)) * LICK_VALUE / 256 ;
- }
- else
- {
- LOG_E("Please define the value of LICK_VALUE!");
- }
- if(at32_wdt.reload > 0xFFF)
- {
- LOG_E("wdg set timeout parameter too large, please less than %ds",0xFFF * 256 / LICK_VALUE);
- return -RT_EINVAL;
- }
-#else
- #error "Please define the value of LICK_VALUE!"
-#endif
- if(at32_wdt.is_start)
- {
- wdt_register_write_enable(TRUE);
- wdt_divider_set(at32_wdt.div);
- wdt_reload_value_set(at32_wdt.reload);
- wdt_counter_reload();
- wdt_register_write_enable(FALSE);
- wdt_enable();
- }
- break;
- case RT_DEVICE_CTRL_WDT_GET_TIMEOUT:
-#if defined(LICK_VALUE)
- if(LICK_VALUE)
- {
- (*((rt_uint32_t*)arg)) = at32_wdt.reload * 256 / LICK_VALUE;
- }
- else
- {
- LOG_E("Please define the value of LICK_VALUE!");
- }
-#else
- #error "Please define the value of LICK_VALUE!"
-#endif
- break;
- case RT_DEVICE_CTRL_WDT_START:
- wdt_register_write_enable(TRUE);
- wdt_divider_set(at32_wdt.div);
- wdt_reload_value_set(at32_wdt.reload);
- wdt_counter_reload();
- wdt_register_write_enable(FALSE);
- wdt_enable();
- at32_wdt.is_start = 1;
- break;
- default:
- LOG_W("This command is not supported.");
- return -RT_ERROR;
- }
- return RT_EOK;
-}
-
-int rt_hw_wdt_init(void)
-{
- at32_wdt.wdt_x = WDT;
- at32_wdt.div = WDT_CLK_DIV_256;
- at32_wdt.reload = 0x00000FFF;
- at32_wdt.is_start = 0;
-
- ops.init = &wdt_init;
- ops.control = &wdt_control;
- watchdog.ops = &ops;
- /* register watchdog device */
- if (rt_hw_watchdog_register(&watchdog, "wdt", RT_DEVICE_FLAG_DEACTIVATE, RT_NULL) != RT_EOK)
- {
- LOG_E("wdt device register failed.");
- return -RT_ERROR;
- }
- LOG_D("wdt device register success.");
- return RT_EOK;
-}
-
-INIT_BOARD_EXPORT(rt_hw_wdt_init);
-
-#endif /* RT_USING_WDT */
diff --git a/bsp/at32/libraries/f415/SConscript b/bsp/at32/libraries/f415/SConscript
deleted file mode 100644
index c7ef7659ec..0000000000
--- a/bsp/at32/libraries/f415/SConscript
+++ /dev/null
@@ -1,14 +0,0 @@
-# for module compiling
-import os
-from building import *
-
-cwd = GetCurrentDir()
-objs = []
-list = os.listdir(cwd)
-
-for d in list:
- path = os.path.join(cwd, d)
- if os.path.isfile(os.path.join(path, 'SConscript')):
- objs = objs + SConscript(os.path.join(d, 'SConscript'))
-
-Return('objs')
diff --git a/bsp/at32/libraries/f415/rt_drivers/SConscript b/bsp/at32/libraries/f415/rt_drivers/SConscript
deleted file mode 100644
index 0192065380..0000000000
--- a/bsp/at32/libraries/f415/rt_drivers/SConscript
+++ /dev/null
@@ -1,57 +0,0 @@
-# RT-Thread building script for component
-Import('RTT_ROOT')
-Import('rtconfig')
-from building import *
-
-cwd = GetCurrentDir()
-
-# add the general drivers.
-src = Split("""
-drv_common.c
-""")
-
-if GetDepend(['RT_USING_PIN']):
- src += ['drv_gpio.c']
-
-if GetDepend(['RT_USING_WDT']):
- src += ['drv_wdt.c']
-
-if GetDepend(['BSP_USING_SERIAL']):
- src += ['drv_usart.c']
-
-if GetDepend(['BSP_USING_PWM']):
- src += ['drv_pwm.c']
-
-if GetDepend(['BSP_USING_HWTIMER']):
- src += ['drv_hwtimer.c']
-
-if GetDepend(['BSP_USING_SPI']):
- src += ['drv_spi.c']
-
-if GetDepend(['RT_USING_I2C', 'RT_USING_I2C_BITOPS']):
- if GetDepend('BSP_USING_I2C1') or GetDepend('BSP_USING_I2C2') or GetDepend('BSP_USING_I2C3') or GetDepend('BSP_USING_I2C4'):
- src += ['drv_soft_i2c.c']
-
-if GetDepend(['BSP_USING_ADC']):
- src += Glob('drv_adc.c')
-
-if GetDepend('BSP_USING_RTC'):
- src += ['drv_rtc.c']
-
-if GetDepend('BSP_USING_ON_CHIP_FLASH'):
- src += ['drv_flash.c']
-
-if GetDepend(['BSP_USING_WDT']):
- src += ['drv_wdt.c']
-
-if GetDepend(['BSP_USING_CAN']):
- src += ['drv_can.c']
-
-if GetDepend(['BSP_USING_SDIO']):
- src += ['drv_sdio.c']
-
-CPPPATH = [cwd]
-
-group = DefineGroup('Drivers', src, depend = [''], CPPPATH = CPPPATH)
-
-Return('group')
diff --git a/bsp/at32/libraries/f415/rt_drivers/drv_adc.c b/bsp/at32/libraries/f415/rt_drivers/drv_adc.c
deleted file mode 100644
index 3ba0e5cbf9..0000000000
--- a/bsp/at32/libraries/f415/rt_drivers/drv_adc.c
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-05-11 shelton first version
- */
-
-#include "board.h"
-#include "drv_adc.h"
-
-#if defined(BSP_USING_ADC1)
-
-//#define DRV_DEBUG
-#define LOG_TAG "drv.adc"
-#include <drv_log.h>
-
-struct at32_adc
-{
- struct rt_adc_device at32_adc_device;
- adc_type *adc_x;
- char *name;
-};
-
-static struct at32_adc at32_adc_obj[] =
-{
-#ifdef BSP_USING_ADC1
- ADC1_CONFIG,
-#endif
-};
-
-static rt_err_t at32_adc_enabled(struct rt_adc_device *device, rt_uint32_t channel, rt_bool_t enabled)
-{
- adc_type *adc_x;
- adc_base_config_type adc_config_struct;
-
- RT_ASSERT(device != RT_NULL);
- adc_x = device->parent.user_data;
-
- at32_msp_adc_init(adc_x);
-
- /* adc_x configuration */
- adc_base_default_para_init(&adc_config_struct);
- adc_config_struct.data_align = ADC_RIGHT_ALIGNMENT;
- adc_config_struct.ordinary_channel_length = 1;
- adc_config_struct.repeat_mode = FALSE;
- adc_config_struct.sequence_mode = FALSE;
- adc_base_config(adc_x, &adc_config_struct);
- adc_ordinary_conversion_trigger_set(adc_x, ADC12_ORDINARY_TRIG_SOFTWARE, TRUE);
-
- if (!enabled)
- {
- /* disable adc_x */
- adc_enable(adc_x, FALSE);
- }
- else
- {
- /* enable adc_x */
- adc_enable(adc_x, TRUE);
-
- /* enable adc_x calibration */
- adc_calibration_init(adc_x);
- /* check the end of adc_x reset calibration register */
- while(adc_calibration_init_status_get(adc_x) == SET)
- {
- }
- /* start adc_x calibration */
- adc_calibration_start(adc_x);
- /* check the end of adc_x calibration */
- while(adc_calibration_status_get(adc_x) == SET)
- {
- }
- }
-
- return RT_EOK;
-}
-
-static rt_err_t at32_get_adc_value(struct rt_adc_device *device, rt_uint32_t channel, rt_uint32_t *value)
-{
- adc_type *adc_x;
- rt_uint32_t timeout = 0;
-
- RT_ASSERT(device != RT_NULL);
- adc_x = device->parent.user_data;
-
- /* adc_x regular channels configuration */
- adc_ordinary_channel_set(adc_x, (adc_channel_select_type)channel, 1, ADC_SAMPLETIME_239_5);
-
- /* start adc_x software conversion */
- adc_ordinary_software_trigger_enable(adc_x, TRUE);
-
- /* wait for the adc to convert */
- while((adc_flag_get(adc_x, ADC_CCE_FLAG) == RESET) && timeout < 0xFFFF)
- {
- timeout ++;
- }
-
- if(timeout >= 0xFFFF)
- {
- LOG_D("channel%d converts timeout, please confirm adc_x enabled or not", channel);
- }
-
- /* get adc value */
- *value = adc_ordinary_conversion_data_get(adc_x);
-
- return RT_EOK;
-}
-
-static const struct rt_adc_ops at_adc_ops =
-{
- .enabled = at32_adc_enabled,
- .convert = at32_get_adc_value,
-};
-
-static int rt_hw_adc_init(void)
-{
- int result = RT_EOK;
- int i = 0;
-
- for (i = 0; i < sizeof(at32_adc_obj) / sizeof(at32_adc_obj[0]); i++)
- {
- /* register ADC device */
- if (rt_hw_adc_register(&at32_adc_obj[i].at32_adc_device, at32_adc_obj[i].name, &at_adc_ops, at32_adc_obj[i].adc_x) == RT_EOK)
- {
- LOG_D("%s register success", at32_adc_obj[i].name);
- }
- else
- {
- LOG_E("%s register failed", at32_adc_obj[i].name);
- result = -RT_ERROR;
- }
-
- }
-
- return result;
-}
-INIT_BOARD_EXPORT(rt_hw_adc_init);
-
-#endif /* BSP_USING_ADC */
diff --git a/bsp/at32/libraries/f415/rt_drivers/drv_adc.h b/bsp/at32/libraries/f415/rt_drivers/drv_adc.h
deleted file mode 100644
index 03daa7b471..0000000000
--- a/bsp/at32/libraries/f415/rt_drivers/drv_adc.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-11 leo first version
- */
-
-#ifndef __ADC_CONFIG_H__
-#define __ADC_CONFIG_H__
-
-#include <rtthread.h>
-#include <drivers/adc.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if defined(BSP_USING_ADC1) || defined(BSP_USING_ADC2) || defined(BSP_USING_ADC3)
-
-#ifndef ADC1_CONFIG
-#define ADC1_CONFIG \
- { \
- .adc_x = ADC1, \
- .name = "adc1", \
- }
-#endif /* ADC1_CONFIG */
-
-#ifndef ADC2_CONFIG
-#define ADC2_CONFIG \
- { \
- .adc_x = ADC2, \
- .name = "adc2", \
- }
-#endif /* ADC2_CONFIG */
-
-#ifndef ADC3_CONFIG
-#define ADC3_CONFIG \
- { \
- .adc_x = ADC3, \
- .name = "adc3", \
- }
-#endif /* ADC3_CONFIG */
-
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __ADC_CONFIG_H__ */
diff --git a/bsp/at32/libraries/f415/rt_drivers/drv_can.c b/bsp/at32/libraries/f415/rt_drivers/drv_can.c
deleted file mode 100644
index 71c549ffc2..0000000000
--- a/bsp/at32/libraries/f415/rt_drivers/drv_can.c
+++ /dev/null
@@ -1,677 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-05-11 shelton first version
- */
-
-#include "drv_can.h"
-
-#ifdef BSP_USING_CAN
-
-#define LOG_TAG "drv_can"
-#include <drv_log.h>
-
-/* attention !!! baud calculation example: apbclk / ((ss + bs1 + bs2) * brp), ep: 72 / ((1 + 8 + 3) * 10) = 1MHz*/
-/* attention !!! default apbclk 72 mhz */
-static const struct at32_baud_rate can_baud_rate_tab[] =
-{
- {CAN1MBaud, {6 , CAN_RSAW_3TQ, CAN_BTS1_8TQ, CAN_BTS2_3TQ}},
- {CAN800kBaud, {10 , CAN_RSAW_2TQ, CAN_BTS1_6TQ, CAN_BTS2_2TQ}},
- {CAN500kBaud, {12 , CAN_RSAW_3TQ, CAN_BTS1_8TQ, CAN_BTS2_3TQ}},
- {CAN250kBaud, {24 , CAN_RSAW_3TQ, CAN_BTS1_8TQ, CAN_BTS2_3TQ}},
- {CAN125kBaud, {48 , CAN_RSAW_3TQ, CAN_BTS1_8TQ, CAN_BTS2_3TQ}},
- {CAN100kBaud, {60 , CAN_RSAW_3TQ, CAN_BTS1_8TQ, CAN_BTS2_3TQ}},
- {CAN50kBaud, {120, CAN_RSAW_3TQ, CAN_BTS1_8TQ, CAN_BTS2_3TQ}},
- {CAN20kBaud, {300, CAN_RSAW_3TQ, CAN_BTS1_8TQ, CAN_BTS2_3TQ}},
- {CAN10kBaud, {600, CAN_RSAW_3TQ, CAN_BTS1_8TQ, CAN_BTS2_3TQ}}
-};
-
-#ifdef BSP_USING_CAN1
-static struct at32_can can_instance1 =
-{
- .name = "can1",
- .config.can_x = CAN1,
-};
-#endif
-
-static rt_uint32_t get_can_baud_index(rt_uint32_t baud)
-{
- rt_uint32_t len, index;
-
- len = sizeof(can_baud_rate_tab) / sizeof(can_baud_rate_tab[0]);
- for (index = 0; index < len; index++)
- {
- if (can_baud_rate_tab[index].baud_rate == baud)
- return index;
- }
- /* default baud is CAN1MBaud */
- return 0;
-}
-
-static rt_err_t _can_config(struct rt_can_device *can, struct can_configure *cfg)
-{
- struct at32_can *can_instance;
- rt_uint32_t baud_index;
-
- RT_ASSERT(can);
- RT_ASSERT(cfg);
-
- can_instance = (struct at32_can *)can->parent.user_data;
- RT_ASSERT(can_instance);
-
- at32_msp_can_init((void *)can_instance->config.can_x);
-
- baud_index = get_can_baud_index(cfg->baud_rate);
- /* get baudrate parameters */
- can_baudrate_default_para_init(&can_instance->config.baudrate_init_struct);
- can_instance->config.baudrate_init_struct.rsaw_size = can_baud_rate_tab[baud_index].baud_struct.rsaw_size;
- can_instance->config.baudrate_init_struct.bts1_size = can_baud_rate_tab[baud_index].baud_struct.bts1_size;
- can_instance->config.baudrate_init_struct.bts2_size = can_baud_rate_tab[baud_index].baud_struct.bts2_size;
- can_instance->config.baudrate_init_struct.baudrate_div = can_baud_rate_tab[baud_index].baud_struct.baudrate_div;
- /* config can baudrate */
- if(can_baudrate_set(can_instance->config.can_x, &(can_instance->config.baudrate_init_struct)) != SUCCESS)
- {
- return -RT_ERROR;
- }
-
- /* config can base parameters */
- can_default_para_init(&(can_instance->config.base_init_struct));
- switch (cfg->mode)
- {
- case RT_CAN_MODE_NORMAL:
- can_instance->config.base_init_struct.mode_selection = CAN_MODE_COMMUNICATE;
- break;
- case RT_CAN_MODE_LISEN:
- can_instance->config.base_init_struct.mode_selection = CAN_MODE_LISTENONLY;
- break;
- case RT_CAN_MODE_LOOPBACK:
- can_instance->config.base_init_struct.mode_selection = CAN_MODE_LOOPBACK;
- break;
- case RT_CAN_MODE_LOOPBACKANLISEN:
- can_instance->config.base_init_struct.mode_selection = CAN_MODE_LISTENONLY_LOOPBACK;
- break;
- }
-
- can_instance->config.base_init_struct.aebo_enable = TRUE;
- can_instance->config.base_init_struct.aed_enable = TRUE;
- can_instance->config.base_init_struct.prsf_enable = FALSE;
- can_instance->config.base_init_struct.mdrsel_selection = CAN_DISCARDING_FIRST_RECEIVED;
- can_instance->config.base_init_struct.mmssr_selection = CAN_SENDING_BY_REQUEST;
- /* init can base function */
- if (can_base_init(can_instance->config.can_x, &(can_instance->config.base_init_struct)) != SUCCESS)
- {
- return -RT_ERROR;
- }
-
- /* config filter parameters */
- can_filter_init(can_instance->config.can_x, &can_instance->config.filter_init_struct);
-
- return RT_EOK;
-}
-
-static rt_err_t _can_control(struct rt_can_device *can, int cmd, void *arg)
-{
- rt_uint32_t argval;
- struct at32_can *can_instance;
- struct rt_can_filter_config *filter_cfg;
-
- RT_ASSERT(can != RT_NULL);
- can_instance = (struct at32_can *)can->parent.user_data;
- RT_ASSERT(can_instance != RT_NULL);
-
- switch (cmd)
- {
- case RT_DEVICE_CTRL_CLR_INT:
- argval = (rt_uint32_t) arg;
- if (argval == RT_DEVICE_FLAG_INT_RX)
- {
- if (CAN1 == can_instance->config.can_x)
- {
- nvic_irq_disable(CAN1_RX0_IRQn);
- nvic_irq_disable(CAN1_RX1_IRQn);
- }
-
- /* disable interrupt */
- can_interrupt_enable(can_instance->config.can_x, CAN_RF0MIEN_INT, FALSE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF0FIEN_INT, FALSE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF0OIEN_INT, FALSE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF1MIEN_INT, FALSE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF1FIEN_INT, FALSE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF1OIEN_INT, FALSE);
- }
- else if (argval == RT_DEVICE_FLAG_INT_TX)
- {
- if (CAN1 == can_instance->config.can_x)
- {
- nvic_irq_disable(CAN1_TX_IRQn);
- }
-
- can_interrupt_enable(can_instance->config.can_x, CAN_TCIEN_INT, FALSE);
- }
- else if (argval == RT_DEVICE_CAN_INT_ERR)
- {
- if (CAN1 == can_instance->config.can_x)
- {
- nvic_irq_disable(CAN1_SE_IRQn);
- }
-
- can_interrupt_enable(can_instance->config.can_x, CAN_EAIEN_INT, FALSE);
- can_interrupt_enable(can_instance->config.can_x, CAN_EPIEN_INT, FALSE);
- can_interrupt_enable(can_instance->config.can_x, CAN_BOIEN_INT, FALSE);
- can_interrupt_enable(can_instance->config.can_x, CAN_ETRIEN_INT, FALSE);
- can_interrupt_enable(can_instance->config.can_x, CAN_EOIEN_INT, FALSE);
- }
-
- break;
- case RT_DEVICE_CTRL_SET_INT:
- argval = (rt_uint32_t) arg;
- if (argval == RT_DEVICE_FLAG_INT_RX)
- {
- can_interrupt_enable(can_instance->config.can_x, CAN_RF0MIEN_INT, TRUE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF0FIEN_INT, TRUE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF0OIEN_INT, TRUE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF1MIEN_INT, TRUE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF1FIEN_INT, TRUE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF1OIEN_INT, TRUE);
-
- if (CAN1 == can_instance->config.can_x)
- {
- nvic_irq_enable(CAN1_RX0_IRQn, 1, 0);
- nvic_irq_enable(CAN1_RX1_IRQn, 1, 0);
- }
- }
- else if (argval == RT_DEVICE_FLAG_INT_TX)
- {
- can_interrupt_enable(can_instance->config.can_x, CAN_TCIEN_INT, TRUE);
-
- if (CAN1 == can_instance->config.can_x)
- {
- nvic_irq_enable(CAN1_TX_IRQn, 1, 0);
- }
- }
- else if (argval == RT_DEVICE_CAN_INT_ERR)
- {
- can_interrupt_enable(can_instance->config.can_x, CAN_EAIEN_INT, TRUE);
- can_interrupt_enable(can_instance->config.can_x, CAN_EPIEN_INT, TRUE);
- can_interrupt_enable(can_instance->config.can_x, CAN_BOIEN_INT, TRUE);
- can_interrupt_enable(can_instance->config.can_x, CAN_ETRIEN_INT, TRUE);
- can_interrupt_enable(can_instance->config.can_x, CAN_EOIEN_INT, TRUE);
-
- if (CAN1 == can_instance->config.can_x)
- {
- nvic_irq_enable(CAN1_SE_IRQn, 1, 0);
- }
- }
- break;
- case RT_CAN_CMD_SET_FILTER:
- {
- rt_uint32_t id_h = 0;
- rt_uint32_t id_l = 0;
- rt_uint32_t mask_h = 0;
- rt_uint32_t mask_l = 0;
- rt_uint32_t mask_l_tail = 0;
-
- if (RT_NULL == arg)
- {
- /* default filter config */
- can_filter_init(can_instance->config.can_x, &can_instance->config.filter_init_struct);
- }
- else
- {
- filter_cfg = (struct rt_can_filter_config *)arg;
- /* get default filter */
- for (int i = 0; i < filter_cfg->count; i++)
- {
- if (filter_cfg->items[i].hdr == -1)
- {
- can_instance->config.filter_init_struct.filter_number = i;
- }
- else
- {
- can_instance->config.filter_init_struct.filter_number = filter_cfg->items[i].hdr;
- }
- /**
- * ID | CAN_FxR1[31:24] | CAN_FxR1[23:16] | CAN_FxR1[15:8] | CAN_FxR1[7:0] |
- * MASK | CAN_FxR2[31:24] | CAN_FxR1[23:16] | CAN_FxR1[15:8] | CAN_FxR1[7:0] |
- * STD ID | STID[10:3] | STDID[2:0] |<- 21bit ->|
- * EXT ID | EXTID[28:21] | EXTID[20:13] | EXTID[12:5] | EXTID[4:0] IDE RTR 0|
- * @note the 32bit STD ID must << 21 to fill CAN_FxR1[31:21] and EXT ID must << 3,
- * -> but the id bit of struct rt_can_filter_item is 29,
- * -> so STD id << 18 and EXT id Don't need << 3, when get the high 16bit.
- * -> FilterIdHigh : (((STDid << 18) or (EXT id)) >> 13) & 0xFFFF,
- * -> FilterIdLow: ((STDid << 18) or (EXT id << 3)) & 0xFFFF.
- * @note the mask bit of struct rt_can_filter_item is 32,
- * -> FilterMaskIdHigh: (((STD mask << 21) or (EXT mask <<3)) >> 16) & 0xFFFF
- * -> FilterMaskIdLow: ((STD mask << 21) or (EXT mask <<3)) & 0xFFFF
- */
- if (filter_cfg->items[i].mode == CAN_FILTER_MODE_ID_MASK)
- {
- mask_l_tail = 0x06;
- }
- else if (filter_cfg->items[i].mode == CAN_FILTER_MODE_ID_LIST)
- {
- mask_l_tail = (filter_cfg->items[i].ide << 2) |
- (filter_cfg->items[i].rtr << 1);
- }
- if (filter_cfg->items[i].ide == RT_CAN_STDID)
- {
- id_h = ((filter_cfg->items[i].id << 18) >> 13) & 0xFFFF;
- id_l = ((filter_cfg->items[i].id << 18) |
- (filter_cfg->items[i].ide << 2) |
- (filter_cfg->items[i].rtr << 1)) & 0xFFFF;
- mask_h = ((filter_cfg->items[i].mask << 21) >> 16) & 0xFFFF;
- mask_l = ((filter_cfg->items[i].mask << 21) | mask_l_tail) & 0xFFFF;
- }
- else if (filter_cfg->items[i].ide == RT_CAN_EXTID)
- {
- id_h = (filter_cfg->items[i].id >> 13) & 0xFFFF;
- id_l = ((filter_cfg->items[i].id << 3) |
- (filter_cfg->items[i].ide << 2) |
- (filter_cfg->items[i].rtr << 1)) & 0xFFFF;
- mask_h = ((filter_cfg->items[i].mask << 3) >> 16) & 0xFFFF;
- mask_l = ((filter_cfg->items[i].mask << 3) | mask_l_tail) & 0xFFFF;
- }
- can_instance->config.filter_init_struct.filter_id_high = id_h;
- can_instance->config.filter_init_struct.filter_id_low = id_l;
- can_instance->config.filter_init_struct.filter_mask_high = mask_h;
- can_instance->config.filter_init_struct.filter_mask_low = mask_l;
- can_instance->config.filter_init_struct.filter_mode = (can_filter_mode_type)filter_cfg->items[i].mode;
-
- /* filter conf */
- can_filter_init(can_instance->config.can_x, &can_instance->config.filter_init_struct);
- }
- }
- break;
- }
- case RT_CAN_CMD_SET_MODE:
- argval = (rt_uint32_t) arg;
- if (argval != RT_CAN_MODE_NORMAL &&
- argval != RT_CAN_MODE_LISEN &&
- argval != RT_CAN_MODE_LOOPBACK &&
- argval != RT_CAN_MODE_LOOPBACKANLISEN)
- {
- return -RT_ERROR;
- }
- if (argval != can_instance->device.config.mode)
- {
- can_instance->device.config.mode = argval;
- return _can_config(&can_instance->device, &can_instance->device.config);
- }
- break;
- case RT_CAN_CMD_SET_BAUD:
- argval = (rt_uint32_t) arg;
- if (argval != CAN1MBaud &&
- argval != CAN800kBaud &&
- argval != CAN500kBaud &&
- argval != CAN250kBaud &&
- argval != CAN125kBaud &&
- argval != CAN100kBaud &&
- argval != CAN50kBaud &&
- argval != CAN20kBaud &&
- argval != CAN10kBaud)
- {
- return -RT_ERROR;
- }
- if (argval != can_instance->device.config.baud_rate)
- {
- can_instance->device.config.baud_rate = argval;
- return _can_config(&can_instance->device, &can_instance->device.config);
- }
- break;
- case RT_CAN_CMD_SET_PRIV:
- argval = (rt_uint32_t) arg;
- if (argval != RT_CAN_MODE_PRIV &&
- argval != RT_CAN_MODE_NOPRIV)
- {
- return -RT_ERROR;
- }
- if (argval != can_instance->device.config.privmode)
- {
- can_instance->device.config.privmode = argval;
- return _can_config(&can_instance->device, &can_instance->device.config);
- }
- break;
- case RT_CAN_CMD_GET_STATUS:
- {
- rt_uint32_t errtype;
- errtype = can_instance->config.can_x->ests;
- can_instance->device.status.rcverrcnt = errtype >> 24;
- can_instance->device.status.snderrcnt = (errtype >> 16 & 0xFF);
- can_instance->device.status.lasterrtype = errtype & 0x70;
- can_instance->device.status.errcode = errtype & 0x07;
-
- rt_memcpy(arg, &can_instance->device.status, sizeof(can_instance->device.status));
- }
- break;
- }
-
- return RT_EOK;
-}
-
-static int _can_sendmsg(struct rt_can_device *can, const void *buf, rt_uint32_t box_num)
-{
- struct can_config *hcan;
- hcan = &((struct at32_can *) can->parent.user_data)->config;
- struct rt_can_msg *pmsg = (struct rt_can_msg *) buf;
- can_tx_message_type tx_message;
-
- /* check select mailbox is empty */
- switch (box_num)
- {
- case CAN_TX_MAILBOX0:
- if (hcan->can_x->tsts_bit.tm0ef != 1)
- {
- /* return function status */
- return -RT_ERROR;
- }
- break;
- case CAN_TX_MAILBOX1:
- if (hcan->can_x->tsts_bit.tm1ef != 1)
- {
- /* return function status */
- return -RT_ERROR;
- }
- break;
- case CAN_TX_MAILBOX2:
- if (hcan->can_x->tsts_bit.tm2ef != 1)
- {
- /* return function status */
- return -RT_ERROR;
- }
- break;
- default:
- RT_ASSERT(0);
- break;
- }
-
- if (RT_CAN_STDID == pmsg->ide)
- {
- tx_message.id_type = CAN_ID_STANDARD;
- tx_message.standard_id = pmsg->id;
- }
- else
- {
- tx_message.id_type = CAN_ID_EXTENDED;
- tx_message.extended_id = pmsg->id;
- }
-
- if (RT_CAN_DTR == pmsg->rtr)
- {
- tx_message.frame_type = CAN_TFT_DATA;
- }
- else
- {
- tx_message.frame_type = CAN_TFT_REMOTE;
- }
-
- /* set up the dlc */
- tx_message.dlc = pmsg->len & 0x0FU;
- /* set up the data field */
- tx_message.data[0] = (uint32_t)pmsg->data[0];
- tx_message.data[1] = (uint32_t)pmsg->data[1];
- tx_message.data[2] = (uint32_t)pmsg->data[2];
- tx_message.data[3] = (uint32_t)pmsg->data[3];
- tx_message.data[4] = (uint32_t)pmsg->data[4];
- tx_message.data[5] = (uint32_t)pmsg->data[5];
- tx_message.data[6] = (uint32_t)pmsg->data[6];
- tx_message.data[7] = (uint32_t)pmsg->data[7];
-
- can_message_transmit(hcan->can_x, &tx_message);
-
- return RT_EOK;
-}
-
-static int _can_recvmsg(struct rt_can_device *can, void *buf, rt_uint32_t fifo)
-{
- struct can_config *hcan;
- hcan = &((struct at32_can *) can->parent.user_data)->config;
- struct rt_can_msg *pmsg = (struct rt_can_msg *) buf;
- can_rx_message_type rx_message;
-
- RT_ASSERT(can);
-
- /* get data */
- can_message_receive(hcan->can_x, (can_rx_fifo_num_type)fifo, &rx_message);
-
- pmsg->data[0] = rx_message.data[0];
- pmsg->data[1] = rx_message.data[1];
- pmsg->data[2] = rx_message.data[2];
- pmsg->data[3] = rx_message.data[3];
- pmsg->data[4] = rx_message.data[4];
- pmsg->data[5] = rx_message.data[5];
- pmsg->data[6] = rx_message.data[6];
- pmsg->data[7] = rx_message.data[7];
-
- pmsg->len = rx_message.dlc;
- pmsg->id = rx_message.id_type;
-
- if (rx_message.id_type == CAN_ID_STANDARD)
- pmsg->id = rx_message.standard_id;
- else
- pmsg->ide = rx_message.extended_id;
-
- pmsg->rtr = rx_message.frame_type;
- pmsg->hdr = rx_message.filter_index;
-
- return RT_EOK;
-}
-
-static const struct rt_can_ops _can_ops =
-{
- _can_config,
- _can_control,
- _can_sendmsg,
- _can_recvmsg,
-};
-
-static void _can_rx_isr(struct rt_can_device *can, rt_uint32_t fifo)
-{
- struct can_config *hcan;
- RT_ASSERT(can);
- hcan = &((struct at32_can *) can->parent.user_data)->config;
-
- switch (fifo)
- {
- case CAN_RX_FIFO0:
- /* save to user list */
- if (can_receive_message_pending_get(hcan->can_x, CAN_RX_FIFO0) && \
- can_flag_get(hcan->can_x, CAN_RF0MN_FLAG))
- {
- rt_hw_can_isr(can, RT_CAN_EVENT_RX_IND | fifo << 8);
- }
- /* check full flag for fifo0 */
- if (can_flag_get(hcan->can_x, CAN_RF0FF_FLAG) == SET)
- {
- /* clear fifo0 full flag */
- can_flag_clear(hcan->can_x, CAN_RF0FF_FLAG);
- }
-
- /* check overrun flag for fifo0 */
- if (can_flag_get(hcan->can_x, CAN_RF0OF_FLAG) == SET)
- {
- /* clear fifo0 overrun flag */
- can_flag_clear(hcan->can_x, CAN_RF0OF_FLAG);
- rt_hw_can_isr(can, RT_CAN_EVENT_RXOF_IND | fifo << 8);
- }
- break;
- case CAN_RX_FIFO1:
- /* save to user list */
- if (can_receive_message_pending_get(hcan->can_x, CAN_RX_FIFO1) && \
- can_flag_get(hcan->can_x, CAN_RF1MN_FLAG))
- {
- rt_hw_can_isr(can, RT_CAN_EVENT_RX_IND | fifo << 8);
- }
- /* check full flag for fifo1 */
- if (can_flag_get(hcan->can_x, CAN_RF1FF_FLAG) == SET)
- {
- /* clear fifo1 full flag */
- can_flag_clear(hcan->can_x, CAN_RF1FF_FLAG);
- }
-
- /* check overrun flag for fifo1 */
- if (can_flag_get(hcan->can_x, CAN_RF1OF_FLAG) == SET)
- {
- /* clear fifo1 overrun flag */
- can_flag_clear(hcan->can_x, CAN_RF1OF_FLAG);
- rt_hw_can_isr(can, RT_CAN_EVENT_RXOF_IND | fifo << 8);
- }
- break;
- }
-}
-
-#ifdef BSP_USING_CAN1
-/**
- * @brief this function handles can1 tx interrupts. transmit fifo0/1/2 is empty can trigger this interrupt
- */
-void CAN1_TX_IRQHandler(void)
-{
- rt_interrupt_enter();
- struct can_config *hcan;
- hcan = &can_instance1.config;
- if (can_flag_get(hcan->can_x, CAN_TM0TCF_FLAG) == SET)
- {
- if (hcan->can_x->tsts_bit.tm0tsf == 1)
- {
- rt_hw_can_isr(&can_instance1.device, RT_CAN_EVENT_TX_DONE | 0 << 8);
- }
- else
- {
- rt_hw_can_isr(&can_instance1.device, RT_CAN_EVENT_TX_FAIL | 0 << 8);
- }
- /* write 0 to clear transmission status flag */
- can_flag_clear(hcan->can_x, CAN_TM0TCF_FLAG);
- }
- else if (can_flag_get(hcan->can_x, CAN_TM1TCF_FLAG) == SET)
- {
- if (hcan->can_x->tsts_bit.tm1tsf == 1)
- {
- rt_hw_can_isr(&can_instance1.device, RT_CAN_EVENT_TX_DONE | 1 << 8);
- }
- else
- {
- rt_hw_can_isr(&can_instance1.device, RT_CAN_EVENT_TX_FAIL | 1 << 8);
- }
- /* write 0 to clear transmission status flag */
- can_flag_clear(hcan->can_x, CAN_TM1TCF_FLAG);
- }
- else if (can_flag_get(hcan->can_x, CAN_TM2TCF_FLAG) == SET)
- {
- if (hcan->can_x->tsts_bit.tm2tsf == 1)
- {
- rt_hw_can_isr(&can_instance1.device, RT_CAN_EVENT_TX_DONE | 2 << 8);
- }
- else
- {
- rt_hw_can_isr(&can_instance1.device, RT_CAN_EVENT_TX_FAIL | 2 << 8);
- }
- /* write 0 to clear transmission status flag */
- can_flag_clear(hcan->can_x, CAN_TM2TCF_FLAG);
- }
- rt_interrupt_leave();
-}
-
-/**
- * @brief this function handles can1 rx0 interrupts.
- */
-void CAN1_RX0_IRQHandler(void)
-{
- rt_interrupt_enter();
- _can_rx_isr(&can_instance1.device, CAN_RX_FIFO0);
- rt_interrupt_leave();
-}
-
-/**
- * @brief this function handles can1 rx1 interrupts.
- */
-void CAN1_RX1_IRQHandler(void)
-{
- rt_interrupt_enter();
- _can_rx_isr(&can_instance1.device, CAN_RX_FIFO1);
- rt_interrupt_leave();
-}
-
-/**
- * @brief this function handles can1 sce interrupts.
- */
-void CAN1_SE_IRQHandler(void)
-{
- rt_uint32_t errtype;
- struct can_config *hcan;
-
- hcan = &can_instance1.config;
- errtype = hcan->can_x->ests;
-
- rt_interrupt_enter();
-
- switch ((errtype & 0x70) >> 4)
- {
- case RT_CAN_BUS_BIT_PAD_ERR:
- can_instance1.device.status.bitpaderrcnt++;
- break;
- case RT_CAN_BUS_FORMAT_ERR:
- can_instance1.device.status.formaterrcnt++;
- break;
- case RT_CAN_BUS_ACK_ERR:/* attention !!! test ack err's unit is transmit unit */
- can_instance1.device.status.ackerrcnt++;
- if (!(can_instance1.config.can_x->tsts_bit.tm0tsf == 1))
- rt_hw_can_isr(&can_instance1.device, RT_CAN_EVENT_TX_FAIL | 0 << 8);
- else if (!(can_instance1.config.can_x->tsts_bit.tm1tsf == 1))
- rt_hw_can_isr(&can_instance1.device, RT_CAN_EVENT_TX_FAIL | 1 << 8);
- else if (!(can_instance1.config.can_x->tsts_bit.tm2tsf == 1))
- rt_hw_can_isr(&can_instance1.device, RT_CAN_EVENT_TX_FAIL | 2 << 8);
- break;
- case RT_CAN_BUS_IMPLICIT_BIT_ERR:
- case RT_CAN_BUS_EXPLICIT_BIT_ERR:
- can_instance1.device.status.biterrcnt++;
- break;
- case RT_CAN_BUS_CRC_ERR:
- can_instance1.device.status.crcerrcnt++;
- break;
- }
-
- can_instance1.device.status.lasterrtype = errtype & 0x70;
- can_instance1.device.status.rcverrcnt = errtype >> 24;
- can_instance1.device.status.snderrcnt = (errtype >> 16 & 0xFF);
- can_instance1.device.status.errcode = errtype & 0x07;
- /* clear error flags */
- can_flag_clear(hcan->can_x, CAN_ETR_FLAG);
- rt_interrupt_leave();
-}
-#endif
-
-int rt_hw_can_init(void)
-{
- struct can_configure config = CANDEFAULTCONFIG;
- config.privmode = RT_CAN_MODE_NOPRIV;
- config.ticks = 50;
-#ifdef RT_CAN_USING_HDR
- config.maxhdr = 14;
-#endif
- /* config default filter */
- can_filter_init_type filter_conf;
- can_filter_default_para_init(&filter_conf);
- filter_conf.filter_activate_enable = TRUE;
- filter_conf.filter_bit = CAN_FILTER_32BIT;
-
-#ifdef BSP_USING_CAN1
- filter_conf.filter_number = 0;
- can_instance1.config.filter_init_struct = filter_conf;
- can_instance1.device.config = config;
-
- /* register can1 device */
- rt_hw_can_register(&can_instance1.device,
- can_instance1.name,
- &_can_ops,
- &can_instance1);
-#endif /* BSP_USING_CAN1 */
-
- return 0;
-}
-
-INIT_BOARD_EXPORT(rt_hw_can_init);
-
-#endif /* BSP_USING_CAN */
diff --git a/bsp/at32/libraries/f415/rt_drivers/drv_common.c b/bsp/at32/libraries/f415/rt_drivers/drv_common.c
deleted file mode 100644
index 75404bb74a..0000000000
--- a/bsp/at32/libraries/f415/rt_drivers/drv_common.c
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-08 shelton first version
- */
-
-#include "board.h"
-#include "drv_common.h"
-
-#ifdef RT_USING_SERIAL
-#include "drv_usart.h"
-#endif
-
-#define DBG_TAG "drv_common"
-#define DBG_LVL DBG_INFO
-#include <rtdbg.h>
-
-#ifdef RT_USING_FINSH
-#include <finsh.h>
-static void reboot(uint8_t argc, char **argv)
-{
- rt_hw_cpu_reset();
-}
-MSH_CMD_EXPORT(reboot, Reboot System);
-#endif /* RT_USING_FINSH */
-
-extern __IO uint32_t uwTick;
-static uint32_t _systick_ms = 1;
-
-/* systick configuration */
-void rt_hw_systick_init(void)
-{
- systick_clock_source_config(SYSTICK_CLOCK_SOURCE_AHBCLK_NODIV);
- SysTick_Config(system_core_clock / RT_TICK_PER_SECOND);
-
- nvic_irq_enable(SysTick_IRQn, 0, 0);
-
- _systick_ms = 1000u / RT_TICK_PER_SECOND;
- if(_systick_ms == 0)
- _systick_ms = 1;
-}
-
-/**
- * this is the timer interrupt service routine.
- */
-void SysTick_Handler(void)
-{
- /* enter interrupt */
- rt_interrupt_enter();
-
- rt_tick_increase();
-
- /* leave interrupt */
- rt_interrupt_leave();
-}
-
-/**
- * @brief this function is executed in case of error occurrence.
- * @param none
- * @retval none
- */
-void _Error_Handler(char *s, int num)
-{
- /* User can add his own implementation to report the HAL error return state */
- LOG_E("Error_Handler at file:%s num:%d", s, num);
- while (1)
- {
- }
-}
-
-/**
- * this function will delay for some us.
- *
- * @param us the delay time of us
- */
-void rt_hw_us_delay(rt_uint32_t us)
-{
- rt_uint32_t ticks;
- rt_uint32_t told, tnow, tcnt = 0;
- rt_uint32_t reload = SysTick->LOAD;
-
- ticks = us * reload / (1000000 / RT_TICK_PER_SECOND);
- told = SysTick->VAL;
- while (1)
- {
- tnow = SysTick->VAL;
- if (tnow != told)
- {
- if (tnow < told)
- {
- tcnt += told - tnow;
- }
- else
- {
- tcnt += reload - tnow + told;
- }
- told = tnow;
- if (tcnt >= ticks)
- {
- break;
- }
- }
- }
-}
-
-/**
- * this function will initial at32 board.
- */
-RT_WEAK void rt_hw_board_init()
-{
- /* system clock initialization */
- system_clock_config();
-
- /* configure nvic priority group */
- nvic_priority_group_config(NVIC_PRIORITY_GROUP_4);
-
- /* systick init */
- rt_hw_systick_init();
-
- /* heap initialization */
-#if defined(RT_USING_HEAP)
- rt_system_heap_init((void *)HEAP_BEGIN, (void *)HEAP_END);
-#endif
-
- /* pin driver initialization is open by default */
-#ifdef RT_USING_PIN
- rt_hw_pin_init();
-#endif
-
- /* usart driver initialization is open by default */
-#ifdef RT_USING_SERIAL
- rt_hw_usart_init();
-#endif
-
- /* set the shell console output device */
-#if defined(RT_USING_CONSOLE) && defined(RT_USING_DEVICE)
- rt_console_set_device(RT_CONSOLE_DEVICE_NAME);
-#endif
-
- /* board underlying hardware initialization */
-#ifdef RT_USING_COMPONENTS_INIT
- rt_components_board_init();
-#endif
-}
-
diff --git a/bsp/at32/libraries/f415/rt_drivers/drv_common.h b/bsp/at32/libraries/f415/rt_drivers/drv_common.h
deleted file mode 100644
index c9d725bb52..0000000000
--- a/bsp/at32/libraries/f415/rt_drivers/drv_common.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-08 shelton first version
- */
-
-#ifndef __DRV_COMMON_H__
-#define __DRV_COMMON_H__
-
-#include <rtthread.h>
-#include <rthw.h>
-#ifdef RT_USING_DEVICE
-#include <rtdevice.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void _Error_Handler(char *s, int num);
-
-#ifndef Error_Handler
-#define Error_Handler() _Error_Handler(__FILE__, __LINE__)
-#endif
-
-//#define DMA_NOT_AVAILABLE ((DMA_INSTANCE_TYPE *)0xFFFFFFFFU)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/bsp/at32/libraries/f415/rt_drivers/drv_flash.c b/bsp/at32/libraries/f415/rt_drivers/drv_flash.c
deleted file mode 100644
index e763e817bc..0000000000
--- a/bsp/at32/libraries/f415/rt_drivers/drv_flash.c
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-24 shelton first version
- */
-
-#include <rtthread.h>
-#include "board.h"
-
-#ifdef BSP_USING_ON_CHIP_FLASH
-#include "drv_flash.h"
-
-#if defined(PKG_USING_FAL)
-#include "fal.h"
-#endif
-
-//#define DRV_DEBUG
-#define LOG_TAG "drv.flash"
-#include <drv_log.h>
-
-/**
- * @brief gets the page of a given address
- * @param addr: address of the flash memory
- * @retval the page of a given address
- */
-static rt_uint32_t get_page(uint32_t addr)
-{
- rt_uint32_t page = 0;
-
- page = RT_ALIGN_DOWN(addr, FLASH_PAGE_SIZE);
-
- return page;
-}
-
-/**
- * @brief read data from flash.
- * @note this operation's units is word.
- *
- * @param addr flash address
- * @param buf buffer to store read data
- * @param size read bytes size
- *
- * @return result
- */
-int at32_flash_read(rt_uint32_t addr, rt_uint8_t *buf, rt_uint32_t size)
-{
- rt_uint32_t i;
-
- if ((addr + size) > AT32_FLASH_END_ADDRESS)
- {
- LOG_E("read outrange flash size! addr is (0x%p)", (void *)(addr + size));
- return -RT_EINVAL;
- }
-
- for (i = 0; i < size; i++, buf++, addr++)
- {
- *buf = *(rt_uint8_t *) addr;
- }
-
- return size;
-}
-
-/**
- * @brief write data to flash.
- * @note this operation's units is word.
- * @note this operation must after erase. @see flash_erase.
- *
- * @param addr flash address
- * @param buf the write data buffer
- * @param size write bytes size
- *
- * @return result
- */
-int at32_flash_write(rt_uint32_t addr, const rt_uint8_t *buf, rt_uint32_t size)
-{
- rt_err_t result = RT_EOK;
- rt_uint32_t end_addr = addr + size;
-
- if (addr % 4 != 0)
- {
- LOG_E("write addr must be 4-byte alignment");
- return -RT_EINVAL;
- }
-
- if ((end_addr) > AT32_FLASH_END_ADDRESS)
- {
- LOG_E("write outrange flash size! addr is (0x%p)", (void *)(addr + size));
- return -RT_EINVAL;
- }
-
- flash_unlock();
-
- while (addr < end_addr)
- {
- if (flash_word_program(addr, *((rt_uint32_t *)buf)) == FLASH_OPERATE_DONE)
- {
- if (*(rt_uint32_t *)addr != *(rt_uint32_t *)buf)
- {
- result = -RT_ERROR;
- break;
- }
- addr += 4;
- buf += 4;
- }
- else
- {
- result = -RT_ERROR;
- break;
- }
- }
-
- flash_lock();
-
- if (result != RT_EOK)
- {
- return result;
- }
-
- return size;
-}
-
-/**
- * @brief erase data on flash .
- * @note this operation is irreversible.
- * @note this operation's units is different which on many chips.
- *
- * @param addr flash address
- * @param size erase bytes size
- *
- * @return result
- */
-int at32_flash_erase(rt_uint32_t addr, rt_uint32_t size)
-{
- rt_err_t result = RT_EOK;
- rt_uint32_t end_addr = addr + size;
- rt_uint32_t page_addr = 0;
-
- flash_unlock();
-
- if ((end_addr) > AT32_FLASH_END_ADDRESS)
- {
- LOG_E("erase outrange flash size! addr is (0x%p)", (void *)(addr + size));
- return -RT_EINVAL;
- }
-
- while(addr < end_addr)
- {
- page_addr = get_page(addr);
-
- if(flash_sector_erase(page_addr) != FLASH_OPERATE_DONE)
- {
- result = -RT_ERROR;
- goto __exit;
- }
-
- addr += FLASH_PAGE_SIZE;
- }
-
- flash_lock();
-
-__exit:
- if(result != RT_EOK)
- {
- return result;
- }
-
- return size;
-}
-
-#if defined(PKG_USING_FAL)
-
-static int fal_flash_read(long offset, rt_uint8_t *buf, rt_uint32_t size);
-static int fal_flash_write(long offset, const rt_uint8_t *buf, rt_uint32_t size);
-static int fal_flash_erase(long offset, rt_uint32_t size);
-
-const struct fal_flash_dev at32_onchip_flash =
-{
- "onchip_flash",
- AT32_FLASH_START_ADRESS,
- AT32_FLASH_SIZE,
- FLASH_PAGE_SIZE,
- {
- NULL,
- fal_flash_read,
- fal_flash_write,
- fal_flash_erase
- }
-};
-
-static int fal_flash_read(long offset, rt_uint8_t *buf, rt_uint32_t size)
-{
- return at32_flash_read(at32_onchip_flash.addr + offset, buf, size);
-}
-
-static int fal_flash_write(long offset, const rt_uint8_t *buf, rt_uint32_t size)
-{
- return at32_flash_write(at32_onchip_flash.addr + offset, buf, size);
-}
-
-static int fal_flash_erase(long offset, rt_uint32_t size)
-{
- return at32_flash_erase(at32_onchip_flash.addr + offset, size);
-}
-
-#endif
-#endif /* BSP_USING_ON_CHIP_FLASH */
diff --git a/bsp/at32/libraries/f415/rt_drivers/drv_flash.h b/bsp/at32/libraries/f415/rt_drivers/drv_flash.h
deleted file mode 100644
index 42ada3416a..0000000000
--- a/bsp/at32/libraries/f415/rt_drivers/drv_flash.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2021-02-09 shelton the first version
- */
-
-#ifndef __DRV_FLASH_H__
-#define __DRV_FLASH_H__
-
-#include <rtthread.h>
-#include "rtdevice.h"
-#include <rthw.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int at32_flash_read(rt_uint32_t addr, rt_uint8_t *buf, rt_uint32_t size);
-int at32_flash_write(rt_uint32_t addr, const rt_uint8_t *buf, rt_uint32_t size);
-int at32_flash_erase(rt_uint32_t addr, rt_uint32_t size);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __DRV_FLASH_H__ */
diff --git a/bsp/at32/libraries/f415/rt_drivers/drv_gpio.c b/bsp/at32/libraries/f415/rt_drivers/drv_gpio.c
deleted file mode 100644
index b66c475050..0000000000
--- a/bsp/at32/libraries/f415/rt_drivers/drv_gpio.c
+++ /dev/null
@@ -1,557 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-08 shelton first version
- */
-
-#include "board.h"
-#include "drv_gpio.h"
-
-#ifdef RT_USING_PIN
-
-#define PIN_NUM(port, no) (((((port) & 0xFu) << 4) | ((no) & 0xFu)))
-#define PIN_PORT(pin) ((uint8_t)(((pin) >> 4) & 0xFu))
-#define PIN_NO(pin) ((uint8_t)((pin) & 0xFu))
-
-#define PIN_ATPORTSOURCE(pin) (gpio_port_source_type)((uint8_t)(((pin) & 0xF0u) >> 4))
-#define PIN_ATPINSOURCE(pin) (gpio_pins_source_type)((uint8_t)((pin) & 0xFu))
-#define PIN_ATPORT(pin) ((gpio_type *)(GPIOA_BASE + (0x400u * PIN_PORT(pin))))
-#define PIN_ATPIN(pin) ((uint16_t)(1u << PIN_NO(pin)))
-
-#if defined(GPIOZ)
- #define __AT32_PORT_MAX 12u
-#elif defined(GPIOK)
- #define __AT32_PORT_MAX 11u
-#elif defined(GPIOJ)
- #define __AT32_PORT_MAX 10u
-#elif defined(GPIOI)
- #define __AT32_PORT_MAX 9u
-#elif defined(GPIOH)
- #define __AT32_PORT_MAX 8u
-#elif defined(GPIOG)
- #define __AT32_PORT_MAX 7u
-#elif defined(GPIOF)
- #define __AT32_PORT_MAX 6u
-#elif defined(GPIOE)
- #define __AT32_PORT_MAX 5u
-#elif defined(GPIOD)
- #define __AT32_PORT_MAX 4u
-#elif defined(GPIOC)
- #define __AT32_PORT_MAX 3u
-#elif defined(GPIOB)
- #define __AT32_PORT_MAX 2u
-#elif defined(GPIOA)
- #define __AT32_PORT_MAX 1u
-#else
- #define __AT32_PORT_MAX 0u
- #error Unsupported AT32 GPIO peripheral.
-#endif
-
-#define PIN_ATPORT_MAX __AT32_PORT_MAX
-
-static const struct pin_irq_map pin_irq_map[] =
-{
- {GPIO_PINS_0, EXINT_LINE_0, EXINT0_IRQn},
- {GPIO_PINS_1, EXINT_LINE_1, EXINT1_IRQn},
- {GPIO_PINS_2, EXINT_LINE_2, EXINT2_IRQn},
- {GPIO_PINS_3, EXINT_LINE_3, EXINT3_IRQn},
- {GPIO_PINS_4, EXINT_LINE_4, EXINT4_IRQn},
- {GPIO_PINS_5, EXINT_LINE_5, EXINT9_5_IRQn},
- {GPIO_PINS_6, EXINT_LINE_6, EXINT9_5_IRQn},
- {GPIO_PINS_7, EXINT_LINE_7, EXINT9_5_IRQn},
- {GPIO_PINS_8, EXINT_LINE_8, EXINT9_5_IRQn},
- {GPIO_PINS_9, EXINT_LINE_9, EXINT9_5_IRQn},
- {GPIO_PINS_10, EXINT_LINE_10, EXINT15_10_IRQn},
- {GPIO_PINS_11, EXINT_LINE_11, EXINT15_10_IRQn},
- {GPIO_PINS_12, EXINT_LINE_12, EXINT15_10_IRQn},
- {GPIO_PINS_13, EXINT_LINE_13, EXINT15_10_IRQn},
- {GPIO_PINS_14, EXINT_LINE_14, EXINT15_10_IRQn},
- {GPIO_PINS_15, EXINT_LINE_15, EXINT15_10_IRQn},
-};
-
-static struct rt_pin_irq_hdr pin_irq_handler_tab[] =
-{
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
- {-1, 0, RT_NULL, RT_NULL},
-};
-static uint32_t pin_irq_enable_mask = 0;
-
-#define ITEM_NUM(items) sizeof(items) / sizeof(items[0])
-
-static void at32_pin_write(rt_device_t dev, rt_base_t pin, rt_base_t value)
-{
- gpio_type *gpio_port;
-
- uint16_t gpio_pin;
- if (PIN_PORT(pin) < PIN_ATPORT_MAX)
- {
- gpio_port = PIN_ATPORT(pin);
- gpio_pin = PIN_ATPIN(pin);
- }
- else
- {
- return;
- }
- gpio_bits_write(gpio_port, gpio_pin, (confirm_state)value);
-}
-
-static int at32_pin_read(rt_device_t dev, rt_base_t pin)
-{
- gpio_type *gpio_port;
- uint16_t gpio_pin;
- int value;
-
- value = PIN_LOW;
-
- if (PIN_PORT(pin) < PIN_ATPORT_MAX)
- {
- gpio_port = PIN_ATPORT(pin);
- gpio_pin = PIN_ATPIN(pin);
- value = gpio_input_data_bit_read(gpio_port, gpio_pin);
- }
- return value;
-}
-
-static void at32_pin_mode(rt_device_t dev, rt_base_t pin, rt_base_t mode)
-{
- gpio_init_type gpio_init_struct;
- gpio_type *gpio_port;
- uint16_t gpio_pin;
-
- if (PIN_PORT(pin) < PIN_ATPORT_MAX)
- {
- gpio_port = PIN_ATPORT(pin);
- gpio_pin = PIN_ATPIN(pin);
- }
- else
- {
- return;
- }
-
- /* configure gpio_init_struct */
- gpio_default_para_init(&gpio_init_struct);
- gpio_init_struct.gpio_pins = gpio_pin;
- gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
- gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
- gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
- gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
-
- if (mode == PIN_MODE_OUTPUT)
- {
- /* output setting */
- gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
- gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
- gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
- }
- else if (mode == PIN_MODE_INPUT)
- {
- /* input setting: not pull. */
- gpio_init_struct.gpio_mode = GPIO_MODE_INPUT;
- gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
- }
- else if (mode == PIN_MODE_INPUT_PULLUP)
- {
- /* input setting: pull up. */
- gpio_init_struct.gpio_mode = GPIO_MODE_INPUT;
- gpio_init_struct.gpio_pull = GPIO_PULL_UP;
- }
- else if (mode == PIN_MODE_INPUT_PULLDOWN)
- {
- /* input setting: pull down. */
- gpio_init_struct.gpio_mode = GPIO_MODE_INPUT;
- gpio_init_struct.gpio_pull = GPIO_PULL_DOWN;
- }
- else if (mode == PIN_MODE_OUTPUT_OD)
- {
- /* output setting: od. */
- gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
- gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
- }
-
- gpio_init(gpio_port, &gpio_init_struct);
-}
-
-rt_inline rt_int32_t bit2bitno(rt_uint32_t bit)
-{
- int i;
- for (i = 0; i < 32; i++)
- {
- if ((0x01 << i) == bit)
- {
- return i;
- }
- }
- return -1;
-}
-
-rt_inline const struct pin_irq_map *get_pin_irq_map(uint32_t pinbit)
-{
- rt_int32_t mapindex = bit2bitno(pinbit);
- if (mapindex < 0 || mapindex >= ITEM_NUM(pin_irq_map))
- {
- return RT_NULL;
- }
- return &pin_irq_map[mapindex];
-};
-
-static rt_err_t at32_pin_attach_irq(struct rt_device *device, rt_int32_t pin,
- rt_uint32_t mode, void (*hdr)(void *args), void *args)
-{
- uint16_t gpio_pin;
- rt_base_t level;
- rt_int32_t irqindex = -1;
-
- if (PIN_PORT(pin) < PIN_ATPORT_MAX)
- {
- gpio_pin = PIN_ATPIN(pin);
- }
- else
- {
- return -RT_EINVAL;
- }
-
- irqindex = bit2bitno(gpio_pin);
- if (irqindex < 0 || irqindex >= ITEM_NUM(pin_irq_map))
- {
- return -RT_EINVAL;
- }
-
- level = rt_hw_interrupt_disable();
- if (pin_irq_handler_tab[irqindex].pin == pin &&
- pin_irq_handler_tab[irqindex].hdr == hdr &&
- pin_irq_handler_tab[irqindex].mode == mode &&
- pin_irq_handler_tab[irqindex].args == args)
- {
- rt_hw_interrupt_enable(level);
- return RT_EOK;
- }
- if (pin_irq_handler_tab[irqindex].pin != -1)
- {
- rt_hw_interrupt_enable(level);
- return -RT_EBUSY;
- }
- pin_irq_handler_tab[irqindex].pin = pin;
- pin_irq_handler_tab[irqindex].hdr = hdr;
- pin_irq_handler_tab[irqindex].mode = mode;
- pin_irq_handler_tab[irqindex].args = args;
- rt_hw_interrupt_enable(level);
-
- return RT_EOK;
-}
-
-static rt_err_t at32_pin_dettach_irq(struct rt_device *device, rt_int32_t pin)
-{
- uint16_t gpio_pin;
- rt_base_t level;
- rt_int32_t irqindex = -1;
-
- if (PIN_PORT(pin) < PIN_ATPORT_MAX)
- {
- gpio_pin = PIN_ATPIN(pin);
- }
- else
- {
- return -RT_EINVAL;
- }
- irqindex = bit2bitno(gpio_pin);
- if (irqindex < 0 || irqindex >= ITEM_NUM(pin_irq_map))
- {
- return -RT_EINVAL;
- }
-
- level = rt_hw_interrupt_disable();
- if (pin_irq_handler_tab[irqindex].pin == -1)
- {
- rt_hw_interrupt_enable(level);
- return RT_EOK;
- }
- pin_irq_handler_tab[irqindex].pin = -1;
- pin_irq_handler_tab[irqindex].hdr = RT_NULL;
- pin_irq_handler_tab[irqindex].mode = 0;
- pin_irq_handler_tab[irqindex].args = RT_NULL;
- rt_hw_interrupt_enable(level);
-
- return RT_EOK;
-}
-
-static rt_err_t at32_pin_irq_enable(struct rt_device *device, rt_base_t pin,
- rt_uint32_t enabled)
-{
- gpio_init_type gpio_init_struct;
- exint_init_type exint_init_struct;
- gpio_type *gpio_port;
- IRQn_Type irqn;
- uint16_t gpio_pin;
- const struct pin_irq_map *irqmap;
- rt_base_t level;
- rt_int32_t irqindex = -1;
-
- if (PIN_PORT(pin) < PIN_ATPORT_MAX)
- {
- gpio_port = PIN_ATPORT(pin);
- gpio_pin = PIN_ATPIN(pin);
- }
- else
- {
- return -RT_EINVAL;
- }
-
- if (enabled == PIN_IRQ_ENABLE)
- {
- irqindex = bit2bitno(gpio_pin);
- if (irqindex < 0 || irqindex >= ITEM_NUM(pin_irq_map))
- {
- return -RT_EINVAL;
- }
-
- level = rt_hw_interrupt_disable();
-
- if (pin_irq_handler_tab[irqindex].pin == -1)
- {
- rt_hw_interrupt_enable(level);
- return -RT_EINVAL;
- }
-
- irqmap = &pin_irq_map[irqindex];
-
- /* configure gpio_init_struct */
- gpio_default_para_init(&gpio_init_struct);
- exint_default_para_init(&exint_init_struct);
-
- gpio_init_struct.gpio_pins = irqmap->pinbit;
- gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
- exint_init_struct.line_select = irqmap->pinbit;
- exint_init_struct.line_mode = EXINT_LINE_INTERRUPUT;
- exint_init_struct.line_enable = TRUE;
- switch (pin_irq_handler_tab[irqindex].mode)
- {
- case PIN_IRQ_MODE_RISING:
- exint_init_struct.line_polarity = EXINT_TRIGGER_RISING_EDGE;
- break;
- case PIN_IRQ_MODE_FALLING:
- exint_init_struct.line_polarity = EXINT_TRIGGER_FALLING_EDGE;
- break;
- case PIN_IRQ_MODE_RISING_FALLING:
- exint_init_struct.line_polarity = EXINT_TRIGGER_BOTH_EDGE;
- break;
- }
- gpio_init(gpio_port, &gpio_init_struct);
-
- gpio_exint_line_config(PIN_ATPORTSOURCE(pin), PIN_ATPINSOURCE(pin));
-
- exint_init(&exint_init_struct);
-
- nvic_irq_enable(irqmap->irqno, 5, 0);
- pin_irq_enable_mask |= irqmap->pinbit;
-
- rt_hw_interrupt_enable(level);
- }
- else if (enabled == PIN_IRQ_DISABLE)
- {
- irqmap = get_pin_irq_map(gpio_pin);
- if (irqmap == RT_NULL)
- {
- return -RT_EINVAL;
- }
-
- level = rt_hw_interrupt_disable();
-
- pin_irq_enable_mask &= ~irqmap->pinbit;
-
-
- if ((irqmap->pinbit >= GPIO_PINS_5) && (irqmap->pinbit <= GPIO_PINS_9))
- {
- if (!(pin_irq_enable_mask & (GPIO_PINS_5 | GPIO_PINS_6 | GPIO_PINS_7 | GPIO_PINS_8 | GPIO_PINS_9)))
- {
- irqn = irqmap->irqno;
- }
- }
- else if ((irqmap->pinbit >= GPIO_PINS_10) && (irqmap->pinbit <= GPIO_PINS_15))
- {
- if (!(pin_irq_enable_mask & (GPIO_PINS_10 | GPIO_PINS_11 | GPIO_PINS_12 | GPIO_PINS_13 | GPIO_PINS_14 | GPIO_PINS_15)))
- {
- irqn = irqmap->irqno;
- }
- }
- else
- {
- irqn = irqmap->irqno;
- }
- nvic_irq_disable(irqn);
- rt_hw_interrupt_enable(level);
- }
- else
- {
- return -RT_EINVAL;
- }
-
- return RT_EOK;
-}
-
-const static struct rt_pin_ops _at32_pin_ops =
-{
- at32_pin_mode,
- at32_pin_write,
- at32_pin_read,
- at32_pin_attach_irq,
- at32_pin_dettach_irq,
- at32_pin_irq_enable,
- RT_NULL,
-};
-
-rt_inline void pin_irq_handler(int irqno)
-{
- exint_flag_clear(pin_irq_map[irqno].lineno);
- if (pin_irq_handler_tab[irqno].hdr)
- {
- pin_irq_handler_tab[irqno].hdr(pin_irq_handler_tab[irqno].args);
- }
-}
-
-void gpio_exint_handler(uint16_t GPIO_Pin)
-{
- pin_irq_handler(bit2bitno(GPIO_Pin));
-}
-
-void EXINT0_IRQHandler(void)
-{
- rt_interrupt_enter();
- gpio_exint_handler(GPIO_PINS_0);
- rt_interrupt_leave();
-}
-
-void EXINT1_IRQHandler(void)
-{
- rt_interrupt_enter();
- gpio_exint_handler(GPIO_PINS_1);
- rt_interrupt_leave();
-}
-
-void EXINT2_IRQHandler(void)
-{
- rt_interrupt_enter();
- gpio_exint_handler(GPIO_PINS_2);
- rt_interrupt_leave();
-}
-
-void EXINT3_IRQHandler(void)
-{
- rt_interrupt_enter();
- gpio_exint_handler(GPIO_PINS_3);
- rt_interrupt_leave();
-}
-
-void EXINT4_IRQHandler(void)
-{
- rt_interrupt_enter();
- gpio_exint_handler(GPIO_PINS_4);
- rt_interrupt_leave();
-}
-
-void EXINT9_5_IRQHandler(void)
-{
- rt_interrupt_enter();
- if (RESET != exint_flag_get(EXINT_LINE_5))
- {
- gpio_exint_handler(GPIO_PINS_5);
- }
- if (RESET != exint_flag_get(EXINT_LINE_6))
- {
- gpio_exint_handler(GPIO_PINS_6);
- }
- if (RESET != exint_flag_get(EXINT_LINE_7))
- {
- gpio_exint_handler(GPIO_PINS_7);
- }
- if (RESET != exint_flag_get(EXINT_LINE_8))
- {
- gpio_exint_handler(GPIO_PINS_8);
- }
- if (RESET != exint_flag_get(EXINT_LINE_9))
- {
- gpio_exint_handler(GPIO_PINS_9);
- }
- rt_interrupt_leave();
-}
-
-void EXINT15_10_IRQHandler(void)
-{
- rt_interrupt_enter();
- if (RESET != exint_flag_get(EXINT_LINE_10))
- {
- gpio_exint_handler(GPIO_PINS_10);
- }
- if (RESET != exint_flag_get(EXINT_LINE_11))
- {
- gpio_exint_handler(GPIO_PINS_11);
- }
- if (RESET != exint_flag_get(EXINT_LINE_12))
- {
- gpio_exint_handler(GPIO_PINS_12);
- }
- if (RESET != exint_flag_get(EXINT_LINE_13))
- {
- gpio_exint_handler(GPIO_PINS_13);
- }
- if (RESET != exint_flag_get(EXINT_LINE_14))
- {
- gpio_exint_handler(GPIO_PINS_14);
- }
- if (RESET != exint_flag_get(EXINT_LINE_15))
- {
- gpio_exint_handler(GPIO_PINS_15);
- }
- rt_interrupt_leave();
-}
-
-int rt_hw_pin_init(void)
-{
-
-#ifdef GPIOA
- crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
-#endif
-#ifdef GPIOB
- crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
-#endif
-#ifdef GPIOC
- crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE);
-#endif
-#ifdef GPIOD
- crm_periph_clock_enable(CRM_GPIOD_PERIPH_CLOCK, TRUE);
-#endif
-#ifdef GPIOE
- crm_periph_clock_enable(CRM_GPIOE_PERIPH_CLOCK, TRUE);
-#endif
-#ifdef GPIOF
- crm_periph_clock_enable(CRM_GPIOF_PERIPH_CLOCK, TRUE);
-#endif
-#ifdef GPIOG
- crm_periph_clock_enable(CRM_GPIOG_PERIPH_CLOCK, TRUE);
-#endif
-
- crm_periph_clock_enable(CRM_IOMUX_PERIPH_CLOCK, TRUE);
-
- return rt_device_pin_register("pin", &_at32_pin_ops, RT_NULL);
-}
-
-INIT_BOARD_EXPORT(rt_hw_pin_init);
-
-#endif /* RT_USING_PIN */
diff --git a/bsp/at32/libraries/f415/rt_drivers/drv_gpio.h b/bsp/at32/libraries/f415/rt_drivers/drv_gpio.h
deleted file mode 100644
index 16abd818a1..0000000000
--- a/bsp/at32/libraries/f415/rt_drivers/drv_gpio.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2020-01-07 shelton first version
- */
-
-#ifndef __DRV_GPIO_H__
-#define __DRV_GPIO_H__
-
-#include <rthw.h>
-#include <rtdevice.h>
-#include "board.h"
-
-#define __AT32_PORT(port) GPIO##port##_BASE
-
-#define GET_PIN(PORTx,PIN) (rt_base_t)((16 * ( ((rt_base_t)__AT32_PORT(PORTx) - (rt_base_t)GPIOA_BASE)/(0x0400UL) )) + PIN)
-
-#define __AT32_PIN(index, gpio, gpio_index) \
- { \
- index, GPIO##gpio, GPIO_Pins_##gpio_index, \
- GPIO_PortSourceGPIO##gpio, GPIO_PinsSource##gpio_index \
- }
-
-#define __AT32_PIN_RESERVE \
- { \
- -1, 0, 0, 0, 0 \
- }
-
-/* AT32 GPIO driver */
-struct pin_index
-{
- int index;
- gpio_type *gpio_x;
- rt_uint32_t pin;
- rt_uint32_t portsource;
- rt_uint32_t pinsource;
-};
-
-struct pin_irq_map
-{
- rt_uint16_t pinbit;
- rt_uint16_t lineno;
- IRQn_Type irqno;
-};
-
-int rt_hw_pin_init(void);
-
-#endif /* __DRV_GPIO_H__ */
-
diff --git a/bsp/at32/libraries/f415/rt_drivers/drv_hwtimer.c b/bsp/at32/libraries/f415/rt_drivers/drv_hwtimer.c
deleted file mode 100644
index 8c79412633..0000000000
--- a/bsp/at32/libraries/f415/rt_drivers/drv_hwtimer.c
+++ /dev/null
@@ -1,375 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-05-11 shelton first version
- */
-
-#include "board.h"
-#include "drv_hwtimer.h"
-
-//#define DRV_DEBUG
-#define LOG_TAG "drv.hwtimer"
-#include <drv_log.h>
-
-#ifdef BSP_USING_HWTIMER
-
-enum
-{
-#ifdef BSP_USING_HWTMR1
- TMR1_INDEX,
-#endif
-
-#ifdef BSP_USING_HWTMR2
- TMR2_INDEX,
-#endif
-
-#ifdef BSP_USING_HWTMR3
- TMR3_INDEX,
-#endif
-
-#ifdef BSP_USING_HWTMR4
- TMR4_INDEX,
-#endif
-
-#ifdef BSP_USING_HWTMR5
- TMR5_INDEX,
-#endif
-
-#ifdef BSP_USING_HWTMR9
- TMR9_INDEX,
-#endif
-
-#ifdef BSP_USING_HWTMR10
- TMR10_INDEX,
-#endif
-
-#ifdef BSP_USING_HWTMR11
- TMR11_INDEX,
-#endif
-};
-
-struct at32_hwtimer
-{
- rt_hwtimer_t tmr_device;
- tmr_type* tmr_x;
- IRQn_Type tmr_irqn;
- char *name;
-};
-
-static struct at32_hwtimer at32_hwtimer_obj[] =
-{
-#ifdef BSP_USING_HWTMR1
- TMR1_CONFIG,
-#endif
-
-#ifdef BSP_USING_HWTMR2
- TMR2_CONFIG,
-#endif
-
-#ifdef BSP_USING_HWTMR3
- TMR3_CONFIG,
-#endif
-
-#ifdef BSP_USING_HWTMR4
- TMR4_CONFIG,
-#endif
-
-#ifdef BSP_USING_HWTMR5
- TMR5_CONFIG,
-#endif
-
-#ifdef BSP_USING_HWTMR9
- TMR9_CONFIG,
-#endif
-
-#ifdef BSP_USING_HWTMR10
- TMR10_CONFIG,
-#endif
-
-#ifdef BSP_USING_HWTMR11
- TMR11_CONFIG,
-#endif
-};
-
-static void tmr_pclk_get(rt_uint32_t *pclk1_doubler, rt_uint32_t *pclk2_doubler)
-{
- crm_clocks_freq_type clocks_struct;
-
- *pclk1_doubler = 1;
- *pclk2_doubler = 1;
-
- crm_clocks_freq_get(&clocks_struct);
-
- if(clocks_struct.ahb_freq != clocks_struct.apb1_freq)
- {
- *pclk1_doubler = 2;
- }
-
- if(clocks_struct.ahb_freq != clocks_struct.apb2_freq)
- {
- *pclk2_doubler = 2;
- }
-}
-
-static void at32_timer_init(struct rt_hwtimer_device *timer, rt_uint32_t state)
-{
- crm_clocks_freq_type clocks_struct;
- rt_uint32_t pclk1_doubler = 0, pclk2_doubler = 0;
- rt_uint32_t prescaler_value = 0, tmr_clock = 0;
- tmr_type *tmr_x = RT_NULL;
- struct at32_hwtimer *tmr_device = RT_NULL;
-
- RT_ASSERT(timer != RT_NULL);
- if (state)
- {
- tmr_x = (tmr_type *)timer->parent.user_data;
- tmr_device = (struct at32_hwtimer *)timer;
-
- /* timer clock enable */
- at32_msp_hwtmr_init(tmr_x);
-
- /* get timer clock */
- tmr_pclk_get(&pclk1_doubler, &pclk2_doubler);
- crm_clocks_freq_get(&clocks_struct);
- if((tmr_x == TMR1) || (tmr_x == TMR9) || (tmr_x == TMR10) || (tmr_x == TMR11))
- {
- tmr_clock = clocks_struct.apb2_freq * pclk2_doubler;
- }
- else
- {
- tmr_clock = clocks_struct.apb1_freq * pclk1_doubler;
- }
- /* set timer clock is 1mhz */
- prescaler_value = (uint32_t)(tmr_clock / 10000) - 1;
- tmr_base_init(tmr_x, 10000 - 1, prescaler_value);
- tmr_clock_source_div_set(tmr_x, TMR_CLOCK_DIV1);
- tmr_repetition_counter_set(tmr_x, 0);
-
- if (timer->info->cntmode == HWTIMER_CNTMODE_UP)
- {
- tmr_cnt_dir_set(tmr_x, TMR_COUNT_UP);
- }
- else
- {
- tmr_cnt_dir_set(tmr_x, TMR_COUNT_DOWN);
- }
-
- /* enable the timer global interrupt and clear flag */
- nvic_irq_enable(tmr_device->tmr_irqn, 2, 0);
-
- tmr_interrupt_enable(tmr_x, TMR_OVF_INT, TRUE);
- tmr_flag_clear(tmr_x, TMR_OVF_INT);
-
- LOG_D("%s init success", tmr_device->name);
- }
-}
-
-static rt_err_t at32_timer_start(rt_hwtimer_t *timer, rt_uint32_t pr, rt_hwtimer_mode_t opmode)
-{
- rt_err_t result = RT_EOK;
- tmr_type *tmr_x = RT_NULL;
-
- RT_ASSERT(timer != RT_NULL);
- tmr_x = (tmr_type *)timer->parent.user_data;
-
- /* set tmr_x count */
- tmr_counter_value_set(tmr_x, 0);
- /* set tmr_x period register */
- tmr_period_value_set(tmr_x, pr - 1);
-
- if (opmode == HWTIMER_MODE_ONESHOT)
- {
- /* set timer to one cycle mode */
- tmr_one_cycle_mode_enable(tmr_x, TRUE);
- }
- else
- {
- /* set timer to period mode */
- tmr_one_cycle_mode_enable(tmr_x, FALSE);
- }
-
- /* start timer */
- tmr_counter_enable(tmr_x, TRUE);
-
- return result;
-}
-
-static void at32_timer_stop(rt_hwtimer_t *timer)
-{
- tmr_type *tmr_x = RT_NULL;
-
- RT_ASSERT(timer != RT_NULL);
- tmr_x = (tmr_type *)timer->parent.user_data;
-
- /* stop timer */
- tmr_counter_enable(tmr_x, FALSE);
-
- /* set tmr_x count */
- tmr_counter_value_set(tmr_x, 0);
-}
-
-static rt_uint32_t at32_timer_counter_get(rt_hwtimer_t *timer)
-{
- tmr_type *tmr_x = RT_NULL;
-
- RT_ASSERT(timer != RT_NULL);
-
- tmr_x = (tmr_type *)timer->parent.user_data;
-
- return tmr_counter_value_get(tmr_x);
-}
-
-static rt_err_t at32_timer_ctrl(rt_hwtimer_t *timer, rt_uint32_t cmd, void *arg)
-{
- crm_clocks_freq_type clocks_struct;
- tmr_type *tmr_x = RT_NULL;
- rt_err_t result = RT_EOK;
- rt_uint32_t pclk1_doubler = 0, pclk2_doubler = 0, tmr_clock = 0;
-
- RT_ASSERT(timer != RT_NULL);
- RT_ASSERT(arg != RT_NULL);
-
- tmr_x = (tmr_type *)timer->parent.user_data;
-
- switch(cmd)
- {
- case HWTIMER_CTRL_FREQ_SET:
- {
- rt_uint32_t freq;
- rt_uint16_t val;
-
- /* get timer frequence */
- freq = *((rt_uint32_t *)arg);
-
- /* get timer clock */
- tmr_pclk_get(&pclk1_doubler, &pclk2_doubler);
- crm_clocks_freq_get(&clocks_struct);
- if((tmr_x == TMR1) || (tmr_x == TMR9) || (tmr_x == TMR10) || (tmr_x == TMR11))
- {
- tmr_clock = clocks_struct.apb2_freq * pclk2_doubler;
- }
- else
- {
- tmr_clock = clocks_struct.apb1_freq * pclk1_doubler;
- }
- /* set div value */
- val = tmr_clock / freq;
-
- tmr_div_value_set(tmr_x, val - 1);
- tmr_event_sw_trigger(tmr_x, TMR_OVERFLOW_SWTRIG);
- }
- break;
- default:
- {
- result = -RT_ENOSYS;
- }
- break;
- }
-
- return result;
-}
-
-static const struct rt_hwtimer_info _info = TMR_DEV_INFO_CONFIG;
-static const struct rt_hwtimer_ops _ops =
-{
- .init = at32_timer_init,
- .start = at32_timer_start,
- .stop = at32_timer_stop,
- .count_get = at32_timer_counter_get,
- .control = at32_timer_ctrl,
-};
-
-#ifdef BSP_USING_HWTMR2
-void TMR2_GLOBAL_IRQHandler(void)
-{
- /* enter interrupt */
- rt_interrupt_enter();
-
- if(tmr_flag_get(TMR2, TMR_OVF_FLAG) == SET)
- {
- rt_device_hwtimer_isr(&at32_hwtimer_obj[TMR2_INDEX].tmr_device);
- tmr_flag_clear(TMR2, TMR_OVF_FLAG);
- }
- /* leave interrupt */
- rt_interrupt_leave();
-}
-#endif
-
-#ifdef BSP_USING_HWTMR3
-void TMR3_GLOBAL_IRQHandler(void)
-{
- /* enter interrupt */
- rt_interrupt_enter();
-
- if(tmr_flag_get(TMR3, TMR_OVF_FLAG) == SET)
- {
- rt_device_hwtimer_isr(&at32_hwtimer_obj[TMR3_INDEX].tmr_device);
- tmr_flag_clear(TMR3, TMR_OVF_FLAG);
- }
- /* leave interrupt */
- rt_interrupt_leave();
-}
-#endif
-
-#ifdef BSP_USING_HWTMR4
-void TMR4_GLOBAL_IRQHandler(void)
-{
- /* enter interrupt */
- rt_interrupt_enter();
-
- if(tmr_flag_get(TMR4, TMR_OVF_FLAG) == SET)
- {
- rt_device_hwtimer_isr(&at32_hwtimer_obj[TMR4_INDEX].tmr_device);
- tmr_flag_clear(TMR4, TMR_OVF_FLAG);
- }
- /* leave interrupt */
- rt_interrupt_leave();
-}
-#endif
-
-#ifdef BSP_USING_HWTMR5
-void TMR5_GLOBAL_IRQHandler(void)
-{
- /* enter interrupt */
- rt_interrupt_enter();
-
- if(tmr_flag_get(TMR5, TMR_OVF_FLAG) == SET)
- {
- rt_device_hwtimer_isr(&at32_hwtimer_obj[TMR5_INDEX].tmr_device);
- tmr_flag_clear(TMR5, TMR_OVF_FLAG);
- }
- /* leave interrupt */
- rt_interrupt_leave();
-}
-#endif
-
-static int rt_hw_hwtimer_init(void)
-{
- int i = 0;
- int result = RT_EOK;
-
- for (i = 0; i < sizeof(at32_hwtimer_obj) / sizeof(at32_hwtimer_obj[0]); i++)
- {
- at32_hwtimer_obj[i].tmr_device.info = &_info;
- at32_hwtimer_obj[i].tmr_device.ops = &_ops;
- if (rt_device_hwtimer_register(&at32_hwtimer_obj[i].tmr_device, at32_hwtimer_obj[i].name, at32_hwtimer_obj[i].tmr_x) == RT_EOK)
- {
- LOG_D("%s register success", at32_hwtimer_obj[i].name);
- }
- else
- {
- LOG_E("%s register failed", at32_hwtimer_obj[i].name);
- result = -RT_ERROR;
- }
- }
-
- return result;
-}
-
-INIT_BOARD_EXPORT(rt_hw_hwtimer_init);
-
-#endif /* BSP_USING_HWTIMER */
diff --git a/bsp/at32/libraries/f415/rt_drivers/drv_hwtimer.h b/bsp/at32/libraries/f415/rt_drivers/drv_hwtimer.h
deleted file mode 100644
index 624437f559..0000000000
--- a/bsp/at32/libraries/f415/rt_drivers/drv_hwtimer.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2020-03-16 Leo first version
- */
-
-#ifndef __TMR_CONFIG_H__
-#define __TMR_CONFIG_H__
-
-#include <rtthread.h>
-#include <drivers/hwtimer.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef TMR_DEV_INFO_CONFIG
-#define TMR_DEV_INFO_CONFIG \
- { \
- .maxfreq = 1000000, \
- .minfreq = 4000, \
- .maxcnt = 0xFFFF, \
- .cntmode = HWTIMER_CNTMODE_UP, \
- }
-#endif /* TIM_DEV_INFO_CONFIG */
-
-#ifdef BSP_USING_HWTMR2
-#ifndef TMR2_CONFIG
-#define TMR2_CONFIG \
- { \
- .tmr_x = TMR2, \
- .tmr_irqn = TMR2_GLOBAL_IRQn, \
- .name = "timer2", \
- }
-#endif /* TMR2_CONFIG */
-#endif /* BSP_USING_HWTMR2 */
-
-#ifdef BSP_USING_HWTMR3
-#ifndef TMR3_CONFIG
-#define TMR3_CONFIG \
- { \
- .tmr_x = TMR3, \
- .tmr_irqn = TMR3_GLOBAL_IRQn, \
- .name = "timer3", \
- }
-#endif /* TMR3_CONFIG */
-#endif /* BSP_USING_HWTMR3 */
-
-#ifdef BSP_USING_HWTMR4
-#ifndef TMR4_CONFIG
-#define TMR4_CONFIG \
- { \
- .tmr_x = TMR4, \
- .tmr_irqn = TMR4_GLOBAL_IRQn, \
- .name = "timer4", \
- }
-#endif /* TMR4_CONFIG */
-#endif /* BSP_USING_HWTMR4 */
-
-#ifdef BSP_USING_HWTMR5
-#ifndef TMR5_CONFIG
-#define TMR5_CONFIG \
- { \
- .tmr_x = TMR5, \
- .tmr_irqn = TMR5_GLOBAL_IRQn, \
- .name = "timer5", \
- }
-#endif /* TMR5_CONFIG */
-#endif /* BSP_USING_HWTMR5 */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __TMR_CONFIG_H__ */
-
diff --git a/bsp/at32/libraries/f415/rt_drivers/drv_log.h b/bsp/at32/libraries/f415/rt_drivers/drv_log.h
deleted file mode 100644
index 45345aa150..0000000000
--- a/bsp/at32/libraries/f415/rt_drivers/drv_log.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-21 shelton first version
- */
-
-/*
- * NOTE: DO NOT include this file on the header file.
- */
-
-#ifndef LOG_TAG
-#define DBG_TAG "drv"
-#else
-#define DBG_TAG LOG_TAG
-#endif /* LOG_TAG */
-
-#ifdef DRV_DEBUG
-#define DBG_LVL DBG_LOG
-#else
-#define DBG_LVL DBG_INFO
-#endif /* DRV_DEBUG */
-
-#include <rtdbg.h>
diff --git a/bsp/at32/libraries/f415/rt_drivers/drv_pwm.c b/bsp/at32/libraries/f415/rt_drivers/drv_pwm.c
deleted file mode 100644
index 3b36a6c683..0000000000
--- a/bsp/at32/libraries/f415/rt_drivers/drv_pwm.c
+++ /dev/null
@@ -1,464 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-10 shelton first version
- */
-
-#include "board.h"
-
-#ifdef RT_USING_PWM
-#include "drv_pwm.h"
-#include <drivers/rt_drv_pwm.h>
-
-//#define DRV_DEBUG
-#define LOG_TAG "drv.pwm"
-#include <drv_log.h>
-
-#define MAX_PERIOD 65535
-
-struct rt_device_pwm pwm_device;
-
-struct at32_pwm
-{
- struct rt_device_pwm pwm_device;
- tmr_type* tmr_x;
- rt_uint8_t channel;
- char *name;
-};
-
-enum
-{
-#ifdef BSP_USING_PWM1
- PWM1_INDEX,
-#endif
-#ifdef BSP_USING_PWM2
- PWM2_INDEX,
-#endif
-#ifdef BSP_USING_PWM3
- PWM3_INDEX,
-#endif
-#ifdef BSP_USING_PWM4
- PWM4_INDEX,
-#endif
-#ifdef BSP_USING_PWM5
- PWM5_INDEX,
-#endif
-#ifdef BSP_USING_PWM9
- PWM9_INDEX,
-#endif
-#ifdef BSP_USING_PWM10
- PWM10_INDEX,
-#endif
-#ifdef BSP_USING_PWM11
- PWM11_INDEX,
-#endif
-};
-
-static struct at32_pwm at32_pwm_obj[] =
-{
-#ifdef BSP_USING_PWM1
- PWM1_CONFIG,
-#endif
-
-#ifdef BSP_USING_PWM2
- PWM2_CONFIG,
-#endif
-
-#ifdef BSP_USING_PWM3
- PWM3_CONFIG,
-#endif
-
-#ifdef BSP_USING_PWM4
- PWM4_CONFIG,
-#endif
-
-#ifdef BSP_USING_PWM5
- PWM5_CONFIG,
-#endif
-
-#ifdef BSP_USING_PWM9
- PWM9_CONFIG,
-#endif
-
-#ifdef BSP_USING_PWM10
- PWM10_CONFIG,
-#endif
-
-#ifdef BSP_USING_PWM11
- PWM11_CONFIG,
-#endif
-};
-
-static rt_err_t drv_pwm_control(struct rt_device_pwm *device, int cmd, void *arg);
-static struct rt_pwm_ops drv_ops =
-{
- drv_pwm_control
-};
-
-static void tmr_pclk_get(rt_uint32_t *pclk1_doubler, rt_uint32_t *pclk2_doubler)
-{
- crm_clocks_freq_type clocks_struct;
-
- *pclk1_doubler = 1;
- *pclk2_doubler = 1;
-
- crm_clocks_freq_get(&clocks_struct);
-
- if(clocks_struct.ahb_freq != clocks_struct.apb1_freq)
- {
- *pclk1_doubler = 2;
- }
-
- if(clocks_struct.ahb_freq != clocks_struct.apb2_freq)
- {
- *pclk2_doubler = 2;
- }
-}
-
-static rt_err_t drv_pwm_enable(tmr_type* tmr_x, struct rt_pwm_configuration *configuration, rt_bool_t enable)
-{
- /* get the value of channel */
- rt_uint32_t channel = configuration->channel;
-
- if (!configuration->complementary)
- {
- if (!enable)
- {
- if(channel == 1)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_1, FALSE);
- }
- else if(channel == 2)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_2, FALSE);
- }
- else if(channel == 3)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_3, FALSE);
- }
- else if(channel == 4)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_4, FALSE);
- }
- }
- else
- {
- if(channel == 1)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_1, TRUE);
- }
- else if(channel == 2)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_2, TRUE);
- }
- else if(channel == 3)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_3, TRUE);
- }
- else if(channel == 4)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_4, TRUE);
- }
- }
- }
- else
- {
- if (!enable)
- {
- if(channel == 1)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_1C, FALSE);
- }
- else if(channel == 2)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_2C, FALSE);
- }
- else if(channel == 3)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_3C, FALSE);
- }
- }
- else
- {
- if(channel == 1)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_1C, TRUE);
- }
- else if(channel == 2)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_2C, TRUE);
- }
- else if(channel == 3)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_3C, TRUE);
- }
- }
- }
-
- /* tmr_x enable counter */
- tmr_counter_enable(tmr_x, TRUE);
-
- return RT_EOK;
-}
-
-static rt_err_t drv_pwm_get(tmr_type* tmr_x, struct rt_pwm_configuration *configuration)
-{
- crm_clocks_freq_type clocks_struct;
- rt_uint32_t pr, div, c1dt, c2dt, c3dt, c4dt;
- rt_uint32_t pclk1_doubler = 0, pclk2_doubler = 0;
- rt_uint32_t channel = configuration->channel;
- rt_uint64_t tmr_clock;
-
- pr = tmr_x->pr;
- div = tmr_x->div;
- c1dt = tmr_x->c1dt;
- c2dt = tmr_x->c2dt;
- c3dt = tmr_x->c3dt;
- c4dt = tmr_x->c4dt;
-
- tmr_pclk_get(&pclk1_doubler, &pclk2_doubler);
-
- crm_clocks_freq_get(&clocks_struct);
-
- if((tmr_x == TMR1) || (tmr_x == TMR9) || (tmr_x == TMR10) || (tmr_x == TMR11))
- {
- tmr_clock = clocks_struct.apb2_freq * pclk2_doubler;
- }
- else
- {
- tmr_clock = clocks_struct.apb1_freq * pclk1_doubler;
- }
-
- /* convert nanosecond to frequency and duty cycle. */
- tmr_clock /= 1000000UL;
- configuration->period = (pr + 1) * (div + 1) * 1000UL / tmr_clock;
-
- if(channel == 1)
- configuration->pulse = (c1dt) * (div + 1) * 1000UL / tmr_clock;
- if(channel == 2)
- configuration->pulse = (c2dt) * (div + 1) * 1000UL / tmr_clock;
- if(channel == 3)
- configuration->pulse = (c3dt) * (div + 1) * 1000UL / tmr_clock;
- if(channel == 4)
- configuration->pulse = (c4dt) * (div + 1) * 1000UL / tmr_clock;
-
- return RT_EOK;
-}
-
-static rt_err_t drv_pwm_set(tmr_type* tmr_x, struct rt_pwm_configuration *configuration)
-{
- crm_clocks_freq_type clocks_struct;
- tmr_output_config_type tmr_oc_config_struct;
- tmr_channel_select_type channel_select;
- rt_uint32_t period, pulse, channel, tmr_clock;
- rt_uint32_t pclk1_doubler = 0, pclk2_doubler = 0;
- rt_uint64_t psc;
-
- /* init timer pin and enable clock */
- at32_msp_tmr_init(tmr_x);
-
- tmr_pclk_get(&pclk1_doubler, &pclk2_doubler);
-
- crm_clocks_freq_get(&clocks_struct);
-
- if((tmr_x == TMR1) || (tmr_x == TMR9) || (tmr_x == TMR10) || (tmr_x == TMR11))
- {
- tmr_clock = clocks_struct.apb2_freq * pclk2_doubler;
- }
- else
- {
- tmr_clock = clocks_struct.apb1_freq * pclk1_doubler;
- }
-
- /* convert nanosecond to frequency and duty cycle. */
- tmr_clock /= 1000000UL;
- /* calculate pwm period */
- period = (unsigned long long)configuration->period * tmr_clock / 1000ULL;;
- psc = period / MAX_PERIOD + 1;
- period = period / psc;
- /* calculate pulse width */
- pulse = (unsigned long long)configuration->pulse * tmr_clock / psc / 1000ULL;
- /* get channel parameter */
- channel = configuration->channel;
-
- /* tmr base init */
- tmr_base_init(tmr_x, period - 1, psc - 1);
- tmr_clock_source_div_set(tmr_x, TMR_CLOCK_DIV1);
-
- /* pwm mode configuration */
- tmr_output_default_para_init(&tmr_oc_config_struct);
- /* config pwm mode */
- tmr_oc_config_struct.oc_mode = TMR_OUTPUT_CONTROL_PWM_MODE_A;
-
- if (!configuration->complementary)
- {
- tmr_oc_config_struct.oc_idle_state = FALSE;
- tmr_oc_config_struct.oc_output_state = FALSE;
- tmr_oc_config_struct.oc_polarity = TMR_OUTPUT_ACTIVE_HIGH;
- }
- else
- {
- tmr_oc_config_struct.occ_idle_state = FALSE;
- tmr_oc_config_struct.occ_output_state = FALSE;
- tmr_oc_config_struct.occ_polarity = TMR_OUTPUT_ACTIVE_HIGH;
- }
-
- if(channel == 1)
- {
- channel_select = TMR_SELECT_CHANNEL_1;
- }
- else if(channel == 2)
- {
- channel_select = TMR_SELECT_CHANNEL_2;
- }
- else if(channel == 3)
- {
- channel_select = TMR_SELECT_CHANNEL_3;
- }
- else if(channel == 4)
- {
- channel_select = TMR_SELECT_CHANNEL_4;
- }
-
- /* config tmr pwm output */
- tmr_output_channel_config(tmr_x, channel_select, &tmr_oc_config_struct);
- tmr_output_channel_buffer_enable(tmr_x, channel_select, TRUE);
- tmr_channel_value_set(tmr_x, channel_select, pulse);
- /* enable tmr period buffer */
- tmr_period_buffer_enable(tmr_x, TRUE);
- /* enable output */
- tmr_output_enable(tmr_x, TRUE);
-
- return RT_EOK;
-}
-
-static rt_err_t drv_pwm_control(struct rt_device_pwm *device, int cmd, void *arg)
-{
- struct rt_pwm_configuration *configuration = (struct rt_pwm_configuration *)arg;
- tmr_type *tmr_x = (tmr_type *)device->parent.user_data;
-
- switch (cmd)
- {
- case PWMN_CMD_ENABLE:
- configuration->complementary = RT_TRUE;
- case PWM_CMD_ENABLE:
- return drv_pwm_enable(tmr_x, configuration, RT_TRUE);
- case PWMN_CMD_DISABLE:
- configuration->complementary = RT_FALSE;
- case PWM_CMD_DISABLE:
- return drv_pwm_enable(tmr_x, configuration, RT_FALSE);
- case PWM_CMD_SET:
- return drv_pwm_set(tmr_x, configuration);
- case PWM_CMD_GET:
- return drv_pwm_get(tmr_x, configuration);
- default:
- return RT_EINVAL;
- }
-}
-
-static void pwm_get_channel(void)
-{
-#ifdef BSP_USING_PWM1_CH1
- at32_pwm_obj[PWM1_INDEX].channel = 1;
-#endif
-#ifdef BSP_USING_PWM1_CH2
- at32_pwm_obj[PWM1_INDEX].channel = 2;
-#endif
-#ifdef BSP_USING_PWM1_CH3
- at32_pwm_obj[PWM1_INDEX].channel = 3;
-#endif
-#ifdef BSP_USING_PWM1_CH4
- at32_pwm_obj[PWM1_INDEX].channel = 4;
-#endif
-#ifdef BSP_USING_PWM2_CH1
- at32_pwm_obj[PWM2_INDEX].channel = 1;
-#endif
-#ifdef BSP_USING_PWM2_CH2
- at32_pwm_obj[PWM2_INDEX].channel = 2;
-#endif
-#ifdef BSP_USING_PWM2_CH3
- at32_pwm_obj[PWM2_INDEX].channel = 3;
-#endif
-#ifdef BSP_USING_PWM2_CH4
- at32_pwm_obj[PWM2_INDEX].channel = 4;
-#endif
-#ifdef BSP_USING_PWM3_CH1
- at32_pwm_obj[PWM3_INDEX].channel = 1;
-#endif
-#ifdef BSP_USING_PWM3_CH2
- at32_pwm_obj[PWM3_INDEX].channel = 2;
-#endif
-#ifdef BSP_USING_PWM3_CH3
- at32_pwm_obj[PWM3_INDEX].channel = 3;
-#endif
-#ifdef BSP_USING_PWM3_CH4
- at32_pwm_obj[PWM3_INDEX].channel = 4;
-#endif
-#ifdef BSP_USING_PWM4_CH1
- at32_pwm_obj[PWM4_INDEX].channel = 1;
-#endif
-#ifdef BSP_USING_PWM4_CH2
- at32_pwm_obj[PWM4_INDEX].channel = 2;
-#endif
-#ifdef BSP_USING_PWM4_CH3
- at32_pwm_obj[PWM4_INDEX].channel = 3;
-#endif
-#ifdef BSP_USING_PWM4_CH4
- at32_pwm_obj[PWM4_INDEX].channel = 4;
-#endif
-#ifdef BSP_USING_PWM5_CH1
- at32_pwm_obj[PWM5_INDEX].channel = 1;
-#endif
-#ifdef BSP_USING_PWM5_CH2
- at32_pwm_obj[PWM5_INDEX].channel = 2;
-#endif
-#ifdef BSP_USING_PWM5_CH3
- at32_pwm_obj[PWM5_INDEX].channel = 3;
-#endif
-#ifdef BSP_USING_PWM5_CH4
- at32_pwm_obj[PWM5_INDEX].channel = 4;
-#endif
-#ifdef BSP_USING_PWM9_CH1
- at32_pwm_obj[PWM9_INDEX].channel = 1;
-#endif
-#ifdef BSP_USING_PWM9_CH2
- at32_pwm_obj[PWM9_INDEX].channel = 2;
-#endif
-#ifdef BSP_USING_PWM9_CH3
- at32_pwm_obj[PWM9_INDEX].channel = 3;
-#endif
-#ifdef BSP_USING_PWM9_CH4
- at32_pwm_obj[PWM9_INDEX].channel = 4;
-#endif
-}
-
-static int rt_hw_pwm_init(void)
-{
- int i = 0;
- int result = RT_EOK;
-
- pwm_get_channel();
-
- for(i = 0; i < sizeof(at32_pwm_obj) / sizeof(at32_pwm_obj[0]); i++)
- {
- if(rt_device_pwm_register(&at32_pwm_obj[i].pwm_device, at32_pwm_obj[i].name, &drv_ops, at32_pwm_obj[i].tmr_x) == RT_EOK)
- {
- LOG_D("%s register success", at32_pwm_obj[i].name);
- }
- else
- {
- LOG_D("%s register failed", at32_pwm_obj[i].name);
- result = -RT_ERROR;
- }
- }
-
- return result;
-}
-
-INIT_BOARD_EXPORT(rt_hw_pwm_init);
-
-#endif /* RT_USING_PWM */
diff --git a/bsp/at32/libraries/f415/rt_drivers/drv_pwm.h b/bsp/at32/libraries/f415/rt_drivers/drv_pwm.h
deleted file mode 100644
index d303401abb..0000000000
--- a/bsp/at32/libraries/f415/rt_drivers/drv_pwm.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-10 leo first version
- */
-
-#ifndef __PWM_CONFIG_H__
-#define __PWM_CONFIG_H__
-
-#include <rtthread.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef BSP_USING_PWM1
-#ifndef PWM1_CONFIG
-#define PWM1_CONFIG \
- { \
- .tmr_x = TMR1, \
- .name = "pwm1", \
- .channel = 0 \
- }
-#endif /* PWM1_CONFIG */
-#endif /* BSP_USING_PWM1 */
-
-#ifdef BSP_USING_PWM2
-#ifndef PWM2_CONFIG
-#define PWM2_CONFIG \
- { \
- .tmr_x = TMR2, \
- .name = "pwm2", \
- .channel = 0 \
- }
-#endif /* PWM2_CONFIG */
-#endif /* BSP_USING_PWM2 */
-
-#ifdef BSP_USING_PWM3
-#ifndef PWM3_CONFIG
-#define PWM3_CONFIG \
- { \
- .tmr_x = TMR3, \
- .name = "pwm3", \
- .channel = 0 \
- }
-#endif /* PWM3_CONFIG */
-#endif /* BSP_USING_PWM3 */
-
-#ifdef BSP_USING_PWM4
-#ifndef PWM4_CONFIG
-#define PWM4_CONFIG \
- { \
- .tmr_x = TMR4, \
- .name = "pwm4", \
- .channel = 0 \
- }
-#endif /* PWM4_CONFIG */
-#endif /* BSP_USING_PWM4 */
-
-#ifdef BSP_USING_PWM5
-#ifndef PWM5_CONFIG
-#define PWM5_CONFIG \
- { \
- .tmr_x = TMR5, \
- .name = "pwm5", \
- .channel = 0 \
- }
-#endif /* PWM5_CONFIG */
-#endif /* BSP_USING_PWM5 */
-
-#ifdef BSP_USING_PWM6
-#ifndef PWM6_CONFIG
-#define PWM6_CONFIG \
- { \
- .tmr_x = TMR6, \
- .name = "pwm6", \
- .channel = 0 \
- }
-#endif /* PWM6_CONFIG */
-#endif /* BSP_USING_PWM6 */
-
-#ifdef BSP_USING_PWM7
-#ifndef PWM7_CONFIG
-#define PWM7_CONFIG \
- { \
- .tmr_x = TMR7, \
- .name = "pwm7", \
- .channel = 0 \
- }
-#endif /* PWM7_CONFIG */
-#endif /* BSP_USING_PWM7 */
-
-#ifdef BSP_USING_PWM8
-#ifndef PWM8_CONFIG
-#define PWM8_CONFIG \
- { \
- .tmr_x = TMR8, \
- .name = "pwm8", \
- .channel = 12 \
- }
-#endif /* PWM8_CONFIG */
-#endif /* BSP_USING_PWM8 */
-
-#ifdef BSP_USING_PWM9
-#ifndef PWM9_CONFIG
-#define PWM9_CONFIG \
- { \
- .tmr_x = TMR9, \
- .name = "pwm9", \
- .channel = 0 \
- }
-#endif /* PWM9_CONFIG */
-#endif /* BSP_USING_PWM9 */
-
-#ifdef BSP_USING_PWM10
-#ifndef PWM10_CONFIG
-#define PWM10_CONFIG \
- { \
- .tmr_x = TMR10, \
- .name = "pwm10", \
- .channel = 0 \
- }
-#endif /* PWM10_CONFIG */
-#endif /* BSP_USING_PWM10 */
-
-#ifdef BSP_USING_PWM11
-#ifndef PWM11_CONFIG
-#define PWM11_CONFIG \
- { \
- .tmr_x = TMR11, \
- .name = "pwm11", \
- .channel = 0 \
- }
-#endif /* PWM11_CONFIG */
-#endif /* BSP_USING_PWM11 */
-
-#ifdef BSP_USING_PWM12
-#ifndef PWM12_CONFIG
-#define PWM12_CONFIG \
- { \
- .tmr_x = TMR12, \
- .name = "pwm12", \
- .channel = 0 \
- }
-#endif /* PWM12_CONFIG */
-#endif /* BSP_USING_PWM12 */
-
-#ifdef BSP_USING_PWM13
-#ifndef PWM13_CONFIG
-#define PWM13_CONFIG \
- { \
- .tmr_x = TMR13, \
- .name = "pwm13", \
- .channel = 0 \
- }
-#endif /* PWM13_CONFIG */
-#endif /* BSP_USING_PWM13 */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __PWM_CONFIG_H__ */
diff --git a/bsp/at32/libraries/f415/rt_drivers/drv_sdio.c b/bsp/at32/libraries/f415/rt_drivers/drv_sdio.c
deleted file mode 100644
index 2da45546d9..0000000000
--- a/bsp/at32/libraries/f415/rt_drivers/drv_sdio.c
+++ /dev/null
@@ -1,823 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-08 shelton first version
- */
-
-#include "board.h"
-#include "drv_sdio.h"
-
-#ifdef BSP_USING_SDIO
-#if !defined (BSP_USING_SDIO1)
-#error "Please define at least one SDIOx"
-#endif
-
-//#define DRV_DEBUG
-#define LOG_TAG "drv.sdio"
-#include <drv_log.h>
-
-static struct at32_sdio_config sdio_config = SDIO_BUS_CONFIG;
-static struct at32_sdio_class sdio_obj;
-static struct rt_mmcsd_host *host;
-
-#define SDIO_TX_RX_COMPLETE_TIMEOUT_LOOPS (100000)
-
-#define RT_HW_SDIO_LOCK(_sdio) rt_mutex_take(&_sdio->mutex, RT_WAITING_FOREVER)
-#define RT_HW_SDIO_UNLOCK(_sdio) rt_mutex_release(&_sdio->mutex);
-
-struct sdio_pkg
-{
- struct rt_mmcsd_cmd *cmd;
- void *buff;
- rt_uint32_t flag;
-};
-
-struct rt_hw_sdio
-{
- struct rt_mmcsd_host *host;
- struct at32_sdio_des sdio_des;
- struct rt_event event;
- struct rt_mutex mutex;
- struct sdio_pkg *pkg;
-};
-
-ALIGN(SDIO_ALIGN_LEN)
-static rt_uint8_t cache_buf[SDIO_BUFF_SIZE];
-
-static rt_uint32_t at32_sdio_clk_get(struct at32_sdio *hw_sdio)
-{
- return SDIO_CLOCK_FREQ;
-}
-
-/**
- * @brief this function get order from sdio.
- * @param data
- * @retval sdio order
- */
-static int get_order(rt_uint32_t data)
-{
- int order = 0;
-
- switch (data)
- {
- case 1:
- order = 0;
- break;
- case 2:
- order = 1;
- break;
- case 4:
- order = 2;
- break;
- case 8:
- order = 3;
- break;
- case 16:
- order = 4;
- break;
- case 32:
- order = 5;
- break;
- case 64:
- order = 6;
- break;
- case 128:
- order = 7;
- break;
- case 256:
- order = 8;
- break;
- case 512:
- order = 9;
- break;
- case 1024:
- order = 10;
- break;
- case 2048:
- order = 11;
- break;
- case 4096:
- order = 12;
- break;
- case 8192:
- order = 13;
- break;
- case 16384:
- order = 14;
- break;
- default :
- order = 0;
- break;
- }
-
- return order;
-}
-
-/**
- * @brief this function wait sdio completed.
- * @param sdio rt_hw_sdio
- * @retval none
- */
-static void rt_hw_sdio_wait_completed(struct rt_hw_sdio *sdio)
-{
- rt_uint32_t status;
- struct rt_mmcsd_cmd *cmd = sdio->pkg->cmd;
- struct rt_mmcsd_data *data = cmd->data;
- struct at32_sdio *hw_sdio = sdio->sdio_des.hw_sdio;
-
- if (rt_event_recv(&sdio->event, 0xffffffff, RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR,
- rt_tick_from_millisecond(5000), &status) != RT_EOK)
- {
- LOG_E("wait completed timeout");
- cmd->err = -RT_ETIMEOUT;
- return;
- }
-
- if (sdio->pkg == RT_NULL)
- {
- return;
- }
-
- cmd->resp[0] = hw_sdio->resp1;
- cmd->resp[1] = hw_sdio->resp2;
- cmd->resp[2] = hw_sdio->resp3;
- cmd->resp[3] = hw_sdio->resp4;
-
- if (status & HW_SDIO_ERRORS)
- {
- if ((status & HW_SDIO_IT_CCRCFAIL) && (resp_type(cmd) & (RESP_R3 | RESP_R4)))
- {
- cmd->err = RT_EOK;
- }
- else
- {
- cmd->err = -RT_ERROR;
- }
-
- if (status & HW_SDIO_IT_CTIMEOUT)
- {
- cmd->err = -RT_ETIMEOUT;
- }
-
- if (status & HW_SDIO_IT_DCRCFAIL)
- {
- data->err = -RT_ERROR;
- }
-
- if (status & HW_SDIO_IT_DTIMEOUT)
- {
- data->err = -RT_ETIMEOUT;
- }
-
- if (cmd->err == RT_EOK)
- {
- LOG_D("sta:0x%08X [%08X %08X %08X %08X]", status, cmd->resp[0], cmd->resp[1], cmd->resp[2], cmd->resp[3]);
- }
- else
- {
- LOG_D("err:0x%08x, %s%s%s%s%s%s%s cmd:%d arg:0x%08x rw:%c len:%d blksize:%d",
- status,
- status & HW_SDIO_IT_CCRCFAIL ? "CCRCFAIL " : "",
- status & HW_SDIO_IT_DCRCFAIL ? "DCRCFAIL " : "",
- status & HW_SDIO_IT_CTIMEOUT ? "CTIMEOUT " : "",
- status & HW_SDIO_IT_DTIMEOUT ? "DTIMEOUT " : "",
- status & HW_SDIO_IT_TXUNDERR ? "TXUNDERR " : "",
- status & HW_SDIO_IT_RXOVERR ? "RXOVERR " : "",
- status == 0 ? "NULL" : "",
- cmd->cmd_code,
- cmd->arg,
- data ? (data->flags & DATA_DIR_WRITE ? 'w' : 'r') : '-',
- data ? data->blks * data->blksize : 0,
- data ? data->blksize : 0
- );
- }
- }
- else
- {
- cmd->err = RT_EOK;
- LOG_D("sta:0x%08X [%08X %08X %08X %08X]", status, cmd->resp[0], cmd->resp[1], cmd->resp[2], cmd->resp[3]);
- }
-}
-
-/**
- * @brief this function transfer data by dma.
- * @param sdio rt_hw_sdio
- * @param pkg sdio package
- * @retval none
- */
-static void rt_hw_sdio_transfer_by_dma(struct rt_hw_sdio *sdio, struct sdio_pkg *pkg)
-{
- struct rt_mmcsd_data *data;
- int size;
- void *buff;
- struct at32_sdio *hw_sdio;
-
- if ((RT_NULL == pkg) || (RT_NULL == sdio))
- {
- LOG_E("rt_hw_sdio_transfer_by_dma invalid args");
- return;
- }
-
- data = pkg->cmd->data;
- if (RT_NULL == data)
- {
- LOG_E("rt_hw_sdio_transfer_by_dma invalid args");
- return;
- }
-
- buff = pkg->buff;
- if (RT_NULL == buff)
- {
- LOG_E("rt_hw_sdio_transfer_by_dma invalid args");
- return;
- }
- hw_sdio = sdio->sdio_des.hw_sdio;
- size = data->blks * data->blksize;
-
- if (data->flags & DATA_DIR_WRITE)
- {
- sdio->sdio_des.txconfig((rt_uint32_t *)buff, (rt_uint32_t *)&hw_sdio->fifo, size);
- hw_sdio->dctrl |= HW_SDIO_DMA_ENABLE;
- }
- else if (data->flags & DATA_DIR_READ)
- {
- sdio->sdio_des.rxconfig((rt_uint32_t *)&hw_sdio->fifo, (rt_uint32_t *)buff, size);
- hw_sdio->dctrl |= HW_SDIO_DMA_ENABLE | HW_SDIO_DPSM_ENABLE;
- }
-}
-
-/**
- * @brief this function send command.
- * @param sdio rt_hw_sdio
- * @param pkg sdio package
- * @retval none
- */
-static void rt_hw_sdio_send_command(struct rt_hw_sdio *sdio, struct sdio_pkg *pkg)
-{
- struct rt_mmcsd_cmd *cmd = pkg->cmd;
- struct rt_mmcsd_data *data = cmd->data;
- struct at32_sdio *hw_sdio = sdio->sdio_des.hw_sdio;
- rt_uint32_t reg_cmd;
-
- /* save pkg */
- sdio->pkg = pkg;
-
- LOG_D("CMD:%d ARG:0x%08x RES:%s%s%s%s%s%s%s%s%s rw:%c len:%d blksize:%d",
- cmd->cmd_code,
- cmd->arg,
- resp_type(cmd) == RESP_NONE ? "NONE" : "",
- resp_type(cmd) == RESP_R1 ? "R1" : "",
- resp_type(cmd) == RESP_R1B ? "R1B" : "",
- resp_type(cmd) == RESP_R2 ? "R2" : "",
- resp_type(cmd) == RESP_R3 ? "R3" : "",
- resp_type(cmd) == RESP_R4 ? "R4" : "",
- resp_type(cmd) == RESP_R5 ? "R5" : "",
- resp_type(cmd) == RESP_R6 ? "R6" : "",
- resp_type(cmd) == RESP_R7 ? "R7" : "",
- data ? (data->flags & DATA_DIR_WRITE ? 'w' : 'r') : '-',
- data ? data->blks * data->blksize : 0,
- data ? data->blksize : 0
- );
-
- /* config cmd reg */
- reg_cmd = cmd->cmd_code | HW_SDIO_CPSM_ENABLE;
- if (resp_type(cmd) == RESP_NONE)
- reg_cmd |= HW_SDIO_RESPONSE_NO;
- else if (resp_type(cmd) == RESP_R2)
- reg_cmd |= HW_SDIO_RESPONSE_LONG;
- else
- reg_cmd |= HW_SDIO_RESPONSE_SHORT;
-
- /* config data reg */
- if (data != RT_NULL)
- {
- rt_uint32_t dir = 0;
- rt_uint32_t size = data->blks * data->blksize;
- int order;
-
- hw_sdio->dctrl = 0;
- hw_sdio->dtimer = HW_SDIO_DATATIMEOUT;
- hw_sdio->dlen = size;
- order = get_order(data->blksize);
- dir = (data->flags & DATA_DIR_READ) ? HW_SDIO_TO_HOST : 0;
- hw_sdio->dctrl = /* HW_SDIO_IO_ENABLE | */ (order << 4) | dir;
- }
-
- /* transfer config */
- if (data != RT_NULL)
- {
- rt_hw_sdio_transfer_by_dma(sdio, pkg);
- }
-
- /* open irq */
- hw_sdio->mask |= HW_SDIO_IT_CMDSENT | HW_SDIO_IT_CMDREND | HW_SDIO_ERRORS;
- if (data != RT_NULL)
- {
- hw_sdio->mask |= HW_SDIO_IT_DATAEND;
- }
-
- /* send cmd */
- hw_sdio->arg = cmd->arg;
- hw_sdio->cmd = reg_cmd;
-
- /* wait completed */
- rt_hw_sdio_wait_completed(sdio);
-
- /* waiting for data to be sent to completion */
- if (data != RT_NULL)
- {
- volatile rt_uint32_t count = SDIO_TX_RX_COMPLETE_TIMEOUT_LOOPS;
-
- while (count && (hw_sdio->sta & (HW_SDIO_IT_TXACT | HW_SDIO_IT_RXACT)))
- {
- count--;
- }
-
- if ((count == 0) || (hw_sdio->sta & HW_SDIO_ERRORS))
- {
- cmd->err = -RT_ERROR;
- }
- }
-
- /* close irq, keep sdio irq */
- hw_sdio->mask = hw_sdio->mask & HW_SDIO_IT_SDIOIT ? HW_SDIO_IT_SDIOIT : 0x00;
-
- /* clear pkg */
- sdio->pkg = RT_NULL;
-}
-
-/**
- * @brief this function send sdio request.
- * @param sdio rt_hw_sdio
- * @param req request
- * @retval none
- */
-static void rt_hw_sdio_request(struct rt_mmcsd_host *host, struct rt_mmcsd_req *req)
-{
- struct sdio_pkg pkg;
- struct rt_hw_sdio *sdio = host->private_data;
- struct rt_mmcsd_data *data;
-
- RT_HW_SDIO_LOCK(sdio);
-
- if (req->cmd != RT_NULL)
- {
- memset(&pkg, 0, sizeof(pkg));
- data = req->cmd->data;
- pkg.cmd = req->cmd;
-
- if (data != RT_NULL)
- {
- rt_uint32_t size = data->blks * data->blksize;
-
- RT_ASSERT(size <= SDIO_BUFF_SIZE);
-
- pkg.buff = data->buf;
- if ((rt_uint32_t)data->buf & (SDIO_ALIGN_LEN - 1))
- {
- pkg.buff = cache_buf;
- if (data->flags & DATA_DIR_WRITE)
- {
- memcpy(cache_buf, data->buf, size);
- }
- }
- }
-
- rt_hw_sdio_send_command(sdio, &pkg);
-
- if ((data != RT_NULL) && (data->flags & DATA_DIR_READ) && ((rt_uint32_t)data->buf & (SDIO_ALIGN_LEN - 1)))
- {
- memcpy(data->buf, cache_buf, data->blksize * data->blks);
- }
- }
-
- if (req->stop != RT_NULL)
- {
- memset(&pkg, 0, sizeof(pkg));
- pkg.cmd = req->stop;
- rt_hw_sdio_send_command(sdio, &pkg);
- }
-
- RT_HW_SDIO_UNLOCK(sdio);
-
- mmcsd_req_complete(sdio->host);
-}
-
-/**
- * @brief this function config sdio.
- * @param host rt_mmcsd_host
- * @param io_cfg rt_mmcsd_io_cfg
- * @retval none
- */
-static void rt_hw_sdio_iocfg(struct rt_mmcsd_host *host, struct rt_mmcsd_io_cfg *io_cfg)
-{
- rt_uint32_t clkcr, div, clk_src;
- rt_uint32_t clk = io_cfg->clock;
- struct rt_hw_sdio *sdio = host->private_data;
- struct at32_sdio *hw_sdio = sdio->sdio_des.hw_sdio;
-
- clk_src = sdio->sdio_des.clk_get(sdio->sdio_des.hw_sdio);
- if (clk_src < 400 * 1000)
- {
- LOG_E("The clock rate is too low! rata:%d", clk_src);
- return;
- }
-
- if (clk > host->freq_max) clk = host->freq_max;
-
- if (clk > clk_src)
- {
- LOG_W("Setting rate is greater than clock source rate.");
- clk = clk_src;
- }
-
- LOG_D("clk:%d width:%s%s%s power:%s%s%s",
- clk,
- io_cfg->bus_width == MMCSD_BUS_WIDTH_8 ? "8" : "",
- io_cfg->bus_width == MMCSD_BUS_WIDTH_4 ? "4" : "",
- io_cfg->bus_width == MMCSD_BUS_WIDTH_1 ? "1" : "",
- io_cfg->power_mode == MMCSD_POWER_OFF ? "OFF" : "",
- io_cfg->power_mode == MMCSD_POWER_UP ? "UP" : "",
- io_cfg->power_mode == MMCSD_POWER_ON ? "ON" : ""
- );
-
- RT_HW_SDIO_LOCK(sdio);
-
- div = clk_src / clk;
- if ((clk == 0) || (div == 0))
- {
- clkcr = 0;
- }
- else
- {
- if (div < 2)
- {
- div = 2;
- }
- else if (div > 0x3FF)
- {
- div = 0x3FF;
- }
- div -= 2;
- clkcr = (div & 0xFF) | ((div & 0x300) << 7) | HW_SDIO_CLK_ENABLE;
- }
-
- if (io_cfg->bus_width == MMCSD_BUS_WIDTH_8)
- {
- clkcr |= HW_SDIO_BUSWIDE_8B;
- }
- else if (io_cfg->bus_width == MMCSD_BUS_WIDTH_4)
- {
- clkcr |= HW_SDIO_BUSWIDE_4B;
- }
- else
- {
- clkcr |= HW_SDIO_BUSWIDE_1B;
- }
-
- hw_sdio->clkcr = clkcr;
-
- switch (io_cfg->power_mode)
- {
- case MMCSD_POWER_OFF:
- hw_sdio->power = HW_SDIO_POWER_OFF;
- break;
- case MMCSD_POWER_UP:
- hw_sdio->power = HW_SDIO_POWER_UP;
- break;
- case MMCSD_POWER_ON:
- hw_sdio->power = HW_SDIO_POWER_ON;
- break;
- default:
- LOG_W("unknown power_mode %d", io_cfg->power_mode);
- break;
- }
-
- RT_HW_SDIO_UNLOCK(sdio);
-}
-
-/**
- * @brief this function update sdio interrupt.
- * @param host rt_mmcsd_host
- * @param enable
- * @retval none
- */
-void rt_hw_sdio_irq_update(struct rt_mmcsd_host *host, rt_int32_t enable)
-{
- struct rt_hw_sdio *sdio = host->private_data;
- struct at32_sdio *hw_sdio = sdio->sdio_des.hw_sdio;
-
- if (enable)
- {
- LOG_D("enable sdio irq");
- hw_sdio->mask |= HW_SDIO_IT_SDIOIT;
- }
- else
- {
- LOG_D("disable sdio irq");
- hw_sdio->mask &= ~HW_SDIO_IT_SDIOIT;
- }
-}
-
-/**
- * @brief this function delect sdcard.
- * @param host rt_mmcsd_host
- * @retval 0x01
- */
-static rt_int32_t rt_hw_sd_delect(struct rt_mmcsd_host *host)
-{
- LOG_D("try to detect device");
- return 0x01;
-}
-
-/**
- * @brief this function interrupt process function.
- * @param host rt_mmcsd_host
- * @retval none
- */
-void rt_hw_sdio_irq_process(struct rt_mmcsd_host *host)
-{
- int complete = 0;
- struct rt_hw_sdio *sdio = host->private_data;
- struct at32_sdio *hw_sdio = sdio->sdio_des.hw_sdio;
- rt_uint32_t intstatus = hw_sdio->sta;
-
- if (intstatus & HW_SDIO_ERRORS)
- {
- hw_sdio->icr = HW_SDIO_ERRORS;
- complete = 1;
- }
- else
- {
- if (intstatus & HW_SDIO_IT_CMDREND)
- {
- hw_sdio->icr = HW_SDIO_IT_CMDREND;
-
- if (sdio->pkg != RT_NULL)
- {
- if (!sdio->pkg->cmd->data)
- {
- complete = 1;
- }
- else if ((sdio->pkg->cmd->data->flags & DATA_DIR_WRITE))
- {
- hw_sdio->dctrl |= HW_SDIO_DPSM_ENABLE;
- }
- }
- }
-
- if (intstatus & HW_SDIO_IT_CMDSENT)
- {
- hw_sdio->icr = HW_SDIO_IT_CMDSENT;
-
- if (resp_type(sdio->pkg->cmd) == RESP_NONE)
- {
- complete = 1;
- }
- }
-
- if (intstatus & HW_SDIO_IT_DATAEND)
- {
- hw_sdio->icr = HW_SDIO_IT_DATAEND;
- complete = 1;
- }
- }
-
- if ((intstatus & HW_SDIO_IT_SDIOIT) && (hw_sdio->mask & HW_SDIO_IT_SDIOIT))
- {
- hw_sdio->icr = HW_SDIO_IT_SDIOIT;
- sdio_irq_wakeup(host);
- }
-
- if (complete)
- {
- hw_sdio->mask &= ~HW_SDIO_ERRORS;
- rt_event_send(&sdio->event, intstatus);
- }
-}
-
-static const struct rt_mmcsd_host_ops ops =
-{
- rt_hw_sdio_request,
- rt_hw_sdio_iocfg,
- rt_hw_sd_delect,
- rt_hw_sdio_irq_update,
-};
-
-/**
- * @brief this function create mmcsd host.
- * @param sdio_des at32_sdio_des
- * @retval rt_mmcsd_host
- */
-struct rt_mmcsd_host *sdio_host_create(struct at32_sdio_des *sdio_des)
-{
- struct rt_mmcsd_host *host;
- struct rt_hw_sdio *sdio = RT_NULL;
-
- if ((sdio_des == RT_NULL) || (sdio_des->txconfig == RT_NULL) || (sdio_des->rxconfig == RT_NULL))
- {
- LOG_E("L:%d F:%s %s %s %s",
- (sdio_des == RT_NULL ? "sdio_des is NULL" : ""),
- (sdio_des ? (sdio_des->txconfig ? "txconfig is NULL" : "") : ""),
- (sdio_des ? (sdio_des->rxconfig ? "rxconfig is NULL" : "") : "")
- );
- return RT_NULL;
- }
-
- sdio = rt_malloc(sizeof(struct rt_hw_sdio));
- if (sdio == RT_NULL)
- {
- LOG_E("L:%d F:%s malloc rt_hw_sdio fail");
- return RT_NULL;
- }
- rt_memset(sdio, 0, sizeof(struct rt_hw_sdio));
-
- host = mmcsd_alloc_host();
- if (host == RT_NULL)
- {
- LOG_E("L:%d F:%s mmcsd alloc host fail");
- rt_free(sdio);
- return RT_NULL;
- }
-
- rt_memcpy(&sdio->sdio_des, sdio_des, sizeof(struct at32_sdio_des));
- sdio->sdio_des.hw_sdio = (sdio_des->hw_sdio == RT_NULL ? (struct at32_sdio *)SDIO_BASE_ADDRESS : sdio_des->hw_sdio);
- sdio->sdio_des.clk_get = (sdio_des->clk_get == RT_NULL ? at32_sdio_clk_get : sdio_des->clk_get);
-
- rt_event_init(&sdio->event, "sdio", RT_IPC_FLAG_FIFO);
- rt_mutex_init(&sdio->mutex, "sdio", RT_IPC_FLAG_PRIO);
-
- /* set host defautl attributes */
- host->ops = &ops;
- host->freq_min = 400 * 1000;
- host->freq_max = SDIO_MAX_FREQ;
- host->valid_ocr = 0X00FFFF80;/* the voltage range supported is 1.65v-3.6v */
-#ifndef SDIO_USING_1_BIT
- host->flags = MMCSD_BUSWIDTH_4 | MMCSD_MUTBLKWRITE | MMCSD_SUP_SDIO_IRQ;
-#else
- host->flags = MMCSD_MUTBLKWRITE | MMCSD_SUP_SDIO_IRQ;
-#endif
- host->max_seg_size = SDIO_BUFF_SIZE;
- host->max_dma_segs = 1;
- host->max_blk_size = 512;
- host->max_blk_count = 512;
-
- /* link up host and sdio */
- sdio->host = host;
- host->private_data = sdio;
-
- rt_hw_sdio_irq_update(host, 1);
-
- /* ready to change */
- mmcsd_change(host);
-
- return host;
-}
-
-/**
- * @brief this function configures the dmatx.
- * @param src: pointer to the source buffer
- * @param dst: pointer to the destination buffer
- * @param buffer_size: size of tx buffer
- * @retval none
- */
-void sd_lowlevel_dmatx_config(uint32_t *src, uint32_t *dst, uint32_t buffer_size)
-{
- static uint32_t size = 0;
- dma_init_type dma_init_struct;
-
- size += buffer_size * 4;
- sdio_obj.cfg = &sdio_config;
-
- dma_default_para_init(&dma_init_struct);
- sdio_obj.dma.handle_tx = sdio_config.dma_tx.dma_channel;
- dma_init_struct.direction = DMA_DIR_MEMORY_TO_PERIPHERAL;
- dma_init_struct.buffer_size = buffer_size;
- dma_init_struct.memory_base_addr = (uint32_t)src;
- dma_init_struct.memory_data_width = DMA_MEMORY_DATA_WIDTH_WORD;
- dma_init_struct.memory_inc_enable = TRUE;
- dma_init_struct.peripheral_base_addr = (uint32_t)dst;
- dma_init_struct.peripheral_data_width = DMA_PERIPHERAL_DATA_WIDTH_WORD;
- dma_init_struct.peripheral_inc_enable = FALSE;
- dma_init_struct.priority = DMA_PRIORITY_MEDIUM;
-
- nvic_irq_enable(sdio_config.dma_tx.dma_irq, 2, 0);
-
- dma_init(sdio_obj.dma.handle_tx, &dma_init_struct);
- dma_interrupt_enable(sdio_obj.dma.handle_tx, DMA_FDT_INT, TRUE);
- dma_channel_enable(sdio_obj.dma.handle_tx, TRUE);
-}
-
-/**
- * @brief this function configures the dmarx.
- * @param src: pointer to the source buffer
- * @param dst: pointer to the destination buffer
- * @param buffer_size: size of rx buffer
- * @retval none
- */
-void sd_lowlevel_dmarx_config(uint32_t *src, uint32_t *dst, uint32_t buffer_size)
-{
- sdio_obj.cfg = &sdio_config;
- dma_init_type dma_init_struct;
-
- dma_default_para_init(&dma_init_struct);
- sdio_obj.dma.handle_rx = sdio_config.dma_rx.dma_channel;
- dma_init_struct.direction = DMA_DIR_PERIPHERAL_TO_MEMORY;
- dma_init_struct.buffer_size = buffer_size;
- dma_init_struct.memory_base_addr = (uint32_t)dst;
- dma_init_struct.memory_data_width = DMA_MEMORY_DATA_WIDTH_WORD;
- dma_init_struct.memory_inc_enable = TRUE;
- dma_init_struct.peripheral_base_addr = (uint32_t)src;
- dma_init_struct.peripheral_data_width = DMA_PERIPHERAL_DATA_WIDTH_WORD;
- dma_init_struct.peripheral_inc_enable = FALSE;
- dma_init_struct.priority = DMA_PRIORITY_MEDIUM;
-
- nvic_irq_enable(sdio_config.dma_rx.dma_irq, 2, 0);
-
- dma_init(sdio_obj.dma.handle_rx, &dma_init_struct);
- dma_interrupt_enable(sdio_obj.dma.handle_rx, DMA_FDT_INT, TRUE);
- dma_channel_enable(sdio_obj.dma.handle_rx, TRUE);
-}
-
-void DMA2_Channel4_5_IRQHandler(void)
-{
- if(dma_flag_get(DMA2_FDT4_FLAG))
- {
- dma_flag_clear(DMA2_FDT4_FLAG);
- dma_channel_enable(sdio_config.dma_rx.dma_channel, FALSE);
- }
-}
-
-/**
- * @brief this function get at32 sdio clock.
- * @param hw_sdio: at32_sdio
- * @retval ahb frequency
- */
-static rt_uint32_t at32_sdio_clock_get(struct at32_sdio *hw_sdio)
-{
- crm_clocks_freq_type clocks;
-
- crm_clocks_freq_get(&clocks);
- return clocks.ahb_freq;
-}
-
-static rt_err_t dma_tx_config(rt_uint32_t *src, rt_uint32_t *dst, int size)
-{
- sd_lowlevel_dmatx_config((uint32_t *)src, (uint32_t *)dst, size / 4);
- return RT_EOK;
-}
-
-static rt_err_t dma_rx_config(rt_uint32_t *src, rt_uint32_t *dst, int size)
-{
- sd_lowlevel_dmarx_config((uint32_t *)src, (uint32_t *)dst, size / 4);
- return RT_EOK;
-}
-
-void SDIO1_IRQHandler(void)
-{
- /* enter interrupt */
- rt_interrupt_enter();
-
- rt_hw_sdio_irq_process(host);
-
- /* leave interrupt */
- rt_interrupt_leave();
-}
-
-int rt_hw_sdio_init(void)
-{
- struct at32_sdio_des sdio_des;
- struct at32_sdio_config hsd;
-
- hsd.sdio_x = SDCARD_INSTANCE;
- at32_msp_sdio_init((void *)(hsd.sdio_x));
-
- nvic_irq_enable(SDIO1_IRQn, 2, 0);
-
- sdio_des.clk_get = at32_sdio_clock_get;
- sdio_des.hw_sdio = (struct at32_sdio *)SDCARD_INSTANCE;
- sdio_des.rxconfig = dma_rx_config;
- sdio_des.txconfig = dma_tx_config;
-
- host = sdio_host_create(&sdio_des);
- if (host == RT_NULL)
- {
- LOG_E("host create fail");
- return -1;
- }
-
- return 0;
-}
-
-INIT_DEVICE_EXPORT(rt_hw_sdio_init);
-
-void at32_mmcsd_change(void)
-{
- mmcsd_change(host);
-}
-
-#endif
diff --git a/bsp/at32/libraries/f415/rt_drivers/drv_sdio.h b/bsp/at32/libraries/f415/rt_drivers/drv_sdio.h
deleted file mode 100644
index 556353413d..0000000000
--- a/bsp/at32/libraries/f415/rt_drivers/drv_sdio.h
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-08 shelton first version
- */
-
-#ifndef _DRV_SDIO_H
-#define _DRV_SDIO_H
-#include <rtthread.h>
-#include "rtdevice.h"
-#include <rthw.h>
-#include <string.h>
-#include <drivers/mmcsd_core.h>
-#include <drivers/sdio.h>
-#include "at32f415.h"
-
-#define SDCARD_INSTANCE_TYPE sdio_type
-
-#define SDCARD_INSTANCE SDIO1
-
-#define SDIO_BUFF_SIZE 4096
-#define SDIO_ALIGN_LEN 32
-
-#ifndef SDIO_MAX_FREQ
-#define SDIO_MAX_FREQ (1000000)
-#endif
-
-#ifndef SDIO_BASE_ADDRESS
-#define SDIO_BASE_ADDRESS SDIO1_BASE
-#endif
-
-#ifndef SDIO_CLOCK_FREQ
-#define SDIO_CLOCK_FREQ (48U * 1000 * 1000)
-#endif
-
-#ifndef SDIO_BUFF_SIZE
-#define SDIO_BUFF_SIZE (4096)
-#endif
-
-#ifndef SDIO_ALIGN_LEN
-#define SDIO_ALIGN_LEN (32)
-#endif
-
-#ifndef SDIO_MAX_FREQ
-#define SDIO_MAX_FREQ (24 * 1000 * 1000)
-#endif
-
-#define HW_SDIO_IT_CCRCFAIL (0x01U << 0)
-#define HW_SDIO_IT_DCRCFAIL (0x01U << 1)
-#define HW_SDIO_IT_CTIMEOUT (0x01U << 2)
-#define HW_SDIO_IT_DTIMEOUT (0x01U << 3)
-#define HW_SDIO_IT_TXUNDERR (0x01U << 4)
-#define HW_SDIO_IT_RXOVERR (0x01U << 5)
-#define HW_SDIO_IT_CMDREND (0x01U << 6)
-#define HW_SDIO_IT_CMDSENT (0x01U << 7)
-#define HW_SDIO_IT_DATAEND (0x01U << 8)
-#define HW_SDIO_IT_STBITERR (0x01U << 9)
-#define HW_SDIO_IT_DBCKEND (0x01U << 10)
-#define HW_SDIO_IT_CMDACT (0x01U << 11)
-#define HW_SDIO_IT_TXACT (0x01U << 12)
-#define HW_SDIO_IT_RXACT (0x01U << 13)
-#define HW_SDIO_IT_TXFIFOHE (0x01U << 14)
-#define HW_SDIO_IT_RXFIFOHF (0x01U << 15)
-#define HW_SDIO_IT_TXFIFOF (0x01U << 16)
-#define HW_SDIO_IT_RXFIFOF (0x01U << 17)
-#define HW_SDIO_IT_TXFIFOE (0x01U << 18)
-#define HW_SDIO_IT_RXFIFOE (0x01U << 19)
-#define HW_SDIO_IT_TXDAVL (0x01U << 20)
-#define HW_SDIO_IT_RXDAVL (0x01U << 21)
-#define HW_SDIO_IT_SDIOIT (0x01U << 22)
-
-#define HW_SDIO_ERRORS \
- (HW_SDIO_IT_CCRCFAIL | HW_SDIO_IT_CTIMEOUT | \
- HW_SDIO_IT_DCRCFAIL | HW_SDIO_IT_DTIMEOUT | \
- HW_SDIO_IT_RXOVERR | HW_SDIO_IT_TXUNDERR)
-
-#define HW_SDIO_POWER_OFF (0x00U)
-#define HW_SDIO_POWER_UP (0x02U)
-#define HW_SDIO_POWER_ON (0x03U)
-
-#define HW_SDIO_FLOW_ENABLE (0x01U << 14)
-#define HW_SDIO_BUSWIDE_1B (0x00U << 11)
-#define HW_SDIO_BUSWIDE_4B (0x01U << 11)
-#define HW_SDIO_BUSWIDE_8B (0x02U << 11)
-#define HW_SDIO_BYPASS_ENABLE (0x01U << 10)
-#define HW_SDIO_IDLE_ENABLE (0x01U << 9)
-#define HW_SDIO_CLK_ENABLE (0x01U << 8)
-
-#define HW_SDIO_SUSPEND_CMD (0x01U << 11)
-#define HW_SDIO_CPSM_ENABLE (0x01U << 10)
-#define HW_SDIO_WAIT_END (0x01U << 9)
-#define HW_SDIO_WAIT_INT (0x01U << 8)
-#define HW_SDIO_RESPONSE_NO (0x00U << 6)
-#define HW_SDIO_RESPONSE_SHORT (0x01U << 6)
-#define HW_SDIO_RESPONSE_LONG (0x03U << 6)
-
-#define HW_SDIO_DATA_LEN_MASK (0x01FFFFFFU)
-
-#define HW_SDIO_IO_ENABLE (0x01U << 11)
-#define HW_SDIO_RWMOD_CK (0x01U << 10)
-#define HW_SDIO_RWSTOP_ENABLE (0x01U << 9)
-#define HW_SDIO_RWSTART_ENABLE (0x01U << 8)
-#define HW_SDIO_DBLOCKSIZE_1 (0x00U << 4)
-#define HW_SDIO_DBLOCKSIZE_2 (0x01U << 4)
-#define HW_SDIO_DBLOCKSIZE_4 (0x02U << 4)
-#define HW_SDIO_DBLOCKSIZE_8 (0x03U << 4)
-#define HW_SDIO_DBLOCKSIZE_16 (0x04U << 4)
-#define HW_SDIO_DBLOCKSIZE_32 (0x05U << 4)
-#define HW_SDIO_DBLOCKSIZE_64 (0x06U << 4)
-#define HW_SDIO_DBLOCKSIZE_128 (0x07U << 4)
-#define HW_SDIO_DBLOCKSIZE_256 (0x08U << 4)
-#define HW_SDIO_DBLOCKSIZE_512 (0x09U << 4)
-#define HW_SDIO_DBLOCKSIZE_1024 (0x0AU << 4)
-#define HW_SDIO_DBLOCKSIZE_2048 (0x0BU << 4)
-#define HW_SDIO_DBLOCKSIZE_4096 (0x0CU << 4)
-#define HW_SDIO_DBLOCKSIZE_8192 (0x0DU << 4)
-#define HW_SDIO_DBLOCKSIZE_16384 (0x0EU << 4)
-#define HW_SDIO_DMA_ENABLE (0x01U << 3)
-#define HW_SDIO_STREAM_ENABLE (0x01U << 2)
-#define HW_SDIO_TO_HOST (0x01U << 1)
-#define HW_SDIO_DPSM_ENABLE (0x01U << 0)
-
-#define HW_SDIO_DATATIMEOUT (0xF0000000U)
-
-struct at32_sdio
-{
- volatile rt_uint32_t power;
- volatile rt_uint32_t clkcr;
- volatile rt_uint32_t arg;
- volatile rt_uint32_t cmd;
- volatile rt_uint32_t respcmd;
- volatile rt_uint32_t resp1;
- volatile rt_uint32_t resp2;
- volatile rt_uint32_t resp3;
- volatile rt_uint32_t resp4;
- volatile rt_uint32_t dtimer;
- volatile rt_uint32_t dlen;
- volatile rt_uint32_t dctrl;
- volatile rt_uint32_t dcount;
- volatile rt_uint32_t sta;
- volatile rt_uint32_t icr;
- volatile rt_uint32_t mask;
- volatile rt_uint32_t reserved0[2];
- volatile rt_uint32_t fifocnt;
- volatile rt_uint32_t reserved1[13];
- volatile rt_uint32_t fifo;
-};
-
-typedef rt_err_t (*dma_txconfig)(rt_uint32_t *src, rt_uint32_t *dst, int size);
-typedef rt_err_t (*dma_rxconfig)(rt_uint32_t *src, rt_uint32_t *dst, int size);
-typedef rt_uint32_t (*sdio_clk_get)(struct at32_sdio *hw_sdio);
-
-#define SDIO_BUS_CONFIG \
- { \
- .sdio_x = SDIO1, \
- .dma_rx.dma_crm = CRM_DMA2_PERIPH_CLOCK, \
- .dma_tx.dma_crm = CRM_DMA2_PERIPH_CLOCK, \
- .dma_rx.dma_channel = DMA2_CHANNEL4, \
- .dma_rx.dma_irq = DMA2_Channel4_5_IRQn, \
- .dma_tx.dma_channel = DMA2_CHANNEL4, \
- .dma_tx.dma_irq = DMA2_Channel4_5_IRQn, \
- }
-
-struct dma_config {
- dma_channel_type *dma_channel;
- crm_periph_clock_type dma_crm;
- IRQn_Type dma_irq;
-};
-
-struct at32_sdio_des
-{
- struct at32_sdio *hw_sdio;
- dma_txconfig txconfig;
- dma_rxconfig rxconfig;
- sdio_clk_get clk_get;
-};
-
-struct at32_sdio_config
-{
- SDCARD_INSTANCE_TYPE *sdio_x;
- struct dma_config dma_rx, dma_tx;
-};
-
-/* at32 sdio dirver class */
-struct at32_sdio_class
-{
- struct at32_sdio_des *des;
- const struct at32_sdio_config *cfg;
- struct rt_mmcsd_host host;
- struct
- {
- dma_channel_type* handle_rx;
- dma_channel_type* handle_tx;
- } dma;
-};
-
-extern void at32_mmcsd_change(void);
-
-#endif
diff --git a/bsp/at32/libraries/f415/rt_drivers/drv_soft_i2c.c b/bsp/at32/libraries/f415/rt_drivers/drv_soft_i2c.c
deleted file mode 100644
index 796218fc53..0000000000
--- a/bsp/at32/libraries/f415/rt_drivers/drv_soft_i2c.c
+++ /dev/null
@@ -1,214 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-09 shelton first version
- */
-
-#include "board.h"
-#include "drv_soft_i2c.h"
-
-#ifdef RT_USING_I2C
-
-#define LOG_TAG "drv.i2c"
-#include <drv_log.h>
-
-#if !defined(BSP_USING_I2C1) && !defined(BSP_USING_I2C2)
-#error "Please define at least one BSP_USING_I2Cx"
-#endif
-
-static const struct at32_soft_i2c_config soft_i2c_config[] =
-{
-#ifdef BSP_USING_I2C1
- I2C1_BUS_CONFIG,
-#endif
-#ifdef BSP_USING_I2C2
- I2C2_BUS_CONFIG,
-#endif
-};
-
-static struct at32_i2c i2c_obj[sizeof(soft_i2c_config) / sizeof(soft_i2c_config[0])];
-
-/**
- * this function initializes the i2c pin.
- *
- * @param at32 i2c dirver class.
- */
-static void at32_i2c_gpio_init(struct at32_i2c *i2c)
-{
- struct at32_soft_i2c_config* cfg = (struct at32_soft_i2c_config*)i2c->ops.data;
-
- rt_pin_mode(cfg->scl, PIN_MODE_OUTPUT_OD);
- rt_pin_mode(cfg->sda, PIN_MODE_OUTPUT_OD);
-
- rt_pin_write(cfg->scl, PIN_HIGH);
- rt_pin_write(cfg->sda, PIN_HIGH);
-}
-
-/**
- * this function sets the sda pin.
- *
- * @param at32 config class.
- * @param the sda pin state.
- */
-static void at32_set_sda(void *data, rt_int32_t state)
-{
- struct at32_soft_i2c_config* cfg = (struct at32_soft_i2c_config*)data;
- if (state)
- {
- rt_pin_write(cfg->sda, PIN_HIGH);
- }
- else
- {
- rt_pin_write(cfg->sda, PIN_LOW);
- }
-}
-
-/**
- * this function sets the scl pin.
- *
- * @param at32 config class.
- * @param the scl pin state.
- */
-static void at32_set_scl(void *data, rt_int32_t state)
-{
- struct at32_soft_i2c_config* cfg = (struct at32_soft_i2c_config*)data;
- if (state)
- {
- rt_pin_write(cfg->scl, PIN_HIGH);
- }
- else
- {
- rt_pin_write(cfg->scl, PIN_LOW);
- }
-}
-
-/**
- * this function gets the sda pin state.
- *
- * @param the sda pin state.
- */
-static rt_int32_t at32_get_sda(void *data)
-{
- struct at32_soft_i2c_config* cfg = (struct at32_soft_i2c_config*)data;
- return rt_pin_read(cfg->sda);
-}
-
-/**
- * this function gets the scl pin state.
- *
- * @param the scl pin state.
- */
-static rt_int32_t at32_get_scl(void *data)
-{
- struct at32_soft_i2c_config* cfg = (struct at32_soft_i2c_config*)data;
- return rt_pin_read(cfg->scl);
-}
-
-/**
- * the time delay function.
- *
- * @param microseconds.
- */
-static void at32_udelay(rt_uint32_t us)
-{
- rt_uint32_t ticks;
- rt_uint32_t told, tnow, tcnt = 0;
- rt_uint32_t reload = SysTick->LOAD;
-
- ticks = us * reload / (1000000 / RT_TICK_PER_SECOND);
- told = SysTick->VAL;
- while (1)
- {
- tnow = SysTick->VAL;
- if (tnow != told)
- {
- if (tnow < told)
- {
- tcnt += told - tnow;
- }
- else
- {
- tcnt += reload - tnow + told;
- }
- told = tnow;
- if (tcnt >= ticks)
- {
- break;
- }
- }
- }
-}
-
-static const struct rt_i2c_bit_ops at32_bit_ops_default =
-{
- .data = RT_NULL,
- .set_sda = at32_set_sda,
- .set_scl = at32_set_scl,
- .get_sda = at32_get_sda,
- .get_scl = at32_get_scl,
- .udelay = at32_udelay,
- .delay_us = 1,
- .timeout = 100
-};
-
-/**
- * if i2c is locked, this function will unlock it
- *
- * @param at32 config class
- *
- * @return RT_EOK indicates successful unlock.
- */
-static rt_err_t at32_i2c_bus_unlock(const struct at32_soft_i2c_config *cfg)
-{
- rt_int32_t i = 0;
-
- if (PIN_LOW == rt_pin_read(cfg->sda))
- {
- while (i++ < 9)
- {
- rt_pin_write(cfg->scl, PIN_HIGH);
- at32_udelay(100);
- rt_pin_write(cfg->scl, PIN_LOW);
- at32_udelay(100);
- }
- }
- if (PIN_LOW == rt_pin_read(cfg->sda))
- {
- return -RT_ERROR;
- }
-
- return RT_EOK;
-}
-
-/* i2c initialization function */
-int rt_hw_i2c_init(void)
-{
- rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct at32_i2c);
- rt_err_t result;
-
- for (int i = 0; i < obj_num; i++)
- {
- i2c_obj[i].ops = at32_bit_ops_default;
- i2c_obj[i].ops.data = (void*)&soft_i2c_config[i];
- i2c_obj[i].i2c_bus.priv = &i2c_obj[i].ops;
- at32_i2c_gpio_init(&i2c_obj[i]);
- result = rt_i2c_bit_add_bus(&i2c_obj[i].i2c_bus, soft_i2c_config[i].bus_name);
- RT_ASSERT(result == RT_EOK);
- at32_i2c_bus_unlock(&soft_i2c_config[i]);
-
- LOG_D("software simulation %s init done, pin scl: %d, pin sda %d",
- soft_i2c_config[i].bus_name,
- soft_i2c_config[i].scl,
- soft_i2c_config[i].sda);
- }
-
- return RT_EOK;
-}
-
-INIT_BOARD_EXPORT(rt_hw_i2c_init);
-
-#endif /* RT_USING_I2C */
diff --git a/bsp/at32/libraries/f415/rt_drivers/drv_soft_i2c.h b/bsp/at32/libraries/f415/rt_drivers/drv_soft_i2c.h
deleted file mode 100644
index fecab31b4d..0000000000
--- a/bsp/at32/libraries/f415/rt_drivers/drv_soft_i2c.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2020-01-09 shelton first version
- */
-
-#ifndef __DRV_I2C__
-#define __DRV_I2C__
-
-#include <rtthread.h>
-#include <rthw.h>
-#include <rtdevice.h>
-
-/* at32 config class */
-struct at32_soft_i2c_config
-{
- rt_uint8_t scl;
- rt_uint8_t sda;
- const char *bus_name;
-};
-/* at32 i2c dirver class */
-struct at32_i2c
-{
- struct rt_i2c_bit_ops ops;
- struct rt_i2c_bus_device i2c_bus;
-};
-
-#ifdef BSP_USING_I2C1
-#define I2C1_BUS_CONFIG \
- { \
- .scl = BSP_I2C1_SCL_PIN, \
- .sda = BSP_I2C1_SDA_PIN, \
- .bus_name = "i2c1", \
- }
-#endif
-
-#ifdef BSP_USING_I2C2
-#define I2C2_BUS_CONFIG \
- { \
- .scl = BSP_I2C2_SCL_PIN, \
- .sda = BSP_I2C2_SDA_PIN, \
- .bus_name = "i2c2", \
- }
-#endif
-
-#ifdef BSP_USING_I2C3
-#define I2C3_BUS_CONFIG \
- { \
- .scl = BSP_I2C3_SCL_PIN, \
- .sda = BSP_I2C3_SDA_PIN, \
- .bus_name = "i2c3", \
- }
-#endif
-
-int rt_hw_i2c_init(void);
-
-#endif
diff --git a/bsp/at32/libraries/f415/rt_drivers/drv_usart.c b/bsp/at32/libraries/f415/rt_drivers/drv_usart.c
deleted file mode 100644
index 8a212053c4..0000000000
--- a/bsp/at32/libraries/f415/rt_drivers/drv_usart.c
+++ /dev/null
@@ -1,295 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-05-12 shelton first version
- */
-
-#include "board.h"
-#include "drv_usart.h"
-
-#ifdef RT_USING_SERIAL
-#if !defined(BSP_USING_UART1) && !defined(BSP_USING_UART2) && \
- !defined(BSP_USING_UART3) && !defined(BSP_USING_UART4) && \
- !defined(BSP_USING_UART5)
- #error "Please define at least one BSP_USING_UARTx"
-#endif
-
-struct at32_usart {
- char *name;
- usart_type* usart_x;
- IRQn_Type irqn;
- struct rt_serial_device serial;
-};
-
-enum {
-#ifdef BSP_USING_UART1
- UART1_INDEX,
-#endif
-#ifdef BSP_USING_UART2
- UART2_INDEX,
-#endif
-#ifdef BSP_USING_UART3
- UART3_INDEX,
-#endif
-#ifdef BSP_USING_UART4
- UART4_INDEX,
-#endif
-#ifdef BSP_USING_UART5
- UART5_INDEX,
-#endif
-};
-
-static struct at32_usart usart_config[] = {
-#ifdef BSP_USING_UART1
- { "uart1",
- USART1,
- USART1_IRQn, },
-#endif
-#ifdef BSP_USING_UART2
- { "uart2",
- USART2,
- USART2_IRQn, },
-#endif
-#ifdef BSP_USING_UART3
- { "uart3",
- USART3,
- USART3_IRQn, },
-#endif
-#ifdef BSP_USING_UART4
- { "uart4",
- UART4,
- UART4_IRQn, },
-#endif
-#ifdef BSP_USING_UART5
- { "uart5",
- UART5,
- UART5_IRQn, },
-#endif
-};
-
-static rt_err_t at32_configure(struct rt_serial_device *serial,
- struct serial_configure *cfg) {
- struct at32_usart *usart_instance = (struct at32_usart *) serial->parent.user_data;
- usart_data_bit_num_type data_bit;
- usart_stop_bit_num_type stop_bit;
- usart_parity_selection_type parity_mode;
-
- RT_ASSERT(serial != RT_NULL);
- RT_ASSERT(cfg != RT_NULL);
-
- RT_ASSERT(usart_instance != RT_NULL);
-
- at32_msp_usart_init((void *)usart_instance->usart_x);
-
- usart_receiver_enable(usart_instance->usart_x, TRUE);
- usart_transmitter_enable(usart_instance->usart_x, TRUE);
-
- usart_hardware_flow_control_set(usart_instance->usart_x, USART_HARDWARE_FLOW_NONE);
-
- switch (cfg->data_bits) {
- case DATA_BITS_8:
- data_bit = USART_DATA_8BITS;
- break;
- case DATA_BITS_9:
- data_bit = USART_DATA_9BITS;
- break;
- default:
- data_bit = USART_DATA_8BITS;
- break;
- }
-
- switch (cfg->stop_bits) {
- case STOP_BITS_1:
- stop_bit = USART_STOP_1_BIT;
- break;
- case STOP_BITS_2:
- stop_bit = USART_STOP_2_BIT;
- break;
- default:
- stop_bit = USART_STOP_1_BIT;
- break;
- }
-
- switch (cfg->parity) {
- case PARITY_NONE:
- parity_mode = USART_PARITY_NONE;
- break;
- case PARITY_ODD:
- parity_mode = USART_PARITY_ODD;
- break;
- case PARITY_EVEN:
- parity_mode = USART_PARITY_EVEN;
- break;
- default:
- parity_mode = USART_PARITY_NONE;
- break;
- }
- usart_parity_selection_config(usart_instance->usart_x, parity_mode);
- usart_init(usart_instance->usart_x, cfg->baud_rate, data_bit, stop_bit);
- usart_enable(usart_instance->usart_x, TRUE);
-
- return RT_EOK;
-}
-
-static rt_err_t at32_control(struct rt_serial_device *serial, int cmd, void *arg) {
- struct at32_usart *usart;
-
- RT_ASSERT(serial != RT_NULL);
- usart = (struct at32_usart *) serial->parent.user_data;
- RT_ASSERT(usart != RT_NULL);
-
- switch (cmd) {
- case RT_DEVICE_CTRL_CLR_INT:
- nvic_irq_disable(usart->irqn);
- usart_interrupt_enable(usart->usart_x, USART_RDBF_INT, FALSE);
- break;
- case RT_DEVICE_CTRL_SET_INT:
- nvic_irq_enable(usart->irqn, 2, 1);
- usart_interrupt_enable(usart->usart_x, USART_RDBF_INT, TRUE);
- break;
- }
-
- return RT_EOK;
-}
-
-static int at32_putc(struct rt_serial_device *serial, char ch) {
- struct at32_usart *usart;
-
- RT_ASSERT(serial != RT_NULL);
- usart = (struct at32_usart *) serial->parent.user_data;
- RT_ASSERT(usart != RT_NULL);
-
- usart_data_transmit(usart->usart_x, (uint8_t)ch);
- while (usart_flag_get(usart->usart_x, USART_TDC_FLAG) == RESET);
-
- return 1;
-}
-
-static int at32_getc(struct rt_serial_device *serial) {
- int ch;
- struct at32_usart *usart;
-
- RT_ASSERT(serial != RT_NULL);
- usart = (struct at32_usart *) serial->parent.user_data;
- RT_ASSERT(usart != RT_NULL);
-
- ch = -1;
- if (usart_flag_get(usart->usart_x, USART_RDBF_FLAG) != RESET) {
- ch = usart_data_receive(usart->usart_x) & 0xff;
- }
-
- return ch;
-}
-
-static const struct rt_uart_ops at32_usart_ops = {
- at32_configure,
- at32_control,
- at32_putc,
- at32_getc,
- RT_NULL
-};
-
-static void usart_isr(struct rt_serial_device *serial) {
- struct at32_usart *usart_instance;
-
- RT_ASSERT(serial != RT_NULL);
-
- usart_instance = (struct at32_usart *) serial->parent.user_data;
- RT_ASSERT(usart_instance != RT_NULL);
-
- if (usart_flag_get(usart_instance->usart_x, USART_RDBF_FLAG) != RESET) {
- rt_hw_serial_isr(serial, RT_SERIAL_EVENT_RX_IND);
- usart_flag_clear(usart_instance->usart_x, USART_RDBF_FLAG);
- }
- else
- {
- if (usart_flag_get(usart_instance->usart_x, USART_CTSCF_FLAG) != RESET) {
- usart_flag_clear(usart_instance->usart_x, USART_CTSCF_FLAG);
- }
-
- if (usart_flag_get(usart_instance->usart_x, USART_BFF_FLAG) != RESET) {
- usart_flag_clear(usart_instance->usart_x, USART_BFF_FLAG);
- }
-
- if (usart_flag_get(usart_instance->usart_x, USART_TDC_FLAG) != RESET) {
- usart_flag_clear(usart_instance->usart_x, USART_TDC_FLAG);
- }
- }
-}
-
-#ifdef BSP_USING_UART1
-void USART1_IRQHandler(void) {
- rt_interrupt_enter();
-
- usart_isr(&usart_config[UART1_INDEX].serial);
-
- rt_interrupt_leave();
-}
-#endif
-#ifdef BSP_USING_UART2
-void USART2_IRQHandler(void) {
- rt_interrupt_enter();
-
- usart_isr(&usart_config[UART2_INDEX].serial);
-
- rt_interrupt_leave();
-}
-#endif
-#ifdef BSP_USING_UART3
-void USART3_IRQHandler(void) {
- rt_interrupt_enter();
-
- usart_isr(&usart_config[UART3_INDEX].serial);
-
- rt_interrupt_leave();
-}
-#endif
-#ifdef BSP_USING_UART4
-void UART4_IRQHandler(void) {
- rt_interrupt_enter();
-
- usart_isr(&usart_config[UART4_INDEX].serial);
-
- rt_interrupt_leave();
-}
-#endif
-#ifdef BSP_USING_UART5
-void UART5_IRQHandler(void) {
- rt_interrupt_enter();
-
- usart_isr(&usart_config[UART5_INDEX].serial);
-
- rt_interrupt_leave();
-}
-#endif
-
-int rt_hw_usart_init(void) {
- rt_size_t obj_num;
- int index;
-
- obj_num = sizeof(usart_config) / sizeof(struct at32_usart);
- struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT;
- rt_err_t result = 0;
-
- for (index = 0; index < obj_num; index++) {
- usart_config[index].serial.ops = &at32_usart_ops;
- usart_config[index].serial.config = config;
-
- /* register uart device */
- result = rt_hw_serial_register(&usart_config[index].serial,
- usart_config[index].name,
- RT_DEVICE_FLAG_RDWR |
- RT_DEVICE_FLAG_INT_RX |
- RT_DEVICE_FLAG_INT_TX,
- &usart_config[index]);
- RT_ASSERT(result == RT_EOK);
- }
-
- return result;
-}
-
-#endif /* BSP_USING_SERIAL */
diff --git a/bsp/at32/libraries/f415/rt_drivers/drv_usart.h b/bsp/at32/libraries/f415/rt_drivers/drv_usart.h
deleted file mode 100644
index fc493d42da..0000000000
--- a/bsp/at32/libraries/f415/rt_drivers/drv_usart.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2020-03-04 shelton first version
- */
-
-#ifndef __DRV_UART_H__
-#define __DRV_UART_H__
-
-#include <rtthread.h>
-#include <rtdevice.h>
-
-int rt_hw_usart_init(void);
-
-#endif /* __DRV_USART_H__ */
-
-/******************* end of file *******************/
diff --git a/bsp/at32/libraries/f415/rt_drivers/drv_wdt.c b/bsp/at32/libraries/f415/rt_drivers/drv_wdt.c
deleted file mode 100644
index 4f03f7cdbb..0000000000
--- a/bsp/at32/libraries/f415/rt_drivers/drv_wdt.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-15 shelton first version
- */
-
-#include <drivers/watchdog.h>
-#include "board.h"
-
-#ifdef RT_USING_WDT
-
-#define LICK_VALUE 40000
-
-//#define DRV_DEBUG
-#define LOG_TAG "drv.wdt"
-#include <drv_log.h>
-
-struct at32_wdt_obj
-{
- wdt_type *wdt_x;
- wdt_division_type div;
- rt_uint32_t reload;
- rt_uint16_t is_start;
-};
-static struct at32_wdt_obj at32_wdt;
-static struct rt_watchdog_ops ops;
-static rt_watchdog_t watchdog;
-
-static rt_err_t wdt_init(rt_watchdog_t *wdt)
-{
- return RT_EOK;
-}
-
-static rt_err_t wdt_control(rt_watchdog_t *wdt, int cmd, void *arg)
-{
- switch (cmd)
- {
- /* feed the watchdog */
- case RT_DEVICE_CTRL_WDT_KEEPALIVE:
- wdt_counter_reload();
- break;
- /* set watchdog timeout */
- case RT_DEVICE_CTRL_WDT_SET_TIMEOUT:
-#if defined(LICK_VALUE)
- if(LICK_VALUE)
- {
- at32_wdt.reload = (*((rt_uint32_t*)arg)) * LICK_VALUE / 256 ;
- }
- else
- {
- LOG_E("Please define the value of LICK_VALUE!");
- }
- if(at32_wdt.reload > 0xFFF)
- {
- LOG_E("wdg set timeout parameter too large, please less than %ds",0xFFF * 256 / LICK_VALUE);
- return -RT_EINVAL;
- }
-#else
- #error "Please define the value of LICK_VALUE!"
-#endif
- if(at32_wdt.is_start)
- {
- wdt_register_write_enable(TRUE);
- wdt_divider_set(at32_wdt.div);
- wdt_reload_value_set(at32_wdt.reload);
- wdt_counter_reload();
- wdt_register_write_enable(FALSE);
- wdt_enable();
- }
- break;
- case RT_DEVICE_CTRL_WDT_GET_TIMEOUT:
-#if defined(LICK_VALUE)
- if(LICK_VALUE)
- {
- (*((rt_uint32_t*)arg)) = at32_wdt.reload * 256 / LICK_VALUE;
- }
- else
- {
- LOG_E("Please define the value of LICK_VALUE!");
- }
-#else
- #error "Please define the value of LICK_VALUE!"
-#endif
- break;
- case RT_DEVICE_CTRL_WDT_START:
- wdt_register_write_enable(TRUE);
- wdt_divider_set(at32_wdt.div);
- wdt_reload_value_set(at32_wdt.reload);
- wdt_counter_reload();
- wdt_register_write_enable(FALSE);
- wdt_enable();
- at32_wdt.is_start = 1;
- break;
- default:
- LOG_W("This command is not supported.");
- return -RT_ERROR;
- }
- return RT_EOK;
-}
-
-int rt_hw_wdt_init(void)
-{
- at32_wdt.wdt_x = WDT;
- at32_wdt.div = WDT_CLK_DIV_256;
- at32_wdt.reload = 0x00000FFF;
- at32_wdt.is_start = 0;
-
- ops.init = &wdt_init;
- ops.control = &wdt_control;
- watchdog.ops = &ops;
- /* register watchdog device */
- if (rt_hw_watchdog_register(&watchdog, "wdt", RT_DEVICE_FLAG_DEACTIVATE, RT_NULL) != RT_EOK)
- {
- LOG_E("wdt device register failed.");
- return -RT_ERROR;
- }
- LOG_D("wdt device register success.");
- return RT_EOK;
-}
-
-INIT_BOARD_EXPORT(rt_hw_wdt_init);
-
-#endif /* RT_USING_WDT */
diff --git a/bsp/at32/libraries/f435_437/.ignore_format.yml b/bsp/at32/libraries/f435_437/.ignore_format.yml
deleted file mode 100644
index b5c3accab5..0000000000
--- a/bsp/at32/libraries/f435_437/.ignore_format.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-# files format check exclude path, please follow the instructions below to modify;
-# If you need to exclude an entire folder, add the folder path in dir_path;
-# If you need to exclude a file, add the path to the file in file_path.
-
-dir_path:
-- firmware
diff --git a/bsp/at32/libraries/f435_437/SConscript b/bsp/at32/libraries/f435_437/SConscript
deleted file mode 100644
index c7ef7659ec..0000000000
--- a/bsp/at32/libraries/f435_437/SConscript
+++ /dev/null
@@ -1,14 +0,0 @@
-# for module compiling
-import os
-from building import *
-
-cwd = GetCurrentDir()
-objs = []
-list = os.listdir(cwd)
-
-for d in list:
- path = os.path.join(cwd, d)
- if os.path.isfile(os.path.join(path, 'SConscript')):
- objs = objs + SConscript(os.path.join(d, 'SConscript'))
-
-Return('objs')
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_can.c b/bsp/at32/libraries/f435_437/rt_drivers/drv_can.c
deleted file mode 100644
index c48c1c7391..0000000000
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_can.c
+++ /dev/null
@@ -1,868 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-28 shelton first version
- */
-
-#include "drv_can.h"
-
-#ifdef BSP_USING_CAN
-
-#define LOG_TAG "drv_can"
-#include <drv_log.h>
-
-#ifdef SOC_SERIES_AT32F435
-/* attention !!! baud calculation example: apbclk / ((ss + bs1 + bs2) * brp), ep: 144 / ((1 + 8 + 3) * 12) = 1MHz*/
-/* attention !!! default apbclk 144 mhz */
-static const struct at32_baud_rate can_baud_rate_tab[] =
-{
- {CAN1MBaud, {12 , CAN_RSAW_3TQ, CAN_BTS1_8TQ, CAN_BTS2_3TQ}},
- {CAN800kBaud, {18 , CAN_RSAW_2TQ, CAN_BTS1_7TQ, CAN_BTS2_2TQ}},
- {CAN500kBaud, {24 , CAN_RSAW_2TQ, CAN_BTS1_9TQ, CAN_BTS2_2TQ}},
- {CAN250kBaud, {48 , CAN_RSAW_2TQ, CAN_BTS1_9TQ, CAN_BTS2_2TQ}},
- {CAN125kBaud, {96 , CAN_RSAW_2TQ, CAN_BTS1_9TQ, CAN_BTS2_2TQ}},
- {CAN100kBaud, {90 , CAN_RSAW_2TQ, CAN_BTS1_13TQ, CAN_BTS2_2TQ}},
- {CAN50kBaud, {180, CAN_RSAW_2TQ, CAN_BTS1_13TQ, CAN_BTS2_2TQ}},
- {CAN20kBaud, {450, CAN_RSAW_2TQ, CAN_BTS1_13TQ, CAN_BTS2_2TQ}},
- {CAN10kBaud, {900, CAN_RSAW_2TQ, CAN_BTS1_13TQ, CAN_BTS2_2TQ}}
-};
-#endif
-#ifdef SOC_SERIES_AT32F437
-/* attention !!! baud calculation example: apbclk / ((ss + bs1 + bs2) * brp), ep: 125 / ((1 + 3 + 1) * 25) = 1MHz*/
-/* attention !!! default apbclk 125 mhz */
-static const struct at32_baud_rate can_baud_rate_tab[] =
-{
- {CAN1MBaud, {25 , CAN_RSAW_1TQ, CAN_BTS1_3TQ, CAN_BTS2_1TQ}},
- //none
- {CAN500kBaud, {25 , CAN_RSAW_2TQ, CAN_BTS1_7TQ, CAN_BTS2_2TQ}},
- {CAN250kBaud, {25 , CAN_RSAW_3TQ, CAN_BTS1_16TQ, CAN_BTS2_3TQ}},
- {CAN125kBaud, {50 , CAN_RSAW_2TQ, CAN_BTS1_16TQ, CAN_BTS2_3TQ}},
- {CAN100kBaud, {125, CAN_RSAW_1TQ, CAN_BTS1_8TQ, CAN_BTS2_1TQ}},
- {CAN50kBaud, {125, CAN_RSAW_2TQ, CAN_BTS1_16TQ, CAN_BTS2_3TQ}},
- {CAN20kBaud, {625, CAN_RSAW_1TQ, CAN_BTS1_8TQ, CAN_BTS2_1TQ}},
- {CAN10kBaud, {625, CAN_RSAW_2TQ, CAN_BTS1_16TQ, CAN_BTS2_3TQ}}
-};
-#endif
-
-#ifdef BSP_USING_CAN1
-static struct at32_can can_instance1 =
-{
- .name = "can1",
- .config.can_x = CAN1,
-};
-#endif
-
-#ifdef BSP_USING_CAN2
-static struct at32_can can_instance2 =
-{
- .name = "can2",
- .config.can_x = CAN2,
-};
-#endif
-
-static rt_uint32_t get_can_baud_index(rt_uint32_t baud)
-{
- rt_uint32_t len, index;
-
- len = sizeof(can_baud_rate_tab) / sizeof(can_baud_rate_tab[0]);
- for (index = 0; index < len; index++)
- {
- if (can_baud_rate_tab[index].baud_rate == baud)
- return index;
- }
- /* default baud is CAN1MBaud */
- return 0;
-}
-
-static rt_err_t _can_config(struct rt_can_device *can, struct can_configure *cfg)
-{
- struct at32_can *can_instance;
- rt_uint32_t baud_index;
-
- RT_ASSERT(can);
- RT_ASSERT(cfg);
-
- can_instance = (struct at32_can *)can->parent.user_data;
- RT_ASSERT(can_instance);
-
- at32_msp_can_init((void *)can_instance->config.can_x);
-
- baud_index = get_can_baud_index(cfg->baud_rate);
- /* get baudrate parameters */
- can_baudrate_default_para_init(&can_instance->config.baudrate_init_struct);
- can_instance->config.baudrate_init_struct.rsaw_size = can_baud_rate_tab[baud_index].baud_struct.rsaw_size;
- can_instance->config.baudrate_init_struct.bts1_size = can_baud_rate_tab[baud_index].baud_struct.bts1_size;
- can_instance->config.baudrate_init_struct.bts2_size = can_baud_rate_tab[baud_index].baud_struct.bts2_size;
- can_instance->config.baudrate_init_struct.baudrate_div = can_baud_rate_tab[baud_index].baud_struct.baudrate_div;
- /* config can baudrate */
- if(can_baudrate_set(can_instance->config.can_x, &(can_instance->config.baudrate_init_struct)) != SUCCESS)
- {
- return -RT_ERROR;
- }
-
- /* config can base parameters */
- can_default_para_init(&(can_instance->config.base_init_struct));
- switch (cfg->mode)
- {
- case RT_CAN_MODE_NORMAL:
- can_instance->config.base_init_struct.mode_selection = CAN_MODE_COMMUNICATE;
- break;
- case RT_CAN_MODE_LISEN:
- can_instance->config.base_init_struct.mode_selection = CAN_MODE_LISTENONLY;
- break;
- case RT_CAN_MODE_LOOPBACK:
- can_instance->config.base_init_struct.mode_selection = CAN_MODE_LOOPBACK;
- break;
- case RT_CAN_MODE_LOOPBACKANLISEN:
- can_instance->config.base_init_struct.mode_selection = CAN_MODE_LISTENONLY_LOOPBACK;
- break;
- }
-
- can_instance->config.base_init_struct.aebo_enable = TRUE;
- can_instance->config.base_init_struct.aed_enable = TRUE;
- can_instance->config.base_init_struct.prsf_enable = FALSE;
- can_instance->config.base_init_struct.mdrsel_selection = CAN_DISCARDING_FIRST_RECEIVED;
- can_instance->config.base_init_struct.mmssr_selection = CAN_SENDING_BY_REQUEST;
- /* init can base function */
- if (can_base_init(can_instance->config.can_x, &(can_instance->config.base_init_struct)) != SUCCESS)
- {
- return -RT_ERROR;
- }
-
- /* config filter parameters */
- can_filter_init(can_instance->config.can_x, &can_instance->config.filter_init_struct);
-
- return RT_EOK;
-}
-
-static rt_err_t _can_control(struct rt_can_device *can, int cmd, void *arg)
-{
- rt_uint32_t argval;
- struct at32_can *can_instance;
- struct rt_can_filter_config *filter_cfg;
-
- RT_ASSERT(can != RT_NULL);
- can_instance = (struct at32_can *)can->parent.user_data;
- RT_ASSERT(can_instance != RT_NULL);
-
- switch (cmd)
- {
- case RT_DEVICE_CTRL_CLR_INT:
- argval = (rt_uint32_t) arg;
- if (argval == RT_DEVICE_FLAG_INT_RX)
- {
- if (CAN1 == can_instance->config.can_x)
- {
- nvic_irq_disable(CAN1_RX0_IRQn);
- nvic_irq_disable(CAN1_RX1_IRQn);
- }
-
- if (CAN2 == can_instance->config.can_x)
- {
- nvic_irq_disable(CAN2_RX0_IRQn);
- nvic_irq_disable(CAN2_RX1_IRQn);
- }
-
- /* disable interrupt */
- can_interrupt_enable(can_instance->config.can_x, CAN_RF0MIEN_INT, FALSE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF0FIEN_INT, FALSE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF0OIEN_INT, FALSE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF1MIEN_INT, FALSE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF1FIEN_INT, FALSE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF1OIEN_INT, FALSE);
- }
- else if (argval == RT_DEVICE_FLAG_INT_TX)
- {
- if (CAN1 == can_instance->config.can_x)
- {
- nvic_irq_disable(CAN1_TX_IRQn);
- }
-
- if (CAN2 == can_instance->config.can_x)
- {
- nvic_irq_disable(CAN2_TX_IRQn);
- }
-
- can_interrupt_enable(can_instance->config.can_x, CAN_TCIEN_INT, FALSE);
- }
- else if (argval == RT_DEVICE_CAN_INT_ERR)
- {
- if (CAN1 == can_instance->config.can_x)
- {
- nvic_irq_disable(CAN1_SE_IRQn);
- }
-
- if (CAN2 == can_instance->config.can_x)
- {
- nvic_irq_disable(CAN2_SE_IRQn);
- }
-
- can_interrupt_enable(can_instance->config.can_x, CAN_EAIEN_INT, FALSE);
- can_interrupt_enable(can_instance->config.can_x, CAN_EPIEN_INT, FALSE);
- can_interrupt_enable(can_instance->config.can_x, CAN_BOIEN_INT, FALSE);
- can_interrupt_enable(can_instance->config.can_x, CAN_ETRIEN_INT, FALSE);
- can_interrupt_enable(can_instance->config.can_x, CAN_EOIEN_INT, FALSE);
- }
-
- break;
- case RT_DEVICE_CTRL_SET_INT:
- argval = (rt_uint32_t) arg;
- if (argval == RT_DEVICE_FLAG_INT_RX)
- {
- can_interrupt_enable(can_instance->config.can_x, CAN_RF0MIEN_INT, TRUE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF0FIEN_INT, TRUE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF0OIEN_INT, TRUE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF1MIEN_INT, TRUE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF1FIEN_INT, TRUE);
- can_interrupt_enable(can_instance->config.can_x, CAN_RF1OIEN_INT, TRUE);
-
- if (CAN1 == can_instance->config.can_x)
- {
- nvic_irq_enable(CAN1_RX0_IRQn, 1, 0);
- nvic_irq_enable(CAN1_RX1_IRQn, 1, 0);
- }
-
- if (CAN2 == can_instance->config.can_x)
- {
- nvic_irq_enable(CAN2_RX0_IRQn, 1, 0);
- nvic_irq_enable(CAN2_RX1_IRQn, 1, 0);
- }
-
- }
- else if (argval == RT_DEVICE_FLAG_INT_TX)
- {
- can_interrupt_enable(can_instance->config.can_x, CAN_TCIEN_INT, TRUE);
-
- if (CAN1 == can_instance->config.can_x)
- {
- nvic_irq_enable(CAN1_TX_IRQn, 1, 0);
- }
-
- if (CAN2 == can_instance->config.can_x)
- {
- nvic_irq_enable(CAN2_TX_IRQn, 1, 0);
- }
- }
- else if (argval == RT_DEVICE_CAN_INT_ERR)
- {
- can_interrupt_enable(can_instance->config.can_x, CAN_EAIEN_INT, TRUE);
- can_interrupt_enable(can_instance->config.can_x, CAN_EPIEN_INT, TRUE);
- can_interrupt_enable(can_instance->config.can_x, CAN_BOIEN_INT, TRUE);
- can_interrupt_enable(can_instance->config.can_x, CAN_ETRIEN_INT, TRUE);
- can_interrupt_enable(can_instance->config.can_x, CAN_EOIEN_INT, TRUE);
-
- if (CAN1 == can_instance->config.can_x)
- {
- nvic_irq_enable(CAN1_SE_IRQn, 1, 0);
- }
-
- if (CAN2 == can_instance->config.can_x)
- {
- nvic_irq_enable(CAN2_SE_IRQn, 1, 0);
- }
- }
- break;
- case RT_CAN_CMD_SET_FILTER:
- {
- rt_uint32_t id_h = 0;
- rt_uint32_t id_l = 0;
- rt_uint32_t mask_h = 0;
- rt_uint32_t mask_l = 0;
- rt_uint32_t mask_l_tail = 0;
-
- if (RT_NULL == arg)
- {
- /* default filter config */
- can_filter_init(can_instance->config.can_x, &can_instance->config.filter_init_struct);
- }
- else
- {
- filter_cfg = (struct rt_can_filter_config *)arg;
- /* get default filter */
- for (int i = 0; i < filter_cfg->count; i++)
- {
- if (filter_cfg->items[i].hdr == -1)
- {
- can_instance->config.filter_init_struct.filter_number = i;
- }
- else
- {
- can_instance->config.filter_init_struct.filter_number = filter_cfg->items[i].hdr;
- }
- /**
- * ID | CAN_FxR1[31:24] | CAN_FxR1[23:16] | CAN_FxR1[15:8] | CAN_FxR1[7:0] |
- * MASK | CAN_FxR2[31:24] | CAN_FxR1[23:16] | CAN_FxR1[15:8] | CAN_FxR1[7:0] |
- * STD ID | STID[10:3] | STDID[2:0] |<- 21bit ->|
- * EXT ID | EXTID[28:21] | EXTID[20:13] | EXTID[12:5] | EXTID[4:0] IDE RTR 0|
- * @note the 32bit STD ID must << 21 to fill CAN_FxR1[31:21] and EXT ID must << 3,
- * -> but the id bit of struct rt_can_filter_item is 29,
- * -> so STD id << 18 and EXT id Don't need << 3, when get the high 16bit.
- * -> FilterIdHigh : (((STDid << 18) or (EXT id)) >> 13) & 0xFFFF,
- * -> FilterIdLow: ((STDid << 18) or (EXT id << 3)) & 0xFFFF.
- * @note the mask bit of struct rt_can_filter_item is 32,
- * -> FilterMaskIdHigh: (((STD mask << 21) or (EXT mask <<3)) >> 16) & 0xFFFF
- * -> FilterMaskIdLow: ((STD mask << 21) or (EXT mask <<3)) & 0xFFFF
- */
- if (filter_cfg->items[i].mode == CAN_FILTER_MODE_ID_MASK)
- {
- mask_l_tail = 0x06;
- }
- else if (filter_cfg->items[i].mode == CAN_FILTER_MODE_ID_LIST)
- {
- mask_l_tail = (filter_cfg->items[i].ide << 2) |
- (filter_cfg->items[i].rtr << 1);
- }
- if (filter_cfg->items[i].ide == RT_CAN_STDID)
- {
- id_h = ((filter_cfg->items[i].id << 18) >> 13) & 0xFFFF;
- id_l = ((filter_cfg->items[i].id << 18) |
- (filter_cfg->items[i].ide << 2) |
- (filter_cfg->items[i].rtr << 1)) & 0xFFFF;
- mask_h = ((filter_cfg->items[i].mask << 21) >> 16) & 0xFFFF;
- mask_l = ((filter_cfg->items[i].mask << 21) | mask_l_tail) & 0xFFFF;
- }
- else if (filter_cfg->items[i].ide == RT_CAN_EXTID)
- {
- id_h = (filter_cfg->items[i].id >> 13) & 0xFFFF;
- id_l = ((filter_cfg->items[i].id << 3) |
- (filter_cfg->items[i].ide << 2) |
- (filter_cfg->items[i].rtr << 1)) & 0xFFFF;
- mask_h = ((filter_cfg->items[i].mask << 3) >> 16) & 0xFFFF;
- mask_l = ((filter_cfg->items[i].mask << 3) | mask_l_tail) & 0xFFFF;
- }
- can_instance->config.filter_init_struct.filter_id_high = id_h;
- can_instance->config.filter_init_struct.filter_id_low = id_l;
- can_instance->config.filter_init_struct.filter_mask_high = mask_h;
- can_instance->config.filter_init_struct.filter_mask_low = mask_l;
- can_instance->config.filter_init_struct.filter_mode = (can_filter_mode_type)filter_cfg->items[i].mode;
-
- /* filter conf */
- can_filter_init(can_instance->config.can_x, &can_instance->config.filter_init_struct);
- }
- }
- break;
- }
- case RT_CAN_CMD_SET_MODE:
- argval = (rt_uint32_t) arg;
- if (argval != RT_CAN_MODE_NORMAL &&
- argval != RT_CAN_MODE_LISEN &&
- argval != RT_CAN_MODE_LOOPBACK &&
- argval != RT_CAN_MODE_LOOPBACKANLISEN)
- {
- return -RT_ERROR;
- }
- if (argval != can_instance->device.config.mode)
- {
- can_instance->device.config.mode = argval;
- return _can_config(&can_instance->device, &can_instance->device.config);
- }
- break;
- case RT_CAN_CMD_SET_BAUD:
- argval = (rt_uint32_t) arg;
- if (argval != CAN1MBaud &&
- argval != CAN800kBaud &&
- argval != CAN500kBaud &&
- argval != CAN250kBaud &&
- argval != CAN125kBaud &&
- argval != CAN100kBaud &&
- argval != CAN50kBaud &&
- argval != CAN20kBaud &&
- argval != CAN10kBaud)
- {
- return -RT_ERROR;
- }
- if (argval != can_instance->device.config.baud_rate)
- {
- can_instance->device.config.baud_rate = argval;
- return _can_config(&can_instance->device, &can_instance->device.config);
- }
- break;
- case RT_CAN_CMD_SET_PRIV:
- argval = (rt_uint32_t) arg;
- if (argval != RT_CAN_MODE_PRIV &&
- argval != RT_CAN_MODE_NOPRIV)
- {
- return -RT_ERROR;
- }
- if (argval != can_instance->device.config.privmode)
- {
- can_instance->device.config.privmode = argval;
- return _can_config(&can_instance->device, &can_instance->device.config);
- }
- break;
- case RT_CAN_CMD_GET_STATUS:
- {
- rt_uint32_t errtype;
- errtype = can_instance->config.can_x->ests;
- can_instance->device.status.rcverrcnt = errtype >> 24;
- can_instance->device.status.snderrcnt = (errtype >> 16 & 0xFF);
- can_instance->device.status.lasterrtype = errtype & 0x70;
- can_instance->device.status.errcode = errtype & 0x07;
-
- rt_memcpy(arg, &can_instance->device.status, sizeof(can_instance->device.status));
- }
- break;
- }
-
- return RT_EOK;
-}
-
-static int _can_sendmsg(struct rt_can_device *can, const void *buf, rt_uint32_t box_num)
-{
- struct can_config *hcan;
- hcan = &((struct at32_can *) can->parent.user_data)->config;
- struct rt_can_msg *pmsg = (struct rt_can_msg *) buf;
- can_tx_message_type tx_message;
-
- /* check select mailbox is empty */
- switch (box_num)
- {
- case CAN_TX_MAILBOX0:
- if (hcan->can_x->tsts_bit.tm0ef != 1)
- {
- /* return function status */
- return -RT_ERROR;
- }
- break;
- case CAN_TX_MAILBOX1:
- if (hcan->can_x->tsts_bit.tm1ef != 1)
- {
- /* return function status */
- return -RT_ERROR;
- }
- break;
- case CAN_TX_MAILBOX2:
- if (hcan->can_x->tsts_bit.tm2ef != 1)
- {
- /* return function status */
- return -RT_ERROR;
- }
- break;
- default:
- RT_ASSERT(0);
- break;
- }
-
- if (RT_CAN_STDID == pmsg->ide)
- {
- tx_message.id_type = CAN_ID_STANDARD;
- tx_message.standard_id = pmsg->id;
- }
- else
- {
- tx_message.id_type = CAN_ID_EXTENDED;
- tx_message.extended_id = pmsg->id;
- }
-
- if (RT_CAN_DTR == pmsg->rtr)
- {
- tx_message.frame_type = CAN_TFT_DATA;
- }
- else
- {
- tx_message.frame_type = CAN_TFT_REMOTE;
- }
-
- /* set up the dlc */
- tx_message.dlc = pmsg->len & 0x0FU;
- /* set up the data field */
- tx_message.data[0] = (uint32_t)pmsg->data[0];
- tx_message.data[1] = (uint32_t)pmsg->data[1];
- tx_message.data[2] = (uint32_t)pmsg->data[2];
- tx_message.data[3] = (uint32_t)pmsg->data[3];
- tx_message.data[4] = (uint32_t)pmsg->data[4];
- tx_message.data[5] = (uint32_t)pmsg->data[5];
- tx_message.data[6] = (uint32_t)pmsg->data[6];
- tx_message.data[7] = (uint32_t)pmsg->data[7];
-
- can_message_transmit(hcan->can_x, &tx_message);
-
- return RT_EOK;
-}
-
-static int _can_recvmsg(struct rt_can_device *can, void *buf, rt_uint32_t fifo)
-{
- struct can_config *hcan;
- hcan = &((struct at32_can *) can->parent.user_data)->config;
- struct rt_can_msg *pmsg = (struct rt_can_msg *) buf;
- can_rx_message_type rx_message;
-
- RT_ASSERT(can);
-
- /* get data */
- can_message_receive(hcan->can_x, (can_rx_fifo_num_type)fifo, &rx_message);
-
- pmsg->data[0] = rx_message.data[0];
- pmsg->data[1] = rx_message.data[1];
- pmsg->data[2] = rx_message.data[2];
- pmsg->data[3] = rx_message.data[3];
- pmsg->data[4] = rx_message.data[4];
- pmsg->data[5] = rx_message.data[5];
- pmsg->data[6] = rx_message.data[6];
- pmsg->data[7] = rx_message.data[7];
-
- pmsg->len = rx_message.dlc;
- pmsg->id = rx_message.id_type;
-
- if (rx_message.id_type == CAN_ID_STANDARD)
- pmsg->id = rx_message.standard_id;
- else
- pmsg->ide = rx_message.extended_id;
-
- pmsg->rtr = rx_message.frame_type;
- pmsg->hdr = rx_message.filter_index;
-
- return RT_EOK;
-}
-
-static const struct rt_can_ops _can_ops =
-{
- _can_config,
- _can_control,
- _can_sendmsg,
- _can_recvmsg,
-};
-
-static void _can_rx_isr(struct rt_can_device *can, rt_uint32_t fifo)
-{
- struct can_config *hcan;
- RT_ASSERT(can);
- hcan = &((struct at32_can *) can->parent.user_data)->config;
-
- switch (fifo)
- {
- case CAN_RX_FIFO0:
- /* save to user list */
- if (can_receive_message_pending_get(hcan->can_x, CAN_RX_FIFO0) && \
- can_flag_get(hcan->can_x, CAN_RF0MN_FLAG))
- {
- rt_hw_can_isr(can, RT_CAN_EVENT_RX_IND | fifo << 8);
- }
- /* check full flag for fifo0 */
- if (can_flag_get(hcan->can_x, CAN_RF0FF_FLAG) == SET)
- {
- /* clear fifo0 full flag */
- can_flag_clear(hcan->can_x, CAN_RF0FF_FLAG);
- }
-
- /* check overrun flag for fifo0 */
- if (can_flag_get(hcan->can_x, CAN_RF0OF_FLAG) == SET)
- {
- /* clear fifo0 overrun flag */
- can_flag_clear(hcan->can_x, CAN_RF0OF_FLAG);
- rt_hw_can_isr(can, RT_CAN_EVENT_RXOF_IND | fifo << 8);
- }
- break;
- case CAN_RX_FIFO1:
- /* save to user list */
- if (can_receive_message_pending_get(hcan->can_x, CAN_RX_FIFO1) && \
- can_flag_get(hcan->can_x, CAN_RF1MN_FLAG))
- {
- rt_hw_can_isr(can, RT_CAN_EVENT_RX_IND | fifo << 8);
- }
- /* check full flag for fifo1 */
- if (can_flag_get(hcan->can_x, CAN_RF1FF_FLAG) == SET)
- {
- /* clear fifo1 full flag */
- can_flag_clear(hcan->can_x, CAN_RF1FF_FLAG);
- }
-
- /* check overrun flag for fifo1 */
- if (can_flag_get(hcan->can_x, CAN_RF1OF_FLAG) == SET)
- {
- /* clear fifo1 overrun flag */
- can_flag_clear(hcan->can_x, CAN_RF1OF_FLAG);
- rt_hw_can_isr(can, RT_CAN_EVENT_RXOF_IND | fifo << 8);
- }
- break;
- }
-}
-
-#ifdef BSP_USING_CAN1
-/**
- * @brief this function handles can1 tx interrupts. transmit fifo0/1/2 is empty can trigger this interrupt
- */
-void CAN1_TX_IRQHandler(void)
-{
- rt_interrupt_enter();
- struct can_config *hcan;
- hcan = &can_instance1.config;
- if (can_flag_get(hcan->can_x, CAN_TM0TCF_FLAG) == SET)
- {
- if (hcan->can_x->tsts_bit.tm0tsf == 1)
- {
- rt_hw_can_isr(&can_instance1.device, RT_CAN_EVENT_TX_DONE | 0 << 8);
- }
- else
- {
- rt_hw_can_isr(&can_instance1.device, RT_CAN_EVENT_TX_FAIL | 0 << 8);
- }
- /* write 0 to clear transmission status flag */
- can_flag_clear(hcan->can_x, CAN_TM0TCF_FLAG);
- }
- else if (can_flag_get(hcan->can_x, CAN_TM1TCF_FLAG) == SET)
- {
- if (hcan->can_x->tsts_bit.tm1tsf == 1)
- {
- rt_hw_can_isr(&can_instance1.device, RT_CAN_EVENT_TX_DONE | 1 << 8);
- }
- else
- {
- rt_hw_can_isr(&can_instance1.device, RT_CAN_EVENT_TX_FAIL | 1 << 8);
- }
- /* write 0 to clear transmission status flag */
- can_flag_clear(hcan->can_x, CAN_TM1TCF_FLAG);
- }
- else if (can_flag_get(hcan->can_x, CAN_TM2TCF_FLAG) == SET)
- {
- if (hcan->can_x->tsts_bit.tm2tsf == 1)
- {
- rt_hw_can_isr(&can_instance1.device, RT_CAN_EVENT_TX_DONE | 2 << 8);
- }
- else
- {
- rt_hw_can_isr(&can_instance1.device, RT_CAN_EVENT_TX_FAIL | 2 << 8);
- }
- /* write 0 to clear transmission status flag */
- can_flag_clear(hcan->can_x, CAN_TM2TCF_FLAG);
- }
- rt_interrupt_leave();
-}
-
-/**
- * @brief this function handles can1 rx0 interrupts.
- */
-void CAN1_RX0_IRQHandler(void)
-{
- rt_interrupt_enter();
- _can_rx_isr(&can_instance1.device, CAN_RX_FIFO0);
- rt_interrupt_leave();
-}
-
-/**
- * @brief this function handles can1 rx1 interrupts.
- */
-void CAN1_RX1_IRQHandler(void)
-{
- rt_interrupt_enter();
- _can_rx_isr(&can_instance1.device, CAN_RX_FIFO1);
- rt_interrupt_leave();
-}
-
-/**
- * @brief this function handles can1 sce interrupts.
- */
-void CAN1_SE_IRQHandler(void)
-{
- rt_uint32_t errtype;
- struct can_config *hcan;
-
- hcan = &can_instance1.config;
- errtype = hcan->can_x->ests;
-
- rt_interrupt_enter();
-
- switch ((errtype & 0x70) >> 4)
- {
- case RT_CAN_BUS_BIT_PAD_ERR:
- can_instance1.device.status.bitpaderrcnt++;
- break;
- case RT_CAN_BUS_FORMAT_ERR:
- can_instance1.device.status.formaterrcnt++;
- break;
- case RT_CAN_BUS_ACK_ERR:/* attention !!! test ack err's unit is transmit unit */
- can_instance1.device.status.ackerrcnt++;
- if (!(can_instance1.config.can_x->tsts_bit.tm0tsf == 1))
- rt_hw_can_isr(&can_instance1.device, RT_CAN_EVENT_TX_FAIL | 0 << 8);
- else if (!(can_instance1.config.can_x->tsts_bit.tm1tsf == 1))
- rt_hw_can_isr(&can_instance1.device, RT_CAN_EVENT_TX_FAIL | 1 << 8);
- else if (!(can_instance1.config.can_x->tsts_bit.tm2tsf == 1))
- rt_hw_can_isr(&can_instance1.device, RT_CAN_EVENT_TX_FAIL | 2 << 8);
- break;
- case RT_CAN_BUS_IMPLICIT_BIT_ERR:
- case RT_CAN_BUS_EXPLICIT_BIT_ERR:
- can_instance1.device.status.biterrcnt++;
- break;
- case RT_CAN_BUS_CRC_ERR:
- can_instance1.device.status.crcerrcnt++;
- break;
- }
-
- can_instance1.device.status.lasterrtype = errtype & 0x70;
- can_instance1.device.status.rcverrcnt = errtype >> 24;
- can_instance1.device.status.snderrcnt = (errtype >> 16 & 0xFF);
- can_instance1.device.status.errcode = errtype & 0x07;
- /* clear error flags */
- can_flag_clear(hcan->can_x, CAN_ETR_FLAG);
- rt_interrupt_leave();
-}
-#endif
-
-#ifdef BSP_USING_CAN2
-/**
- * @brief this function handles can2 tx interrupts.
- */
-void CAN2_TX_IRQHandler(void)
-{
- rt_interrupt_enter();
- struct can_config *hcan;
- hcan = &can_instance2.config;
- if (can_flag_get(hcan->can_x, CAN_TM0TCF_FLAG) == SET)
- {
- if (hcan->can_x->tsts_bit.tm0tsf == 1)
- {
- rt_hw_can_isr(&can_instance2.device, RT_CAN_EVENT_TX_DONE | 0 << 8);
- }
- else
- {
- rt_hw_can_isr(&can_instance2.device, RT_CAN_EVENT_TX_FAIL | 0 << 8);
- }
- /* write 0 to clear transmission status flag rqcpx */
- can_flag_clear(hcan->can_x, CAN_TM0TCF_FLAG);
- }
- else if (can_flag_get(hcan->can_x, CAN_TM1TCF_FLAG) == SET)
- {
- if (hcan->can_x->tsts_bit.tm1tsf == 1)
- {
- rt_hw_can_isr(&can_instance2.device, RT_CAN_EVENT_TX_DONE | 1 << 8);
- }
- else
- {
- rt_hw_can_isr(&can_instance2.device, RT_CAN_EVENT_TX_FAIL | 1 << 8);
- }
- /* write 0 to clear transmission status flag rqcpx */
- can_flag_clear(hcan->can_x, CAN_TM1TCF_FLAG);
- }
- else if (can_flag_get(hcan->can_x, CAN_TM2TCF_FLAG) == SET)
- {
- if (hcan->can_x->tsts_bit.tm2tsf == 1)
- {
- rt_hw_can_isr(&can_instance2.device, RT_CAN_EVENT_TX_DONE | 2 << 8);
- }
- else
- {
- rt_hw_can_isr(&can_instance2.device, RT_CAN_EVENT_TX_FAIL | 2 << 8);
- }
- /* write 0 to clear transmission status flag rqcpx */
- can_flag_clear(hcan->can_x, CAN_TM2TCF_FLAG);
- }
- rt_interrupt_leave();
-}
-
-/**
- * @brief this function handles can2 rx0 interrupts.
- */
-void CAN2_RX0_IRQHandler(void)
-{
- rt_interrupt_enter();
- _can_rx_isr(&can_instance2.device, CAN_RX_FIFO0);
- rt_interrupt_leave();
-}
-
-/**
- * @brief this function handles can2 rx1 interrupts.
- */
-void CAN2_RX1_IRQHandler(void)
-{
- rt_interrupt_enter();
- _can_rx_isr(&can_instance2.device, CAN_RX_FIFO1);
- rt_interrupt_leave();
-}
-
-/**
- * @brief this function handles can2 sce interrupts.
- */
-void CAN2_SE_IRQHandler(void)
-{
- rt_uint32_t errtype;
- struct can_config *hcan;
-
- hcan = &can_instance2.config;
- errtype = hcan->can_x->ests;
-
- rt_interrupt_enter();
-
- switch ((errtype & 0x70) >> 4)
- {
- case RT_CAN_BUS_BIT_PAD_ERR:
- can_instance2.device.status.bitpaderrcnt++;
- break;
- case RT_CAN_BUS_FORMAT_ERR:
- can_instance2.device.status.formaterrcnt++;
- break;
- case RT_CAN_BUS_ACK_ERR:
- can_instance2.device.status.ackerrcnt++;
- if (!(can_instance2.config.can_x->tsts_bit.tm0tsf == 1))
- rt_hw_can_isr(&can_instance2.device, RT_CAN_EVENT_TX_FAIL | 0 << 8);
- else if (!(can_instance2.config.can_x->tsts_bit.tm1tsf == 1))
- rt_hw_can_isr(&can_instance2.device, RT_CAN_EVENT_TX_FAIL | 1 << 8);
- else if (!(can_instance2.config.can_x->tsts_bit.tm2tsf == 1))
- rt_hw_can_isr(&can_instance2.device, RT_CAN_EVENT_TX_FAIL | 2 << 8);
- break;
- case RT_CAN_BUS_IMPLICIT_BIT_ERR:
- case RT_CAN_BUS_EXPLICIT_BIT_ERR:
- can_instance2.device.status.biterrcnt++;
- break;
- case RT_CAN_BUS_CRC_ERR:
- can_instance2.device.status.crcerrcnt++;
- break;
- }
-
- can_instance2.device.status.lasterrtype = errtype & 0x70;
- can_instance2.device.status.rcverrcnt = errtype >> 24;
- can_instance2.device.status.snderrcnt = (errtype >> 16 & 0xFF);
- can_instance2.device.status.errcode = errtype & 0x07;
- /* clear error flags */
- can_flag_clear(hcan->can_x, CAN_ETR_FLAG);
- rt_interrupt_leave();
-}
-#endif
-
-int rt_hw_can_init(void)
-{
- struct can_configure config = CANDEFAULTCONFIG;
- config.privmode = RT_CAN_MODE_NOPRIV;
- config.ticks = 50;
-#ifdef RT_CAN_USING_HDR
- config.maxhdr = 14;
-#endif
- /* config default filter */
- can_filter_init_type filter_conf;
- can_filter_default_para_init(&filter_conf);
- filter_conf.filter_activate_enable = TRUE;
- filter_conf.filter_bit = CAN_FILTER_32BIT;
-
-#ifdef BSP_USING_CAN1
- filter_conf.filter_number = 0;
- can_instance1.config.filter_init_struct = filter_conf;
- can_instance1.device.config = config;
-
- /* register can1 device */
- rt_hw_can_register(&can_instance1.device,
- can_instance1.name,
- &_can_ops,
- &can_instance1);
-#endif /* BSP_USING_CAN1 */
-
-#ifdef BSP_USING_CAN2
- filter_conf.filter_number = 0;
- can_instance2.config.filter_init_struct = filter_conf;
- can_instance2.device.config = config;
-
- /* register can2 device */
- rt_hw_can_register(&can_instance2.device,
- can_instance2.name,
- &_can_ops,
- &can_instance2);
-#endif /* BSP_USING_CAN2 */
-
- return 0;
-}
-
-INIT_BOARD_EXPORT(rt_hw_can_init);
-
-#endif /* BSP_USING_CAN */
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_can.h b/bsp/at32/libraries/f435_437/rt_drivers/drv_can.h
deleted file mode 100644
index cec0239989..0000000000
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_can.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-11 shelton first version
- */
-
-#ifndef __DRV_CAN_H__
-#define __DRV_CAN_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtdevice.h>
-#include <rtthread.h>
-#include "board.h"
-
-struct at32_baud_rate
-{
- rt_uint32_t baud_rate;
- can_baudrate_type baud_struct;
-};
-
-struct can_config
-{
- can_type *can_x;
- can_base_type base_init_struct;
- can_baudrate_type baudrate_init_struct;
- can_filter_init_type filter_init_struct;
-};
-
-/* at32 can device */
-struct at32_can
-{
- char *name;
- struct can_config config;
- struct rt_can_device device; /* inherit from can device */
-};
-
-int rt_hw_can_init(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /*__DRV_CAN_H__ */
-
-/************************** end of file ******************/
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_common.c b/bsp/at32/libraries/f435_437/rt_drivers/drv_common.c
deleted file mode 100644
index 75404bb74a..0000000000
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_common.c
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-08 shelton first version
- */
-
-#include "board.h"
-#include "drv_common.h"
-
-#ifdef RT_USING_SERIAL
-#include "drv_usart.h"
-#endif
-
-#define DBG_TAG "drv_common"
-#define DBG_LVL DBG_INFO
-#include <rtdbg.h>
-
-#ifdef RT_USING_FINSH
-#include <finsh.h>
-static void reboot(uint8_t argc, char **argv)
-{
- rt_hw_cpu_reset();
-}
-MSH_CMD_EXPORT(reboot, Reboot System);
-#endif /* RT_USING_FINSH */
-
-extern __IO uint32_t uwTick;
-static uint32_t _systick_ms = 1;
-
-/* systick configuration */
-void rt_hw_systick_init(void)
-{
- systick_clock_source_config(SYSTICK_CLOCK_SOURCE_AHBCLK_NODIV);
- SysTick_Config(system_core_clock / RT_TICK_PER_SECOND);
-
- nvic_irq_enable(SysTick_IRQn, 0, 0);
-
- _systick_ms = 1000u / RT_TICK_PER_SECOND;
- if(_systick_ms == 0)
- _systick_ms = 1;
-}
-
-/**
- * this is the timer interrupt service routine.
- */
-void SysTick_Handler(void)
-{
- /* enter interrupt */
- rt_interrupt_enter();
-
- rt_tick_increase();
-
- /* leave interrupt */
- rt_interrupt_leave();
-}
-
-/**
- * @brief this function is executed in case of error occurrence.
- * @param none
- * @retval none
- */
-void _Error_Handler(char *s, int num)
-{
- /* User can add his own implementation to report the HAL error return state */
- LOG_E("Error_Handler at file:%s num:%d", s, num);
- while (1)
- {
- }
-}
-
-/**
- * this function will delay for some us.
- *
- * @param us the delay time of us
- */
-void rt_hw_us_delay(rt_uint32_t us)
-{
- rt_uint32_t ticks;
- rt_uint32_t told, tnow, tcnt = 0;
- rt_uint32_t reload = SysTick->LOAD;
-
- ticks = us * reload / (1000000 / RT_TICK_PER_SECOND);
- told = SysTick->VAL;
- while (1)
- {
- tnow = SysTick->VAL;
- if (tnow != told)
- {
- if (tnow < told)
- {
- tcnt += told - tnow;
- }
- else
- {
- tcnt += reload - tnow + told;
- }
- told = tnow;
- if (tcnt >= ticks)
- {
- break;
- }
- }
- }
-}
-
-/**
- * this function will initial at32 board.
- */
-RT_WEAK void rt_hw_board_init()
-{
- /* system clock initialization */
- system_clock_config();
-
- /* configure nvic priority group */
- nvic_priority_group_config(NVIC_PRIORITY_GROUP_4);
-
- /* systick init */
- rt_hw_systick_init();
-
- /* heap initialization */
-#if defined(RT_USING_HEAP)
- rt_system_heap_init((void *)HEAP_BEGIN, (void *)HEAP_END);
-#endif
-
- /* pin driver initialization is open by default */
-#ifdef RT_USING_PIN
- rt_hw_pin_init();
-#endif
-
- /* usart driver initialization is open by default */
-#ifdef RT_USING_SERIAL
- rt_hw_usart_init();
-#endif
-
- /* set the shell console output device */
-#if defined(RT_USING_CONSOLE) && defined(RT_USING_DEVICE)
- rt_console_set_device(RT_CONSOLE_DEVICE_NAME);
-#endif
-
- /* board underlying hardware initialization */
-#ifdef RT_USING_COMPONENTS_INIT
- rt_components_board_init();
-#endif
-}
-
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_flash.h b/bsp/at32/libraries/f435_437/rt_drivers/drv_flash.h
deleted file mode 100644
index 42ada3416a..0000000000
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_flash.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2021-02-09 shelton the first version
- */
-
-#ifndef __DRV_FLASH_H__
-#define __DRV_FLASH_H__
-
-#include <rtthread.h>
-#include "rtdevice.h"
-#include <rthw.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int at32_flash_read(rt_uint32_t addr, rt_uint8_t *buf, rt_uint32_t size);
-int at32_flash_write(rt_uint32_t addr, const rt_uint8_t *buf, rt_uint32_t size);
-int at32_flash_erase(rt_uint32_t addr, rt_uint32_t size);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __DRV_FLASH_H__ */
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_gpio.h b/bsp/at32/libraries/f435_437/rt_drivers/drv_gpio.h
deleted file mode 100644
index 16abd818a1..0000000000
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_gpio.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2020-01-07 shelton first version
- */
-
-#ifndef __DRV_GPIO_H__
-#define __DRV_GPIO_H__
-
-#include <rthw.h>
-#include <rtdevice.h>
-#include "board.h"
-
-#define __AT32_PORT(port) GPIO##port##_BASE
-
-#define GET_PIN(PORTx,PIN) (rt_base_t)((16 * ( ((rt_base_t)__AT32_PORT(PORTx) - (rt_base_t)GPIOA_BASE)/(0x0400UL) )) + PIN)
-
-#define __AT32_PIN(index, gpio, gpio_index) \
- { \
- index, GPIO##gpio, GPIO_Pins_##gpio_index, \
- GPIO_PortSourceGPIO##gpio, GPIO_PinsSource##gpio_index \
- }
-
-#define __AT32_PIN_RESERVE \
- { \
- -1, 0, 0, 0, 0 \
- }
-
-/* AT32 GPIO driver */
-struct pin_index
-{
- int index;
- gpio_type *gpio_x;
- rt_uint32_t pin;
- rt_uint32_t portsource;
- rt_uint32_t pinsource;
-};
-
-struct pin_irq_map
-{
- rt_uint16_t pinbit;
- rt_uint16_t lineno;
- IRQn_Type irqno;
-};
-
-int rt_hw_pin_init(void);
-
-#endif /* __DRV_GPIO_H__ */
-
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_hwtimer.c b/bsp/at32/libraries/f435_437/rt_drivers/drv_hwtimer.c
deleted file mode 100644
index 3621c9ab48..0000000000
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_hwtimer.c
+++ /dev/null
@@ -1,431 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-11 shelton first version
- */
-
-#include "board.h"
-#include "drv_hwtimer.h"
-
-//#define DRV_DEBUG
-#define LOG_TAG "drv.hwtimer"
-#include <drv_log.h>
-
-#ifdef BSP_USING_HWTIMER
-
-enum
-{
-#ifdef BSP_USING_HWTMR1
- TMR1_INDEX,
-#endif
-
-#ifdef BSP_USING_HWTMR2
- TMR2_INDEX,
-#endif
-
-#ifdef BSP_USING_HWTMR3
- TMR3_INDEX,
-#endif
-
-#ifdef BSP_USING_HWTMR4
- TMR4_INDEX,
-#endif
-
-#ifdef BSP_USING_HWTMR5
- TMR5_INDEX,
-#endif
-
-#ifdef BSP_USING_HWTMR6
- TMR6_INDEX,
-#endif
-
-#ifdef BSP_USING_HWTMR7
- TMR7_INDEX,
-#endif
-
-#ifdef BSP_USING_HW_TMR8
- TMR8_INDEX,
-#endif
-
-#ifdef BSP_USING_HWTMR9
- TMR9_INDEX,
-#endif
-
-#ifdef BSP_USING_HWTMR10
- TMR10_INDEX,
-#endif
-
-#ifdef BSP_USING_HWTMR11
- TMR11_INDEX,
-#endif
-
-#ifdef BSP_USING_HWTMR12
- TMR12_INDEX,
-#endif
-
-#ifdef BSP_USING_HWTMR13
- TMR13_INDEX,
-#endif
-
-#ifdef BSP_USING_HWTMR14
- TMR14_INDEX,
-#endif
-
-#ifdef BSP_USING_HWTMR15
- TMR15_INDEX,
-#endif
-};
-
-struct at32_hwtimer
-{
- rt_hwtimer_t tmr_device;
- tmr_type* tmr_x;
- IRQn_Type tmr_irqn;
- char *name;
-};
-
-static struct at32_hwtimer at32_hwtimer_obj[] =
-{
-#ifdef BSP_USING_HWTMR1
- TMR1_CONFIG,
-#endif
-
-#ifdef BSP_USING_HWTMR2
- TMR2_CONFIG,
-#endif
-
-#ifdef BSP_USING_HWTMR3
- TMR3_CONFIG,
-#endif
-
-#ifdef BSP_USING_HWTMR4
- TMR4_CONFIG,
-#endif
-
-#ifdef BSP_USING_HWTMR5
- TMR5_CONFIG,
-#endif
-
-#ifdef BSP_USING_HWTMR6
- TMR6_CONFIG,
-#endif
-
-#ifdef BSP_USING_HWTMR7
- TMR7_CONFIG,
-#endif
-
-#ifdef BSP_USING_HWTMR8
- TMR8_CONFIG,
-#endif
-
-#ifdef BSP_USING_HWTMR9
- TMR9_CONFIG,
-#endif
-
-#ifdef BSP_USING_HWTMR10
- TMR10_CONFIG,
-#endif
-
-#ifdef BSP_USING_HWTMR11
- TMR11_CONFIG,
-#endif
-
-#ifdef BSP_USING_HWTMR12
- TMR12_CONFIG,
-#endif
-
-#ifdef BSP_USING_HWTMR13
- TMR13_CONFIG,
-#endif
-
-#ifdef BSP_USING_HWTMR14
- TMR14_CONFIG,
-#endif
-
-#ifdef BSP_USING_HWTMR15
- TMR15_CONFIG,
-#endif
-};
-
-static void tmr_pclk_get(rt_uint32_t *pclk1_doubler, rt_uint32_t *pclk2_doubler)
-{
- crm_clocks_freq_type clocks_struct;
-
- *pclk1_doubler = 1;
- *pclk2_doubler = 1;
-
- crm_clocks_freq_get(&clocks_struct);
-
- if(clocks_struct.ahb_freq != clocks_struct.apb1_freq)
- {
- *pclk1_doubler = 2;
- }
-
- if(clocks_struct.ahb_freq != clocks_struct.apb2_freq)
- {
- *pclk2_doubler = 2;
- }
-}
-
-static void at32_timer_init(struct rt_hwtimer_device *timer, rt_uint32_t state)
-{
- crm_clocks_freq_type clocks_struct;
- rt_uint32_t pclk1_doubler = 0, pclk2_doubler = 0;
- rt_uint32_t prescaler_value = 0, tmr_clock = 0;
- tmr_type *tmr_x = RT_NULL;
- struct at32_hwtimer *tmr_device = RT_NULL;
-
- RT_ASSERT(timer != RT_NULL);
- if (state)
- {
- tmr_x = (tmr_type *)timer->parent.user_data;
- tmr_device = (struct at32_hwtimer *)timer;
-
- /* timer clock enable */
- at32_msp_hwtmr_init(tmr_x);
-
- /* get timer clock */
- tmr_pclk_get(&pclk1_doubler, &pclk2_doubler);
- crm_clocks_freq_get(&clocks_struct);
- if((tmr_x == TMR1) || (tmr_x == TMR8) || (tmr_x == TMR9) || (tmr_x == TMR10) || (tmr_x == TMR11))
- {
- tmr_clock = clocks_struct.apb2_freq * pclk2_doubler;
- }
- else
- {
- tmr_clock = clocks_struct.apb1_freq * pclk1_doubler;
- }
- /* set timer clock is 1mhz */
- prescaler_value = (uint32_t)(tmr_clock / 10000) - 1;
- tmr_base_init(tmr_x, 10000 - 1, prescaler_value);
- tmr_clock_source_div_set(tmr_x, TMR_CLOCK_DIV1);
- tmr_repetition_counter_set(tmr_x, 0);
-
- if (timer->info->cntmode == HWTIMER_CNTMODE_UP)
- {
- tmr_cnt_dir_set(tmr_x, TMR_COUNT_UP);
- }
- else
- {
- tmr_cnt_dir_set(tmr_x, TMR_COUNT_DOWN);
- }
-
- /* enable the timer global interrupt and clear flag */
- nvic_irq_enable(tmr_device->tmr_irqn, 2, 0);
-
- tmr_interrupt_enable(tmr_x, TMR_OVF_INT, TRUE);
- tmr_flag_clear(tmr_x, TMR_OVF_INT);
-
- LOG_D("%s init success", tmr_device->name);
- }
-}
-
-static rt_err_t at32_timer_start(rt_hwtimer_t *timer, rt_uint32_t pr, rt_hwtimer_mode_t opmode)
-{
- rt_err_t result = RT_EOK;
- tmr_type *tmr_x = RT_NULL;
-
- RT_ASSERT(timer != RT_NULL);
- tmr_x = (tmr_type *)timer->parent.user_data;
-
- /* set tmr_x count */
- tmr_counter_value_set(tmr_x, 0);
- /* set tmr_x period register */
- tmr_period_value_set(tmr_x, pr - 1);
-
- if (opmode == HWTIMER_MODE_ONESHOT)
- {
- /* set timer to one cycle mode */
- tmr_one_cycle_mode_enable(tmr_x, TRUE);
- }
- else
- {
- /* set timer to period mode */
- tmr_one_cycle_mode_enable(tmr_x, FALSE);
- }
-
- /* start timer */
- tmr_counter_enable(tmr_x, TRUE);
-
- return result;
-}
-
-static void at32_timer_stop(rt_hwtimer_t *timer)
-{
- tmr_type *tmr_x = RT_NULL;
-
- RT_ASSERT(timer != RT_NULL);
- tmr_x = (tmr_type *)timer->parent.user_data;
-
- /* stop timer */
- tmr_counter_enable(tmr_x, FALSE);
-
- /* set tmr_x count */
- tmr_counter_value_set(tmr_x, 0);
-}
-
-static rt_uint32_t at32_timer_counter_get(rt_hwtimer_t *timer)
-{
- tmr_type *tmr_x = RT_NULL;
-
- RT_ASSERT(timer != RT_NULL);
-
- tmr_x = (tmr_type *)timer->parent.user_data;
-
- return tmr_counter_value_get(tmr_x);
-}
-
-static rt_err_t at32_timer_ctrl(rt_hwtimer_t *timer, rt_uint32_t cmd, void *arg)
-{
- crm_clocks_freq_type clocks_struct;
- tmr_type *tmr_x = RT_NULL;
- rt_err_t result = RT_EOK;
- rt_uint32_t pclk1_doubler = 0, pclk2_doubler = 0, tmr_clock = 0;
-
- RT_ASSERT(timer != RT_NULL);
- RT_ASSERT(arg != RT_NULL);
-
- tmr_x = (tmr_type *)timer->parent.user_data;
-
- switch(cmd)
- {
- case HWTIMER_CTRL_FREQ_SET:
- {
- rt_uint32_t freq;
- rt_uint16_t val;
-
- /* get timer frequence */
- freq = *((rt_uint32_t *)arg);
-
- /* get timer clock */
- tmr_pclk_get(&pclk1_doubler, &pclk2_doubler);
- crm_clocks_freq_get(&clocks_struct);
- if((tmr_x == TMR1) || (tmr_x == TMR8) || (tmr_x == TMR9) || (tmr_x == TMR10) || (tmr_x == TMR11))
- {
- tmr_clock = clocks_struct.apb2_freq * pclk2_doubler;
- }
- else
- {
- tmr_clock = clocks_struct.apb1_freq * pclk1_doubler;
- }
- /* set div value */
- val = tmr_clock / freq;
-
- tmr_div_value_set(tmr_x, val - 1);
- tmr_event_sw_trigger(tmr_x, TMR_OVERFLOW_SWTRIG);
- }
- break;
- default:
- {
- result = -RT_ENOSYS;
- }
- break;
- }
-
- return result;
-}
-
-static const struct rt_hwtimer_info _info = TMR_DEV_INFO_CONFIG;
-static const struct rt_hwtimer_ops _ops =
-{
- .init = at32_timer_init,
- .start = at32_timer_start,
- .stop = at32_timer_stop,
- .count_get = at32_timer_counter_get,
- .control = at32_timer_ctrl,
-};
-
-#ifdef BSP_USING_HWTMR2
-void TMR2_GLOBAL_IRQHandler(void)
-{
- /* enter interrupt */
- rt_interrupt_enter();
-
- if(tmr_flag_get(TMR2, TMR_OVF_FLAG) == SET)
- {
- rt_device_hwtimer_isr(&at32_hwtimer_obj[TMR2_INDEX].tmr_device);
- tmr_flag_clear(TMR2, TMR_OVF_FLAG);
- }
- /* leave interrupt */
- rt_interrupt_leave();
-}
-#endif
-
-#ifdef BSP_USING_HWTMR3
-void TMR3_GLOBAL_IRQHandler(void)
-{
- /* enter interrupt */
- rt_interrupt_enter();
-
- if(tmr_flag_get(TMR3, TMR_OVF_FLAG) == SET)
- {
- rt_device_hwtimer_isr(&at32_hwtimer_obj[TMR3_INDEX].tmr_device);
- tmr_flag_clear(TMR3, TMR_OVF_FLAG);
- }
- /* leave interrupt */
- rt_interrupt_leave();
-}
-#endif
-
-#ifdef BSP_USING_HWTMR4
-void TMR4_GLOBAL_IRQHandler(void)
-{
- /* enter interrupt */
- rt_interrupt_enter();
-
- if(tmr_flag_get(TMR4, TMR_OVF_FLAG) == SET)
- {
- rt_device_hwtimer_isr(&at32_hwtimer_obj[TMR4_INDEX].tmr_device);
- tmr_flag_clear(TMR4, TMR_OVF_FLAG);
- }
- /* leave interrupt */
- rt_interrupt_leave();
-}
-#endif
-
-#ifdef BSP_USING_HWTMR5
-void TMR5_GLOBAL_IRQHandler(void)
-{
- /* enter interrupt */
- rt_interrupt_enter();
-
- if(tmr_flag_get(TMR5, TMR_OVF_FLAG) == SET)
- {
- rt_device_hwtimer_isr(&at32_hwtimer_obj[TMR5_INDEX].tmr_device);
- tmr_flag_clear(TMR5, TMR_OVF_FLAG);
- }
- /* leave interrupt */
- rt_interrupt_leave();
-}
-#endif
-
-static int rt_hw_hwtimer_init(void)
-{
- int i = 0;
- int result = RT_EOK;
-
- for (i = 0; i < sizeof(at32_hwtimer_obj) / sizeof(at32_hwtimer_obj[0]); i++)
- {
- at32_hwtimer_obj[i].tmr_device.info = &_info;
- at32_hwtimer_obj[i].tmr_device.ops = &_ops;
- if (rt_device_hwtimer_register(&at32_hwtimer_obj[i].tmr_device, at32_hwtimer_obj[i].name, at32_hwtimer_obj[i].tmr_x) == RT_EOK)
- {
- LOG_D("%s register success", at32_hwtimer_obj[i].name);
- }
- else
- {
- LOG_E("%s register failed", at32_hwtimer_obj[i].name);
- result = -RT_ERROR;
- }
- }
-
- return result;
-}
-
-INIT_BOARD_EXPORT(rt_hw_hwtimer_init);
-
-#endif /* BSP_USING_HWTIMER */
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_hwtimer.h b/bsp/at32/libraries/f435_437/rt_drivers/drv_hwtimer.h
deleted file mode 100644
index 624437f559..0000000000
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_hwtimer.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2020-03-16 Leo first version
- */
-
-#ifndef __TMR_CONFIG_H__
-#define __TMR_CONFIG_H__
-
-#include <rtthread.h>
-#include <drivers/hwtimer.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef TMR_DEV_INFO_CONFIG
-#define TMR_DEV_INFO_CONFIG \
- { \
- .maxfreq = 1000000, \
- .minfreq = 4000, \
- .maxcnt = 0xFFFF, \
- .cntmode = HWTIMER_CNTMODE_UP, \
- }
-#endif /* TIM_DEV_INFO_CONFIG */
-
-#ifdef BSP_USING_HWTMR2
-#ifndef TMR2_CONFIG
-#define TMR2_CONFIG \
- { \
- .tmr_x = TMR2, \
- .tmr_irqn = TMR2_GLOBAL_IRQn, \
- .name = "timer2", \
- }
-#endif /* TMR2_CONFIG */
-#endif /* BSP_USING_HWTMR2 */
-
-#ifdef BSP_USING_HWTMR3
-#ifndef TMR3_CONFIG
-#define TMR3_CONFIG \
- { \
- .tmr_x = TMR3, \
- .tmr_irqn = TMR3_GLOBAL_IRQn, \
- .name = "timer3", \
- }
-#endif /* TMR3_CONFIG */
-#endif /* BSP_USING_HWTMR3 */
-
-#ifdef BSP_USING_HWTMR4
-#ifndef TMR4_CONFIG
-#define TMR4_CONFIG \
- { \
- .tmr_x = TMR4, \
- .tmr_irqn = TMR4_GLOBAL_IRQn, \
- .name = "timer4", \
- }
-#endif /* TMR4_CONFIG */
-#endif /* BSP_USING_HWTMR4 */
-
-#ifdef BSP_USING_HWTMR5
-#ifndef TMR5_CONFIG
-#define TMR5_CONFIG \
- { \
- .tmr_x = TMR5, \
- .tmr_irqn = TMR5_GLOBAL_IRQn, \
- .name = "timer5", \
- }
-#endif /* TMR5_CONFIG */
-#endif /* BSP_USING_HWTMR5 */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __TMR_CONFIG_H__ */
-
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_log.h b/bsp/at32/libraries/f435_437/rt_drivers/drv_log.h
deleted file mode 100644
index 45345aa150..0000000000
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_log.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-21 shelton first version
- */
-
-/*
- * NOTE: DO NOT include this file on the header file.
- */
-
-#ifndef LOG_TAG
-#define DBG_TAG "drv"
-#else
-#define DBG_TAG LOG_TAG
-#endif /* LOG_TAG */
-
-#ifdef DRV_DEBUG
-#define DBG_LVL DBG_LOG
-#else
-#define DBG_LVL DBG_INFO
-#endif /* DRV_DEBUG */
-
-#include <rtdbg.h>
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_pwm.c b/bsp/at32/libraries/f435_437/rt_drivers/drv_pwm.c
deleted file mode 100644
index 99954d4710..0000000000
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_pwm.c
+++ /dev/null
@@ -1,541 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-10 shelton first version
- */
-
-#include "board.h"
-
-#ifdef RT_USING_PWM
-#include "drv_pwm.h"
-#include <drivers/rt_drv_pwm.h>
-
-//#define DRV_DEBUG
-#define LOG_TAG "drv.pwm"
-#include <drv_log.h>
-
-#define MAX_PERIOD 65535
-
-struct rt_device_pwm pwm_device;
-
-struct at32_pwm
-{
- struct rt_device_pwm pwm_device;
- tmr_type* tmr_x;
- rt_uint8_t channel;
- char *name;
-};
-
-enum
-{
-#ifdef BSP_USING_PWM1
- PWM1_INDEX,
-#endif
-#ifdef BSP_USING_PWM2
- PWM2_INDEX,
-#endif
-#ifdef BSP_USING_PWM3
- PWM3_INDEX,
-#endif
-#ifdef BSP_USING_PWM4
- PWM4_INDEX,
-#endif
-#ifdef BSP_USING_PWM5
- PWM5_INDEX,
-#endif
-#ifdef BSP_USING_PWM6
- PWM6_INDEX,
-#endif
-#ifdef BSP_USING_PWM7
- PWM7_INDEX,
-#endif
-#ifdef BSP_USING_PWM8
- PWM8_INDEX,
-#endif
-#ifdef BSP_USING_PWM9
- PWM9_INDEX,
-#endif
-#ifdef BSP_USING_PWM10
- PWM10_INDEX,
-#endif
-#ifdef BSP_USING_PWM11
- PWM11_INDEX,
-#endif
-#ifdef BSP_USING_PWM12
- PWM12_INDEX,
-#endif
-#ifdef BSP_USING_PWM13
- PWM13_INDEX,
-#endif
-};
-
-static struct at32_pwm at32_pwm_obj[] =
-{
-#ifdef BSP_USING_PWM1
- PWM1_CONFIG,
-#endif
-
-#ifdef BSP_USING_PWM2
- PWM2_CONFIG,
-#endif
-
-#ifdef BSP_USING_PWM3
- PWM3_CONFIG,
-#endif
-
-#ifdef BSP_USING_PWM4
- PWM4_CONFIG,
-#endif
-
-#ifdef BSP_USING_PWM5
- PWM5_CONFIG,
-#endif
-
-#ifdef BSP_USING_PWM6
- PWM6_CONFIG,
-#endif
-
-#ifdef BSP_USING_PWM7
- PWM7_CONFIG,
-#endif
-
-#ifdef BSP_USING_PWM8
- PWM8_CONFIG,
-#endif
-
-#ifdef BSP_USING_PWM9
- PWM9_CONFIG,
-#endif
-
-#ifdef BSP_USING_PWM10
- PWM10_CONFIG,
-#endif
-
-#ifdef BSP_USING_PWM11
- PWM11_CONFIG,
-#endif
-
-#ifdef BSP_USING_PWM12
- PWM12_CONFIG,
-#endif
-
-#ifdef BSP_USING_PWM13
- PWM13_CONFIG,
-#endif
-};
-
-static rt_err_t drv_pwm_control(struct rt_device_pwm *device, int cmd, void *arg);
-static struct rt_pwm_ops drv_ops =
-{
- drv_pwm_control
-};
-
-static void tmr_pclk_get(rt_uint32_t *pclk1_doubler, rt_uint32_t *pclk2_doubler)
-{
- crm_clocks_freq_type clocks_struct;
-
- *pclk1_doubler = 1;
- *pclk2_doubler = 1;
-
- crm_clocks_freq_get(&clocks_struct);
-
- if(clocks_struct.ahb_freq != clocks_struct.apb1_freq)
- {
- *pclk1_doubler = 2;
- }
-
- if(clocks_struct.ahb_freq != clocks_struct.apb2_freq)
- {
- *pclk2_doubler = 2;
- }
-}
-
-static rt_err_t drv_pwm_enable(tmr_type* tmr_x, struct rt_pwm_configuration *configuration, rt_bool_t enable)
-{
- /* get the value of channel */
- rt_uint32_t channel = configuration->channel;
-
- if (!configuration->complementary)
- {
- if (!enable)
- {
- if(channel == 1)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_1, FALSE);
- }
- else if(channel == 2)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_2, FALSE);
- }
- else if(channel == 3)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_3, FALSE);
- }
- else if(channel == 4)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_4, FALSE);
- }
- }
- else
- {
- if(channel == 1)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_1, TRUE);
- }
- else if(channel == 2)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_2, TRUE);
- }
- else if(channel == 3)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_3, TRUE);
- }
- else if(channel == 4)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_4, TRUE);
- }
- }
- }
- else
- {
- if (!enable)
- {
- if(channel == 1)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_1C, FALSE);
- }
- else if(channel == 2)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_2C, FALSE);
- }
- else if(channel == 3)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_3C, FALSE);
- }
- }
- else
- {
- if(channel == 1)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_1C, TRUE);
- }
- else if(channel == 2)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_2C, TRUE);
- }
- else if(channel == 3)
- {
- tmr_channel_enable(tmr_x, TMR_SELECT_CHANNEL_3C, TRUE);
- }
- }
- }
-
- /* tmr_x enable counter */
- tmr_counter_enable(tmr_x, TRUE);
-
- return RT_EOK;
-}
-
-static rt_err_t drv_pwm_get(tmr_type* tmr_x, struct rt_pwm_configuration *configuration)
-{
- crm_clocks_freq_type clocks_struct;
- rt_uint32_t pr, div, c1dt, c2dt, c3dt, c4dt;
- rt_uint32_t pclk1_doubler = 0, pclk2_doubler = 0;
- rt_uint32_t channel = configuration->channel;
- rt_uint64_t tmr_clock;
-
- pr = tmr_x->pr;
- div = tmr_x->div;
- c1dt = tmr_x->c1dt;
- c2dt = tmr_x->c2dt;
- c3dt = tmr_x->c3dt;
- c4dt = tmr_x->c4dt;
-
- tmr_pclk_get(&pclk1_doubler, &pclk2_doubler);
-
- crm_clocks_freq_get(&clocks_struct);
-
- if((tmr_x == TMR1) || (tmr_x == TMR8) || (tmr_x == TMR9) || (tmr_x == TMR10) || (tmr_x == TMR11))
- {
- tmr_clock = clocks_struct.apb2_freq * pclk2_doubler;
- }
- else
- {
- tmr_clock = clocks_struct.apb1_freq * pclk1_doubler;
- }
-
- /* convert nanosecond to frequency and duty cycle. */
- tmr_clock /= 1000000UL;
- configuration->period = (pr + 1) * (div + 1) * 1000UL / tmr_clock;
-
- if(channel == 1)
- configuration->pulse = (c1dt) * (div + 1) * 1000UL / tmr_clock;
- if(channel == 2)
- configuration->pulse = (c2dt) * (div + 1) * 1000UL / tmr_clock;
- if(channel == 3)
- configuration->pulse = (c3dt) * (div + 1) * 1000UL / tmr_clock;
- if(channel == 4)
- configuration->pulse = (c4dt) * (div + 1) * 1000UL / tmr_clock;
-
- return RT_EOK;
-}
-
-static rt_err_t drv_pwm_set(tmr_type* tmr_x, struct rt_pwm_configuration *configuration)
-{
- crm_clocks_freq_type clocks_struct;
- tmr_output_config_type tmr_oc_config_struct;
- tmr_channel_select_type channel_select;
- rt_uint32_t period, pulse, channel, tmr_clock;
- rt_uint32_t pclk1_doubler = 0, pclk2_doubler = 0;
- rt_uint64_t psc;
-
- /* init timer pin and enable clock */
- at32_msp_tmr_init(tmr_x);
-
- tmr_pclk_get(&pclk1_doubler, &pclk2_doubler);
-
- crm_clocks_freq_get(&clocks_struct);
-
- if((tmr_x == TMR1) || (tmr_x == TMR8) || (tmr_x == TMR9) || (tmr_x == TMR10) || (tmr_x == TMR11))
- {
- tmr_clock = clocks_struct.apb2_freq * pclk2_doubler;
- }
- else
- {
- tmr_clock = clocks_struct.apb1_freq * pclk1_doubler;
- }
-
- /* convert nanosecond to frequency and duty cycle. */
- tmr_clock /= 1000000UL;
- /* calculate pwm period */
- period = (unsigned long long)configuration->period * tmr_clock / 1000ULL;;
- psc = period / MAX_PERIOD + 1;
- period = period / psc;
- /* calculate pulse width */
- pulse = (unsigned long long)configuration->pulse * tmr_clock / psc / 1000ULL;
- /* get channel parameter */
- channel = configuration->channel;
-
- /* tmr base init */
- tmr_base_init(tmr_x, period - 1, psc - 1);
- tmr_clock_source_div_set(tmr_x, TMR_CLOCK_DIV1);
-
- /* pwm mode configuration */
- tmr_output_default_para_init(&tmr_oc_config_struct);
- /* config pwm mode */
- tmr_oc_config_struct.oc_mode = TMR_OUTPUT_CONTROL_PWM_MODE_A;
-
- if (!configuration->complementary)
- {
- tmr_oc_config_struct.oc_idle_state = FALSE;
- tmr_oc_config_struct.oc_output_state = FALSE;
- tmr_oc_config_struct.oc_polarity = TMR_OUTPUT_ACTIVE_HIGH;
- }
- else
- {
- tmr_oc_config_struct.occ_idle_state = FALSE;
- tmr_oc_config_struct.occ_output_state = FALSE;
- tmr_oc_config_struct.occ_polarity = TMR_OUTPUT_ACTIVE_HIGH;
- }
-
- if(channel == 1)
- {
- channel_select = TMR_SELECT_CHANNEL_1;
- }
- else if(channel == 2)
- {
- channel_select = TMR_SELECT_CHANNEL_2;
- }
- else if(channel == 3)
- {
- channel_select = TMR_SELECT_CHANNEL_3;
- }
- else if(channel == 4)
- {
- channel_select = TMR_SELECT_CHANNEL_4;
- }
-
- /* config tmr pwm output */
- tmr_output_channel_config(tmr_x, channel_select, &tmr_oc_config_struct);
- tmr_output_channel_buffer_enable(tmr_x, channel_select, TRUE);
- tmr_channel_value_set(tmr_x, channel_select, pulse);
- /* enable tmr period buffer */
- tmr_period_buffer_enable(tmr_x, TRUE);
- /* enable output */
- tmr_output_enable(tmr_x, TRUE);
-
- return RT_EOK;
-}
-
-static rt_err_t drv_pwm_control(struct rt_device_pwm *device, int cmd, void *arg)
-{
- struct rt_pwm_configuration *configuration = (struct rt_pwm_configuration *)arg;
- tmr_type *tmr_x = (tmr_type *)device->parent.user_data;
-
- switch (cmd)
- {
- case PWMN_CMD_ENABLE:
- configuration->complementary = RT_TRUE;
- case PWM_CMD_ENABLE:
- return drv_pwm_enable(tmr_x, configuration, RT_TRUE);
- case PWMN_CMD_DISABLE:
- configuration->complementary = RT_FALSE;
- case PWM_CMD_DISABLE:
- return drv_pwm_enable(tmr_x, configuration, RT_FALSE);
- case PWM_CMD_SET:
- return drv_pwm_set(tmr_x, configuration);
- case PWM_CMD_GET:
- return drv_pwm_get(tmr_x, configuration);
- default:
- return RT_EINVAL;
- }
-}
-
-static void pwm_get_channel(void)
-{
-#ifdef BSP_USING_PWM1_CH1
- at32_pwm_obj[PWM1_INDEX].channel = 1;
-#endif
-#ifdef BSP_USING_PWM1_CH2
- at32_pwm_obj[PWM1_INDEX].channel = 2;
-#endif
-#ifdef BSP_USING_PWM1_CH3
- at32_pwm_obj[PWM1_INDEX].channel = 3;
-#endif
-#ifdef BSP_USING_PWM1_CH4
- at32_pwm_obj[PWM1_INDEX].channel = 4;
-#endif
-#ifdef BSP_USING_PWM2_CH1
- at32_pwm_obj[PWM2_INDEX].channel = 1;
-#endif
-#ifdef BSP_USING_PWM2_CH2
- at32_pwm_obj[PWM2_INDEX].channel = 2;
-#endif
-#ifdef BSP_USING_PWM2_CH3
- at32_pwm_obj[PWM2_INDEX].channel = 3;
-#endif
-#ifdef BSP_USING_PWM2_CH4
- at32_pwm_obj[PWM2_INDEX].channel = 4;
-#endif
-#ifdef BSP_USING_PWM3_CH1
- at32_pwm_obj[PWM3_INDEX].channel = 1;
-#endif
-#ifdef BSP_USING_PWM3_CH2
- at32_pwm_obj[PWM3_INDEX].channel = 2;
-#endif
-#ifdef BSP_USING_PWM3_CH3
- at32_pwm_obj[PWM3_INDEX].channel = 3;
-#endif
-#ifdef BSP_USING_PWM3_CH4
- at32_pwm_obj[PWM3_INDEX].channel = 4;
-#endif
-#ifdef BSP_USING_PWM4_CH1
- at32_pwm_obj[PWM4_INDEX].channel = 1;
-#endif
-#ifdef BSP_USING_PWM4_CH2
- at32_pwm_obj[PWM4_INDEX].channel = 2;
-#endif
-#ifdef BSP_USING_PWM4_CH3
- at32_pwm_obj[PWM4_INDEX].channel = 3;
-#endif
-#ifdef BSP_USING_PWM4_CH4
- at32_pwm_obj[PWM4_INDEX].channel = 4;
-#endif
-#ifdef BSP_USING_PWM5_CH1
- at32_pwm_obj[PWM5_INDEX].channel = 1;
-#endif
-#ifdef BSP_USING_PWM5_CH2
- at32_pwm_obj[PWM5_INDEX].channel = 2;
-#endif
-#ifdef BSP_USING_PWM5_CH3
- at32_pwm_obj[PWM5_INDEX].channel = 3;
-#endif
-#ifdef BSP_USING_PWM5_CH4
- at32_pwm_obj[PWM5_INDEX].channel = 4;
-#endif
-#ifdef BSP_USING_PWM6_CH1
- at32_pwm_obj[PWM6_INDEX].channel = 1;
-#endif
-#ifdef BSP_USING_PWM6_CH2
- at32_pwm_obj[PWM6_INDEX].channel = 2;
-#endif
-#ifdef BSP_USING_PWM6_CH3
- at32_pwm_obj[PWM6_INDEX].channel = 3;
-#endif
-#ifdef BSP_USING_PWM6_CH4
- at32_pwm_obj[PWM6_INDEX].channel = 4;
-#endif
-#ifdef BSP_USING_PWM7_CH1
- at32_pwm_obj[PWM7_INDEX].channel = 1;
-#endif
-#ifdef BSP_USING_PWM7_CH2
- at32_pwm_obj[PWM7_INDEX].channel = 2;
-#endif
-#ifdef BSP_USING_PWM7_CH3
- at32_pwm_obj[PWM7_INDEX].channel = 3;
-#endif
-#ifdef BSP_USING_PWM7_CH4
- at32_pwm_obj[PWM7_INDEX].channel = 4;
-#endif
-#ifdef BSP_USING_PWM8_CH1
- at32_pwm_obj[PWM8_INDEX].channel = 1;
-#endif
-#ifdef BSP_USING_PWM8_CH2
- at32_pwm_obj[PWM8_INDEX].channel = 2;
-#endif
-#ifdef BSP_USING_PWM8_CH3
- at32_pwm_obj[PWM8_INDEX].channel = 3;
-#endif
-#ifdef BSP_USING_PWM8_CH4
- at32_pwm_obj[PWM8_INDEX].channel = 4;
-#endif
-#ifdef BSP_USING_PWM9_CH1
- at32_pwm_obj[PWM9_INDEX].channel = 1;
-#endif
-#ifdef BSP_USING_PWM9_CH2
- at32_pwm_obj[PWM9_INDEX].channel = 2;
-#endif
-#ifdef BSP_USING_PWM9_CH3
- at32_pwm_obj[PWM9_INDEX].channel = 3;
-#endif
-#ifdef BSP_USING_PWM9_CH4
- at32_pwm_obj[PWM9_INDEX].channel = 4;
-#endif
-#ifdef BSP_USING_PWM12_CH1
- at32_pwm_obj[PWM12_INDEX].channel = 1;
-#endif
-#ifdef BSP_USING_PWM12_CH2
- at32_pwm_obj[PWM12_INDEX].channel = 2;
-#endif
-}
-
-static int rt_hw_pwm_init(void)
-{
- int i = 0;
- int result = RT_EOK;
-
- pwm_get_channel();
-
- for(i = 0; i < sizeof(at32_pwm_obj) / sizeof(at32_pwm_obj[0]); i++)
- {
- if(rt_device_pwm_register(&at32_pwm_obj[i].pwm_device, at32_pwm_obj[i].name, &drv_ops, at32_pwm_obj[i].tmr_x) == RT_EOK)
- {
- LOG_D("%s register success", at32_pwm_obj[i].name);
- }
- else
- {
- LOG_D("%s register failed", at32_pwm_obj[i].name);
- result = -RT_ERROR;
- }
- }
-
- return result;
-}
-
-INIT_BOARD_EXPORT(rt_hw_pwm_init);
-
-#endif /* RT_USING_PWM */
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_pwm.h b/bsp/at32/libraries/f435_437/rt_drivers/drv_pwm.h
deleted file mode 100644
index d303401abb..0000000000
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_pwm.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-10 leo first version
- */
-
-#ifndef __PWM_CONFIG_H__
-#define __PWM_CONFIG_H__
-
-#include <rtthread.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef BSP_USING_PWM1
-#ifndef PWM1_CONFIG
-#define PWM1_CONFIG \
- { \
- .tmr_x = TMR1, \
- .name = "pwm1", \
- .channel = 0 \
- }
-#endif /* PWM1_CONFIG */
-#endif /* BSP_USING_PWM1 */
-
-#ifdef BSP_USING_PWM2
-#ifndef PWM2_CONFIG
-#define PWM2_CONFIG \
- { \
- .tmr_x = TMR2, \
- .name = "pwm2", \
- .channel = 0 \
- }
-#endif /* PWM2_CONFIG */
-#endif /* BSP_USING_PWM2 */
-
-#ifdef BSP_USING_PWM3
-#ifndef PWM3_CONFIG
-#define PWM3_CONFIG \
- { \
- .tmr_x = TMR3, \
- .name = "pwm3", \
- .channel = 0 \
- }
-#endif /* PWM3_CONFIG */
-#endif /* BSP_USING_PWM3 */
-
-#ifdef BSP_USING_PWM4
-#ifndef PWM4_CONFIG
-#define PWM4_CONFIG \
- { \
- .tmr_x = TMR4, \
- .name = "pwm4", \
- .channel = 0 \
- }
-#endif /* PWM4_CONFIG */
-#endif /* BSP_USING_PWM4 */
-
-#ifdef BSP_USING_PWM5
-#ifndef PWM5_CONFIG
-#define PWM5_CONFIG \
- { \
- .tmr_x = TMR5, \
- .name = "pwm5", \
- .channel = 0 \
- }
-#endif /* PWM5_CONFIG */
-#endif /* BSP_USING_PWM5 */
-
-#ifdef BSP_USING_PWM6
-#ifndef PWM6_CONFIG
-#define PWM6_CONFIG \
- { \
- .tmr_x = TMR6, \
- .name = "pwm6", \
- .channel = 0 \
- }
-#endif /* PWM6_CONFIG */
-#endif /* BSP_USING_PWM6 */
-
-#ifdef BSP_USING_PWM7
-#ifndef PWM7_CONFIG
-#define PWM7_CONFIG \
- { \
- .tmr_x = TMR7, \
- .name = "pwm7", \
- .channel = 0 \
- }
-#endif /* PWM7_CONFIG */
-#endif /* BSP_USING_PWM7 */
-
-#ifdef BSP_USING_PWM8
-#ifndef PWM8_CONFIG
-#define PWM8_CONFIG \
- { \
- .tmr_x = TMR8, \
- .name = "pwm8", \
- .channel = 12 \
- }
-#endif /* PWM8_CONFIG */
-#endif /* BSP_USING_PWM8 */
-
-#ifdef BSP_USING_PWM9
-#ifndef PWM9_CONFIG
-#define PWM9_CONFIG \
- { \
- .tmr_x = TMR9, \
- .name = "pwm9", \
- .channel = 0 \
- }
-#endif /* PWM9_CONFIG */
-#endif /* BSP_USING_PWM9 */
-
-#ifdef BSP_USING_PWM10
-#ifndef PWM10_CONFIG
-#define PWM10_CONFIG \
- { \
- .tmr_x = TMR10, \
- .name = "pwm10", \
- .channel = 0 \
- }
-#endif /* PWM10_CONFIG */
-#endif /* BSP_USING_PWM10 */
-
-#ifdef BSP_USING_PWM11
-#ifndef PWM11_CONFIG
-#define PWM11_CONFIG \
- { \
- .tmr_x = TMR11, \
- .name = "pwm11", \
- .channel = 0 \
- }
-#endif /* PWM11_CONFIG */
-#endif /* BSP_USING_PWM11 */
-
-#ifdef BSP_USING_PWM12
-#ifndef PWM12_CONFIG
-#define PWM12_CONFIG \
- { \
- .tmr_x = TMR12, \
- .name = "pwm12", \
- .channel = 0 \
- }
-#endif /* PWM12_CONFIG */
-#endif /* BSP_USING_PWM12 */
-
-#ifdef BSP_USING_PWM13
-#ifndef PWM13_CONFIG
-#define PWM13_CONFIG \
- { \
- .tmr_x = TMR13, \
- .name = "pwm13", \
- .channel = 0 \
- }
-#endif /* PWM13_CONFIG */
-#endif /* BSP_USING_PWM13 */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __PWM_CONFIG_H__ */
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_rtc.c b/bsp/at32/libraries/f435_437/rt_drivers/drv_rtc.c
deleted file mode 100644
index 10c57e5f2c..0000000000
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_rtc.c
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-28 shelton first version
- */
-
-#include <rtthread.h>
-#include <rtdevice.h>
-#include <sys/time.h>
-#include "board.h"
-
-#ifdef BSP_USING_RTC
-
-//#define DRV_DEBUG
-#define LOG_TAG "drv.rtc"
-#include <drv_log.h>
-
-#define BKUP_REG_DATA 0xA5A5
-
-static time_t get_rtc_timestamp(void)
-{
- struct tm tm_new;
- ertc_time_type ertc_time_struct;
-
- ertc_calendar_get(&ertc_time_struct);
-
- tm_new.tm_sec = ertc_time_struct.sec;
- tm_new.tm_min = ertc_time_struct.min;
- tm_new.tm_hour = ertc_time_struct.hour;
- tm_new.tm_mday = ertc_time_struct.day;
- tm_new.tm_mon = ertc_time_struct.month - 1;
- tm_new.tm_year = ertc_time_struct.year + 100;
-
- LOG_D("get rtc time.");
-
- return timegm(&tm_new);
-}
-
-static rt_err_t set_rtc_time_stamp(time_t time_stamp)
-{
- struct tm *p_tm;
-
- p_tm = gmtime(&time_stamp);
- if (p_tm->tm_year < 100)
- {
- return -RT_ERROR;
- }
-
- /* set time */
- if(ertc_time_set(p_tm->tm_hour, p_tm->tm_min, p_tm->tm_sec, ERTC_AM) != SUCCESS)
- {
- return -RT_ERROR;
- }
-
- /* set date */
- if(ertc_date_set(p_tm->tm_year - 100, p_tm->tm_mon + 1, p_tm->tm_mday, p_tm->tm_wday + 1) != SUCCESS)
- {
- return -RT_ERROR;
- }
-
- LOG_D("set rtc time.");
-
- /* indicator for the ertc configuration */
- ertc_bpr_data_write(ERTC_DT1, BKUP_REG_DATA);
-
- return RT_EOK;
-}
-
-static rt_err_t rt_rtc_config(void)
-{
- /* allow access to battery powered domain */
- pwc_battery_powered_domain_access(TRUE);
-
- /* select rtc clock source */
-#ifdef BSP_RTC_USING_LICK
- crm_ertc_clock_select(CRM_ERTC_CLOCK_LICK);
-#else
- crm_ertc_clock_select(CRM_ERTC_CLOCK_LEXT);
-#endif /* BSP_RTC_USING_LICK */
-
- /* enable rtc */
- crm_ertc_clock_enable(TRUE);
-
- /* wait for ertc registers update */
- ertc_wait_update();
-
- if (ertc_bpr_data_read(ERTC_DT1)!= BKUP_REG_DATA)
- {
- LOG_I("RTC hasn't been configured, please use <date> command to config.");
-
- /* configure the ertc divider */
- ertc_divider_set(0x7F, 0xFF);
- /* configure the ertc hour mode */
- ertc_hour_mode_set(ERTC_HOUR_MODE_24);
- }
- return RT_EOK;
-}
-
-static rt_err_t _rtc_init(void)
-{
- crm_periph_clock_enable(CRM_PWC_PERIPH_CLOCK, TRUE);
-
-#ifdef BSP_RTC_USING_LICK
- crm_clock_source_enable(CRM_CLOCK_SOURCE_LICK, TRUE);
- while(crm_flag_get(CRM_LICK_STABLE_FLAG) == RESET);
-#else
- pwc_battery_powered_domain_access(TRUE);
- crm_clock_source_enable(CRM_CLOCK_SOURCE_LEXT, TRUE);
- while(crm_flag_get(CRM_LEXT_STABLE_FLAG) == RESET);
-#endif /* BSP_RTC_USING_LICK */
-
- if (rt_rtc_config() != RT_EOK)
- {
- LOG_E("rtc init failed.");
- return -RT_ERROR;
- }
-
- return RT_EOK;
-}
-
-static rt_err_t _rtc_get_secs(void *args)
-{
- *(rt_uint32_t *)args = get_rtc_timestamp();
- LOG_D("RTC: get rtc_time %x\n", *(rt_uint32_t *)args);
-
- return RT_EOK;
-}
-
-static rt_err_t _rtc_set_secs(void *args)
-{
- rt_err_t result = RT_EOK;
-
- if (set_rtc_time_stamp(*(rt_uint32_t *)args))
- {
- result = -RT_ERROR;
- }
- LOG_D("RTC: set rtc_time %x\n", *(rt_uint32_t *)args);
-
- return result;
-}
-
-static const struct rt_rtc_ops _rtc_ops =
-{
- _rtc_init,
- _rtc_get_secs,
- _rtc_set_secs,
- RT_NULL,
- RT_NULL,
- RT_NULL,
- RT_NULL,
-};
-
-static rt_rtc_dev_t at32_rtc_dev;
-
-int rt_hw_rtc_init(void)
-{
- rt_err_t result;
- at32_rtc_dev.ops = &_rtc_ops;
- result = rt_hw_rtc_register(&at32_rtc_dev, "rtc", RT_DEVICE_FLAG_RDWR,RT_NULL);
- if (result != RT_EOK)
- {
- LOG_E("rtc register err code: %d", result);
- return result;
- }
- LOG_D("rtc init success");
- return RT_EOK;
-}
-
-INIT_DEVICE_EXPORT(rt_hw_rtc_init);
-
-#endif /* BSP_USING_RTC */
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_soft_i2c.h b/bsp/at32/libraries/f435_437/rt_drivers/drv_soft_i2c.h
deleted file mode 100644
index fecab31b4d..0000000000
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_soft_i2c.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2020-01-09 shelton first version
- */
-
-#ifndef __DRV_I2C__
-#define __DRV_I2C__
-
-#include <rtthread.h>
-#include <rthw.h>
-#include <rtdevice.h>
-
-/* at32 config class */
-struct at32_soft_i2c_config
-{
- rt_uint8_t scl;
- rt_uint8_t sda;
- const char *bus_name;
-};
-/* at32 i2c dirver class */
-struct at32_i2c
-{
- struct rt_i2c_bit_ops ops;
- struct rt_i2c_bus_device i2c_bus;
-};
-
-#ifdef BSP_USING_I2C1
-#define I2C1_BUS_CONFIG \
- { \
- .scl = BSP_I2C1_SCL_PIN, \
- .sda = BSP_I2C1_SDA_PIN, \
- .bus_name = "i2c1", \
- }
-#endif
-
-#ifdef BSP_USING_I2C2
-#define I2C2_BUS_CONFIG \
- { \
- .scl = BSP_I2C2_SCL_PIN, \
- .sda = BSP_I2C2_SDA_PIN, \
- .bus_name = "i2c2", \
- }
-#endif
-
-#ifdef BSP_USING_I2C3
-#define I2C3_BUS_CONFIG \
- { \
- .scl = BSP_I2C3_SCL_PIN, \
- .sda = BSP_I2C3_SDA_PIN, \
- .bus_name = "i2c3", \
- }
-#endif
-
-int rt_hw_i2c_init(void);
-
-#endif
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_spi.c b/bsp/at32/libraries/f435_437/rt_drivers/drv_spi.c
deleted file mode 100644
index 6acfcc5fb7..0000000000
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_spi.c
+++ /dev/null
@@ -1,340 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-11 shelton first version
- */
-
-#include "board.h"
-#include "drv_spi.h"
-
-#ifdef RT_USING_SPI
-#if !defined(BSP_USING_SPI1) && !defined(BSP_USING_SPI2) && \
- !defined(BSP_USING_SPI3) && !defined(BSP_USING_SPI4)
-#error "Please define at least one BSP_USING_SPIx"
-#endif
-
-#define ARR_LEN(__N) (sizeof(__N) / sizeof(__N[0]))
-
-//#define DRV_DEBUG
-#define LOG_TAG "drv.pwm"
-#include <drv_log.h>
-
-/* private rt-thread spi ops function */
-static rt_err_t configure(struct rt_spi_device* device, struct rt_spi_configuration* configuration);
-static rt_uint32_t xfer(struct rt_spi_device* device, struct rt_spi_message* message);
-
-static struct rt_spi_ops at32_spi_ops =
-{
- configure,
- xfer
-};
-
-/**
- * attach the spi device to spi bus, this function must be used after initialization.
- */
-rt_err_t rt_hw_spi_device_attach(const char *bus_name, const char *device_name, gpio_type *cs_gpiox, uint16_t cs_gpio_pin)
-{
- gpio_init_type gpio_init_struct;
-
- RT_ASSERT(bus_name != RT_NULL);
- RT_ASSERT(device_name != RT_NULL);
-
- rt_err_t result;
- struct rt_spi_device *spi_device;
- struct at32_spi_cs *cs_pin;
-
- /* initialize the cs pin & select the slave*/
- gpio_default_para_init(&gpio_init_struct);
- gpio_init_struct.gpio_pins = cs_gpio_pin;
- gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
- gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
- gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
- gpio_init(cs_gpiox, &gpio_init_struct);
- gpio_bits_set(cs_gpiox, cs_gpio_pin);
-
- /* attach the device to spi bus */
- spi_device = (struct rt_spi_device *)rt_malloc(sizeof(struct rt_spi_device));
- RT_ASSERT(spi_device != RT_NULL);
- cs_pin = (struct at32_spi_cs *)rt_malloc(sizeof(struct at32_spi_cs));
- RT_ASSERT(cs_pin != RT_NULL);
- cs_pin->gpio_x = cs_gpiox;
- cs_pin->gpio_pin = cs_gpio_pin;
- result = rt_spi_bus_attach_device(spi_device, device_name, bus_name, (void *)cs_pin);
-
- if (result != RT_EOK)
- {
- LOG_D("%s attach to %s faild, %d\n", device_name, bus_name, result);
- }
-
- RT_ASSERT(result == RT_EOK);
-
- LOG_D("%s attach to %s done", device_name, bus_name);
-
- return result;
-}
-
-static rt_err_t configure(struct rt_spi_device* device,
- struct rt_spi_configuration* configuration)
-{
- struct rt_spi_bus * spi_bus = (struct rt_spi_bus *)device->bus;
- struct at32_spi *spi_instance = (struct at32_spi *)spi_bus->parent.user_data;
-
- spi_init_type spi_init_struct;
-
- RT_ASSERT(device != RT_NULL);
- RT_ASSERT(configuration != RT_NULL);
-
- at32_msp_spi_init(spi_instance->config->spi_x);
-
- /* data_width */
- if(configuration->data_width <= 8)
- {
- spi_init_struct.frame_bit_num = SPI_FRAME_8BIT;
- }
- else if(configuration->data_width <= 16)
- {
- spi_init_struct.frame_bit_num = SPI_FRAME_16BIT;
- }
- else
- {
- return RT_EIO;
- }
-
- /* baudrate */
- {
- uint32_t spi_apb_clock;
- uint32_t max_hz;
- crm_clocks_freq_type clocks_struct;
-
- max_hz = configuration->max_hz;
-
- crm_clocks_freq_get(&clocks_struct);
- LOG_D("sys freq: %d\n", clocks_struct.sclk_freq);
- LOG_D("max freq: %d\n", max_hz);
-
- if (spi_instance->config->spi_x == SPI1)
- {
- spi_apb_clock = clocks_struct.apb2_freq;
- LOG_D("pclk2 freq: %d\n", clocks_struct.apb2_freq);
- }
- else
- {
- spi_apb_clock = clocks_struct.apb1_freq;
- LOG_D("pclk1 freq: %d\n", clocks_struct.apb1_freq);
- }
-
- if(max_hz >= (spi_apb_clock / 2))
- {
- spi_init_struct.mclk_freq_division = SPI_MCLK_DIV_2;
- }
- else if (max_hz >= (spi_apb_clock / 4))
- {
- spi_init_struct.mclk_freq_division = SPI_MCLK_DIV_4;
- }
- else if (max_hz >= (spi_apb_clock / 8))
- {
- spi_init_struct.mclk_freq_division = SPI_MCLK_DIV_8;
- }
- else if (max_hz >= (spi_apb_clock / 16))
- {
- spi_init_struct.mclk_freq_division = SPI_MCLK_DIV_16;
- }
- else if (max_hz >= (spi_apb_clock / 32))
- {
- spi_init_struct.mclk_freq_division = SPI_MCLK_DIV_32;
- }
- else if (max_hz >= (spi_apb_clock / 64))
- {
- spi_init_struct.mclk_freq_division = SPI_MCLK_DIV_64;
- }
- else if (max_hz >= (spi_apb_clock / 128))
- {
- spi_init_struct.mclk_freq_division = SPI_MCLK_DIV_128;
- }
- else
- {
- /* min prescaler 256 */
- spi_init_struct.mclk_freq_division = SPI_MCLK_DIV_256;
- }
- } /* baudrate */
-
- switch(configuration->mode & RT_SPI_MODE_3)
- {
- case RT_SPI_MODE_0:
- spi_init_struct.clock_phase = SPI_CLOCK_PHASE_1EDGE;
- spi_init_struct.clock_polarity = SPI_CLOCK_POLARITY_LOW;
- break;
- case RT_SPI_MODE_1:
- spi_init_struct.clock_phase = SPI_CLOCK_PHASE_2EDGE;
- spi_init_struct.clock_polarity = SPI_CLOCK_POLARITY_LOW;
- break;
- case RT_SPI_MODE_2:
- spi_init_struct.clock_phase = SPI_CLOCK_PHASE_1EDGE;
- spi_init_struct.clock_polarity = SPI_CLOCK_POLARITY_HIGH;
- break;
- case RT_SPI_MODE_3:
- spi_init_struct.clock_phase = SPI_CLOCK_PHASE_2EDGE;
- spi_init_struct.clock_polarity = SPI_CLOCK_POLARITY_HIGH;
- break;
- }
-
- /* msb or lsb */
- if(configuration->mode & RT_SPI_MSB)
- {
- spi_init_struct.first_bit_transmission = SPI_FIRST_BIT_MSB;
- }
- else
- {
- spi_init_struct.first_bit_transmission = SPI_FIRST_BIT_LSB;
- }
-
- spi_init_struct.transmission_mode = SPI_TRANSMIT_FULL_DUPLEX;
- spi_init_struct.master_slave_mode = SPI_MODE_MASTER;
- spi_init_struct.cs_mode_selection = SPI_CS_SOFTWARE_MODE;
- /* init spi */
- spi_init(spi_instance->config->spi_x, &spi_init_struct);
-
- /* enable spi */
- spi_enable(spi_instance->config->spi_x, TRUE);
- /* disable spi crc */
- spi_crc_enable(spi_instance->config->spi_x, FALSE);
-
- return RT_EOK;
-};
-
-static rt_uint32_t xfer(struct rt_spi_device* device, struct rt_spi_message* message)
-{
- struct rt_spi_bus * at32_spi_bus = (struct rt_spi_bus *)device->bus;
- struct at32_spi *spi_instance = (struct at32_spi *)at32_spi_bus->parent.user_data;
- struct rt_spi_configuration * config = &device->config;
- struct at32_spi_cs * at32_spi_cs = device->parent.user_data;
-
- RT_ASSERT(device != NULL);
- RT_ASSERT(message != NULL);
-
- /* take cs */
- if(message->cs_take)
- {
- gpio_bits_reset(at32_spi_cs->gpio_x, at32_spi_cs->gpio_pin);
- LOG_D("spi take cs\n");
- }
-
- if(config->data_width <= 8)
- {
- const rt_uint8_t *send_ptr = message->send_buf;
- rt_uint8_t * recv_ptr = message->recv_buf;
- rt_uint32_t size = message->length;
-
- LOG_D("spi poll transfer start: %d\n", size);
-
- while(size--)
- {
- rt_uint8_t data = 0xFF;
-
- if(send_ptr != RT_NULL)
- {
- data = *send_ptr++;
- }
-
- /* wait until the transmit buffer is empty */
- while(spi_i2s_flag_get(spi_instance->config->spi_x, SPI_I2S_TDBE_FLAG) == RESET);
- /* send the byte */
- spi_i2s_data_transmit(spi_instance->config->spi_x, data);
-
- /* wait until a data is received */
- while(spi_i2s_flag_get(spi_instance->config->spi_x, SPI_I2S_RDBF_FLAG) == RESET);
- /* get the received data */
- data = spi_i2s_data_receive(spi_instance->config->spi_x);
-
- if(recv_ptr != RT_NULL)
- {
- *recv_ptr++ = data;
- }
- }
- LOG_D("spi poll transfer finsh\n");
- }
- else if(config->data_width <= 16)
- {
- const rt_uint16_t * send_ptr = message->send_buf;
- rt_uint16_t * recv_ptr = message->recv_buf;
- rt_uint32_t size = message->length;
-
- while(size--)
- {
- rt_uint16_t data = 0xFF;
-
- if(send_ptr != RT_NULL)
- {
- data = *send_ptr++;
- }
-
- /* wait until the transmit buffer is empty */
- while(spi_i2s_flag_get(spi_instance->config->spi_x, SPI_I2S_TDBE_FLAG) == RESET);
- /* send the byte */
- spi_i2s_data_transmit(spi_instance->config->spi_x, data);
-
- /* wait until a data is received */
- while(spi_i2s_flag_get(spi_instance->config->spi_x, SPI_I2S_RDBF_FLAG) == RESET);
- /* get the received data */
- data = spi_i2s_data_receive(spi_instance->config->spi_x);
-
- if(recv_ptr != RT_NULL)
- {
- *recv_ptr++ = data;
- }
- }
- }
-
- /* release cs */
- if(message->cs_release)
- {
- gpio_bits_set(at32_spi_cs->gpio_x, at32_spi_cs->gpio_pin);
- LOG_D("spi release cs\n");
- }
-
- return message->length;
-};
-
-static struct at32_spi_config configs[] = {
-#ifdef BSP_USING_SPI1
- {SPI1, "spi1"},
-#endif
-
-#ifdef BSP_USING_SPI2
- {SPI2, "spi2"},
-#endif
-
-#ifdef BSP_USING_SPI3
- {SPI3, "spi3"},
-#endif
-
-#ifdef BSP_USING_SPI4
- {SPI4, "spi4"},
-#endif
-};
-
-static struct at32_spi spis[sizeof(configs) / sizeof(configs[0])] = {0};
-
-int rt_hw_spi_init(void)
-{
- int i;
- rt_err_t result;
- rt_size_t obj_num = sizeof(spis) / sizeof(struct at32_spi);
-
- for (i = 0; i < obj_num; i++)
- {
- spis[i].config = &configs[i];
- spis[i].spi_bus.parent.user_data = (void *)&spis[i];
- result = rt_spi_bus_register(&(spis[i].spi_bus), spis[i].config->spi_name, &at32_spi_ops);
- }
-
- return result;
-}
-
-INIT_BOARD_EXPORT(rt_hw_spi_init);
-
-#endif
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_spi.h b/bsp/at32/libraries/f435_437/rt_drivers/drv_spi.h
deleted file mode 100644
index 68959a6631..0000000000
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_spi.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2020-01-09 shelton first version
- */
-
-#ifndef __DRV_SPI__
-#define __DRV_SPI__
-
-#include <rtthread.h>
-#include <drivers/spi.h>
-#include "at32f435_437.h"
-
-struct at32_spi_config
-{
- spi_type *spi_x;
- const char *spi_name;
-};
-
-struct at32_spi
-{
- struct at32_spi_config *config;
- struct rt_spi_bus spi_bus;
-};
-
-struct at32_spi_cs
-{
- gpio_type *gpio_x;
- uint32_t gpio_pin;
-};
-
-/* public function */
-int rt_hw_spi_init(void);
-rt_err_t rt_hw_spi_device_attach(const char *bus_name, const char *device_name, gpio_type *cs_gpiox, uint16_t cs_gpio_pin);
-
-#endif // __DRV_SPI__
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_usart.c b/bsp/at32/libraries/f435_437/rt_drivers/drv_usart.c
deleted file mode 100644
index 7aa9630ee5..0000000000
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_usart.c
+++ /dev/null
@@ -1,347 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-28 shelton first version
- */
-
-#include "board.h"
-#include "drv_usart.h"
-
-#ifdef RT_USING_SERIAL
-#if !defined(BSP_USING_UART1) && !defined(BSP_USING_UART2) && \
- !defined(BSP_USING_UART3) && !defined(BSP_USING_UART4) && \
- !defined(BSP_USING_UART5) && !defined(BSP_USING_UART6) && \
- !defined(BSP_USING_UART7) && !defined(BSP_USING_UART8)
- #error "Please define at least one BSP_USING_UARTx"
-#endif
-
-struct at32_usart {
- char *name;
- usart_type* usart_x;
- IRQn_Type irqn;
- struct rt_serial_device serial;
-};
-
-enum {
-#ifdef BSP_USING_UART1
- UART1_INDEX,
-#endif
-#ifdef BSP_USING_UART2
- UART2_INDEX,
-#endif
-#ifdef BSP_USING_UART3
- UART3_INDEX,
-#endif
-#ifdef BSP_USING_UART4
- UART4_INDEX,
-#endif
-#ifdef BSP_USING_UART5
- UART5_INDEX,
-#endif
-#ifdef BSP_USING_UART6
- UART6_INDEX,
-#endif
-#ifdef BSP_USING_UART7
- UART7_INDEX,
-#endif
-#ifdef BSP_USING_UART8
- UART8_INDEX,
-#endif
-};
-
-static struct at32_usart usart_config[] = {
-#ifdef BSP_USING_UART1
- { "uart1",
- USART1,
- USART1_IRQn, },
-#endif
-#ifdef BSP_USING_UART2
- { "uart2",
- USART2,
- USART2_IRQn, },
-#endif
-#ifdef BSP_USING_UART3
- { "uart3",
- USART3,
- USART3_IRQn, },
-#endif
-#ifdef BSP_USING_UART4
- { "uart4",
- UART4,
- UART4_IRQn, },
-#endif
-#ifdef BSP_USING_UART5
- { "uart5",
- UART5,
- UART5_IRQn, },
-#endif
-#ifdef BSP_USING_UART6
- { "uart6",
- USART6,
- USART6_IRQn, },
-#endif
-#ifdef BSP_USING_UART7
- { "uart7",
- UART7,
- UART7_IRQn, },
-#endif
-#ifdef BSP_USING_UART8
- { "uart8",
- UART8,
- UART8_IRQn, },
-#endif
-};
-
-static rt_err_t at32_configure(struct rt_serial_device *serial,
- struct serial_configure *cfg) {
- struct at32_usart *usart_instance = (struct at32_usart *) serial->parent.user_data;
- usart_data_bit_num_type data_bit;
- usart_stop_bit_num_type stop_bit;
- usart_parity_selection_type parity_mode;
-
- RT_ASSERT(serial != RT_NULL);
- RT_ASSERT(cfg != RT_NULL);
-
- RT_ASSERT(usart_instance != RT_NULL);
-
- at32_msp_usart_init((void *)usart_instance->usart_x);
-
- usart_receiver_enable(usart_instance->usart_x, TRUE);
- usart_transmitter_enable(usart_instance->usart_x, TRUE);
-
- usart_hardware_flow_control_set(usart_instance->usart_x, USART_HARDWARE_FLOW_NONE);
-
- switch (cfg->data_bits) {
- case DATA_BITS_8:
- data_bit = USART_DATA_8BITS;
- break;
- case DATA_BITS_9:
- data_bit = USART_DATA_9BITS;
- break;
- default:
- data_bit = USART_DATA_8BITS;
- break;
- }
-
- switch (cfg->stop_bits) {
- case STOP_BITS_1:
- stop_bit = USART_STOP_1_BIT;
- break;
- case STOP_BITS_2:
- stop_bit = USART_STOP_2_BIT;
- break;
- default:
- stop_bit = USART_STOP_1_BIT;
- break;
- }
-
- switch (cfg->parity) {
- case PARITY_NONE:
- parity_mode = USART_PARITY_NONE;
- break;
- case PARITY_ODD:
- parity_mode = USART_PARITY_ODD;
- break;
- case PARITY_EVEN:
- parity_mode = USART_PARITY_EVEN;
- break;
- default:
- parity_mode = USART_PARITY_NONE;
- break;
- }
- usart_parity_selection_config(usart_instance->usart_x, parity_mode);
- usart_init(usart_instance->usart_x, cfg->baud_rate, data_bit, stop_bit);
- usart_enable(usart_instance->usart_x, TRUE);
-
- return RT_EOK;
-}
-
-static rt_err_t at32_control(struct rt_serial_device *serial, int cmd, void *arg) {
- struct at32_usart *usart;
-
- RT_ASSERT(serial != RT_NULL);
- usart = (struct at32_usart *) serial->parent.user_data;
- RT_ASSERT(usart != RT_NULL);
-
- switch (cmd) {
- case RT_DEVICE_CTRL_CLR_INT:
- nvic_irq_disable(usart->irqn);
- usart_interrupt_enable(usart->usart_x, USART_RDBF_INT, FALSE);
- break;
- case RT_DEVICE_CTRL_SET_INT:
- nvic_irq_enable(usart->irqn, 2, 1);
- usart_interrupt_enable(usart->usart_x, USART_RDBF_INT, TRUE);
- break;
- }
-
- return RT_EOK;
-}
-
-static int at32_putc(struct rt_serial_device *serial, char ch) {
- struct at32_usart *usart;
-
- RT_ASSERT(serial != RT_NULL);
- usart = (struct at32_usart *) serial->parent.user_data;
- RT_ASSERT(usart != RT_NULL);
-
- usart_data_transmit(usart->usart_x, (uint8_t)ch);
- while (usart_flag_get(usart->usart_x, USART_TDC_FLAG) == RESET);
-
- return 1;
-}
-
-static int at32_getc(struct rt_serial_device *serial) {
- int ch;
- struct at32_usart *usart;
-
- RT_ASSERT(serial != RT_NULL);
- usart = (struct at32_usart *) serial->parent.user_data;
- RT_ASSERT(usart != RT_NULL);
-
- ch = -1;
- if (usart_flag_get(usart->usart_x, USART_RDBF_FLAG) != RESET) {
- ch = usart_data_receive(usart->usart_x) & 0xff;
- }
-
- return ch;
-}
-
-static const struct rt_uart_ops at32_usart_ops = {
- at32_configure,
- at32_control,
- at32_putc,
- at32_getc,
- RT_NULL
-};
-
-static void usart_isr(struct rt_serial_device *serial) {
- struct at32_usart *usart_instance;
-
- RT_ASSERT(serial != RT_NULL);
-
- usart_instance = (struct at32_usart *) serial->parent.user_data;
- RT_ASSERT(usart_instance != RT_NULL);
-
- if (usart_flag_get(usart_instance->usart_x, USART_RDBF_FLAG) != RESET) {
- rt_hw_serial_isr(serial, RT_SERIAL_EVENT_RX_IND);
- usart_flag_clear(usart_instance->usart_x, USART_RDBF_FLAG);
- }
- else
- {
- if (usart_flag_get(usart_instance->usart_x, USART_CTSCF_FLAG) != RESET) {
- usart_flag_clear(usart_instance->usart_x, USART_CTSCF_FLAG);
- }
-
- if (usart_flag_get(usart_instance->usart_x, USART_BFF_FLAG) != RESET) {
- usart_flag_clear(usart_instance->usart_x, USART_BFF_FLAG);
- }
-
- if (usart_flag_get(usart_instance->usart_x, USART_TDC_FLAG) != RESET) {
- usart_flag_clear(usart_instance->usart_x, USART_TDC_FLAG);
- }
- }
-}
-
-#ifdef BSP_USING_UART1
-void USART1_IRQHandler(void) {
- rt_interrupt_enter();
-
- usart_isr(&usart_config[UART1_INDEX].serial);
-
- rt_interrupt_leave();
-}
-#endif
-#ifdef BSP_USING_UART2
-void USART2_IRQHandler(void) {
- rt_interrupt_enter();
-
- usart_isr(&usart_config[UART2_INDEX].serial);
-
- rt_interrupt_leave();
-}
-#endif
-#ifdef BSP_USING_UART3
-void USART3_IRQHandler(void) {
- rt_interrupt_enter();
-
- usart_isr(&usart_config[UART3_INDEX].serial);
-
- rt_interrupt_leave();
-}
-#endif
-#ifdef BSP_USING_UART4
-void UART4_IRQHandler(void) {
- rt_interrupt_enter();
-
- usart_isr(&usart_config[UART4_INDEX].serial);
-
- rt_interrupt_leave();
-}
-#endif
-#ifdef BSP_USING_UART5
-void UART5_IRQHandler(void) {
- rt_interrupt_enter();
-
- usart_isr(&usart_config[UART5_INDEX].serial);
-
- rt_interrupt_leave();
-}
-#endif
-#ifdef BSP_USING_UART6
-void USART6_IRQHandler(void) {
- rt_interrupt_enter();
-
- usart_isr(&usart_config[UART6_INDEX].serial);
-
- rt_interrupt_leave();
-}
-#endif
-#ifdef BSP_USING_UART7
-void UART7_IRQHandler(void) {
- rt_interrupt_enter();
-
- usart_isr(&usart_config[UART7_INDEX].serial);
-
- rt_interrupt_leave();
-}
-#endif
-#ifdef BSP_USING_UART8
-void UART8_IRQHandler(void) {
- rt_interrupt_enter();
-
- usart_isr(&usart_config[UART8_INDEX].serial);
-
- rt_interrupt_leave();
-}
-#endif
-
-int rt_hw_usart_init(void) {
- rt_size_t obj_num;
- int index;
-
- obj_num = sizeof(usart_config) / sizeof(struct at32_usart);
- struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT;
- rt_err_t result = 0;
-
- for (index = 0; index < obj_num; index++) {
- usart_config[index].serial.ops = &at32_usart_ops;
- usart_config[index].serial.config = config;
-
- /* register uart device */
- result = rt_hw_serial_register(&usart_config[index].serial,
- usart_config[index].name,
- RT_DEVICE_FLAG_RDWR |
- RT_DEVICE_FLAG_INT_RX |
- RT_DEVICE_FLAG_INT_TX,
- &usart_config[index]);
- RT_ASSERT(result == RT_EOK);
- }
-
- return result;
-}
-
-#endif /* BSP_USING_SERIAL */
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_usart.h b/bsp/at32/libraries/f435_437/rt_drivers/drv_usart.h
deleted file mode 100644
index fc493d42da..0000000000
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_usart.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2020-03-04 shelton first version
- */
-
-#ifndef __DRV_UART_H__
-#define __DRV_UART_H__
-
-#include <rtthread.h>
-#include <rtdevice.h>
-
-int rt_hw_usart_init(void);
-
-#endif /* __DRV_USART_H__ */
-
-/******************* end of file *******************/
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/SConscript b/bsp/at32/libraries/rt_drivers/SConscript
index ff23217a47..ff23217a47 100644
--- a/bsp/at32/libraries/f435_437/rt_drivers/SConscript
+++ b/bsp/at32/libraries/rt_drivers/SConscript
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_adc.c b/bsp/at32/libraries/rt_drivers/drv_adc.c
index a2d990da4a..710c419ce8 100644
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_adc.c
+++ b/bsp/at32/libraries/rt_drivers/drv_adc.c
@@ -5,10 +5,10 @@
*
* Change Logs:
* Date Author Notes
- * 2022-03-28 shelton first version
+ * 2022-05-16 shelton first version
*/
-#include "board.h"
+#include "drv_common.h"
#include "drv_adc.h"
#if defined(BSP_USING_ADC1) || defined(BSP_USING_ADC2) || \
@@ -44,13 +44,16 @@ static rt_err_t at32_adc_enabled(struct rt_adc_device *device, rt_uint32_t chann
{
adc_type *adc_x;
adc_base_config_type adc_config_struct;
+#if defined (SOC_SERIES_AT32F435) || defined (SOC_SERIES_AT32F437)
adc_common_config_type adc_common_struct;
+#endif
RT_ASSERT(device != RT_NULL);
adc_x = device->parent.user_data;
at32_msp_adc_init(adc_x);
+#if defined (SOC_SERIES_AT32F435) || defined (SOC_SERIES_AT32F437)
adc_common_default_para_init(&adc_common_struct);
/* config combine mode */
adc_common_struct.combine_mode = ADC_INDEPENDENT_MODE;
@@ -67,6 +70,12 @@ static rt_err_t at32_adc_enabled(struct rt_adc_device *device, rt_uint32_t chann
/* config voltage battery */
adc_common_struct.vbat_state = FALSE;
adc_common_config(&adc_common_struct);
+#else
+#if !defined (SOC_SERIES_AT32F415)
+ adc_combine_mode_select(ADC_INDEPENDENT_MODE);
+#endif
+ adc_ordinary_conversion_trigger_set(adc_x, ADC12_ORDINARY_TRIG_SOFTWARE, TRUE);
+#endif
/* adc_x configuration */
adc_base_default_para_init(&adc_config_struct);
@@ -112,13 +121,21 @@ static rt_err_t at32_get_adc_value(struct rt_adc_device *device, rt_uint32_t cha
adc_x = device->parent.user_data;
/* adc_x regular channels configuration */
+#if defined (SOC_SERIES_AT32F435) || defined (SOC_SERIES_AT32F437)
adc_ordinary_channel_set(adc_x, (adc_channel_select_type)channel, 1, ADC_SAMPLETIME_247_5);
+#else
+ adc_ordinary_channel_set(adc_x, (adc_channel_select_type)channel, 1, ADC_SAMPLETIME_239_5);
+#endif
/* start adc_x software conversion */
adc_ordinary_software_trigger_enable(adc_x, TRUE);
/* wait for the adc to convert */
+#if defined (SOC_SERIES_AT32F435) || defined (SOC_SERIES_AT32F437)
while((adc_flag_get(adc_x, ADC_OCCE_FLAG) == RESET) && timeout < 0xFFFF)
+#else
+ while((adc_flag_get(adc_x, ADC_CCE_FLAG) == RESET) && timeout < 0xFFFF)
+#endif
{
timeout ++;
}
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_adc.h b/bsp/at32/libraries/rt_drivers/drv_adc.h
index 3c64765823..3c64765823 100644
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_adc.h
+++ b/bsp/at32/libraries/rt_drivers/drv_adc.h
diff --git a/bsp/at32/libraries/f403a_407/rt_drivers/drv_can.c b/bsp/at32/libraries/rt_drivers/drv_can.c
index a1c24a4f1d..7a0f7ba49c 100644
--- a/bsp/at32/libraries/f403a_407/rt_drivers/drv_can.c
+++ b/bsp/at32/libraries/rt_drivers/drv_can.c
@@ -5,7 +5,7 @@
*
* Change Logs:
* Date Author Notes
- * 2022-03-11 shelton first version
+ * 2022-05-16 shelton first version
*/
#include "drv_can.h"
@@ -47,6 +47,87 @@ static const struct at32_baud_rate can_baud_rate_tab[] =
{CAN10kBaud, {500, CAN_RSAW_2TQ, CAN_BTS1_16TQ, CAN_BTS2_3TQ}}
};
#endif
+#ifdef SOC_SERIES_AT32F413
+/* attention !!! baud calculation example: apbclk / ((ss + bs1 + bs2) * brp), ep: 96 / ((1 + 8 + 3) * 8) = 1MHz*/
+/* attention !!! default apbclk 96 mhz */
+static const struct at32_baud_rate can_baud_rate_tab[] =
+{
+ {CAN1MBaud, {8 , CAN_RSAW_3TQ, CAN_BTS1_8TQ, CAN_BTS2_3TQ}},
+ {CAN800kBaud, {20, CAN_RSAW_1TQ, CAN_BTS1_3TQ, CAN_BTS2_2TQ}},
+ {CAN500kBaud, {16, CAN_RSAW_3TQ, CAN_BTS1_8TQ, CAN_BTS2_3TQ}},
+ {CAN250kBaud, {32, CAN_RSAW_3TQ, CAN_BTS1_8TQ, CAN_BTS2_3TQ}},
+ {CAN125kBaud, {64, CAN_RSAW_3TQ, CAN_BTS1_8TQ, CAN_BTS2_3TQ}},
+ {CAN100kBaud, {160, CAN_RSAW_1TQ, CAN_BTS1_3TQ, CAN_BTS2_2TQ}},
+ {CAN50kBaud, {320, CAN_RSAW_1TQ, CAN_BTS1_3TQ, CAN_BTS2_2TQ}},
+ {CAN20kBaud, {800, CAN_RSAW_1TQ, CAN_BTS1_3TQ, CAN_BTS2_2TQ}},
+ {CAN10kBaud, {800, CAN_RSAW_1TQ, CAN_BTS1_8TQ, CAN_BTS2_3TQ}},
+};
+#endif
+#ifdef SOC_SERIES_AT32F415
+/* attention !!! baud calculation example: apbclk / ((ss + bs1 + bs2) * brp), ep: 72 / ((1 + 8 + 3) * 10) = 1MHz*/
+/* attention !!! default apbclk 72 mhz */
+static const struct at32_baud_rate can_baud_rate_tab[] =
+{
+ {CAN1MBaud, {6 , CAN_RSAW_3TQ, CAN_BTS1_8TQ, CAN_BTS2_3TQ}},
+ {CAN800kBaud, {10 , CAN_RSAW_2TQ, CAN_BTS1_6TQ, CAN_BTS2_2TQ}},
+ {CAN500kBaud, {12 , CAN_RSAW_3TQ, CAN_BTS1_8TQ, CAN_BTS2_3TQ}},
+ {CAN250kBaud, {24 , CAN_RSAW_3TQ, CAN_BTS1_8TQ, CAN_BTS2_3TQ}},
+ {CAN125kBaud, {48 , CAN_RSAW_3TQ, CAN_BTS1_8TQ, CAN_BTS2_3TQ}},
+ {CAN100kBaud, {60 , CAN_RSAW_3TQ, CAN_BTS1_8TQ, CAN_BTS2_3TQ}},
+ {CAN50kBaud, {120, CAN_RSAW_3TQ, CAN_BTS1_8TQ, CAN_BTS2_3TQ}},
+ {CAN20kBaud, {300, CAN_RSAW_3TQ, CAN_BTS1_8TQ, CAN_BTS2_3TQ}},
+ {CAN10kBaud, {600, CAN_RSAW_3TQ, CAN_BTS1_8TQ, CAN_BTS2_3TQ}}
+};
+#endif
+#ifdef SOC_SERIES_AT32F435
+/* attention !!! baud calculation example: apbclk / ((ss + bs1 + bs2) * brp), ep: 144 / ((1 + 8 + 3) * 12) = 1MHz*/
+/* attention !!! default apbclk 144 mhz */
+static const struct at32_baud_rate can_baud_rate_tab[] =
+{
+ {CAN1MBaud, {12 , CAN_RSAW_3TQ, CAN_BTS1_8TQ, CAN_BTS2_3TQ}},
+ {CAN800kBaud, {18 , CAN_RSAW_2TQ, CAN_BTS1_7TQ, CAN_BTS2_2TQ}},
+ {CAN500kBaud, {24 , CAN_RSAW_2TQ, CAN_BTS1_9TQ, CAN_BTS2_2TQ}},
+ {CAN250kBaud, {48 , CAN_RSAW_2TQ, CAN_BTS1_9TQ, CAN_BTS2_2TQ}},
+ {CAN125kBaud, {96 , CAN_RSAW_2TQ, CAN_BTS1_9TQ, CAN_BTS2_2TQ}},
+ {CAN100kBaud, {90 , CAN_RSAW_2TQ, CAN_BTS1_13TQ, CAN_BTS2_2TQ}},
+ {CAN50kBaud, {180, CAN_RSAW_2TQ, CAN_BTS1_13TQ, CAN_BTS2_2TQ}},
+ {CAN20kBaud, {450, CAN_RSAW_2TQ, CAN_BTS1_13TQ, CAN_BTS2_2TQ}},
+ {CAN10kBaud, {900, CAN_RSAW_2TQ, CAN_BTS1_13TQ, CAN_BTS2_2TQ}}
+};
+#endif
+#ifdef SOC_SERIES_AT32F437
+/* attention !!! baud calculation example: apbclk / ((ss + bs1 + bs2) * brp), ep: 125 / ((1 + 3 + 1) * 25) = 1MHz*/
+/* attention !!! default apbclk 125 mhz */
+static const struct at32_baud_rate can_baud_rate_tab[] =
+{
+ {CAN1MBaud, {25 , CAN_RSAW_1TQ, CAN_BTS1_3TQ, CAN_BTS2_1TQ}},
+ //none
+ {CAN500kBaud, {25 , CAN_RSAW_2TQ, CAN_BTS1_7TQ, CAN_BTS2_2TQ}},
+ {CAN250kBaud, {25 , CAN_RSAW_3TQ, CAN_BTS1_16TQ, CAN_BTS2_3TQ}},
+ {CAN125kBaud, {50 , CAN_RSAW_2TQ, CAN_BTS1_16TQ, CAN_BTS2_3TQ}},
+ {CAN100kBaud, {125, CAN_RSAW_1TQ, CAN_BTS1_8TQ, CAN_BTS2_1TQ}},
+ {CAN50kBaud, {125, CAN_RSAW_2TQ, CAN_BTS1_16TQ, CAN_BTS2_3TQ}},
+ {CAN20kBaud, {625, CAN_RSAW_1TQ, CAN_BTS1_8TQ, CAN_BTS2_1TQ}},
+ {CAN10kBaud, {625, CAN_RSAW_2TQ, CAN_BTS1_16TQ, CAN_BTS2_3TQ}}
+};
+#endif
+
+#if defined (SOC_SERIES_AT32F415) || defined (SOC_SERIES_AT32F435) || \
+ defined (SOC_SERIES_AT32F437)
+#define CAN1_RX0_IRQ_NUM CAN1_RX0_IRQn
+#define CAN1_RX1_IRQ_NUM CAN1_RX1_IRQn
+#define CAN1_TX_IRQ_NUM CAN1_TX_IRQn
+#define CAN1_RX0_IRQ_HANDLER CAN1_RX0_IRQHandler
+#define CAN1_RX1_IRQ_HANDLER CAN1_RX1_IRQHandler
+#define CAN1_TX_IRQ_HANDLER CAN1_TX_IRQHandler
+#else
+#define CAN1_RX0_IRQ_NUM USBFS_L_CAN1_RX0_IRQn
+#define CAN1_RX1_IRQ_NUM CAN1_RX1_IRQn
+#define CAN1_TX_IRQ_NUM USBFS_H_CAN1_TX_IRQn
+#define CAN1_RX0_IRQ_HANDLER USBFS_L_CAN1_RX0_IRQHandler
+#define CAN1_RX1_IRQ_HANDLER CAN1_RX1_IRQHandler
+#define CAN1_TX_IRQ_HANDLER USBFS_H_CAN1_TX_IRQHandler
+#endif
#ifdef BSP_USING_CAN1
static struct at32_can can_instance1 =
@@ -157,16 +238,16 @@ static rt_err_t _can_control(struct rt_can_device *can, int cmd, void *arg)
{
if (CAN1 == can_instance->config.can_x)
{
- nvic_irq_disable(USBFS_L_CAN1_RX0_IRQn);
- nvic_irq_disable(CAN1_RX1_IRQn);
+ nvic_irq_disable(CAN1_RX0_IRQ_NUM);
+ nvic_irq_disable(CAN1_RX1_IRQ_NUM);
}
-
+#if defined (CAN2)
if (CAN2 == can_instance->config.can_x)
{
nvic_irq_disable(CAN2_RX0_IRQn);
nvic_irq_disable(CAN2_RX1_IRQn);
}
-
+#endif
/* disable interrupt */
can_interrupt_enable(can_instance->config.can_x, CAN_RF0MIEN_INT, FALSE);
can_interrupt_enable(can_instance->config.can_x, CAN_RF0FIEN_INT, FALSE);
@@ -179,14 +260,14 @@ static rt_err_t _can_control(struct rt_can_device *can, int cmd, void *arg)
{
if (CAN1 == can_instance->config.can_x)
{
- nvic_irq_disable(USBFS_H_CAN1_TX_IRQn);
+ nvic_irq_disable(CAN1_TX_IRQ_NUM);
}
-
+#if defined (CAN2)
if (CAN2 == can_instance->config.can_x)
{
nvic_irq_disable(CAN2_TX_IRQn);
}
-
+#endif
can_interrupt_enable(can_instance->config.can_x, CAN_TCIEN_INT, FALSE);
}
else if (argval == RT_DEVICE_CAN_INT_ERR)
@@ -195,12 +276,12 @@ static rt_err_t _can_control(struct rt_can_device *can, int cmd, void *arg)
{
nvic_irq_disable(CAN1_SE_IRQn);
}
-
+#if defined (CAN2)
if (CAN2 == can_instance->config.can_x)
{
nvic_irq_disable(CAN2_SE_IRQn);
}
-
+#endif
can_interrupt_enable(can_instance->config.can_x, CAN_EAIEN_INT, FALSE);
can_interrupt_enable(can_instance->config.can_x, CAN_EPIEN_INT, FALSE);
can_interrupt_enable(can_instance->config.can_x, CAN_BOIEN_INT, FALSE);
@@ -222,16 +303,16 @@ static rt_err_t _can_control(struct rt_can_device *can, int cmd, void *arg)
if (CAN1 == can_instance->config.can_x)
{
- nvic_irq_enable(USBFS_L_CAN1_RX0_IRQn, 1, 0);
- nvic_irq_enable(CAN1_RX1_IRQn, 1, 0);
+ nvic_irq_enable(CAN1_RX0_IRQ_NUM, 1, 0);
+ nvic_irq_enable(CAN1_RX1_IRQ_NUM, 1, 0);
}
-
+#if defined (CAN2)
if (CAN2 == can_instance->config.can_x)
{
nvic_irq_enable(CAN2_RX0_IRQn, 1, 0);
nvic_irq_enable(CAN2_RX1_IRQn, 1, 0);
}
-
+#endif
}
else if (argval == RT_DEVICE_FLAG_INT_TX)
{
@@ -239,13 +320,14 @@ static rt_err_t _can_control(struct rt_can_device *can, int cmd, void *arg)
if (CAN1 == can_instance->config.can_x)
{
- nvic_irq_enable(USBFS_H_CAN1_TX_IRQn, 1, 0);
+ nvic_irq_enable(CAN1_TX_IRQ_NUM, 1, 0);
}
-
+#if defined (CAN2)
if (CAN2 == can_instance->config.can_x)
{
nvic_irq_enable(CAN2_TX_IRQn, 1, 0);
}
+#endif
}
else if (argval == RT_DEVICE_CAN_INT_ERR)
{
@@ -259,11 +341,12 @@ static rt_err_t _can_control(struct rt_can_device *can, int cmd, void *arg)
{
nvic_irq_enable(CAN1_SE_IRQn, 1, 0);
}
-
+#if defined (CAN2)
if (CAN2 == can_instance->config.can_x)
{
nvic_irq_enable(CAN2_SE_IRQn, 1, 0);
}
+#endif
}
break;
case RT_CAN_CMD_SET_FILTER:
@@ -586,7 +669,7 @@ static void _can_rx_isr(struct rt_can_device *can, rt_uint32_t fifo)
/**
* @brief this function handles can1 tx interrupts. transmit fifo0/1/2 is empty can trigger this interrupt
*/
-void USBFS_H_CAN1_TX_IRQHandler(void)
+void CAN1_TX_IRQ_HANDLER(void)
{
rt_interrupt_enter();
struct can_config *hcan;
@@ -636,7 +719,7 @@ void USBFS_H_CAN1_TX_IRQHandler(void)
/**
* @brief this function handles can1 rx0 interrupts.
*/
-void USBFS_L_CAN1_RX0_IRQHandler(void)
+void CAN1_RX0_IRQ_HANDLER(void)
{
rt_interrupt_enter();
_can_rx_isr(&can_instance1.device, CAN_RX_FIFO0);
@@ -646,7 +729,7 @@ void USBFS_L_CAN1_RX0_IRQHandler(void)
/**
* @brief this function handles can1 rx1 interrupts.
*/
-void CAN1_RX1_IRQHandler(void)
+void CAN1_RX1_IRQ_HANDLER(void)
{
rt_interrupt_enter();
_can_rx_isr(&can_instance1.device, CAN_RX_FIFO1);
diff --git a/bsp/at32/libraries/f415/rt_drivers/drv_can.h b/bsp/at32/libraries/rt_drivers/drv_can.h
index cec0239989..ead87e0a01 100644
--- a/bsp/at32/libraries/f415/rt_drivers/drv_can.h
+++ b/bsp/at32/libraries/rt_drivers/drv_can.h
@@ -5,7 +5,7 @@
*
* Change Logs:
* Date Author Notes
- * 2022-03-11 shelton first version
+ * 2022-05-16 shelton first version
*/
#ifndef __DRV_CAN_H__
@@ -17,7 +17,7 @@ extern "C" {
#include <rtdevice.h>
#include <rtthread.h>
-#include "board.h"
+#include "drv_common.h"
struct at32_baud_rate
{
diff --git a/bsp/at32/libraries/f413/rt_drivers/drv_common.c b/bsp/at32/libraries/rt_drivers/drv_common.c
index 75404bb74a..25ec5900e3 100644
--- a/bsp/at32/libraries/f413/rt_drivers/drv_common.c
+++ b/bsp/at32/libraries/rt_drivers/drv_common.c
@@ -5,10 +5,9 @@
*
* Change Logs:
* Date Author Notes
- * 2022-03-08 shelton first version
+ * 2022-05-16 shelton first version
*/
-#include "board.h"
#include "drv_common.h"
#ifdef RT_USING_SERIAL
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_common.h b/bsp/at32/libraries/rt_drivers/drv_common.h
index aebafed066..4c390e8b22 100644
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_common.h
+++ b/bsp/at32/libraries/rt_drivers/drv_common.h
@@ -5,7 +5,7 @@
*
* Change Logs:
* Date Author Notes
- * 2022-03-08 shelton first version
+ * 2022-05-16 shelton first version
*/
#ifndef __DRV_COMMON_H__
@@ -16,6 +16,7 @@
#ifdef RT_USING_DEVICE
#include <rtdevice.h>
#endif
+#include "board.h"
#ifdef __cplusplus
extern "C" {
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_emac.c b/bsp/at32/libraries/rt_drivers/drv_emac.c
index aaed7daf7a..0f016b4ae9 100644
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_emac.c
+++ b/bsp/at32/libraries/rt_drivers/drv_emac.c
@@ -5,7 +5,7 @@
*
* Change Logs:
* Date Author Notes
- * 2022-03-28 shelton first version
+ * 2022-05-16 shelton first version
*/
#include "drv_emac.h"
@@ -85,6 +85,7 @@ static void phy_reset(void)
{
gpio_init_type gpio_init_struct;
+#if defined (SOC_SERIES_AT32F437)
crm_periph_clock_enable(CRM_GPIOE_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOG_PERIPH_CLOCK, TRUE);
@@ -103,9 +104,26 @@ static void phy_reset(void)
gpio_bits_reset(GPIOG, GPIO_PINS_15);
rt_thread_mdelay(2);
gpio_bits_set(GPIOE, GPIO_PINS_15);
+#endif
+#if defined (SOC_SERIES_AT32F407)
+ crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE);
+
+ gpio_default_para_init(&gpio_init_struct);
+ gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
+ gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
+ gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
+ gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
+ gpio_init_struct.gpio_pins = GPIO_PINS_8;
+ gpio_init(GPIOC, &gpio_init_struct);
+
+ gpio_bits_reset(GPIOC, GPIO_PINS_8);
+ rt_thread_mdelay(2);
+ gpio_bits_set(GPIOC, GPIO_PINS_8);
+#endif
rt_thread_mdelay(2000);
}
+
/**
* @brief phy clock config
*/
@@ -125,8 +143,19 @@ static void phy_clock_config(void)
gpio_init_struct.gpio_pins = GPIO_PINS_8;
gpio_init(GPIOA, &gpio_init_struct);
- /* 9162 clkout output pll / 10 == 25 mhz, so system clock must be 250 mhz */
- /* 83848 clkout output pll / 5 == 50 mhz, so system clock must be 250 mhz */
+
+ /* 9162 clkout output 25 mhz */
+ /* 83848 clkout output 50 mhz */
+#if defined (SOC_SERIES_AT32F407)
+ crm_clock_out_set(CRM_CLKOUT_SCLK);
+#if defined (PHY_USING_DM9162)
+ crm_clkout_div_set(CRM_CLKOUT_DIV_8);
+#elif defined (PHY_USING_DP83848)
+ crm_clkout_div_set(CRM_CLKOUT_DIV_4);
+#endif
+#endif
+
+#if defined (SOC_SERIES_AT32F437)
crm_clock_out1_set(CRM_CLKOUT1_PLL);
#if defined (PHY_USING_DM9162)
crm_clkout_div_set(CRM_CLKOUT_INDEX_1, CRM_CLKOUT_DIV1_5, CRM_CLKOUT_DIV2_2);
@@ -134,6 +163,7 @@ static void phy_clock_config(void)
crm_clkout_div_set(CRM_CLKOUT_INDEX_1, CRM_CLKOUT_DIV1_5, CRM_CLKOUT_DIV2_1);
#endif
#endif
+#endif
}
/**
@@ -330,7 +360,7 @@ static rt_err_t rt_at32_emac_init(rt_device_t dev)
if(emac_phy_init(&mac_control_para) == ERROR)
{
LOG_E("emac hardware init failed");
- return ERROR;
+ return -RT_ERROR;
}
else
{
@@ -784,7 +814,12 @@ static int rt_hw_at32_emac_init(void)
crm_periph_clock_enable(CRM_EMACRX_PERIPH_CLOCK, TRUE);
/* interface mode */
+#if defined (SOC_SERIES_AT32F407)
+ gpio_pin_remap_config(MII_RMII_SEL_GMUX, TRUE);
+#endif
+#if defined (SOC_SERIES_AT32F437)
scfg_emac_interface_set(SCFG_EMAC_SELECT_RMII);
+#endif
/* emac gpio init */
at32_msp_emac_init(NULL);
@@ -793,8 +828,8 @@ static int rt_hw_at32_emac_init(void)
at32_emac_device.emac_mode = EMAC_FULL_DUPLEX;
at32_emac_device.dev_addr[0] = 0x00;
- at32_emac_device.dev_addr[1] = 0x80;
- at32_emac_device.dev_addr[2] = 0xE1;
+ at32_emac_device.dev_addr[1] = 0x66;
+ at32_emac_device.dev_addr[2] = 0x88;
/* generate mac addr from unique id (only for test). */
at32_emac_device.dev_addr[3] = *(rt_uint8_t *)(0x1FFFF7E8 + 4);
at32_emac_device.dev_addr[4] = *(rt_uint8_t *)(0x1FFFF7E8 + 2);
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_emac.h b/bsp/at32/libraries/rt_drivers/drv_emac.h
index 64833938e4..71f57c3e0f 100644
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_emac.h
+++ b/bsp/at32/libraries/rt_drivers/drv_emac.h
@@ -5,16 +5,16 @@
*
* Change Logs:
* Date Author Notes
- * 2022-03-18 shelton first version
+ * 2022-05-16 shelton first version
*/
-#ifndef __DRV_ETH_H__
-#define __DRV_ETH_H__
+#ifndef __DRV_EMAC_H__
+#define __DRV_EMAC_H__
#include <rtthread.h>
#include <rthw.h>
#include <rtdevice.h>
-#include <board.h>
+#include "drv_common.h"
#define CRYSTAL_ON_PHY 0 /* phy does not with crystal */
@@ -86,4 +86,4 @@
#define PHY_INT_MASK (1<<5)
#endif
-#endif /* __DRV_ETH_H__ */
+#endif /* __DRV_EMAC_H__ */
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_flash.c b/bsp/at32/libraries/rt_drivers/drv_flash.c
index e763e817bc..220e0c1505 100644
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_flash.c
+++ b/bsp/at32/libraries/rt_drivers/drv_flash.c
@@ -5,11 +5,11 @@
*
* Change Logs:
* Date Author Notes
- * 2022-03-24 shelton first version
+ * 2022-05-16 shelton first version
*/
#include <rtthread.h>
-#include "board.h"
+#include "drv_common.h"
#ifdef BSP_USING_ON_CHIP_FLASH
#include "drv_flash.h"
diff --git a/bsp/at32/libraries/f403a_407/rt_drivers/drv_flash.h b/bsp/at32/libraries/rt_drivers/drv_flash.h
index 42ada3416a..42ada3416a 100644
--- a/bsp/at32/libraries/f403a_407/rt_drivers/drv_flash.h
+++ b/bsp/at32/libraries/rt_drivers/drv_flash.h
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_gpio.c b/bsp/at32/libraries/rt_drivers/drv_gpio.c
index e4b91c7b08..b4fa19408d 100644
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_gpio.c
+++ b/bsp/at32/libraries/rt_drivers/drv_gpio.c
@@ -5,10 +5,10 @@
*
* Change Logs:
* Date Author Notes
- * 2022-03-28 shelton first version
+ * 2022-05-16 shelton first version
*/
-#include "board.h"
+#include "drv_common.h"
#include "drv_gpio.h"
#ifdef RT_USING_PIN
@@ -17,8 +17,14 @@
#define PIN_PORT(pin) ((uint8_t)(((pin) >> 4) & 0xFu))
#define PIN_NO(pin) ((uint8_t)((pin) & 0xFu))
+#if defined (SOC_SERIES_AT32F435) || defined (SOC_SERIES_AT32F437)
#define PIN_ATPORTSOURCE(pin) (scfg_port_source_type)((uint8_t)(((pin) & 0xF0u) >> 4))
#define PIN_ATPINSOURCE(pin) (scfg_pins_source_type)((uint8_t)((pin) & 0xFu))
+#else
+#define PIN_ATPORTSOURCE(pin) (gpio_port_source_type)((uint8_t)(((pin) & 0xF0u) >> 4))
+#define PIN_ATPINSOURCE(pin) (gpio_pins_source_type)((uint8_t)((pin) & 0xFu))
+#endif
+
#define PIN_ATPORT(pin) ((gpio_type *)(GPIOA_BASE + (0x400u * PIN_PORT(pin))))
#define PIN_ATPIN(pin) ((uint16_t)(1u << PIN_NO(pin)))
@@ -355,8 +361,11 @@ static rt_err_t at32_pin_irq_enable(struct rt_device *device, rt_base_t pin,
}
gpio_init(gpio_port, &gpio_init_struct);
+#if defined (SOC_SERIES_AT32F435) || defined (SOC_SERIES_AT32F437)
scfg_exint_line_config(PIN_ATPORTSOURCE(pin), PIN_ATPINSOURCE(pin));
-
+#else
+ gpio_exint_line_config(PIN_ATPORTSOURCE(pin), PIN_ATPINSOURCE(pin));
+#endif
exint_init(&exint_init_struct);
nvic_irq_enable(irqmap->irqno, 5, 0);
@@ -550,7 +559,11 @@ int rt_hw_pin_init(void)
crm_periph_clock_enable(CRM_GPIOH_PERIPH_CLOCK, TRUE);
#endif
+#if defined (SOC_SERIES_AT32F435) || defined (SOC_SERIES_AT32F437)
crm_periph_clock_enable(CRM_SCFG_PERIPH_CLOCK, TRUE);
+#else
+ crm_periph_clock_enable(CRM_IOMUX_PERIPH_CLOCK, TRUE);
+#endif
return rt_device_pin_register("pin", &_at32_pin_ops, RT_NULL);
}
diff --git a/bsp/at32/libraries/f413/rt_drivers/drv_gpio.h b/bsp/at32/libraries/rt_drivers/drv_gpio.h
index 16abd818a1..15ca4dc272 100644
--- a/bsp/at32/libraries/f413/rt_drivers/drv_gpio.h
+++ b/bsp/at32/libraries/rt_drivers/drv_gpio.h
@@ -5,7 +5,7 @@
*
* Change Logs:
* Date Author Notes
- * 2020-01-07 shelton first version
+ * 2022-05-16 shelton first version
*/
#ifndef __DRV_GPIO_H__
@@ -13,7 +13,7 @@
#include <rthw.h>
#include <rtdevice.h>
-#include "board.h"
+#include "drv_common.h"
#define __AT32_PORT(port) GPIO##port##_BASE
diff --git a/bsp/at32/libraries/f403a_407/rt_drivers/drv_hwtimer.c b/bsp/at32/libraries/rt_drivers/drv_hwtimer.c
index 3621c9ab48..345638a322 100644
--- a/bsp/at32/libraries/f403a_407/rt_drivers/drv_hwtimer.c
+++ b/bsp/at32/libraries/rt_drivers/drv_hwtimer.c
@@ -5,7 +5,7 @@
*
* Change Logs:
* Date Author Notes
- * 2022-03-11 shelton first version
+ * 2022-05-16 shelton first version
*/
#include "board.h"
@@ -191,7 +191,24 @@ static void at32_timer_init(struct rt_hwtimer_device *timer, rt_uint32_t state)
/* get timer clock */
tmr_pclk_get(&pclk1_doubler, &pclk2_doubler);
crm_clocks_freq_get(&clocks_struct);
- if((tmr_x == TMR1) || (tmr_x == TMR8) || (tmr_x == TMR9) || (tmr_x == TMR10) || (tmr_x == TMR11))
+
+ if(
+#if defined (TMR1)
+ (tmr_x == TMR1)
+#endif
+#if defined (TMR8)
+ || (tmr_x == TMR8)
+#endif
+#if defined (TMR9)
+ || (tmr_x == TMR9)
+#endif
+#if defined (TMR10)
+ || (tmr_x == TMR10)
+#endif
+#if defined (TMR11)
+ || (tmr_x == TMR11)
+#endif
+ )
{
tmr_clock = clocks_struct.apb2_freq * pclk2_doubler;
}
@@ -304,7 +321,23 @@ static rt_err_t at32_timer_ctrl(rt_hwtimer_t *timer, rt_uint32_t cmd, void *arg)
/* get timer clock */
tmr_pclk_get(&pclk1_doubler, &pclk2_doubler);
crm_clocks_freq_get(&clocks_struct);
- if((tmr_x == TMR1) || (tmr_x == TMR8) || (tmr_x == TMR9) || (tmr_x == TMR10) || (tmr_x == TMR11))
+ if(
+#if defined (TMR1)
+ (tmr_x == TMR1)
+#endif
+#if defined (TMR8)
+ || (tmr_x == TMR8)
+#endif
+#if defined (TMR9)
+ || (tmr_x == TMR9)
+#endif
+#if defined (TMR10)
+ || (tmr_x == TMR10)
+#endif
+#if defined (TMR11)
+ || (tmr_x == TMR11)
+#endif
+ )
{
tmr_clock = clocks_struct.apb2_freq * pclk2_doubler;
}
diff --git a/bsp/at32/libraries/f403a_407/rt_drivers/drv_hwtimer.h b/bsp/at32/libraries/rt_drivers/drv_hwtimer.h
index 624437f559..624437f559 100644
--- a/bsp/at32/libraries/f403a_407/rt_drivers/drv_hwtimer.h
+++ b/bsp/at32/libraries/rt_drivers/drv_hwtimer.h
diff --git a/bsp/at32/libraries/f403a_407/rt_drivers/drv_log.h b/bsp/at32/libraries/rt_drivers/drv_log.h
index 45345aa150..45345aa150 100644
--- a/bsp/at32/libraries/f403a_407/rt_drivers/drv_log.h
+++ b/bsp/at32/libraries/rt_drivers/drv_log.h
diff --git a/bsp/at32/libraries/f403a_407/rt_drivers/drv_pwm.c b/bsp/at32/libraries/rt_drivers/drv_pwm.c
index 99954d4710..339aeb1620 100644
--- a/bsp/at32/libraries/f403a_407/rt_drivers/drv_pwm.c
+++ b/bsp/at32/libraries/rt_drivers/drv_pwm.c
@@ -5,10 +5,10 @@
*
* Change Logs:
* Date Author Notes
- * 2022-03-10 shelton first version
+ * 2022-05-16 shelton first version
*/
-#include "board.h"
+#include "drv_common.h"
#ifdef RT_USING_PWM
#include "drv_pwm.h"
@@ -259,7 +259,23 @@ static rt_err_t drv_pwm_get(tmr_type* tmr_x, struct rt_pwm_configuration *config
crm_clocks_freq_get(&clocks_struct);
- if((tmr_x == TMR1) || (tmr_x == TMR8) || (tmr_x == TMR9) || (tmr_x == TMR10) || (tmr_x == TMR11))
+ if(
+#if defined (TMR1)
+ (tmr_x == TMR1)
+#endif
+#if defined (TMR8)
+ || (tmr_x == TMR8)
+#endif
+#if defined (TMR9)
+ || (tmr_x == TMR9)
+#endif
+#if defined (TMR10)
+ || (tmr_x == TMR10)
+#endif
+#if defined (TMR11)
+ || (tmr_x == TMR11)
+#endif
+ )
{
tmr_clock = clocks_struct.apb2_freq * pclk2_doubler;
}
@@ -300,7 +316,23 @@ static rt_err_t drv_pwm_set(tmr_type* tmr_x, struct rt_pwm_configuration *config
crm_clocks_freq_get(&clocks_struct);
- if((tmr_x == TMR1) || (tmr_x == TMR8) || (tmr_x == TMR9) || (tmr_x == TMR10) || (tmr_x == TMR11))
+ if(
+#if defined (TMR1)
+ (tmr_x == TMR1)
+#endif
+#if defined (TMR8)
+ || (tmr_x == TMR8)
+#endif
+#if defined (TMR9)
+ || (tmr_x == TMR9)
+#endif
+#if defined (TMR10)
+ || (tmr_x == TMR10)
+#endif
+#if defined (TMR11)
+ || (tmr_x == TMR11)
+#endif
+ )
{
tmr_clock = clocks_struct.apb2_freq * pclk2_doubler;
}
diff --git a/bsp/at32/libraries/f403a_407/rt_drivers/drv_pwm.h b/bsp/at32/libraries/rt_drivers/drv_pwm.h
index d303401abb..d303401abb 100644
--- a/bsp/at32/libraries/f403a_407/rt_drivers/drv_pwm.h
+++ b/bsp/at32/libraries/rt_drivers/drv_pwm.h
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_qspi.c b/bsp/at32/libraries/rt_drivers/drv_qspi.c
index 6b8c7bf2d0..c7b59bef1c 100644
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_qspi.c
+++ b/bsp/at32/libraries/rt_drivers/drv_qspi.c
@@ -5,10 +5,10 @@
*
* Change Logs:
* Date Author Notes
- * 2022-03-29 shelton first version
+ * 2022-05-16 shelton first version
*/
-#include "board.h"
+#include "drv_common.h"
#include "drv_qspi.h"
#ifdef BSP_USING_QSPI
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_qspi.h b/bsp/at32/libraries/rt_drivers/drv_qspi.h
index 6742bff7f8..6742bff7f8 100644
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_qspi.h
+++ b/bsp/at32/libraries/rt_drivers/drv_qspi.h
diff --git a/bsp/at32/libraries/f415/rt_drivers/drv_rtc.c b/bsp/at32/libraries/rt_drivers/drv_rtc.c
index 10c57e5f2c..8402e4a0b8 100644
--- a/bsp/at32/libraries/f415/rt_drivers/drv_rtc.c
+++ b/bsp/at32/libraries/rt_drivers/drv_rtc.c
@@ -5,13 +5,13 @@
*
* Change Logs:
* Date Author Notes
- * 2022-03-28 shelton first version
+ * 2022-05-16 shelton first version
*/
#include <rtthread.h>
#include <rtdevice.h>
#include <sys/time.h>
-#include "board.h"
+#include "drv_common.h"
#ifdef BSP_USING_RTC
@@ -23,6 +23,8 @@
static time_t get_rtc_timestamp(void)
{
+#if defined (SOC_SERIES_AT32F435) || defined (SOC_SERIES_AT32F437) || \
+ defined (SOC_SERIES_AT32F415)
struct tm tm_new;
ertc_time_type ertc_time_struct;
@@ -38,10 +40,15 @@ static time_t get_rtc_timestamp(void)
LOG_D("get rtc time.");
return timegm(&tm_new);
+#else
+ return rtc_counter_get();
+#endif
}
static rt_err_t set_rtc_time_stamp(time_t time_stamp)
{
+#if defined (SOC_SERIES_AT32F435) || defined (SOC_SERIES_AT32F437) || \
+ defined (SOC_SERIES_AT32F415)
struct tm *p_tm;
p_tm = gmtime(&time_stamp);
@@ -66,15 +73,27 @@ static rt_err_t set_rtc_time_stamp(time_t time_stamp)
/* indicator for the ertc configuration */
ertc_bpr_data_write(ERTC_DT1, BKUP_REG_DATA);
+#else
+ /* set the rtc counter value */
+ rtc_counter_set(time_stamp);
+ /* wait until last write operation on rtc registers has finished */
+ rtc_wait_config_finish();
+ LOG_D("set rtc time.");
+
+ bpr_data_write(BPR_DATA1, BKUP_REG_DATA);
+#endif
return RT_EOK;
}
static rt_err_t rt_rtc_config(void)
{
- /* allow access to battery powered domain */
+ /* allow access to pattery powered domain */
pwc_battery_powered_domain_access(TRUE);
+#if defined (SOC_SERIES_AT32F435) || defined (SOC_SERIES_AT32F437) || \
+ defined (SOC_SERIES_AT32F415)
+
/* select rtc clock source */
#ifdef BSP_RTC_USING_LICK
crm_ertc_clock_select(CRM_ERTC_CLOCK_LICK);
@@ -97,6 +116,31 @@ static rt_err_t rt_rtc_config(void)
/* configure the ertc hour mode */
ertc_hour_mode_set(ERTC_HOUR_MODE_24);
}
+#else
+
+#ifdef BSP_RTC_USING_LICK
+ crm_rtc_clock_select(CRM_RTC_CLOCK_LICK);
+#else
+ crm_rtc_clock_select(CRM_RTC_CLOCK_LEXT);
+#endif /* BSP_RTC_USING_LICK */
+ /* enable rtc */
+ crm_rtc_clock_enable(TRUE);
+
+ /* wait for rtc registers update finish */
+ rtc_wait_update_finish();
+ /* wait until last write operation on rtc registers has finished */
+ rtc_wait_config_finish();
+
+ if (bpr_data_read(BPR_DATA1) != BKUP_REG_DATA)
+ {
+ LOG_I("RTC hasn't been configured, please use <date> command to config.");
+ /* set rtc divider: set rtc period to 1sec */
+ rtc_divider_set(32767);
+ /* wait until last write operation on rtc registers has finished */
+ rtc_wait_config_finish();
+ }
+#endif
+
return RT_EOK;
}
@@ -104,6 +148,11 @@ static rt_err_t _rtc_init(void)
{
crm_periph_clock_enable(CRM_PWC_PERIPH_CLOCK, TRUE);
+#if defined (SOC_SERIES_AT32F403A) || defined (SOC_SERIES_AT32F407) || \
+ defined (SOC_SERIES_AT32F413)
+ crm_periph_clock_enable(CRM_BPR_PERIPH_CLOCK, TRUE);
+#endif
+
#ifdef BSP_RTC_USING_LICK
crm_clock_source_enable(CRM_CLOCK_SOURCE_LICK, TRUE);
while(crm_flag_get(CRM_LICK_STABLE_FLAG) == RESET);
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_sdio.c b/bsp/at32/libraries/rt_drivers/drv_sdio.c
index 25a12c8bd5..c10cde04ce 100644
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_sdio.c
+++ b/bsp/at32/libraries/rt_drivers/drv_sdio.c
@@ -5,10 +5,10 @@
*
* Change Logs:
* Date Author Notes
- * 2022-03-08 shelton first version
+ * 2022-05-16 shelton first version
*/
-#include "board.h"
+#include "drv_common.h"
#include "drv_sdio.h"
#ifdef BSP_USING_SDIO
@@ -710,8 +710,10 @@ void sd_lowlevel_dmatx_config(uint32_t *src, uint32_t *dst, uint32_t buffer_size
dma_init(sdio_obj.dma.handle_tx, &dma_init_struct);
dma_interrupt_enable(sdio_obj.dma.handle_tx, DMA_FDT_INT, TRUE);
+#if defined (SOC_SERIES_AT32F435) || defined (SOC_SERIES_AT32F437)
dmamux_init(sdio_config.dma_tx.dmamux_channel, sdio_config.dma_tx.dmamux_id);
dmamux_enable(sdio_config.dma_tx.dma_x, TRUE);
+#endif
dma_channel_enable(sdio_obj.dma.handle_tx, TRUE);
}
@@ -745,13 +747,19 @@ void sd_lowlevel_dmarx_config(uint32_t *src, uint32_t *dst, uint32_t buffer_size
dma_init(sdio_obj.dma.handle_rx, &dma_init_struct);
dma_interrupt_enable(sdio_obj.dma.handle_rx, DMA_FDT_INT, TRUE);
+#if defined (SOC_SERIES_AT32F435) || defined (SOC_SERIES_AT32F437)
dmamux_init(sdio_config.dma_rx.dmamux_channel, sdio_config.dma_rx.dmamux_id);
dmamux_enable(sdio_config.dma_rx.dma_x, TRUE);
+#endif
dma_channel_enable(sdio_obj.dma.handle_rx, TRUE);
}
+#if defined (SOC_SERIES_AT32F435) || defined (SOC_SERIES_AT32F437)
void DMA2_Channel4_IRQHandler(void)
+#else
+void DMA2_Channel4_5_IRQHandler(void)
+#endif
{
if(dma_flag_get(DMA2_FDT4_FLAG))
{
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_sdio.h b/bsp/at32/libraries/rt_drivers/drv_sdio.h
index 18248ade92..fcbfd7381a 100644
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_sdio.h
+++ b/bsp/at32/libraries/rt_drivers/drv_sdio.h
@@ -5,7 +5,7 @@
*
* Change Logs:
* Date Author Notes
- * 2022-03-08 shelton first version
+ * 2022-05-16 shelton first version
*/
#ifndef _DRV_SDIO_H
@@ -16,7 +16,7 @@
#include <string.h>
#include <drivers/mmcsd_core.h>
#include <drivers/sdio.h>
-#include "at32f435_437.h"
+#include "drv_common.h"
#define SDCARD_INSTANCE_TYPE sdio_type
@@ -154,6 +154,7 @@ typedef rt_err_t (*dma_txconfig)(rt_uint32_t *src, rt_uint32_t *dst, int size);
typedef rt_err_t (*dma_rxconfig)(rt_uint32_t *src, rt_uint32_t *dst, int size);
typedef rt_uint32_t (*sdio_clk_get)(struct at32_sdio *hw_sdio);
+#if defined (SOC_SERIES_AT32F435) || defined (SOC_SERIES_AT32F437)
#define SDIO_BUS_CONFIG \
{ \
.sdio_x = SDIO1, \
@@ -170,12 +171,26 @@ typedef rt_uint32_t (*sdio_clk_get)(struct at32_sdio *hw_sdio);
.dma_rx.dmamux_id = DMAMUX_DMAREQ_ID_SDIO1, \
.dma_tx.dmamux_id = DMAMUX_DMAREQ_ID_SDIO1, \
}
+#else
+#define SDIO_BUS_CONFIG \
+ { \
+ .sdio_x = SDIO1, \
+ .dma_rx.dma_crm = CRM_DMA2_PERIPH_CLOCK, \
+ .dma_tx.dma_crm = CRM_DMA2_PERIPH_CLOCK, \
+ .dma_rx.dma_channel = DMA2_CHANNEL4, \
+ .dma_rx.dma_irq = DMA2_Channel4_5_IRQn, \
+ .dma_tx.dma_channel = DMA2_CHANNEL4, \
+ .dma_tx.dma_irq = DMA2_Channel4_5_IRQn, \
+ }
+#endif
struct dma_config {
dma_type *dma_x;
dma_channel_type *dma_channel;
+#if defined (SOC_SERIES_AT32F435) || defined (SOC_SERIES_AT32F437)
dmamux_channel_type *dmamux_channel;
dmamux_requst_id_sel_type dmamux_id;
+#endif
crm_periph_clock_type dma_crm;
IRQn_Type dma_irq;
};
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_sdram.c b/bsp/at32/libraries/rt_drivers/drv_sdram.c
index bf6af9847b..b3d73f0af1 100644
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_sdram.c
+++ b/bsp/at32/libraries/rt_drivers/drv_sdram.c
@@ -5,10 +5,10 @@
*
* Change Logs:
* Date Author Notes
- * 2022-04-08 shelton first version
+ * 2022-05-16 shelton first version
*/
-#include "board.h"
+#include "drv_common.h"
#ifdef BSP_USING_SDRAM
#include "drv_sdram.h"
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_sdram.h b/bsp/at32/libraries/rt_drivers/drv_sdram.h
index b152f29f32..b152f29f32 100644
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_sdram.h
+++ b/bsp/at32/libraries/rt_drivers/drv_sdram.h
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_soft_i2c.c b/bsp/at32/libraries/rt_drivers/drv_soft_i2c.c
index b08adcd56a..4938d1c18a 100644
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_soft_i2c.c
+++ b/bsp/at32/libraries/rt_drivers/drv_soft_i2c.c
@@ -5,10 +5,10 @@
*
* Change Logs:
* Date Author Notes
- * 2022-03-09 shelton first version
+ * 2022-05-16 shelton first version
*/
-#include "board.h"
+#include "drv_common.h"
#include "drv_soft_i2c.h"
#ifdef RT_USING_I2C
diff --git a/bsp/at32/libraries/f403a_407/rt_drivers/drv_soft_i2c.h b/bsp/at32/libraries/rt_drivers/drv_soft_i2c.h
index fecab31b4d..fecab31b4d 100644
--- a/bsp/at32/libraries/f403a_407/rt_drivers/drv_soft_i2c.h
+++ b/bsp/at32/libraries/rt_drivers/drv_soft_i2c.h
diff --git a/bsp/at32/libraries/f415/rt_drivers/drv_spi.c b/bsp/at32/libraries/rt_drivers/drv_spi.c
index 6acfcc5fb7..2465d21249 100644
--- a/bsp/at32/libraries/f415/rt_drivers/drv_spi.c
+++ b/bsp/at32/libraries/rt_drivers/drv_spi.c
@@ -5,10 +5,10 @@
*
* Change Logs:
* Date Author Notes
- * 2022-03-11 shelton first version
+ * 2022-05-16 shelton first version
*/
-#include "board.h"
+#include "drv_common.h"
#include "drv_spi.h"
#ifdef RT_USING_SPI
diff --git a/bsp/at32/libraries/f415/rt_drivers/drv_spi.h b/bsp/at32/libraries/rt_drivers/drv_spi.h
index 3d6c307501..74cc6c4e73 100644
--- a/bsp/at32/libraries/f415/rt_drivers/drv_spi.h
+++ b/bsp/at32/libraries/rt_drivers/drv_spi.h
@@ -5,7 +5,7 @@
*
* Change Logs:
* Date Author Notes
- * 2020-01-09 shelton first version
+ * 2022-05-16 shelton first version
*/
#ifndef __DRV_SPI__
@@ -13,7 +13,7 @@
#include <rtthread.h>
#include <drivers/spi.h>
-#include "at32f415.h"
+#include "drv_common.h"
struct at32_spi_config
{
diff --git a/bsp/at32/libraries/f403a_407/rt_drivers/drv_usart.c b/bsp/at32/libraries/rt_drivers/drv_usart.c
index 57d6abba21..8e400bae58 100644
--- a/bsp/at32/libraries/f403a_407/rt_drivers/drv_usart.c
+++ b/bsp/at32/libraries/rt_drivers/drv_usart.c
@@ -5,10 +5,10 @@
*
* Change Logs:
* Date Author Notes
- * 2022-03-08 shelton first version
+ * 2022-05-16 shelton first version
*/
-#include "board.h"
+#include "drv_common.h"
#include "drv_usart.h"
#ifdef RT_USING_SERIAL
diff --git a/bsp/at32/libraries/f403a_407/rt_drivers/drv_usart.h b/bsp/at32/libraries/rt_drivers/drv_usart.h
index fc493d42da..fc493d42da 100644
--- a/bsp/at32/libraries/f403a_407/rt_drivers/drv_usart.h
+++ b/bsp/at32/libraries/rt_drivers/drv_usart.h
diff --git a/bsp/at32/libraries/f435_437/rt_drivers/drv_wdt.c b/bsp/at32/libraries/rt_drivers/drv_wdt.c
index 1f6f84608e..920be13633 100644
--- a/bsp/at32/libraries/f435_437/rt_drivers/drv_wdt.c
+++ b/bsp/at32/libraries/rt_drivers/drv_wdt.c
@@ -5,11 +5,11 @@
*
* Change Logs:
* Date Author Notes
- * 2022-03-15 shelton first version
+ * 2022-05-16 shelton first version
*/
#include <drivers/watchdog.h>
-#include "board.h"
+#include "drv_common.h"
#ifdef RT_USING_WDT