From 8a58a279394c37d91b05229beddade7232a88069 Mon Sep 17 00:00:00 2001 From: liudagui Date: Mon, 2 Dec 2024 16:41:04 +0800 Subject: [PATCH] =?UTF-8?q?boot=20=E6=B7=BB=E5=8A=A0GD32F105RC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hongri_boot_STM32_STM32F105RC.dbgconf | 97 + .../hongri_boot_STM_STM32F105RC.dbgconf | 97 + boot_project/LED.map | Bin 0 -> 45056 bytes boot_project/Listings/boot.map | Bin 184320 -> 249856 bytes boot_project/Listings/boot_GD32F105RC.map | Bin 0 -> 249856 bytes boot_project/Listings/boot_STM32F105.map | Bin 0 -> 200704 bytes boot_project/Listings/boot_STM32F105RC.map | Bin 0 -> 200704 bytes boot_project/Listings/boot_gd32F105.map | Bin 0 -> 249856 bytes boot_project/Listings/startup_gd32f10x_cl.lst | Bin 0 -> 73728 bytes .../Listings/startup_stm32f10x_cl.lst | Bin 69632 -> 69632 bytes boot_project/Objects/ExtDll.iex | 2 - boot_project/Objects/boot.axf | Bin 571364 -> 0 bytes boot_project/Objects/boot.build_log.htm | 116 - boot_project/Objects/boot.hex | 1463 -------- boot_project/Objects/boot.htm | 1916 ---------- boot_project/Objects/boot.lnp | 36 - boot_project/Objects/diag_appl_hr.__i | 6 - boot_project/Objects/hongri_boot.axf | Bin 572108 -> 0 bytes .../Objects/hongri_boot.build_log.htm | 116 - boot_project/Objects/hongri_boot.hex | 1463 -------- boot_project/Objects/hongri_boot.htm | 1916 ---------- boot_project/Objects/hongri_boot.lnp | 36 - boot_project/Objects/hongri_boot.sct | Bin 8192 -> 0 bytes .../Objects/hongri_boot_hongri_boot.dep | 482 --- boot_project/Objects/if_can.__i | 6 - boot_project/Objects/if_gpio.__i | 6 - .../hongri_boot-GD32F105.uvguix.Administrator | Bin 0 -> 184320 bytes boot_project/hongri_boot-GD32F105.uvprojx | Bin 0 -> 32768 bytes ...hongri_boot-STM32F105.uvguix.Administrator | Bin 0 -> 184320 bytes boot_project/hongri_boot-STM32F105.uvprojx | Bin 0 -> 32768 bytes boot_project/hongri_boot.uvguix.Administrator | Bin 204800 -> 0 bytes boot_project/hongri_boot.uvmpw | Bin 0 -> 8192 bytes .../hongri_boot.uvmpw.uvgui.Administrator | Bin 0 -> 94208 bytes boot_project/hongri_boot.uvprojx | Bin 32768 -> 0 bytes boot_project/link_sct/GD32F105Flashdriver.sct | Bin 0 -> 8192 bytes boot_source/code_app/app_boot/inc/app_can.h | Bin 12288 -> 12288 bytes boot_source/code_app/app_boot/src/app_can.c | Bin 28672 -> 28672 bytes .../code_app/driver/inc/dev_log_usart.h | Bin 8192 -> 8192 bytes boot_source/code_app/driver/inc/dev_sys.h | Bin 16384 -> 16384 bytes boot_source/code_app/driver/src/dev_sys.c | Bin 16384 -> 16384 bytes boot_source/code_app/main/inc/main.h | Bin 8192 -> 8192 bytes boot_source/code_app/main/src/main.c | Bin 12288 -> 12288 bytes .../CanStack/canBus_Com/Can_Transceiver.c | Bin 16384 -> 16384 bytes .../service/CanStack/canBus_Com/iso15765-2.c | Bin 90112 -> 90112 bytes .../CanStack/canBus_hongri/Diag_Eeprom_C301.c | Bin 12288 -> 12288 bytes .../code_app/startup/GD32F105/inc/gd32f10x.h | Bin 0 -> 36864 bytes .../startup/GD32F105/inc/gd32f10x_it.h | 60 + .../startup/GD32F105/inc/gd32f10x_libopt.h | Bin 0 -> 8192 bytes .../startup/GD32F105/inc/system_gd32f10x.h | Bin 0 -> 8192 bytes .../startup/GD32F105/src/gd32f10x_it.c | Bin 0 -> 12288 bytes .../startup/GD32F105/src/system_gd32f10x.c | Bin 0 -> 40960 bytes .../startup/{ => STM32F105}/inc/stm32f10x.h | Bin .../{ => STM32F105}/inc/stm32f10x_it.h | 0 .../{ => STM32F105}/inc/stm32f10x_libopt.h | Bin .../{ => STM32F105}/inc/system_stm32f10x.h | 0 .../{ => STM32F105}/src/stm32f10x_it.c | Bin .../{ => STM32F105}/src/system_stm32f10x.c | Bin .../CMSIS/GD/GD32F10x/CoreSupport/core_cm3.h | 1638 +++++++++ .../GD/GD32F10x/CoreSupport/core_cmFunc.h | 637 ++++ .../GD/GD32F10x/CoreSupport/core_cmInstr.h | 687 ++++ .../CMSIS/GD/GD32F10x/Include/gd32f10x.h | Bin 0 -> 36864 bytes .../CMSIS/GD/GD32F10x/Include/gd32f10x_it.h | 60 + .../GD/GD32F10x/Include/gd32f10x_libopt.h | Bin 0 -> 8192 bytes .../GD/GD32F10x/Include/system_gd32f10x.h | Bin 0 -> 8192 bytes .../GD32F10x/Source/ARM/startup_gd32f10x_cl.s | Bin 0 -> 24576 bytes .../GD32F10x/Source/ARM/startup_gd32f10x_hd.s | 369 ++ .../GD32F10x/Source/ARM/startup_gd32f10x_md.s | 326 ++ .../GD32F10x/Source/ARM/startup_gd32f10x_xd.s | 369 ++ .../Source/ARM/startup_stm32f10x_cl.s | Bin 0 -> 20480 bytes .../GD32F10x/Source/IAR/startup_gd32f10x_cl.s | 527 +++ .../GD32F10x/Source/IAR/startup_gd32f10x_hd.s | 489 +++ .../GD32F10x/Source/IAR/startup_gd32f10x_md.s | 398 +++ .../GD32F10x/Source/IAR/startup_gd32f10x_xd.s | 489 +++ .../CMSIS/GD/GD32F10x/Source/gd32f10x_it.c | Bin 0 -> 12288 bytes .../GD/GD32F10x/Source/system_gd32f10x.c | Bin 0 -> 40960 bytes .../Source/arm/startup_stm32f10x_cl.s | Bin 20480 -> 20480 bytes .../Include/gd32f10x_adc.h | 364 ++ .../Include/gd32f10x_bkp.h | Bin 0 -> 20480 bytes .../Include/gd32f10x_can.h | Bin 0 -> 61440 bytes .../Include/gd32f10x_crc.h | 77 + .../Include/gd32f10x_dac.h | 249 ++ .../Include/gd32f10x_dbg.h | 148 + .../Include/gd32f10x_dma.h | 285 ++ .../Include/gd32f10x_enet.h | 1494 ++++++++ .../Include/gd32f10x_exmc.h | 428 +++ .../Include/gd32f10x_exti.h | 252 ++ .../Include/gd32f10x_fmc.h | 366 ++ .../Include/gd32f10x_fwdgt.h | 111 + .../Include/gd32f10x_gpio.h | Bin 0 -> 40960 bytes .../Include/gd32f10x_i2c.h | 345 ++ .../Include/gd32f10x_misc.h | 91 + .../Include/gd32f10x_pmu.h | 126 + .../Include/gd32f10x_rcu.h | 919 +++++ .../Include/gd32f10x_rtc.h | 148 + .../Include/gd32f10x_sdio.h | 430 +++ .../Include/gd32f10x_spi.h | 324 ++ .../Include/gd32f10x_timer.h | 725 ++++ .../Include/gd32f10x_usart.h | 373 ++ .../Include/gd32f10x_wwdgt.h | 91 + .../Source/gd32f10x_adc.c | 929 +++++ .../Source/gd32f10x_bkp.c | 292 ++ .../Source/gd32f10x_can.c | 1048 ++++++ .../Source/gd32f10x_crc.c | 127 + .../Source/gd32f10x_dac.c | 540 +++ .../Source/gd32f10x_dbg.c | 149 + .../Source/gd32f10x_dma.c | 733 ++++ .../Source/gd32f10x_enet.c | 3081 +++++++++++++++++ .../Source/gd32f10x_exmc.c | 642 ++++ .../Source/gd32f10x_exti.c | 249 ++ .../Source/gd32f10x_fmc.c | 967 ++++++ .../Source/gd32f10x_fwdgt.c | 211 ++ .../Source/gd32f10x_gpio.c | 533 +++ .../Source/gd32f10x_i2c.c | 711 ++++ .../Source/gd32f10x_misc.c | 184 + .../Source/gd32f10x_pmu.c | 276 ++ .../Source/gd32f10x_rcu.c | 1192 +++++++ .../Source/gd32f10x_rtc.c | 273 ++ .../Source/gd32f10x_sdio.c | 804 +++++ .../Source/gd32f10x_spi.c | 687 ++++ .../Source/gd32f10x_timer.c | 1999 +++++++++++ .../Source/gd32f10x_usart.c | 739 ++++ .../Source/gd32f10x_wwdgt.c | 125 + boot_source/platform/drivers/inc/24cxx.h | Bin 8192 -> 8192 bytes .../platform/drivers/inc/bsp_i2c_gpio.h | Bin 769 -> 8192 bytes boot_source/platform/drivers/inc/can.h | Bin 16384 -> 16384 bytes boot_source/platform/drivers/inc/can2.h | Bin 8192 -> 8192 bytes .../platform/drivers/inc/ecual_flash.h | Bin 12288 -> 12288 bytes boot_source/platform/drivers/inc/led.h | Bin 8192 -> 8192 bytes boot_source/platform/drivers/src/CAN2/can2.c | Bin 28672 -> 28672 bytes .../platform/drivers/src/EEROM/bsp_i2c_gpio.c | Bin 16384 -> 16384 bytes boot_source/platform/drivers/src/LED/led.c | Bin 12288 -> 16384 bytes .../platform/drivers/src/flash/ecual_flash.c | Bin 16384 -> 0 bytes 132 files changed, 30080 insertions(+), 7564 deletions(-) create mode 100644 boot_project/DebugConfig/hongri_boot_STM32_STM32F105RC.dbgconf create mode 100644 boot_project/DebugConfig/hongri_boot_STM_STM32F105RC.dbgconf create mode 100644 boot_project/LED.map create mode 100644 boot_project/Listings/boot_GD32F105RC.map create mode 100644 boot_project/Listings/boot_STM32F105.map create mode 100644 boot_project/Listings/boot_STM32F105RC.map create mode 100644 boot_project/Listings/boot_gd32F105.map create mode 100644 boot_project/Listings/startup_gd32f10x_cl.lst delete mode 100644 boot_project/Objects/ExtDll.iex delete mode 100644 boot_project/Objects/boot.axf delete mode 100644 boot_project/Objects/boot.build_log.htm delete mode 100644 boot_project/Objects/boot.hex delete mode 100644 boot_project/Objects/boot.htm delete mode 100644 boot_project/Objects/boot.lnp delete mode 100644 boot_project/Objects/diag_appl_hr.__i delete mode 100644 boot_project/Objects/hongri_boot.axf delete mode 100644 boot_project/Objects/hongri_boot.build_log.htm delete mode 100644 boot_project/Objects/hongri_boot.hex delete mode 100644 boot_project/Objects/hongri_boot.htm delete mode 100644 boot_project/Objects/hongri_boot.lnp delete mode 100644 boot_project/Objects/hongri_boot.sct delete mode 100644 boot_project/Objects/hongri_boot_hongri_boot.dep delete mode 100644 boot_project/Objects/if_can.__i delete mode 100644 boot_project/Objects/if_gpio.__i create mode 100644 boot_project/hongri_boot-GD32F105.uvguix.Administrator create mode 100644 boot_project/hongri_boot-GD32F105.uvprojx create mode 100644 boot_project/hongri_boot-STM32F105.uvguix.Administrator create mode 100644 boot_project/hongri_boot-STM32F105.uvprojx delete mode 100644 boot_project/hongri_boot.uvguix.Administrator create mode 100644 boot_project/hongri_boot.uvmpw create mode 100644 boot_project/hongri_boot.uvmpw.uvgui.Administrator delete mode 100644 boot_project/hongri_boot.uvprojx create mode 100644 boot_project/link_sct/GD32F105Flashdriver.sct create mode 100644 boot_source/code_app/startup/GD32F105/inc/gd32f10x.h create mode 100644 boot_source/code_app/startup/GD32F105/inc/gd32f10x_it.h create mode 100644 boot_source/code_app/startup/GD32F105/inc/gd32f10x_libopt.h create mode 100644 boot_source/code_app/startup/GD32F105/inc/system_gd32f10x.h create mode 100644 boot_source/code_app/startup/GD32F105/src/gd32f10x_it.c create mode 100644 boot_source/code_app/startup/GD32F105/src/system_gd32f10x.c rename boot_source/code_app/startup/{ => STM32F105}/inc/stm32f10x.h (100%) rename boot_source/code_app/startup/{ => STM32F105}/inc/stm32f10x_it.h (100%) rename boot_source/code_app/startup/{ => STM32F105}/inc/stm32f10x_libopt.h (100%) rename boot_source/code_app/startup/{ => STM32F105}/inc/system_stm32f10x.h (100%) rename boot_source/code_app/startup/{ => STM32F105}/src/stm32f10x_it.c (100%) rename boot_source/code_app/startup/{ => STM32F105}/src/system_stm32f10x.c (100%) create mode 100644 boot_source/platform/CMSIS/GD/GD32F10x/CoreSupport/core_cm3.h create mode 100644 boot_source/platform/CMSIS/GD/GD32F10x/CoreSupport/core_cmFunc.h create mode 100644 boot_source/platform/CMSIS/GD/GD32F10x/CoreSupport/core_cmInstr.h create mode 100644 boot_source/platform/CMSIS/GD/GD32F10x/Include/gd32f10x.h create mode 100644 boot_source/platform/CMSIS/GD/GD32F10x/Include/gd32f10x_it.h create mode 100644 boot_source/platform/CMSIS/GD/GD32F10x/Include/gd32f10x_libopt.h create mode 100644 boot_source/platform/CMSIS/GD/GD32F10x/Include/system_gd32f10x.h create mode 100644 boot_source/platform/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_cl.s create mode 100644 boot_source/platform/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_hd.s create mode 100644 boot_source/platform/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_md.s create mode 100644 boot_source/platform/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_xd.s create mode 100644 boot_source/platform/CMSIS/GD/GD32F10x/Source/ARM/startup_stm32f10x_cl.s create mode 100644 boot_source/platform/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_cl.s create mode 100644 boot_source/platform/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_hd.s create mode 100644 boot_source/platform/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_md.s create mode 100644 boot_source/platform/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_xd.s create mode 100644 boot_source/platform/CMSIS/GD/GD32F10x/Source/gd32f10x_it.c create mode 100644 boot_source/platform/CMSIS/GD/GD32F10x/Source/system_gd32f10x.c create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_adc.h create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_bkp.h create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_can.h create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_crc.h create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_dac.h create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_dbg.h create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_dma.h create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_enet.h create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_exmc.h create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_exti.h create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_fmc.h create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_fwdgt.h create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_gpio.h create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_i2c.h create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_misc.h create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_pmu.h create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_rcu.h create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_rtc.h create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_sdio.h create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_spi.h create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_timer.h create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_usart.h create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_wwdgt.h create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_adc.c create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_bkp.c create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_can.c create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_crc.c create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_dac.c create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_dbg.c create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_dma.c create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_enet.c create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_exmc.c create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_exti.c create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_fmc.c create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_fwdgt.c create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_gpio.c create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_i2c.c create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_misc.c create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_pmu.c create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_rcu.c create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_rtc.c create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_sdio.c create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_spi.c create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_timer.c create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_usart.c create mode 100644 boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_wwdgt.c diff --git a/boot_project/DebugConfig/hongri_boot_STM32_STM32F105RC.dbgconf b/boot_project/DebugConfig/hongri_boot_STM32_STM32F105RC.dbgconf new file mode 100644 index 0000000..90dabd8 --- /dev/null +++ b/boot_project/DebugConfig/hongri_boot_STM32_STM32F105RC.dbgconf @@ -0,0 +1,97 @@ +// <<< Use Configuration Wizard in Context Menu >>> +// Debug MCU Configuration +// DBG_SLEEP +// Debug Sleep Mode +// 0: (FCLK=On, HCLK=Off) FCLK is clocked by the system clock as previously configured by the software while HCLK is disabled +// 1: (FCLK=On, HCLK=On) HCLK is fed by the same clock that is provided to FCLK +// DBG_STOP +// Debug Stop Mode +// 0: (FCLK=Off, HCLK=Off) Clock controller disables all clocks +// 1: (FCLK=On, HCLK=On) FCLK and HCLK are provided by the internal RC oscillator which remains active +// DBG_STANDBY +// Debug Standby Mode +// 0: (FCLK=Off, HCLK=Off) The whole digital part is unpowered. +// 1: (FCLK=On, HCLK=On) Digital part is powered and FCLK and HCLK are provided by the internal RC oscillator which remains active +// DBG_IWDG_STOP +// Debug independent watchdog stopped when core is halted +// 0: The watchdog counter clock continues even if the core is halted +// 1: The watchdog counter clock is stopped when the core is halted +// DBG_WWDG_STOP +// Debug window watchdog stopped when core is halted +// 0: The window watchdog counter clock continues even if the core is halted +// 1: The window watchdog counter clock is stopped when the core is halted +// DBG_TIM1_STOP +// Timer 1 counter stopped when core is halted +// 0: The clock of the involved Timer Counter is fed even if the core is halted +// 1: The clock of the involved Timer counter is stopped when the core is halted +// DBG_TIM2_STOP +// Timer 2 counter stopped when core is halted +// 0: The clock of the involved Timer Counter is fed even if the core is halted +// 1: The clock of the involved Timer counter is stopped when the core is halted +// DBG_TIM3_STOP +// Timer 3 counter stopped when core is halted +// 0: The clock of the involved Timer Counter is fed even if the core is halted +// 1: The clock of the involved Timer counter is stopped when the core is halted +// DBG_TIM4_STOP +// Timer 4 counter stopped when core is halted +// 0: The clock of the involved Timer Counter is fed even if the core is halted +// 1: The clock of the involved Timer counter is stopped when the core is halted +// DBG_CAN1_STOP +// Debug CAN1 stopped when Core is halted +// 0: Same behavior as in normal mode +// 1: CAN1 receive registers are frozen +// DBG_I2C1_SMBUS_TIMEOUT +// I2C1 SMBUS timeout mode stopped when Core is halted +// 0: Same behavior as in normal mode +// 1: The SMBUS timeout is frozen +// DBG_I2C2_SMBUS_TIMEOUT +// I2C2 SMBUS timeout mode stopped when Core is halted +// 0: Same behavior as in normal mode +// 1: The SMBUS timeout is frozen +// DBG_TIM8_STOP +// Timer 8 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM5_STOP +// Timer 5 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM6_STOP +// Timer 6 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM7_STOP +// Timer 7 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_CAN2_STOP +// Debug CAN2 stopped when Core is halted +// 0: Same behavior as in normal mode +// 1: CAN2 receive registers are frozen +// DBG_TIM12_STOP +// Timer 12 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM13_STOP +// Timer 13 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM14_STOP +// Timer 14 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM9_STOP +// Timer 9 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM10_STOP +// Timer 10 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM11_STOP +// Timer 11 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// +DbgMCU_CR = 0x00000007; +// <<< end of configuration section >>> \ No newline at end of file diff --git a/boot_project/DebugConfig/hongri_boot_STM_STM32F105RC.dbgconf b/boot_project/DebugConfig/hongri_boot_STM_STM32F105RC.dbgconf new file mode 100644 index 0000000..90dabd8 --- /dev/null +++ b/boot_project/DebugConfig/hongri_boot_STM_STM32F105RC.dbgconf @@ -0,0 +1,97 @@ +// <<< Use Configuration Wizard in Context Menu >>> +// Debug MCU Configuration +// DBG_SLEEP +// Debug Sleep Mode +// 0: (FCLK=On, HCLK=Off) FCLK is clocked by the system clock as previously configured by the software while HCLK is disabled +// 1: (FCLK=On, HCLK=On) HCLK is fed by the same clock that is provided to FCLK +// DBG_STOP +// Debug Stop Mode +// 0: (FCLK=Off, HCLK=Off) Clock controller disables all clocks +// 1: (FCLK=On, HCLK=On) FCLK and HCLK are provided by the internal RC oscillator which remains active +// DBG_STANDBY +// Debug Standby Mode +// 0: (FCLK=Off, HCLK=Off) The whole digital part is unpowered. +// 1: (FCLK=On, HCLK=On) Digital part is powered and FCLK and HCLK are provided by the internal RC oscillator which remains active +// DBG_IWDG_STOP +// Debug independent watchdog stopped when core is halted +// 0: The watchdog counter clock continues even if the core is halted +// 1: The watchdog counter clock is stopped when the core is halted +// DBG_WWDG_STOP +// Debug window watchdog stopped when core is halted +// 0: The window watchdog counter clock continues even if the core is halted +// 1: The window watchdog counter clock is stopped when the core is halted +// DBG_TIM1_STOP +// Timer 1 counter stopped when core is halted +// 0: The clock of the involved Timer Counter is fed even if the core is halted +// 1: The clock of the involved Timer counter is stopped when the core is halted +// DBG_TIM2_STOP +// Timer 2 counter stopped when core is halted +// 0: The clock of the involved Timer Counter is fed even if the core is halted +// 1: The clock of the involved Timer counter is stopped when the core is halted +// DBG_TIM3_STOP +// Timer 3 counter stopped when core is halted +// 0: The clock of the involved Timer Counter is fed even if the core is halted +// 1: The clock of the involved Timer counter is stopped when the core is halted +// DBG_TIM4_STOP +// Timer 4 counter stopped when core is halted +// 0: The clock of the involved Timer Counter is fed even if the core is halted +// 1: The clock of the involved Timer counter is stopped when the core is halted +// DBG_CAN1_STOP +// Debug CAN1 stopped when Core is halted +// 0: Same behavior as in normal mode +// 1: CAN1 receive registers are frozen +// DBG_I2C1_SMBUS_TIMEOUT +// I2C1 SMBUS timeout mode stopped when Core is halted +// 0: Same behavior as in normal mode +// 1: The SMBUS timeout is frozen +// DBG_I2C2_SMBUS_TIMEOUT +// I2C2 SMBUS timeout mode stopped when Core is halted +// 0: Same behavior as in normal mode +// 1: The SMBUS timeout is frozen +// DBG_TIM8_STOP +// Timer 8 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM5_STOP +// Timer 5 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM6_STOP +// Timer 6 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM7_STOP +// Timer 7 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_CAN2_STOP +// Debug CAN2 stopped when Core is halted +// 0: Same behavior as in normal mode +// 1: CAN2 receive registers are frozen +// DBG_TIM12_STOP +// Timer 12 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM13_STOP +// Timer 13 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM14_STOP +// Timer 14 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM9_STOP +// Timer 9 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM10_STOP +// Timer 10 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM11_STOP +// Timer 11 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// +DbgMCU_CR = 0x00000007; +// <<< end of configuration section >>> \ No newline at end of file diff --git a/boot_project/LED.map b/boot_project/LED.map new file mode 100644 index 0000000000000000000000000000000000000000..6722ac0102a28a4b1d99d2a131a582cd7684b969 GIT binary patch literal 45056 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�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 EIy;@77ytkO literal 184320 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%0DjKqzmtZ+h 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�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�TRkHZzwhQqCZ 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�f<+%e-6_IW_#+)LMV~Hr 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 JUlqgZ2NeYjYXSfO literal 0 HcmV?d00001 diff --git a/boot_project/Listings/boot_STM32F105.map b/boot_project/Listings/boot_STM32F105.map new file mode 100644 index 0000000000000000000000000000000000000000..a03a494a8a4736ae75c2766db2f9ece7d484d4cc GIT binary patch literal 200704 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%0AMR#FXjljC8oj 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%0APmme zw5*#p;dFkPMIGwOrX*9_Xl&K>M2eI%XB?o0#Uh*ka zmO-81X8QoZ%BhvYZ81)J4#syiiLT~YtWFe%XZ)%wy|%8e2W-r+w(u&wZb#AA^2dMJ zL^$0*E=vet_vO>%Nn)LuvRiIeb&IQ;Y`X*CSWkb-hMJjP8UH#y-~aMw3zl)>AC98&dUvswb#w0MVGGBM~dB zr?_Tvd5j8{aZ7CH)2rjQxwWVz~G4;y_Q9E7Dr9rJ2<4|Sig zK+SNA)*o9ow{(H34@xoV0o!F9B2TvEp_FiIAZ4bkz}}-~?XMyNC$Gq{oaR5s@1_54 z>S@(zb(37BBg*=cdq`$OiTW+2uetgi@tsS2U zqa_X*5}7hnOs$p$F(eb#AMvbVxu8Ovr8R5V*2Jj(*kGDvNE~T?bzE@ZjjAr;ICGBM z@hZB_Ii_l(Al@7Ypl+v*lq~c+q;?RadC~8=pn+6cO>!>ecb76K(ebZ

Vn6;G92w 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

AD6%+vQ$7;C$Acr>d_XSJ_li!2rn`wZOKRb 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�MgN9 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áGlCh2O*xYHu-HLJY%xu_m6&U^vPe|YONYAeOwey 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

emjW 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%0AbqW%KADA(itDqxy<ez6)#_t1|n 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 literal 0 HcmV?d00001 diff --git a/boot_project/Listings/boot_gd32F105.map b/boot_project/Listings/boot_gd32F105.map new file mode 100644 index 0000000000000000000000000000000000000000..af7c643318394a8a3ff24b17013921ca78ff1662 GIT binary patch literal 249856 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%0Ahfc4U}TOQz#TCsgBsb4-*}j3)Oh z3L{4+I;ba>A(z}B=sn`zdT9ISl~=g$}F^KI8P@G8$yn=iooE#0VukWM^^Y9-v_j0Lich@Ffm~j%WIR zTg9}OBkdmNN=!dWM%jD|?!fDiLT}!{c;YUdJ<&KnAeFORRYo*dS$IJ}ANSJ_*w5*K znpu?0q}>B4yf2K@DLK=bz1W?4BCVZz0b2^hb;I=9y%4>ggND~@l6no;vk;syNR8|O zn5k=XZm8c+)3}~hRh~zIQkj-Xa(&yyE{i3v%Bnc49d*^o zz-M6HMrWQ?d`noKY|8oNBvB)KNn}623XK*(`V|r~FRi#eX)T;kUQgu;9W0{=(}DkQ z&+uXL(WJ}UkcD7yhWO8NdtE;Xkg$(aKS9psYLF2`T-JPSJIhKX+Xgxf7v4r%T`4J? zU%2QhUJ$(t{^mr_&`YbVNvM@Vg9zTzIT9?D@xc7bGG<-TdpFosrU(Qbx5xDSy}Q7y zk|@$x|9tb$am@X8S8~awG*%`&dRNmFyZgitXaTX0 zA@%hLcd>4HdBY{$JGEXtq&wLrR7h5Jnb?G1Q-r+Dzh)G#)e&44no;jpy`m|@R&>b~ z1bd%}DjhjH~(D|Lw>8B@=*Y$uG#nUm8t)GFBO18qEqvQiw?0J@WTw%7o zt$`(wp9PHX7^9ADvX9hpo58ljx1<8up8vNsFB)*wqHi>~R={?sZ#{1Djh~B8S6~GZ zXf%-3RDr*mf*C2zBTc{)IZ}9-t)sEe5}|}T;L96(eX9Ae<~J2Bx%ZqJf?yRZqhqM_ zDfbwY1U}3}3~i5$4f*a&dq4?|daxR%GEP{nU)tf}_xNYdu3UhqqwWZQ!D{GlZS=g$ zyc(dwE6;}7rc?kHR9@BgyK}A+=2~!5?j_LyH3;CWVz zK3%g9f;PYgVk3z=AksG*z{05yXn4bVH{tL0aL;@i1bi6$7e4KN_%s0lDDbkFQ6yKg zz-Lzzsip*4cyiVt{Va%m6$}qj#$ubEkR(Hyxlf;^-R%$Ex(3%JVj4w3lc2W3@D<<2 zLZe+#)+S2=VL?TPE9n%*@OtixaIX*12-4nF|5L#^5YZ!_X9&h$Sl5-ia3i*588T91 z9Lb+15G=JhtL6h>8|)LFEX!L;n!^!v2=>Xi!gAkyGavxQOn8kqFO0XptDXa0P}wp% zZh`1Er$s?I7H*ym>LSCUbe$)*_`0g)J#&$d2ehtad=M?^R4zA4D84afSi=E8>gf;< zv;dOwXg(H7s%dy)n15iz1_mK9-}?c}2Vli&B~fRbR9|;_Epnk7RvIS<%24=Qlizgu zc@O!MbYYTdu|5Q_ zfyR80iOKB~w~~X~%715A-sXXF*)N_T!!DL*!G)w*zVqh+BcBBo#a1(nH=M4? zOZoRNJ`Ju0gYV`p_C2u6>A5HJD#uNT2XkRR&#*N@x#v1v?IWCB_-~;E)nGdZA{;WU zA&c%E>DW2wXtWE4M!!{4cxn!KF2Ly5GyYJ0F7fP($pF|A|&G-7NprlMzO14!m%}#d?>V*a+PwQfxK;#V1iFfvE9&% zXc)iHfNDWtnYkUbz*PWhMetUCAIi5B9F!UJ=mWbeDn`nLu z$2ksdMK+|29FR%MZ+@*M>tFJSkf=xHZ|9Lrkm`%CtC-=o9}!h)ON0@|HgsH7-Wakj3848 z{4CYkAgh!2T8<_pmGJl)Y?_XU5%iE3E>g~rg&G`Ra(010f1Q|&^KQh1T`X>j@|F_N zbET7qTCk7Z+?({i6BysZ1Z(JDTjWv?ebL$QkN3n-bW+{Qg{+Qm>EmZt_f z3NT4V_fo`7;IO@*6T(bC6Q1!}e!{DH>kCL@B-W z*>I_>Czc#b!y%$t^^GrX|EK7bjDHo$fy9h*E$B0kCPs4^^L@tUft!XMCRv{$VeeD` z7nTzll$oJJK^Dy8dW~eA%t~oI*HrdR%4721ajAMzP<1p{(1l*S6?{92#{s~H*Ilez zfTFh(1^aN5Oa1g-;#(t^q%4uu>wBq#k}4X<$^!C`0x^~W;EPD&3y`YZ5J|jBH6pd@ zKk?;AxP!#V706&mH**V%w(I4OMnwk%-l=w=>hh_fmrW;hnR>wK|gXm@fj zR%gLcN1GW%yk7yXQ&By+qLY48$7W@e?fAeaQt--u)bj0WF~Yg^9Kld*z>OTTvS;A1 zmvfRNf32$zH0SFDi2}Nm{5De*UuU;nr@iOAMnDd-qY>n$M#UC@OvtO-I;R4wxEa8L z#qF#y-;@>yj=?2+0K)elb#g=fdg&1=c6U$^4hphEH$+kKJ=#@>5j!0|xm8zutNb!9@`x=}Jx=DmS)w^N+838Ur z)+9J-0iUQJO3r;{R&~rK+Tbg+wS8JozUK5zQFmn2v@Wbbnl#;q8Pd~NE&crfwwY2%u@$^ai{y=?E zu}fOhika6GrH>oO8+WLJSZR`{mOGLr3;;peQID2#K$8_cnu!oJBu-!o_~sAoj=+j@ z)V^1_fbHzeqsy)Qt>9hc=;leaLDRzEiy!}{cwru=;Ag$XB_x5x?;zVFA}k53@C~>T zU0;2{DKHz57Uo_NWp$=(vWym04oZH?jxZdb%BrX8c|lu-%V@Al={OgIJ(qJ}*AoW; zo8Wha7g;P;r=*t@0h}Qy!pUB!Tk=*gx)m{yIL?VX4Dud|vf2B+H&=4xVvhJA$();>x3ac~BgRTUVwVYHZzkwqPb}X?eSSO(&1+v%i)g zO;xgNByR;%f}%!eP`Fo!83Gn6a|$iKNH%U}O3{L06%+bN)2Gz3v%eyNnMVNA|D2Dn z

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 K}#6pvO7%iHkhjKfh(;VE(}^H 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

  • 5Ctb;pgpQKDMiQ}3(9 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 diff --git a/boot_project/Objects/ExtDll.iex b/boot_project/Objects/ExtDll.iex deleted file mode 100644 index 6c0896e..0000000 --- a/boot_project/Objects/ExtDll.iex +++ /dev/null @@ -1,2 +0,0 @@ -[EXTDLL] -Count=0 diff --git a/boot_project/Objects/boot.axf b/boot_project/Objects/boot.axf deleted file mode 100644 index c5d0669ba14b881982cd2de2291b3afbd0288dd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 571364 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 diff --git a/boot_project/Objects/boot.build_log.htm b/boot_project/Objects/boot.build_log.htm deleted file mode 100644 index c6fd0f7..0000000 --- a/boot_project/Objects/boot.build_log.htm +++ /dev/null @@ -1,116 +0,0 @@ - - -
    -

    µVision Build Log

    -

    Tool Versions:

    -IDE-Version: ¦ÌVision V5.25.2.0 -Copyright (C) 2018 ARM Ltd and ARM Germany GmbH. All rights reserved. -License Information: Zachary Administrator, Zachary, LIC=TIVNB-2IHDY-01WP1-C2K2G-5HIE0-XG8NS - -Tool Versions: -Toolchain: MDK-ARM Plus Version: 5.25.2.0 -Toolchain Path: C:\Keil_v5\ARM\ARMCC\Bin -C Compiler: Armcc.exe V5.06 update 6 (build 750) -Assembler: Armasm.exe V5.06 update 6 (build 750) -Linker/Locator: ArmLink.exe V5.06 update 6 (build 750) -Library Manager: ArmAr.exe V5.06 update 6 (build 750) -Hex Converter: FromElf.exe V5.06 update 6 (build 750) -CPU DLL: SARMCM3.DLL V5.25.2.0 -Dialog DLL: DCM.DLL V1.17.1.0 -Target DLL: Segger\JL2CM3.dll V2.99.29.0 -Dialog DLL: TCM.DLL V1.35.1.0 - -

    Project:

    -E:\liudagui\project\HONGRI\code\boot_up\boot_project\hongri_boot.uvprojx -Project File Date: 11/04/2024 - -

    Output:

    -*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin' -Rebuild target 'hongri_boot' -assembling startup_stm32f10x_cl.s... -compiling misc.c... -compiling stm32f10x_dma.c... -compiling led.c... -compiling stm32f10x_pwr.c... -compiling stm32f10x_can.c... -compiling stm32f10x_iwdg.c... -compiling stm32f10x_flash.c... -compiling 24cxx.c... -compiling core_cm3.c... -compiling stm32f10x_rcc.c... -compiling stm32f10x_gpio.c... -compiling bsp_i2c_gpio.c... -compiling stm32f10x_it.c... -compiling can2.c... -compiling dev_flashApi.c... -compiling dev_crc32.c... -compiling dev_eerom.c... -compiling system_stm32f10x.c... -compiling dev_sys.c... -compiling UDS.c... -compiling iso15765-2_entry.c... -compiling Can_Transceiver.c... -compiling Diag_Eeprom_C301.c... -compiling iso15765-2.c... -compiling CanCtrl_C301.c... -compiling CanConfig_C301.c... -compiling UDS_SA_C301.c... -..\boot_source\code_app\service\CanStack\canBus_hongri\UDS_SA_C301.c(48): warning: #177-D: function "BL_BE32_TO_MCU" was declared but never referenced - static uint32_t BL_BE32_TO_MCU(uint8_t *pBuf) -..\boot_source\code_app\service\CanStack\canBus_hongri\UDS_SA_C301.c: 1 warning, 0 errors -compiling app_can.c... -compiling main.c... -..\boot_source\code_app\main\src\main.c(163): warning: #188-D: enumerated type mixed with another type - RCC_APB1PeriphClockCmd (RCC_APB1Periph_PWR | RCC_APB1Periph_BKP,ENABLE );// -..\boot_source\code_app\main\src\main.c(164): warning: #188-D: enumerated type mixed with another type - PWR_BackupAccessCmd(ENABLE);// -..\boot_source\code_app\main\src\main.c(198): warning: #188-D: enumerated type mixed with another type - TimeTaskData.F_Time_1MS = RESET; -..\boot_source\code_app\main\src\main.c(207): warning: #188-D: enumerated type mixed with another type - TimeTaskData.F_Time_5MS = RESET; -..\boot_source\code_app\main\src\main.c(213): warning: #188-D: enumerated type mixed with another type - TimeTaskData.F_Time_10MS = RESET; -..\boot_source\code_app\main\src\main.c(222): warning: #188-D: enumerated type mixed with another type - TimeTaskData.F_Time_20MS = RESET; -..\boot_source\code_app\main\src\main.c(226): warning: #188-D: enumerated type mixed with another type - TimeTaskData.F_Time_50MS = RESET; -..\boot_source\code_app\main\src\main.c(230): warning: #188-D: enumerated type mixed with another type - TimeTaskData.F_Time_100MS = RESET; -..\boot_source\code_app\main\src\main.c(234): warning: #188-D: enumerated type mixed with another type - TimeTaskData.F_Time_1000MS = RESET; -..\boot_source\code_app\main\src\main.c(89): warning: #177-D: function "Task_RunToAppCheckValide" was declared but never referenced - static uint8_t Task_RunToAppCheckValide(void) -..\boot_source\code_app\main\src\main.c: 10 warnings, 0 errors -compiling Diag_Appl_C301.c... -..\boot_source\code_app\driver\inc\dev_eerom.h(32): warning: #1-D: last line of file ends without a newline - /** EOF */ -..\boot_source\code_app\service\CanStack\canBus_hongri\Diag_Appl_C301.c(1329): warning: #177-D: variable "crc32" was declared but never referenced - uint32_t crc32=0; -..\boot_source\code_app\service\CanStack\canBus_hongri\Diag_Appl_C301.c(2026): warning: #550-D: variable "CRC_16" was set but never used - uint16_t CRC_16=0xFFFF; -..\boot_source\code_app\service\CanStack\canBus_hongri\Diag_Appl_C301.c(2121): warning: #223-D: function "GetCrc32Chk" declared implicitly - if(GetCrc32Chk() == transSequenceValue) -..\boot_source\code_app\service\CanStack\canBus_hongri\Diag_Appl_C301.c(289): warning: #177-D: function "Diag_ExtMemorySecFAAFlagSave" was declared but never referenced - static void Diag_ExtMemorySecFAAFlagSave(uint8_t cnt) -..\boot_source\code_app\service\CanStack\canBus_hongri\Diag_Appl_C301.c: 5 warnings, 0 errors -linking... -Program Size: Code=22124 RO-data=980 RW-data=252 ZI-data=12716 -FromELF: creating hex file... -".\Objects\boot.axf" - 0 Error(s), 16 Warning(s). - -

    Software Packages used:

    - -Package Vendor: Keil - http://www.keil.com/pack/Keil.STM32F1xx_DFP.2.1.0.pack - Keil.STM32F1xx_DFP.2.1.0 - STMicroelectronics STM32F1 Series Device Support, Drivers and Examples - -

    Collection of Component include folders:

    - .\RTE\_hongri_boot - C:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include - -

    Collection of Component Files used:

    -Build Time Elapsed: 00:00:06 -
    - - diff --git a/boot_project/Objects/boot.hex b/boot_project/Objects/boot.hex deleted file mode 100644 index 57be32b..0000000 --- a/boot_project/Objects/boot.hex +++ /dev/null @@ -1,1463 +0,0 @@ -:020000040800F2 -:10000000A832002085010008153E00088D2A00084E -:10001000113E0008FD020008F9540008000000002D -:10002000000000000000000000000000394200084D -:100030006F10000800000000B53E00086143000892 -:100040009F0100089F0100089F0100089F01000810 -:100050009F0100089F0100089F0100089F01000800 -:100060009F0100089F0100089F0100089F010008F0 -:100070009F0100089F0100089F0100089F010008E0 -:100080009F0100089F0100089F0100089F010008D0 -:100090009F0100089F0100089F0100089F010008C0 -:1000A0009F0100089F0100089F0100089F010008B0 -:1000B0009F0100089F0100089F0100089F010008A0 -:1000C0009F0100089F0100089F0100089F01000890 -:1000D0009F0100089F0100089F0100089F01000880 -:1000E0009F0100089F0100089F0100080000000018 -:1000F0000000000000000000000000000000000000 -:1001000000000000000000009F0100089F0100089F -:100110009F0100089F0100089F0100089F0100083F -:100120009F0100089F0100089F0100089F0100082F -:100130009F0100089F0100089F0100089F0100081F -:100140009F010008B9040008E90400089F010008A5 -:10015000DFF80CD000F04CF800480047E9560008E2 -:10016000A8320020EFF30980704780F309887047B8 -:10017000EFF30880704780F30888704740BA7047F3 -:10018000C0BA70470648804706480047FEE7FEE7CA -:10019000FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE737 -:1001A000214400085101000840EA01039B0703D0E5 -:1001B00009E008C9121F08C0042AFAD203E011F8A6 -:1001C000013B00F8013B521EF9D27047D2B201E068 -:1001D00000F8012B491EFBD270470022F6E710B54C -:1001E00013460A4604461946FFF7F0FF204610BDA5 -:1001F000064C074D06E0E06840F0010394E8070074 -:1002000098471034AC42F6D3FFF7A6FF205A0008F7 -:10021000405A00080FB470B5049D9DF81A000828D4 -:1002200002DD08208DF81A000C49049808609DF83A -:100230001A008872002407E00DF11B00015D0748D9 -:100240000B300155601CC4B29DF81A00A042F3DCCB -:10025000284600F005F870BC5DF814FB802A0020E9 -:1002600070B5044603254FF6D0702040B0F5806F7E -:1002700004D1012500201149086010E040F2DF7030 -:10028000844203D040F20B70844204D10225002046 -:100290000A49086003E00325002008490860012D91 -:1002A00004D0022D03D0032D05D103E004E002F0B9 -:1002B000EBFE01E000E000BF00BF70BDF0000020D9 -:1002C00010B501214FF0C05003F0F6FD012003F0FE -:1002D000EBFD10BD00BF0748006800F4E060064970 -:1002E0000843001D03490860BFF34F8F00BF00BFE4 -:1002F000FEE700000CED00E00000FA0500BFFEE79D -:1003000002480068C043014908607047D8000020D7 -:1003100000B50648006838B901200549086005485D -:100320000249086005F0EAF800BD0000E000002086 -:10033000DC0000202083B8ED4FF0FF300149086059 -:1003400070470000D800002030B503460C4609482D -:100350000268002108E0605C5040C5B2064850F8D1 -:10036000250080EA1222491C9942F4D30148026018 -:10037000002030BDD80000208026002000B589B0C4 -:100380000121092003F0B8FD0121480603F094FD86 -:100390000121880603F090FD4FF40050ADF82000D5 -:1003A00003208DF8220018208DF8230008A940486A -:1003B00002F08FFA4FF48050ADF8200048208DF8FD -:1003C000230008A93A4802F084FA00208DF81A00A8 -:1003D00001208DF81B0000208DF81C008DF81D00F9 -:1003E0008DF81E008DF81F008DF8160001208DF885 -:1003F000170008208DF8180001208DF8190006203C -:10040000ADF8140005A92B4800F0B9FA0E208DF8BC -:100410000E0000208DF80F0001208DF81000002044 -:10042000ADF80400ADF80600ADF80800ADF80A001C -:100430000120ADF80C008DF8110001A800F046F97C -:10044000012210211B4800F091FA41208DF8000094 -:1004500001208DF8010000208DF8020001208DF8A8 -:100460000300684603F0DEFC012005F0A9F8012234 -:100470005102104800F07AFA012291020D4800F072 -:1004800075FA0122D1030B4800F070FA42208DF872 -:10049000000001208DF8010000208DF802000120ED -:1004A0008DF80300684603F0BDFC002009B000BDD4 -:1004B000000C01400068004000B587B0012005F045 -:1004C0008BF802AA0121074800F0E3FA0698009091 -:1004D00002A80FC8FFF79EFE142102A8FFF77DFEB9 -:1004E00007B000BD0068004010B54FF400712D4802 -:1004F00000F0ACF9012820D12B492A4800F06AF914 -:10050000012815D100BF022808DA284911F8301057 -:1005100021B1264911F83010032900D104E002214D -:10052000224A02F8301000BF1F491E4800F042F86E -:100530004FF400711B4800F059F84FF480611948DE -:1005400000F084F901282BD11749891C154800F0C7 -:1005500041F901281FD10124022C03DA134810F8B5 -:10056000340000B912E00320104901F8340001EB17 -:10057000C401081D002103F0A1FF1CB90C4800F0C4 -:1005800089F802E0074800F085F800BF0649891C99 -:10059000044800F00FF84FF48061024800F026F89C -:1005A00010BD0000006800400200F010FC000020B8 -:1005B0000064004000220C4B994202D10023836169 -:1005C00011E0C1F3130201F000730BB1C2600AE045 -:1005D00001F080630BB1026105E001F000630BB133 -:1005E000826000E0426070477000F030B1F5007F3B -:1005F0003AD00FDC202928D006DC01291CD00429A0 -:100600001DD0082940D11DE0402921D0B1F5807FBF -:100610003AD126E0B1F5004F31D006DCB1F5806F5C -:1006200025D0B1F5006F2FD124E0B1F5803F12D075 -:10063000B1F5003F28D111E0154A826025E008227B -:10064000C26022E01022C2601FE0082202611CE0AA -:100650001022026119E00822426016E01022426076 -:1006600013E00422426010E0042242600DE0042204 -:1006700042600AE0002282610422426005E000221A -:1006800082610422426000E000BF00BF70470000AA -:100690000101010010B504460B48844209D1012133 -:1006A000480603F019FC00214FF0007003F014FC21 -:1006B00008E00121880603F00FFC00214FF0806064 -:1006C00003F00AFC10BD00000064004010B50021DA -:1006D000837A012202FA03F13D4A126842F00102D4 -:1006E0003B4B1A603A4A1C3212688A43384B1C331F -:1006F0001A60027BCAB9364A0C3212688A43344BFC -:100700000C331A604288C38842EA0343304A4032BD -:10071000847A42F834300288838842EA03432C4AC0 -:100720004032847A02EBC4025360027B012A19D161 -:10073000274A0C3212680A43254B0C331A60428850 -:10074000038842EA0343224A4032847A42F8343032 -:10075000C288838842EA03431D4A4032847A02EB0E -:10076000C4025360C27A3AB9194A121D12688A4308 -:10077000174B1B1D1A6006E0154A121D12680A432A -:10078000134B1B1D1A60028932B9114A14321268C8 -:100790008A430F4B14331A600289012A06D10C4A8E -:1007A000143212680A430A4B14331A60427B012A3E -:1007B00006D1074A1C3212680A43054B1C331A60E3 -:1007C000034A126822F00102014B1A6010BD0000BA -:1007D0000066004010B50246002001F4700343B1EA -:1007E0009369C1F3130423400BB101202DE00020D5 -:1007F0002BE001F0807343B15368C1F3130423402D -:100800000BB1012021E000201FE001F0006343B1A3 -:100810009368C1F3130423400BB1012015E00020BD -:1008200013E001F0007343B1D368C1F31304234014 -:100830000BB1012009E0002007E01369C1F31304A4 -:1008400023400BB1012000E0002010BD70B504462C -:100850000D46002660692840002871D0B5F5807FDC -:100860005CD010DC082D35D006DC012D20D0022D07 -:1008700024D0042D72D127E0102D31D0202D35D079 -:10088000402D6BD138E0B5F5004F60D009DCB5F5EF -:10089000007F49D0B5F5806F4CD0B5F5006F5DD1C4 -:1008A0004FE0B5F5803F2DD0B5F5003F56D12FE094 -:1008B000A0682D4900F0D2FB064651E0E068032114 -:1008C00000F0CCFB06464BE0E068082100F0C6FBD8 -:1008D000064645E0E068102100F0C0FB06463FE018 -:1008E0002069032100F0BAFB064639E0206908219F -:1008F00000F0B4FB064633E02069102100F0AEFBA7 -:1009000006462DE06068082100F0A8FB064627E0B7 -:100910006068102100F0A2FB064621E0A0690121D9 -:1009200000F09CFB06461BE0A069022100F096FB4C -:10093000064615E0A069042100F090FB06460FE092 -:100940000FE0A069702100F089FB064608E06068AE -:10095000042100F083FB064602E0FFE7002600BF0B -:1009600000E00026304670BD010101001AB1436964 -:100970000B43436102E043698B434361704730B5E9 -:10098000024600200023146824F002041460146856 -:1009900044F00104146000E05B1C546804F001049E -:1009A0001CB94FF6FF74A342F6D1546804F0010459 -:1009B0000CB900206CE08C79012C04D1146844F04F -:1009C0008004146003E0146824F080041460CC797F -:1009D000012C04D1146844F04004146003E014684E -:1009E00024F0400414600C7A012C04D1146844F003 -:1009F0002004146003E0146824F0200414604C7A8E -:100A0000012C04D1146844F01004146003E014684D -:100A100024F0100414608C7A012C04D1146844F082 -:100A20000804146003E0146824F008041460CC7A0D -:100A3000012C04D1146844F00404146003E0146829 -:100A400024F0040414608C78A407CD7844EA05648B -:100A50000D7944EA05444D7944EA05540D886D1E2C -:100A60002C43D461146824F001041460002300E0D6 -:100A70005B1C546804F001041CB14FF6FF74A342E0 -:100A8000F6D1546804F001040CB1002000E001200C -:100A900030BD10B500F5D87303EB01131B6803F0EC -:100AA00004031372137A53B900F5D87303EB0113DF -:100AB0001B6840F2FF7404EA5353136009E000F529 -:100AC000D87303EB01131B686FF0604404EAD3038F -:100AD000536000F5D87303EB01131B6803F00203A6 -:100AE000537200F5D87303EB01135B6803F00F0337 -:100AF000937200F5D87303EB01135B681B0AD37480 -:100B000000F5D87303EB01139B68D37200F5D8731B -:100B100003EB01139B681C0A147300F5D87303EBF5 -:100B200001139B681C0C547300F5D87303EB01137D -:100B30009B681B0E937300F5D87303EB0113DB68FE -:100B4000D37300F5D87303EB0113DB681C0A14742C -:100B500000F5D87303EB0113DB681C0C547400F52B -:100B6000D87303EB0113DB681B0E937421B9C368C0 -:100B700043F02003C36003E0036943F020030361F3 -:100B800010BD10B502460020936803F08063B3F1F6 -:100B9000806F00D110E0936803F00063B3F1006F41 -:100BA00001D1012008E0936803F08053B3F1805F26 -:100BB00001D1022000E00420042874D002F5C073A3 -:100BC00003EB00131B6803F0010402F5C07303EB91 -:100BD00000131C600B7A7BB94B7A0C8843EA4453B0 -:100BE00002F5C07404EB00142468234302F5C074BA -:100BF00004EB0014236010E00B7A4C6843EAC40352 -:100C00004C7A234302F5C07404EB00142468234398 -:100C100002F5C07404EB001423608B7A03F00F0319 -:100C20008B7202F5C07303EB00135B6823F00F04B3 -:100C300002F5C07303EB00135C6002F5C07303EBB5 -:100C400000135B688C7A234302F5C07404EB001434 -:100C500063608B7B1C064B7B44EA03440B7B44EABA -:100C60000323CC7A234302F5C07404EB0014A36081 -:100C70008B7C1C064B7C44EA03440B7C44EA032334 -:100C8000CC7B234302F5C07404EB0014E36002F54F -:100C9000C07303EB00131B6843F0010402F5C0733B -:100CA00003EB00131C6010BD10B50246002321B1F8 -:100CB000012907D002290FD109E090681D4C00EAF4 -:100CC00004030BE090681C4C00EA040306E0906803 -:100CD0001A4C00EA040301E0002300BF00BF184CD7 -:100CE000181BA34216D007DC83B16FF08060184454 -:100CF00070B1022818D111E0B0F5007F10D0114C6E -:100D0000204448B1B0F5003F0ED10BE002230DE0C6 -:100D100000230BE0002309E0002307E0012305E0A6 -:100D2000012303E0012301E0002300BF00BFD8B28C -:100D300010BD0000030000040003000800000310C1 -:100D4000000100080001FFF70FB430B585B00024A2 -:100D5000142208A96846FFF727FA012004F050FC86 -:100D600020B9012005B030BC5DF814FB69460E487F -:100D7000FFF707FF0546002401E0601C84B2012054 -:100D800004F03EFC40B129460748FFF78DFF18B933 -:100D900040F6FF708442F0DB40F6FF70844201DBD6 -:100DA0000120DFE70020DDE70068004010B50020EB -:100DB00000F00AF910BD70473048407820F040003C -:100DC0002E4948700846407820F0200048700846B8 -:100DD000407820F0100048700846807820F00F001E -:100DE00088700846807820F0F00088700846007807 -:100DF00020F0010008700846007820F00800087014 -:100E00000846007820F0040008700846007820F0BA -:100E1000020008700846007820F02000087008469C -:100E2000007820F0100008700846007820F080005C -:100E300008700846007820F04000087008464078A6 -:100E400020F0010048700846407820F00200487009 -:100E50000846407820F00400487000204871C1F82E -:100E6000F000C1F8F400C1F8F800C1F8FC00C1F8C6 -:100E7000EC004FF6FF70A1F8E600704770150020F7 -:100E80000148007870470000F600002010B50024EB -:100E9000002012490870124908701249087012495E -:100EA000087072B6FFF788FF00240DE000200F499C -:100EB00008550F4908552146012001F041FE204602 -:100EC00001F030FE601CC4B2012CEFDB00F09AF898 -:100ED00001F0BEFF03F0A8FD62B610BDF7000020D0 -:100EE000F6000020F8000020F5000020F9000020A6 -:100EF000FA0000200949097842290DD107494978AB -:100F00004F2909D105498978452905D10349C9786F -:100F1000522901D1012000E0002070478E000020FE -:100F200010B506480078002806DD04480078401E09 -:100F30000249087003F0D2FC10BD0000F800002048 -:100F400002480078401C014908707047F6000020F4 -:100F50000149087070470000F500002010B5FFF748 -:100F60002AFF02F0E5FC04F045F9FFF7E9FFFFF77F -:100F7000D7FF10BD10B503480078012801D104F057 -:100F800029F910BDF700002000204FF4AC7000E0FC -:100F9000401E0028FCD1704710B50446012C00DB30 -:100FA00010BD44B98021064801F068FD10210548B4 -:100FB00001F064FD00E000BF00BF00BFF0E70000EB -:100FC00000100140000C014010B50446012C00DB6C -:100FD00010BD74B91021094801F04EFD8021084868 -:100FE00001F04CFDFFF7D0FF8021054801F044FDE2 -:100FF00000E000BF00BF00BFEAE70000000C0140B6 -:101000000010014010B50020FFF7C6FF10BD000022 -:1010100010B500240F480078012817D1FFF79EFF74 -:101020000D480068B0F5FA6F0AD3FFF7BFFE06E07F -:10103000601C84B2B4F5487F01DBFFF74BF9F7E79A -:1010400005480068401C0449086002E0012001498D -:10105000087010BDF7000020F000002002460020BC -:1010600002EA01030BB1012000E000207047704745 -:101070000120014908707047C200002070B5044685 -:10108000012501F0FDFCA04200D10025284670BDDD -:1010900038B502221021684604F0C8FA0546012D31 -:1010A00001D0002038BD002409E01DF8040006A18D -:1010B000095D884201D00020F4E7601CC4B2022C14 -:1010C000F3DB0120EEE700004852000010B50548B0 -:1010D000807800F00F00012802D1FFF7D9FF10BD82 -:1010E0000120FCE77015002000200549897801F0F7 -:1010F0000F01012901D1012000E00120704700000B -:101100007015002002460020A2F57143843B73B99C -:101110000B78632B01DD012008E04B783C2B01DDCF -:10112000012003E08B781F2B00DD012000E000BFD1 -:1011300000BF704770B5054604F0BCFA72B68B2D3F -:1011400006D10E480068012182680D48904711E0E1 -:101150002E2D0FD1002404E0AA200A490855601C56 -:10116000C4B2082CF8DB054800680822054943682A -:101170000348984704F0A6FA62B670BD2800002024 -:1011800000380208A8000020002004E0AA21034A39 -:101190001154411CC8B20828F8DB70478E000020AB -:1011A000012802D0022800D000BF7047012802D0D9 -:1011B000022800D000BF70472DE9F0410446207995 -:1011C000401CC6B22068477820688578032E03DC6F -:1011D000132003F0BBFF44E037B1032F1BD0802F57 -:1011E00003D0832F2ED117E000BF042E05D013208B -:1011F00003F0ACFF03F0B6FC32E00220A081032D27 -:1012000001DC012D03DA312003F0A0FF02E02846C3 -:10121000FFF7CCFF24E000BF042E05D0132003F01D -:1012200095FF03F09FFC1BE00220A081032D01DC51 -:10123000012D03DA312003F089FF02E02846FFF791 -:10124000AFFF0DE003F006FA18B1802003F0BCFFF9 -:1012500005E0002003F0B8FF122003F077FF00BF85 -:1012600000BF03F037FCBDE8F08170B5044620797B -:10127000401CC6B22068457825F08005022E03D1B7 -:10128000132003F063FF1FE0012D02D0022D0CD1CB -:1012900000E000BF032E05D0132003F057FF03F03A -:1012A00061FC10E00220A0810DE003F0D3F918B139 -:1012B000802003F089FF05E0002003F085FF122065 -:1012C00003F044FF00BF00BF03F004FC70BD00004A -:1012D00070B50246002028E00D5C2B02002421E0BE -:1012E000134DB5F8E6505D4005F4004555B1104D7D -:1012F000B5F8E65041F2210686EA45050C4EA6F8FF -:10130000E65009E00A4DB5F8E6504FF6FF7606EADA -:101310004505074EA6F8E6504FF6FF7505EA43036C -:10132000651CECB2082CDBDB401C9042D4D370BDB2 -:10133000701500202DE9F04105460E4617464FF086 -:1013400000081448807800F00F00012805D01148EB -:10135000807800F00F00022814D104F0ABF972B6C7 -:101360000D4800683A46314643682846984780460B -:1013700004F0A8F962B6B8F1000F01D1002402E030 -:10138000012400E0012414B90120BDE8F08100200F -:10139000FBE70000701500202800002070B504460F -:1013A0002079401CC5B22068467826F08006022DC0 -:1013B00003DC132003F0CAFE2FE0012E02D0032E1F -:1013C0001CD10DE0032D05D0132003F0BFFE03F068 -:1013D000C9FB04E00220A0810A20114908701BE02B -:1013E000032D05D0132003F0B1FE03F0BBFB04E096 -:1013F0000220A0810A200B4908700DE003F02AF9B1 -:1014000018B1802003F0E0FE05E0002003F0DCFED0 -:10141000122003F09BFE00BF00BF03F05BFB70BD1A -:1014200044000020450000202DE9F05F06460F46ED -:1014300090461B48B0F8E84000252BE04FF44830B8 -:10144000B5FBF0F100FB115010B9404603F02EFA45 -:1014500017F805B04FEA0B294FF0000A16E084EAAE -:10146000090000F4004028B141F2210080EA440064 -:1014700084B203E04FF6FF7000EA44044FF6FF70B9 -:1014800000EA49090AF1010000F0FF0ABAF1080F69 -:10149000E5DB6D1CB542D1D32046BDE8F09F0000CE -:1014A00070150020704710B50346002003E01C5C57 -:1014B0000C54441CE0B29042F9DB10BD10B5034659 -:1014C000002002E00C5C1C54401C9042FAD310BD7A -:1014D0001D48007820F0800080301B4908700020F3 -:1014E000C1F8EC00C1F8F400C1F8F00008464078FB -:1014F00020F0010048700846007820F002000870D3 -:101500000846007820F0040008700846007820F0B3 -:10151000200008700846007820F001000870084696 -:10152000007820F0080008700846407820F010008D -:1015300048700846807820F00F0088700846807850 -:1015400020F0F000887070477015002070B50646D6 -:101550000C461546224629463046FFF7AFFF70BDC0 -:101560002DE9F04F9BB007464FF00008C34600241A -:101570003879401C00F0FF0801201A90B8F1040FE0 -:101580000FD0B8F1060F0CD0B8F1080F09D0B8F1A0 -:101590000A0F06D0B8F10C0F03D0132003F0D6FDCC -:1015A00083E04FF0010BBBF1050F01DD4FF0050BA0 -:1015B000012400255BE0012101EB45013868405C16 -:1015C0000DF804001DF804004FEA002A601CC4B2A4 -:1015D000022101EB45013868405C0DF804001DF85C -:1015E000040040EA0A0A601CC4B2002019900026D8 -:1015F0002DE0304800EB06100088504525D1012031 -:1016000019902C4800EB0610407A012803D12A4992 -:1016100051F8260080474FF000090DE0254800EB07 -:101620000610406810F809000DF80400601CC4B2F0 -:1016300009F1010000F0FF091E4800EB0610007AD6 -:101640004845EBDC00201A9003E0701CC6B2052E62 -:10165000CFDB00BF03F050F910B100201A9008E072 -:10166000199810B901201A9003E0681CC5B25D45B5 -:10167000A1DB00BFBC81012505E01DF80500B968AC -:101680004855681CC5B2A542F7DB1A9801280CD151 -:1016900002F0E0FF18B1802003F096FD05E0002085 -:1016A00003F092FD312003F051FD03F013FA1BB05B -:1016B000BDE8F08FB8590008085A0008002005E07E -:1016C0000449095C044A1154411CC8B20528F7DBDF -:1016D0007047000033580008B0000020002005E0EB -:1016E0000449095C044A1154411CC8B20928F7DBBB -:1016F000704700002A5800083D150020002004E033 -:10170000FF21034A1154411CC8B20628F8DB704778 -:10171000B500002070470000002005E00449095C86 -:10172000044A1154411CC8B20928F7DB7047000075 -:1017300021580008341500202DE9FC410446257984 -:1017400020684678206887780B2D03D0132003F09B -:10175000FDFC46E10EB9442F03D0312003F0F6FC26 -:101760003FE1C5480078C0F3400018B1702003F095 -:10177000EDFC36E12068C0788DF80400206800791F -:101780008DF80500206840798DF806002068807982 -:101790008DF807002068C0798DF800002068007A75 -:1017A0008DF801002068407A8DF802002068807A68 -:1017B0008DF803009DF8040000069DF8051000EB6D -:1017C00001409DF8061000EB01209DF80710084429 -:1017D000A949C1F8F8009DF8000000069DF8011025 -:1017E00000EB01409DF8021000EB01209DF8031072 -:1017F0000844A149C1F8FC0008460078C0F3C000C5 -:10180000002857D10846D0F8FC00B0F5805F0AD810 -:101810000846D0F8F800401C28B10846D0F8F80077 -:101820009649884203D0312003F090FCD9E09248D9 -:10183000D0F8F8009149884207D18F48807820F08D -:10184000F00010308C4988700CE08B48D0F8F8001C -:101850008B49884206D18848807820F0F0002030FB -:10186000854988708448007820F008000830824953 -:1018700008700846007820F00200801C08700020E4 -:10188000C1F8EC00C1F8F000C1F8F4004FF6FF70A9 -:10189000A1F8E6002020A16848700420A1688870A3 -:1018A0000020A168C8700420A081FEF731FDFEF77A -:1018B00043FD96E07048D0F8F800724988420FD096 -:1018C0006D48D0F8F800B0F5601F09D06A48D0F82C -:1018D000F800B0F1805F03D0312003F037FC7AE0EC -:1018E0006548D0F8F8006749884205D16248D0F8C9 -:1018F000FC00B0F5CC3F17D85F48D0F8F800B0F541 -:10190000601F05D15C48D0F8FC00B0F5002F0BD863 -:101910005948D0F8F800B0F1805F09D15648D0F8A6 -:10192000FC00B0F1806F03D9312003F00FFC52E0CE -:1019300051484078C0F3800018B9222003F006FC1B -:1019400049E04D48D0F8F8004E49884207D14A484E -:10195000807820F00F00401C474988701AE0464804 -:10196000D0F8F800B0F5601F07D14348807820F028 -:101970000F00801C404988700CE03F48D0F8F80008 -:10198000B0F1805F06D13C48807820F00F00801CC9 -:10199000394988703848007820F00200801C3649A8 -:1019A00008700020C1F8EC00C1F8F000C1F8F400A4 -:1019B0004FF6FF70A1F8E6002020A16848700420CF -:1019C000A16888700020A168C8700420A081FEF77B -:1019D0009FFCFEF7B1FC2848007820F0080026495B -:1019E000087002F089FF98B32348007820F00200C5 -:1019F000214908700846007820F040000870084629 -:101A0000007820F0800008700846407820F001003F -:101A100048700846807820F00F008870084680786B -:101A200020F0F00088700020C1F8F800C1F8FC0038 -:101A3000C1F8F4004FF6FF70A1F8E6000020C1F8ED -:101A4000EC00C1F8F000887500210B48C1750176E3 -:101A50000948007820F010000749087008464078CF -:101A600020F0100048700846407820F020004870B0 -:101A700003F030F8BDE8FC817015002000F0002074 -:101A800000D8BFFE00A000082DE9F04105460E4633 -:101A900000270F48854214D1B6F5CC3F11D803F08A -:101AA00009FE72B60B4800683321826808489047E7 -:101AB000074603F007FE62B60FB9002402E00124D6 -:101AC00000E0012414B90120BDE8F0810020FBE70B -:101AD00000A000082800002070B504464FF6FF76ED -:101AE0002579012D03D0132003F030FB86E0454813 -:101AF000007800F0010040B142484078C0F3800017 -:101B000018B9222003F022FB78E03E480078C0F3A9 -:101B1000400020B13B484078C0F3001018B92420A1 -:101B200003F014FB6AE03748007820F01000103012 -:101B3000344908700846407820F010004870084684 -:101B4000007820F0200008700846007820F002009D -:101B500008700846407820F0040048700846407835 -:101B600020F02000487000204871C1F8EC00C1F856 -:101B7000FC00C1F8F8000846007800F0010010B938 -:101B80000020C1F8F4001F480078C0F3C00018B16D -:101B90001C48B0F8E6602DE01A48807800F00F008D -:101BA000012808D117493722D1F8F4001649FFF768 -:101BB0003BFC06461EE01348807800F00F00022828 -:101BC00009D110493722D1F8F4004FF46011FFF722 -:101BD0002BFC06460EE00B48807800F00F00022830 -:101BE00008D108493722D1F8F4004FF08051FFF7AF -:101BF0001BFC0646FEF784FB0120A08102F06AFF71 -:101C000070BD00007015002000A000082DE9FC5FE9 -:101C100004464FF0000B2579206846782068C0788C -:101C20002168897800EB01201FFA80FA042D06DA7A -:101C3000132003F08BFA02F04DFFBDE8FC9F5046E5 -:101C4000BAF57F4F73D009DCA0F2022040B3A0F5B3 -:101C50005C40A0F5EF7000286AD107E06FF47F4187 -:101C60000844002877D00128F6D168E002F036FE5B -:101C7000032803D07F2003F069FA10E0052D03D07C -:101C8000132003F063FA0AE0012E03D0122003F0C0 -:101C90005DFA04E00020A16808710520A08169E1D7 -:101CA0002068007900062168497900EB014021682D -:101CB000897900EB01202168C97900EB0109082D21 -:101CC00003D0132003F042FA38E0012E03D0122093 -:101CD00003F03CFA32E0AA480078C0F3001018B9CB -:101CE000222003F033FA29E0312002F0DFFD4846DC -:101CF000FFF7C4F9E8B9A248807800F00F00012886 -:101D000002D19F49C87002E001209D4908719C489A -:101D1000007820F010009A4908700846007820F0FA -:101D20000100401C08700020A168087104E025E053 -:101D300012E10120A16808710520A0811AE102F0DA -:101D4000CDFD032808D002F0C9FD022804D07F2071 -:101D500003F0FCF911E0B7E0042D03D0132003F0E9 -:101D6000F5F90AE0012E03D0122003F0EFF904E0A8 -:101D70000020A16808710520A081FBE00D2D03D192 -:101D800020680079442803D0132003F0DFF99AE09B -:101D9000012E03D0122003F0D9F994E02068407995 -:101DA0008DF80400206880798DF805002068C079DE -:101DB0008DF806002068007A8DF807002068407AC8 -:101DC0008DF800002068807A8DF801002068C07AC4 -:101DD0008DF802002068007B8DF803009DF8040058 -:101DE00000069DF8051000EB01409DF8061000EB81 -:101DF00001209DF8071047189DF8000000069DF887 -:101E0000011000EB01409DF8021000EB01209DF84D -:101E1000031000EB01085B48874251D1B8F5CC3F75 -:101E200005D8574880780121B1EB101F18D05448CD -:101E3000007820F00200524908700846007820F02F -:101E4000080008700846407820F0400048700846B6 -:101E5000807820F0F0008870312003F077F932E0CC -:101E6000312002F023FD41463846FFF70DFE0128E0 -:101E700022D14348407820F00400001D40494870BA -:101E80000846407820F0400048700846407820F02E -:101E90000800487000F06AFA8B20FFF74BF9002029 -:101EA000A16808710520A0813548007820F0010064 -:101EB000401C3349087006E0722003F047F902E045 -:101EC000312003F043F955E0042D03D0132003F033 -:101ED0003DF940E0012E03D0122003F037F93AE03B -:101EE00027484078C0F3801018B9222003F02EF95B -:101EF00031E0FFF7EBF8012821D1FFF7F5F80128D1 -:101F00001DD11F480079012819D11D48C07801282A -:101F100015D1FFF739F92E20FFF70CF91848407852 -:101F200020F008000830164948700020A1680871A8 -:101F30000520A081002012490871C87002E022200B -:101F400003F004F900200E49C1F8F4000846807837 -:101F500020F00F0088700DE002F07CFB18B18020AB -:101F600003F032F905E0002003F02EF9312003F0F0 -:101F7000EDF800BF00BF02F0ADFD00BF5DE6000060 -:101F80007015002000A000082DE9FE43054602F070 -:101F9000ABFC07462879401CC6B2286890F801803F -:101FA000022E03DC132003F0D1F8CDE1B8F1010FCC -:101FB00009D0B8F1020F6CD0B8F1050F6FD0B8F1AD -:101FC000060F6DD13EE1012F03D17F2003F0BEF853 -:101FD0005EE0032E03D0132003F0B8F858E0DC488D -:101FE000007801280ED1A9684870002405E000217E -:101FF000A01CAA681154601CC4B2042CF7DB062094 -:10200000A88145E0D348007A012803D0D148807ADE -:10201000012803D1372003F099F839E00120A9689D -:102020004870CD480078012812D1CA48007B0328A7 -:102030000EDB362003F08AF80120C64988720020A2 -:102040008880C648007810B90120C44908707AE138 -:10205000C148007810B9C24802F0BEF8002406E07A -:10206000BF48015DA01CAA681154601CC4B2042CB6 -:10207000F6DB02ABBB4A0421B94802F025F8002088 -:10208000B449087208800120B34908700620A8816D -:1020900059E1012F05D17F2003F058F868E068E08E -:1020A00043E1072E03D0132003F050F860E0AA4864 -:1020B0000078012859D10020A7490870A548807AE6 -:1020C000012803D1362003F041F849E0002406E05E -:1020D000A01C2968085C0DF80400601CC4B2042C24 -:1020E000F6DB9DF800008DF804009DF801008DF8E6 -:1020F00005009DF802008DF806009DF803008DF89C -:102100000700042201A9974801F0CCFF90B10220FA -:10211000A9684870A881002003F01EF801208C49AE -:10212000087000208D4908708A49087302208E4982 -:10213000087015E0352003F009F88648007B401C44 -:10214000844908730846007B032809DB0120887254 -:10215000002088808148007810B901207F490870EC -:1021600000207C490880087202E0242002F0EEFF83 -:10217000E9E0012F03D17F2002F0E8FF61E0032EA8 -:1021800003D0132002F0E2FF5BE0714840780128A1 -:102190000FD10520A9684870002405E00021A01C8B -:1021A000AA681154601CC4B2042CF7DB0620A88175 -:1021B00047E06848407A012803D06648C07A012881 -:1021C00003D1372002F0C2FF3BE00520A968487028 -:1021D00061484078012812D15E48407B03280EDB1D -:1021E000362002F0B3FF01215A48C1720021C1809C -:1021F0005A48407810B9012058494870A3E0564821 -:10220000407810B9564801F0E7FF002406E0544832 -:10221000015DA01CAA681154601CC4B2042CF6DB3A -:1022200002AB504A04214E4801F092FF0021494878 -:1022300041720020474948800120474948700620E4 -:10224000A88180E0012F03D17F2002F07FFF6BE0A7 -:10225000072E03D0132002F079FF65E03E48407856 -:1022600001285ED100203C4948703A48C07A0128D4 -:1022700003D1362002F06AFF4CE0002406E0A01CE7 -:102280002968085C0DF80400601CC4B2042CF6DB5D -:102290009DF800008DF804009DF801008DF8050000 -:1022A0009DF802008DF806009DF803008DF80700E8 -:1022B000042201A92B4801F0F5FEA0B10620A9686F -:1022C00048700220A881002002F046FF012020492A -:1022D000487000202149487000211E4841730420A5 -:1022E0002149087016E0352002F030FF1948407B84 -:1022F000401CC1B217484173407B03280ADB01210F -:102300001448C1720021C1801448407810B90120DE -:102310001249487000200F49488000210D48417241 -:1023200002E0242002F012FF0DE002F093F918B150 -:10233000802002F049FF05E0002002F045FF122056 -:1023400002F004FF00BF00BF02F0C4FBBDE8FE8343 -:10235000C000002070260020BD0000208C0000205E -:10236000C7000020C3000020C20000204220044912 -:1023700008704F204870452088705220C870704700 -:102380008E0000202DE9F04705460024A246A14614 -:10239000A888801E86B228684778FD4890F8058096 -:1023A00008F1010000F0FF08012E02DA132002F00C -:1023B000CDFEB6F5806F03DD712002F0C7FEFCE1B3 -:1023C000F3480078C0F3800050B9F148D0F8F0002D -:1023D000B0F5406F04D8EE484078C0F3001070B1FB -:1023E000EB48407820F01000E949487008464078F2 -:1023F00020F040004870702002F0A8FEDDE1E448C3 -:102400000078C0F3801028B9E14800780121B1EBD1 -:10241000D01F03D1722002F099FECEE1DC48007893 -:10242000C0F3400018B9242002F090FEC5E1D8485E -:102430004078C0F3401028B9012F03D0732002F078 -:1024400085FEBAE1781C804502D10220A881B4E162 -:10245000B84503D0732002F079FEAEE1CC48007895 -:1024600000F0010040B1CA484078C0F3800018B9BC -:10247000222002F06BFEA0E1C548007820F0200089 -:102480002030C34908700846407820F020002030F2 -:10249000487008464771007800F0010000287CD0A1 -:1024A000002415E0A01C2968085CB949D1F8F01097 -:1024B000B84A5054B648D0F8F000401CB449C1F8AE -:1024C000F0000846D0F8F400401CC1F8F400641C89 -:1024D000B442E7D32868811C3046FDF735FFAC488D -:1024E000D0F8F400AA49D1F8FC10884277D3A84864 -:1024F000D0F8F000B0F5006F2DD3A5494FF400627D -:10250000D1F8F800A349FEF715FF40B9FEF7E0FF48 -:10251000722002F01BFE02F0DDFABDE8F0879C4855 -:10252000D0F8F80000F500609949C1F8F8000846B5 -:10253000D0F8F000A0F50060C1F8F000002405E03C -:1025400004F500609349085C0855641C9048D0F875 -:10255000F000A042F4D88E48D0F8F000F0B18C48DA -:10256000D0F8F09005E0FF208A4901F8090009F150 -:102570000109B9F5006FF6D385494FF40062D1F82F -:10258000F8008449FEF7D6FE40B9FEF7A1FF72209D -:1025900002F0DCFD02F09EFABFE7A5E000207C49D6 -:1025A000C1F8F0000846407820F001004870084665 -:1025B000007820F0040008700846007820F0200021 -:1025C00008700846407820F04000403048700846C7 -:1025D000407820F01000103048707EE0FFE76C4833 -:1025E000D0F8F000B0F5006F77D36948407820F05C -:1025F0000100401C664948700846007820F004003D -:10260000001D08704FF40062D1F8F8006149FEF730 -:1026100091FE38B9FEF75CFF722002F097FD02F0E0 -:1026200059FA7AE75A48007820F080005849087033 -:102630000846D0F8F80000F50060C1F8F800084638 -:10264000D0F8F000A0F50060C1F8F000002405E02B -:1026500004F500604F49085C0855641C4C48D0F8EC -:10266000F000A042F4D84A48D0F8EC00401C484999 -:10267000C1F8EC000846807800F00F00012805D171 -:102680000846D0F8EC00B0F5607F17D84048807855 -:1026900000F00F00022805D13D48D0F8EC00B0F55D -:1026A000607F0BD83A48807800F00F0002280ED1E6 -:1026B0003748D0F8EC00B0F5802F08D9FEF708FFB6 -:1026C000722002F043FD02F005FA26E705E03048EB -:1026D000007820F040002E4908702D48007820F046 -:1026E00004002B49087066E0B6F5805F58DA0024D4 -:1026F0000FE0A01C2968085C2549D1F8F010254A94 -:1027000050542348D0F8F000401C2149C1F8F00093 -:10271000641CB442EDD31E49D1F8F0001D49FEF708 -:10272000D7FD2868811C3046FDF70EFE1848D0F80A -:10273000F400194900EB010A154880780121B1EB3A -:10274000101F0BD10AEB06001449884206D210482C -:10275000104AD0F8F0105046FEF7F8FE0C48D0F8BA -:10276000F4000B49D1F8F01008440949C1F8F4000D -:102770000846D0F8F400D1F8FC10884217D304487A -:10278000407820F010001030014948700FE0000040 -:10279000701500207016002000F00020FFFF0020C0 -:1027A00000200B49C1F8F400312002F0CFFC0020DA -:1027B0000749C1F8F0000220A8810548007820F000 -:1027C00010000349087002F085F900BFA5E600007B -:1027D000701500202DE9F047054695F8048028681B -:1027E000407806022868807806432868C71C4FF0A6 -:1027F0000109B8F1030F03DC132002F0A7FC5CE031 -:10280000002447E02F4800EB04100088B0423FD17D -:102810002C4800EB0410407A072839D1294800EBF6 -:102820000410007AC01C404505D0132002F08EFC35 -:102830004FF0000930E039463046FEF763FC0128CE -:1028400005D1312002F082FC4FF0000924E0032082 -:10285000A8811C4800EB0410027A1A4800EB04100F -:1028600041683846FEF71FFE164800EB041000884A -:102870004FF28411884208D100F028F812484078BD -:1028800020F00200801C104948704FF0000903E05E -:10289000601CC4B2052CB5DB00BFB9F1010F0CD12F -:1028A00001F0D8FE18B1802002F08EFC05E0002077 -:1028B00002F08AFC312002F049FC02F00BF9BDE87D -:1028C000F0870000B8590008701500200146FF206D -:1028D00070472DE9F0410246002500260020002324 -:1028E0000024002791F803C00CF00F0591F803C0F5 -:1028F0000CF0100CBCF1000F03D091F802C04CEAB0 -:10290000050591F800C0BCF1000F31D0146800201B -:102910002BE04FF0010C0CFA00F3B1F800C00CEA08 -:1029200003069E4220D183004FF00F0C0CFA03F7F0 -:10293000BC4305FA03FC4CEA040491F803C0BCF163 -:10294000280F06D14FF0010C0CFA00FCC2F814C09D -:102950000AE091F803C0BCF1480F05D14FF0010C1B -:102960000CFA00FCC2F810C0401C0828D1D3146037 -:10297000B1F800C0BCF1FF0F34DD546800202EE038 -:1029800000F1080C4FF0010808FA0CF3B1F800C090 -:102990000CEA03069E4221D183004FF00F0C0CFA83 -:1029A00003F7BC4305FA03FC4CEA040491F803C0A6 -:1029B000BCF1280F05D100F1080C08FA0CF8C2F898 -:1029C000148091F803C0BCF1480F07D100F1080C46 -:1029D0004FF0010808FA0CF8C2F81080401C0828D3 -:1029E000CED35460BDE8F081F0B50A460023002440 -:1029F0000021002500F00046B6F1004F02D11D4E27 -:102A0000F16901E01B4E7168C0F3034583B200F425 -:102A10004016B6F5401F08D121F07061154E76685A -:102A200026F07066134F7E6012E000F48016B6F553 -:102A3000801F06D1032606FA05F4A14341F0706118 -:102A400006E0460D360103FA06F6B14341F0706127 -:102A500022B1460D360103FA06F6314300F0004676 -:102A6000B6F1004F02D1034EF16101E0014E7160F9 -:102A7000F0BD0000000001404161704701617047F6 -:102A80000148006870470000D800002000BFFEE742 -:102A9000704700002DE9F04F95B004468A469046F5 -:102AA0001E460025402105A8FDF797FB0020049055 -:102AB0000027012003904FF0000B194800EB441051 -:102AC00000680490164800EB44104779FF2E00D0B0 -:102AD0003746402F00D94027114800EB4410D0F86A -:102AE0001C90002505E019F8050005A94855681C4B -:102AF000C5B2BD42F7D305ABCDE90074514640469F -:102B0000049A00F029F88346BBF1000F02D101209E -:102B1000039001E000200390039815B0BDE8F08F0A -:102B20003858000810B50446012C06DA0020034985 -:102B300008552146012000F003F810BDFB000020DD -:102B4000012803D10122034B5A5402E00022014B19 -:102B50005A547047F40000202DE9F04F87B0064624 -:102B60008B4617469846DDE910954FF0000A012E76 -:102B700003DB012007B0BDE8F08F1F48C0F80490C8 -:102B800000201D4948721D4800EB4510007908706F -:102B90001A4800EB4510407C08B1012000E00020FD -:102BA00015498872154800EB4510807C08B101205A -:102BB00000E000201049087200208DF810000297F4 -:102BC000084600798DF8120000208DF811000024CD -:102BD00006E018F804100DF113000155601CC4B292 -:102BE0009DF81200A042F4DC0698009002A80FC8DD -:102BF000FEF7AAF85046BDE7982A0020385800088A -:102C00002DE9F04106460C46154600270848005DB0 -:102C100008B1012C02DB0020BDE8F0812B462246E2 -:102C200039463046FFF736FF80464046F4E700005D -:102C3000F400002010B54FF400600B49086002F06A -:102C40004BFD4FF480600849091F086002F044FD05 -:102C50004FF480600449086002F03EFD4FF40060CC -:102C60000149091F086010BD140C014010B54FF454 -:102C700000600949086002F02FFD4FF480600649AA -:102C8000086002F029FD4FF480600349091D0860C7 -:102C900002F022FD10BD0000100C014070B5054689 -:102CA0000024002618E06006040E4FF480600F49EF -:102CB000086002F011FD0D480838006800F400605B -:102CC00008B1601CC4B24FF480600849091D086057 -:102CD00002F002FD701CC6B2082EE4DB15B9FFF746 -:102CE000C5FF01E0FFF7A6FF204670BD100C0140B4 -:102CF00070B50446002524E004F0800020B14FF4B4 -:102D000000601149086004E04FF400600E49091D9D -:102D1000086002F0E1FC4FF480600B49086002F0AB -:102D2000DBFC4FF480600849091D0860072D02D1C3 -:102D30004000091F08606006040E02F0CDFC681C0C -:102D4000C5B2082DD8DB70BD100C014010B54FF492 -:102D500000600A4908604010086002F0BDFC4FF4B2 -:102D600000600649091D086002F0B6FC4FF480605F -:102D70000249091D086002F0AFFC10BD100C0140B3 -:102D800010B54FF40060074908604010091F086043 -:102D900002F0A2FC4FF400600249091F086002F033 -:102DA0009BFC10BD140C014010B54FF400600E499F -:102DB000086002F091FC4FF480600B49086002F05B -:102DC0008BFC09480838006800F4006008B1012451 -:102DD00000E000244FF480600349091D086002F000 -:102DE0007BFC204610BD0000100C014010B50446CD -:102DF0000548827A00212046FFF702FF012800D112 -:102E000010BD0020FCE700001C15002070B5054631 -:102E10000C46224600212846FFF7F2FE012800D189 -:102E200070BD0020FCE7000010B50446044800789F -:102E300010B900F0E1FD01E000F034FC10BD00002D -:102E40006600002010B500F04DFC00F01DFE10BD26 -:102E500010B50020044908710449C870FF200449D6 -:102E60000870FFF7EFFF10BD600000205A0000203F -:102E7000660000203EB57948006878498988084492 -:102E800001907748C078052806D0062834D0072856 -:102E900076D0082875D1A1E07048C088082817DBD3 -:102EA00000207049096808706C4880796D4909688C -:102EB00048706C480068801C00906848C088ADF875 -:102EC00008006649C988891C88B200F00DFD12E02F -:102ED0006248807963490968087062480068401C4C -:102EE00000905E48C088ADF808005C49C988491C5C -:102EF00088B200F0F9FCA8E05849C88800F0F4FC5A -:102F00005648C088B0F5805F3CDB10205549096801 -:102F10000870544800680078524909680870002019 -:102F20005049096848704D48C08800164D490968E5 -:102F3000887000204B490968C8704848C088000A5A -:102F400048490968087145488079464909684871C7 -:102F500044480068801D00904048807A801F80B2FD -:102F6000ADF808003D48807A801F3C4988800846BB -:102F7000408920F4706048810020394988702CE035 -:102F80002DE060E010203749096808703548006876 -:102F900000783249C988C1F30321084331490968DF -:102FA00008702E4880792F49096848702D480068BC -:102FB000801C00902948807A801E80B2ADF80800FD -:102FC0002648807A801E254988800846408920F45A -:102FD0007060488100202249887036E000BF2020C0 -:102FE0002049096808701F48006800781B49498912 -:102FF000C1F3032108431B49096808701948006898 -:10300000401C00901648C078082808D11348C08892 -:1030100012498988401A80B2ADF8080005E00F48CF -:10302000807A401E80B2ADF808000C488188807A12 -:10303000401E084409498880BDF80810491C88B220 -:1030400000F052FC01E001203EBD00BF06480168CF -:103050006846884704462046F6E700001C15002015 -:103060005A0000206C00002084000020002005E0B1 -:10307000AA21044A12681154411CC8B20828F7DB7F -:10308000704700006C00002070B5FE48867A082E5C -:1030900001D0002070BDFB48C07A00F0F00038B1CC -:1030A000102804D020287DD030287CD154E200BFE5 -:1030B000F548007998B1F4480079012801D1002041 -:1030C000E8E7F048C07A022826D1EE48007B3E2887 -:1030D00022D1EC48407B80281ED10020DAE7E94865 -:1030E000C07A022818D1E748007B3E2814D1E54871 -:1030F000407B802810D1E548008828B9E448008842 -:1031000010B9E448007938B10020E0490880012076 -:10311000E14908700020BDE700F0E4FA0220DA4936 -:1031200008710020DD498880D648C07A00F0F000A0 -:1031300000287DD010287CD1D2480088C0F30A0036 -:1031400040F2DF71884206D10120CF49087100F0BA -:1031500005FB00209EE7D248C078022807D0D0485F -:10316000C078032803D0CE48C078082806D10120B3 -:10317000C549087100F0F2FA00208BE7082E7AD1D9 -:10318000C048C07A00F00F004FF6FF7101EA00203E -:10319000C249C8800846C088BA49097B0843BF496C -:1031A000C88001E0DEE06AE20846C088072869DDE1 -:1031B00000204881B3480D3008600B46D988B14BD8 -:1031C0001B88C3F30A00B74B1A689047B3490860DD -:1031D0000846807A00F0030088B102280ED103204F -:1031E000A9490880072008710846808820F480706B -:1031F00000F58070888000F0BBFA42E000BFA7486D -:103200000068C8B39F48407BA449096808709D487E -:10321000807BA249096848709A48C07B9F49096829 -:1032200088709848007C9D490968C870954801E0FD -:1032300035E08FE0407C9949096808719148807CAD -:103240009649096848710620944988800846008993 -:1032500020F00F00401C088103208B4908800520C6 -:1032600008710846808820F4807000F5807088809E -:1032700000F07EFA04E00BE0FFE7002082490871CD -:1032800000BF0AE001208049087100F067FA04E0FD -:1032900001207D49087100F061FA0020FAE67948C2 -:1032A0000088C0F30A00804908807648C07A7B49CC -:1032B000C8800846C088401CB04244DC0846C0882C -:1032C00007283ADC0846C08880B3002048816D4852 -:1032D0000C3008600B46D9886A4B1B88C3F30A0080 -:1032E000704B1A6890476D49086008460068F0B155 -:1032F0000846807A00F00300C8B9002407E061485E -:103300000C30005D654909680855601CC4B263480B -:103310008079401EC0B2A042F1DA01205A490871FA -:103320005E4AD088614A1168884711E005E00120B3 -:103330005549087100F012FA0AE00120524908715B -:1033400000F00CFA04E001204F49087100F006FA81 -:1033500000209FE601204C49087100F0FFF900BFF2 -:1033600000BF8DE147480088C0F30A0040F2DF71DA -:10337000884206D101204449087100F0EFF900208D -:1033800088E641480079032803D03F4800790528A2 -:1033900076D13D48007905280FD13B488088C0F39D -:1033A000002040B942490878FFF772FB404908788D -:1033B000FFF73AFD01E000206CE638488088C01D28 -:1033C0003649C988884237DB3448C0883349898800 -:1033D000401A401CB0420EDC2A48C07A00F00F00B0 -:1033E0002E49097A01F00F01884205D001202649B3 -:1033F000087100F0B3F9ACE000240AE021480C3079 -:10340000005D26490968254A928811440855601CC8 -:10341000C4B2224881790079401C081AC0B2A04287 -:10342000ECDA012018490871002008801B4AD08876 -:103430001E4A116888478CE0082E0BD11148C07ACB -:1034400000F00F001549097A01F00F01884202D0FF -:1034500000F048F97DE00B48017B104800680F4AF6 -:10346000928881540748407B0C4909680B4A92882E -:10347000114448700348807B08490968074A19E0ED -:1034800069E00000802A0020600000205200002037 -:10349000540000204800002056000020281500207D -:1034A0005A0000207C0000205800002070000020FE -:1034B000680000209288114488707348C07B73496B -:1034C0000968724A92881144C8706F48017C6F483D -:1034D00000686E4A9288104401716B48407C6B49C9 -:1034E00009686A4A9288114448716748817C674834 -:1034F0000068664A92881044817164488088C01DC3 -:10350000624988800846007A401C098960F30301FB -:103510005E4801815E488078B0B15D488078401E89 -:103520005B4988700846807870B9052008710320CF -:1035300008800846808820F4807000F580708880BC -:1035400000F016F90020A5E50F205149088003205E -:10355000087100209EE593E04B480088C0F30A0004 -:103560004C49098888420ED047480088C0F30A00B9 -:1035700040F2DF71884206D101204549087100F010 -:10358000EDF8002086E54448C078022807D042487C -:10359000C078062803D04048C07807286ED13E483E -:1035A000007900F00100A0B93B48C078062807D098 -:1035B0003948C07807280ED13748807801280AD1C9 -:1035C00036490878FFF764FA34490878FFF72CFC8D -:1035D00001E000205EE53048C07802284CD1032E7F -:1035E0004ADB2948C07A302804D0312839D0322823 -:1035F0003ED13AE028480079C0F38000F8B9264867 -:10360000808820F00400001D234988801E48007B2C -:10361000234908721C48457B0A2D02DA01204872B2 -:1036200016E005F0800058B1F02D05DDF92D03DC22 -:1036300001201B4948720BE00E201949487207E02F -:1036400005F109000A2190FBF1F0401C1449487271 -:103650001348007A10498870012008800320C87040 -:1036600009E00F200C49088005E000F00DFA02E0A7 -:1036700000F00AFA00BF00BF00200BE500E000BF29 -:1036800000BF002006E50000802A00202815002049 -:1036900060000020580000205A0000206800002030 -:1036A0001C1500200D480079052802D007280DD1EF -:1036B00007E00F200949088003200871FF20C87027 -:1036C00005E0002005490880087100E0704700BF50 -:1036D000FF200349087000BFF8E7000060000020E9 -:1036E0006600002010B518480079012809DD164849 -:1036F0000079082805D00820134908711349086883 -:10370000804700201049088008710846808820F40E -:10371000807088800846808820F4007088800C487B -:10372000008920F00F000A490881002048810948DB -:103730000078802806D108490878FFF7A9F9FF200A -:103740000449087010BD00006000002074000020D3 -:1037500028150020660000206800002010B5FFF743 -:10376000C1FF10BD014A508170470000281500209C -:1037700070B538488088C0F34020D8B1354DA8884E -:10378000C0F34020002863D02846808820F40070D1 -:103790002946888030490878FFF728FB0446002C2A -:1037A00056D12846808820F4007000F50070294624 -:1037B00088804DE027488088C0F30020002847D04B -:1037C000244DA888C0F30020002841D02348007869 -:1037D000FF283DD18020214908702846808820F4A8 -:1037E00080702946888008201D498872002605E0DF -:1037F000AA201C4909688855701CC6B21848807AEE -:10380000B042F5DC13480079072804D1322015496D -:103810000968087003E03020124909680870002028 -:1038200010490968487001200E4909688870002015 -:103830000849887008490878FFF7D8FA04463CB967 -:103840000448808820F4007000F5007001498880E9 -:1038500070BD0000600000206800002066000020AD -:103860001C1500206C00002010B51E4800880028A0 -:1038700036D01C4C2088002832D020460088401EBC -:10388000214608800846008840BB08460079032886 -:1038900006D0052807D0062809D007281CD103E048 -:1038A000FFF720FF19E000BFFFF71CFF15E00D48F0 -:1038B000C07810B9FFF716FF0DE003200949088012 -:1038C000052008710846808820F4807000F580701B -:1038D0008880FFF74DFF00E000BF01E0FFF748FFE1 -:1038E00010BD0000600000200C4A12780C4B03EB66 -:1038F00042125179884202DB0A4A91720CE0C2B24C -:10390000094B9A5C094B9A5C064B9A721A46927A5A -:10391000082A01DA08229A72704700006800002025 -:10392000385800081C150020CC570008BC57000868 -:1039300010B5FFF799FF00F067F910BD10B5034609 -:1039400009B9012010BD1648C07808B10320F9E775 -:103950001448807A082801DD022200E00122114883 -:10396000807A801A80B2884203DB05200C4CE0701C -:1039700002E006200A4CE0700320094C2080094830 -:1039800003600020074CA0802046C1800448808846 -:1039900020F00100401C024CA0800020D2E7000073 -:1039A0005A0000201C15002011484089000A401CC4 -:1039B0000F49498960F30B210D4841818188807A44 -:1039C000401E80B208440A49C988884203DB0820A7 -:1039D0000849C87002E007200649C870032005495D -:1039E00008800846808820F00100401C88807047CD -:1039F0001C1500205A00002010B51F48C07805286B -:103A000006D006280ED0072817D008282CD100E0B1 -:103A100000BF1A4801680020884700201649088026 -:103A2000C87022E00F20144908800220C8700846A0 -:103A3000808820F00400888017E00F48807860B10B -:103A40000D488078401E0C4988700846807820B95F -:103A50000F2008800220C87007E00948407A064914 -:103A600008800320C87000E010BD00BFFF2005499A -:103A7000087000BFF8E700005A000020780000201E -:103A80001C1500206600002010B501241B48C078DA -:103A900001280EDD1948C07809280AD009201749E5 -:103AA000C870174908688047044614B900201349B4 -:103AB000C8700020114908800846808820F0010065 -:103AC00088800846808820F00200888054B1002059 -:103AD000C8700C4908720846408920F4706048811B -:103AE000082088720848007830B908490878FEF73D -:103AF000CFFFFF200449087010BD00005A000020CD -:103B0000800000201C1500206600002068000020B6 -:103B100070B539480079C0F34000D0B1364DA8885F -:103B2000C0F34000002866D02846808820F00200BC -:103B30002946888031490878FFF758F90446002C57 -:103B400059D12846808820F00200801C29468880B0 -:103B500051E02948007900F0010000284BD0264DA3 -:103B6000A88800F00100002845D025480078FF28EB -:103B700041D10020224908702846808820F00100A9 -:103B800029468880FFF772FAFFF774F906466EB986 -:103B90001A490878FFF72AF9044664BB284680884A -:103BA00020F00200801C2946888024E01248C0785A -:103BB000072807D01048C078082803D00E48C078DE -:103BC00006280ED10C48C078062803D100200D49E4 -:103BD000888006E00B488188807A401E081A0949CF -:103BE0008880FF20064908700348808820F0010083 -:103BF000401C0149888070BD5A00002068000020E8 -:103C0000660000201C15002010B51648008820B35F -:103C1000144C208808B320460088401E21460880A6 -:103C200008460088D0B90846C078801E072813D2FD -:103C3000DFE800F00407120C0D0E0F00FFF724FF61 -:103C40000BE0FFF7B1FEFFF763FF06E000BF00BF28 -:103C500000BFFFF719FF00E000BF01E0FFF758FFCA -:103C600010BD00005A00002008B5074840680090C9 -:103C700006490098086004490868FCF77CFA034884 -:103C80000068804708BD000000A00008E800002090 -:103C900008B501211C2000F02FF94FF40070ADF899 -:103CA000000010208DF8030003208DF80200694603 -:103CB0005348FEF70EFE4FF400715148FEF7DEFE4A -:103CC0000120ADF8000010208DF8030003208DF8CE -:103CD000020069464A48FEF7FCFD01214848FEF70C -:103CE000CDFE40F20240ADF8000010208DF8030038 -:103CF00003208DF8020069464148FEF7EAFD0221E3 -:103D00003F48FEF7BBFE4FF480613D48FEF7B4FE2E -:103D1000A020ADF8000010208DF8030003208DF8DE -:103D2000020069463748FEF7D4FD20213548FEF7EA -:103D3000A3FE80213348FEF7A1FE44F22720ADF810 -:103D4000000010208DF8030003208DF80200694662 -:103D50002D48FEF7BEFD4FF400712B48FEF78EFE96 -:103D600001212948FEF788FE02212748FEF784FE3C -:103D700004212548FEF780FE4FF480412248FEF7DB -:103D80007BFE20212048FEF777FE4FF48070ADF8CF -:103D9000000048208DF8030069461948FEF799FD98 -:103DA0004FF40070ADF8000048208DF8030069461C -:103DB0001448FEF78EFD0121084600F09DF8012110 -:103DC0001248FEF711FE1020ADF8000001208DF81A -:103DD000020010208DF8030069460B48FEF779FDBC -:103DE00010210948FEF74AFE4FF40050ADF80000DC -:103DF00004208DF8030069460248FEF76AFD08BDFD -:103E00000008014000100140000C0140000130009A -:103E100000BFFEE7704710B54FF4A06000F03AF81D -:103E200010BD000070B5002100230F22C47804B338 -:103E3000154C246804F4E064C4F5E064210AC1F17F -:103E40000403CA40447804FA03F1847814402143FF -:103E500009010E4C0678A155047804F01F050124D1 -:103E6000AC4005786D11AD0005F1E025C5F80041C5 -:103E700009E0047804F01F050124AC40044D0678E5 -:103E8000761145F8264070BD0CED00E000E400E03E -:103E900080E100E002490143024A116070470000DE -:103EA0000000FA050CED00E00149086270470000CF -:103EB00000000E427047000029B1064AD269024351 -:103EC000044BDA6104E0034AD2698243014BDA61B0 -:103ED000704700000010024029B1064A12690243EF -:103EE000044B1A6104E0034A12698243014B1A61D0 -:103EF000704700000010024029B1064A926902434F -:103F0000044B9A6104E0034A92698243014B9A612F -:103F100070470000001002402DE9F041002100220E -:103F2000002500230026002400278C46DFF860814E -:103F3000D8F8048008F00C0121B1042907D0082921 -:103F400059D109E0DFF84C81C0F8008058E0DFF873 -:103F50004481C0F8008053E0DFF83481D8F8048051 -:103F600008F47012DFF82881D8F8048008F480354E -:103F7000920C0D2A01D0921C00E0062235B9DFF820 -:103F8000188102FB08F8C0F8008033E0DFF80081F8 -:103F9000D8F82C8008F48036DFF8F480D8F82C802C -:103FA00008F00F0808F1010446B9DFF8E880B8FB13 -:103FB000F4F808FB02F8C0F800801BE0DFF8D080BE -:103FC000D8F82C80C8F3031808F10107DFF8C08087 -:103FD000D8F82C80C8F3032808F1020CDFF8B4806D -:103FE000B8FBF7F808FB0CF8B8FBF4F808FB02F88C -:103FF000C0F8008004E0DFF89C80C0F8008000BFBB -:1040000000BFDFF88C80D8F8048008F0F0010909BF -:10401000DFF8888018F80130D0F8008028FA03F81B -:10402000C0F80480DFF86880D8F8048008F4E06104 -:10403000090ADFF8688018F80130D0F8048028FAFF -:1040400003F8C0F80880DFF84880D8F8048008F446 -:104050006051C90ADFF8448018F80130D0F80480B4 -:1040600028FA03F8C0F80C80DFF82480D8F8048020 -:1040700008F44041890BDFF8288018F80130D0F8A7 -:104080000C80B8FBF3F8C0F81080BDE8F0810000A8 -:104090000010024000127A0000093D0000000020DC -:1040A0001000002070B503460C460120002107E0F7 -:1040B000655C5E5CB54201D0002003E04D1CE9B2B6 -:1040C0009142F5DB00BF70BD78B50C46057845B967 -:1040D000457835B9857825B9C57815B900251D709D -:1040E00078BD002107E0455C184E765C75400DF800 -:1040F00001504D1CE9B20429F5DB9DF8015005F093 -:10410000F0059DF8006006F00F0645EA06151570EB -:104110009DF801502D072D0E9DF8026045EA1615F9 -:1041200055709DF8025005F0F0059DF8036045EAD2 -:10413000161595709DF8035005F00F069DF8005078 -:1041400066F31F15D5701C7000BFC9E71C5A000824 -:1041500078B50C46057845B9457835B9857825B9DF -:10416000C57815B900251D7078BD002107E0455CB4 -:10417000184E765C75400DF801504D1CE9B20429CB -:10418000F5DB9DF8005005F00F069DF8015066F331 -:104190001F1515709DF801502D099DF8026006F05D -:1041A0000F0645EA061555709DF8035005F0F00519 -:1041B0009DF8026045EA161595709DF8035005F0CC -:1041C0000F059DF8006045EA1615D5701C7000BFFC -:1041D000CAE700001C5A00082DE9F0410446FCF72C -:1041E0004FFE0546134800782844C5B2002612E069 -:1041F000691C42F2BB02514343F2390202EB410017 -:10420000C11700EB11610912A0EB0127FDB204F800 -:10421000015B701CC6B2042EEADB06480078401C25 -:104220000449087008460078642801D1002008700D -:10423000BDE8F081E4000020704710B500F002F8FE -:1042400010BD00000CB500200190009040480068AF -:1042500040F480303E49086000BF3D48006800F4EB -:10426000003000900198401C0190009820B94FF652 -:10427000FF7101988842F0D13548006800F40030A1 -:1042800010B10120009001E000200090009801286A -:104290005CD13048006840F010002E4908600846A4 -:1042A000006820F0030008600846006840F0020043 -:1042B00008602748406826494860084640684860CA -:1042C0000846406840F4806048600846C06A224959 -:1042D00008401F49C8620846C06A204908431C4973 -:1042E000C8620846006840F08060086000BF184857 -:1042F000006800F000600028F9D01548406820F4FC -:104300007C10134948600846406840F4E810486053 -:104310000846006840F08070086000BF0C480068E4 -:1043200000F000700028F9D00948406820F0030030 -:10433000074948600846406840F00200486000BFF6 -:104340000348406800F00C000828F9D10CBD0000BB -:10435000001002400020024000F0FEFF140801009F -:104360000F480068401C0E4908600E480068401C59 -:104370000C4908600A4800684FF47A71B0FBF1F20A -:1043800001FB1200012804D107480068401C0649BF -:1043900008600648007810B9012004490870704789 -:1043A000340000202C0000203800002030000020C5 -:1043B00030B5164800684FF47A72B0FBF2F1B1F1F3 -:1043C000807F01D301201DE021F07F40401E4FF08F -:1043D000E022506150170F22002807DA13071D0E44 -:1043E0000B4B00F00F04241F1D5503E013071C0E98 -:1043F000084B1C5400BF00204FF0E02290610720C2 -:104400001061002008B100BFFEE730BD140000209D -:1044100018ED00E000E400E010B5FFF725FC10BD4A -:1044200010B51648006840F00100144908600846BD -:10443000406813490840114948600846006811491E -:1044400008400E4908600846006820F48020086093 -:104450000846406820F4FE0048600846006820F0E6 -:10446000A05008604FF47F0088600020C862FFF70A -:10447000E4FE4FF000600449086010BD00100240E7 -:104480000000FFF0FFFFF6FE08ED00E010B50A485F -:104490000078401C084908700846007803280ADBA9 -:1044A00000200870002401E0601CC4B2012CFBDB7A -:1044B00072B6FFF7B1FF10BDEC00002002460023EA -:1044C00021B90D4800681060012070470A48036850 -:1044D0001068984205D81068181A884209D301203C -:1044E000F3E71068C0F1FF301844884201D301207F -:1044F000EBE70020E9E70000340000204F48007897 -:1045000001280AD14E484089401C4D49488101206C -:10451000087000204949087000E070474848408909 -:10452000052190FBF1F201FB120030B944484089AB -:1045300018B101204249487000E0EEE74048408948 -:104540000A2190FBF1F201FB120028B93C48408996 -:1045500010B101203A49887039484089142190FBF4 -:10456000F1F201FB120028B93548408910B1012051 -:104570003349C87032484089322190FBF1F201FB87 -:10458000120028B92E48408910B101202C49087129 -:104590002B484089642190FBF1F201FB120028B9FD -:1045A0002748408910B10120254948712448408995 -:1045B0004FF4FA7190FBF1F201FB120028B9204888 -:1045C000408910B101201E4988711D4840894FF46F -:1045D0007A7190FBF1F201FB120028B9184840896A -:1045E00010B101201649C8711548408940F2DC51CC -:1045F00090FBF1F201FB120028B91148408910B17B -:1046000001200F4908720E4840894FF4FA6190FB6F -:10461000F1F201FB120028B90948408910B10120CC -:10462000074948720648408941F27071884202DBAE -:1046300000200349488100BF6FE7000030000020E0 -:104640000C01002000200249087048804860704733 -:104650003C00002003484078022801D10120704727 -:104660000020FCE75801002010B504462046FCF766 -:10467000A3FD10BD70B53848007900F04000B8B116 -:104680003548007920F0400033490871012408467C -:10469000407900B104243148007818B124F00104B5 -:1046A00044F0020404F0010010B1002000F05AFDB3 -:1046B0002948007902281AD104202749087128487E -:1046C00080680078274948700020244908702448F1 -:1046D0008089C82802DA2248858900E0C825EAB224 -:1046E0001F4B19699868FCF7DEFE00F049FA1A487A -:1046F000007900F0100068B300201B4908801748BB -:10470000007878280AD11948007838B11348007821 -:10471000782814D115484088012810D120200E494E -:1047200008710E48007808B9012000E002200C4909 -:1047300088700F490A480161083000F0ADFE074853 -:104740000078782806D109480078012802D1022093 -:104750000149087170BD0000480000205000002091 -:104760005801002070010020520000203C00002071 -:104770003D0B002010B504462046FCF776FD10BD29 -:1047800070B5044601252289D4E9000100F003F840 -:104790000025284670BD03E0531E9AB28B5C8354FB -:1047A000002AF9D1704700002DE9F041044638484D -:1047B000007800F07F072068457825F0800594F8A0 -:1047C0000480B8F1010F03D1132000F0BFFC5BE0BF -:1047D000012D04D0022D04D0032D44D100E000BFF0 -:1047E00000BFB8F1020F05D0132000F0AFFC00F0BD -:1047F000B9F948E0012F01D1022D03D0022F07D1D2 -:10480000032D05D17E2000F0A1FC00F0ABF93AE0C9 -:10481000032F04D1022D02D101201D49087100206F -:1048200000F0A0FC002606E000201A4988551A492D -:104830008855701CC6B2022EF6DBFCF719FC062068 -:10484000A0810020A16888703220A168C870012072 -:10485000A1680871F420A1684871032D02D10120DC -:10486000FCF776FB0FE0FFF7F5FE20B180200B4947 -:104870000968C87006E0002008490968C87012205D -:1048800000F064FC00BF00BF00F024F9BDE8F08137 -:1048900058010020BD000020C0000020480000207A -:1048A00010B504462046FCF779FD10BD10B504464E -:1048B0000320094908707F204870084684707820DA -:1048C000C870AA20087148718871C8710821002039 -:1048D000FEF79CFA10BD0000180100200148007886 -:1048E00070470000580100200248007800F07F0067 -:1048F0007047000058010020014800787047000010 -:10490000500000200A4A127902F0FE02084B1A7188 -:1049100049B91A461268824205D11A46127942F004 -:1049200002021A7170470122024B1A7000BFF9E7A8 -:10493000480000205600002070B504460D46A078BF -:10494000012804D0022803D0032806D104E000BFC8 -:10495000284600F057F801E000E000BF00BF00204B -:10496000A07070BD01460120044A127942F0010294 -:10497000024B1A711A46116000207047480000204F -:104980002DE9F04104460D46002740F6C41085424B -:1049900003DD0220FEF7E6FE16E040F2DF708442FF -:1049A00003D102200A49487006E040F20B708442AD -:1049B00002D101200649487005488581FFF7D2FFE2 -:1049C00006460EB9024887683846BDE8F081000007 -:1049D0005801002010B5044600210448FFF792FF5B -:1049E000FEF7BCFE05200249088010BD58010020DA -:1049F0005200002010B503210148FFF783FF10BDCE -:104A0000580100200021054A1180054948714021C4 -:104A1000034A11710121034A1170704752000020AE -:104A2000480000205600002010B500201E49887064 -:104A300001200870087148710020C8701B48886008 -:104A40001B491948016100201A49487108717F20EB -:104A50001949087078208870002018490870184992 -:104A60000870FFF7EFFD1748007820F02000154987 -:104A7000087000240EE0002113480155801E0155E6 -:104A8000001F20F8141000200F490A3921F81400E3 -:104A9000601CC4B2022CEEDBFCF7EAFA00200B49E2 -:104AA00008800B49088010BD5801002079010020C2 -:104AB0003D0B002048000020700100205000002025 -:104AC00056000020BB0000207A2600205400002061 -:104AD0005200002010B517480079042822D116484A -:104AE0000269846823781548007848B17F201070E7 -:104AF000537012480078907003210F48818208E0BB -:104B00000C480068C078802803D003F14000107082 -:104B1000521C0A480078782801D0FFF793FD08203E -:104B2000044908710348007940F0100001490871F8 -:104B300010BD000048000020580100205000002057 -:104B400010B504462046FCF70BFD10BD10B5044619 -:104B50002046FCF7F1FD10BD10B504462046FCF7D9 -:104B6000BBFF10BD002002490968C87070470000F3 -:104B70004800002010B504462046FDF747F810BD58 -:104B80002DE9F05F4FF00008F8488468067B207834 -:104B9000F749085C00EB4000F64901EB80004578DE -:104BA0002078F349085C00EB4000F24901EB8000FB -:104BB00090F804902078EE49085C00EB4000ED4945 -:104BC00001EB800090F805A0FFF78EFE074694F8F1 -:104BD00000B02078862800DBC346E7480078C0F3A1 -:104BE000401058B1E1484078022807D18020E349BD -:104BF0000968C870FFF76EFFBDE8F09FDC4810F849 -:104C00000B00FF2874D0012F04D0022F71D0032F86 -:104C100070D14DE0D5484078022848D12078272827 -:104C20000ED020782E280BD020782F2808D020787E -:104C3000312805D02078342802D02078372809D1AF -:104C40007F20CF4908708020CC490968C870FFF7E1 -:104C500041FFD1E7607800F0800040B32078C4497C -:104C6000085C00EB4000C34901EB8000C078F0B164 -:104C70002078192802D02078282804D18020BF4924 -:104C80000968C87013E02078B949085C00EB40005F -:104C9000B84911F82000B04205D01320B849087077 -:104CA000FFF718FFA8E78020B4490968C8709FE0A3 -:104CB000AE48407802284BD1207827280ED02078A3 -:104CC0002E280BD020782F2808D02078312805D026 -:104CD0002078342802D0207837280CD17F20A849AA -:104CE00008708020A5490968C870FFF7F3FE83E7C4 -:104CF000C8E12EE07BE0607800F0800040B32078CF -:104D00009B49085C00EB40009A4901EB8000C078A9 -:104D1000F0B12078192802D02078282804D18020EA -:104D200096490968C87013E020789149085C00EB47 -:104D30004000904911F82000B04205D0132090495E -:104D40000870FFF7C7FE57E780208C490968C870D4 -:104D50004EE086484078022848D1207827280ED097 -:104D600020782E280BD020782F2808D020783128C2 -:104D700005D02078342802D02078372809D17F2028 -:104D80007F49087080207D490968C870FFF7A2FE3E -:104D900032E7607800F0800040B320787449085C06 -:104DA00000EB4000734901EB8000C078F0B120783F -:104DB000192802D02078282804D180206F4909685A -:104DC000C87013E020786A49085C00EB400069492C -:104DD00011F82000B04205D0132069490870FFF790 -:104DE00079FE09E7802065490968C87000E000BFC6 -:104DF00000BF20785E49085C00EB40005D4901EB94 -:104E00008000C078002875D0607800F0800000280D -:104E100071D0012E6FDD207828285AD004DC1028AC -:104E200007D0112868D105E03E287CD08528F9D12B -:104E3000D4E000BF607881280ED0607883280BD042 -:104E40006078822802D12078112805D060788228E5 -:104E50002DD1207810282AD1022E03D013204849C2 -:104E6000087035E0FFF740FD012816D1062D01D06E -:104E7000042D09D1002042490870607800F08000BC -:104E80003E490968C87023E0B8F1000F20D14FF007 -:104E900001087E203A4908701AE00020384908705D -:104EA000607800F0800035490968C87010E02F482C -:104EB0004078022806D1802030490968C870FFF781 -:104EC00009FE99E6607800F080002C490968C870F6 -:104ED000CDE0032E11D02548407802280DD123487B -:104EE0004078022841D1802024490968C870FFF722 -:104EF000F1FD81E6C1E0BBE0B2E06078802802D03D -:104F00006078832823D1FFF7EFFC012815D1052D08 -:104F10000AD100201A490870607800F08000174913 -:104F20000968C87021E02DE0B8F1000F1DD14FF0E5 -:104F300001087E201249087017E00020104908700F -:104F4000607800F080000D490968C8700DE00748DE -:104F50004078022806D1802008490968C870FFF708 -:104F6000B9FD49E612200649087080E0580100208A -:104F7000305900089458000870150020480000209F -:104F8000500000206078802819D1FFF7ADFC01287F -:104F90000BD1042D21D1002060490870607800F009 -:104FA00080005F490968C87017E000205B490870FD -:104FB000607800F080005A490968C8700DE05948CF -:104FC0004078022806D1802055490968C870FFF74B -:104FD00081FD11E612205149087048E0022E07D0E9 -:104FE00050484078022803D113204C49087036E01D -:104FF0006078812802D06078822822D1FFF774FC83 -:10500000012814D1032D09D100204449087060788B -:1050100000F0800042490968C87020E0B8F1000F34 -:105020001DD14FF001087E203C49087017E0002098 -:105030003A490870607800F0800039490968C87002 -:105040000DE038484078022806D1802034490968AC -:10505000C870FFF73FFDCFE512203049087006E029 -:10506000607800F080002E490968C87000BF17E022 -:1050700000202B490968C87012E0002028490968FF -:10508000C8700DE011202549087026484078022894 -:1050900006D1802022490968C870FFF71BFDABE5E7 -:1050A0001E48007888BB022D01D1022F07D1032DA5 -:1050B00001D1032F03D1052D07D1012F05D17F2069 -:1050C00016490870FFF706FD26E01648007900EA49 -:1050D000090020B91348407900EA0A0028B13320BA -:1050E0000E490870FFF7F6FC16E005200E4908800F -:1050F00020780E4A105C00EB40000D4A02EB800065 -:10510000816808480830884706E0FFE70020044926 -:105110000968C870FFF7DEFC00BF6DE55000002095 -:10512000480000205801002052000020305900089B -:105130009458000810B504462046FCF725FF10BD22 -:10514000014948717047000058010020014908706A -:1051500070470000500000200149087170470000AE -:105160005801002070B5044612488068057811483F -:105170008068407800F07F06012C03D1012000F008 -:1051800047F904E0102D02D1304600F041F9FFF755 -:10519000ABFB01280CD10020FBF7DAFEFBF778FF10 -:1051A000012805D1FBF7A6FE10B90A2002490870B4 -:1051B00070BD000058010020440000200149087122 -:1051C000704700005801002001490968C870704705 -:1051D0004800002010B50348007908B1FFF74AFAEB -:1051E00010BD00004800002010B5FBF711FFFFF7CD -:1051F0004DF910BD10B500F02BF810BD70B5044688 -:105200002068457825F080052679012E03D11320EA -:10521000FFF79CFF19E06DB9022E05D01320FFF7B0 -:1052200095FFFFF79FFC10E00020A1684870022066 -:10523000A0810AE01220FFF789FFFFF793FCFFF738 -:1052400009FA10B18020FFF7BFFFFFF743FC70BDE4 -:1052500010B56548008818B364480078012806D165 -:105260000020624908704FF4FA705F490880604876 -:105270000079A8B95C480088401E5B490880084650 -:10528000008868B9002008800120FFF76BFF002428 -:1052900004E0002057490855601CC4B2022CF8DB1A -:1052A0005348007900F00C00C0B153480088A8B101 -:1052B00051480088401E504908800846008868B957 -:1052C0004B480068807830B90320494909688870E4 -:1052D00000F0CEF802E0012047490880002455E0A4 -:1052E000464830F81400B0F57A7F06DB4348001DCD -:1052F00030F81400B0F57A7F46DA4048001D30F8E7 -:105300001400401C81B23D48001D20F81410001FFD -:1053100030F81400401C394921F8140001F108004C -:10532000005D012810D1084630F81400B0F57A7FEE -:105330002ADB002021F814000021304808300155F4 -:1053400000202F4908551FE02C480A30005D012835 -:105350001AD12A48001D30F81400B0F57A7F13DB0B -:105360000020274908550021244808300155001F16 -:1053700020F81410801D0155801C005D032803DBFC -:1053800002211E480C300155601CC4B2022CA7DB60 -:105390001C480078002809DD1A480078401E194989 -:1053A00008700846007808B9FAF794FF16480078A4 -:1053B000002809DD14480078401E1349087008468B -:1053C000007808B9FAF786FF10480078002809DD50 -:1053D0000E480078401E0D4908700846007808B94C -:1053E000FAF778FF10BD000054000020560000209E -:1053F00048000020C000002052000020702600203D -:10540000BD00002044000020450000204600002090 -:1054100010B50446FFF768FA01280AD1FFF7CEFE5F -:1054200004F07F00012810D04FF4FA700B49088077 -:105430000BE004F07F00012807D1FFF7BFFE012039 -:10544000FFF77EFE0020054908800548047004F03F -:105450007F00012801D1FBF7AFFC10BD54000020F4 -:105460005801002010B504462046FCF78BFF10BD04 -:1054700010B506490648016103218182083000F019 -:105480000BF84FF4FA700349088010BD700100203A -:10549000580100205200002070B5044608480068FA -:1054A000C078802805D0A189A068FEF747FA054694 -:1054B00002E00025FFF756FB284600F003F870BD18 -:1054C0004800002070B504460CB1032000E0002025 -:1054D000054629460148FFF72FFA70BD5801002004 -:1054E00010B50320FFF7EEFF002010BD10B50446F5 -:1054F0002046FDF76FF910BD00BFFEE7002114E064 -:10550000084608220BE00B4B1B68034023B10A4BF3 -:105510001B6883EA500000E04008531EDAB2002AFC -:10552000F1DC064B43F82100491C054B1B689942EE -:10553000E6D37047DC000020E00000208026002039 -:10554000D000002002E008C8121F08C1002AFAD1CA -:1055500070477047002001E001C1121F002AFBD1F3 -:105560007047000008B501210820FEF7C5FC0320A4 -:105570008DF8020014208DF803004FF48060ADF820 -:10558000000069460D48FDF7A4F903208DF80200DC -:105590004FF40060ADF8000014208DF80300694658 -:1055A0000648FDF796F94FF480610448FDF766FA66 -:1055B0004FF400610148FDF761FA08BD000C01409D -:1055C000022800DB70470121024A02F8301000BFB8 -:1055D000F8E70000FC000020022803DA074911F870 -:1055E000301001B970470121044A02F8301000213F -:1055F00002EBC002517000BFF4E70000FC00002085 -:105600000146022908DA064810F8310020B10448A2 -:1056100010F83100032801D1002070470120FCE779 -:10562000FC00002010B5FFF79DFF10BD2DE9F041F3 -:1056300007460C461646FDF789FBA020FDF758FBF0 -:10564000FDF7B2FB00B130E0A046E11704EB1161B9 -:10565000C1F30720FDF74CFBFDF7A6FB00B124E0EA -:10566000E0B2FDF745FBFDF79FFB00B11DE0FDF744 -:105670006DFBA120FDF73CFBFDF796FB00B114E0AC -:1056800000250BE0711EA94201D0012100E000219C -:105690000846FDF703FB7855681C85B2B542F1DB7F -:1056A000FDF76EFB0120BDE8F081FDF769FB0020EE -:1056B000F9E70000014802490860704700F0002047 -:1056C0002800002003480068006810B1002001494C -:1056D0000860704728000020002001E0411C88B2CB -:1056E0003C28FBDB7047000086B0FEF799FEFAF716 -:1056F000E7FDFEF75DFE01A8FEF70EFCFEF78BFB53 -:10570000FEF7C6FAFFF78EFFFBF7C0FBFAF736FE8F -:105710004FF400712548FDF7AFF9FBF7B7FBFBF736 -:10572000C1FE41E0FEF7EAFE21480078012805D1DC -:1057300000201F49087000F03DF835E01C48407813 -:10574000012803D100201A4948702DE018488078BC -:10575000012805D1002016498870FFF745FD23E098 -:105760001348C078012803D100201149C8701BE0FC -:105770000F480079012803D100200D49087113E07A -:105780000B484079012803D10020094948710BE0FA -:105790000748C079012807D100200549C8714FF496 -:1057A00000710248FDF768F9BCE70000000C0140F9 -:1057B0000C01002010B5FBF7DDFB10BD000102035A -:1057C00004050607080C10141820304000010203DD -:1057D0000405060708090909090A0A0A0A0B0B0B3E -:1057E0000B0C0C0C0C0D0D0D0D0D0D0D0D0E0E0EEC -:1057F0000E0E0E0E0E0E0E0E0E0E0E0E0E0F0F0FC6 -:105800000F0F0F0F0F0F0F0F0F0F0F0F0F39323139 -:10581000343830312D4446303200000000000000A2 -:105820000056480012566E00000056480012566E90 -:1058300000000001170B10001B0700000008040007 -:105840000000020000000000000000000000000056 -:10585000292E0008180100200B070000FF07000098 -:1058600000000800DF070000FF070000000008003C -:105870002D010000FF0700000000080000000000EC -:105880000000000000000000000000000000000018 -:10589000000000000206031000000000A9470008F5 -:1058A0000206031000000000A148000803060300E0 -:1058B00000000000414B0008060501000000000048 -:1058C000355100080303031000000000694600087A -:1058D0001402010001000000ED540008060501005B -:1058E00000000000754B00080B02010001000000E1 -:1058F0004D4B0008FF020100010000006554000844 -:105900000102010001000000594B000802060310CB -:1059100000000000FD510008020303100000000019 -:1059200075470008000000000000000000000000B3 -:10593000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 -:105940000001FFFFFFFFFFFFFFFFFFFFFFFFFFFF64 -:10595000FFFF02FFFFFFFF0304FFFFFFFFFF05FF45 -:10596000FF06FFFF07FF0809FFFFFFFFFFFF0AFF1A -:10597000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 -:10598000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 -:10599000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 -:1059A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 -:1059B000FFFFFFFFFF0B000094F100003D150020EA -:1059C00009010000FFFF000095F10000B500002074 -:1059D00006010000FFFF000093F10000B00000206E -:1059E00005010000FFFF00008CF1000046150020BB -:1059F00013010000FFFF000080F1000034150020BB -:105A000009010000FFFF0000DD160008FD16000878 -:105A1000BD16000815170008191700083E53E17B52 -:105A2000405A000800000020FC0000004455000817 -:105A30003C5B0008FC000020AC310000545500081D -:105A40000000000001020304010203040607080924 -:105A50000204060800A24A04000000000000000042 -:105A6000010203040607080900000000000000000E -:105A70000000000000000000000000000000000026 -:105A80000000000000000000000000000000000016 -:105A90000000000000000000000000000000000006 -:105AA00000000000000000000000000018010020BD -:105AB000D5490008F5490008C55400088149000887 -:105AC000E1540008814700080000000000000000C9 -:105AD00000000000000000000000000000000000C6 -:105AE00000000000000000000000000000000000B6 -:105AF00000000000000000000000000000000000A6 -:105B00000000000000000000000000000000000095 -:105B1000000100000800000000000000000000007C -:105B20000000000000000000000000000000000075 -:0C5B300000000000000000000000000069 -:04000005080001519D -:00000001FF diff --git a/boot_project/Objects/boot.htm b/boot_project/Objects/boot.htm deleted file mode 100644 index 062cea8..0000000 --- a/boot_project/Objects/boot.htm +++ /dev/null @@ -1,1916 +0,0 @@ - - -Static Call Graph - [.\Objects\boot.axf] -
    -

    Static Call Graph for image .\Objects\boot.axf


    -

    #<CALLGRAPH># ARM Linker, 5060750: Last Updated: Tue Nov 05 09:42:11 2024 -

    -

    Maximum Stack Usage = 384 bytes + Unknown(Cycles, Untraceable Function Pointers)

    -Call chain for Maximum Stack Depth:

    -CAN2_RX1_IRQHandler ⇒ APP_CAN_FifoMessageReceive ⇒ APP_CAN_MessageTypeHandle ⇒ ISO15765_Precopy ⇒ ISO15765_RxStateTask ⇒ ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -

    -

    -Mutually Recursive functions -

  • ADC1_2_IRQHandler   ⇒   ADC1_2_IRQHandler
    - -

    -

    -Function Pointers -

      -
    • ADC1_2_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • BusFault_Handler from stm32f10x_it.o(i.BusFault_Handler) referenced from startup_stm32f10x_cl.o(RESET) -
    • CAN1_RX0_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • CAN1_RX1_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • CAN1_SCE_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • CAN1_TX_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • CAN2_RX0_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • CAN2_RX1_IRQHandler from can2.o(i.CAN2_RX1_IRQHandler) referenced from startup_stm32f10x_cl.o(RESET) -
    • CAN2_SCE_IRQHandler from can2.o(i.CAN2_SCE_IRQHandler) referenced from startup_stm32f10x_cl.o(RESET) -
    • CAN2_TX_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • DMA1_Channel1_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • DMA1_Channel2_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • DMA1_Channel3_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • DMA1_Channel4_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • DMA1_Channel5_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • DMA1_Channel6_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • DMA1_Channel7_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • DMA2_Channel1_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • DMA2_Channel2_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • DMA2_Channel3_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • DMA2_Channel4_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • DMA2_Channel5_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • DebugMon_Handler from stm32f10x_it.o(i.DebugMon_Handler) referenced from startup_stm32f10x_cl.o(RESET) -
    • Diag_Read_ECUSoftwareCode_F193 from diag_eeprom_c301.o(i.Diag_Read_ECUSoftwareCode_F193) referenced from diag_appl_c301.o(.constdata) -
    • Diag_Read_ECUSoftwareCode_F194 from diag_eeprom_c301.o(i.Diag_Read_ECUSoftwareCode_F194) referenced from diag_appl_c301.o(.constdata) -
    • Diag_Read_ECUSoftwareCode_F195 from diag_eeprom_c301.o(i.Diag_Read_ECUSoftwareCode_F195) referenced from diag_appl_c301.o(.constdata) -
    • Diag_Read_F18C from diag_eeprom_c301.o(i.Diag_Read_F18C) referenced from diag_appl_c301.o(.constdata) -
    • Diag_Read_FBLVersionInformation from diag_eeprom_c301.o(i.Diag_Read_FBLVersionInformation) referenced from diag_appl_c301.o(.constdata) -
    • ETH_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • ETH_WKUP_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • EXTI0_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • EXTI15_10_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • EXTI1_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • EXTI2_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • EXTI3_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • EXTI4_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • EXTI9_5_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • FLASH_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • HardFault_Handler from stm32f10x_it.o(i.HardFault_Handler) referenced from startup_stm32f10x_cl.o(RESET) -
    • I2C1_ER_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • I2C1_EV_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • I2C2_ER_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • I2C2_EV_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • ISO15765_DrvConfirmation from iso15765-2.o(i.ISO15765_DrvConfirmation) referenced from canconfig_c301.o(.constdata) -
    • MemManage_Handler from stm32f10x_it.o(i.MemManage_Handler) referenced from startup_stm32f10x_cl.o(RESET) -
    • NMI_Handler from stm32f10x_it.o(i.NMI_Handler) referenced from startup_stm32f10x_cl.o(RESET) -
    • OTG_FS_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • OTG_FS_WKUP_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • PVD_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • PendSV_Handler from stm32f10x_it.o(i.PendSV_Handler) referenced from startup_stm32f10x_cl.o(RESET) -
    • RCC_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • RTCAlarm_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • RTC_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • Reset_Handler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • SPI1_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • SPI2_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • SPI3_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • SVC_Handler from stm32f10x_it.o(i.SVC_Handler) referenced from startup_stm32f10x_cl.o(RESET) -
    • SysTick_Handler from dev_sys.o(i.SysTick_Handler) referenced from startup_stm32f10x_cl.o(RESET) -
    • SystemInit from system_stm32f10x.o(i.SystemInit) referenced from startup_stm32f10x_cl.o(.text) -
    • TAMPER_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • TIM1_BRK_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • TIM1_CC_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • TIM1_TRG_COM_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • TIM1_UP_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • TIM2_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • TIM3_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • TIM4_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • TIM5_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • TIM6_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • TIM7_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • UART4_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • UART5_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • USART1_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • USART2_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • USART3_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • Uds_CommunicationControl from uds.o(i.Uds_CommunicationControl) referenced from canconfig_c301.o(.constdata) -
    • Uds_ControlDTCSetting from uds.o(i.Uds_ControlDTCSetting) referenced from canconfig_c301.o(.constdata) -
    • Uds_CopyToCAN from uds.o(i.Uds_CopyToCAN) referenced from iso15765-2_entry.o(.data) -
    • Uds_DiagControlSession from uds.o(i.Uds_DiagControlSession) referenced from canconfig_c301.o(.constdata) -
    • Uds_ECUReset from uds.o(i.Uds_ECUReset) referenced from canconfig_c301.o(.constdata) -
    • Uds_PhysFuncGetBuffer from uds.o(i.Uds_PhysFuncGetBuffer) referenced from iso15765-2_entry.o(.data) -
    • Uds_PhysReqInd from uds.o(i.Uds_PhysReqInd) referenced from iso15765-2_entry.o(.data) -
    • Uds_PhysRxErrorIndication from uds.o(i.Uds_PhysRxErrorIndication) referenced from iso15765-2_entry.o(.data) -
    • Uds_ReadDataByIdentifier from uds.o(i.Uds_ReadDataByIdentifier) referenced from canconfig_c301.o(.constdata) -
    • Uds_RequestDownload from uds.o(i.Uds_RequestDownload) referenced from canconfig_c301.o(.constdata) -
    • Uds_RequestTransferExit from uds.o(i.Uds_RequestTransferExit) referenced from canconfig_c301.o(.constdata) -
    • Uds_RoutineControl from uds.o(i.Uds_RoutineControl) referenced from canconfig_c301.o(.constdata) -
    • Uds_SecurityAccess from uds.o(i.Uds_SecurityAccess) referenced from canconfig_c301.o(.constdata) -
    • Uds_TesterPresent from uds.o(i.Uds_TesterPresent) referenced from canconfig_c301.o(.constdata) -
    • Uds_TransferData from uds.o(i.Uds_TransferData) referenced from canconfig_c301.o(.constdata) -
    • Uds_TxConfirmation from uds.o(i.Uds_TxConfirmation) referenced from iso15765-2_entry.o(.data) -
    • Uds_TxErrorIndication from uds.o(i.Uds_TxErrorIndication) referenced from iso15765-2_entry.o(.data) -
    • Uds_WriteDataByIdentifier from uds.o(i.Uds_WriteDataByIdentifier) referenced from canconfig_c301.o(.constdata) -
    • UsageFault_Handler from stm32f10x_it.o(i.UsageFault_Handler) referenced from startup_stm32f10x_cl.o(RESET) -
    • WWDG_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_stm32f10x_cl.o(.text) -
    • main from main.o(i.main) referenced from entry9a.o(.ARM.Collect$$$$0000000B) -
    -

    -

    -Global Symbols -

    -

    __main (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(.text) -
    -

    _main_stk (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001)) - -

    _main_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004)) -

    [Calls]

    • >>   __scatterload -
    - -

    __main_after_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004)) -

    [Called By]

    • >>   __scatterload -
    - -

    _main_clock (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008)) - -

    _main_cpp_init (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A)) - -

    _main_init (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B)) - -

    __rt_final_cpp (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D)) - -

    __rt_final_exit (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F)) - -

    __get_PSP (Thumb, 6 bytes, Stack size 0 bytes, core_cm3.o(.emb_text), UNUSED) - -

    __set_PSP (Thumb, 6 bytes, Stack size 0 bytes, core_cm3.o(.emb_text), UNUSED) - -

    __get_MSP (Thumb, 6 bytes, Stack size 0 bytes, core_cm3.o(.emb_text), UNUSED) - -

    __set_MSP (Thumb, 6 bytes, Stack size 0 bytes, core_cm3.o(.emb_text)) -

    [Called By]

    • >>   JumpToExecute -
    - -

    __REV16 (Thumb, 4 bytes, Stack size 0 bytes, core_cm3.o(.emb_text), UNUSED) - -

    __REVSH (Thumb, 4 bytes, Stack size 0 bytes, core_cm3.o(.emb_text), UNUSED) - -

    Reset_Handler (Thumb, 8 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    ADC1_2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -

    [Calls]

    • >>   ADC1_2_IRQHandler -
    -
    [Called By]
    • >>   ADC1_2_IRQHandler -
    -
    [Address Reference Count : 1]
    • startup_stm32f10x_cl.o(RESET) -
    -

    CAN1_RX0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    CAN1_RX1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    CAN1_SCE_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    CAN1_TX_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    CAN2_RX0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    CAN2_TX_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    DMA1_Channel1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    DMA1_Channel2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    DMA1_Channel3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    DMA1_Channel4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    DMA1_Channel5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    DMA1_Channel6_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    DMA1_Channel7_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    DMA2_Channel1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    DMA2_Channel2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    DMA2_Channel3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    DMA2_Channel4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    DMA2_Channel5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    ETH_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    ETH_WKUP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    EXTI0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    EXTI15_10_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    EXTI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    EXTI2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    EXTI3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    EXTI4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    EXTI9_5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    FLASH_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    I2C1_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    I2C1_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    I2C2_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    I2C2_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    OTG_FS_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    OTG_FS_WKUP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    PVD_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    RCC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    RTCAlarm_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    RTC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    SPI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    SPI2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    SPI3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    TAMPER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    TIM1_BRK_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    TIM1_CC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    TIM1_TRG_COM_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    TIM1_UP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    TIM2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    TIM3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    TIM4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    TIM5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    TIM6_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    TIM7_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    UART4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    UART5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    USART1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    USART2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    USART3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    WWDG_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    __aeabi_memcpy (Thumb, 36 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED) - -

    __aeabi_memcpy4 (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text)) -

    [Called By]

    • >>   Can2_Send_Message -
    - -

    __aeabi_memcpy8 (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED) - -

    __aeabi_memset (Thumb, 14 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED) -

    [Called By]

    • >>   _memset$wrapper -
    • >>   __aeabi_memclr -
    - -

    __aeabi_memset4 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED) - -

    __aeabi_memset8 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED) - -

    __aeabi_memclr (Thumb, 4 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED) -

    [Calls]

    • >>   __aeabi_memset -
    - -

    __aeabi_memclr4 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text)) -

    [Called By]

    • >>   CAN2_RX1_IRQHandler -
    • >>   IF_CAN_CopyDataAndStartTx -
    - -

    __aeabi_memclr8 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED) - -

    _memset$wrapper (Thumb, 18 bytes, Stack size 8 bytes, memseta.o(.text), UNUSED) -

    [Calls]

    • >>   __aeabi_memset -
    - -

    __scatterload (Thumb, 28 bytes, Stack size 0 bytes, init.o(.text)) -

    [Calls]

    • >>   __main_after_scatterload -
    -
    [Called By]
    • >>   _main_scatterload -
    - -

    __scatterload_rt2 (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED) - -

    APP_CAN_FifoMessageReceive (Thumb, 72 bytes, Stack size 32 bytes, app_can.o(i.APP_CAN_FifoMessageReceive)) -

    [Stack]

    • Max Depth = 352
    • Call Chain = APP_CAN_FifoMessageReceive ⇒ APP_CAN_MessageTypeHandle ⇒ ISO15765_Precopy ⇒ ISO15765_RxStateTask ⇒ ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   APP_CAN_MessageTypeHandle -
    -
    [Called By]
    • >>   CAN2_RX1_IRQHandler -
    - -

    BSP_BKP_Init (Thumb, 20 bytes, Stack size 8 bytes, main.o(i.BSP_BKP_Init)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = BSP_BKP_Init -
    -
    [Calls]
    • >>   RCC_APB1PeriphClockCmd -
    • >>   PWR_BackupAccessCmd -
    -
    [Called By]
    • >>   main -
    - -

    BSP_vSystemReset (Thumb, 30 bytes, Stack size 0 bytes, app_can.o(i.BSP_vSystemReset)) -

    [Called By]

    • >>   Uds_TimerTask -
    • >>   Can_Task -
    - -

    BusFault_Handler (Thumb, 4 bytes, Stack size 0 bytes, stm32f10x_it.o(i.BusFault_Handler)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    Bzip2_Finish (Thumb, 12 bytes, Stack size 0 bytes, uds_sa_c301.o(i.Bzip2_Finish)) -

    [Called By]

    • >>   Diag_RequestTransferExit -
    - -

    Bzip2_Init (Thumb, 26 bytes, Stack size 4 bytes, uds_sa_c301.o(i.Bzip2_Init)) -

    [Stack]

    • Max Depth = 4
    • Call Chain = Bzip2_Init -
    -
    [Calls]
    • >>   _Bzip2_InitTable -
    -
    [Called By]
    • >>   Diag_RequestDownload -
    - -

    Bzip2_Start (Thumb, 10 bytes, Stack size 0 bytes, uds_sa_c301.o(i.Bzip2_Start)) -

    [Called By]

    • >>   Diag_RequestDownload -
    - -

    Bzip2_Update (Thumb, 44 bytes, Stack size 12 bytes, uds_sa_c301.o(i.Bzip2_Update)) -

    [Stack]

    • Max Depth = 12
    • Call Chain = Bzip2_Update -
    -
    [Called By]
    • >>   Diag_TransferData -
    - -

    CAN2_Mode_Init (Thumb, 308 bytes, Stack size 40 bytes, can2.o(i.CAN2_Mode_Init)) -

    [Stack]

    • Max Depth = 64
    • Call Chain = CAN2_Mode_Init ⇒ GPIO_Init -
    -
    [Calls]
    • >>   CAN_Init -
    • >>   CAN_ITConfig -
    • >>   CAN_FilterInit -
    • >>   RCC_APB2PeriphClockCmd -
    • >>   RCC_APB1PeriphClockCmd -
    • >>   GPIO_Init -
    • >>   NVIC_Init -
    • >>   can_bus_open_hook -
    -
    [Called By]
    • >>   main -
    - -

    CAN2_RX1_IRQHandler (Thumb, 44 bytes, Stack size 32 bytes, can2.o(i.CAN2_RX1_IRQHandler)) -

    [Stack]

    • Max Depth = 384
    • Call Chain = CAN2_RX1_IRQHandler ⇒ APP_CAN_FifoMessageReceive ⇒ APP_CAN_MessageTypeHandle ⇒ ISO15765_Precopy ⇒ ISO15765_RxStateTask ⇒ ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   CAN_Receive -
    • >>   APP_CAN_FifoMessageReceive -
    • >>   can_bus_ready_hook -
    • >>   __aeabi_memclr4 -
    -
    [Address Reference Count : 1]
    • startup_stm32f10x_cl.o(RESET) -
    -

    CAN2_SCE_IRQHandler (Thumb, 186 bytes, Stack size 8 bytes, can2.o(i.CAN2_SCE_IRQHandler)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = CAN2_SCE_IRQHandler ⇒ CAN_GetITStatus -
    -
    [Calls]
    • >>   CAN_GetITStatus -
    • >>   CAN_GetFlagStatus -
    • >>   CAN_DeInit -
    • >>   CAN_ClearITPendingBit -
    • >>   CAN_ClearFlag -
    • >>   TickOut -
    -
    [Address Reference Count : 1]
    • startup_stm32f10x_cl.o(RESET) -
    -

    CAN_ClearFlag (Thumb, 52 bytes, Stack size 0 bytes, stm32f10x_can.o(i.CAN_ClearFlag)) -

    [Called By]

    • >>   CAN2_SCE_IRQHandler -
    - -

    CAN_ClearITPendingBit (Thumb, 162 bytes, Stack size 0 bytes, stm32f10x_can.o(i.CAN_ClearITPendingBit)) -

    [Called By]

    • >>   CAN2_SCE_IRQHandler -
    - -

    CAN_DeInit (Thumb, 50 bytes, Stack size 8 bytes, stm32f10x_can.o(i.CAN_DeInit)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = CAN_DeInit -
    -
    [Calls]
    • >>   RCC_APB1PeriphResetCmd -
    -
    [Called By]
    • >>   CAN2_SCE_IRQHandler -
    - -

    CAN_FilterInit (Thumb, 258 bytes, Stack size 8 bytes, stm32f10x_can.o(i.CAN_FilterInit)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = CAN_FilterInit -
    -
    [Called By]
    • >>   CAN2_Mode_Init -
    - -

    CAN_GetFlagStatus (Thumb, 120 bytes, Stack size 8 bytes, stm32f10x_can.o(i.CAN_GetFlagStatus)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = CAN_GetFlagStatus -
    -
    [Called By]
    • >>   CAN2_SCE_IRQHandler -
    - -

    CAN_GetITStatus (Thumb, 284 bytes, Stack size 16 bytes, stm32f10x_can.o(i.CAN_GetITStatus)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = CAN_GetITStatus -
    -
    [Calls]
    • >>   CheckITStatus -
    -
    [Called By]
    • >>   CAN2_SCE_IRQHandler -
    - -

    CAN_ITConfig (Thumb, 18 bytes, Stack size 0 bytes, stm32f10x_can.o(i.CAN_ITConfig)) -

    [Called By]

    • >>   CAN2_Mode_Init -
    - -

    CAN_Init (Thumb, 276 bytes, Stack size 12 bytes, stm32f10x_can.o(i.CAN_Init)) -

    [Stack]

    • Max Depth = 12
    • Call Chain = CAN_Init -
    -
    [Called By]
    • >>   CAN2_Mode_Init -
    - -

    CAN_Receive (Thumb, 240 bytes, Stack size 8 bytes, stm32f10x_can.o(i.CAN_Receive)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = CAN_Receive -
    -
    [Called By]
    • >>   CAN2_RX1_IRQHandler -
    - -

    CAN_Transmit (Thumb, 294 bytes, Stack size 8 bytes, stm32f10x_can.o(i.CAN_Transmit)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = CAN_Transmit -
    -
    [Called By]
    • >>   Can2_Send_Message -
    - -

    CAN_TransmitStatus (Thumb, 138 bytes, Stack size 8 bytes, stm32f10x_can.o(i.CAN_TransmitStatus)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = CAN_TransmitStatus -
    -
    [Called By]
    • >>   Can2_Send_Message -
    - -

    Can2_Send_Message (Thumb, 96 bytes, Stack size 48 bytes, can2.o(i.Can2_Send_Message)) -

    [Stack]

    • Max Depth = 56
    • Call Chain = Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   CAN_TransmitStatus -
    • >>   CAN_Transmit -
    • >>   can_bus_send_ready -
    • >>   __aeabi_memcpy4 -
    -
    [Called By]
    • >>   IF_CAN_SendCanData -
    - -

    CanExt_CanTransShutdown (Thumb, 10 bytes, Stack size 8 bytes, app_can.o(i.CanExt_CanTransShutdown)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = CanExt_CanTransShutdown ⇒ CanTrans_GoToSleep -
    -
    [Calls]
    • >>   CanTrans_GoToSleep -
    -
    [Called By]
    • >>   Can_Task -
    - -

    CanTask_BusErrorDetection (Thumb, 2 bytes, Stack size 0 bytes, app_can.o(i.CanTask_BusErrorDetection)) -

    [Called By]

    • >>   CanTask_TimerProcess -
    - -

    CanTask_FBLInit (Thumb, 196 bytes, Stack size 0 bytes, app_can.o(i.CanTask_FBLInit)) -

    [Called By]

    • >>   Uds_TransSessionType -
    • >>   CanTask_InitProcess -
    - -

    CanTask_GetSaRandom (Thumb, 6 bytes, Stack size 0 bytes, app_can.o(i.CanTask_GetSaRandom)) -

    [Called By]

    • >>   SA_Random -
    - -

    CanTask_InitProcess (Thumb, 80 bytes, Stack size 8 bytes, app_can.o(i.CanTask_InitProcess)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = CanTask_InitProcess ⇒ ISO15765_InitPowerOn ⇒ ISO15765_Init ⇒ ISO15765_TxInit -
    -
    [Calls]
    • >>   IF_CAN_IsOnLine -
    • >>   CanTrans_Init -
    • >>   ISO15765_InitPowerOn -
    • >>   CanTask_FBLInit -
    • >>   Uds_PowerOnInit -
    • >>   IF_CAN_InitLoaclStatus -
    -
    [Called By]
    • >>   main -
    - -

    CanTask_IsAppBeenErased (Thumb, 40 bytes, Stack size 0 bytes, app_can.o(i.CanTask_IsAppBeenErased)) -

    [Called By]

    • >>   Uds_SetState -
    - -

    CanTask_SetStayInBootFlagValue (Thumb, 6 bytes, Stack size 0 bytes, app_can.o(i.CanTask_SetStayInBootFlagValue)) -

    [Called By]

    • >>   Uds_DiagControlSession -
    • >>   Uds_SetState -
    - -

    CanTask_UdsStateProcess (Thumb, 16 bytes, Stack size 8 bytes, app_can.o(i.CanTask_UdsStateProcess)) -

    [Stack]

    • Max Depth = 112
    • Call Chain = CanTask_UdsStateProcess ⇒ Uds_StateTask ⇒ Uds_ContextTask ⇒ Uds_SetState ⇒ Diag_CheckValidApp1 ⇒ ee_ReadBytes ⇒ IIC_Read_Byte ⇒ IIC_NAck -
    -
    [Calls]
    • >>   Uds_StateTask -
    -
    [Called By]
    • >>   uds_SysTick_Process_1ms -
    - -

    CanTrans_GoToNormal (Thumb, 38 bytes, Stack size 8 bytes, can_transceiver.o(i.CanTrans_GoToNormal)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = CanTrans_GoToNormal -
    -
    [Calls]
    • >>   GPIO_SetBits -
    -
    [Called By]
    • >>   CanTrans_Init -
    - -

    CanTrans_GoToSleep (Thumb, 50 bytes, Stack size 8 bytes, can_transceiver.o(i.CanTrans_GoToSleep)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = CanTrans_GoToSleep -
    -
    [Calls]
    • >>   GPIO_SetBits -
    • >>   GPIO_ResetBits -
    • >>   CanTrans_Delay -
    -
    [Called By]
    • >>   CanExt_CanTransShutdown -
    - -

    CanTrans_Init (Thumb, 10 bytes, Stack size 8 bytes, can_transceiver.o(i.CanTrans_Init)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = CanTrans_Init ⇒ CanTrans_GoToNormal -
    -
    [Calls]
    • >>   CanTrans_GoToNormal -
    -
    [Called By]
    • >>   CanTask_InitProcess -
    - -

    Can_Task (Thumb, 68 bytes, Stack size 8 bytes, app_can.o(i.Can_Task)) -

    [Stack]

    • Max Depth = 320
    • Call Chain = Can_Task ⇒ CanTask_TimerProcess ⇒ ISO15765_Task ⇒ ISO15765_TxTask ⇒ ISO15765_TxStateTask ⇒ ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   BSP_vSystemReset -
    • >>   CanExt_CanTransShutdown -
    • >>   CanTask_TimerProcess -
    -
    [Called By]
    • >>   Uds_SysTick_Process_10ms -
    - -

    DebugMon_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f10x_it.o(i.DebugMon_Handler)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    Diag_AppDataInit (Thumb, 8 bytes, Stack size 0 bytes, diag_appl_c301.o(i.Diag_AppDataInit)) -

    [Called By]

    • >>   Uds_PowerOnInit -
    • >>   Uds_DiagControlSession -
    - -

    Diag_CheckTransmitSequence (Thumb, 20 bytes, Stack size 16 bytes, diag_appl_c301.o(i.Diag_CheckTransmitSequence)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = Diag_CheckTransmitSequence -
    -
    [Calls]
    • >>   GetCrc32Chk -
    -
    [Called By]
    • >>   Diag_RoutineControl -
    - -

    Diag_CheckValidApp1 (Thumb, 54 bytes, Stack size 16 bytes, diag_appl_c301.o(i.Diag_CheckValidApp1)) -

    [Stack]

    • Max Depth = 64
    • Call Chain = Diag_CheckValidApp1 ⇒ ee_ReadBytes ⇒ IIC_Read_Byte ⇒ IIC_NAck -
    -
    [Calls]
    • >>   ee_ReadBytes -
    -
    [Called By]
    • >>   Diag_CheckValidApplication -
    • >>   Uds_SetState -
    - -

    Diag_CheckValidApplication (Thumb, 24 bytes, Stack size 8 bytes, diag_appl_c301.o(i.Diag_CheckValidApplication)) -

    [Stack]

    • Max Depth = 72
    • Call Chain = Diag_CheckValidApplication ⇒ Diag_CheckValidApp1 ⇒ ee_ReadBytes ⇒ IIC_Read_Byte ⇒ IIC_NAck -
    -
    [Calls]
    • >>   Diag_CheckValidApp1 -
    -
    [Called By]
    • >>   Diag_RoutineControl -
    - -

    Diag_CheckVerifyUpgradePacket (Thumb, 22 bytes, Stack size 0 bytes, diag_appl_c301.o(i.Diag_CheckVerifyUpgradePacket)) -

    [Called By]

    • >>   Diag_RoutineControl -
    - -

    Diag_CheckWriteDIDRange (Thumb, 48 bytes, Stack size 0 bytes, diag_appl_c301.o(i.Diag_CheckWriteDIDRange)) -

    [Called By]

    • >>   Diag_WriteDataByIdentifier -
    - -

    Diag_ClrAPP1UpdateMark (Thumb, 72 bytes, Stack size 16 bytes, diag_eeprom_c301.o(i.Diag_ClrAPP1UpdateMark)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = Diag_ClrAPP1UpdateMark -
    -
    [Calls]
    • >>   flashdnit -
    • >>   flashInit -
    -
    [Called By]
    • >>   Diag_RoutineControl -
    - -

    Diag_ClrEepromUpdateMark (Thumb, 20 bytes, Stack size 0 bytes, diag_eeprom_c301.o(i.Diag_ClrEepromUpdateMark)) -

    [Called By]

    • >>   Diag_RoutineControl -
    - -

    Diag_CommunicationControl (Thumb, 178 bytes, Stack size 24 bytes, diag_appl_c301.o(i.Diag_CommunicationControl)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = Diag_CommunicationControl ⇒ Uds_ProcessFinished -
    -
    [Calls]
    • >>   Diag_CommEnable -
    • >>   Diag_CommDisable -
    • >>   Uds_SetSupFuncEnableFlag -
    • >>   Uds_SetNRC -
    • >>   Uds_ResponseEnable -
    • >>   Uds_ProcessFinished -
    • >>   Uds_CheckAdrrType -
    -
    [Called By]
    • >>   Uds_CommunicationControl -
    - -

    Diag_ControlDTCSetting (Thumb, 100 bytes, Stack size 16 bytes, diag_appl_c301.o(i.Diag_ControlDTCSetting)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = Diag_ControlDTCSetting ⇒ Uds_ProcessFinished -
    -
    [Calls]
    • >>   Uds_SetSupFuncEnableFlag -
    • >>   Uds_SetNRC -
    • >>   Uds_ResponseEnable -
    • >>   Uds_ProcessFinished -
    • >>   Uds_CheckAdrrType -
    -
    [Called By]
    • >>   Uds_ControlDTCSetting -
    - -

    Diag_DataCalcCRC (Thumb, 96 bytes, Stack size 16 bytes, diag_appl_c301.o(i.Diag_DataCalcCRC)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = Diag_DataCalcCRC -
    -
    [Called By]
    • >>   Diag_TransferData -
    - -

    Diag_DataProgram (Thumb, 94 bytes, Stack size 24 bytes, diag_appl_c301.o(i.Diag_DataProgram)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = Diag_DataProgram -
    -
    [Calls]
    • >>   flashdnit -
    • >>   flashInit -
    -
    [Called By]
    • >>   Diag_TransferData -
    - -

    Diag_EcuReset (Thumb, 132 bytes, Stack size 16 bytes, diag_appl_c301.o(i.Diag_EcuReset)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = Diag_EcuReset ⇒ Uds_ProcessFinished -
    -
    [Calls]
    • >>   Uds_SetSupFuncEnableFlag -
    • >>   Uds_SetNRC -
    • >>   Uds_ResponseEnable -
    • >>   Uds_ProcessFinished -
    • >>   Uds_CheckAdrrType -
    -
    [Called By]
    • >>   Uds_ECUReset -
    - -

    Diag_FlashCalcCRC (Thumb, 118 bytes, Stack size 40 bytes, diag_appl_c301.o(i.Diag_FlashCalcCRC)) -

    [Stack]

    • Max Depth = 328
    • Call Chain = Diag_FlashCalcCRC ⇒ Uds_ForceTransmitResPending ⇒ ISO15765_CanTransmitMsgWithDlc ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   Uds_ForceTransmitResPending -
    -
    [Called By]
    • >>   Diag_RequestTransferExit -
    - -

    Diag_HndUpdataEV (Thumb, 2 bytes, Stack size 0 bytes, diag_eeprom_c301.o(i.Diag_HndUpdataEV)) -

    [Called By]

    • >>   main -
    - -

    Diag_MemCopy (Thumb, 22 bytes, Stack size 8 bytes, diag_eeprom_c301.o(i.Diag_MemCopy)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = Diag_MemCopy -
    -
    [Called By]
    • >>   Diag_WriteDataByIdentifier -
    • >>   Uds_ContextTask -
    - -

    Diag_MemCpy (Thumb, 20 bytes, Stack size 8 bytes, diag_appl_c301.o(i.Diag_MemCpy)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = Diag_MemCpy -
    -
    [Called By]
    • >>   Diag_RamWrite -
    - -

    Diag_ProgramFailedDataInit (Thumb, 120 bytes, Stack size 0 bytes, diag_appl_c301.o(i.Diag_ProgramFailedDataInit)) -

    [Called By]

    • >>   Diag_TransferData -
    - -

    Diag_RamWrite (Thumb, 20 bytes, Stack size 16 bytes, diag_appl_c301.o(i.Diag_RamWrite)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = Diag_RamWrite ⇒ Diag_MemCpy -
    -
    [Calls]
    • >>   Diag_MemCpy -
    -
    [Called By]
    • >>   Diag_TransferData -
    - -

    Diag_ReadDataByIdentifier (Thumb, 340 bytes, Stack size 144 bytes, diag_appl_c301.o(i.Diag_ReadDataByIdentifier)) -

    [Stack]

    • Max Depth = 152
    • Call Chain = Diag_ReadDataByIdentifier ⇒ Uds_ProcessFinished -
    -
    [Calls]
    • >>   Uds_SetSupFuncEnableFlag -
    • >>   Uds_SetNRC -
    • >>   Uds_ProcessFinished -
    • >>   Uds_GetNRC -
    • >>   Uds_CheckAdrrType -
    -
    [Called By]
    • >>   Uds_ReadDataByIdentifier -
    - -

    Diag_Read_ECUSoftwareCode_F193 (Thumb, 22 bytes, Stack size 0 bytes, diag_eeprom_c301.o(i.Diag_Read_ECUSoftwareCode_F193)) -
    [Address Reference Count : 1]

    • diag_appl_c301.o(.constdata) -
    -

    Diag_Read_ECUSoftwareCode_F194 (Thumb, 22 bytes, Stack size 0 bytes, diag_eeprom_c301.o(i.Diag_Read_ECUSoftwareCode_F194)) -
    [Address Reference Count : 1]

    • diag_appl_c301.o(.constdata) -
    -

    Diag_Read_ECUSoftwareCode_F195 (Thumb, 20 bytes, Stack size 0 bytes, diag_eeprom_c301.o(i.Diag_Read_ECUSoftwareCode_F195)) -
    [Address Reference Count : 1]

    • diag_appl_c301.o(.constdata) -
    -

    Diag_Read_F18C (Thumb, 2 bytes, Stack size 0 bytes, diag_eeprom_c301.o(i.Diag_Read_F18C)) -
    [Address Reference Count : 1]

    • diag_appl_c301.o(.constdata) -
    -

    Diag_Read_FBLVersionInformation (Thumb, 22 bytes, Stack size 0 bytes, diag_eeprom_c301.o(i.Diag_Read_FBLVersionInformation)) -
    [Address Reference Count : 1]

    • diag_appl_c301.o(.constdata) -
    -

    Diag_RequestDownload (Thumb, 832 bytes, Stack size 32 bytes, diag_appl_c301.o(i.Diag_RequestDownload)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = Diag_RequestDownload ⇒ Uds_ProcessFinished -
    -
    [Calls]
    • >>   Bzip2_Start -
    • >>   Bzip2_Init -
    • >>   Uds_SetNRC -
    • >>   Uds_ProcessFinished -
    • >>   Uds_GetNRC -
    -
    [Called By]
    • >>   Uds_RequestDownload -
    - -

    Diag_RequestEraseFlash (Thumb, 72 bytes, Stack size 24 bytes, diag_appl_c301.o(i.Diag_RequestEraseFlash)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = Diag_RequestEraseFlash -
    -
    [Calls]
    • >>   flashdnit -
    • >>   flashInit -
    -
    [Called By]
    • >>   Diag_RoutineControl -
    - -

    Diag_RequestTransferExit (Thumb, 298 bytes, Stack size 16 bytes, diag_appl_c301.o(i.Diag_RequestTransferExit)) -

    [Stack]

    • Max Depth = 344
    • Call Chain = Diag_RequestTransferExit ⇒ Diag_FlashCalcCRC ⇒ Uds_ForceTransmitResPending ⇒ ISO15765_CanTransmitMsgWithDlc ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   Bzip2_Finish -
    • >>   Diag_FlashCalcCRC -
    • >>   Uds_SetNRC -
    • >>   Uds_ProcessFinished -
    -
    [Called By]
    • >>   Uds_RequestTransferExit -
    - -

    Diag_RoutineControl (Thumb, 882 bytes, Stack size 48 bytes, diag_appl_c301.o(i.Diag_RoutineControl)) -

    [Stack]

    • Max Depth = 336
    • Call Chain = Diag_RoutineControl ⇒ Uds_ForceTransmitResPending ⇒ ISO15765_CanTransmitMsgWithDlc ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   Diag_RequestEraseFlash -
    • >>   Diag_CheckVerifyUpgradePacket -
    • >>   Diag_CheckValidApplication -
    • >>   Diag_CheckTransmitSequence -
    • >>   Diag_SetEepromAppErasureMark -
    • >>   Diag_ClrEepromUpdateMark -
    • >>   Diag_ClrAPP1UpdateMark -
    • >>   Uds_SetSupFuncEnableFlag -
    • >>   Uds_SetNRC -
    • >>   Uds_ProcessFinished -
    • >>   Uds_GetCurSessionAccessStatus -
    • >>   Uds_ForceTransmitResPending -
    • >>   Uds_CheckAdrrType -
    -
    [Called By]
    • >>   Uds_RoutineControl -
    - -

    Diag_SecurityAccess (Thumb, 968 bytes, Stack size 40 bytes, diag_appl_c301.o(i.Diag_SecurityAccess)) -

    [Stack]

    • Max Depth = 64
    • Call Chain = Diag_SecurityAccess ⇒ SA_Random -
    -
    [Calls]
    • >>   SA_GenerateKeyFBL -
    • >>   SA_GenerateKey -
    • >>   SA_Compare -
    • >>   Uds_SetSupFuncEnableFlag -
    • >>   Uds_SetProtect -
    • >>   Uds_SetNRC -
    • >>   Uds_ProcessFinished -
    • >>   Uds_GetCurSessionState -
    • >>   Uds_CheckAdrrType -
    • >>   SA_Random -
    -
    [Called By]
    • >>   Uds_SecurityAccess -
    - -

    Diag_SetEepromAppErasureMark (Thumb, 20 bytes, Stack size 0 bytes, diag_eeprom_c301.o(i.Diag_SetEepromAppErasureMark)) -

    [Called By]

    • >>   Diag_RoutineControl -
    - -

    Diag_TransferData (Thumb, 1098 bytes, Stack size 32 bytes, diag_appl_c301.o(i.Diag_TransferData)) -

    [Stack]

    • Max Depth = 56
    • Call Chain = Diag_TransferData ⇒ Diag_RamWrite ⇒ Diag_MemCpy -
    -
    [Calls]
    • >>   Bzip2_Update -
    • >>   Diag_RamWrite -
    • >>   Diag_ProgramFailedDataInit -
    • >>   Diag_DataProgram -
    • >>   Diag_DataCalcCRC -
    • >>   Uds_SetNRC -
    • >>   Uds_ProcessFinished -
    -
    [Called By]
    • >>   Uds_TransferData -
    - -

    Diag_WriteDataByIdentifier (Thumb, 238 bytes, Stack size 32 bytes, diag_appl_c301.o(i.Diag_WriteDataByIdentifier)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = Diag_WriteDataByIdentifier ⇒ Diag_MemCopy -
    -
    [Calls]
    • >>   EED_WriteDID -
    • >>   Diag_CheckWriteDIDRange -
    • >>   Diag_MemCopy -
    • >>   Uds_SetSupFuncEnableFlag -
    • >>   Uds_SetNRC -
    • >>   Uds_ProcessFinished -
    • >>   Uds_CheckAdrrType -
    -
    [Called By]
    • >>   Uds_WriteDataByIdentifier -
    - -

    EED_WriteDID (Thumb, 6 bytes, Stack size 0 bytes, app_can.o(i.EED_WriteDID)) -

    [Called By]

    • >>   Diag_WriteDataByIdentifier -
    - -

    GPIO_Init (Thumb, 278 bytes, Stack size 24 bytes, stm32f10x_gpio.o(i.GPIO_Init)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = GPIO_Init -
    -
    [Called By]
    • >>   CAN2_Mode_Init -
    • >>   bsp_InitI2C -
    • >>   LED_Init -
    - -

    GPIO_PinRemapConfig (Thumb, 138 bytes, Stack size 20 bytes, stm32f10x_gpio.o(i.GPIO_PinRemapConfig)) -

    [Stack]

    • Max Depth = 20
    • Call Chain = GPIO_PinRemapConfig -
    -
    [Called By]
    • >>   LED_Init -
    - -

    GPIO_ResetBits (Thumb, 4 bytes, Stack size 0 bytes, stm32f10x_gpio.o(i.GPIO_ResetBits)) -

    [Called By]

    • >>   LED_Init -
    • >>   CanTrans_GoToSleep -
    • >>   main -
    - -

    GPIO_SetBits (Thumb, 4 bytes, Stack size 0 bytes, stm32f10x_gpio.o(i.GPIO_SetBits)) -

    [Called By]

    • >>   bsp_InitI2C -
    • >>   LED_Init -
    • >>   CanTrans_GoToSleep -
    • >>   CanTrans_GoToNormal -
    - -

    GetCrc32Chk (Thumb, 6 bytes, Stack size 0 bytes, uds_sa_c301.o(i.GetCrc32Chk)) -

    [Called By]

    • >>   Diag_CheckTransmitSequence -
    - -

    HardFault_Handler (Thumb, 4 bytes, Stack size 0 bytes, stm32f10x_it.o(i.HardFault_Handler)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    IF_CAN_CancelTransmitMsg (Thumb, 2 bytes, Stack size 0 bytes, app_can.o(i.IF_CAN_CancelTransmitMsg)) -

    [Called By]

    • >>   ISO15765_Precopy -
    • >>   ISO15765_TxInit -
    • >>   ISO15765_RxInit -
    - -

    IF_CAN_InitLoaclStatus (Thumb, 24 bytes, Stack size 8 bytes, app_can.o(i.IF_CAN_InitLoaclStatus)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = IF_CAN_InitLoaclStatus -
    -
    [Calls]
    • >>   IF_CAN_IsOnLine -
    -
    [Called By]
    • >>   CanTask_InitProcess -
    - -

    IF_CAN_IsOnLine (Thumb, 20 bytes, Stack size 0 bytes, app_can.o(i.IF_CAN_IsOnLine)) -

    [Called By]

    • >>   IF_CAN_InitLoaclStatus -
    • >>   CanTask_InitProcess -
    - -

    IF_CAN_SendCanData (Thumb, 160 bytes, Stack size 64 bytes, app_can.o(i.IF_CAN_SendCanData)) -

    [Stack]

    • Max Depth = 120
    • Call Chain = IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   Can2_Send_Message -
    -
    [Called By]
    • >>   IF_CAN_CopyDataAndStartTx -
    - -

    IF_CAN_TransmitMsg (Thumb, 46 bytes, Stack size 24 bytes, app_can.o(i.IF_CAN_TransmitMsg)) -

    [Stack]

    • Max Depth = 264
    • Call Chain = IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   IF_CAN_CopyDataAndStartTx -
    -
    [Called By]
    • >>   ISO15765_CanTransmitMsg -
    • >>   ISO15765_CanTransmitMsgWithDlc -
    - -

    IIC_Ack (Thumb, 52 bytes, Stack size 8 bytes, bsp_i2c_gpio.o(i.IIC_Ack)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = IIC_Ack -
    -
    [Calls]
    • >>   i2c_Delay -
    -
    [Called By]
    • >>   IIC_Read_Byte -
    - -

    IIC_NAck (Thumb, 42 bytes, Stack size 8 bytes, bsp_i2c_gpio.o(i.IIC_NAck)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = IIC_NAck -
    -
    [Calls]
    • >>   i2c_Delay -
    -
    [Called By]
    • >>   IIC_Read_Byte -
    - -

    IIC_Read_Byte (Thumb, 80 bytes, Stack size 16 bytes, bsp_i2c_gpio.o(i.IIC_Read_Byte)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = IIC_Read_Byte ⇒ IIC_NAck -
    -
    [Calls]
    • >>   IIC_NAck -
    • >>   IIC_Ack -
    • >>   i2c_Delay -
    -
    [Called By]
    • >>   ee_ReadBytes -
    - -

    IIC_Send_Byte (Thumb, 88 bytes, Stack size 16 bytes, bsp_i2c_gpio.o(i.IIC_Send_Byte)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = IIC_Send_Byte -
    -
    [Calls]
    • >>   i2c_Delay -
    -
    [Called By]
    • >>   ee_ReadBytes -
    - -

    IIC_Start (Thumb, 48 bytes, Stack size 8 bytes, bsp_i2c_gpio.o(i.IIC_Start)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = IIC_Start -
    -
    [Calls]
    • >>   i2c_Delay -
    -
    [Called By]
    • >>   ee_ReadBytes -
    - -

    IIC_Stop (Thumb, 36 bytes, Stack size 8 bytes, bsp_i2c_gpio.o(i.IIC_Stop)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = IIC_Stop -
    -
    [Calls]
    • >>   i2c_Delay -
    -
    [Called By]
    • >>   ee_ReadBytes -
    - -

    IIC_Wait_Ack (Thumb, 62 bytes, Stack size 8 bytes, bsp_i2c_gpio.o(i.IIC_Wait_Ack)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = IIC_Wait_Ack -
    -
    [Calls]
    • >>   i2c_Delay -
    -
    [Called By]
    • >>   ee_ReadBytes -
    - -

    ISO15765_CanTransmitMsg (Thumb, 26 bytes, Stack size 8 bytes, iso15765-2.o(i.ISO15765_CanTransmitMsg)) -

    [Stack]

    • Max Depth = 272
    • Call Chain = ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   IF_CAN_TransmitMsg -
    -
    [Called By]
    • >>   ISO15765_TxStateTask -
    • >>   ISO15765_RxStateTask -
    - -

    ISO15765_CanTransmitMsgWithDlc (Thumb, 26 bytes, Stack size 16 bytes, iso15765-2.o(i.ISO15765_CanTransmitMsgWithDlc)) -

    [Stack]

    • Max Depth = 280
    • Call Chain = ISO15765_CanTransmitMsgWithDlc ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   IF_CAN_TransmitMsg -
    -
    [Called By]
    • >>   Uds_ForceTransmitResPending -
    - -

    ISO15765_DrvConfirmation (Thumb, 22 bytes, Stack size 8 bytes, iso15765-2.o(i.ISO15765_DrvConfirmation)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = ISO15765_DrvConfirmation ⇒ ISO15765_TxFinishProcess -
    -
    [Calls]
    • >>   ISO15765_TxFinishProcess -
    • >>   ISO15765_RxFinishProcess -
    -
    [Called By]
    • >>   ISO15765_Precopy -
    -
    [Address Reference Count : 1]
    • canconfig_c301.o(.constdata) -
    -

    ISO15765_InitPowerOn (Thumb, 24 bytes, Stack size 8 bytes, iso15765-2.o(i.ISO15765_InitPowerOn)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = ISO15765_InitPowerOn ⇒ ISO15765_Init ⇒ ISO15765_TxInit -
    -
    [Calls]
    • >>   ISO15765_Init -
    -
    [Called By]
    • >>   CanTask_InitProcess -
    - -

    ISO15765_Precopy (Thumb, 1534 bytes, Stack size 16 bytes, iso15765-2.o(i.ISO15765_Precopy)) -

    [Stack]

    • Max Depth = 304
    • Call Chain = ISO15765_Precopy ⇒ ISO15765_RxStateTask ⇒ ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   IF_CAN_CancelTransmitMsg -
    • >>   ISO15765_DrvConfirmation -
    • >>   ISO15765_TxInit -
    • >>   ISO15765_RxStateTask -
    • >>   ISO15765_RxInit -
    • >>   ISO15765_RxResetBus -
    -
    [Called By]
    • >>   APP_CAN_MessageTypeHandle -
    - -

    ISO15765_RxResetBus (Thumb, 8 bytes, Stack size 8 bytes, iso15765-2.o(i.ISO15765_RxResetBus)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = ISO15765_RxResetBus ⇒ ISO15765_RxInit -
    -
    [Calls]
    • >>   ISO15765_RxInit -
    -
    [Called By]
    • >>   ISO15765_Precopy -
    • >>   Uds_PhysReqInd -
    - -

    ISO15765_RxSetFCStatus (Thumb, 6 bytes, Stack size 0 bytes, iso15765-2.o(i.ISO15765_RxSetFCStatus)) -

    [Called By]

    • >>   Uds_PhysFuncGetBuffer -
    - -

    ISO15765_Task (Thumb, 12 bytes, Stack size 8 bytes, iso15765-2.o(i.ISO15765_Task)) -

    [Stack]

    • Max Depth = 304
    • Call Chain = ISO15765_Task ⇒ ISO15765_TxTask ⇒ ISO15765_TxStateTask ⇒ ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   ISO15765_TxTask -
    • >>   ISO15765_RxTask -
    -
    [Called By]
    • >>   CanTask_TimerProcess -
    - -

    ISO15765_Transmit (Thumb, 98 bytes, Stack size 8 bytes, iso15765-2.o(i.ISO15765_Transmit)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = ISO15765_Transmit -
    -
    [Called By]
    • >>   Uds_TransmitResponse -
    - -

    LED_Init (Thumb, 368 bytes, Stack size 8 bytes, led.o(i.LED_Init)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = LED_Init ⇒ GPIO_Init -
    -
    [Calls]
    • >>   RCC_APB2PeriphClockCmd -
    • >>   GPIO_SetBits -
    • >>   GPIO_ResetBits -
    • >>   GPIO_PinRemapConfig -
    • >>   GPIO_Init -
    -
    [Called By]
    • >>   main -
    - -

    MemManage_Handler (Thumb, 4 bytes, Stack size 0 bytes, stm32f10x_it.o(i.MemManage_Handler)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    NMI_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f10x_it.o(i.NMI_Handler)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    NVIC_Configuration (Thumb, 12 bytes, Stack size 8 bytes, dev_sys.o(i.NVIC_Configuration)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = NVIC_Configuration -
    -
    [Calls]
    • >>   NVIC_PriorityGroupConfig -
    -
    [Called By]
    • >>   main -
    - -

    NVIC_Init (Thumb, 100 bytes, Stack size 16 bytes, misc.o(i.NVIC_Init)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = NVIC_Init -
    -
    [Called By]
    • >>   CAN2_Mode_Init -
    - -

    NVIC_PriorityGroupConfig (Thumb, 10 bytes, Stack size 0 bytes, misc.o(i.NVIC_PriorityGroupConfig)) -

    [Called By]

    • >>   NVIC_Configuration -
    - -

    PWR_BackupAccessCmd (Thumb, 6 bytes, Stack size 0 bytes, stm32f10x_pwr.o(i.PWR_BackupAccessCmd)) -

    [Called By]

    • >>   BSP_BKP_Init -
    - -

    PendSV_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f10x_it.o(i.PendSV_Handler)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    RCC_APB1PeriphClockCmd (Thumb, 26 bytes, Stack size 0 bytes, stm32f10x_rcc.o(i.RCC_APB1PeriphClockCmd)) -

    [Called By]

    • >>   CAN2_Mode_Init -
    • >>   BSP_BKP_Init -
    - -

    RCC_APB1PeriphResetCmd (Thumb, 26 bytes, Stack size 0 bytes, stm32f10x_rcc.o(i.RCC_APB1PeriphResetCmd)) -

    [Called By]

    • >>   CAN_DeInit -
    - -

    RCC_APB2PeriphClockCmd (Thumb, 26 bytes, Stack size 0 bytes, stm32f10x_rcc.o(i.RCC_APB2PeriphClockCmd)) -

    [Called By]

    • >>   CAN2_Mode_Init -
    • >>   bsp_InitI2C -
    • >>   LED_Init -
    - -

    RCC_GetClocksFreq (Thumb, 374 bytes, Stack size 24 bytes, stm32f10x_rcc.o(i.RCC_GetClocksFreq)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = RCC_GetClocksFreq -
    -
    [Called By]
    • >>   main -
    - -

    SA_Compare (Thumb, 36 bytes, Stack size 16 bytes, uds_sa_c301.o(i.SA_Compare)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = SA_Compare -
    -
    [Called By]
    • >>   Diag_SecurityAccess -
    - -

    SA_GenerateKey (Thumb, 132 bytes, Stack size 20 bytes, uds_sa_c301.o(i.SA_GenerateKey)) -

    [Stack]

    • Max Depth = 20
    • Call Chain = SA_GenerateKey -
    -
    [Called By]
    • >>   Diag_SecurityAccess -
    - -

    SA_GenerateKeyFBL (Thumb, 130 bytes, Stack size 20 bytes, uds_sa_c301.o(i.SA_GenerateKeyFBL)) -

    [Stack]

    • Max Depth = 20
    • Call Chain = SA_GenerateKeyFBL -
    -
    [Called By]
    • >>   Diag_SecurityAccess -
    - -

    SA_Random (Thumb, 92 bytes, Stack size 24 bytes, uds_sa_c301.o(i.SA_Random)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = SA_Random -
    -
    [Calls]
    • >>   CanTask_GetSaRandom -
    -
    [Called By]
    • >>   Diag_SecurityAccess -
    - -

    SVC_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f10x_it.o(i.SVC_Handler)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    SysTick_Handler (Thumb, 64 bytes, Stack size 0 bytes, dev_sys.o(i.SysTick_Handler)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    SysTick_Init (Thumb, 92 bytes, Stack size 12 bytes, dev_sys.o(i.SysTick_Init)) -

    [Stack]

    • Max Depth = 12
    • Call Chain = SysTick_Init -
    -
    [Called By]
    • >>   main -
    - -

    SystemInit (Thumb, 92 bytes, Stack size 8 bytes, system_stm32f10x.o(i.SystemInit)) -

    [Stack]

    • Max Depth = 28
    • Call Chain = SystemInit ⇒ SetSysClock ⇒ SetSysClockTo72 -
    -
    [Calls]
    • >>   SetSysClock -
    -
    [Called By]
    • >>   main -
    -
    [Address Reference Count : 1]
    • startup_stm32f10x_cl.o(.text) -
    -

    TickOut (Thumb, 58 bytes, Stack size 0 bytes, dev_sys.o(i.TickOut)) -

    [Called By]

    • >>   CAN2_SCE_IRQHandler -
    - -

    TimeTaskDispatch_Flag (Thumb, 318 bytes, Stack size 0 bytes, dev_sys.o(i.TimeTaskDispatch_Flag)) -

    [Called By]

    • >>   main -
    - -

    UDS_ForcPendingReset (Thumb, 12 bytes, Stack size 0 bytes, uds.o(i.UDS_ForcPendingReset)) -

    [Called By]

    • >>   Uds_ProcessFinished -
    • >>   Uds_PowerOnInit -
    - -

    Uds_CheckAdrrType (Thumb, 16 bytes, Stack size 0 bytes, uds.o(i.Uds_CheckAdrrType)) -

    [Called By]

    • >>   Diag_WriteDataByIdentifier -
    • >>   Diag_SecurityAccess -
    • >>   Diag_RoutineControl -
    • >>   Diag_ReadDataByIdentifier -
    • >>   Diag_EcuReset -
    • >>   Diag_ControlDTCSetting -
    • >>   Diag_CommunicationControl -
    • >>   Uds_TesterPresent -
    • >>   Uds_DiagControlSession -
    - -

    Uds_CommunicationControl (Thumb, 12 bytes, Stack size 8 bytes, uds.o(i.Uds_CommunicationControl)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = Uds_CommunicationControl ⇒ Diag_CommunicationControl ⇒ Uds_ProcessFinished -
    -
    [Calls]
    • >>   Diag_CommunicationControl -
    -
    [Address Reference Count : 1]
    • canconfig_c301.o(.constdata) -
    -

    Uds_ControlDTCSetting (Thumb, 12 bytes, Stack size 8 bytes, uds.o(i.Uds_ControlDTCSetting)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = Uds_ControlDTCSetting ⇒ Diag_ControlDTCSetting ⇒ Uds_ProcessFinished -
    -
    [Calls]
    • >>   Diag_ControlDTCSetting -
    -
    [Address Reference Count : 1]
    • canconfig_c301.o(.constdata) -
    -

    Uds_CopyToCAN (Thumb, 22 bytes, Stack size 16 bytes, uds.o(i.Uds_CopyToCAN)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = Uds_CopyToCAN -
    -
    [Calls]
    • >>   Uds_CopyToCanMemCpy -
    -
    [Address Reference Count : 1]
    • iso15765-2_entry.o(.data) -
    -

    Uds_DiagControlSession (Thumb, 232 bytes, Stack size 24 bytes, uds.o(i.Uds_DiagControlSession)) -

    [Stack]

    • Max Depth = 104
    • Call Chain = Uds_DiagControlSession ⇒ Uds_SetState ⇒ Diag_CheckValidApp1 ⇒ ee_ReadBytes ⇒ IIC_Read_Byte ⇒ IIC_NAck -
    -
    [Calls]
    • >>   Diag_AppDataInit -
    • >>   CanTask_SetStayInBootFlagValue -
    • >>   Uds_SetNRC -
    • >>   Uds_ResponseEnable -
    • >>   Uds_ProcessFinished -
    • >>   Uds_CheckAdrrType -
    • >>   Uds_SetState -
    -
    [Address Reference Count : 1]
    • canconfig_c301.o(.constdata) -
    -

    Uds_ECUReset (Thumb, 12 bytes, Stack size 8 bytes, uds.o(i.Uds_ECUReset)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = Uds_ECUReset ⇒ Diag_EcuReset ⇒ Uds_ProcessFinished -
    -
    [Calls]
    • >>   Diag_EcuReset -
    -
    [Address Reference Count : 1]
    • canconfig_c301.o(.constdata) -
    -

    Uds_ForceTransmitResPending (Thumb, 42 bytes, Stack size 8 bytes, uds.o(i.Uds_ForceTransmitResPending)) -

    [Stack]

    • Max Depth = 288
    • Call Chain = Uds_ForceTransmitResPending ⇒ ISO15765_CanTransmitMsgWithDlc ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   ISO15765_CanTransmitMsgWithDlc -
    -
    [Called By]
    • >>   Diag_FlashCalcCRC -
    • >>   Diag_RoutineControl -
    - -

    Uds_GetCurSessionAccessStatus (Thumb, 6 bytes, Stack size 0 bytes, uds.o(i.Uds_GetCurSessionAccessStatus)) -

    [Called By]

    • >>   Diag_RoutineControl -
    • >>   CanTask_ReprogrammingCheck -
    - -

    Uds_GetCurSessionState (Thumb, 10 bytes, Stack size 0 bytes, uds.o(i.Uds_GetCurSessionState)) -

    [Called By]

    • >>   Diag_SecurityAccess -
    • >>   Uds_TransSessionType -
    • >>   Uds_SetState -
    • >>   Uds_Scheduler -
    - -

    Uds_GetNRC (Thumb, 6 bytes, Stack size 0 bytes, uds.o(i.Uds_GetNRC)) -

    [Called By]

    • >>   Diag_RequestDownload -
    • >>   Diag_ReadDataByIdentifier -
    - -

    Uds_PhysFuncGetBuffer (Thumb, 78 bytes, Stack size 24 bytes, uds.o(i.Uds_PhysFuncGetBuffer)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = Uds_PhysFuncGetBuffer -
    -
    [Calls]
    • >>   ISO15765_RxSetFCStatus -
    • >>   Uds_NetLayerStartRec -
    -
    [Address Reference Count : 1]
    • iso15765-2_entry.o(.data) -
    -

    Uds_PhysReqInd (Thumb, 24 bytes, Stack size 8 bytes, uds.o(i.Uds_PhysReqInd)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = Uds_PhysReqInd ⇒ ISO15765_RxResetBus ⇒ ISO15765_RxInit -
    -
    [Calls]
    • >>   ISO15765_RxResetBus -
    • >>   Uds_NetLayerEndOfRec -
    -
    [Address Reference Count : 1]
    • iso15765-2_entry.o(.data) -
    -

    Uds_PhysRxErrorIndication (Thumb, 12 bytes, Stack size 8 bytes, uds.o(i.Uds_PhysRxErrorIndication)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = Uds_PhysRxErrorIndication -
    -
    [Calls]
    • >>   Uds_NetLayerEndOfRec -
    -
    [Address Reference Count : 1]
    • iso15765-2_entry.o(.data) -
    -

    Uds_PowerOnInit (Thumb, 128 bytes, Stack size 8 bytes, uds.o(i.Uds_PowerOnInit)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = Uds_PowerOnInit -
    -
    [Calls]
    • >>   Diag_AppDataInit -
    • >>   UDS_ForcPendingReset -
    -
    [Called By]
    • >>   CanTask_InitProcess -
    - -

    Uds_ProcessFinished (Thumb, 94 bytes, Stack size 8 bytes, uds.o(i.Uds_ProcessFinished)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = Uds_ProcessFinished -
    -
    [Calls]
    • >>   UDS_ForcPendingReset -
    -
    [Called By]
    • >>   Diag_WriteDataByIdentifier -
    • >>   Diag_TransferData -
    • >>   Diag_SecurityAccess -
    • >>   Diag_RoutineControl -
    • >>   Diag_RequestTransferExit -
    • >>   Diag_RequestDownload -
    • >>   Diag_ReadDataByIdentifier -
    • >>   Diag_EcuReset -
    • >>   Diag_ControlDTCSetting -
    • >>   Diag_CommunicationControl -
    • >>   Uds_TesterPresent -
    • >>   Uds_DiagControlSession -
    • >>   Uds_Scheduler -
    - -

    Uds_ReadDataByIdentifier (Thumb, 12 bytes, Stack size 8 bytes, uds.o(i.Uds_ReadDataByIdentifier)) -

    [Stack]

    • Max Depth = 160
    • Call Chain = Uds_ReadDataByIdentifier ⇒ Diag_ReadDataByIdentifier ⇒ Uds_ProcessFinished -
    -
    [Calls]
    • >>   Diag_ReadDataByIdentifier -
    -
    [Address Reference Count : 1]
    • canconfig_c301.o(.constdata) -
    -

    Uds_RequestDownload (Thumb, 12 bytes, Stack size 8 bytes, uds.o(i.Uds_RequestDownload)) -

    [Stack]

    • Max Depth = 48
    • Call Chain = Uds_RequestDownload ⇒ Diag_RequestDownload ⇒ Uds_ProcessFinished -
    -
    [Calls]
    • >>   Diag_RequestDownload -
    -
    [Address Reference Count : 1]
    • canconfig_c301.o(.constdata) -
    -

    Uds_RequestTransferExit (Thumb, 12 bytes, Stack size 8 bytes, uds.o(i.Uds_RequestTransferExit)) -

    [Stack]

    • Max Depth = 352
    • Call Chain = Uds_RequestTransferExit ⇒ Diag_RequestTransferExit ⇒ Diag_FlashCalcCRC ⇒ Uds_ForceTransmitResPending ⇒ ISO15765_CanTransmitMsgWithDlc ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   Diag_RequestTransferExit -
    -
    [Address Reference Count : 1]
    • canconfig_c301.o(.constdata) -
    -

    Uds_ResponseEnable (Thumb, 10 bytes, Stack size 0 bytes, uds.o(i.Uds_ResponseEnable)) -

    [Called By]

    • >>   Diag_EcuReset -
    • >>   Diag_ControlDTCSetting -
    • >>   Diag_CommunicationControl -
    • >>   Uds_TesterPresent -
    • >>   Uds_DiagControlSession -
    • >>   Uds_TransmitResponse -
    - -

    Uds_RoutineControl (Thumb, 12 bytes, Stack size 8 bytes, uds.o(i.Uds_RoutineControl)) -

    [Stack]

    • Max Depth = 344
    • Call Chain = Uds_RoutineControl ⇒ Diag_RoutineControl ⇒ Uds_ForceTransmitResPending ⇒ ISO15765_CanTransmitMsgWithDlc ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   Diag_RoutineControl -
    -
    [Address Reference Count : 1]
    • canconfig_c301.o(.constdata) -
    -

    Uds_SecurityAccess (Thumb, 12 bytes, Stack size 8 bytes, uds.o(i.Uds_SecurityAccess)) -

    [Stack]

    • Max Depth = 72
    • Call Chain = Uds_SecurityAccess ⇒ Diag_SecurityAccess ⇒ SA_Random -
    -
    [Calls]
    • >>   Diag_SecurityAccess -
    -
    [Address Reference Count : 1]
    • canconfig_c301.o(.constdata) -
    -

    Uds_SetNRC (Thumb, 6 bytes, Stack size 0 bytes, uds.o(i.Uds_SetNRC)) -

    [Called By]

    • >>   Diag_WriteDataByIdentifier -
    • >>   Diag_TransferData -
    • >>   Diag_SecurityAccess -
    • >>   Diag_RoutineControl -
    • >>   Diag_RequestTransferExit -
    • >>   Diag_RequestDownload -
    • >>   Diag_ReadDataByIdentifier -
    • >>   Diag_EcuReset -
    • >>   Diag_ControlDTCSetting -
    • >>   Diag_CommunicationControl -
    • >>   Uds_TesterPresent -
    • >>   Uds_DiagControlSession -
    - -

    Uds_SetProtect (Thumb, 6 bytes, Stack size 0 bytes, uds.o(i.Uds_SetProtect)) -

    [Called By]

    • >>   Diag_SecurityAccess -
    - -

    Uds_SetSupFuncEnableFlag (Thumb, 8 bytes, Stack size 0 bytes, uds.o(i.Uds_SetSupFuncEnableFlag)) -

    [Called By]

    • >>   Diag_WriteDataByIdentifier -
    • >>   Diag_SecurityAccess -
    • >>   Diag_RoutineControl -
    • >>   Diag_ReadDataByIdentifier -
    • >>   Diag_EcuReset -
    • >>   Diag_ControlDTCSetting -
    • >>   Diag_CommunicationControl -
    • >>   Uds_TesterPresent -
    - -

    Uds_StateTask (Thumb, 14 bytes, Stack size 8 bytes, uds.o(i.Uds_StateTask)) -

    [Stack]

    • Max Depth = 104
    • Call Chain = Uds_StateTask ⇒ Uds_ContextTask ⇒ Uds_SetState ⇒ Diag_CheckValidApp1 ⇒ ee_ReadBytes ⇒ IIC_Read_Byte ⇒ IIC_NAck -
    -
    [Calls]
    • >>   Uds_ContextTask -
    -
    [Called By]
    • >>   CanTask_UdsStateProcess -
    - -

    Uds_Task (Thumb, 8 bytes, Stack size 8 bytes, uds.o(i.Uds_Task)) -

    [Stack]

    • Max Depth = 96
    • Call Chain = Uds_Task ⇒ Uds_TimerTask ⇒ Uds_SetState ⇒ Diag_CheckValidApp1 ⇒ ee_ReadBytes ⇒ IIC_Read_Byte ⇒ IIC_NAck -
    -
    [Calls]
    • >>   Uds_TimerTask -
    -
    [Called By]
    • >>   CanTask_TimerProcess -
    - -

    Uds_TesterPresent (Thumb, 84 bytes, Stack size 16 bytes, uds.o(i.Uds_TesterPresent)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = Uds_TesterPresent ⇒ Uds_ProcessFinished -
    -
    [Calls]
    • >>   Uds_SetSupFuncEnableFlag -
    • >>   Uds_SetNRC -
    • >>   Uds_ResponseEnable -
    • >>   Uds_ProcessFinished -
    • >>   Uds_CheckAdrrType -
    -
    [Address Reference Count : 1]
    • canconfig_c301.o(.constdata) -
    -

    Uds_TransSessionType (Thumb, 76 bytes, Stack size 8 bytes, uds.o(i.Uds_TransSessionType)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = Uds_TransSessionType -
    -
    [Calls]
    • >>   CanTask_FBLInit -
    • >>   Uds_GetCurSessionState -
    • >>   Uds_SetStateSessionAccess -
    • >>   Uds_SetFlashProtect -
    -
    [Called By]
    • >>   Uds_SetState -
    - -

    Uds_TransferData (Thumb, 12 bytes, Stack size 8 bytes, uds.o(i.Uds_TransferData)) -

    [Stack]

    • Max Depth = 64
    • Call Chain = Uds_TransferData ⇒ Diag_TransferData ⇒ Diag_RamWrite ⇒ Diag_MemCpy -
    -
    [Calls]
    • >>   Diag_TransferData -
    -
    [Address Reference Count : 1]
    • canconfig_c301.o(.constdata) -
    -

    Uds_TxConfirmation (Thumb, 24 bytes, Stack size 16 bytes, uds.o(i.Uds_TxConfirmation)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = Uds_TxConfirmation ⇒ Uds_NetLayerEndOfTrans -
    -
    [Calls]
    • >>   Uds_NetLayerEndOfTrans -
    -
    [Called By]
    • >>   Uds_TxErrorIndication -
    • >>   Uds_TransmitResponse -
    -
    [Address Reference Count : 1]
    • iso15765-2_entry.o(.data) -
    -

    Uds_TxErrorIndication (Thumb, 12 bytes, Stack size 8 bytes, uds.o(i.Uds_TxErrorIndication)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = Uds_TxErrorIndication ⇒ Uds_TxConfirmation ⇒ Uds_NetLayerEndOfTrans -
    -
    [Calls]
    • >>   Uds_TxConfirmation -
    -
    [Address Reference Count : 1]
    • iso15765-2_entry.o(.data) -
    -

    Uds_WriteDataByIdentifier (Thumb, 12 bytes, Stack size 8 bytes, uds.o(i.Uds_WriteDataByIdentifier)) -

    [Stack]

    • Max Depth = 48
    • Call Chain = Uds_WriteDataByIdentifier ⇒ Diag_WriteDataByIdentifier ⇒ Diag_MemCopy -
    -
    [Calls]
    • >>   Diag_WriteDataByIdentifier -
    -
    [Address Reference Count : 1]
    • canconfig_c301.o(.constdata) -
    -

    UsageFault_Handler (Thumb, 4 bytes, Stack size 0 bytes, stm32f10x_it.o(i.UsageFault_Handler)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    _Bzip2_InitTable (Thumb, 56 bytes, Stack size 0 bytes, uds_sa_c301.o(i._Bzip2_InitTable)) -

    [Called By]

    • >>   Bzip2_Init -
    - -

    __scatterload_copy (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED) - -

    __scatterload_null (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED) - -

    __scatterload_zeroinit (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED) - -

    bsp_InitI2C (Thumb, 88 bytes, Stack size 8 bytes, bsp_i2c_gpio.o(i.bsp_InitI2C)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = bsp_InitI2C ⇒ GPIO_Init -
    -
    [Calls]
    • >>   RCC_APB2PeriphClockCmd -
    • >>   GPIO_SetBits -
    • >>   GPIO_Init -
    -
    [Called By]
    • >>   ee_Init -
    - -

    ee_Init (Thumb, 8 bytes, Stack size 8 bytes, 24cxx.o(i.ee_Init)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = ee_Init ⇒ bsp_InitI2C ⇒ GPIO_Init -
    -
    [Calls]
    • >>   bsp_InitI2C -
    -
    [Called By]
    • >>   main -
    - -

    ee_ReadBytes (Thumb, 134 bytes, Stack size 24 bytes, 24cxx.o(i.ee_ReadBytes)) -

    [Stack]

    • Max Depth = 48
    • Call Chain = ee_ReadBytes ⇒ IIC_Read_Byte ⇒ IIC_NAck -
    -
    [Calls]
    • >>   IIC_Wait_Ack -
    • >>   IIC_Stop -
    • >>   IIC_Start -
    • >>   IIC_Send_Byte -
    • >>   IIC_Read_Byte -
    -
    [Called By]
    • >>   Diag_CheckValidApp1 -
    - -

    flashInit (Thumb, 8 bytes, Stack size 0 bytes, dev_flashapi.o(i.flashInit)) -

    [Called By]

    • >>   Diag_RequestEraseFlash -
    • >>   Diag_DataProgram -
    • >>   Diag_ClrAPP1UpdateMark -
    - -

    flashdnit (Thumb, 16 bytes, Stack size 0 bytes, dev_flashapi.o(i.flashdnit)) -

    [Called By]

    • >>   Diag_RequestEraseFlash -
    • >>   Diag_DataProgram -
    • >>   Diag_ClrAPP1UpdateMark -
    - -

    main (Thumb, 194 bytes, Stack size 24 bytes, main.o(i.main)) -

    [Stack]

    • Max Depth = 352
    • Call Chain = main ⇒ Uds_SysTick_Process_10ms ⇒ Can_Task ⇒ CanTask_TimerProcess ⇒ ISO15765_Task ⇒ ISO15765_TxTask ⇒ ISO15765_TxStateTask ⇒ ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   RCC_GetClocksFreq -
    • >>   GPIO_ResetBits -
    • >>   SystemInit -
    • >>   TimeTaskDispatch_Flag -
    • >>   SysTick_Init -
    • >>   NVIC_Configuration -
    • >>   CAN2_Mode_Init -
    • >>   ee_Init -
    • >>   LED_Init -
    • >>   Diag_HndUpdataEV -
    • >>   CanTask_InitProcess -
    • >>   BSP_BKP_Init -
    • >>   uds_SysTick_Process_1ms -
    • >>   Uds_SysTick_Process_10ms -
    -
    [Address Reference Count : 1]
    • entry9a.o(.ARM.Collect$$$$0000000B) -

    -

    -Local Symbols -

    -

    CheckITStatus (Thumb, 18 bytes, Stack size 0 bytes, stm32f10x_can.o(i.CheckITStatus)) -

    [Called By]

    • >>   CAN_GetITStatus -
    - -

    i2c_Delay (Thumb, 14 bytes, Stack size 0 bytes, bsp_i2c_gpio.o(i.i2c_Delay)) -

    [Called By]

    • >>   IIC_NAck -
    • >>   IIC_Ack -
    • >>   IIC_Wait_Ack -
    • >>   IIC_Stop -
    • >>   IIC_Start -
    • >>   IIC_Send_Byte -
    • >>   IIC_Read_Byte -
    - -

    can_bus_open_hook (Thumb, 18 bytes, Stack size 0 bytes, can2.o(i.can_bus_open_hook)) -

    [Called By]

    • >>   CAN2_Mode_Init -
    - -

    can_bus_ready_hook (Thumb, 34 bytes, Stack size 0 bytes, can2.o(i.can_bus_ready_hook)) -

    [Called By]

    • >>   CAN2_RX1_IRQHandler -
    - -

    can_bus_send_ready (Thumb, 32 bytes, Stack size 0 bytes, can2.o(i.can_bus_send_ready)) -

    [Called By]

    • >>   Can2_Send_Message -
    - -

    SetSysClock (Thumb, 8 bytes, Stack size 8 bytes, system_stm32f10x.o(i.SetSysClock)) -

    [Stack]

    • Max Depth = 20
    • Call Chain = SetSysClock ⇒ SetSysClockTo72 -
    -
    [Calls]
    • >>   SetSysClockTo72 -
    -
    [Called By]
    • >>   SystemInit -
    - -

    SetSysClockTo72 (Thumb, 266 bytes, Stack size 12 bytes, system_stm32f10x.o(i.SetSysClockTo72)) -

    [Stack]

    • Max Depth = 12
    • Call Chain = SetSysClockTo72 -
    -
    [Called By]
    • >>   SetSysClock -
    - -

    Uds_ContextTask (Thumb, 226 bytes, Stack size 16 bytes, uds.o(i.Uds_ContextTask)) -

    [Stack]

    • Max Depth = 96
    • Call Chain = Uds_ContextTask ⇒ Uds_SetState ⇒ Diag_CheckValidApp1 ⇒ ee_ReadBytes ⇒ IIC_Read_Byte ⇒ IIC_NAck -
    -
    [Calls]
    • >>   Diag_MemCopy -
    • >>   Uds_TransmitResponse -
    • >>   Uds_SetState -
    • >>   Uds_Scheduler -
    -
    [Called By]
    • >>   Uds_StateTask -
    - -

    Uds_CopyToCanMemCpy (Thumb, 16 bytes, Stack size 0 bytes, uds.o(i.Uds_CopyToCanMemCpy)) -

    [Called By]

    • >>   Uds_CopyToCAN -
    - -

    Uds_NetLayerEndOfRec (Thumb, 44 bytes, Stack size 0 bytes, uds.o(i.Uds_NetLayerEndOfRec)) -

    [Called By]

    • >>   Uds_PhysRxErrorIndication -
    • >>   Uds_PhysReqInd -
    - -

    Uds_NetLayerEndOfTrans (Thumb, 44 bytes, Stack size 16 bytes, uds.o(i.Uds_NetLayerEndOfTrans)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = Uds_NetLayerEndOfTrans -
    -
    [Calls]
    • >>   Uds_PostProcessing -
    -
    [Called By]
    • >>   Uds_TxConfirmation -
    - -

    Uds_NetLayerStartRec (Thumb, 24 bytes, Stack size 0 bytes, uds.o(i.Uds_NetLayerStartRec)) -

    [Called By]

    • >>   Uds_PhysFuncGetBuffer -
    - -

    Uds_PostProcessing (Thumb, 24 bytes, Stack size 0 bytes, uds.o(i.Uds_PostProcessing)) -

    [Called By]

    • >>   Uds_NetLayerEndOfTrans -
    - -

    Uds_Scheduler (Thumb, 1436 bytes, Stack size 40 bytes, uds.o(i.Uds_Scheduler)) -

    [Stack]

    • Max Depth = 48
    • Call Chain = Uds_Scheduler ⇒ Uds_ProcessFinished -
    -
    [Calls]
    • >>   Uds_ProcessFinished -
    • >>   Uds_GetCurSessionState -
    -
    [Called By]
    • >>   Uds_ContextTask -
    - -

    Uds_SetFlashProtect (Thumb, 6 bytes, Stack size 0 bytes, uds.o(i.Uds_SetFlashProtect)) -

    [Called By]

    • >>   Uds_TransSessionType -
    - -

    Uds_SetState (Thumb, 78 bytes, Stack size 16 bytes, uds.o(i.Uds_SetState)) -

    [Stack]

    • Max Depth = 80
    • Call Chain = Uds_SetState ⇒ Diag_CheckValidApp1 ⇒ ee_ReadBytes ⇒ IIC_Read_Byte ⇒ IIC_NAck -
    -
    [Calls]
    • >>   Diag_CheckValidApp1 -
    • >>   CanTask_SetStayInBootFlagValue -
    • >>   CanTask_IsAppBeenErased -
    • >>   Uds_TransSessionType -
    • >>   Uds_GetCurSessionState -
    -
    [Called By]
    • >>   Uds_DiagControlSession -
    • >>   Uds_TimerTask -
    • >>   Uds_ContextTask -
    - -

    Uds_SetStateSessionAccess (Thumb, 6 bytes, Stack size 0 bytes, uds.o(i.Uds_SetStateSessionAccess)) -

    [Called By]

    • >>   Uds_TransSessionType -
    - -

    Uds_TimerTask (Thumb, 406 bytes, Stack size 8 bytes, uds.o(i.Uds_TimerTask)) -

    [Stack]

    • Max Depth = 88
    • Call Chain = Uds_TimerTask ⇒ Uds_SetState ⇒ Diag_CheckValidApp1 ⇒ ee_ReadBytes ⇒ IIC_Read_Byte ⇒ IIC_NAck -
    -
    [Calls]
    • >>   BSP_vSystemReset -
    • >>   Uds_TransmitResPending -
    • >>   Uds_SetState -
    -
    [Called By]
    • >>   Uds_Task -
    - -

    Uds_TransmitResPending (Thumb, 28 bytes, Stack size 8 bytes, uds.o(i.Uds_TransmitResPending)) -

    [Stack]

    • Max Depth = 56
    • Call Chain = Uds_TransmitResPending ⇒ Uds_TransmitResponse ⇒ Uds_TxConfirmation ⇒ Uds_NetLayerEndOfTrans -
    -
    [Calls]
    • >>   Uds_TransmitResponse -
    -
    [Called By]
    • >>   Uds_TimerTask -
    - -

    Uds_TransmitResponse (Thumb, 40 bytes, Stack size 16 bytes, uds.o(i.Uds_TransmitResponse)) -

    [Stack]

    • Max Depth = 48
    • Call Chain = Uds_TransmitResponse ⇒ Uds_TxConfirmation ⇒ Uds_NetLayerEndOfTrans -
    -
    [Calls]
    • >>   ISO15765_Transmit -
    • >>   Uds_TxConfirmation -
    • >>   Uds_ResponseEnable -
    -
    [Called By]
    • >>   Uds_TransmitResPending -
    • >>   Uds_ContextTask -
    - -

    ISO15765_Init (Thumb, 12 bytes, Stack size 8 bytes, iso15765-2.o(i.ISO15765_Init)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = ISO15765_Init ⇒ ISO15765_TxInit -
    -
    [Calls]
    • >>   ISO15765_TxInit -
    • >>   ISO15765_RxInit -
    -
    [Called By]
    • >>   ISO15765_InitPowerOn -
    - -

    ISO15765_PreCanTransmit (Thumb, 486 bytes, Stack size 24 bytes, iso15765-2.o(i.ISO15765_PreCanTransmit)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = ISO15765_PreCanTransmit -
    -
    [Calls]
    • >>   ISO15765_SetOptimalDlc -
    -
    [Called By]
    • >>   ISO15765_TxStateTask -
    - -

    ISO15765_PreTransmitClearCanDataPtr (Thumb, 22 bytes, Stack size 0 bytes, iso15765-2.o(i.ISO15765_PreTransmitClearCanDataPtr)) -

    [Called By]

    • >>   ISO15765_TxStateTask -
    - -

    ISO15765_RxFinishProcess (Thumb, 54 bytes, Stack size 0 bytes, iso15765-2.o(i.ISO15765_RxFinishProcess)) -

    [Called By]

    • >>   ISO15765_DrvConfirmation -
    - -

    ISO15765_RxInit (Thumb, 98 bytes, Stack size 8 bytes, iso15765-2.o(i.ISO15765_RxInit)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = ISO15765_RxInit -
    -
    [Calls]
    • >>   IF_CAN_CancelTransmitMsg -
    -
    [Called By]
    • >>   ISO15765_Precopy -
    • >>   ISO15765_RxTask -
    • >>   ISO15765_Init -
    • >>   ISO15765_RxResetBus -
    - -

    ISO15765_RxStateTask (Thumb, 226 bytes, Stack size 16 bytes, iso15765-2.o(i.ISO15765_RxStateTask)) -

    [Stack]

    • Max Depth = 288
    • Call Chain = ISO15765_RxStateTask ⇒ ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   ISO15765_CanTransmitMsg -
    -
    [Called By]
    • >>   ISO15765_Precopy -
    • >>   ISO15765_RxTask -
    - -

    ISO15765_RxTask (Thumb, 122 bytes, Stack size 8 bytes, iso15765-2.o(i.ISO15765_RxTask)) -

    [Stack]

    • Max Depth = 296
    • Call Chain = ISO15765_RxTask ⇒ ISO15765_RxStateTask ⇒ ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   ISO15765_RxStateTask -
    • >>   ISO15765_RxInit -
    -
    [Called By]
    • >>   ISO15765_Task -
    - -

    ISO15765_SetOptimalDlc (Thumb, 50 bytes, Stack size 0 bytes, iso15765-2.o(i.ISO15765_SetOptimalDlc)) -

    [Called By]

    • >>   ISO15765_PreCanTransmit -
    - -

    ISO15765_TransmitOfCF (Thumb, 72 bytes, Stack size 0 bytes, iso15765-2.o(i.ISO15765_TransmitOfCF)) -

    [Called By]

    • >>   ISO15765_TxTask -
    - -

    ISO15765_TxFinishProcess (Thumb, 126 bytes, Stack size 8 bytes, iso15765-2.o(i.ISO15765_TxFinishProcess)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = ISO15765_TxFinishProcess -
    -
    [Called By]
    • >>   ISO15765_DrvConfirmation -
    - -

    ISO15765_TxInit (Thumb, 114 bytes, Stack size 8 bytes, iso15765-2.o(i.ISO15765_TxInit)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = ISO15765_TxInit -
    -
    [Calls]
    • >>   IF_CAN_CancelTransmitMsg -
    -
    [Called By]
    • >>   ISO15765_Precopy -
    • >>   ISO15765_TxTask -
    • >>   ISO15765_Init -
    - -

    ISO15765_TxStateTask (Thumb, 232 bytes, Stack size 16 bytes, iso15765-2.o(i.ISO15765_TxStateTask)) -

    [Stack]

    • Max Depth = 288
    • Call Chain = ISO15765_TxStateTask ⇒ ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   ISO15765_CanTransmitMsg -
    • >>   ISO15765_PreTransmitClearCanDataPtr -
    • >>   ISO15765_PreCanTransmit -
    -
    [Called By]
    • >>   ISO15765_TxTask -
    - -

    ISO15765_TxTask (Thumb, 90 bytes, Stack size 8 bytes, iso15765-2.o(i.ISO15765_TxTask)) -

    [Stack]

    • Max Depth = 296
    • Call Chain = ISO15765_TxTask ⇒ ISO15765_TxStateTask ⇒ ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   ISO15765_TxStateTask -
    • >>   ISO15765_TxInit -
    • >>   ISO15765_TransmitOfCF -
    -
    [Called By]
    • >>   ISO15765_Task -
    - -

    CanTrans_Delay (Thumb, 16 bytes, Stack size 0 bytes, can_transceiver.o(i.CanTrans_Delay)) -

    [Called By]

    • >>   CanTrans_GoToSleep -
    - -

    Diag_CommDisable (Thumb, 12 bytes, Stack size 0 bytes, diag_appl_c301.o(i.Diag_CommDisable)) -

    [Called By]

    • >>   Diag_CommunicationControl -
    - -

    Diag_CommEnable (Thumb, 12 bytes, Stack size 0 bytes, diag_appl_c301.o(i.Diag_CommEnable)) -

    [Called By]

    • >>   Diag_CommunicationControl -
    - -

    JumpToExecute (Thumb, 30 bytes, Stack size 8 bytes, main.o(i.JumpToExecute)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = JumpToExecute -
    -
    [Calls]
    • >>   __set_MSP -
    -
    [Called By]
    • >>   Sys_GotoApp -
    - -

    Sys_GotoApp (Thumb, 8 bytes, Stack size 8 bytes, main.o(i.Sys_GotoApp)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = Sys_GotoApp ⇒ JumpToExecute -
    -
    [Calls]
    • >>   JumpToExecute -
    -
    [Called By]
    • >>   Task_RunToApp -
    - -

    Task_RunToApp (Thumb, 44 bytes, Stack size 8 bytes, main.o(i.Task_RunToApp)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = Task_RunToApp ⇒ Sys_GotoApp ⇒ JumpToExecute -
    -
    [Calls]
    • >>   Sys_GotoApp -
    -
    [Called By]
    • >>   Uds_SysTick_Process_10ms -
    - -

    Uds_SysTick_Process_10ms (Thumb, 12 bytes, Stack size 8 bytes, main.o(i.Uds_SysTick_Process_10ms)) -

    [Stack]

    • Max Depth = 328
    • Call Chain = Uds_SysTick_Process_10ms ⇒ Can_Task ⇒ CanTask_TimerProcess ⇒ ISO15765_Task ⇒ ISO15765_TxTask ⇒ ISO15765_TxStateTask ⇒ ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   Can_Task -
    • >>   Task_RunToApp -
    -
    [Called By]
    • >>   main -
    - -

    uds_SysTick_Process_1ms (Thumb, 8 bytes, Stack size 8 bytes, main.o(i.uds_SysTick_Process_1ms)) -

    [Stack]

    • Max Depth = 120
    • Call Chain = uds_SysTick_Process_1ms ⇒ CanTask_UdsStateProcess ⇒ Uds_StateTask ⇒ Uds_ContextTask ⇒ Uds_SetState ⇒ Diag_CheckValidApp1 ⇒ ee_ReadBytes ⇒ IIC_Read_Byte ⇒ IIC_NAck -
    -
    [Calls]
    • >>   CanTask_UdsStateProcess -
    -
    [Called By]
    • >>   main -
    - -

    APP_CAN_MessageTypeHandle (Thumb, 92 bytes, Stack size 16 bytes, app_can.o(i.APP_CAN_MessageTypeHandle)) -

    [Stack]

    • Max Depth = 320
    • Call Chain = APP_CAN_MessageTypeHandle ⇒ ISO15765_Precopy ⇒ ISO15765_RxStateTask ⇒ ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   ISO15765_Precopy -
    -
    [Called By]
    • >>   APP_CAN_FifoMessageReceive -
    - -

    CanTask_ReprogrammingCheck (Thumb, 26 bytes, Stack size 8 bytes, app_can.o(i.CanTask_ReprogrammingCheck)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = CanTask_ReprogrammingCheck -
    -
    [Calls]
    • >>   Uds_GetCurSessionAccessStatus -
    -
    [Called By]
    • >>   CanTask_TimerProcess -
    - -

    CanTask_SaRandomCounter (Thumb, 12 bytes, Stack size 0 bytes, app_can.o(i.CanTask_SaRandomCounter)) -

    [Called By]

    • >>   CanTask_TimerProcess -
    - -

    CanTask_TimerProcess (Thumb, 24 bytes, Stack size 8 bytes, app_can.o(i.CanTask_TimerProcess)) -

    [Stack]

    • Max Depth = 312
    • Call Chain = CanTask_TimerProcess ⇒ ISO15765_Task ⇒ ISO15765_TxTask ⇒ ISO15765_TxStateTask ⇒ ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   ISO15765_Task -
    • >>   Uds_Task -
    • >>   CanTask_BusErrorDetection -
    • >>   CanTask_SaRandomCounter -
    • >>   CanTask_ReprogrammingCheck -
    -
    [Called By]
    • >>   Can_Task -
    - -

    IF_CAN_CopyDataAndStartTx (Thumb, 140 bytes, Stack size 120 bytes, app_can.o(i.IF_CAN_CopyDataAndStartTx)) -

    [Stack]

    • Max Depth = 240
    • Call Chain = IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   __aeabi_memclr4 -
    • >>   IF_CAN_SendCanData -
    -
    [Called By]
    • >>   IF_CAN_TransmitMsg -
    -

    -

    -Undefined Global Symbols -


    diff --git a/boot_project/Objects/boot.lnp b/boot_project/Objects/boot.lnp deleted file mode 100644 index f072b65..0000000 --- a/boot_project/Objects/boot.lnp +++ /dev/null @@ -1,36 +0,0 @@ ---cpu Cortex-M3 -".\objects\startup_stm32f10x_cl.o" -".\objects\core_cm3.o" -".\objects\misc.o" -".\objects\stm32f10x_gpio.o" -".\objects\stm32f10x_rcc.o" -".\objects\stm32f10x_can.o" -".\objects\stm32f10x_dma.o" -".\objects\stm32f10x_flash.o" -".\objects\stm32f10x_iwdg.o" -".\objects\stm32f10x_pwr.o" -".\objects\led.o" -".\objects\24cxx.o" -".\objects\bsp_i2c_gpio.o" -".\objects\can2.o" -".\objects\stm32f10x_it.o" -".\objects\system_stm32f10x.o" -".\objects\dev_flashapi.o" -".\objects\dev_crc32.o" -".\objects\dev_sys.o" -".\objects\dev_eerom.o" -".\objects\uds.o" -".\objects\iso15765-2.o" -".\objects\iso15765-2_entry.o" -".\objects\can_transceiver.o" -".\objects\diag_eeprom_c301.o" -".\objects\canconfig_c301.o" -".\objects\canctrl_c301.o" -".\objects\diag_appl_c301.o" -".\objects\uds_sa_c301.o" -".\objects\main.o" -".\objects\app_can.o" ---library_type=microlib --strict --scatter ".\link_sct\STM32F105Boot.sct" ---summary_stderr --info summarysizes --map --load_addr_map_info --xref --callgraph --symbols ---info sizes --info totals --info unused --info veneers ---list ".\Listings\boot.map" -o .\Objects\boot.axf \ No newline at end of file diff --git a/boot_project/Objects/diag_appl_hr.__i b/boot_project/Objects/diag_appl_hr.__i deleted file mode 100644 index 3e0247a..0000000 --- a/boot_project/Objects/diag_appl_hr.__i +++ /dev/null @@ -1,6 +0,0 @@ ---c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com\inc -I ..\boot_source\code_app\service\CanStack\canBus_hongri\inc -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 --I.\RTE\_hongri_boot --IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include --IC:\Keil_v5\ARM\CMSIS\Include --D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL --o .\objects\diag_appl_hr.o --omf_browse .\objects\diag_appl_hr.crf --depend .\objects\diag_appl_hr.d "..\boot_source\code_app\service\CanStack\canBus_hongri\src\Diag_Appl_hr.c" \ No newline at end of file diff --git a/boot_project/Objects/hongri_boot.axf b/boot_project/Objects/hongri_boot.axf deleted file mode 100644 index 0565153f6b21e71bd9836b933d3643a36e9db16c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 572108 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 z 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 z zX5q{jm4HFKyy$b7HN*A44(k>0r z<222;CkLn?h3Vwba?vG`8?I8Aw^HTGz;{R=Mli3CQg+EN5*WtC`>^S+Npz#YCcqzD zJ_#?jDS0RWTUQw$^T;s+_q3toG$o;fL95gVw-#*YJ>#AvDp!IGd8yk9>C7NYg7Ml= zD0K|C!KZW>!clS@-&#JKw=N3jl6*rDTu_GSn`5qoSE66Zls#fHc~)jH-*?tfK7#=< ze95CoXZc-Dj2}04wI`bjgM+9{HTW#FA1|B1+-zA|xV}UcIBO_3lo|1RtWM@(gi?-! z%@gEbTT!T6Qd{SxQiJgLkO~SiK@Rm5b3m%46A6tI2`eWOnkN!gdAx|YKm*1BX0e2? zu+6DbCOrzrUG$@wvhSbKz~QmM!Lpd|!`LeGgZI+>V774-*SHUcw^UQpv${Ri+TFOV zzNWLLxn@nx%9`$)&X$_Sv)k(G*08NAk6>P)v}>>F=F9w_i7KLGKeF7PB33wo2t|POwbBz;SFVBg|LW+6cf*xM>1hO zo1CPagmSa1OGTqKw>Q>elsr8=oEwZBMhlU0YGIK+q892W5*j8F7EdHBafG^wiW>-S zaRb3EZXmeD4TMN>TY6UOvJf|}S>G86+tkw36I`a1VzdKj+UXdJ#u%TM{W%`Qo+HIdc7XL?jsp6Ad5p(|88HlU|{te zzd^@yl?f}i%f445ykKvgz{e5NVLZ(goL|*?9U?l~Ol$jGHY8k6gBZa|9g0CVa$y)K zeLdgpm+gZ}j%Di)&{eGXsvw=>@)reBd{$X9jFGjbg-#OGOXnb(LpT}<_u}su*##pMwD#LJD&-uJk}L?Sq&F*R$9hs z!b~65IK(oD2I_+vh$>&*BX6^1ufSGdp>u<9?eT# z5TGXiR2Z&yF!dJ%8`~9Z} zKv{!g0-~!#{2+IY2tzAd@Cxf5%ZBnJ{c3;wC>mr&kD@`r*pXf_D@%PN3w`^!*2vsq z^UW++G($AaZA~02Z_5pD9UbueKMX*)hZ;;@)0d=+IqSI?zK{EI#l~VWy`5?bkKKhB z-zi#HR)uvu!W^XUPPn_Z*?ehFk6-~=ZX6>r zTQSa!(J)Tb)zqv^mvU}cTOO9*`ZDGZIQ&JS(WU?XY5TsAX*Osw%s?u=JJY0C&(6Me zq3U~e4%x)6?^ zpSRT;Lq()bLUDWp8ie3Rl(w4g23BScaX~~@CP@4Mw@Nd#CtCLz1mn|%^$-1MBAy>* zqJ(xWB?dS9Q?U1(SIif4Ll}VW9?50${c`wdt6$aFXwJlcuQOlUN5-PWwcJKol`ob? zS7O%25MEMkzuO>>%b7t|)@(kD3cGBPDU1!2`t8r4)h=t`+=g#uyV38$kSNA$&g0LN zx_SbLtmo?<%Vcs`mc13H(3abV`2)=Vc>1YV%H^^c&BPiMe(T8%jd&|BXzj!xU*pQQ zmQ;7^1uZt9sj;nTeOqG>XD84OR(o4ZslNB+N9r(xNQbF;w1}dO+q$;3C)L!2)@yQU zZ|q*<0TgexpLLRJo=5fnu+R%IaSPHd^?$t-}h6}&bxRQ9mZO;2O&ei~HNEo3wlr~dX z>K?hbqds!4@EVpL^i7a?-^-#Jp$cLA*mVDy&xZDijF!jlhI#u=o3};8X7xqW!ouWe z_49vipsu}dnq1f0I6qSio@>esP@{OM(g=S$$KOBlH+A@&i!pTnoBbEpA1e@1_Ola^ z62v^#jwTwC3l}HGMzVOsCl)8>_HjNSv7}+)yhKl-FnD$X19F4;;foR%)@K(rN4$Db_UTTA$LT@iJB`Lbn;Y7v+j8CwoJi$&K9+82Qb^QF<{ z$=){n!TeCE*I)Q!W>PVS%Y5;e9~onuj=uL|{vaA9J)1@b>FnM$x%^;iTSG6d zHUDdB>RpK$a7>TmTJ@T1+Sfafx+FPxppl1Cmz1UuJ2R!c`==6nTmJ~}4Q>U>(>jbx z%-TfjTEd14CB8ekKe;Txi}%6TzjSHHR=mO3U+DxL>@a zP-GR(=I}$BEN*|nR*{Ou&n6NJT9dt9JuSWXH4WF7nQDeW=T2jOYmK?}Qj5mNQ_ZV7 zd+U<5$%VbmIrDpk*5S7q?n+VX-0Be+Sh8@K|TW6Sc_ zKX_P_Qlo{`7|cDUxN=!v+=@zFgmGZA9YI4&g{`%`na*chonN+6t#+i3gI zh-q#&tm=dsG*G$v;aNl7)}I@~<90c0b|!aXc}*KxwrE-X0{k@oa8)f_9#*xmYE5>6 zwTl-4y=P zda{HE@GIr~FwSG)zk*WDuz^dPctSDTRT^$n!8#Nd!ks_cc6A*6Xrx4k#a#{s6W+LEL>8` zsi#WNax%sK#KF~ly~zN(bmqtXhwyMX4A#Ogg0UseQ`9K2m3Wnw5nBmVYWw5i*h-Y_ zejSrphy!@Ysf|C-7nf~M%n#^~thI0pQ^{^PabgP+TM&P5fw-SxIw-H!&v4q$q`i#; zv?Xqqe8U&3!d-Qa7NcUyGPzA*l-Q)iCM7m0@`7^!uP)Knet0d4zbltAC>i|n30(wkxq+IVij0Z~S~%`zwBy+Ny9f=%dA`n6gZ6Qy3*SDX~e3P0B%;6tngF zVYMhGN4TrOe(*=ujF=KsG9DCSlM$PY*knw>WElSrlNbtF4awysp+5-E_w8_G4S_8~ zB~#!_u`!5^L2L}BU<|CsmIE{gQ7C5#eVhuAvA)?o_P!L*tKwF>x6bl@jVEdav~r$^Q( zgj2sPN+shEi4hx#*hs`iVhTng(t0Wwi{J-A_J`P&ya{?Gvl$aMda(=9kF?DwD^5kb z;l_$>M{GM{+c6c};kKXywjX5)JumRDnTCJOBirYQ7NwHyh{TBPMr=1?yD z*$n%GY|eQEX?*v)#$5PLbdS8Pu;rM@Q226eC1NWPTZt)J3BTz~!9>^ues{umSbgN} zgDuBI_Q989`w-iQ*gj0rKKM;%3iiP!@a+SJEslaW4O5DVYy-vEGQ^f4whU9W3~V@4 zunQ)-M`w~p*dmw`RI&yXVoMNPg4hyF!4k01OlAcp*~+mOJ3_;GrI#-iY8#d;Zdh=n zmq+M=R5B1skL^TkCt^D>1v{bI&cT`sorSg{`}UX!Kk=}sbo@|II%&A4N7cKreIK<_Hzj4q={Y$jp=A& zf5aLSI0ZdgOi5Uji3~{)BQ_(k8Hvrv6wOG`dJfTuFds1?roRJkHb;dKaSKz)j5u*( zLlPU3*pN)YkT~t<5KKukUvC;|I>eY@J~>rN9}V4+NJ%Q05gj46A+ZgKZO9aCh;BTG zU_gvh@y5V<&}r5Y9%c25P|02xB{meXp@b#_J z4xdW*^%Zm5g!+r=p`1W|xW6FZ2lK;0_+TL;!9(ecjx{pYH;fEQUb3`(Xf)l2zoSL- zcepT$^qIoY5SFeXc)$vtHx0$Cr?YF%tLA^_T2MVyzd#y>h9kI#6}6C)_s7it;9|47;90GXeB81I2&g+lF2 z1nGG7X=FOPJl+x~Ue6_-_t3Y)l=7{~iI-SZ - -
    -

    µVision Build Log

    -

    Tool Versions:

    -IDE-Version: ¦ÌVision V5.25.2.0 -Copyright (C) 2018 ARM Ltd and ARM Germany GmbH. All rights reserved. -License Information: Zachary Administrator, Zachary, LIC=TIVNB-2IHDY-01WP1-C2K2G-5HIE0-XG8NS - -Tool Versions: -Toolchain: MDK-ARM Plus Version: 5.25.2.0 -Toolchain Path: C:\Keil_v5\ARM\ARMCC\Bin -C Compiler: Armcc.exe V5.06 update 6 (build 750) -Assembler: Armasm.exe V5.06 update 6 (build 750) -Linker/Locator: ArmLink.exe V5.06 update 6 (build 750) -Library Manager: ArmAr.exe V5.06 update 6 (build 750) -Hex Converter: FromElf.exe V5.06 update 6 (build 750) -CPU DLL: SARMCM3.DLL V5.25.2.0 -Dialog DLL: DCM.DLL V1.17.1.0 -Target DLL: Segger\JL2CM3.dll V2.99.29.0 -Dialog DLL: TCM.DLL V1.35.1.0 - -

    Project:

    -E:\liudagui\project\HONGRI\code\boot_up\boot_project\hongri_boot.uvprojx -Project File Date: 11/04/2024 - -

    Output:

    -*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin' -Rebuild target 'hongri_boot' -assembling startup_stm32f10x_cl.s... -compiling stm32f10x_gpio.c... -compiling misc.c... -compiling stm32f10x_dma.c... -compiling stm32f10x_iwdg.c... -compiling stm32f10x_pwr.c... -compiling stm32f10x_can.c... -compiling stm32f10x_rcc.c... -compiling led.c... -compiling stm32f10x_flash.c... -compiling 24cxx.c... -compiling core_cm3.c... -compiling bsp_i2c_gpio.c... -compiling dev_eerom.c... -compiling dev_crc32.c... -compiling dev_flashApi.c... -compiling stm32f10x_it.c... -compiling system_stm32f10x.c... -compiling dev_sys.c... -compiling can2.c... -compiling iso15765-2_entry.c... -compiling Can_Transceiver.c... -compiling iso15765-2.c... -compiling Diag_Eeprom_C301.c... -compiling UDS.c... -compiling CanConfig_C301.c... -compiling CanCtrl_C301.c... -compiling UDS_SA_C301.c... -..\boot_source\code_app\service\CanStack\canBus_hongri\UDS_SA_C301.c(48): warning: #177-D: function "BL_BE32_TO_MCU" was declared but never referenced - static uint32_t BL_BE32_TO_MCU(uint8_t *pBuf) -..\boot_source\code_app\service\CanStack\canBus_hongri\UDS_SA_C301.c: 1 warning, 0 errors -compiling Diag_Appl_C301.c... -..\boot_source\code_app\driver\inc\dev_eerom.h(32): warning: #1-D: last line of file ends without a newline - /** EOF */ -..\boot_source\code_app\service\CanStack\canBus_hongri\Diag_Appl_C301.c(1329): warning: #177-D: variable "crc32" was declared but never referenced - uint32_t crc32=0; -..\boot_source\code_app\service\CanStack\canBus_hongri\Diag_Appl_C301.c(2026): warning: #550-D: variable "CRC_16" was set but never used - uint16_t CRC_16=0xFFFF; -..\boot_source\code_app\service\CanStack\canBus_hongri\Diag_Appl_C301.c(2121): warning: #223-D: function "GetCrc32Chk" declared implicitly - if(GetCrc32Chk() == transSequenceValue) -..\boot_source\code_app\service\CanStack\canBus_hongri\Diag_Appl_C301.c(289): warning: #177-D: function "Diag_ExtMemorySecFAAFlagSave" was declared but never referenced - static void Diag_ExtMemorySecFAAFlagSave(uint8_t cnt) -..\boot_source\code_app\service\CanStack\canBus_hongri\Diag_Appl_C301.c: 5 warnings, 0 errors -compiling main.c... -..\boot_source\code_app\main\src\main.c(163): warning: #188-D: enumerated type mixed with another type - RCC_APB1PeriphClockCmd (RCC_APB1Periph_PWR | RCC_APB1Periph_BKP,ENABLE );// -..\boot_source\code_app\main\src\main.c(164): warning: #188-D: enumerated type mixed with another type - PWR_BackupAccessCmd(ENABLE);// -..\boot_source\code_app\main\src\main.c(198): warning: #188-D: enumerated type mixed with another type - TimeTaskData.F_Time_1MS = RESET; -..\boot_source\code_app\main\src\main.c(207): warning: #188-D: enumerated type mixed with another type - TimeTaskData.F_Time_5MS = RESET; -..\boot_source\code_app\main\src\main.c(213): warning: #188-D: enumerated type mixed with another type - TimeTaskData.F_Time_10MS = RESET; -..\boot_source\code_app\main\src\main.c(222): warning: #188-D: enumerated type mixed with another type - TimeTaskData.F_Time_20MS = RESET; -..\boot_source\code_app\main\src\main.c(226): warning: #188-D: enumerated type mixed with another type - TimeTaskData.F_Time_50MS = RESET; -..\boot_source\code_app\main\src\main.c(230): warning: #188-D: enumerated type mixed with another type - TimeTaskData.F_Time_100MS = RESET; -..\boot_source\code_app\main\src\main.c(234): warning: #188-D: enumerated type mixed with another type - TimeTaskData.F_Time_1000MS = RESET; -..\boot_source\code_app\main\src\main.c(89): warning: #177-D: function "Task_RunToAppCheckValide" was declared but never referenced - static uint8_t Task_RunToAppCheckValide(void) -..\boot_source\code_app\main\src\main.c: 10 warnings, 0 errors -compiling app_can.c... -linking... -Program Size: Code=22124 RO-data=980 RW-data=252 ZI-data=12716 -FromELF: creating hex file... -".\Objects\hongri_boot.axf" - 0 Error(s), 16 Warning(s). - -

    Software Packages used:

    - -Package Vendor: Keil - http://www.keil.com/pack/Keil.STM32F1xx_DFP.2.1.0.pack - Keil.STM32F1xx_DFP.2.1.0 - STMicroelectronics STM32F1 Series Device Support, Drivers and Examples - -

    Collection of Component include folders:

    - .\RTE\_hongri_boot - C:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include - -

    Collection of Component Files used:

    -Build Time Elapsed: 00:00:06 -
    - - diff --git a/boot_project/Objects/hongri_boot.hex b/boot_project/Objects/hongri_boot.hex deleted file mode 100644 index 57be32b..0000000 --- a/boot_project/Objects/hongri_boot.hex +++ /dev/null @@ -1,1463 +0,0 @@ -:020000040800F2 -:10000000A832002085010008153E00088D2A00084E -:10001000113E0008FD020008F9540008000000002D -:10002000000000000000000000000000394200084D -:100030006F10000800000000B53E00086143000892 -:100040009F0100089F0100089F0100089F01000810 -:100050009F0100089F0100089F0100089F01000800 -:100060009F0100089F0100089F0100089F010008F0 -:100070009F0100089F0100089F0100089F010008E0 -:100080009F0100089F0100089F0100089F010008D0 -:100090009F0100089F0100089F0100089F010008C0 -:1000A0009F0100089F0100089F0100089F010008B0 -:1000B0009F0100089F0100089F0100089F010008A0 -:1000C0009F0100089F0100089F0100089F01000890 -:1000D0009F0100089F0100089F0100089F01000880 -:1000E0009F0100089F0100089F0100080000000018 -:1000F0000000000000000000000000000000000000 -:1001000000000000000000009F0100089F0100089F -:100110009F0100089F0100089F0100089F0100083F -:100120009F0100089F0100089F0100089F0100082F -:100130009F0100089F0100089F0100089F0100081F -:100140009F010008B9040008E90400089F010008A5 -:10015000DFF80CD000F04CF800480047E9560008E2 -:10016000A8320020EFF30980704780F309887047B8 -:10017000EFF30880704780F30888704740BA7047F3 -:10018000C0BA70470648804706480047FEE7FEE7CA -:10019000FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE737 -:1001A000214400085101000840EA01039B0703D0E5 -:1001B00009E008C9121F08C0042AFAD203E011F8A6 -:1001C000013B00F8013B521EF9D27047D2B201E068 -:1001D00000F8012B491EFBD270470022F6E710B54C -:1001E00013460A4604461946FFF7F0FF204610BDA5 -:1001F000064C074D06E0E06840F0010394E8070074 -:1002000098471034AC42F6D3FFF7A6FF205A0008F7 -:10021000405A00080FB470B5049D9DF81A000828D4 -:1002200002DD08208DF81A000C49049808609DF83A -:100230001A008872002407E00DF11B00015D0748D9 -:100240000B300155601CC4B29DF81A00A042F3DCCB -:10025000284600F005F870BC5DF814FB802A0020E9 -:1002600070B5044603254FF6D0702040B0F5806F7E -:1002700004D1012500201149086010E040F2DF7030 -:10028000844203D040F20B70844204D10225002046 -:100290000A49086003E00325002008490860012D91 -:1002A00004D0022D03D0032D05D103E004E002F0B9 -:1002B000EBFE01E000E000BF00BF70BDF0000020D9 -:1002C00010B501214FF0C05003F0F6FD012003F0FE -:1002D000EBFD10BD00BF0748006800F4E060064970 -:1002E0000843001D03490860BFF34F8F00BF00BFE4 -:1002F000FEE700000CED00E00000FA0500BFFEE79D -:1003000002480068C043014908607047D8000020D7 -:1003100000B50648006838B901200549086005485D -:100320000249086005F0EAF800BD0000E000002086 -:10033000DC0000202083B8ED4FF0FF300149086059 -:1003400070470000D800002030B503460C4609482D -:100350000268002108E0605C5040C5B2064850F8D1 -:10036000250080EA1222491C9942F4D30148026018 -:10037000002030BDD80000208026002000B589B0C4 -:100380000121092003F0B8FD0121480603F094FD86 -:100390000121880603F090FD4FF40050ADF82000D5 -:1003A00003208DF8220018208DF8230008A940486A -:1003B00002F08FFA4FF48050ADF8200048208DF8FD -:1003C000230008A93A4802F084FA00208DF81A00A8 -:1003D00001208DF81B0000208DF81C008DF81D00F9 -:1003E0008DF81E008DF81F008DF8160001208DF885 -:1003F000170008208DF8180001208DF8190006203C -:10040000ADF8140005A92B4800F0B9FA0E208DF8BC -:100410000E0000208DF80F0001208DF81000002044 -:10042000ADF80400ADF80600ADF80800ADF80A001C -:100430000120ADF80C008DF8110001A800F046F97C -:10044000012210211B4800F091FA41208DF8000094 -:1004500001208DF8010000208DF8020001208DF8A8 -:100460000300684603F0DEFC012005F0A9F8012234 -:100470005102104800F07AFA012291020D4800F072 -:1004800075FA0122D1030B4800F070FA42208DF872 -:10049000000001208DF8010000208DF802000120ED -:1004A0008DF80300684603F0BDFC002009B000BDD4 -:1004B000000C01400068004000B587B0012005F045 -:1004C0008BF802AA0121074800F0E3FA0698009091 -:1004D00002A80FC8FFF79EFE142102A8FFF77DFEB9 -:1004E00007B000BD0068004010B54FF400712D4802 -:1004F00000F0ACF9012820D12B492A4800F06AF914 -:10050000012815D100BF022808DA284911F8301057 -:1005100021B1264911F83010032900D104E002214D -:10052000224A02F8301000BF1F491E4800F042F86E -:100530004FF400711B4800F059F84FF480611948DE -:1005400000F084F901282BD11749891C154800F0C7 -:1005500041F901281FD10124022C03DA134810F8B5 -:10056000340000B912E00320104901F8340001EB17 -:10057000C401081D002103F0A1FF1CB90C4800F0C4 -:1005800089F802E0074800F085F800BF0649891C99 -:10059000044800F00FF84FF48061024800F026F89C -:1005A00010BD0000006800400200F010FC000020B8 -:1005B0000064004000220C4B994202D10023836169 -:1005C00011E0C1F3130201F000730BB1C2600AE045 -:1005D00001F080630BB1026105E001F000630BB133 -:1005E000826000E0426070477000F030B1F5007F3B -:1005F0003AD00FDC202928D006DC01291CD00429A0 -:100600001DD0082940D11DE0402921D0B1F5807FBF -:100610003AD126E0B1F5004F31D006DCB1F5806F5C -:1006200025D0B1F5006F2FD124E0B1F5803F12D075 -:10063000B1F5003F28D111E0154A826025E008227B -:10064000C26022E01022C2601FE0082202611CE0AA -:100650001022026119E00822426016E01022426076 -:1006600013E00422426010E0042242600DE0042204 -:1006700042600AE0002282610422426005E000221A -:1006800082610422426000E000BF00BF70470000AA -:100690000101010010B504460B48844209D1012133 -:1006A000480603F019FC00214FF0007003F014FC21 -:1006B00008E00121880603F00FFC00214FF0806064 -:1006C00003F00AFC10BD00000064004010B50021DA -:1006D000837A012202FA03F13D4A126842F00102D4 -:1006E0003B4B1A603A4A1C3212688A43384B1C331F -:1006F0001A60027BCAB9364A0C3212688A43344BFC -:100700000C331A604288C38842EA0343304A4032BD -:10071000847A42F834300288838842EA03432C4AC0 -:100720004032847A02EBC4025360027B012A19D161 -:10073000274A0C3212680A43254B0C331A60428850 -:10074000038842EA0343224A4032847A42F8343032 -:10075000C288838842EA03431D4A4032847A02EB0E -:10076000C4025360C27A3AB9194A121D12688A4308 -:10077000174B1B1D1A6006E0154A121D12680A432A -:10078000134B1B1D1A60028932B9114A14321268C8 -:100790008A430F4B14331A600289012A06D10C4A8E -:1007A000143212680A430A4B14331A60427B012A3E -:1007B00006D1074A1C3212680A43054B1C331A60E3 -:1007C000034A126822F00102014B1A6010BD0000BA -:1007D0000066004010B50246002001F4700343B1EA -:1007E0009369C1F3130423400BB101202DE00020D5 -:1007F0002BE001F0807343B15368C1F3130423402D -:100800000BB1012021E000201FE001F0006343B1A3 -:100810009368C1F3130423400BB1012015E00020BD -:1008200013E001F0007343B1D368C1F31304234014 -:100830000BB1012009E0002007E01369C1F31304A4 -:1008400023400BB1012000E0002010BD70B504462C -:100850000D46002660692840002871D0B5F5807FDC -:100860005CD010DC082D35D006DC012D20D0022D07 -:1008700024D0042D72D127E0102D31D0202D35D079 -:10088000402D6BD138E0B5F5004F60D009DCB5F5EF -:10089000007F49D0B5F5806F4CD0B5F5006F5DD1C4 -:1008A0004FE0B5F5803F2DD0B5F5003F56D12FE094 -:1008B000A0682D4900F0D2FB064651E0E068032114 -:1008C00000F0CCFB06464BE0E068082100F0C6FBD8 -:1008D000064645E0E068102100F0C0FB06463FE018 -:1008E0002069032100F0BAFB064639E0206908219F -:1008F00000F0B4FB064633E02069102100F0AEFBA7 -:1009000006462DE06068082100F0A8FB064627E0B7 -:100910006068102100F0A2FB064621E0A0690121D9 -:1009200000F09CFB06461BE0A069022100F096FB4C -:10093000064615E0A069042100F090FB06460FE092 -:100940000FE0A069702100F089FB064608E06068AE -:10095000042100F083FB064602E0FFE7002600BF0B -:1009600000E00026304670BD010101001AB1436964 -:100970000B43436102E043698B434361704730B5E9 -:10098000024600200023146824F002041460146856 -:1009900044F00104146000E05B1C546804F001049E -:1009A0001CB94FF6FF74A342F6D1546804F0010459 -:1009B0000CB900206CE08C79012C04D1146844F04F -:1009C0008004146003E0146824F080041460CC797F -:1009D000012C04D1146844F04004146003E014684E -:1009E00024F0400414600C7A012C04D1146844F003 -:1009F0002004146003E0146824F0200414604C7A8E -:100A0000012C04D1146844F01004146003E014684D -:100A100024F0100414608C7A012C04D1146844F082 -:100A20000804146003E0146824F008041460CC7A0D -:100A3000012C04D1146844F00404146003E0146829 -:100A400024F0040414608C78A407CD7844EA05648B -:100A50000D7944EA05444D7944EA05540D886D1E2C -:100A60002C43D461146824F001041460002300E0D6 -:100A70005B1C546804F001041CB14FF6FF74A342E0 -:100A8000F6D1546804F001040CB1002000E001200C -:100A900030BD10B500F5D87303EB01131B6803F0EC -:100AA00004031372137A53B900F5D87303EB0113DF -:100AB0001B6840F2FF7404EA5353136009E000F529 -:100AC000D87303EB01131B686FF0604404EAD3038F -:100AD000536000F5D87303EB01131B6803F00203A6 -:100AE000537200F5D87303EB01135B6803F00F0337 -:100AF000937200F5D87303EB01135B681B0AD37480 -:100B000000F5D87303EB01139B68D37200F5D8731B -:100B100003EB01139B681C0A147300F5D87303EBF5 -:100B200001139B681C0C547300F5D87303EB01137D -:100B30009B681B0E937300F5D87303EB0113DB68FE -:100B4000D37300F5D87303EB0113DB681C0A14742C -:100B500000F5D87303EB0113DB681C0C547400F52B -:100B6000D87303EB0113DB681B0E937421B9C368C0 -:100B700043F02003C36003E0036943F020030361F3 -:100B800010BD10B502460020936803F08063B3F1F6 -:100B9000806F00D110E0936803F00063B3F1006F41 -:100BA00001D1012008E0936803F08053B3F1805F26 -:100BB00001D1022000E00420042874D002F5C073A3 -:100BC00003EB00131B6803F0010402F5C07303EB91 -:100BD00000131C600B7A7BB94B7A0C8843EA4453B0 -:100BE00002F5C07404EB00142468234302F5C074BA -:100BF00004EB0014236010E00B7A4C6843EAC40352 -:100C00004C7A234302F5C07404EB00142468234398 -:100C100002F5C07404EB001423608B7A03F00F0319 -:100C20008B7202F5C07303EB00135B6823F00F04B3 -:100C300002F5C07303EB00135C6002F5C07303EBB5 -:100C400000135B688C7A234302F5C07404EB001434 -:100C500063608B7B1C064B7B44EA03440B7B44EABA -:100C60000323CC7A234302F5C07404EB0014A36081 -:100C70008B7C1C064B7C44EA03440B7C44EA032334 -:100C8000CC7B234302F5C07404EB0014E36002F54F -:100C9000C07303EB00131B6843F0010402F5C0733B -:100CA00003EB00131C6010BD10B50246002321B1F8 -:100CB000012907D002290FD109E090681D4C00EAF4 -:100CC00004030BE090681C4C00EA040306E0906803 -:100CD0001A4C00EA040301E0002300BF00BF184CD7 -:100CE000181BA34216D007DC83B16FF08060184454 -:100CF00070B1022818D111E0B0F5007F10D0114C6E -:100D0000204448B1B0F5003F0ED10BE002230DE0C6 -:100D100000230BE0002309E0002307E0012305E0A6 -:100D2000012303E0012301E0002300BF00BFD8B28C -:100D300010BD0000030000040003000800000310C1 -:100D4000000100080001FFF70FB430B585B00024A2 -:100D5000142208A96846FFF727FA012004F050FC86 -:100D600020B9012005B030BC5DF814FB69460E487F -:100D7000FFF707FF0546002401E0601C84B2012054 -:100D800004F03EFC40B129460748FFF78DFF18B933 -:100D900040F6FF708442F0DB40F6FF70844201DBD6 -:100DA0000120DFE70020DDE70068004010B50020EB -:100DB00000F00AF910BD70473048407820F040003C -:100DC0002E4948700846407820F0200048700846B8 -:100DD000407820F0100048700846807820F00F001E -:100DE00088700846807820F0F00088700846007807 -:100DF00020F0010008700846007820F00800087014 -:100E00000846007820F0040008700846007820F0BA -:100E1000020008700846007820F02000087008469C -:100E2000007820F0100008700846007820F080005C -:100E300008700846007820F04000087008464078A6 -:100E400020F0010048700846407820F00200487009 -:100E50000846407820F00400487000204871C1F82E -:100E6000F000C1F8F400C1F8F800C1F8FC00C1F8C6 -:100E7000EC004FF6FF70A1F8E600704770150020F7 -:100E80000148007870470000F600002010B50024EB -:100E9000002012490870124908701249087012495E -:100EA000087072B6FFF788FF00240DE000200F499C -:100EB00008550F4908552146012001F041FE204602 -:100EC00001F030FE601CC4B2012CEFDB00F09AF898 -:100ED00001F0BEFF03F0A8FD62B610BDF7000020D0 -:100EE000F6000020F8000020F5000020F9000020A6 -:100EF000FA0000200949097842290DD107494978AB -:100F00004F2909D105498978452905D10349C9786F -:100F1000522901D1012000E0002070478E000020FE -:100F200010B506480078002806DD04480078401E09 -:100F30000249087003F0D2FC10BD0000F800002048 -:100F400002480078401C014908707047F6000020F4 -:100F50000149087070470000F500002010B5FFF748 -:100F60002AFF02F0E5FC04F045F9FFF7E9FFFFF77F -:100F7000D7FF10BD10B503480078012801D104F057 -:100F800029F910BDF700002000204FF4AC7000E0FC -:100F9000401E0028FCD1704710B50446012C00DB30 -:100FA00010BD44B98021064801F068FD10210548B4 -:100FB00001F064FD00E000BF00BF00BFF0E70000EB -:100FC00000100140000C014010B50446012C00DB6C -:100FD00010BD74B91021094801F04EFD8021084868 -:100FE00001F04CFDFFF7D0FF8021054801F044FDE2 -:100FF00000E000BF00BF00BFEAE70000000C0140B6 -:101000000010014010B50020FFF7C6FF10BD000022 -:1010100010B500240F480078012817D1FFF79EFF74 -:101020000D480068B0F5FA6F0AD3FFF7BFFE06E07F -:10103000601C84B2B4F5487F01DBFFF74BF9F7E79A -:1010400005480068401C0449086002E0012001498D -:10105000087010BDF7000020F000002002460020BC -:1010600002EA01030BB1012000E000207047704745 -:101070000120014908707047C200002070B5044685 -:10108000012501F0FDFCA04200D10025284670BDDD -:1010900038B502221021684604F0C8FA0546012D31 -:1010A00001D0002038BD002409E01DF8040006A18D -:1010B000095D884201D00020F4E7601CC4B2022C14 -:1010C000F3DB0120EEE700004852000010B50548B0 -:1010D000807800F00F00012802D1FFF7D9FF10BD82 -:1010E0000120FCE77015002000200549897801F0F7 -:1010F0000F01012901D1012000E00120704700000B -:101100007015002002460020A2F57143843B73B99C -:101110000B78632B01DD012008E04B783C2B01DDCF -:10112000012003E08B781F2B00DD012000E000BFD1 -:1011300000BF704770B5054604F0BCFA72B68B2D3F -:1011400006D10E480068012182680D48904711E0E1 -:101150002E2D0FD1002404E0AA200A490855601C56 -:10116000C4B2082CF8DB054800680822054943682A -:101170000348984704F0A6FA62B670BD2800002024 -:1011800000380208A8000020002004E0AA21034A39 -:101190001154411CC8B20828F8DB70478E000020AB -:1011A000012802D0022800D000BF7047012802D0D9 -:1011B000022800D000BF70472DE9F0410446207995 -:1011C000401CC6B22068477820688578032E03DC6F -:1011D000132003F0BBFF44E037B1032F1BD0802F57 -:1011E00003D0832F2ED117E000BF042E05D013208B -:1011F00003F0ACFF03F0B6FC32E00220A081032D27 -:1012000001DC012D03DA312003F0A0FF02E02846C3 -:10121000FFF7CCFF24E000BF042E05D0132003F01D -:1012200095FF03F09FFC1BE00220A081032D01DC51 -:10123000012D03DA312003F089FF02E02846FFF791 -:10124000AFFF0DE003F006FA18B1802003F0BCFFF9 -:1012500005E0002003F0B8FF122003F077FF00BF85 -:1012600000BF03F037FCBDE8F08170B5044620797B -:10127000401CC6B22068457825F08005022E03D1B7 -:10128000132003F063FF1FE0012D02D0022D0CD1CB -:1012900000E000BF032E05D0132003F057FF03F03A -:1012A00061FC10E00220A0810DE003F0D3F918B139 -:1012B000802003F089FF05E0002003F085FF122065 -:1012C00003F044FF00BF00BF03F004FC70BD00004A -:1012D00070B50246002028E00D5C2B02002421E0BE -:1012E000134DB5F8E6505D4005F4004555B1104D7D -:1012F000B5F8E65041F2210686EA45050C4EA6F8FF -:10130000E65009E00A4DB5F8E6504FF6FF7606EADA -:101310004505074EA6F8E6504FF6FF7505EA43036C -:10132000651CECB2082CDBDB401C9042D4D370BDB2 -:10133000701500202DE9F04105460E4617464FF086 -:1013400000081448807800F00F00012805D01148EB -:10135000807800F00F00022814D104F0ABF972B6C7 -:101360000D4800683A46314643682846984780460B -:1013700004F0A8F962B6B8F1000F01D1002402E030 -:10138000012400E0012414B90120BDE8F08100200F -:10139000FBE70000701500202800002070B504460F -:1013A0002079401CC5B22068467826F08006022DC0 -:1013B00003DC132003F0CAFE2FE0012E02D0032E1F -:1013C0001CD10DE0032D05D0132003F0BFFE03F068 -:1013D000C9FB04E00220A0810A20114908701BE02B -:1013E000032D05D0132003F0B1FE03F0BBFB04E096 -:1013F0000220A0810A200B4908700DE003F02AF9B1 -:1014000018B1802003F0E0FE05E0002003F0DCFED0 -:10141000122003F09BFE00BF00BF03F05BFB70BD1A -:1014200044000020450000202DE9F05F06460F46ED -:1014300090461B48B0F8E84000252BE04FF44830B8 -:10144000B5FBF0F100FB115010B9404603F02EFA45 -:1014500017F805B04FEA0B294FF0000A16E084EAAE -:10146000090000F4004028B141F2210080EA440064 -:1014700084B203E04FF6FF7000EA44044FF6FF70B9 -:1014800000EA49090AF1010000F0FF0ABAF1080F69 -:10149000E5DB6D1CB542D1D32046BDE8F09F0000CE -:1014A00070150020704710B50346002003E01C5C57 -:1014B0000C54441CE0B29042F9DB10BD10B5034659 -:1014C000002002E00C5C1C54401C9042FAD310BD7A -:1014D0001D48007820F0800080301B4908700020F3 -:1014E000C1F8EC00C1F8F400C1F8F00008464078FB -:1014F00020F0010048700846007820F002000870D3 -:101500000846007820F0040008700846007820F0B3 -:10151000200008700846007820F001000870084696 -:10152000007820F0080008700846407820F010008D -:1015300048700846807820F00F0088700846807850 -:1015400020F0F000887070477015002070B50646D6 -:101550000C461546224629463046FFF7AFFF70BDC0 -:101560002DE9F04F9BB007464FF00008C34600241A -:101570003879401C00F0FF0801201A90B8F1040FE0 -:101580000FD0B8F1060F0CD0B8F1080F09D0B8F1A0 -:101590000A0F06D0B8F10C0F03D0132003F0D6FDCC -:1015A00083E04FF0010BBBF1050F01DD4FF0050BA0 -:1015B000012400255BE0012101EB45013868405C16 -:1015C0000DF804001DF804004FEA002A601CC4B2A4 -:1015D000022101EB45013868405C0DF804001DF85C -:1015E000040040EA0A0A601CC4B2002019900026D8 -:1015F0002DE0304800EB06100088504525D1012031 -:1016000019902C4800EB0610407A012803D12A4992 -:1016100051F8260080474FF000090DE0254800EB07 -:101620000610406810F809000DF80400601CC4B2F0 -:1016300009F1010000F0FF091E4800EB0610007AD6 -:101640004845EBDC00201A9003E0701CC6B2052E62 -:10165000CFDB00BF03F050F910B100201A9008E072 -:10166000199810B901201A9003E0681CC5B25D45B5 -:10167000A1DB00BFBC81012505E01DF80500B968AC -:101680004855681CC5B2A542F7DB1A9801280CD151 -:1016900002F0E0FF18B1802003F096FD05E0002085 -:1016A00003F092FD312003F051FD03F013FA1BB05B -:1016B000BDE8F08FB8590008085A0008002005E07E -:1016C0000449095C044A1154411CC8B20528F7DBDF -:1016D0007047000033580008B0000020002005E0EB -:1016E0000449095C044A1154411CC8B20928F7DBBB -:1016F000704700002A5800083D150020002004E033 -:10170000FF21034A1154411CC8B20628F8DB704778 -:10171000B500002070470000002005E00449095C86 -:10172000044A1154411CC8B20928F7DB7047000075 -:1017300021580008341500202DE9FC410446257984 -:1017400020684678206887780B2D03D0132003F09B -:10175000FDFC46E10EB9442F03D0312003F0F6FC26 -:101760003FE1C5480078C0F3400018B1702003F095 -:10177000EDFC36E12068C0788DF80400206800791F -:101780008DF80500206840798DF806002068807982 -:101790008DF807002068C0798DF800002068007A75 -:1017A0008DF801002068407A8DF802002068807A68 -:1017B0008DF803009DF8040000069DF8051000EB6D -:1017C00001409DF8061000EB01209DF80710084429 -:1017D000A949C1F8F8009DF8000000069DF8011025 -:1017E00000EB01409DF8021000EB01209DF8031072 -:1017F0000844A149C1F8FC0008460078C0F3C000C5 -:10180000002857D10846D0F8FC00B0F5805F0AD810 -:101810000846D0F8F800401C28B10846D0F8F80077 -:101820009649884203D0312003F090FCD9E09248D9 -:10183000D0F8F8009149884207D18F48807820F08D -:10184000F00010308C4988700CE08B48D0F8F8001C -:101850008B49884206D18848807820F0F0002030FB -:10186000854988708448007820F008000830824953 -:1018700008700846007820F00200801C08700020E4 -:10188000C1F8EC00C1F8F000C1F8F4004FF6FF70A9 -:10189000A1F8E6002020A16848700420A1688870A3 -:1018A0000020A168C8700420A081FEF731FDFEF77A -:1018B00043FD96E07048D0F8F800724988420FD096 -:1018C0006D48D0F8F800B0F5601F09D06A48D0F82C -:1018D000F800B0F1805F03D0312003F037FC7AE0EC -:1018E0006548D0F8F8006749884205D16248D0F8C9 -:1018F000FC00B0F5CC3F17D85F48D0F8F800B0F541 -:10190000601F05D15C48D0F8FC00B0F5002F0BD863 -:101910005948D0F8F800B0F1805F09D15648D0F8A6 -:10192000FC00B0F1806F03D9312003F00FFC52E0CE -:1019300051484078C0F3800018B9222003F006FC1B -:1019400049E04D48D0F8F8004E49884207D14A484E -:10195000807820F00F00401C474988701AE0464804 -:10196000D0F8F800B0F5601F07D14348807820F028 -:101970000F00801C404988700CE03F48D0F8F80008 -:10198000B0F1805F06D13C48807820F00F00801CC9 -:10199000394988703848007820F00200801C3649A8 -:1019A00008700020C1F8EC00C1F8F000C1F8F400A4 -:1019B0004FF6FF70A1F8E6002020A16848700420CF -:1019C000A16888700020A168C8700420A081FEF77B -:1019D0009FFCFEF7B1FC2848007820F0080026495B -:1019E000087002F089FF98B32348007820F00200C5 -:1019F000214908700846007820F040000870084629 -:101A0000007820F0800008700846407820F001003F -:101A100048700846807820F00F008870084680786B -:101A200020F0F00088700020C1F8F800C1F8FC0038 -:101A3000C1F8F4004FF6FF70A1F8E6000020C1F8ED -:101A4000EC00C1F8F000887500210B48C1750176E3 -:101A50000948007820F010000749087008464078CF -:101A600020F0100048700846407820F020004870B0 -:101A700003F030F8BDE8FC817015002000F0002074 -:101A800000D8BFFE00A000082DE9F04105460E4633 -:101A900000270F48854214D1B6F5CC3F11D803F08A -:101AA00009FE72B60B4800683321826808489047E7 -:101AB000074603F007FE62B60FB9002402E00124D6 -:101AC00000E0012414B90120BDE8F0810020FBE70B -:101AD00000A000082800002070B504464FF6FF76ED -:101AE0002579012D03D0132003F030FB86E0454813 -:101AF000007800F0010040B142484078C0F3800017 -:101B000018B9222003F022FB78E03E480078C0F3A9 -:101B1000400020B13B484078C0F3001018B92420A1 -:101B200003F014FB6AE03748007820F01000103012 -:101B3000344908700846407820F010004870084684 -:101B4000007820F0200008700846007820F002009D -:101B500008700846407820F0040048700846407835 -:101B600020F02000487000204871C1F8EC00C1F856 -:101B7000FC00C1F8F8000846007800F0010010B938 -:101B80000020C1F8F4001F480078C0F3C00018B16D -:101B90001C48B0F8E6602DE01A48807800F00F008D -:101BA000012808D117493722D1F8F4001649FFF768 -:101BB0003BFC06461EE01348807800F00F00022828 -:101BC00009D110493722D1F8F4004FF46011FFF722 -:101BD0002BFC06460EE00B48807800F00F00022830 -:101BE00008D108493722D1F8F4004FF08051FFF7AF -:101BF0001BFC0646FEF784FB0120A08102F06AFF71 -:101C000070BD00007015002000A000082DE9FC5FE9 -:101C100004464FF0000B2579206846782068C0788C -:101C20002168897800EB01201FFA80FA042D06DA7A -:101C3000132003F08BFA02F04DFFBDE8FC9F5046E5 -:101C4000BAF57F4F73D009DCA0F2022040B3A0F5B3 -:101C50005C40A0F5EF7000286AD107E06FF47F4187 -:101C60000844002877D00128F6D168E002F036FE5B -:101C7000032803D07F2003F069FA10E0052D03D07C -:101C8000132003F063FA0AE0012E03D0122003F0C0 -:101C90005DFA04E00020A16808710520A08169E1D7 -:101CA0002068007900062168497900EB014021682D -:101CB000897900EB01202168C97900EB0109082D21 -:101CC00003D0132003F042FA38E0012E03D0122093 -:101CD00003F03CFA32E0AA480078C0F3001018B9CB -:101CE000222003F033FA29E0312002F0DFFD4846DC -:101CF000FFF7C4F9E8B9A248807800F00F00012886 -:101D000002D19F49C87002E001209D4908719C489A -:101D1000007820F010009A4908700846007820F0FA -:101D20000100401C08700020A168087104E025E053 -:101D300012E10120A16808710520A0811AE102F0DA -:101D4000CDFD032808D002F0C9FD022804D07F2071 -:101D500003F0FCF911E0B7E0042D03D0132003F0E9 -:101D6000F5F90AE0012E03D0122003F0EFF904E0A8 -:101D70000020A16808710520A081FBE00D2D03D192 -:101D800020680079442803D0132003F0DFF99AE09B -:101D9000012E03D0122003F0D9F994E02068407995 -:101DA0008DF80400206880798DF805002068C079DE -:101DB0008DF806002068007A8DF807002068407AC8 -:101DC0008DF800002068807A8DF801002068C07AC4 -:101DD0008DF802002068007B8DF803009DF8040058 -:101DE00000069DF8051000EB01409DF8061000EB81 -:101DF00001209DF8071047189DF8000000069DF887 -:101E0000011000EB01409DF8021000EB01209DF84D -:101E1000031000EB01085B48874251D1B8F5CC3F75 -:101E200005D8574880780121B1EB101F18D05448CD -:101E3000007820F00200524908700846007820F02F -:101E4000080008700846407820F0400048700846B6 -:101E5000807820F0F0008870312003F077F932E0CC -:101E6000312002F023FD41463846FFF70DFE0128E0 -:101E700022D14348407820F00400001D40494870BA -:101E80000846407820F0400048700846407820F02E -:101E90000800487000F06AFA8B20FFF74BF9002029 -:101EA000A16808710520A0813548007820F0010064 -:101EB000401C3349087006E0722003F047F902E045 -:101EC000312003F043F955E0042D03D0132003F033 -:101ED0003DF940E0012E03D0122003F037F93AE03B -:101EE00027484078C0F3801018B9222003F02EF95B -:101EF00031E0FFF7EBF8012821D1FFF7F5F80128D1 -:101F00001DD11F480079012819D11D48C07801282A -:101F100015D1FFF739F92E20FFF70CF91848407852 -:101F200020F008000830164948700020A1680871A8 -:101F30000520A081002012490871C87002E022200B -:101F400003F004F900200E49C1F8F4000846807837 -:101F500020F00F0088700DE002F07CFB18B18020AB -:101F600003F032F905E0002003F02EF9312003F0F0 -:101F7000EDF800BF00BF02F0ADFD00BF5DE6000060 -:101F80007015002000A000082DE9FE43054602F070 -:101F9000ABFC07462879401CC6B2286890F801803F -:101FA000022E03DC132003F0D1F8CDE1B8F1010FCC -:101FB00009D0B8F1020F6CD0B8F1050F6FD0B8F1AD -:101FC000060F6DD13EE1012F03D17F2003F0BEF853 -:101FD0005EE0032E03D0132003F0B8F858E0DC488D -:101FE000007801280ED1A9684870002405E000217E -:101FF000A01CAA681154601CC4B2042CF7DB062094 -:10200000A88145E0D348007A012803D0D148807ADE -:10201000012803D1372003F099F839E00120A9689D -:102020004870CD480078012812D1CA48007B0328A7 -:102030000EDB362003F08AF80120C64988720020A2 -:102040008880C648007810B90120C44908707AE138 -:10205000C148007810B9C24802F0BEF8002406E07A -:10206000BF48015DA01CAA681154601CC4B2042CB6 -:10207000F6DB02ABBB4A0421B94802F025F8002088 -:10208000B449087208800120B34908700620A8816D -:1020900059E1012F05D17F2003F058F868E068E08E -:1020A00043E1072E03D0132003F050F860E0AA4864 -:1020B0000078012859D10020A7490870A548807AE6 -:1020C000012803D1362003F041F849E0002406E05E -:1020D000A01C2968085C0DF80400601CC4B2042C24 -:1020E000F6DB9DF800008DF804009DF801008DF8E6 -:1020F00005009DF802008DF806009DF803008DF89C -:102100000700042201A9974801F0CCFF90B10220FA -:10211000A9684870A881002003F01EF801208C49AE -:10212000087000208D4908708A49087302208E4982 -:10213000087015E0352003F009F88648007B401C44 -:10214000844908730846007B032809DB0120887254 -:10215000002088808148007810B901207F490870EC -:1021600000207C490880087202E0242002F0EEFF83 -:10217000E9E0012F03D17F2002F0E8FF61E0032EA8 -:1021800003D0132002F0E2FF5BE0714840780128A1 -:102190000FD10520A9684870002405E00021A01C8B -:1021A000AA681154601CC4B2042CF7DB0620A88175 -:1021B00047E06848407A012803D06648C07A012881 -:1021C00003D1372002F0C2FF3BE00520A968487028 -:1021D00061484078012812D15E48407B03280EDB1D -:1021E000362002F0B3FF01215A48C1720021C1809C -:1021F0005A48407810B9012058494870A3E0564821 -:10220000407810B9564801F0E7FF002406E0544832 -:10221000015DA01CAA681154601CC4B2042CF6DB3A -:1022200002AB504A04214E4801F092FF0021494878 -:1022300041720020474948800120474948700620E4 -:10224000A88180E0012F03D17F2002F07FFF6BE0A7 -:10225000072E03D0132002F079FF65E03E48407856 -:1022600001285ED100203C4948703A48C07A0128D4 -:1022700003D1362002F06AFF4CE0002406E0A01CE7 -:102280002968085C0DF80400601CC4B2042CF6DB5D -:102290009DF800008DF804009DF801008DF8050000 -:1022A0009DF802008DF806009DF803008DF80700E8 -:1022B000042201A92B4801F0F5FEA0B10620A9686F -:1022C00048700220A881002002F046FF012020492A -:1022D000487000202149487000211E4841730420A5 -:1022E0002149087016E0352002F030FF1948407B84 -:1022F000401CC1B217484173407B03280ADB01210F -:102300001448C1720021C1801448407810B90120DE -:102310001249487000200F49488000210D48417241 -:1023200002E0242002F012FF0DE002F093F918B150 -:10233000802002F049FF05E0002002F045FF122056 -:1023400002F004FF00BF00BF02F0C4FBBDE8FE8343 -:10235000C000002070260020BD0000208C0000205E -:10236000C7000020C3000020C20000204220044912 -:1023700008704F204870452088705220C870704700 -:102380008E0000202DE9F04705460024A246A14614 -:10239000A888801E86B228684778FD4890F8058096 -:1023A00008F1010000F0FF08012E02DA132002F00C -:1023B000CDFEB6F5806F03DD712002F0C7FEFCE1B3 -:1023C000F3480078C0F3800050B9F148D0F8F0002D -:1023D000B0F5406F04D8EE484078C0F3001070B1FB -:1023E000EB48407820F01000E949487008464078F2 -:1023F00020F040004870702002F0A8FEDDE1E448C3 -:102400000078C0F3801028B9E14800780121B1EBD1 -:10241000D01F03D1722002F099FECEE1DC48007893 -:10242000C0F3400018B9242002F090FEC5E1D8485E -:102430004078C0F3401028B9012F03D0732002F078 -:1024400085FEBAE1781C804502D10220A881B4E162 -:10245000B84503D0732002F079FEAEE1CC48007895 -:1024600000F0010040B1CA484078C0F3800018B9BC -:10247000222002F06BFEA0E1C548007820F0200089 -:102480002030C34908700846407820F020002030F2 -:10249000487008464771007800F0010000287CD0A1 -:1024A000002415E0A01C2968085CB949D1F8F01097 -:1024B000B84A5054B648D0F8F000401CB449C1F8AE -:1024C000F0000846D0F8F400401CC1F8F400641C89 -:1024D000B442E7D32868811C3046FDF735FFAC488D -:1024E000D0F8F400AA49D1F8FC10884277D3A84864 -:1024F000D0F8F000B0F5006F2DD3A5494FF400627D -:10250000D1F8F800A349FEF715FF40B9FEF7E0FF48 -:10251000722002F01BFE02F0DDFABDE8F0879C4855 -:10252000D0F8F80000F500609949C1F8F8000846B5 -:10253000D0F8F000A0F50060C1F8F000002405E03C -:1025400004F500609349085C0855641C9048D0F875 -:10255000F000A042F4D88E48D0F8F000F0B18C48DA -:10256000D0F8F09005E0FF208A4901F8090009F150 -:102570000109B9F5006FF6D385494FF40062D1F82F -:10258000F8008449FEF7D6FE40B9FEF7A1FF72209D -:1025900002F0DCFD02F09EFABFE7A5E000207C49D6 -:1025A000C1F8F0000846407820F001004870084665 -:1025B000007820F0040008700846007820F0200021 -:1025C00008700846407820F04000403048700846C7 -:1025D000407820F01000103048707EE0FFE76C4833 -:1025E000D0F8F000B0F5006F77D36948407820F05C -:1025F0000100401C664948700846007820F004003D -:10260000001D08704FF40062D1F8F8006149FEF730 -:1026100091FE38B9FEF75CFF722002F097FD02F0E0 -:1026200059FA7AE75A48007820F080005849087033 -:102630000846D0F8F80000F50060C1F8F800084638 -:10264000D0F8F000A0F50060C1F8F000002405E02B -:1026500004F500604F49085C0855641C4C48D0F8EC -:10266000F000A042F4D84A48D0F8EC00401C484999 -:10267000C1F8EC000846807800F00F00012805D171 -:102680000846D0F8EC00B0F5607F17D84048807855 -:1026900000F00F00022805D13D48D0F8EC00B0F55D -:1026A000607F0BD83A48807800F00F0002280ED1E6 -:1026B0003748D0F8EC00B0F5802F08D9FEF708FFB6 -:1026C000722002F043FD02F005FA26E705E03048EB -:1026D000007820F040002E4908702D48007820F046 -:1026E00004002B49087066E0B6F5805F58DA0024D4 -:1026F0000FE0A01C2968085C2549D1F8F010254A94 -:1027000050542348D0F8F000401C2149C1F8F00093 -:10271000641CB442EDD31E49D1F8F0001D49FEF708 -:10272000D7FD2868811C3046FDF70EFE1848D0F80A -:10273000F400194900EB010A154880780121B1EB3A -:10274000101F0BD10AEB06001449884206D210482C -:10275000104AD0F8F0105046FEF7F8FE0C48D0F8BA -:10276000F4000B49D1F8F01008440949C1F8F4000D -:102770000846D0F8F400D1F8FC10884217D304487A -:10278000407820F010001030014948700FE0000040 -:10279000701500207016002000F00020FFFF0020C0 -:1027A00000200B49C1F8F400312002F0CFFC0020DA -:1027B0000749C1F8F0000220A8810548007820F000 -:1027C00010000349087002F085F900BFA5E600007B -:1027D000701500202DE9F047054695F8048028681B -:1027E000407806022868807806432868C71C4FF0A6 -:1027F0000109B8F1030F03DC132002F0A7FC5CE031 -:10280000002447E02F4800EB04100088B0423FD17D -:102810002C4800EB0410407A072839D1294800EBF6 -:102820000410007AC01C404505D0132002F08EFC35 -:102830004FF0000930E039463046FEF763FC0128CE -:1028400005D1312002F082FC4FF0000924E0032082 -:10285000A8811C4800EB0410027A1A4800EB04100F -:1028600041683846FEF71FFE164800EB041000884A -:102870004FF28411884208D100F028F812484078BD -:1028800020F00200801C104948704FF0000903E05E -:10289000601CC4B2052CB5DB00BFB9F1010F0CD12F -:1028A00001F0D8FE18B1802002F08EFC05E0002077 -:1028B00002F08AFC312002F049FC02F00BF9BDE87D -:1028C000F0870000B8590008701500200146FF206D -:1028D00070472DE9F0410246002500260020002324 -:1028E0000024002791F803C00CF00F0591F803C0F5 -:1028F0000CF0100CBCF1000F03D091F802C04CEAB0 -:10290000050591F800C0BCF1000F31D0146800201B -:102910002BE04FF0010C0CFA00F3B1F800C00CEA08 -:1029200003069E4220D183004FF00F0C0CFA03F7F0 -:10293000BC4305FA03FC4CEA040491F803C0BCF163 -:10294000280F06D14FF0010C0CFA00FCC2F814C09D -:102950000AE091F803C0BCF1480F05D14FF0010C1B -:102960000CFA00FCC2F810C0401C0828D1D3146037 -:10297000B1F800C0BCF1FF0F34DD546800202EE038 -:1029800000F1080C4FF0010808FA0CF3B1F800C090 -:102990000CEA03069E4221D183004FF00F0C0CFA83 -:1029A00003F7BC4305FA03FC4CEA040491F803C0A6 -:1029B000BCF1280F05D100F1080C08FA0CF8C2F898 -:1029C000148091F803C0BCF1480F07D100F1080C46 -:1029D0004FF0010808FA0CF8C2F81080401C0828D3 -:1029E000CED35460BDE8F081F0B50A460023002440 -:1029F0000021002500F00046B6F1004F02D11D4E27 -:102A0000F16901E01B4E7168C0F3034583B200F425 -:102A10004016B6F5401F08D121F07061154E76685A -:102A200026F07066134F7E6012E000F48016B6F553 -:102A3000801F06D1032606FA05F4A14341F0706118 -:102A400006E0460D360103FA06F6B14341F0706127 -:102A500022B1460D360103FA06F6314300F0004676 -:102A6000B6F1004F02D1034EF16101E0014E7160F9 -:102A7000F0BD0000000001404161704701617047F6 -:102A80000148006870470000D800002000BFFEE742 -:102A9000704700002DE9F04F95B004468A469046F5 -:102AA0001E460025402105A8FDF797FB0020049055 -:102AB0000027012003904FF0000B194800EB441051 -:102AC00000680490164800EB44104779FF2E00D0B0 -:102AD0003746402F00D94027114800EB4410D0F86A -:102AE0001C90002505E019F8050005A94855681C4B -:102AF000C5B2BD42F7D305ABCDE90074514640469F -:102B0000049A00F029F88346BBF1000F02D101209E -:102B1000039001E000200390039815B0BDE8F08F0A -:102B20003858000810B50446012C06DA0020034985 -:102B300008552146012000F003F810BDFB000020DD -:102B4000012803D10122034B5A5402E00022014B19 -:102B50005A547047F40000202DE9F04F87B0064624 -:102B60008B4617469846DDE910954FF0000A012E76 -:102B700003DB012007B0BDE8F08F1F48C0F80490C8 -:102B800000201D4948721D4800EB4510007908706F -:102B90001A4800EB4510407C08B1012000E00020FD -:102BA00015498872154800EB4510807C08B101205A -:102BB00000E000201049087200208DF810000297F4 -:102BC000084600798DF8120000208DF811000024CD -:102BD00006E018F804100DF113000155601CC4B292 -:102BE0009DF81200A042F4DC0698009002A80FC8DD -:102BF000FEF7AAF85046BDE7982A0020385800088A -:102C00002DE9F04106460C46154600270848005DB0 -:102C100008B1012C02DB0020BDE8F0812B462246E2 -:102C200039463046FFF736FF80464046F4E700005D -:102C3000F400002010B54FF400600B49086002F06A -:102C40004BFD4FF480600849091F086002F044FD05 -:102C50004FF480600449086002F03EFD4FF40060CC -:102C60000149091F086010BD140C014010B54FF454 -:102C700000600949086002F02FFD4FF480600649AA -:102C8000086002F029FD4FF480600349091D0860C7 -:102C900002F022FD10BD0000100C014070B5054689 -:102CA0000024002618E06006040E4FF480600F49EF -:102CB000086002F011FD0D480838006800F400605B -:102CC00008B1601CC4B24FF480600849091D086057 -:102CD00002F002FD701CC6B2082EE4DB15B9FFF746 -:102CE000C5FF01E0FFF7A6FF204670BD100C0140B4 -:102CF00070B50446002524E004F0800020B14FF4B4 -:102D000000601149086004E04FF400600E49091D9D -:102D1000086002F0E1FC4FF480600B49086002F0AB -:102D2000DBFC4FF480600849091D0860072D02D1C3 -:102D30004000091F08606006040E02F0CDFC681C0C -:102D4000C5B2082DD8DB70BD100C014010B54FF492 -:102D500000600A4908604010086002F0BDFC4FF4B2 -:102D600000600649091D086002F0B6FC4FF480605F -:102D70000249091D086002F0AFFC10BD100C0140B3 -:102D800010B54FF40060074908604010091F086043 -:102D900002F0A2FC4FF400600249091F086002F033 -:102DA0009BFC10BD140C014010B54FF400600E499F -:102DB000086002F091FC4FF480600B49086002F05B -:102DC0008BFC09480838006800F4006008B1012451 -:102DD00000E000244FF480600349091D086002F000 -:102DE0007BFC204610BD0000100C014010B50446CD -:102DF0000548827A00212046FFF702FF012800D112 -:102E000010BD0020FCE700001C15002070B5054631 -:102E10000C46224600212846FFF7F2FE012800D189 -:102E200070BD0020FCE7000010B50446044800789F -:102E300010B900F0E1FD01E000F034FC10BD00002D -:102E40006600002010B500F04DFC00F01DFE10BD26 -:102E500010B50020044908710449C870FF200449D6 -:102E60000870FFF7EFFF10BD600000205A0000203F -:102E7000660000203EB57948006878498988084492 -:102E800001907748C078052806D0062834D0072856 -:102E900076D0082875D1A1E07048C088082817DBD3 -:102EA00000207049096808706C4880796D4909688C -:102EB00048706C480068801C00906848C088ADF875 -:102EC00008006649C988891C88B200F00DFD12E02F -:102ED0006248807963490968087062480068401C4C -:102EE00000905E48C088ADF808005C49C988491C5C -:102EF00088B200F0F9FCA8E05849C88800F0F4FC5A -:102F00005648C088B0F5805F3CDB10205549096801 -:102F10000870544800680078524909680870002019 -:102F20005049096848704D48C08800164D490968E5 -:102F3000887000204B490968C8704848C088000A5A -:102F400048490968087145488079464909684871C7 -:102F500044480068801D00904048807A801F80B2FD -:102F6000ADF808003D48807A801F3C4988800846BB -:102F7000408920F4706048810020394988702CE035 -:102F80002DE060E010203749096808703548006876 -:102F900000783249C988C1F30321084331490968DF -:102FA00008702E4880792F49096848702D480068BC -:102FB000801C00902948807A801E80B2ADF80800FD -:102FC0002648807A801E254988800846408920F45A -:102FD0007060488100202249887036E000BF2020C0 -:102FE0002049096808701F48006800781B49498912 -:102FF000C1F3032108431B49096808701948006898 -:10300000401C00901648C078082808D11348C08892 -:1030100012498988401A80B2ADF8080005E00F48CF -:10302000807A401E80B2ADF808000C488188807A12 -:10303000401E084409498880BDF80810491C88B220 -:1030400000F052FC01E001203EBD00BF06480168CF -:103050006846884704462046F6E700001C15002015 -:103060005A0000206C00002084000020002005E0B1 -:10307000AA21044A12681154411CC8B20828F7DB7F -:10308000704700006C00002070B5FE48867A082E5C -:1030900001D0002070BDFB48C07A00F0F00038B1CC -:1030A000102804D020287DD030287CD154E200BFE5 -:1030B000F548007998B1F4480079012801D1002041 -:1030C000E8E7F048C07A022826D1EE48007B3E2887 -:1030D00022D1EC48407B80281ED10020DAE7E94865 -:1030E000C07A022818D1E748007B3E2814D1E54871 -:1030F000407B802810D1E548008828B9E448008842 -:1031000010B9E448007938B10020E0490880012076 -:10311000E14908700020BDE700F0E4FA0220DA4936 -:1031200008710020DD498880D648C07A00F0F000A0 -:1031300000287DD010287CD1D2480088C0F30A0036 -:1031400040F2DF71884206D10120CF49087100F0BA -:1031500005FB00209EE7D248C078022807D0D0485F -:10316000C078032803D0CE48C078082806D10120B3 -:10317000C549087100F0F2FA00208BE7082E7AD1D9 -:10318000C048C07A00F00F004FF6FF7101EA00203E -:10319000C249C8800846C088BA49097B0843BF496C -:1031A000C88001E0DEE06AE20846C088072869DDE1 -:1031B00000204881B3480D3008600B46D988B14BD8 -:1031C0001B88C3F30A00B74B1A689047B3490860DD -:1031D0000846807A00F0030088B102280ED103204F -:1031E000A9490880072008710846808820F480706B -:1031F00000F58070888000F0BBFA42E000BFA7486D -:103200000068C8B39F48407BA449096808709D487E -:10321000807BA249096848709A48C07B9F49096829 -:1032200088709848007C9D490968C870954801E0FD -:1032300035E08FE0407C9949096808719148807CAD -:103240009649096848710620944988800846008993 -:1032500020F00F00401C088103208B4908800520C6 -:1032600008710846808820F4807000F5807088809E -:1032700000F07EFA04E00BE0FFE7002082490871CD -:1032800000BF0AE001208049087100F067FA04E0FD -:1032900001207D49087100F061FA0020FAE67948C2 -:1032A0000088C0F30A00804908807648C07A7B49CC -:1032B000C8800846C088401CB04244DC0846C0882C -:1032C00007283ADC0846C08880B3002048816D4852 -:1032D0000C3008600B46D9886A4B1B88C3F30A0080 -:1032E000704B1A6890476D49086008460068F0B155 -:1032F0000846807A00F00300C8B9002407E061485E -:103300000C30005D654909680855601CC4B263480B -:103310008079401EC0B2A042F1DA01205A490871FA -:103320005E4AD088614A1168884711E005E00120B3 -:103330005549087100F012FA0AE00120524908715B -:1033400000F00CFA04E001204F49087100F006FA81 -:1033500000209FE601204C49087100F0FFF900BFF2 -:1033600000BF8DE147480088C0F30A0040F2DF71DA -:10337000884206D101204449087100F0EFF900208D -:1033800088E641480079032803D03F4800790528A2 -:1033900076D13D48007905280FD13B488088C0F39D -:1033A000002040B942490878FFF772FB404908788D -:1033B000FFF73AFD01E000206CE638488088C01D28 -:1033C0003649C988884237DB3448C0883349898800 -:1033D000401A401CB0420EDC2A48C07A00F00F00B0 -:1033E0002E49097A01F00F01884205D001202649B3 -:1033F000087100F0B3F9ACE000240AE021480C3079 -:10340000005D26490968254A928811440855601CC8 -:10341000C4B2224881790079401C081AC0B2A04287 -:10342000ECDA012018490871002008801B4AD08876 -:103430001E4A116888478CE0082E0BD11148C07ACB -:1034400000F00F001549097A01F00F01884202D0FF -:1034500000F048F97DE00B48017B104800680F4AF6 -:10346000928881540748407B0C4909680B4A92882E -:10347000114448700348807B08490968074A19E0ED -:1034800069E00000802A0020600000205200002037 -:10349000540000204800002056000020281500207D -:1034A0005A0000207C0000205800002070000020FE -:1034B000680000209288114488707348C07B73496B -:1034C0000968724A92881144C8706F48017C6F483D -:1034D00000686E4A9288104401716B48407C6B49C9 -:1034E00009686A4A9288114448716748817C674834 -:1034F0000068664A92881044817164488088C01DC3 -:10350000624988800846007A401C098960F30301FB -:103510005E4801815E488078B0B15D488078401E89 -:103520005B4988700846807870B9052008710320CF -:1035300008800846808820F4807000F580708880BC -:1035400000F016F90020A5E50F205149088003205E -:10355000087100209EE593E04B480088C0F30A0004 -:103560004C49098888420ED047480088C0F30A00B9 -:1035700040F2DF71884206D101204549087100F010 -:10358000EDF8002086E54448C078022807D042487C -:10359000C078062803D04048C07807286ED13E483E -:1035A000007900F00100A0B93B48C078062807D098 -:1035B0003948C07807280ED13748807801280AD1C9 -:1035C00036490878FFF764FA34490878FFF72CFC8D -:1035D00001E000205EE53048C07802284CD1032E7F -:1035E0004ADB2948C07A302804D0312839D0322823 -:1035F0003ED13AE028480079C0F38000F8B9264867 -:10360000808820F00400001D234988801E48007B2C -:10361000234908721C48457B0A2D02DA01204872B2 -:1036200016E005F0800058B1F02D05DDF92D03DC22 -:1036300001201B4948720BE00E201949487207E02F -:1036400005F109000A2190FBF1F0401C1449487271 -:103650001348007A10498870012008800320C87040 -:1036600009E00F200C49088005E000F00DFA02E0A7 -:1036700000F00AFA00BF00BF00200BE500E000BF29 -:1036800000BF002006E50000802A00202815002049 -:1036900060000020580000205A0000206800002030 -:1036A0001C1500200D480079052802D007280DD1EF -:1036B00007E00F200949088003200871FF20C87027 -:1036C00005E0002005490880087100E0704700BF50 -:1036D000FF200349087000BFF8E7000060000020E9 -:1036E0006600002010B518480079012809DD164849 -:1036F0000079082805D00820134908711349086883 -:10370000804700201049088008710846808820F40E -:10371000807088800846808820F4007088800C487B -:10372000008920F00F000A490881002048810948DB -:103730000078802806D108490878FFF7A9F9FF200A -:103740000449087010BD00006000002074000020D3 -:1037500028150020660000206800002010B5FFF743 -:10376000C1FF10BD014A508170470000281500209C -:1037700070B538488088C0F34020D8B1354DA8884E -:10378000C0F34020002863D02846808820F40070D1 -:103790002946888030490878FFF728FB0446002C2A -:1037A00056D12846808820F4007000F50070294624 -:1037B00088804DE027488088C0F30020002847D04B -:1037C000244DA888C0F30020002841D02348007869 -:1037D000FF283DD18020214908702846808820F4A8 -:1037E00080702946888008201D498872002605E0DF -:1037F000AA201C4909688855701CC6B21848807AEE -:10380000B042F5DC13480079072804D1322015496D -:103810000968087003E03020124909680870002028 -:1038200010490968487001200E4909688870002015 -:103830000849887008490878FFF7D8FA04463CB967 -:103840000448808820F4007000F5007001498880E9 -:1038500070BD0000600000206800002066000020AD -:103860001C1500206C00002010B51E4800880028A0 -:1038700036D01C4C2088002832D020460088401EBC -:10388000214608800846008840BB08460079032886 -:1038900006D0052807D0062809D007281CD103E048 -:1038A000FFF720FF19E000BFFFF71CFF15E00D48F0 -:1038B000C07810B9FFF716FF0DE003200949088012 -:1038C000052008710846808820F4807000F580701B -:1038D0008880FFF74DFF00E000BF01E0FFF748FFE1 -:1038E00010BD0000600000200C4A12780C4B03EB66 -:1038F00042125179884202DB0A4A91720CE0C2B24C -:10390000094B9A5C094B9A5C064B9A721A46927A5A -:10391000082A01DA08229A72704700006800002025 -:10392000385800081C150020CC570008BC57000868 -:1039300010B5FFF799FF00F067F910BD10B5034609 -:1039400009B9012010BD1648C07808B10320F9E775 -:103950001448807A082801DD022200E00122114883 -:10396000807A801A80B2884203DB05200C4CE0701C -:1039700002E006200A4CE0700320094C2080094830 -:1039800003600020074CA0802046C1800448808846 -:1039900020F00100401C024CA0800020D2E7000073 -:1039A0005A0000201C15002011484089000A401CC4 -:1039B0000F49498960F30B210D4841818188807A44 -:1039C000401E80B208440A49C988884203DB0820A7 -:1039D0000849C87002E007200649C870032005495D -:1039E00008800846808820F00100401C88807047CD -:1039F0001C1500205A00002010B51F48C07805286B -:103A000006D006280ED0072817D008282CD100E0B1 -:103A100000BF1A4801680020884700201649088026 -:103A2000C87022E00F20144908800220C8700846A0 -:103A3000808820F00400888017E00F48807860B10B -:103A40000D488078401E0C4988700846807820B95F -:103A50000F2008800220C87007E00948407A064914 -:103A600008800320C87000E010BD00BFFF2005499A -:103A7000087000BFF8E700005A000020780000201E -:103A80001C1500206600002010B501241B48C078DA -:103A900001280EDD1948C07809280AD009201749E5 -:103AA000C870174908688047044614B900201349B4 -:103AB000C8700020114908800846808820F0010065 -:103AC00088800846808820F00200888054B1002059 -:103AD000C8700C4908720846408920F4706048811B -:103AE000082088720848007830B908490878FEF73D -:103AF000CFFFFF200449087010BD00005A000020CD -:103B0000800000201C1500206600002068000020B6 -:103B100070B539480079C0F34000D0B1364DA8885F -:103B2000C0F34000002866D02846808820F00200BC -:103B30002946888031490878FFF758F90446002C57 -:103B400059D12846808820F00200801C29468880B0 -:103B500051E02948007900F0010000284BD0264DA3 -:103B6000A88800F00100002845D025480078FF28EB -:103B700041D10020224908702846808820F00100A9 -:103B800029468880FFF772FAFFF774F906466EB986 -:103B90001A490878FFF72AF9044664BB284680884A -:103BA00020F00200801C2946888024E01248C0785A -:103BB000072807D01048C078082803D00E48C078DE -:103BC00006280ED10C48C078062803D100200D49E4 -:103BD000888006E00B488188807A401E081A0949CF -:103BE0008880FF20064908700348808820F0010083 -:103BF000401C0149888070BD5A00002068000020E8 -:103C0000660000201C15002010B51648008820B35F -:103C1000144C208808B320460088401E21460880A6 -:103C200008460088D0B90846C078801E072813D2FD -:103C3000DFE800F00407120C0D0E0F00FFF724FF61 -:103C40000BE0FFF7B1FEFFF763FF06E000BF00BF28 -:103C500000BFFFF719FF00E000BF01E0FFF758FFCA -:103C600010BD00005A00002008B5074840680090C9 -:103C700006490098086004490868FCF77CFA034884 -:103C80000068804708BD000000A00008E800002090 -:103C900008B501211C2000F02FF94FF40070ADF899 -:103CA000000010208DF8030003208DF80200694603 -:103CB0005348FEF70EFE4FF400715148FEF7DEFE4A -:103CC0000120ADF8000010208DF8030003208DF8CE -:103CD000020069464A48FEF7FCFD01214848FEF70C -:103CE000CDFE40F20240ADF8000010208DF8030038 -:103CF00003208DF8020069464148FEF7EAFD0221E3 -:103D00003F48FEF7BBFE4FF480613D48FEF7B4FE2E -:103D1000A020ADF8000010208DF8030003208DF8DE -:103D2000020069463748FEF7D4FD20213548FEF7EA -:103D3000A3FE80213348FEF7A1FE44F22720ADF810 -:103D4000000010208DF8030003208DF80200694662 -:103D50002D48FEF7BEFD4FF400712B48FEF78EFE96 -:103D600001212948FEF788FE02212748FEF784FE3C -:103D700004212548FEF780FE4FF480412248FEF7DB -:103D80007BFE20212048FEF777FE4FF48070ADF8CF -:103D9000000048208DF8030069461948FEF799FD98 -:103DA0004FF40070ADF8000048208DF8030069461C -:103DB0001448FEF78EFD0121084600F09DF8012110 -:103DC0001248FEF711FE1020ADF8000001208DF81A -:103DD000020010208DF8030069460B48FEF779FDBC -:103DE00010210948FEF74AFE4FF40050ADF80000DC -:103DF00004208DF8030069460248FEF76AFD08BDFD -:103E00000008014000100140000C0140000130009A -:103E100000BFFEE7704710B54FF4A06000F03AF81D -:103E200010BD000070B5002100230F22C47804B338 -:103E3000154C246804F4E064C4F5E064210AC1F17F -:103E40000403CA40447804FA03F1847814402143FF -:103E500009010E4C0678A155047804F01F050124D1 -:103E6000AC4005786D11AD0005F1E025C5F80041C5 -:103E700009E0047804F01F050124AC40044D0678E5 -:103E8000761145F8264070BD0CED00E000E400E03E -:103E900080E100E002490143024A116070470000DE -:103EA0000000FA050CED00E00149086270470000CF -:103EB00000000E427047000029B1064AD269024351 -:103EC000044BDA6104E0034AD2698243014BDA61B0 -:103ED000704700000010024029B1064A12690243EF -:103EE000044B1A6104E0034A12698243014B1A61D0 -:103EF000704700000010024029B1064A926902434F -:103F0000044B9A6104E0034A92698243014B9A612F -:103F100070470000001002402DE9F041002100220E -:103F2000002500230026002400278C46DFF860814E -:103F3000D8F8048008F00C0121B1042907D0082921 -:103F400059D109E0DFF84C81C0F8008058E0DFF873 -:103F50004481C0F8008053E0DFF83481D8F8048051 -:103F600008F47012DFF82881D8F8048008F480354E -:103F7000920C0D2A01D0921C00E0062235B9DFF820 -:103F8000188102FB08F8C0F8008033E0DFF80081F8 -:103F9000D8F82C8008F48036DFF8F480D8F82C802C -:103FA00008F00F0808F1010446B9DFF8E880B8FB13 -:103FB000F4F808FB02F8C0F800801BE0DFF8D080BE -:103FC000D8F82C80C8F3031808F10107DFF8C08087 -:103FD000D8F82C80C8F3032808F1020CDFF8B4806D -:103FE000B8FBF7F808FB0CF8B8FBF4F808FB02F88C -:103FF000C0F8008004E0DFF89C80C0F8008000BFBB -:1040000000BFDFF88C80D8F8048008F0F0010909BF -:10401000DFF8888018F80130D0F8008028FA03F81B -:10402000C0F80480DFF86880D8F8048008F4E06104 -:10403000090ADFF8688018F80130D0F8048028FAFF -:1040400003F8C0F80880DFF84880D8F8048008F446 -:104050006051C90ADFF8448018F80130D0F80480B4 -:1040600028FA03F8C0F80C80DFF82480D8F8048020 -:1040700008F44041890BDFF8288018F80130D0F8A7 -:104080000C80B8FBF3F8C0F81080BDE8F0810000A8 -:104090000010024000127A0000093D0000000020DC -:1040A0001000002070B503460C460120002107E0F7 -:1040B000655C5E5CB54201D0002003E04D1CE9B2B6 -:1040C0009142F5DB00BF70BD78B50C46057845B967 -:1040D000457835B9857825B9C57815B900251D709D -:1040E00078BD002107E0455C184E765C75400DF800 -:1040F00001504D1CE9B20429F5DB9DF8015005F093 -:10410000F0059DF8006006F00F0645EA06151570EB -:104110009DF801502D072D0E9DF8026045EA1615F9 -:1041200055709DF8025005F0F0059DF8036045EAD2 -:10413000161595709DF8035005F00F069DF8005078 -:1041400066F31F15D5701C7000BFC9E71C5A000824 -:1041500078B50C46057845B9457835B9857825B9DF -:10416000C57815B900251D7078BD002107E0455CB4 -:10417000184E765C75400DF801504D1CE9B20429CB -:10418000F5DB9DF8005005F00F069DF8015066F331 -:104190001F1515709DF801502D099DF8026006F05D -:1041A0000F0645EA061555709DF8035005F0F00519 -:1041B0009DF8026045EA161595709DF8035005F0CC -:1041C0000F059DF8006045EA1615D5701C7000BFFC -:1041D000CAE700001C5A00082DE9F0410446FCF72C -:1041E0004FFE0546134800782844C5B2002612E069 -:1041F000691C42F2BB02514343F2390202EB410017 -:10420000C11700EB11610912A0EB0127FDB204F800 -:10421000015B701CC6B2042EEADB06480078401C25 -:104220000449087008460078642801D1002008700D -:10423000BDE8F081E4000020704710B500F002F8FE -:1042400010BD00000CB500200190009040480068AF -:1042500040F480303E49086000BF3D48006800F4EB -:10426000003000900198401C0190009820B94FF652 -:10427000FF7101988842F0D13548006800F40030A1 -:1042800010B10120009001E000200090009801286A -:104290005CD13048006840F010002E4908600846A4 -:1042A000006820F0030008600846006840F0020043 -:1042B00008602748406826494860084640684860CA -:1042C0000846406840F4806048600846C06A224959 -:1042D00008401F49C8620846C06A204908431C4973 -:1042E000C8620846006840F08060086000BF184857 -:1042F000006800F000600028F9D01548406820F4FC -:104300007C10134948600846406840F4E810486053 -:104310000846006840F08070086000BF0C480068E4 -:1043200000F000700028F9D00948406820F0030030 -:10433000074948600846406840F00200486000BFF6 -:104340000348406800F00C000828F9D10CBD0000BB -:10435000001002400020024000F0FEFF140801009F -:104360000F480068401C0E4908600E480068401C59 -:104370000C4908600A4800684FF47A71B0FBF1F20A -:1043800001FB1200012804D107480068401C0649BF -:1043900008600648007810B9012004490870704789 -:1043A000340000202C0000203800002030000020C5 -:1043B00030B5164800684FF47A72B0FBF2F1B1F1F3 -:1043C000807F01D301201DE021F07F40401E4FF08F -:1043D000E022506150170F22002807DA13071D0E44 -:1043E0000B4B00F00F04241F1D5503E013071C0E98 -:1043F000084B1C5400BF00204FF0E02290610720C2 -:104400001061002008B100BFFEE730BD140000209D -:1044100018ED00E000E400E010B5FFF725FC10BD4A -:1044200010B51648006840F00100144908600846BD -:10443000406813490840114948600846006811491E -:1044400008400E4908600846006820F48020086093 -:104450000846406820F4FE0048600846006820F0E6 -:10446000A05008604FF47F0088600020C862FFF70A -:10447000E4FE4FF000600449086010BD00100240E7 -:104480000000FFF0FFFFF6FE08ED00E010B50A485F -:104490000078401C084908700846007803280ADBA9 -:1044A00000200870002401E0601CC4B2012CFBDB7A -:1044B00072B6FFF7B1FF10BDEC00002002460023EA -:1044C00021B90D4800681060012070470A48036850 -:1044D0001068984205D81068181A884209D301203C -:1044E000F3E71068C0F1FF301844884201D301207F -:1044F000EBE70020E9E70000340000204F48007897 -:1045000001280AD14E484089401C4D49488101206C -:10451000087000204949087000E070474848408909 -:10452000052190FBF1F201FB120030B944484089AB -:1045300018B101204249487000E0EEE74048408948 -:104540000A2190FBF1F201FB120028B93C48408996 -:1045500010B101203A49887039484089142190FBF4 -:10456000F1F201FB120028B93548408910B1012051 -:104570003349C87032484089322190FBF1F201FB87 -:10458000120028B92E48408910B101202C49087129 -:104590002B484089642190FBF1F201FB120028B9FD -:1045A0002748408910B10120254948712448408995 -:1045B0004FF4FA7190FBF1F201FB120028B9204888 -:1045C000408910B101201E4988711D4840894FF46F -:1045D0007A7190FBF1F201FB120028B9184840896A -:1045E00010B101201649C8711548408940F2DC51CC -:1045F00090FBF1F201FB120028B91148408910B17B -:1046000001200F4908720E4840894FF4FA6190FB6F -:10461000F1F201FB120028B90948408910B10120CC -:10462000074948720648408941F27071884202DBAE -:1046300000200349488100BF6FE7000030000020E0 -:104640000C01002000200249087048804860704733 -:104650003C00002003484078022801D10120704727 -:104660000020FCE75801002010B504462046FCF766 -:10467000A3FD10BD70B53848007900F04000B8B116 -:104680003548007920F0400033490871012408467C -:10469000407900B104243148007818B124F00104B5 -:1046A00044F0020404F0010010B1002000F05AFDB3 -:1046B0002948007902281AD104202749087128487E -:1046C00080680078274948700020244908702448F1 -:1046D0008089C82802DA2248858900E0C825EAB224 -:1046E0001F4B19699868FCF7DEFE00F049FA1A487A -:1046F000007900F0100068B300201B4908801748BB -:10470000007878280AD11948007838B11348007821 -:10471000782814D115484088012810D120200E494E -:1047200008710E48007808B9012000E002200C4909 -:1047300088700F490A480161083000F0ADFE074853 -:104740000078782806D109480078012802D1022093 -:104750000149087170BD0000480000205000002091 -:104760005801002070010020520000203C00002071 -:104770003D0B002010B504462046FCF776FD10BD29 -:1047800070B5044601252289D4E9000100F003F840 -:104790000025284670BD03E0531E9AB28B5C8354FB -:1047A000002AF9D1704700002DE9F041044638484D -:1047B000007800F07F072068457825F0800594F8A0 -:1047C0000480B8F1010F03D1132000F0BFFC5BE0BF -:1047D000012D04D0022D04D0032D44D100E000BFF0 -:1047E00000BFB8F1020F05D0132000F0AFFC00F0BD -:1047F000B9F948E0012F01D1022D03D0022F07D1D2 -:10480000032D05D17E2000F0A1FC00F0ABF93AE0C9 -:10481000032F04D1022D02D101201D49087100206F -:1048200000F0A0FC002606E000201A4988551A492D -:104830008855701CC6B2022EF6DBFCF719FC062068 -:10484000A0810020A16888703220A168C870012072 -:10485000A1680871F420A1684871032D02D10120DC -:10486000FCF776FB0FE0FFF7F5FE20B180200B4947 -:104870000968C87006E0002008490968C87012205D -:1048800000F064FC00BF00BF00F024F9BDE8F08137 -:1048900058010020BD000020C0000020480000207A -:1048A00010B504462046FCF779FD10BD10B504464E -:1048B0000320094908707F204870084684707820DA -:1048C000C870AA20087148718871C8710821002039 -:1048D000FEF79CFA10BD0000180100200148007886 -:1048E00070470000580100200248007800F07F0067 -:1048F0007047000058010020014800787047000010 -:10490000500000200A4A127902F0FE02084B1A7188 -:1049100049B91A461268824205D11A46127942F004 -:1049200002021A7170470122024B1A7000BFF9E7A8 -:10493000480000205600002070B504460D46A078BF -:10494000012804D0022803D0032806D104E000BFC8 -:10495000284600F057F801E000E000BF00BF00204B -:10496000A07070BD01460120044A127942F0010294 -:10497000024B1A711A46116000207047480000204F -:104980002DE9F04104460D46002740F6C41085424B -:1049900003DD0220FEF7E6FE16E040F2DF708442FF -:1049A00003D102200A49487006E040F20B708442AD -:1049B00002D101200649487005488581FFF7D2FFE2 -:1049C00006460EB9024887683846BDE8F081000007 -:1049D0005801002010B5044600210448FFF792FF5B -:1049E000FEF7BCFE05200249088010BD58010020DA -:1049F0005200002010B503210148FFF783FF10BDCE -:104A0000580100200021054A1180054948714021C4 -:104A1000034A11710121034A1170704752000020AE -:104A2000480000205600002010B500201E49887064 -:104A300001200870087148710020C8701B48886008 -:104A40001B491948016100201A49487108717F20EB -:104A50001949087078208870002018490870184992 -:104A60000870FFF7EFFD1748007820F02000154987 -:104A7000087000240EE0002113480155801E0155E6 -:104A8000001F20F8141000200F490A3921F81400E3 -:104A9000601CC4B2022CEEDBFCF7EAFA00200B49E2 -:104AA00008800B49088010BD5801002079010020C2 -:104AB0003D0B002048000020700100205000002025 -:104AC00056000020BB0000207A2600205400002061 -:104AD0005200002010B517480079042822D116484A -:104AE0000269846823781548007848B17F201070E7 -:104AF000537012480078907003210F48818208E0BB -:104B00000C480068C078802803D003F14000107082 -:104B1000521C0A480078782801D0FFF793FD08203E -:104B2000044908710348007940F0100001490871F8 -:104B300010BD000048000020580100205000002057 -:104B400010B504462046FCF70BFD10BD10B5044619 -:104B50002046FCF7F1FD10BD10B504462046FCF7D9 -:104B6000BBFF10BD002002490968C87070470000F3 -:104B70004800002010B504462046FDF747F810BD58 -:104B80002DE9F05F4FF00008F8488468067B207834 -:104B9000F749085C00EB4000F64901EB80004578DE -:104BA0002078F349085C00EB4000F24901EB8000FB -:104BB00090F804902078EE49085C00EB4000ED4945 -:104BC00001EB800090F805A0FFF78EFE074694F8F1 -:104BD00000B02078862800DBC346E7480078C0F3A1 -:104BE000401058B1E1484078022807D18020E349BD -:104BF0000968C870FFF76EFFBDE8F09FDC4810F849 -:104C00000B00FF2874D0012F04D0022F71D0032F86 -:104C100070D14DE0D5484078022848D12078272827 -:104C20000ED020782E280BD020782F2808D020787E -:104C3000312805D02078342802D02078372809D1AF -:104C40007F20CF4908708020CC490968C870FFF7E1 -:104C500041FFD1E7607800F0800040B32078C4497C -:104C6000085C00EB4000C34901EB8000C078F0B164 -:104C70002078192802D02078282804D18020BF4924 -:104C80000968C87013E02078B949085C00EB40005F -:104C9000B84911F82000B04205D01320B849087077 -:104CA000FFF718FFA8E78020B4490968C8709FE0A3 -:104CB000AE48407802284BD1207827280ED02078A3 -:104CC0002E280BD020782F2808D02078312805D026 -:104CD0002078342802D0207837280CD17F20A849AA -:104CE00008708020A5490968C870FFF7F3FE83E7C4 -:104CF000C8E12EE07BE0607800F0800040B32078CF -:104D00009B49085C00EB40009A4901EB8000C078A9 -:104D1000F0B12078192802D02078282804D18020EA -:104D200096490968C87013E020789149085C00EB47 -:104D30004000904911F82000B04205D0132090495E -:104D40000870FFF7C7FE57E780208C490968C870D4 -:104D50004EE086484078022848D1207827280ED097 -:104D600020782E280BD020782F2808D020783128C2 -:104D700005D02078342802D02078372809D17F2028 -:104D80007F49087080207D490968C870FFF7A2FE3E -:104D900032E7607800F0800040B320787449085C06 -:104DA00000EB4000734901EB8000C078F0B120783F -:104DB000192802D02078282804D180206F4909685A -:104DC000C87013E020786A49085C00EB400069492C -:104DD00011F82000B04205D0132069490870FFF790 -:104DE00079FE09E7802065490968C87000E000BFC6 -:104DF00000BF20785E49085C00EB40005D4901EB94 -:104E00008000C078002875D0607800F0800000280D -:104E100071D0012E6FDD207828285AD004DC1028AC -:104E200007D0112868D105E03E287CD08528F9D12B -:104E3000D4E000BF607881280ED0607883280BD042 -:104E40006078822802D12078112805D060788228E5 -:104E50002DD1207810282AD1022E03D013204849C2 -:104E6000087035E0FFF740FD012816D1062D01D06E -:104E7000042D09D1002042490870607800F08000BC -:104E80003E490968C87023E0B8F1000F20D14FF007 -:104E900001087E203A4908701AE00020384908705D -:104EA000607800F0800035490968C87010E02F482C -:104EB0004078022806D1802030490968C870FFF781 -:104EC00009FE99E6607800F080002C490968C870F6 -:104ED000CDE0032E11D02548407802280DD123487B -:104EE0004078022841D1802024490968C870FFF722 -:104EF000F1FD81E6C1E0BBE0B2E06078802802D03D -:104F00006078832823D1FFF7EFFC012815D1052D08 -:104F10000AD100201A490870607800F08000174913 -:104F20000968C87021E02DE0B8F1000F1DD14FF0E5 -:104F300001087E201249087017E00020104908700F -:104F4000607800F080000D490968C8700DE00748DE -:104F50004078022806D1802008490968C870FFF708 -:104F6000B9FD49E612200649087080E0580100208A -:104F7000305900089458000870150020480000209F -:104F8000500000206078802819D1FFF7ADFC01287F -:104F90000BD1042D21D1002060490870607800F009 -:104FA00080005F490968C87017E000205B490870FD -:104FB000607800F080005A490968C8700DE05948CF -:104FC0004078022806D1802055490968C870FFF74B -:104FD00081FD11E612205149087048E0022E07D0E9 -:104FE00050484078022803D113204C49087036E01D -:104FF0006078812802D06078822822D1FFF774FC83 -:10500000012814D1032D09D100204449087060788B -:1050100000F0800042490968C87020E0B8F1000F34 -:105020001DD14FF001087E203C49087017E0002098 -:105030003A490870607800F0800039490968C87002 -:105040000DE038484078022806D1802034490968AC -:10505000C870FFF73FFDCFE512203049087006E029 -:10506000607800F080002E490968C87000BF17E022 -:1050700000202B490968C87012E0002028490968FF -:10508000C8700DE011202549087026484078022894 -:1050900006D1802022490968C870FFF71BFDABE5E7 -:1050A0001E48007888BB022D01D1022F07D1032DA5 -:1050B00001D1032F03D1052D07D1012F05D17F2069 -:1050C00016490870FFF706FD26E01648007900EA49 -:1050D000090020B91348407900EA0A0028B13320BA -:1050E0000E490870FFF7F6FC16E005200E4908800F -:1050F00020780E4A105C00EB40000D4A02EB800065 -:10510000816808480830884706E0FFE70020044926 -:105110000968C870FFF7DEFC00BF6DE55000002095 -:10512000480000205801002052000020305900089B -:105130009458000810B504462046FCF725FF10BD22 -:10514000014948717047000058010020014908706A -:1051500070470000500000200149087170470000AE -:105160005801002070B5044612488068057811483F -:105170008068407800F07F06012C03D1012000F008 -:1051800047F904E0102D02D1304600F041F9FFF755 -:10519000ABFB01280CD10020FBF7DAFEFBF778FF10 -:1051A000012805D1FBF7A6FE10B90A2002490870B4 -:1051B00070BD000058010020440000200149087122 -:1051C000704700005801002001490968C870704705 -:1051D0004800002010B50348007908B1FFF74AFAEB -:1051E00010BD00004800002010B5FBF711FFFFF7CD -:1051F0004DF910BD10B500F02BF810BD70B5044688 -:105200002068457825F080052679012E03D11320EA -:10521000FFF79CFF19E06DB9022E05D01320FFF7B0 -:1052200095FFFFF79FFC10E00020A1684870022066 -:10523000A0810AE01220FFF789FFFFF793FCFFF738 -:1052400009FA10B18020FFF7BFFFFFF743FC70BDE4 -:1052500010B56548008818B364480078012806D165 -:105260000020624908704FF4FA705F490880604876 -:105270000079A8B95C480088401E5B490880084650 -:10528000008868B9002008800120FFF76BFF002428 -:1052900004E0002057490855601CC4B2022CF8DB1A -:1052A0005348007900F00C00C0B153480088A8B101 -:1052B00051480088401E504908800846008868B957 -:1052C0004B480068807830B90320494909688870E4 -:1052D00000F0CEF802E0012047490880002455E0A4 -:1052E000464830F81400B0F57A7F06DB4348001DCD -:1052F00030F81400B0F57A7F46DA4048001D30F8E7 -:105300001400401C81B23D48001D20F81410001FFD -:1053100030F81400401C394921F8140001F108004C -:10532000005D012810D1084630F81400B0F57A7FEE -:105330002ADB002021F814000021304808300155F4 -:1053400000202F4908551FE02C480A30005D012835 -:105350001AD12A48001D30F81400B0F57A7F13DB0B -:105360000020274908550021244808300155001F16 -:1053700020F81410801D0155801C005D032803DBFC -:1053800002211E480C300155601CC4B2022CA7DB60 -:105390001C480078002809DD1A480078401E194989 -:1053A00008700846007808B9FAF794FF16480078A4 -:1053B000002809DD14480078401E1349087008468B -:1053C000007808B9FAF786FF10480078002809DD50 -:1053D0000E480078401E0D4908700846007808B94C -:1053E000FAF778FF10BD000054000020560000209E -:1053F00048000020C000002052000020702600203D -:10540000BD00002044000020450000204600002090 -:1054100010B50446FFF768FA01280AD1FFF7CEFE5F -:1054200004F07F00012810D04FF4FA700B49088077 -:105430000BE004F07F00012807D1FFF7BFFE012039 -:10544000FFF77EFE0020054908800548047004F03F -:105450007F00012801D1FBF7AFFC10BD54000020F4 -:105460005801002010B504462046FCF78BFF10BD04 -:1054700010B506490648016103218182083000F019 -:105480000BF84FF4FA700349088010BD700100203A -:10549000580100205200002070B5044608480068FA -:1054A000C078802805D0A189A068FEF747FA054694 -:1054B00002E00025FFF756FB284600F003F870BD18 -:1054C0004800002070B504460CB1032000E0002025 -:1054D000054629460148FFF72FFA70BD5801002004 -:1054E00010B50320FFF7EEFF002010BD10B50446F5 -:1054F0002046FDF76FF910BD00BFFEE7002114E064 -:10550000084608220BE00B4B1B68034023B10A4BF3 -:105510001B6883EA500000E04008531EDAB2002AFC -:10552000F1DC064B43F82100491C054B1B689942EE -:10553000E6D37047DC000020E00000208026002039 -:10554000D000002002E008C8121F08C1002AFAD1CA -:1055500070477047002001E001C1121F002AFBD1F3 -:105560007047000008B501210820FEF7C5FC0320A4 -:105570008DF8020014208DF803004FF48060ADF820 -:10558000000069460D48FDF7A4F903208DF80200DC -:105590004FF40060ADF8000014208DF80300694658 -:1055A0000648FDF796F94FF480610448FDF766FA66 -:1055B0004FF400610148FDF761FA08BD000C01409D -:1055C000022800DB70470121024A02F8301000BFB8 -:1055D000F8E70000FC000020022803DA074911F870 -:1055E000301001B970470121044A02F8301000213F -:1055F00002EBC002517000BFF4E70000FC00002085 -:105600000146022908DA064810F8310020B10448A2 -:1056100010F83100032801D1002070470120FCE779 -:10562000FC00002010B5FFF79DFF10BD2DE9F041F3 -:1056300007460C461646FDF789FBA020FDF758FBF0 -:10564000FDF7B2FB00B130E0A046E11704EB1161B9 -:10565000C1F30720FDF74CFBFDF7A6FB00B124E0EA -:10566000E0B2FDF745FBFDF79FFB00B11DE0FDF744 -:105670006DFBA120FDF73CFBFDF796FB00B114E0AC -:1056800000250BE0711EA94201D0012100E000219C -:105690000846FDF703FB7855681C85B2B542F1DB7F -:1056A000FDF76EFB0120BDE8F081FDF769FB0020EE -:1056B000F9E70000014802490860704700F0002047 -:1056C0002800002003480068006810B1002001494C -:1056D0000860704728000020002001E0411C88B2CB -:1056E0003C28FBDB7047000086B0FEF799FEFAF716 -:1056F000E7FDFEF75DFE01A8FEF70EFCFEF78BFB53 -:10570000FEF7C6FAFFF78EFFFBF7C0FBFAF736FE8F -:105710004FF400712548FDF7AFF9FBF7B7FBFBF736 -:10572000C1FE41E0FEF7EAFE21480078012805D1DC -:1057300000201F49087000F03DF835E01C48407813 -:10574000012803D100201A4948702DE018488078BC -:10575000012805D1002016498870FFF745FD23E098 -:105760001348C078012803D100201149C8701BE0FC -:105770000F480079012803D100200D49087113E07A -:105780000B484079012803D10020094948710BE0FA -:105790000748C079012807D100200549C8714FF496 -:1057A00000710248FDF768F9BCE70000000C0140F9 -:1057B0000C01002010B5FBF7DDFB10BD000102035A -:1057C00004050607080C10141820304000010203DD -:1057D0000405060708090909090A0A0A0A0B0B0B3E -:1057E0000B0C0C0C0C0D0D0D0D0D0D0D0D0E0E0EEC -:1057F0000E0E0E0E0E0E0E0E0E0E0E0E0E0F0F0FC6 -:105800000F0F0F0F0F0F0F0F0F0F0F0F0F39323139 -:10581000343830312D4446303200000000000000A2 -:105820000056480012566E00000056480012566E90 -:1058300000000001170B10001B0700000008040007 -:105840000000020000000000000000000000000056 -:10585000292E0008180100200B070000FF07000098 -:1058600000000800DF070000FF070000000008003C -:105870002D010000FF0700000000080000000000EC -:105880000000000000000000000000000000000018 -:10589000000000000206031000000000A9470008F5 -:1058A0000206031000000000A148000803060300E0 -:1058B00000000000414B0008060501000000000048 -:1058C000355100080303031000000000694600087A -:1058D0001402010001000000ED540008060501005B -:1058E00000000000754B00080B02010001000000E1 -:1058F0004D4B0008FF020100010000006554000844 -:105900000102010001000000594B000802060310CB -:1059100000000000FD510008020303100000000019 -:1059200075470008000000000000000000000000B3 -:10593000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 -:105940000001FFFFFFFFFFFFFFFFFFFFFFFFFFFF64 -:10595000FFFF02FFFFFFFF0304FFFFFFFFFF05FF45 -:10596000FF06FFFF07FF0809FFFFFFFFFFFF0AFF1A -:10597000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 -:10598000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 -:10599000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 -:1059A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 -:1059B000FFFFFFFFFF0B000094F100003D150020EA -:1059C00009010000FFFF000095F10000B500002074 -:1059D00006010000FFFF000093F10000B00000206E -:1059E00005010000FFFF00008CF1000046150020BB -:1059F00013010000FFFF000080F1000034150020BB -:105A000009010000FFFF0000DD160008FD16000878 -:105A1000BD16000815170008191700083E53E17B52 -:105A2000405A000800000020FC0000004455000817 -:105A30003C5B0008FC000020AC310000545500081D -:105A40000000000001020304010203040607080924 -:105A50000204060800A24A04000000000000000042 -:105A6000010203040607080900000000000000000E -:105A70000000000000000000000000000000000026 -:105A80000000000000000000000000000000000016 -:105A90000000000000000000000000000000000006 -:105AA00000000000000000000000000018010020BD -:105AB000D5490008F5490008C55400088149000887 -:105AC000E1540008814700080000000000000000C9 -:105AD00000000000000000000000000000000000C6 -:105AE00000000000000000000000000000000000B6 -:105AF00000000000000000000000000000000000A6 -:105B00000000000000000000000000000000000095 -:105B1000000100000800000000000000000000007C -:105B20000000000000000000000000000000000075 -:0C5B300000000000000000000000000069 -:04000005080001519D -:00000001FF diff --git a/boot_project/Objects/hongri_boot.htm b/boot_project/Objects/hongri_boot.htm deleted file mode 100644 index 18707ae..0000000 --- a/boot_project/Objects/hongri_boot.htm +++ /dev/null @@ -1,1916 +0,0 @@ - - -Static Call Graph - [.\Objects\hongri_boot.axf] -
    -

    Static Call Graph for image .\Objects\hongri_boot.axf


    -

    #<CALLGRAPH># ARM Linker, 5060750: Last Updated: Mon Nov 04 19:26:00 2024 -

    -

    Maximum Stack Usage = 384 bytes + Unknown(Cycles, Untraceable Function Pointers)

    -Call chain for Maximum Stack Depth:

    -CAN2_RX1_IRQHandler ⇒ APP_CAN_FifoMessageReceive ⇒ APP_CAN_MessageTypeHandle ⇒ ISO15765_Precopy ⇒ ISO15765_RxStateTask ⇒ ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -

    -

    -Mutually Recursive functions -

  • ADC1_2_IRQHandler   ⇒   ADC1_2_IRQHandler
    - -

    -

    -Function Pointers -

      -
    • ADC1_2_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • BusFault_Handler from stm32f10x_it.o(i.BusFault_Handler) referenced from startup_stm32f10x_cl.o(RESET) -
    • CAN1_RX0_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • CAN1_RX1_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • CAN1_SCE_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • CAN1_TX_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • CAN2_RX0_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • CAN2_RX1_IRQHandler from can2.o(i.CAN2_RX1_IRQHandler) referenced from startup_stm32f10x_cl.o(RESET) -
    • CAN2_SCE_IRQHandler from can2.o(i.CAN2_SCE_IRQHandler) referenced from startup_stm32f10x_cl.o(RESET) -
    • CAN2_TX_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • DMA1_Channel1_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • DMA1_Channel2_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • DMA1_Channel3_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • DMA1_Channel4_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • DMA1_Channel5_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • DMA1_Channel6_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • DMA1_Channel7_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • DMA2_Channel1_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • DMA2_Channel2_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • DMA2_Channel3_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • DMA2_Channel4_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • DMA2_Channel5_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • DebugMon_Handler from stm32f10x_it.o(i.DebugMon_Handler) referenced from startup_stm32f10x_cl.o(RESET) -
    • Diag_Read_ECUSoftwareCode_F193 from diag_eeprom_c301.o(i.Diag_Read_ECUSoftwareCode_F193) referenced from diag_appl_c301.o(.constdata) -
    • Diag_Read_ECUSoftwareCode_F194 from diag_eeprom_c301.o(i.Diag_Read_ECUSoftwareCode_F194) referenced from diag_appl_c301.o(.constdata) -
    • Diag_Read_ECUSoftwareCode_F195 from diag_eeprom_c301.o(i.Diag_Read_ECUSoftwareCode_F195) referenced from diag_appl_c301.o(.constdata) -
    • Diag_Read_F18C from diag_eeprom_c301.o(i.Diag_Read_F18C) referenced from diag_appl_c301.o(.constdata) -
    • Diag_Read_FBLVersionInformation from diag_eeprom_c301.o(i.Diag_Read_FBLVersionInformation) referenced from diag_appl_c301.o(.constdata) -
    • ETH_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • ETH_WKUP_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • EXTI0_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • EXTI15_10_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • EXTI1_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • EXTI2_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • EXTI3_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • EXTI4_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • EXTI9_5_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • FLASH_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • HardFault_Handler from stm32f10x_it.o(i.HardFault_Handler) referenced from startup_stm32f10x_cl.o(RESET) -
    • I2C1_ER_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • I2C1_EV_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • I2C2_ER_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • I2C2_EV_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • ISO15765_DrvConfirmation from iso15765-2.o(i.ISO15765_DrvConfirmation) referenced from canconfig_c301.o(.constdata) -
    • MemManage_Handler from stm32f10x_it.o(i.MemManage_Handler) referenced from startup_stm32f10x_cl.o(RESET) -
    • NMI_Handler from stm32f10x_it.o(i.NMI_Handler) referenced from startup_stm32f10x_cl.o(RESET) -
    • OTG_FS_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • OTG_FS_WKUP_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • PVD_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • PendSV_Handler from stm32f10x_it.o(i.PendSV_Handler) referenced from startup_stm32f10x_cl.o(RESET) -
    • RCC_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • RTCAlarm_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • RTC_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • Reset_Handler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • SPI1_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • SPI2_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • SPI3_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • SVC_Handler from stm32f10x_it.o(i.SVC_Handler) referenced from startup_stm32f10x_cl.o(RESET) -
    • SysTick_Handler from dev_sys.o(i.SysTick_Handler) referenced from startup_stm32f10x_cl.o(RESET) -
    • SystemInit from system_stm32f10x.o(i.SystemInit) referenced from startup_stm32f10x_cl.o(.text) -
    • TAMPER_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • TIM1_BRK_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • TIM1_CC_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • TIM1_TRG_COM_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • TIM1_UP_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • TIM2_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • TIM3_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • TIM4_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • TIM5_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • TIM6_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • TIM7_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • UART4_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • UART5_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • USART1_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • USART2_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • USART3_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • Uds_CommunicationControl from uds.o(i.Uds_CommunicationControl) referenced from canconfig_c301.o(.constdata) -
    • Uds_ControlDTCSetting from uds.o(i.Uds_ControlDTCSetting) referenced from canconfig_c301.o(.constdata) -
    • Uds_CopyToCAN from uds.o(i.Uds_CopyToCAN) referenced from iso15765-2_entry.o(.data) -
    • Uds_DiagControlSession from uds.o(i.Uds_DiagControlSession) referenced from canconfig_c301.o(.constdata) -
    • Uds_ECUReset from uds.o(i.Uds_ECUReset) referenced from canconfig_c301.o(.constdata) -
    • Uds_PhysFuncGetBuffer from uds.o(i.Uds_PhysFuncGetBuffer) referenced from iso15765-2_entry.o(.data) -
    • Uds_PhysReqInd from uds.o(i.Uds_PhysReqInd) referenced from iso15765-2_entry.o(.data) -
    • Uds_PhysRxErrorIndication from uds.o(i.Uds_PhysRxErrorIndication) referenced from iso15765-2_entry.o(.data) -
    • Uds_ReadDataByIdentifier from uds.o(i.Uds_ReadDataByIdentifier) referenced from canconfig_c301.o(.constdata) -
    • Uds_RequestDownload from uds.o(i.Uds_RequestDownload) referenced from canconfig_c301.o(.constdata) -
    • Uds_RequestTransferExit from uds.o(i.Uds_RequestTransferExit) referenced from canconfig_c301.o(.constdata) -
    • Uds_RoutineControl from uds.o(i.Uds_RoutineControl) referenced from canconfig_c301.o(.constdata) -
    • Uds_SecurityAccess from uds.o(i.Uds_SecurityAccess) referenced from canconfig_c301.o(.constdata) -
    • Uds_TesterPresent from uds.o(i.Uds_TesterPresent) referenced from canconfig_c301.o(.constdata) -
    • Uds_TransferData from uds.o(i.Uds_TransferData) referenced from canconfig_c301.o(.constdata) -
    • Uds_TxConfirmation from uds.o(i.Uds_TxConfirmation) referenced from iso15765-2_entry.o(.data) -
    • Uds_TxErrorIndication from uds.o(i.Uds_TxErrorIndication) referenced from iso15765-2_entry.o(.data) -
    • Uds_WriteDataByIdentifier from uds.o(i.Uds_WriteDataByIdentifier) referenced from canconfig_c301.o(.constdata) -
    • UsageFault_Handler from stm32f10x_it.o(i.UsageFault_Handler) referenced from startup_stm32f10x_cl.o(RESET) -
    • WWDG_IRQHandler from startup_stm32f10x_cl.o(.text) referenced from startup_stm32f10x_cl.o(RESET) -
    • __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_stm32f10x_cl.o(.text) -
    • main from main.o(i.main) referenced from entry9a.o(.ARM.Collect$$$$0000000B) -
    -

    -

    -Global Symbols -

    -

    __main (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(.text) -
    -

    _main_stk (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001)) - -

    _main_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004)) -

    [Calls]

    • >>   __scatterload -
    - -

    __main_after_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004)) -

    [Called By]

    • >>   __scatterload -
    - -

    _main_clock (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008)) - -

    _main_cpp_init (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A)) - -

    _main_init (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B)) - -

    __rt_final_cpp (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D)) - -

    __rt_final_exit (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F)) - -

    __get_PSP (Thumb, 6 bytes, Stack size 0 bytes, core_cm3.o(.emb_text), UNUSED) - -

    __set_PSP (Thumb, 6 bytes, Stack size 0 bytes, core_cm3.o(.emb_text), UNUSED) - -

    __get_MSP (Thumb, 6 bytes, Stack size 0 bytes, core_cm3.o(.emb_text), UNUSED) - -

    __set_MSP (Thumb, 6 bytes, Stack size 0 bytes, core_cm3.o(.emb_text)) -

    [Called By]

    • >>   JumpToExecute -
    - -

    __REV16 (Thumb, 4 bytes, Stack size 0 bytes, core_cm3.o(.emb_text), UNUSED) - -

    __REVSH (Thumb, 4 bytes, Stack size 0 bytes, core_cm3.o(.emb_text), UNUSED) - -

    Reset_Handler (Thumb, 8 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    ADC1_2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -

    [Calls]

    • >>   ADC1_2_IRQHandler -
    -
    [Called By]
    • >>   ADC1_2_IRQHandler -
    -
    [Address Reference Count : 1]
    • startup_stm32f10x_cl.o(RESET) -
    -

    CAN1_RX0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    CAN1_RX1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    CAN1_SCE_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    CAN1_TX_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    CAN2_RX0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    CAN2_TX_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    DMA1_Channel1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    DMA1_Channel2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    DMA1_Channel3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    DMA1_Channel4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    DMA1_Channel5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    DMA1_Channel6_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    DMA1_Channel7_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    DMA2_Channel1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    DMA2_Channel2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    DMA2_Channel3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    DMA2_Channel4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    DMA2_Channel5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    ETH_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    ETH_WKUP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    EXTI0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    EXTI15_10_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    EXTI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    EXTI2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    EXTI3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    EXTI4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    EXTI9_5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    FLASH_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    I2C1_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    I2C1_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    I2C2_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    I2C2_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    OTG_FS_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    OTG_FS_WKUP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    PVD_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    RCC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    RTCAlarm_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    RTC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    SPI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    SPI2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    SPI3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    TAMPER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    TIM1_BRK_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    TIM1_CC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    TIM1_TRG_COM_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    TIM1_UP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    TIM2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    TIM3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    TIM4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    TIM5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    TIM6_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    TIM7_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    UART4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    UART5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    USART1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    USART2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    USART3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    WWDG_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f10x_cl.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    __aeabi_memcpy (Thumb, 36 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED) - -

    __aeabi_memcpy4 (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text)) -

    [Called By]

    • >>   Can2_Send_Message -
    - -

    __aeabi_memcpy8 (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED) - -

    __aeabi_memset (Thumb, 14 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED) -

    [Called By]

    • >>   _memset$wrapper -
    • >>   __aeabi_memclr -
    - -

    __aeabi_memset4 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED) - -

    __aeabi_memset8 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED) - -

    __aeabi_memclr (Thumb, 4 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED) -

    [Calls]

    • >>   __aeabi_memset -
    - -

    __aeabi_memclr4 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text)) -

    [Called By]

    • >>   CAN2_RX1_IRQHandler -
    • >>   IF_CAN_CopyDataAndStartTx -
    - -

    __aeabi_memclr8 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED) - -

    _memset$wrapper (Thumb, 18 bytes, Stack size 8 bytes, memseta.o(.text), UNUSED) -

    [Calls]

    • >>   __aeabi_memset -
    - -

    __scatterload (Thumb, 28 bytes, Stack size 0 bytes, init.o(.text)) -

    [Calls]

    • >>   __main_after_scatterload -
    -
    [Called By]
    • >>   _main_scatterload -
    - -

    __scatterload_rt2 (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED) - -

    APP_CAN_FifoMessageReceive (Thumb, 72 bytes, Stack size 32 bytes, app_can.o(i.APP_CAN_FifoMessageReceive)) -

    [Stack]

    • Max Depth = 352
    • Call Chain = APP_CAN_FifoMessageReceive ⇒ APP_CAN_MessageTypeHandle ⇒ ISO15765_Precopy ⇒ ISO15765_RxStateTask ⇒ ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   APP_CAN_MessageTypeHandle -
    -
    [Called By]
    • >>   CAN2_RX1_IRQHandler -
    - -

    BSP_BKP_Init (Thumb, 20 bytes, Stack size 8 bytes, main.o(i.BSP_BKP_Init)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = BSP_BKP_Init -
    -
    [Calls]
    • >>   RCC_APB1PeriphClockCmd -
    • >>   PWR_BackupAccessCmd -
    -
    [Called By]
    • >>   main -
    - -

    BSP_vSystemReset (Thumb, 30 bytes, Stack size 0 bytes, app_can.o(i.BSP_vSystemReset)) -

    [Called By]

    • >>   Uds_TimerTask -
    • >>   Can_Task -
    - -

    BusFault_Handler (Thumb, 4 bytes, Stack size 0 bytes, stm32f10x_it.o(i.BusFault_Handler)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    Bzip2_Finish (Thumb, 12 bytes, Stack size 0 bytes, uds_sa_c301.o(i.Bzip2_Finish)) -

    [Called By]

    • >>   Diag_RequestTransferExit -
    - -

    Bzip2_Init (Thumb, 26 bytes, Stack size 4 bytes, uds_sa_c301.o(i.Bzip2_Init)) -

    [Stack]

    • Max Depth = 4
    • Call Chain = Bzip2_Init -
    -
    [Calls]
    • >>   _Bzip2_InitTable -
    -
    [Called By]
    • >>   Diag_RequestDownload -
    - -

    Bzip2_Start (Thumb, 10 bytes, Stack size 0 bytes, uds_sa_c301.o(i.Bzip2_Start)) -

    [Called By]

    • >>   Diag_RequestDownload -
    - -

    Bzip2_Update (Thumb, 44 bytes, Stack size 12 bytes, uds_sa_c301.o(i.Bzip2_Update)) -

    [Stack]

    • Max Depth = 12
    • Call Chain = Bzip2_Update -
    -
    [Called By]
    • >>   Diag_TransferData -
    - -

    CAN2_Mode_Init (Thumb, 308 bytes, Stack size 40 bytes, can2.o(i.CAN2_Mode_Init)) -

    [Stack]

    • Max Depth = 64
    • Call Chain = CAN2_Mode_Init ⇒ GPIO_Init -
    -
    [Calls]
    • >>   CAN_Init -
    • >>   CAN_ITConfig -
    • >>   CAN_FilterInit -
    • >>   RCC_APB2PeriphClockCmd -
    • >>   RCC_APB1PeriphClockCmd -
    • >>   GPIO_Init -
    • >>   NVIC_Init -
    • >>   can_bus_open_hook -
    -
    [Called By]
    • >>   main -
    - -

    CAN2_RX1_IRQHandler (Thumb, 44 bytes, Stack size 32 bytes, can2.o(i.CAN2_RX1_IRQHandler)) -

    [Stack]

    • Max Depth = 384
    • Call Chain = CAN2_RX1_IRQHandler ⇒ APP_CAN_FifoMessageReceive ⇒ APP_CAN_MessageTypeHandle ⇒ ISO15765_Precopy ⇒ ISO15765_RxStateTask ⇒ ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   CAN_Receive -
    • >>   APP_CAN_FifoMessageReceive -
    • >>   can_bus_ready_hook -
    • >>   __aeabi_memclr4 -
    -
    [Address Reference Count : 1]
    • startup_stm32f10x_cl.o(RESET) -
    -

    CAN2_SCE_IRQHandler (Thumb, 186 bytes, Stack size 8 bytes, can2.o(i.CAN2_SCE_IRQHandler)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = CAN2_SCE_IRQHandler ⇒ CAN_GetITStatus -
    -
    [Calls]
    • >>   CAN_GetITStatus -
    • >>   CAN_GetFlagStatus -
    • >>   CAN_DeInit -
    • >>   CAN_ClearITPendingBit -
    • >>   CAN_ClearFlag -
    • >>   TickOut -
    -
    [Address Reference Count : 1]
    • startup_stm32f10x_cl.o(RESET) -
    -

    CAN_ClearFlag (Thumb, 52 bytes, Stack size 0 bytes, stm32f10x_can.o(i.CAN_ClearFlag)) -

    [Called By]

    • >>   CAN2_SCE_IRQHandler -
    - -

    CAN_ClearITPendingBit (Thumb, 162 bytes, Stack size 0 bytes, stm32f10x_can.o(i.CAN_ClearITPendingBit)) -

    [Called By]

    • >>   CAN2_SCE_IRQHandler -
    - -

    CAN_DeInit (Thumb, 50 bytes, Stack size 8 bytes, stm32f10x_can.o(i.CAN_DeInit)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = CAN_DeInit -
    -
    [Calls]
    • >>   RCC_APB1PeriphResetCmd -
    -
    [Called By]
    • >>   CAN2_SCE_IRQHandler -
    - -

    CAN_FilterInit (Thumb, 258 bytes, Stack size 8 bytes, stm32f10x_can.o(i.CAN_FilterInit)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = CAN_FilterInit -
    -
    [Called By]
    • >>   CAN2_Mode_Init -
    - -

    CAN_GetFlagStatus (Thumb, 120 bytes, Stack size 8 bytes, stm32f10x_can.o(i.CAN_GetFlagStatus)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = CAN_GetFlagStatus -
    -
    [Called By]
    • >>   CAN2_SCE_IRQHandler -
    - -

    CAN_GetITStatus (Thumb, 284 bytes, Stack size 16 bytes, stm32f10x_can.o(i.CAN_GetITStatus)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = CAN_GetITStatus -
    -
    [Calls]
    • >>   CheckITStatus -
    -
    [Called By]
    • >>   CAN2_SCE_IRQHandler -
    - -

    CAN_ITConfig (Thumb, 18 bytes, Stack size 0 bytes, stm32f10x_can.o(i.CAN_ITConfig)) -

    [Called By]

    • >>   CAN2_Mode_Init -
    - -

    CAN_Init (Thumb, 276 bytes, Stack size 12 bytes, stm32f10x_can.o(i.CAN_Init)) -

    [Stack]

    • Max Depth = 12
    • Call Chain = CAN_Init -
    -
    [Called By]
    • >>   CAN2_Mode_Init -
    - -

    CAN_Receive (Thumb, 240 bytes, Stack size 8 bytes, stm32f10x_can.o(i.CAN_Receive)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = CAN_Receive -
    -
    [Called By]
    • >>   CAN2_RX1_IRQHandler -
    - -

    CAN_Transmit (Thumb, 294 bytes, Stack size 8 bytes, stm32f10x_can.o(i.CAN_Transmit)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = CAN_Transmit -
    -
    [Called By]
    • >>   Can2_Send_Message -
    - -

    CAN_TransmitStatus (Thumb, 138 bytes, Stack size 8 bytes, stm32f10x_can.o(i.CAN_TransmitStatus)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = CAN_TransmitStatus -
    -
    [Called By]
    • >>   Can2_Send_Message -
    - -

    Can2_Send_Message (Thumb, 96 bytes, Stack size 48 bytes, can2.o(i.Can2_Send_Message)) -

    [Stack]

    • Max Depth = 56
    • Call Chain = Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   CAN_TransmitStatus -
    • >>   CAN_Transmit -
    • >>   can_bus_send_ready -
    • >>   __aeabi_memcpy4 -
    -
    [Called By]
    • >>   IF_CAN_SendCanData -
    - -

    CanExt_CanTransShutdown (Thumb, 10 bytes, Stack size 8 bytes, app_can.o(i.CanExt_CanTransShutdown)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = CanExt_CanTransShutdown ⇒ CanTrans_GoToSleep -
    -
    [Calls]
    • >>   CanTrans_GoToSleep -
    -
    [Called By]
    • >>   Can_Task -
    - -

    CanTask_BusErrorDetection (Thumb, 2 bytes, Stack size 0 bytes, app_can.o(i.CanTask_BusErrorDetection)) -

    [Called By]

    • >>   CanTask_TimerProcess -
    - -

    CanTask_FBLInit (Thumb, 196 bytes, Stack size 0 bytes, app_can.o(i.CanTask_FBLInit)) -

    [Called By]

    • >>   Uds_TransSessionType -
    • >>   CanTask_InitProcess -
    - -

    CanTask_GetSaRandom (Thumb, 6 bytes, Stack size 0 bytes, app_can.o(i.CanTask_GetSaRandom)) -

    [Called By]

    • >>   SA_Random -
    - -

    CanTask_InitProcess (Thumb, 80 bytes, Stack size 8 bytes, app_can.o(i.CanTask_InitProcess)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = CanTask_InitProcess ⇒ ISO15765_InitPowerOn ⇒ ISO15765_Init ⇒ ISO15765_TxInit -
    -
    [Calls]
    • >>   IF_CAN_IsOnLine -
    • >>   CanTrans_Init -
    • >>   ISO15765_InitPowerOn -
    • >>   CanTask_FBLInit -
    • >>   Uds_PowerOnInit -
    • >>   IF_CAN_InitLoaclStatus -
    -
    [Called By]
    • >>   main -
    - -

    CanTask_IsAppBeenErased (Thumb, 40 bytes, Stack size 0 bytes, app_can.o(i.CanTask_IsAppBeenErased)) -

    [Called By]

    • >>   Uds_SetState -
    - -

    CanTask_SetStayInBootFlagValue (Thumb, 6 bytes, Stack size 0 bytes, app_can.o(i.CanTask_SetStayInBootFlagValue)) -

    [Called By]

    • >>   Uds_DiagControlSession -
    • >>   Uds_SetState -
    - -

    CanTask_UdsStateProcess (Thumb, 16 bytes, Stack size 8 bytes, app_can.o(i.CanTask_UdsStateProcess)) -

    [Stack]

    • Max Depth = 112
    • Call Chain = CanTask_UdsStateProcess ⇒ Uds_StateTask ⇒ Uds_ContextTask ⇒ Uds_SetState ⇒ Diag_CheckValidApp1 ⇒ ee_ReadBytes ⇒ IIC_Read_Byte ⇒ IIC_NAck -
    -
    [Calls]
    • >>   Uds_StateTask -
    -
    [Called By]
    • >>   uds_SysTick_Process_1ms -
    - -

    CanTrans_GoToNormal (Thumb, 38 bytes, Stack size 8 bytes, can_transceiver.o(i.CanTrans_GoToNormal)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = CanTrans_GoToNormal -
    -
    [Calls]
    • >>   GPIO_SetBits -
    -
    [Called By]
    • >>   CanTrans_Init -
    - -

    CanTrans_GoToSleep (Thumb, 50 bytes, Stack size 8 bytes, can_transceiver.o(i.CanTrans_GoToSleep)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = CanTrans_GoToSleep -
    -
    [Calls]
    • >>   GPIO_SetBits -
    • >>   GPIO_ResetBits -
    • >>   CanTrans_Delay -
    -
    [Called By]
    • >>   CanExt_CanTransShutdown -
    - -

    CanTrans_Init (Thumb, 10 bytes, Stack size 8 bytes, can_transceiver.o(i.CanTrans_Init)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = CanTrans_Init ⇒ CanTrans_GoToNormal -
    -
    [Calls]
    • >>   CanTrans_GoToNormal -
    -
    [Called By]
    • >>   CanTask_InitProcess -
    - -

    Can_Task (Thumb, 68 bytes, Stack size 8 bytes, app_can.o(i.Can_Task)) -

    [Stack]

    • Max Depth = 320
    • Call Chain = Can_Task ⇒ CanTask_TimerProcess ⇒ ISO15765_Task ⇒ ISO15765_TxTask ⇒ ISO15765_TxStateTask ⇒ ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   BSP_vSystemReset -
    • >>   CanExt_CanTransShutdown -
    • >>   CanTask_TimerProcess -
    -
    [Called By]
    • >>   Uds_SysTick_Process_10ms -
    - -

    DebugMon_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f10x_it.o(i.DebugMon_Handler)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    Diag_AppDataInit (Thumb, 8 bytes, Stack size 0 bytes, diag_appl_c301.o(i.Diag_AppDataInit)) -

    [Called By]

    • >>   Uds_PowerOnInit -
    • >>   Uds_DiagControlSession -
    - -

    Diag_CheckTransmitSequence (Thumb, 20 bytes, Stack size 16 bytes, diag_appl_c301.o(i.Diag_CheckTransmitSequence)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = Diag_CheckTransmitSequence -
    -
    [Calls]
    • >>   GetCrc32Chk -
    -
    [Called By]
    • >>   Diag_RoutineControl -
    - -

    Diag_CheckValidApp1 (Thumb, 54 bytes, Stack size 16 bytes, diag_appl_c301.o(i.Diag_CheckValidApp1)) -

    [Stack]

    • Max Depth = 64
    • Call Chain = Diag_CheckValidApp1 ⇒ ee_ReadBytes ⇒ IIC_Read_Byte ⇒ IIC_NAck -
    -
    [Calls]
    • >>   ee_ReadBytes -
    -
    [Called By]
    • >>   Diag_CheckValidApplication -
    • >>   Uds_SetState -
    - -

    Diag_CheckValidApplication (Thumb, 24 bytes, Stack size 8 bytes, diag_appl_c301.o(i.Diag_CheckValidApplication)) -

    [Stack]

    • Max Depth = 72
    • Call Chain = Diag_CheckValidApplication ⇒ Diag_CheckValidApp1 ⇒ ee_ReadBytes ⇒ IIC_Read_Byte ⇒ IIC_NAck -
    -
    [Calls]
    • >>   Diag_CheckValidApp1 -
    -
    [Called By]
    • >>   Diag_RoutineControl -
    - -

    Diag_CheckVerifyUpgradePacket (Thumb, 22 bytes, Stack size 0 bytes, diag_appl_c301.o(i.Diag_CheckVerifyUpgradePacket)) -

    [Called By]

    • >>   Diag_RoutineControl -
    - -

    Diag_CheckWriteDIDRange (Thumb, 48 bytes, Stack size 0 bytes, diag_appl_c301.o(i.Diag_CheckWriteDIDRange)) -

    [Called By]

    • >>   Diag_WriteDataByIdentifier -
    - -

    Diag_ClrAPP1UpdateMark (Thumb, 72 bytes, Stack size 16 bytes, diag_eeprom_c301.o(i.Diag_ClrAPP1UpdateMark)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = Diag_ClrAPP1UpdateMark -
    -
    [Calls]
    • >>   flashdnit -
    • >>   flashInit -
    -
    [Called By]
    • >>   Diag_RoutineControl -
    - -

    Diag_ClrEepromUpdateMark (Thumb, 20 bytes, Stack size 0 bytes, diag_eeprom_c301.o(i.Diag_ClrEepromUpdateMark)) -

    [Called By]

    • >>   Diag_RoutineControl -
    - -

    Diag_CommunicationControl (Thumb, 178 bytes, Stack size 24 bytes, diag_appl_c301.o(i.Diag_CommunicationControl)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = Diag_CommunicationControl ⇒ Uds_ProcessFinished -
    -
    [Calls]
    • >>   Diag_CommEnable -
    • >>   Diag_CommDisable -
    • >>   Uds_SetSupFuncEnableFlag -
    • >>   Uds_SetNRC -
    • >>   Uds_ResponseEnable -
    • >>   Uds_ProcessFinished -
    • >>   Uds_CheckAdrrType -
    -
    [Called By]
    • >>   Uds_CommunicationControl -
    - -

    Diag_ControlDTCSetting (Thumb, 100 bytes, Stack size 16 bytes, diag_appl_c301.o(i.Diag_ControlDTCSetting)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = Diag_ControlDTCSetting ⇒ Uds_ProcessFinished -
    -
    [Calls]
    • >>   Uds_SetSupFuncEnableFlag -
    • >>   Uds_SetNRC -
    • >>   Uds_ResponseEnable -
    • >>   Uds_ProcessFinished -
    • >>   Uds_CheckAdrrType -
    -
    [Called By]
    • >>   Uds_ControlDTCSetting -
    - -

    Diag_DataCalcCRC (Thumb, 96 bytes, Stack size 16 bytes, diag_appl_c301.o(i.Diag_DataCalcCRC)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = Diag_DataCalcCRC -
    -
    [Called By]
    • >>   Diag_TransferData -
    - -

    Diag_DataProgram (Thumb, 94 bytes, Stack size 24 bytes, diag_appl_c301.o(i.Diag_DataProgram)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = Diag_DataProgram -
    -
    [Calls]
    • >>   flashdnit -
    • >>   flashInit -
    -
    [Called By]
    • >>   Diag_TransferData -
    - -

    Diag_EcuReset (Thumb, 132 bytes, Stack size 16 bytes, diag_appl_c301.o(i.Diag_EcuReset)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = Diag_EcuReset ⇒ Uds_ProcessFinished -
    -
    [Calls]
    • >>   Uds_SetSupFuncEnableFlag -
    • >>   Uds_SetNRC -
    • >>   Uds_ResponseEnable -
    • >>   Uds_ProcessFinished -
    • >>   Uds_CheckAdrrType -
    -
    [Called By]
    • >>   Uds_ECUReset -
    - -

    Diag_FlashCalcCRC (Thumb, 118 bytes, Stack size 40 bytes, diag_appl_c301.o(i.Diag_FlashCalcCRC)) -

    [Stack]

    • Max Depth = 328
    • Call Chain = Diag_FlashCalcCRC ⇒ Uds_ForceTransmitResPending ⇒ ISO15765_CanTransmitMsgWithDlc ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   Uds_ForceTransmitResPending -
    -
    [Called By]
    • >>   Diag_RequestTransferExit -
    - -

    Diag_HndUpdataEV (Thumb, 2 bytes, Stack size 0 bytes, diag_eeprom_c301.o(i.Diag_HndUpdataEV)) -

    [Called By]

    • >>   main -
    - -

    Diag_MemCopy (Thumb, 22 bytes, Stack size 8 bytes, diag_eeprom_c301.o(i.Diag_MemCopy)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = Diag_MemCopy -
    -
    [Called By]
    • >>   Diag_WriteDataByIdentifier -
    • >>   Uds_ContextTask -
    - -

    Diag_MemCpy (Thumb, 20 bytes, Stack size 8 bytes, diag_appl_c301.o(i.Diag_MemCpy)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = Diag_MemCpy -
    -
    [Called By]
    • >>   Diag_RamWrite -
    - -

    Diag_ProgramFailedDataInit (Thumb, 120 bytes, Stack size 0 bytes, diag_appl_c301.o(i.Diag_ProgramFailedDataInit)) -

    [Called By]

    • >>   Diag_TransferData -
    - -

    Diag_RamWrite (Thumb, 20 bytes, Stack size 16 bytes, diag_appl_c301.o(i.Diag_RamWrite)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = Diag_RamWrite ⇒ Diag_MemCpy -
    -
    [Calls]
    • >>   Diag_MemCpy -
    -
    [Called By]
    • >>   Diag_TransferData -
    - -

    Diag_ReadDataByIdentifier (Thumb, 340 bytes, Stack size 144 bytes, diag_appl_c301.o(i.Diag_ReadDataByIdentifier)) -

    [Stack]

    • Max Depth = 152
    • Call Chain = Diag_ReadDataByIdentifier ⇒ Uds_ProcessFinished -
    -
    [Calls]
    • >>   Uds_SetSupFuncEnableFlag -
    • >>   Uds_SetNRC -
    • >>   Uds_ProcessFinished -
    • >>   Uds_GetNRC -
    • >>   Uds_CheckAdrrType -
    -
    [Called By]
    • >>   Uds_ReadDataByIdentifier -
    - -

    Diag_Read_ECUSoftwareCode_F193 (Thumb, 22 bytes, Stack size 0 bytes, diag_eeprom_c301.o(i.Diag_Read_ECUSoftwareCode_F193)) -
    [Address Reference Count : 1]

    • diag_appl_c301.o(.constdata) -
    -

    Diag_Read_ECUSoftwareCode_F194 (Thumb, 22 bytes, Stack size 0 bytes, diag_eeprom_c301.o(i.Diag_Read_ECUSoftwareCode_F194)) -
    [Address Reference Count : 1]

    • diag_appl_c301.o(.constdata) -
    -

    Diag_Read_ECUSoftwareCode_F195 (Thumb, 20 bytes, Stack size 0 bytes, diag_eeprom_c301.o(i.Diag_Read_ECUSoftwareCode_F195)) -
    [Address Reference Count : 1]

    • diag_appl_c301.o(.constdata) -
    -

    Diag_Read_F18C (Thumb, 2 bytes, Stack size 0 bytes, diag_eeprom_c301.o(i.Diag_Read_F18C)) -
    [Address Reference Count : 1]

    • diag_appl_c301.o(.constdata) -
    -

    Diag_Read_FBLVersionInformation (Thumb, 22 bytes, Stack size 0 bytes, diag_eeprom_c301.o(i.Diag_Read_FBLVersionInformation)) -
    [Address Reference Count : 1]

    • diag_appl_c301.o(.constdata) -
    -

    Diag_RequestDownload (Thumb, 832 bytes, Stack size 32 bytes, diag_appl_c301.o(i.Diag_RequestDownload)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = Diag_RequestDownload ⇒ Uds_ProcessFinished -
    -
    [Calls]
    • >>   Bzip2_Start -
    • >>   Bzip2_Init -
    • >>   Uds_SetNRC -
    • >>   Uds_ProcessFinished -
    • >>   Uds_GetNRC -
    -
    [Called By]
    • >>   Uds_RequestDownload -
    - -

    Diag_RequestEraseFlash (Thumb, 72 bytes, Stack size 24 bytes, diag_appl_c301.o(i.Diag_RequestEraseFlash)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = Diag_RequestEraseFlash -
    -
    [Calls]
    • >>   flashdnit -
    • >>   flashInit -
    -
    [Called By]
    • >>   Diag_RoutineControl -
    - -

    Diag_RequestTransferExit (Thumb, 298 bytes, Stack size 16 bytes, diag_appl_c301.o(i.Diag_RequestTransferExit)) -

    [Stack]

    • Max Depth = 344
    • Call Chain = Diag_RequestTransferExit ⇒ Diag_FlashCalcCRC ⇒ Uds_ForceTransmitResPending ⇒ ISO15765_CanTransmitMsgWithDlc ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   Bzip2_Finish -
    • >>   Diag_FlashCalcCRC -
    • >>   Uds_SetNRC -
    • >>   Uds_ProcessFinished -
    -
    [Called By]
    • >>   Uds_RequestTransferExit -
    - -

    Diag_RoutineControl (Thumb, 882 bytes, Stack size 48 bytes, diag_appl_c301.o(i.Diag_RoutineControl)) -

    [Stack]

    • Max Depth = 336
    • Call Chain = Diag_RoutineControl ⇒ Uds_ForceTransmitResPending ⇒ ISO15765_CanTransmitMsgWithDlc ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   Diag_RequestEraseFlash -
    • >>   Diag_CheckVerifyUpgradePacket -
    • >>   Diag_CheckValidApplication -
    • >>   Diag_CheckTransmitSequence -
    • >>   Diag_SetEepromAppErasureMark -
    • >>   Diag_ClrEepromUpdateMark -
    • >>   Diag_ClrAPP1UpdateMark -
    • >>   Uds_SetSupFuncEnableFlag -
    • >>   Uds_SetNRC -
    • >>   Uds_ProcessFinished -
    • >>   Uds_GetCurSessionAccessStatus -
    • >>   Uds_ForceTransmitResPending -
    • >>   Uds_CheckAdrrType -
    -
    [Called By]
    • >>   Uds_RoutineControl -
    - -

    Diag_SecurityAccess (Thumb, 968 bytes, Stack size 40 bytes, diag_appl_c301.o(i.Diag_SecurityAccess)) -

    [Stack]

    • Max Depth = 64
    • Call Chain = Diag_SecurityAccess ⇒ SA_Random -
    -
    [Calls]
    • >>   SA_GenerateKeyFBL -
    • >>   SA_GenerateKey -
    • >>   SA_Compare -
    • >>   Uds_SetSupFuncEnableFlag -
    • >>   Uds_SetProtect -
    • >>   Uds_SetNRC -
    • >>   Uds_ProcessFinished -
    • >>   Uds_GetCurSessionState -
    • >>   Uds_CheckAdrrType -
    • >>   SA_Random -
    -
    [Called By]
    • >>   Uds_SecurityAccess -
    - -

    Diag_SetEepromAppErasureMark (Thumb, 20 bytes, Stack size 0 bytes, diag_eeprom_c301.o(i.Diag_SetEepromAppErasureMark)) -

    [Called By]

    • >>   Diag_RoutineControl -
    - -

    Diag_TransferData (Thumb, 1098 bytes, Stack size 32 bytes, diag_appl_c301.o(i.Diag_TransferData)) -

    [Stack]

    • Max Depth = 56
    • Call Chain = Diag_TransferData ⇒ Diag_RamWrite ⇒ Diag_MemCpy -
    -
    [Calls]
    • >>   Bzip2_Update -
    • >>   Diag_RamWrite -
    • >>   Diag_ProgramFailedDataInit -
    • >>   Diag_DataProgram -
    • >>   Diag_DataCalcCRC -
    • >>   Uds_SetNRC -
    • >>   Uds_ProcessFinished -
    -
    [Called By]
    • >>   Uds_TransferData -
    - -

    Diag_WriteDataByIdentifier (Thumb, 238 bytes, Stack size 32 bytes, diag_appl_c301.o(i.Diag_WriteDataByIdentifier)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = Diag_WriteDataByIdentifier ⇒ Diag_MemCopy -
    -
    [Calls]
    • >>   EED_WriteDID -
    • >>   Diag_CheckWriteDIDRange -
    • >>   Diag_MemCopy -
    • >>   Uds_SetSupFuncEnableFlag -
    • >>   Uds_SetNRC -
    • >>   Uds_ProcessFinished -
    • >>   Uds_CheckAdrrType -
    -
    [Called By]
    • >>   Uds_WriteDataByIdentifier -
    - -

    EED_WriteDID (Thumb, 6 bytes, Stack size 0 bytes, app_can.o(i.EED_WriteDID)) -

    [Called By]

    • >>   Diag_WriteDataByIdentifier -
    - -

    GPIO_Init (Thumb, 278 bytes, Stack size 24 bytes, stm32f10x_gpio.o(i.GPIO_Init)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = GPIO_Init -
    -
    [Called By]
    • >>   CAN2_Mode_Init -
    • >>   bsp_InitI2C -
    • >>   LED_Init -
    - -

    GPIO_PinRemapConfig (Thumb, 138 bytes, Stack size 20 bytes, stm32f10x_gpio.o(i.GPIO_PinRemapConfig)) -

    [Stack]

    • Max Depth = 20
    • Call Chain = GPIO_PinRemapConfig -
    -
    [Called By]
    • >>   LED_Init -
    - -

    GPIO_ResetBits (Thumb, 4 bytes, Stack size 0 bytes, stm32f10x_gpio.o(i.GPIO_ResetBits)) -

    [Called By]

    • >>   LED_Init -
    • >>   CanTrans_GoToSleep -
    • >>   main -
    - -

    GPIO_SetBits (Thumb, 4 bytes, Stack size 0 bytes, stm32f10x_gpio.o(i.GPIO_SetBits)) -

    [Called By]

    • >>   bsp_InitI2C -
    • >>   LED_Init -
    • >>   CanTrans_GoToSleep -
    • >>   CanTrans_GoToNormal -
    - -

    GetCrc32Chk (Thumb, 6 bytes, Stack size 0 bytes, uds_sa_c301.o(i.GetCrc32Chk)) -

    [Called By]

    • >>   Diag_CheckTransmitSequence -
    - -

    HardFault_Handler (Thumb, 4 bytes, Stack size 0 bytes, stm32f10x_it.o(i.HardFault_Handler)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    IF_CAN_CancelTransmitMsg (Thumb, 2 bytes, Stack size 0 bytes, app_can.o(i.IF_CAN_CancelTransmitMsg)) -

    [Called By]

    • >>   ISO15765_Precopy -
    • >>   ISO15765_TxInit -
    • >>   ISO15765_RxInit -
    - -

    IF_CAN_InitLoaclStatus (Thumb, 24 bytes, Stack size 8 bytes, app_can.o(i.IF_CAN_InitLoaclStatus)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = IF_CAN_InitLoaclStatus -
    -
    [Calls]
    • >>   IF_CAN_IsOnLine -
    -
    [Called By]
    • >>   CanTask_InitProcess -
    - -

    IF_CAN_IsOnLine (Thumb, 20 bytes, Stack size 0 bytes, app_can.o(i.IF_CAN_IsOnLine)) -

    [Called By]

    • >>   IF_CAN_InitLoaclStatus -
    • >>   CanTask_InitProcess -
    - -

    IF_CAN_SendCanData (Thumb, 160 bytes, Stack size 64 bytes, app_can.o(i.IF_CAN_SendCanData)) -

    [Stack]

    • Max Depth = 120
    • Call Chain = IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   Can2_Send_Message -
    -
    [Called By]
    • >>   IF_CAN_CopyDataAndStartTx -
    - -

    IF_CAN_TransmitMsg (Thumb, 46 bytes, Stack size 24 bytes, app_can.o(i.IF_CAN_TransmitMsg)) -

    [Stack]

    • Max Depth = 264
    • Call Chain = IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   IF_CAN_CopyDataAndStartTx -
    -
    [Called By]
    • >>   ISO15765_CanTransmitMsg -
    • >>   ISO15765_CanTransmitMsgWithDlc -
    - -

    IIC_Ack (Thumb, 52 bytes, Stack size 8 bytes, bsp_i2c_gpio.o(i.IIC_Ack)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = IIC_Ack -
    -
    [Calls]
    • >>   i2c_Delay -
    -
    [Called By]
    • >>   IIC_Read_Byte -
    - -

    IIC_NAck (Thumb, 42 bytes, Stack size 8 bytes, bsp_i2c_gpio.o(i.IIC_NAck)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = IIC_NAck -
    -
    [Calls]
    • >>   i2c_Delay -
    -
    [Called By]
    • >>   IIC_Read_Byte -
    - -

    IIC_Read_Byte (Thumb, 80 bytes, Stack size 16 bytes, bsp_i2c_gpio.o(i.IIC_Read_Byte)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = IIC_Read_Byte ⇒ IIC_NAck -
    -
    [Calls]
    • >>   IIC_NAck -
    • >>   IIC_Ack -
    • >>   i2c_Delay -
    -
    [Called By]
    • >>   ee_ReadBytes -
    - -

    IIC_Send_Byte (Thumb, 88 bytes, Stack size 16 bytes, bsp_i2c_gpio.o(i.IIC_Send_Byte)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = IIC_Send_Byte -
    -
    [Calls]
    • >>   i2c_Delay -
    -
    [Called By]
    • >>   ee_ReadBytes -
    - -

    IIC_Start (Thumb, 48 bytes, Stack size 8 bytes, bsp_i2c_gpio.o(i.IIC_Start)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = IIC_Start -
    -
    [Calls]
    • >>   i2c_Delay -
    -
    [Called By]
    • >>   ee_ReadBytes -
    - -

    IIC_Stop (Thumb, 36 bytes, Stack size 8 bytes, bsp_i2c_gpio.o(i.IIC_Stop)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = IIC_Stop -
    -
    [Calls]
    • >>   i2c_Delay -
    -
    [Called By]
    • >>   ee_ReadBytes -
    - -

    IIC_Wait_Ack (Thumb, 62 bytes, Stack size 8 bytes, bsp_i2c_gpio.o(i.IIC_Wait_Ack)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = IIC_Wait_Ack -
    -
    [Calls]
    • >>   i2c_Delay -
    -
    [Called By]
    • >>   ee_ReadBytes -
    - -

    ISO15765_CanTransmitMsg (Thumb, 26 bytes, Stack size 8 bytes, iso15765-2.o(i.ISO15765_CanTransmitMsg)) -

    [Stack]

    • Max Depth = 272
    • Call Chain = ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   IF_CAN_TransmitMsg -
    -
    [Called By]
    • >>   ISO15765_TxStateTask -
    • >>   ISO15765_RxStateTask -
    - -

    ISO15765_CanTransmitMsgWithDlc (Thumb, 26 bytes, Stack size 16 bytes, iso15765-2.o(i.ISO15765_CanTransmitMsgWithDlc)) -

    [Stack]

    • Max Depth = 280
    • Call Chain = ISO15765_CanTransmitMsgWithDlc ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   IF_CAN_TransmitMsg -
    -
    [Called By]
    • >>   Uds_ForceTransmitResPending -
    - -

    ISO15765_DrvConfirmation (Thumb, 22 bytes, Stack size 8 bytes, iso15765-2.o(i.ISO15765_DrvConfirmation)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = ISO15765_DrvConfirmation ⇒ ISO15765_TxFinishProcess -
    -
    [Calls]
    • >>   ISO15765_TxFinishProcess -
    • >>   ISO15765_RxFinishProcess -
    -
    [Called By]
    • >>   ISO15765_Precopy -
    -
    [Address Reference Count : 1]
    • canconfig_c301.o(.constdata) -
    -

    ISO15765_InitPowerOn (Thumb, 24 bytes, Stack size 8 bytes, iso15765-2.o(i.ISO15765_InitPowerOn)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = ISO15765_InitPowerOn ⇒ ISO15765_Init ⇒ ISO15765_TxInit -
    -
    [Calls]
    • >>   ISO15765_Init -
    -
    [Called By]
    • >>   CanTask_InitProcess -
    - -

    ISO15765_Precopy (Thumb, 1534 bytes, Stack size 16 bytes, iso15765-2.o(i.ISO15765_Precopy)) -

    [Stack]

    • Max Depth = 304
    • Call Chain = ISO15765_Precopy ⇒ ISO15765_RxStateTask ⇒ ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   IF_CAN_CancelTransmitMsg -
    • >>   ISO15765_DrvConfirmation -
    • >>   ISO15765_TxInit -
    • >>   ISO15765_RxStateTask -
    • >>   ISO15765_RxInit -
    • >>   ISO15765_RxResetBus -
    -
    [Called By]
    • >>   APP_CAN_MessageTypeHandle -
    - -

    ISO15765_RxResetBus (Thumb, 8 bytes, Stack size 8 bytes, iso15765-2.o(i.ISO15765_RxResetBus)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = ISO15765_RxResetBus ⇒ ISO15765_RxInit -
    -
    [Calls]
    • >>   ISO15765_RxInit -
    -
    [Called By]
    • >>   ISO15765_Precopy -
    • >>   Uds_PhysReqInd -
    - -

    ISO15765_RxSetFCStatus (Thumb, 6 bytes, Stack size 0 bytes, iso15765-2.o(i.ISO15765_RxSetFCStatus)) -

    [Called By]

    • >>   Uds_PhysFuncGetBuffer -
    - -

    ISO15765_Task (Thumb, 12 bytes, Stack size 8 bytes, iso15765-2.o(i.ISO15765_Task)) -

    [Stack]

    • Max Depth = 304
    • Call Chain = ISO15765_Task ⇒ ISO15765_TxTask ⇒ ISO15765_TxStateTask ⇒ ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   ISO15765_TxTask -
    • >>   ISO15765_RxTask -
    -
    [Called By]
    • >>   CanTask_TimerProcess -
    - -

    ISO15765_Transmit (Thumb, 98 bytes, Stack size 8 bytes, iso15765-2.o(i.ISO15765_Transmit)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = ISO15765_Transmit -
    -
    [Called By]
    • >>   Uds_TransmitResponse -
    - -

    LED_Init (Thumb, 368 bytes, Stack size 8 bytes, led.o(i.LED_Init)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = LED_Init ⇒ GPIO_Init -
    -
    [Calls]
    • >>   RCC_APB2PeriphClockCmd -
    • >>   GPIO_SetBits -
    • >>   GPIO_ResetBits -
    • >>   GPIO_PinRemapConfig -
    • >>   GPIO_Init -
    -
    [Called By]
    • >>   main -
    - -

    MemManage_Handler (Thumb, 4 bytes, Stack size 0 bytes, stm32f10x_it.o(i.MemManage_Handler)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    NMI_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f10x_it.o(i.NMI_Handler)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    NVIC_Configuration (Thumb, 12 bytes, Stack size 8 bytes, dev_sys.o(i.NVIC_Configuration)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = NVIC_Configuration -
    -
    [Calls]
    • >>   NVIC_PriorityGroupConfig -
    -
    [Called By]
    • >>   main -
    - -

    NVIC_Init (Thumb, 100 bytes, Stack size 16 bytes, misc.o(i.NVIC_Init)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = NVIC_Init -
    -
    [Called By]
    • >>   CAN2_Mode_Init -
    - -

    NVIC_PriorityGroupConfig (Thumb, 10 bytes, Stack size 0 bytes, misc.o(i.NVIC_PriorityGroupConfig)) -

    [Called By]

    • >>   NVIC_Configuration -
    - -

    PWR_BackupAccessCmd (Thumb, 6 bytes, Stack size 0 bytes, stm32f10x_pwr.o(i.PWR_BackupAccessCmd)) -

    [Called By]

    • >>   BSP_BKP_Init -
    - -

    PendSV_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f10x_it.o(i.PendSV_Handler)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    RCC_APB1PeriphClockCmd (Thumb, 26 bytes, Stack size 0 bytes, stm32f10x_rcc.o(i.RCC_APB1PeriphClockCmd)) -

    [Called By]

    • >>   CAN2_Mode_Init -
    • >>   BSP_BKP_Init -
    - -

    RCC_APB1PeriphResetCmd (Thumb, 26 bytes, Stack size 0 bytes, stm32f10x_rcc.o(i.RCC_APB1PeriphResetCmd)) -

    [Called By]

    • >>   CAN_DeInit -
    - -

    RCC_APB2PeriphClockCmd (Thumb, 26 bytes, Stack size 0 bytes, stm32f10x_rcc.o(i.RCC_APB2PeriphClockCmd)) -

    [Called By]

    • >>   CAN2_Mode_Init -
    • >>   bsp_InitI2C -
    • >>   LED_Init -
    - -

    RCC_GetClocksFreq (Thumb, 374 bytes, Stack size 24 bytes, stm32f10x_rcc.o(i.RCC_GetClocksFreq)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = RCC_GetClocksFreq -
    -
    [Called By]
    • >>   main -
    - -

    SA_Compare (Thumb, 36 bytes, Stack size 16 bytes, uds_sa_c301.o(i.SA_Compare)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = SA_Compare -
    -
    [Called By]
    • >>   Diag_SecurityAccess -
    - -

    SA_GenerateKey (Thumb, 132 bytes, Stack size 20 bytes, uds_sa_c301.o(i.SA_GenerateKey)) -

    [Stack]

    • Max Depth = 20
    • Call Chain = SA_GenerateKey -
    -
    [Called By]
    • >>   Diag_SecurityAccess -
    - -

    SA_GenerateKeyFBL (Thumb, 130 bytes, Stack size 20 bytes, uds_sa_c301.o(i.SA_GenerateKeyFBL)) -

    [Stack]

    • Max Depth = 20
    • Call Chain = SA_GenerateKeyFBL -
    -
    [Called By]
    • >>   Diag_SecurityAccess -
    - -

    SA_Random (Thumb, 92 bytes, Stack size 24 bytes, uds_sa_c301.o(i.SA_Random)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = SA_Random -
    -
    [Calls]
    • >>   CanTask_GetSaRandom -
    -
    [Called By]
    • >>   Diag_SecurityAccess -
    - -

    SVC_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f10x_it.o(i.SVC_Handler)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    SysTick_Handler (Thumb, 64 bytes, Stack size 0 bytes, dev_sys.o(i.SysTick_Handler)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    SysTick_Init (Thumb, 92 bytes, Stack size 12 bytes, dev_sys.o(i.SysTick_Init)) -

    [Stack]

    • Max Depth = 12
    • Call Chain = SysTick_Init -
    -
    [Called By]
    • >>   main -
    - -

    SystemInit (Thumb, 92 bytes, Stack size 8 bytes, system_stm32f10x.o(i.SystemInit)) -

    [Stack]

    • Max Depth = 28
    • Call Chain = SystemInit ⇒ SetSysClock ⇒ SetSysClockTo72 -
    -
    [Calls]
    • >>   SetSysClock -
    -
    [Called By]
    • >>   main -
    -
    [Address Reference Count : 1]
    • startup_stm32f10x_cl.o(.text) -
    -

    TickOut (Thumb, 58 bytes, Stack size 0 bytes, dev_sys.o(i.TickOut)) -

    [Called By]

    • >>   CAN2_SCE_IRQHandler -
    - -

    TimeTaskDispatch_Flag (Thumb, 318 bytes, Stack size 0 bytes, dev_sys.o(i.TimeTaskDispatch_Flag)) -

    [Called By]

    • >>   main -
    - -

    UDS_ForcPendingReset (Thumb, 12 bytes, Stack size 0 bytes, uds.o(i.UDS_ForcPendingReset)) -

    [Called By]

    • >>   Uds_ProcessFinished -
    • >>   Uds_PowerOnInit -
    - -

    Uds_CheckAdrrType (Thumb, 16 bytes, Stack size 0 bytes, uds.o(i.Uds_CheckAdrrType)) -

    [Called By]

    • >>   Diag_WriteDataByIdentifier -
    • >>   Diag_SecurityAccess -
    • >>   Diag_RoutineControl -
    • >>   Diag_ReadDataByIdentifier -
    • >>   Diag_EcuReset -
    • >>   Diag_ControlDTCSetting -
    • >>   Diag_CommunicationControl -
    • >>   Uds_TesterPresent -
    • >>   Uds_DiagControlSession -
    - -

    Uds_CommunicationControl (Thumb, 12 bytes, Stack size 8 bytes, uds.o(i.Uds_CommunicationControl)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = Uds_CommunicationControl ⇒ Diag_CommunicationControl ⇒ Uds_ProcessFinished -
    -
    [Calls]
    • >>   Diag_CommunicationControl -
    -
    [Address Reference Count : 1]
    • canconfig_c301.o(.constdata) -
    -

    Uds_ControlDTCSetting (Thumb, 12 bytes, Stack size 8 bytes, uds.o(i.Uds_ControlDTCSetting)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = Uds_ControlDTCSetting ⇒ Diag_ControlDTCSetting ⇒ Uds_ProcessFinished -
    -
    [Calls]
    • >>   Diag_ControlDTCSetting -
    -
    [Address Reference Count : 1]
    • canconfig_c301.o(.constdata) -
    -

    Uds_CopyToCAN (Thumb, 22 bytes, Stack size 16 bytes, uds.o(i.Uds_CopyToCAN)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = Uds_CopyToCAN -
    -
    [Calls]
    • >>   Uds_CopyToCanMemCpy -
    -
    [Address Reference Count : 1]
    • iso15765-2_entry.o(.data) -
    -

    Uds_DiagControlSession (Thumb, 232 bytes, Stack size 24 bytes, uds.o(i.Uds_DiagControlSession)) -

    [Stack]

    • Max Depth = 104
    • Call Chain = Uds_DiagControlSession ⇒ Uds_SetState ⇒ Diag_CheckValidApp1 ⇒ ee_ReadBytes ⇒ IIC_Read_Byte ⇒ IIC_NAck -
    -
    [Calls]
    • >>   Diag_AppDataInit -
    • >>   CanTask_SetStayInBootFlagValue -
    • >>   Uds_SetNRC -
    • >>   Uds_ResponseEnable -
    • >>   Uds_ProcessFinished -
    • >>   Uds_CheckAdrrType -
    • >>   Uds_SetState -
    -
    [Address Reference Count : 1]
    • canconfig_c301.o(.constdata) -
    -

    Uds_ECUReset (Thumb, 12 bytes, Stack size 8 bytes, uds.o(i.Uds_ECUReset)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = Uds_ECUReset ⇒ Diag_EcuReset ⇒ Uds_ProcessFinished -
    -
    [Calls]
    • >>   Diag_EcuReset -
    -
    [Address Reference Count : 1]
    • canconfig_c301.o(.constdata) -
    -

    Uds_ForceTransmitResPending (Thumb, 42 bytes, Stack size 8 bytes, uds.o(i.Uds_ForceTransmitResPending)) -

    [Stack]

    • Max Depth = 288
    • Call Chain = Uds_ForceTransmitResPending ⇒ ISO15765_CanTransmitMsgWithDlc ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   ISO15765_CanTransmitMsgWithDlc -
    -
    [Called By]
    • >>   Diag_FlashCalcCRC -
    • >>   Diag_RoutineControl -
    - -

    Uds_GetCurSessionAccessStatus (Thumb, 6 bytes, Stack size 0 bytes, uds.o(i.Uds_GetCurSessionAccessStatus)) -

    [Called By]

    • >>   Diag_RoutineControl -
    • >>   CanTask_ReprogrammingCheck -
    - -

    Uds_GetCurSessionState (Thumb, 10 bytes, Stack size 0 bytes, uds.o(i.Uds_GetCurSessionState)) -

    [Called By]

    • >>   Diag_SecurityAccess -
    • >>   Uds_TransSessionType -
    • >>   Uds_SetState -
    • >>   Uds_Scheduler -
    - -

    Uds_GetNRC (Thumb, 6 bytes, Stack size 0 bytes, uds.o(i.Uds_GetNRC)) -

    [Called By]

    • >>   Diag_RequestDownload -
    • >>   Diag_ReadDataByIdentifier -
    - -

    Uds_PhysFuncGetBuffer (Thumb, 78 bytes, Stack size 24 bytes, uds.o(i.Uds_PhysFuncGetBuffer)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = Uds_PhysFuncGetBuffer -
    -
    [Calls]
    • >>   ISO15765_RxSetFCStatus -
    • >>   Uds_NetLayerStartRec -
    -
    [Address Reference Count : 1]
    • iso15765-2_entry.o(.data) -
    -

    Uds_PhysReqInd (Thumb, 24 bytes, Stack size 8 bytes, uds.o(i.Uds_PhysReqInd)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = Uds_PhysReqInd ⇒ ISO15765_RxResetBus ⇒ ISO15765_RxInit -
    -
    [Calls]
    • >>   ISO15765_RxResetBus -
    • >>   Uds_NetLayerEndOfRec -
    -
    [Address Reference Count : 1]
    • iso15765-2_entry.o(.data) -
    -

    Uds_PhysRxErrorIndication (Thumb, 12 bytes, Stack size 8 bytes, uds.o(i.Uds_PhysRxErrorIndication)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = Uds_PhysRxErrorIndication -
    -
    [Calls]
    • >>   Uds_NetLayerEndOfRec -
    -
    [Address Reference Count : 1]
    • iso15765-2_entry.o(.data) -
    -

    Uds_PowerOnInit (Thumb, 128 bytes, Stack size 8 bytes, uds.o(i.Uds_PowerOnInit)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = Uds_PowerOnInit -
    -
    [Calls]
    • >>   Diag_AppDataInit -
    • >>   UDS_ForcPendingReset -
    -
    [Called By]
    • >>   CanTask_InitProcess -
    - -

    Uds_ProcessFinished (Thumb, 94 bytes, Stack size 8 bytes, uds.o(i.Uds_ProcessFinished)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = Uds_ProcessFinished -
    -
    [Calls]
    • >>   UDS_ForcPendingReset -
    -
    [Called By]
    • >>   Diag_WriteDataByIdentifier -
    • >>   Diag_TransferData -
    • >>   Diag_SecurityAccess -
    • >>   Diag_RoutineControl -
    • >>   Diag_RequestTransferExit -
    • >>   Diag_RequestDownload -
    • >>   Diag_ReadDataByIdentifier -
    • >>   Diag_EcuReset -
    • >>   Diag_ControlDTCSetting -
    • >>   Diag_CommunicationControl -
    • >>   Uds_TesterPresent -
    • >>   Uds_DiagControlSession -
    • >>   Uds_Scheduler -
    - -

    Uds_ReadDataByIdentifier (Thumb, 12 bytes, Stack size 8 bytes, uds.o(i.Uds_ReadDataByIdentifier)) -

    [Stack]

    • Max Depth = 160
    • Call Chain = Uds_ReadDataByIdentifier ⇒ Diag_ReadDataByIdentifier ⇒ Uds_ProcessFinished -
    -
    [Calls]
    • >>   Diag_ReadDataByIdentifier -
    -
    [Address Reference Count : 1]
    • canconfig_c301.o(.constdata) -
    -

    Uds_RequestDownload (Thumb, 12 bytes, Stack size 8 bytes, uds.o(i.Uds_RequestDownload)) -

    [Stack]

    • Max Depth = 48
    • Call Chain = Uds_RequestDownload ⇒ Diag_RequestDownload ⇒ Uds_ProcessFinished -
    -
    [Calls]
    • >>   Diag_RequestDownload -
    -
    [Address Reference Count : 1]
    • canconfig_c301.o(.constdata) -
    -

    Uds_RequestTransferExit (Thumb, 12 bytes, Stack size 8 bytes, uds.o(i.Uds_RequestTransferExit)) -

    [Stack]

    • Max Depth = 352
    • Call Chain = Uds_RequestTransferExit ⇒ Diag_RequestTransferExit ⇒ Diag_FlashCalcCRC ⇒ Uds_ForceTransmitResPending ⇒ ISO15765_CanTransmitMsgWithDlc ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   Diag_RequestTransferExit -
    -
    [Address Reference Count : 1]
    • canconfig_c301.o(.constdata) -
    -

    Uds_ResponseEnable (Thumb, 10 bytes, Stack size 0 bytes, uds.o(i.Uds_ResponseEnable)) -

    [Called By]

    • >>   Diag_EcuReset -
    • >>   Diag_ControlDTCSetting -
    • >>   Diag_CommunicationControl -
    • >>   Uds_TesterPresent -
    • >>   Uds_DiagControlSession -
    • >>   Uds_TransmitResponse -
    - -

    Uds_RoutineControl (Thumb, 12 bytes, Stack size 8 bytes, uds.o(i.Uds_RoutineControl)) -

    [Stack]

    • Max Depth = 344
    • Call Chain = Uds_RoutineControl ⇒ Diag_RoutineControl ⇒ Uds_ForceTransmitResPending ⇒ ISO15765_CanTransmitMsgWithDlc ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   Diag_RoutineControl -
    -
    [Address Reference Count : 1]
    • canconfig_c301.o(.constdata) -
    -

    Uds_SecurityAccess (Thumb, 12 bytes, Stack size 8 bytes, uds.o(i.Uds_SecurityAccess)) -

    [Stack]

    • Max Depth = 72
    • Call Chain = Uds_SecurityAccess ⇒ Diag_SecurityAccess ⇒ SA_Random -
    -
    [Calls]
    • >>   Diag_SecurityAccess -
    -
    [Address Reference Count : 1]
    • canconfig_c301.o(.constdata) -
    -

    Uds_SetNRC (Thumb, 6 bytes, Stack size 0 bytes, uds.o(i.Uds_SetNRC)) -

    [Called By]

    • >>   Diag_WriteDataByIdentifier -
    • >>   Diag_TransferData -
    • >>   Diag_SecurityAccess -
    • >>   Diag_RoutineControl -
    • >>   Diag_RequestTransferExit -
    • >>   Diag_RequestDownload -
    • >>   Diag_ReadDataByIdentifier -
    • >>   Diag_EcuReset -
    • >>   Diag_ControlDTCSetting -
    • >>   Diag_CommunicationControl -
    • >>   Uds_TesterPresent -
    • >>   Uds_DiagControlSession -
    - -

    Uds_SetProtect (Thumb, 6 bytes, Stack size 0 bytes, uds.o(i.Uds_SetProtect)) -

    [Called By]

    • >>   Diag_SecurityAccess -
    - -

    Uds_SetSupFuncEnableFlag (Thumb, 8 bytes, Stack size 0 bytes, uds.o(i.Uds_SetSupFuncEnableFlag)) -

    [Called By]

    • >>   Diag_WriteDataByIdentifier -
    • >>   Diag_SecurityAccess -
    • >>   Diag_RoutineControl -
    • >>   Diag_ReadDataByIdentifier -
    • >>   Diag_EcuReset -
    • >>   Diag_ControlDTCSetting -
    • >>   Diag_CommunicationControl -
    • >>   Uds_TesterPresent -
    - -

    Uds_StateTask (Thumb, 14 bytes, Stack size 8 bytes, uds.o(i.Uds_StateTask)) -

    [Stack]

    • Max Depth = 104
    • Call Chain = Uds_StateTask ⇒ Uds_ContextTask ⇒ Uds_SetState ⇒ Diag_CheckValidApp1 ⇒ ee_ReadBytes ⇒ IIC_Read_Byte ⇒ IIC_NAck -
    -
    [Calls]
    • >>   Uds_ContextTask -
    -
    [Called By]
    • >>   CanTask_UdsStateProcess -
    - -

    Uds_Task (Thumb, 8 bytes, Stack size 8 bytes, uds.o(i.Uds_Task)) -

    [Stack]

    • Max Depth = 96
    • Call Chain = Uds_Task ⇒ Uds_TimerTask ⇒ Uds_SetState ⇒ Diag_CheckValidApp1 ⇒ ee_ReadBytes ⇒ IIC_Read_Byte ⇒ IIC_NAck -
    -
    [Calls]
    • >>   Uds_TimerTask -
    -
    [Called By]
    • >>   CanTask_TimerProcess -
    - -

    Uds_TesterPresent (Thumb, 84 bytes, Stack size 16 bytes, uds.o(i.Uds_TesterPresent)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = Uds_TesterPresent ⇒ Uds_ProcessFinished -
    -
    [Calls]
    • >>   Uds_SetSupFuncEnableFlag -
    • >>   Uds_SetNRC -
    • >>   Uds_ResponseEnable -
    • >>   Uds_ProcessFinished -
    • >>   Uds_CheckAdrrType -
    -
    [Address Reference Count : 1]
    • canconfig_c301.o(.constdata) -
    -

    Uds_TransSessionType (Thumb, 76 bytes, Stack size 8 bytes, uds.o(i.Uds_TransSessionType)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = Uds_TransSessionType -
    -
    [Calls]
    • >>   CanTask_FBLInit -
    • >>   Uds_GetCurSessionState -
    • >>   Uds_SetStateSessionAccess -
    • >>   Uds_SetFlashProtect -
    -
    [Called By]
    • >>   Uds_SetState -
    - -

    Uds_TransferData (Thumb, 12 bytes, Stack size 8 bytes, uds.o(i.Uds_TransferData)) -

    [Stack]

    • Max Depth = 64
    • Call Chain = Uds_TransferData ⇒ Diag_TransferData ⇒ Diag_RamWrite ⇒ Diag_MemCpy -
    -
    [Calls]
    • >>   Diag_TransferData -
    -
    [Address Reference Count : 1]
    • canconfig_c301.o(.constdata) -
    -

    Uds_TxConfirmation (Thumb, 24 bytes, Stack size 16 bytes, uds.o(i.Uds_TxConfirmation)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = Uds_TxConfirmation ⇒ Uds_NetLayerEndOfTrans -
    -
    [Calls]
    • >>   Uds_NetLayerEndOfTrans -
    -
    [Called By]
    • >>   Uds_TxErrorIndication -
    • >>   Uds_TransmitResponse -
    -
    [Address Reference Count : 1]
    • iso15765-2_entry.o(.data) -
    -

    Uds_TxErrorIndication (Thumb, 12 bytes, Stack size 8 bytes, uds.o(i.Uds_TxErrorIndication)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = Uds_TxErrorIndication ⇒ Uds_TxConfirmation ⇒ Uds_NetLayerEndOfTrans -
    -
    [Calls]
    • >>   Uds_TxConfirmation -
    -
    [Address Reference Count : 1]
    • iso15765-2_entry.o(.data) -
    -

    Uds_WriteDataByIdentifier (Thumb, 12 bytes, Stack size 8 bytes, uds.o(i.Uds_WriteDataByIdentifier)) -

    [Stack]

    • Max Depth = 48
    • Call Chain = Uds_WriteDataByIdentifier ⇒ Diag_WriteDataByIdentifier ⇒ Diag_MemCopy -
    -
    [Calls]
    • >>   Diag_WriteDataByIdentifier -
    -
    [Address Reference Count : 1]
    • canconfig_c301.o(.constdata) -
    -

    UsageFault_Handler (Thumb, 4 bytes, Stack size 0 bytes, stm32f10x_it.o(i.UsageFault_Handler)) -
    [Address Reference Count : 1]

    • startup_stm32f10x_cl.o(RESET) -
    -

    _Bzip2_InitTable (Thumb, 56 bytes, Stack size 0 bytes, uds_sa_c301.o(i._Bzip2_InitTable)) -

    [Called By]

    • >>   Bzip2_Init -
    - -

    __scatterload_copy (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED) - -

    __scatterload_null (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED) - -

    __scatterload_zeroinit (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED) - -

    bsp_InitI2C (Thumb, 88 bytes, Stack size 8 bytes, bsp_i2c_gpio.o(i.bsp_InitI2C)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = bsp_InitI2C ⇒ GPIO_Init -
    -
    [Calls]
    • >>   RCC_APB2PeriphClockCmd -
    • >>   GPIO_SetBits -
    • >>   GPIO_Init -
    -
    [Called By]
    • >>   ee_Init -
    - -

    ee_Init (Thumb, 8 bytes, Stack size 8 bytes, 24cxx.o(i.ee_Init)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = ee_Init ⇒ bsp_InitI2C ⇒ GPIO_Init -
    -
    [Calls]
    • >>   bsp_InitI2C -
    -
    [Called By]
    • >>   main -
    - -

    ee_ReadBytes (Thumb, 134 bytes, Stack size 24 bytes, 24cxx.o(i.ee_ReadBytes)) -

    [Stack]

    • Max Depth = 48
    • Call Chain = ee_ReadBytes ⇒ IIC_Read_Byte ⇒ IIC_NAck -
    -
    [Calls]
    • >>   IIC_Wait_Ack -
    • >>   IIC_Stop -
    • >>   IIC_Start -
    • >>   IIC_Send_Byte -
    • >>   IIC_Read_Byte -
    -
    [Called By]
    • >>   Diag_CheckValidApp1 -
    - -

    flashInit (Thumb, 8 bytes, Stack size 0 bytes, dev_flashapi.o(i.flashInit)) -

    [Called By]

    • >>   Diag_RequestEraseFlash -
    • >>   Diag_DataProgram -
    • >>   Diag_ClrAPP1UpdateMark -
    - -

    flashdnit (Thumb, 16 bytes, Stack size 0 bytes, dev_flashapi.o(i.flashdnit)) -

    [Called By]

    • >>   Diag_RequestEraseFlash -
    • >>   Diag_DataProgram -
    • >>   Diag_ClrAPP1UpdateMark -
    - -

    main (Thumb, 194 bytes, Stack size 24 bytes, main.o(i.main)) -

    [Stack]

    • Max Depth = 352
    • Call Chain = main ⇒ Uds_SysTick_Process_10ms ⇒ Can_Task ⇒ CanTask_TimerProcess ⇒ ISO15765_Task ⇒ ISO15765_TxTask ⇒ ISO15765_TxStateTask ⇒ ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   RCC_GetClocksFreq -
    • >>   GPIO_ResetBits -
    • >>   SystemInit -
    • >>   TimeTaskDispatch_Flag -
    • >>   SysTick_Init -
    • >>   NVIC_Configuration -
    • >>   CAN2_Mode_Init -
    • >>   ee_Init -
    • >>   LED_Init -
    • >>   Diag_HndUpdataEV -
    • >>   CanTask_InitProcess -
    • >>   BSP_BKP_Init -
    • >>   uds_SysTick_Process_1ms -
    • >>   Uds_SysTick_Process_10ms -
    -
    [Address Reference Count : 1]
    • entry9a.o(.ARM.Collect$$$$0000000B) -

    -

    -Local Symbols -

    -

    CheckITStatus (Thumb, 18 bytes, Stack size 0 bytes, stm32f10x_can.o(i.CheckITStatus)) -

    [Called By]

    • >>   CAN_GetITStatus -
    - -

    i2c_Delay (Thumb, 14 bytes, Stack size 0 bytes, bsp_i2c_gpio.o(i.i2c_Delay)) -

    [Called By]

    • >>   IIC_NAck -
    • >>   IIC_Ack -
    • >>   IIC_Wait_Ack -
    • >>   IIC_Stop -
    • >>   IIC_Start -
    • >>   IIC_Send_Byte -
    • >>   IIC_Read_Byte -
    - -

    can_bus_open_hook (Thumb, 18 bytes, Stack size 0 bytes, can2.o(i.can_bus_open_hook)) -

    [Called By]

    • >>   CAN2_Mode_Init -
    - -

    can_bus_ready_hook (Thumb, 34 bytes, Stack size 0 bytes, can2.o(i.can_bus_ready_hook)) -

    [Called By]

    • >>   CAN2_RX1_IRQHandler -
    - -

    can_bus_send_ready (Thumb, 32 bytes, Stack size 0 bytes, can2.o(i.can_bus_send_ready)) -

    [Called By]

    • >>   Can2_Send_Message -
    - -

    SetSysClock (Thumb, 8 bytes, Stack size 8 bytes, system_stm32f10x.o(i.SetSysClock)) -

    [Stack]

    • Max Depth = 20
    • Call Chain = SetSysClock ⇒ SetSysClockTo72 -
    -
    [Calls]
    • >>   SetSysClockTo72 -
    -
    [Called By]
    • >>   SystemInit -
    - -

    SetSysClockTo72 (Thumb, 266 bytes, Stack size 12 bytes, system_stm32f10x.o(i.SetSysClockTo72)) -

    [Stack]

    • Max Depth = 12
    • Call Chain = SetSysClockTo72 -
    -
    [Called By]
    • >>   SetSysClock -
    - -

    Uds_ContextTask (Thumb, 226 bytes, Stack size 16 bytes, uds.o(i.Uds_ContextTask)) -

    [Stack]

    • Max Depth = 96
    • Call Chain = Uds_ContextTask ⇒ Uds_SetState ⇒ Diag_CheckValidApp1 ⇒ ee_ReadBytes ⇒ IIC_Read_Byte ⇒ IIC_NAck -
    -
    [Calls]
    • >>   Diag_MemCopy -
    • >>   Uds_TransmitResponse -
    • >>   Uds_SetState -
    • >>   Uds_Scheduler -
    -
    [Called By]
    • >>   Uds_StateTask -
    - -

    Uds_CopyToCanMemCpy (Thumb, 16 bytes, Stack size 0 bytes, uds.o(i.Uds_CopyToCanMemCpy)) -

    [Called By]

    • >>   Uds_CopyToCAN -
    - -

    Uds_NetLayerEndOfRec (Thumb, 44 bytes, Stack size 0 bytes, uds.o(i.Uds_NetLayerEndOfRec)) -

    [Called By]

    • >>   Uds_PhysRxErrorIndication -
    • >>   Uds_PhysReqInd -
    - -

    Uds_NetLayerEndOfTrans (Thumb, 44 bytes, Stack size 16 bytes, uds.o(i.Uds_NetLayerEndOfTrans)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = Uds_NetLayerEndOfTrans -
    -
    [Calls]
    • >>   Uds_PostProcessing -
    -
    [Called By]
    • >>   Uds_TxConfirmation -
    - -

    Uds_NetLayerStartRec (Thumb, 24 bytes, Stack size 0 bytes, uds.o(i.Uds_NetLayerStartRec)) -

    [Called By]

    • >>   Uds_PhysFuncGetBuffer -
    - -

    Uds_PostProcessing (Thumb, 24 bytes, Stack size 0 bytes, uds.o(i.Uds_PostProcessing)) -

    [Called By]

    • >>   Uds_NetLayerEndOfTrans -
    - -

    Uds_Scheduler (Thumb, 1436 bytes, Stack size 40 bytes, uds.o(i.Uds_Scheduler)) -

    [Stack]

    • Max Depth = 48
    • Call Chain = Uds_Scheduler ⇒ Uds_ProcessFinished -
    -
    [Calls]
    • >>   Uds_ProcessFinished -
    • >>   Uds_GetCurSessionState -
    -
    [Called By]
    • >>   Uds_ContextTask -
    - -

    Uds_SetFlashProtect (Thumb, 6 bytes, Stack size 0 bytes, uds.o(i.Uds_SetFlashProtect)) -

    [Called By]

    • >>   Uds_TransSessionType -
    - -

    Uds_SetState (Thumb, 78 bytes, Stack size 16 bytes, uds.o(i.Uds_SetState)) -

    [Stack]

    • Max Depth = 80
    • Call Chain = Uds_SetState ⇒ Diag_CheckValidApp1 ⇒ ee_ReadBytes ⇒ IIC_Read_Byte ⇒ IIC_NAck -
    -
    [Calls]
    • >>   Diag_CheckValidApp1 -
    • >>   CanTask_SetStayInBootFlagValue -
    • >>   CanTask_IsAppBeenErased -
    • >>   Uds_TransSessionType -
    • >>   Uds_GetCurSessionState -
    -
    [Called By]
    • >>   Uds_DiagControlSession -
    • >>   Uds_TimerTask -
    • >>   Uds_ContextTask -
    - -

    Uds_SetStateSessionAccess (Thumb, 6 bytes, Stack size 0 bytes, uds.o(i.Uds_SetStateSessionAccess)) -

    [Called By]

    • >>   Uds_TransSessionType -
    - -

    Uds_TimerTask (Thumb, 406 bytes, Stack size 8 bytes, uds.o(i.Uds_TimerTask)) -

    [Stack]

    • Max Depth = 88
    • Call Chain = Uds_TimerTask ⇒ Uds_SetState ⇒ Diag_CheckValidApp1 ⇒ ee_ReadBytes ⇒ IIC_Read_Byte ⇒ IIC_NAck -
    -
    [Calls]
    • >>   BSP_vSystemReset -
    • >>   Uds_TransmitResPending -
    • >>   Uds_SetState -
    -
    [Called By]
    • >>   Uds_Task -
    - -

    Uds_TransmitResPending (Thumb, 28 bytes, Stack size 8 bytes, uds.o(i.Uds_TransmitResPending)) -

    [Stack]

    • Max Depth = 56
    • Call Chain = Uds_TransmitResPending ⇒ Uds_TransmitResponse ⇒ Uds_TxConfirmation ⇒ Uds_NetLayerEndOfTrans -
    -
    [Calls]
    • >>   Uds_TransmitResponse -
    -
    [Called By]
    • >>   Uds_TimerTask -
    - -

    Uds_TransmitResponse (Thumb, 40 bytes, Stack size 16 bytes, uds.o(i.Uds_TransmitResponse)) -

    [Stack]

    • Max Depth = 48
    • Call Chain = Uds_TransmitResponse ⇒ Uds_TxConfirmation ⇒ Uds_NetLayerEndOfTrans -
    -
    [Calls]
    • >>   ISO15765_Transmit -
    • >>   Uds_TxConfirmation -
    • >>   Uds_ResponseEnable -
    -
    [Called By]
    • >>   Uds_TransmitResPending -
    • >>   Uds_ContextTask -
    - -

    ISO15765_Init (Thumb, 12 bytes, Stack size 8 bytes, iso15765-2.o(i.ISO15765_Init)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = ISO15765_Init ⇒ ISO15765_TxInit -
    -
    [Calls]
    • >>   ISO15765_TxInit -
    • >>   ISO15765_RxInit -
    -
    [Called By]
    • >>   ISO15765_InitPowerOn -
    - -

    ISO15765_PreCanTransmit (Thumb, 486 bytes, Stack size 24 bytes, iso15765-2.o(i.ISO15765_PreCanTransmit)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = ISO15765_PreCanTransmit -
    -
    [Calls]
    • >>   ISO15765_SetOptimalDlc -
    -
    [Called By]
    • >>   ISO15765_TxStateTask -
    - -

    ISO15765_PreTransmitClearCanDataPtr (Thumb, 22 bytes, Stack size 0 bytes, iso15765-2.o(i.ISO15765_PreTransmitClearCanDataPtr)) -

    [Called By]

    • >>   ISO15765_TxStateTask -
    - -

    ISO15765_RxFinishProcess (Thumb, 54 bytes, Stack size 0 bytes, iso15765-2.o(i.ISO15765_RxFinishProcess)) -

    [Called By]

    • >>   ISO15765_DrvConfirmation -
    - -

    ISO15765_RxInit (Thumb, 98 bytes, Stack size 8 bytes, iso15765-2.o(i.ISO15765_RxInit)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = ISO15765_RxInit -
    -
    [Calls]
    • >>   IF_CAN_CancelTransmitMsg -
    -
    [Called By]
    • >>   ISO15765_Precopy -
    • >>   ISO15765_RxTask -
    • >>   ISO15765_Init -
    • >>   ISO15765_RxResetBus -
    - -

    ISO15765_RxStateTask (Thumb, 226 bytes, Stack size 16 bytes, iso15765-2.o(i.ISO15765_RxStateTask)) -

    [Stack]

    • Max Depth = 288
    • Call Chain = ISO15765_RxStateTask ⇒ ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   ISO15765_CanTransmitMsg -
    -
    [Called By]
    • >>   ISO15765_Precopy -
    • >>   ISO15765_RxTask -
    - -

    ISO15765_RxTask (Thumb, 122 bytes, Stack size 8 bytes, iso15765-2.o(i.ISO15765_RxTask)) -

    [Stack]

    • Max Depth = 296
    • Call Chain = ISO15765_RxTask ⇒ ISO15765_RxStateTask ⇒ ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   ISO15765_RxStateTask -
    • >>   ISO15765_RxInit -
    -
    [Called By]
    • >>   ISO15765_Task -
    - -

    ISO15765_SetOptimalDlc (Thumb, 50 bytes, Stack size 0 bytes, iso15765-2.o(i.ISO15765_SetOptimalDlc)) -

    [Called By]

    • >>   ISO15765_PreCanTransmit -
    - -

    ISO15765_TransmitOfCF (Thumb, 72 bytes, Stack size 0 bytes, iso15765-2.o(i.ISO15765_TransmitOfCF)) -

    [Called By]

    • >>   ISO15765_TxTask -
    - -

    ISO15765_TxFinishProcess (Thumb, 126 bytes, Stack size 8 bytes, iso15765-2.o(i.ISO15765_TxFinishProcess)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = ISO15765_TxFinishProcess -
    -
    [Called By]
    • >>   ISO15765_DrvConfirmation -
    - -

    ISO15765_TxInit (Thumb, 114 bytes, Stack size 8 bytes, iso15765-2.o(i.ISO15765_TxInit)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = ISO15765_TxInit -
    -
    [Calls]
    • >>   IF_CAN_CancelTransmitMsg -
    -
    [Called By]
    • >>   ISO15765_Precopy -
    • >>   ISO15765_TxTask -
    • >>   ISO15765_Init -
    - -

    ISO15765_TxStateTask (Thumb, 232 bytes, Stack size 16 bytes, iso15765-2.o(i.ISO15765_TxStateTask)) -

    [Stack]

    • Max Depth = 288
    • Call Chain = ISO15765_TxStateTask ⇒ ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   ISO15765_CanTransmitMsg -
    • >>   ISO15765_PreTransmitClearCanDataPtr -
    • >>   ISO15765_PreCanTransmit -
    -
    [Called By]
    • >>   ISO15765_TxTask -
    - -

    ISO15765_TxTask (Thumb, 90 bytes, Stack size 8 bytes, iso15765-2.o(i.ISO15765_TxTask)) -

    [Stack]

    • Max Depth = 296
    • Call Chain = ISO15765_TxTask ⇒ ISO15765_TxStateTask ⇒ ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   ISO15765_TxStateTask -
    • >>   ISO15765_TxInit -
    • >>   ISO15765_TransmitOfCF -
    -
    [Called By]
    • >>   ISO15765_Task -
    - -

    CanTrans_Delay (Thumb, 16 bytes, Stack size 0 bytes, can_transceiver.o(i.CanTrans_Delay)) -

    [Called By]

    • >>   CanTrans_GoToSleep -
    - -

    Diag_CommDisable (Thumb, 12 bytes, Stack size 0 bytes, diag_appl_c301.o(i.Diag_CommDisable)) -

    [Called By]

    • >>   Diag_CommunicationControl -
    - -

    Diag_CommEnable (Thumb, 12 bytes, Stack size 0 bytes, diag_appl_c301.o(i.Diag_CommEnable)) -

    [Called By]

    • >>   Diag_CommunicationControl -
    - -

    JumpToExecute (Thumb, 30 bytes, Stack size 8 bytes, main.o(i.JumpToExecute)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = JumpToExecute -
    -
    [Calls]
    • >>   __set_MSP -
    -
    [Called By]
    • >>   Sys_GotoApp -
    - -

    Sys_GotoApp (Thumb, 8 bytes, Stack size 8 bytes, main.o(i.Sys_GotoApp)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = Sys_GotoApp ⇒ JumpToExecute -
    -
    [Calls]
    • >>   JumpToExecute -
    -
    [Called By]
    • >>   Task_RunToApp -
    - -

    Task_RunToApp (Thumb, 44 bytes, Stack size 8 bytes, main.o(i.Task_RunToApp)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = Task_RunToApp ⇒ Sys_GotoApp ⇒ JumpToExecute -
    -
    [Calls]
    • >>   Sys_GotoApp -
    -
    [Called By]
    • >>   Uds_SysTick_Process_10ms -
    - -

    Uds_SysTick_Process_10ms (Thumb, 12 bytes, Stack size 8 bytes, main.o(i.Uds_SysTick_Process_10ms)) -

    [Stack]

    • Max Depth = 328
    • Call Chain = Uds_SysTick_Process_10ms ⇒ Can_Task ⇒ CanTask_TimerProcess ⇒ ISO15765_Task ⇒ ISO15765_TxTask ⇒ ISO15765_TxStateTask ⇒ ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   Can_Task -
    • >>   Task_RunToApp -
    -
    [Called By]
    • >>   main -
    - -

    uds_SysTick_Process_1ms (Thumb, 8 bytes, Stack size 8 bytes, main.o(i.uds_SysTick_Process_1ms)) -

    [Stack]

    • Max Depth = 120
    • Call Chain = uds_SysTick_Process_1ms ⇒ CanTask_UdsStateProcess ⇒ Uds_StateTask ⇒ Uds_ContextTask ⇒ Uds_SetState ⇒ Diag_CheckValidApp1 ⇒ ee_ReadBytes ⇒ IIC_Read_Byte ⇒ IIC_NAck -
    -
    [Calls]
    • >>   CanTask_UdsStateProcess -
    -
    [Called By]
    • >>   main -
    - -

    APP_CAN_MessageTypeHandle (Thumb, 92 bytes, Stack size 16 bytes, app_can.o(i.APP_CAN_MessageTypeHandle)) -

    [Stack]

    • Max Depth = 320
    • Call Chain = APP_CAN_MessageTypeHandle ⇒ ISO15765_Precopy ⇒ ISO15765_RxStateTask ⇒ ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   ISO15765_Precopy -
    -
    [Called By]
    • >>   APP_CAN_FifoMessageReceive -
    - -

    CanTask_ReprogrammingCheck (Thumb, 26 bytes, Stack size 8 bytes, app_can.o(i.CanTask_ReprogrammingCheck)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = CanTask_ReprogrammingCheck -
    -
    [Calls]
    • >>   Uds_GetCurSessionAccessStatus -
    -
    [Called By]
    • >>   CanTask_TimerProcess -
    - -

    CanTask_SaRandomCounter (Thumb, 12 bytes, Stack size 0 bytes, app_can.o(i.CanTask_SaRandomCounter)) -

    [Called By]

    • >>   CanTask_TimerProcess -
    - -

    CanTask_TimerProcess (Thumb, 24 bytes, Stack size 8 bytes, app_can.o(i.CanTask_TimerProcess)) -

    [Stack]

    • Max Depth = 312
    • Call Chain = CanTask_TimerProcess ⇒ ISO15765_Task ⇒ ISO15765_TxTask ⇒ ISO15765_TxStateTask ⇒ ISO15765_CanTransmitMsg ⇒ IF_CAN_TransmitMsg ⇒ IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   ISO15765_Task -
    • >>   Uds_Task -
    • >>   CanTask_BusErrorDetection -
    • >>   CanTask_SaRandomCounter -
    • >>   CanTask_ReprogrammingCheck -
    -
    [Called By]
    • >>   Can_Task -
    - -

    IF_CAN_CopyDataAndStartTx (Thumb, 140 bytes, Stack size 120 bytes, app_can.o(i.IF_CAN_CopyDataAndStartTx)) -

    [Stack]

    • Max Depth = 240
    • Call Chain = IF_CAN_CopyDataAndStartTx ⇒ IF_CAN_SendCanData ⇒ Can2_Send_Message ⇒ CAN_TransmitStatus -
    -
    [Calls]
    • >>   __aeabi_memclr4 -
    • >>   IF_CAN_SendCanData -
    -
    [Called By]
    • >>   IF_CAN_TransmitMsg -
    -

    -

    -Undefined Global Symbols -


    diff --git a/boot_project/Objects/hongri_boot.lnp b/boot_project/Objects/hongri_boot.lnp deleted file mode 100644 index 0a0fb6c..0000000 --- a/boot_project/Objects/hongri_boot.lnp +++ /dev/null @@ -1,36 +0,0 @@ ---cpu Cortex-M3 -".\objects\startup_stm32f10x_cl.o" -".\objects\core_cm3.o" -".\objects\misc.o" -".\objects\stm32f10x_gpio.o" -".\objects\stm32f10x_rcc.o" -".\objects\stm32f10x_can.o" -".\objects\stm32f10x_dma.o" -".\objects\stm32f10x_flash.o" -".\objects\stm32f10x_iwdg.o" -".\objects\stm32f10x_pwr.o" -".\objects\led.o" -".\objects\24cxx.o" -".\objects\bsp_i2c_gpio.o" -".\objects\can2.o" -".\objects\stm32f10x_it.o" -".\objects\system_stm32f10x.o" -".\objects\dev_flashapi.o" -".\objects\dev_crc32.o" -".\objects\dev_sys.o" -".\objects\dev_eerom.o" -".\objects\uds.o" -".\objects\iso15765-2.o" -".\objects\iso15765-2_entry.o" -".\objects\can_transceiver.o" -".\objects\diag_eeprom_c301.o" -".\objects\canconfig_c301.o" -".\objects\canctrl_c301.o" -".\objects\diag_appl_c301.o" -".\objects\uds_sa_c301.o" -".\objects\main.o" -".\objects\app_can.o" ---library_type=microlib --strict --scatter ".\link_sct\STM32F105Boot.sct" ---summary_stderr --info summarysizes --map --load_addr_map_info --xref --callgraph --symbols ---info sizes --info totals --info unused --info veneers ---list ".\Listings\hongri_boot.map" -o .\Objects\hongri_boot.axf \ No newline at end of file diff --git a/boot_project/Objects/hongri_boot.sct b/boot_project/Objects/hongri_boot.sct deleted file mode 100644 index 2cc918800c58f453084bb3a2ded884b21bf5fcd8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8192 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 diff --git a/boot_project/Objects/hongri_boot_hongri_boot.dep b/boot_project/Objects/hongri_boot_hongri_boot.dep deleted file mode 100644 index e7c5c03..0000000 --- a/boot_project/Objects/hongri_boot_hongri_boot.dep +++ /dev/null @@ -1,482 +0,0 @@ -Dependencies for Project 'hongri_boot', Target 'hongri_boot': (DO NOT MODIFY !) -F (..\boot_source\platform\CMSIS\ST\STM32F10x\Source\arm\startup_stm32f10x_cl.s)(0x67188B3E)(--cpu Cortex-M3 -g --apcs=interwork --pd "__MICROLIB SETA 1" -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include --pd "__UVISION_VERSION SETA 525" --pd "STM32F10X_CL SETA 1" --list .\listings\startup_stm32f10x_cl.lst --xref -o .\objects\startup_stm32f10x_cl.o --depend .\objects\startup_stm32f10x_cl.d) -F (..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport\core_cm3.c)(0x61605444)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\core_cm3.o --omf_browse .\objects\core_cm3.crf --depend .\objects\core_cm3.d) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -F (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\src\misc.c)(0x521ED710)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\misc.o --omf_browse .\objects\misc.crf --depend .\objects\misc.d) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\misc.h)(0x521ED710) -I (..\boot_source\code_app\startup\inc\stm32f10x.h)(0x671A25F3) -I (..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport\core_cm3.h)(0x61605444) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -I (..\boot_source\code_app\startup\inc\system_stm32f10x.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\stm32f10x_libopt.h)(0x67177362) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_can.h)(0x67208686) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_gpio.h)(0x62D28C12) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_iwdg.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_pwr.h)(0x65F3EF70) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_rcc.h)(0x521ED710) -F (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\src\stm32f10x_gpio.c)(0x521ED710)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\stm32f10x_gpio.o --omf_browse .\objects\stm32f10x_gpio.crf --depend .\objects\stm32f10x_gpio.d) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_gpio.h)(0x62D28C12) -I (..\boot_source\code_app\startup\inc\stm32f10x.h)(0x671A25F3) -I (..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport\core_cm3.h)(0x61605444) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -I (..\boot_source\code_app\startup\inc\system_stm32f10x.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\stm32f10x_libopt.h)(0x67177362) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_can.h)(0x67208686) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_iwdg.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_pwr.h)(0x65F3EF70) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_rcc.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\misc.h)(0x521ED710) -F (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\src\stm32f10x_rcc.c)(0x521ED710)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\stm32f10x_rcc.o --omf_browse .\objects\stm32f10x_rcc.crf --depend .\objects\stm32f10x_rcc.d) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_rcc.h)(0x521ED710) -I (..\boot_source\code_app\startup\inc\stm32f10x.h)(0x671A25F3) -I (..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport\core_cm3.h)(0x61605444) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -I (..\boot_source\code_app\startup\inc\system_stm32f10x.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\stm32f10x_libopt.h)(0x67177362) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_can.h)(0x67208686) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_gpio.h)(0x62D28C12) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_iwdg.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_pwr.h)(0x65F3EF70) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\misc.h)(0x521ED710) -F (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\src\stm32f10x_can.c)(0x521ED710)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\stm32f10x_can.o --omf_browse .\objects\stm32f10x_can.crf --depend .\objects\stm32f10x_can.d) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_can.h)(0x67208686) -I (..\boot_source\code_app\startup\inc\stm32f10x.h)(0x671A25F3) -I (..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport\core_cm3.h)(0x61605444) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -I (..\boot_source\code_app\startup\inc\system_stm32f10x.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\stm32f10x_libopt.h)(0x67177362) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_gpio.h)(0x62D28C12) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_iwdg.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_pwr.h)(0x65F3EF70) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_rcc.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\misc.h)(0x521ED710) -F (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\src\stm32f10x_dma.c)(0x521ED710)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\stm32f10x_dma.o --omf_browse .\objects\stm32f10x_dma.crf --depend .\objects\stm32f10x_dma.d) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_dma.h)(0x521ED710) -I (..\boot_source\code_app\startup\inc\stm32f10x.h)(0x671A25F3) -I (..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport\core_cm3.h)(0x61605444) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -I (..\boot_source\code_app\startup\inc\system_stm32f10x.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\stm32f10x_libopt.h)(0x67177362) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_can.h)(0x67208686) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_gpio.h)(0x62D28C12) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_iwdg.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_pwr.h)(0x65F3EF70) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_rcc.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\misc.h)(0x521ED710) -F (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\src\stm32f10x_flash.c)(0x6118F57E)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\stm32f10x_flash.o --omf_browse .\objects\stm32f10x_flash.crf --depend .\objects\stm32f10x_flash.d) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_flash.h)(0x521ED710) -I (..\boot_source\code_app\startup\inc\stm32f10x.h)(0x671A25F3) -I (..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport\core_cm3.h)(0x61605444) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -I (..\boot_source\code_app\startup\inc\system_stm32f10x.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\stm32f10x_libopt.h)(0x67177362) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_can.h)(0x67208686) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_gpio.h)(0x62D28C12) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_iwdg.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_pwr.h)(0x65F3EF70) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_rcc.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\misc.h)(0x521ED710) -F (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\src\stm32f10x_iwdg.c)(0x521ED710)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\stm32f10x_iwdg.o --omf_browse .\objects\stm32f10x_iwdg.crf --depend .\objects\stm32f10x_iwdg.d) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_iwdg.h)(0x521ED710) -I (..\boot_source\code_app\startup\inc\stm32f10x.h)(0x671A25F3) -I (..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport\core_cm3.h)(0x61605444) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -I (..\boot_source\code_app\startup\inc\system_stm32f10x.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\stm32f10x_libopt.h)(0x67177362) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_can.h)(0x67208686) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_gpio.h)(0x62D28C12) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_pwr.h)(0x65F3EF70) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_rcc.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\misc.h)(0x521ED710) -F (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\src\stm32f10x_pwr.c)(0x65F32F30)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\stm32f10x_pwr.o --omf_browse .\objects\stm32f10x_pwr.crf --depend .\objects\stm32f10x_pwr.d) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_pwr.h)(0x65F3EF70) -I (..\boot_source\code_app\startup\inc\stm32f10x.h)(0x671A25F3) -I (..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport\core_cm3.h)(0x61605444) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -I (..\boot_source\code_app\startup\inc\system_stm32f10x.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\stm32f10x_libopt.h)(0x67177362) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_can.h)(0x67208686) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_gpio.h)(0x62D28C12) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_iwdg.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_rcc.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\misc.h)(0x521ED710) -F (..\boot_source\platform\drivers\src\LED\led.c)(0x671A1AEB)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\led.o --omf_browse .\objects\led.crf --depend .\objects\led.d) -I (..\boot_source\platform\drivers\inc\led.h)(0x67175BF6) -I (..\boot_source\code_app\startup\inc\stm32f10x.h)(0x671A25F3) -I (..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport\core_cm3.h)(0x61605444) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -I (..\boot_source\code_app\startup\inc\system_stm32f10x.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\stm32f10x_libopt.h)(0x67177362) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_can.h)(0x67208686) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_gpio.h)(0x62D28C12) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_iwdg.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_pwr.h)(0x65F3EF70) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_rcc.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\misc.h)(0x521ED710) -F (..\boot_source\platform\drivers\src\EEROM\24cxx.c)(0x67284208)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\24cxx.o --omf_browse .\objects\24cxx.crf --depend .\objects\24cxx.d) -I (..\boot_source\platform\drivers\inc\24cxx.h)(0x67285B2C) -I (..\boot_source\platform\drivers\inc\platform_type_def.h)(0x672193E6) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -I (C:\Keil_v5\ARM\ARMCC\include\stdbool.h)(0x599ECD2E) -I (C:\Keil_v5\ARM\ARMCC\include\string.h)(0x599ECD2C) -I (..\boot_source\code_app\startup\inc\stm32f10x.h)(0x671A25F3) -I (..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport\core_cm3.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\system_stm32f10x.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\stm32f10x_libopt.h)(0x67177362) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_can.h)(0x67208686) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_gpio.h)(0x62D28C12) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_iwdg.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_pwr.h)(0x65F3EF70) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_rcc.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\misc.h)(0x521ED710) -I (..\boot_source\platform\drivers\inc\bsp_i2c_gpio.h)(0x5EDA6162) -I (..\boot_source\code_app\driver\inc\dev_config_all.h)(0x671755F9) -I (..\boot_source\code_app\driver\inc\dev_sys.h)(0x6721C8E4) -F (..\boot_source\platform\drivers\src\EEROM\bsp_i2c_gpio.c)(0x67283D3C)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\bsp_i2c_gpio.o --omf_browse .\objects\bsp_i2c_gpio.crf --depend .\objects\bsp_i2c_gpio.d) -I (..\boot_source\code_app\startup\inc\stm32f10x.h)(0x671A25F3) -I (..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport\core_cm3.h)(0x61605444) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -I (..\boot_source\code_app\startup\inc\system_stm32f10x.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\stm32f10x_libopt.h)(0x67177362) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_can.h)(0x67208686) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_gpio.h)(0x62D28C12) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_iwdg.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_pwr.h)(0x65F3EF70) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_rcc.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\misc.h)(0x521ED710) -I (..\boot_source\platform\drivers\inc\bsp_i2c_gpio.h)(0x5EDA6162) -F (..\boot_source\platform\drivers\src\CAN2\can2.c)(0x67231E54)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\can2.o --omf_browse .\objects\can2.crf --depend .\objects\can2.d) -I (..\boot_source\platform\drivers\inc\can2.h)(0x67205017) -I (..\boot_source\platform\drivers\inc\platform_type_def.h)(0x672193E6) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -I (C:\Keil_v5\ARM\ARMCC\include\stdbool.h)(0x599ECD2E) -I (C:\Keil_v5\ARM\ARMCC\include\string.h)(0x599ECD2C) -I (..\boot_source\code_app\startup\inc\stm32f10x.h)(0x671A25F3) -I (..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport\core_cm3.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\system_stm32f10x.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\stm32f10x_libopt.h)(0x67177362) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_can.h)(0x67208686) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_gpio.h)(0x62D28C12) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_iwdg.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_pwr.h)(0x65F3EF70) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_rcc.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\misc.h)(0x521ED710) -I (..\boot_source\code_app\driver\inc\dev_sys.h)(0x6721C8E4) -I (..\boot_source\code_app\app_boot\inc\app_can.h)(0x67285BFE) -I (..\boot_source\code_app\service\CanStack\canBus_hongri\CanConfig_C301.h)(0x67243FD1) -I (..\boot_source\code_app\service\CanStack\canBus_Com\can_def.h)(0x67219607) -I (..\boot_source\code_app\app_boot\inc\app_cfg.h)(0x6720B2FA) -F (..\boot_source\platform\drivers\src\flash\ecual_flash.c)(0x67232464)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\ecual_flash.o --omf_browse .\objects\ecual_flash.crf --depend .\objects\ecual_flash.d) -I (..\boot_source\code_app\main\inc\config.h)(0x671A0813) -I (..\boot_source\platform\drivers\inc\ecual_flash.h)(0x6720A9AA) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -I (C:\Keil_v5\ARM\ARMCC\include\stdbool.h)(0x599ECD2E) -F (..\boot_source\code_app\startup\src\stm32f10x_it.c)(0x6718B1A0)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\stm32f10x_it.o --omf_browse .\objects\stm32f10x_it.crf --depend .\objects\stm32f10x_it.d) -I (..\boot_source\code_app\startup\inc\stm32f10x_it.h)(0x61605442) -I (..\boot_source\code_app\startup\inc\stm32f10x.h)(0x671A25F3) -I (..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport\core_cm3.h)(0x61605444) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -I (..\boot_source\code_app\startup\inc\system_stm32f10x.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\stm32f10x_libopt.h)(0x67177362) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_can.h)(0x67208686) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_gpio.h)(0x62D28C12) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_iwdg.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_pwr.h)(0x65F3EF70) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_rcc.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\misc.h)(0x521ED710) -F (..\boot_source\code_app\startup\src\system_stm32f10x.c)(0x6718B1B1)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\system_stm32f10x.o --omf_browse .\objects\system_stm32f10x.crf --depend .\objects\system_stm32f10x.d) -I (..\boot_source\code_app\startup\inc\stm32f10x.h)(0x671A25F3) -I (..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport\core_cm3.h)(0x61605444) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -I (..\boot_source\code_app\startup\inc\system_stm32f10x.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\stm32f10x_libopt.h)(0x67177362) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_can.h)(0x67208686) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_gpio.h)(0x62D28C12) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_iwdg.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_pwr.h)(0x65F3EF70) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_rcc.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\misc.h)(0x521ED710) -F (..\boot_source\code_app\driver\src\dev_flashApi.c)(0x67171677)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\dev_flashapi.o --omf_browse .\objects\dev_flashapi.crf --depend .\objects\dev_flashapi.d) -I (..\boot_source\code_app\driver\inc\dev_flashApi.h)(0x67282DED) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -F (..\boot_source\code_app\driver\src\dev_crc32.c)(0x67173C51)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\dev_crc32.o --omf_browse .\objects\dev_crc32.crf --depend .\objects\dev_crc32.d) -I (..\boot_source\code_app\driver\inc\dev_crc32.h)(0x67184946) -I (..\boot_source\platform\drivers\inc\platform_type_def.h)(0x672193E6) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -I (C:\Keil_v5\ARM\ARMCC\include\stdbool.h)(0x599ECD2E) -I (C:\Keil_v5\ARM\ARMCC\include\string.h)(0x599ECD2C) -F (..\boot_source\code_app\driver\src\dev_sys.c)(0x67208F33)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\dev_sys.o --omf_browse .\objects\dev_sys.crf --depend .\objects\dev_sys.d) -I (..\boot_source\code_app\driver\inc\dev_sys.h)(0x6721C8E4) -I (..\boot_source\code_app\startup\inc\stm32f10x.h)(0x671A25F3) -I (..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport\core_cm3.h)(0x61605444) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -I (..\boot_source\code_app\startup\inc\system_stm32f10x.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\stm32f10x_libopt.h)(0x67177362) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_can.h)(0x67208686) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_gpio.h)(0x62D28C12) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_iwdg.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_pwr.h)(0x65F3EF70) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_rcc.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\misc.h)(0x521ED710) -I (..\boot_source\platform\drivers\inc\platform_type_def.h)(0x672193E6) -I (C:\Keil_v5\ARM\ARMCC\include\stdbool.h)(0x599ECD2E) -I (C:\Keil_v5\ARM\ARMCC\include\string.h)(0x599ECD2C) -F (..\boot_source\code_app\driver\src\dev_eerom.c)(0x67286104)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\dev_eerom.o --omf_browse .\objects\dev_eerom.crf --depend .\objects\dev_eerom.d) -F (..\boot_source\code_app\service\CanStack\canBus_Com\UDS.c)(0x6729762E)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\uds.o --omf_browse .\objects\uds.crf --depend .\objects\uds.d) -I (..\boot_source\code_app\service\CanStack\canBus_Com\uds.h)(0x67218E85) -I (..\boot_source\platform\drivers\inc\platform_type_def.h)(0x672193E6) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -I (C:\Keil_v5\ARM\ARMCC\include\stdbool.h)(0x599ECD2E) -I (C:\Keil_v5\ARM\ARMCC\include\string.h)(0x599ECD2C) -I (..\boot_source\code_app\service\CanStack\canBus_Com\can_def.h)(0x67219607) -I (..\boot_source\code_app\app_boot\inc\app_cfg.h)(0x6720B2FA) -I (..\boot_source\code_app\service\CanStack\canBus_hongri\CanConfig_C301.h)(0x67243FD1) -I (..\boot_source\code_app\app_boot\inc\app_can.h)(0x67285BFE) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_can.h)(0x67208686) -I (..\boot_source\code_app\startup\inc\stm32f10x.h)(0x671A25F3) -I (..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport\core_cm3.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\system_stm32f10x.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\stm32f10x_libopt.h)(0x67177362) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_gpio.h)(0x62D28C12) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_iwdg.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_pwr.h)(0x65F3EF70) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_rcc.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\misc.h)(0x521ED710) -I (..\boot_source\code_app\service\CanStack\canBus_Com\iso15765-2_def.h)(0x67235D8A) -I (..\boot_source\code_app\main\inc\config.h)(0x6721CC37) -I (..\boot_source\code_app\service\CanStack\canBus_hongri\Diag_Appl_C301.h)(0x672977E5) -I (..\boot_source\code_app\service\CanStack\canBus_hongri\CanCtrl_C301.h)(0x67219591) -I (..\boot_source\code_app\service\CanStack\canBus_hongri\Diag_Eeprom_C301.h)(0x6728607A) -F (..\boot_source\code_app\service\CanStack\canBus_Com\iso15765-2.c)(0x67242B88)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\iso15765-2.o --omf_browse .\objects\iso15765-2.crf --depend .\objects\iso15765-2.d) -I (..\boot_source\code_app\service\CanStack\canBus_Com\iso15765-2_def.h)(0x67235D8A) -I (..\boot_source\platform\drivers\inc\platform_type_def.h)(0x672193E6) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -I (C:\Keil_v5\ARM\ARMCC\include\stdbool.h)(0x599ECD2E) -I (C:\Keil_v5\ARM\ARMCC\include\string.h)(0x599ECD2C) -I (..\boot_source\code_app\service\CanStack\canBus_Com\can_def.h)(0x67219607) -I (..\boot_source\code_app\app_boot\inc\app_cfg.h)(0x6720B2FA) -I (..\boot_source\code_app\app_boot\inc\app_can.h)(0x67285BFE) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_can.h)(0x67208686) -I (..\boot_source\code_app\startup\inc\stm32f10x.h)(0x671A25F3) -I (..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport\core_cm3.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\system_stm32f10x.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\stm32f10x_libopt.h)(0x67177362) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_gpio.h)(0x62D28C12) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_iwdg.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_pwr.h)(0x65F3EF70) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_rcc.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\misc.h)(0x521ED710) -I (..\boot_source\code_app\service\CanStack\canBus_hongri\CanConfig_C301.h)(0x67243FD1) -I (..\boot_source\code_app\service\CanStack\canBus_Com\uds.h)(0x67218E85) -I (..\boot_source\code_app\service\CanStack\canBus_hongri\CanCtrl_C301.h)(0x67219591) -F (..\boot_source\code_app\service\CanStack\canBus_Com\iso15765-2_entry.c)(0x6721ABCB)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\iso15765-2_entry.o --omf_browse .\objects\iso15765-2_entry.crf --depend .\objects\iso15765-2_entry.d) -I (..\boot_source\code_app\service\CanStack\canBus_Com\can_def.h)(0x67219607) -I (..\boot_source\platform\drivers\inc\platform_type_def.h)(0x672193E6) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -I (C:\Keil_v5\ARM\ARMCC\include\stdbool.h)(0x599ECD2E) -I (C:\Keil_v5\ARM\ARMCC\include\string.h)(0x599ECD2C) -I (..\boot_source\code_app\app_boot\inc\app_cfg.h)(0x6720B2FA) -I (..\boot_source\code_app\service\CanStack\canBus_Com\iso15765-2_def.h)(0x67235D8A) -I (..\boot_source\code_app\service\CanStack\canBus_Com\uds.h)(0x67218E85) -I (..\boot_source\code_app\service\CanStack\canBus_hongri\CanConfig_C301.h)(0x67243FD1) -I (..\boot_source\code_app\app_boot\inc\app_can.h)(0x67285BFE) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_can.h)(0x67208686) -I (..\boot_source\code_app\startup\inc\stm32f10x.h)(0x671A25F3) -I (..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport\core_cm3.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\system_stm32f10x.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\stm32f10x_libopt.h)(0x67177362) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_gpio.h)(0x62D28C12) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_iwdg.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_pwr.h)(0x65F3EF70) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_rcc.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\misc.h)(0x521ED710) -F (..\boot_source\code_app\service\CanStack\canBus_Com\Can_Transceiver.c)(0x67297613)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\can_transceiver.o --omf_browse .\objects\can_transceiver.crf --depend .\objects\can_transceiver.d) -I (..\boot_source\code_app\service\CanStack\canBus_Com\Can_Transceiver.h)(0x67297611) -I (..\boot_source\platform\drivers\inc\platform_type_def.h)(0x672193E6) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -I (C:\Keil_v5\ARM\ARMCC\include\stdbool.h)(0x599ECD2E) -I (C:\Keil_v5\ARM\ARMCC\include\string.h)(0x599ECD2C) -I (..\boot_source\code_app\service\CanStack\canBus_Com\can_def.h)(0x67219607) -I (..\boot_source\code_app\app_boot\inc\app_cfg.h)(0x6720B2FA) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_gpio.h)(0x62D28C12) -I (..\boot_source\code_app\startup\inc\stm32f10x.h)(0x671A25F3) -I (..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport\core_cm3.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\system_stm32f10x.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\stm32f10x_libopt.h)(0x67177362) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_can.h)(0x67208686) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_iwdg.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_pwr.h)(0x65F3EF70) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_rcc.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\misc.h)(0x521ED710) -I (..\boot_source\code_app\service\CanStack\canBus_hongri\CanConfig_C301.h)(0x67243FD1) -I (..\boot_source\code_app\app_boot\inc\app_can.h)(0x67285BFE) -F (..\boot_source\code_app\service\CanStack\canBus_hongri\Diag_Eeprom_C301.c)(0x672974A7)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\diag_eeprom_c301.o --omf_browse .\objects\diag_eeprom_c301.crf --depend .\objects\diag_eeprom_c301.d) -I (..\boot_source\code_app\service\CanStack\canBus_hongri\Diag_Eeprom_C301.h)(0x6728607A) -I (..\boot_source\code_app\service\CanStack\canBus_Com\can_def.h)(0x67219607) -I (..\boot_source\platform\drivers\inc\platform_type_def.h)(0x672193E6) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -I (C:\Keil_v5\ARM\ARMCC\include\stdbool.h)(0x599ECD2E) -I (C:\Keil_v5\ARM\ARMCC\include\string.h)(0x599ECD2C) -I (..\boot_source\code_app\app_boot\inc\app_cfg.h)(0x6720B2FA) -I (..\boot_source\code_app\service\CanStack\canBus_hongri\CanConfig_C301.h)(0x67243FD1) -I (..\boot_source\code_app\app_boot\inc\app_can.h)(0x67285BFE) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_can.h)(0x67208686) -I (..\boot_source\code_app\startup\inc\stm32f10x.h)(0x671A25F3) -I (..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport\core_cm3.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\system_stm32f10x.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\stm32f10x_libopt.h)(0x67177362) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_gpio.h)(0x62D28C12) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_iwdg.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_pwr.h)(0x65F3EF70) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_rcc.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\misc.h)(0x521ED710) -I (..\boot_source\code_app\driver\inc\dev_flashApi.h)(0x67282DED) -I (..\boot_source\platform\drivers\inc\ecual_flash.h)(0x67288F56) -I (..\boot_source\code_app\main\inc\config.h)(0x6721CC37) -F (..\boot_source\code_app\service\CanStack\canBus_hongri\CanConfig_C301.c)(0x6724308B)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\canconfig_c301.o --omf_browse .\objects\canconfig_c301.crf --depend .\objects\canconfig_c301.d) -I (..\boot_source\code_app\service\CanStack\canBus_hongri\CanConfig_C301.h)(0x67243FD1) -I (..\boot_source\code_app\service\CanStack\canBus_Com\can_def.h)(0x67219607) -I (..\boot_source\platform\drivers\inc\platform_type_def.h)(0x672193E6) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -I (C:\Keil_v5\ARM\ARMCC\include\stdbool.h)(0x599ECD2E) -I (C:\Keil_v5\ARM\ARMCC\include\string.h)(0x599ECD2C) -I (..\boot_source\code_app\app_boot\inc\app_cfg.h)(0x6720B2FA) -I (..\boot_source\code_app\app_boot\inc\app_can.h)(0x67285BFE) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_can.h)(0x67208686) -I (..\boot_source\code_app\startup\inc\stm32f10x.h)(0x671A25F3) -I (..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport\core_cm3.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\system_stm32f10x.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\stm32f10x_libopt.h)(0x67177362) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_gpio.h)(0x62D28C12) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_iwdg.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_pwr.h)(0x65F3EF70) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_rcc.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\misc.h)(0x521ED710) -I (..\boot_source\code_app\service\CanStack\canBus_Com\iso15765-2_def.h)(0x67235D8A) -I (..\boot_source\code_app\service\CanStack\canBus_Com\uds.h)(0x67218E85) -F (..\boot_source\code_app\service\CanStack\canBus_hongri\CanCtrl_C301.c)(0x672974D8)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\canctrl_c301.o --omf_browse .\objects\canctrl_c301.crf --depend .\objects\canctrl_c301.d) -I (..\boot_source\code_app\service\CanStack\canBus_hongri\CanCtrl_C301.h)(0x67219591) -I (..\boot_source\code_app\service\CanStack\canBus_Com\can_def.h)(0x67219607) -I (..\boot_source\platform\drivers\inc\platform_type_def.h)(0x672193E6) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -I (C:\Keil_v5\ARM\ARMCC\include\stdbool.h)(0x599ECD2E) -I (C:\Keil_v5\ARM\ARMCC\include\string.h)(0x599ECD2C) -I (..\boot_source\code_app\app_boot\inc\app_cfg.h)(0x6720B2FA) -I (..\boot_source\code_app\app_boot\inc\app_can.h)(0x67285BFE) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_can.h)(0x67208686) -I (..\boot_source\code_app\startup\inc\stm32f10x.h)(0x671A25F3) -I (..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport\core_cm3.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\system_stm32f10x.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\stm32f10x_libopt.h)(0x67177362) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_gpio.h)(0x62D28C12) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_iwdg.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_pwr.h)(0x65F3EF70) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_rcc.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\misc.h)(0x521ED710) -I (..\boot_source\code_app\service\CanStack\canBus_hongri\CanConfig_C301.h)(0x67243FD1) -F (..\boot_source\code_app\service\CanStack\canBus_hongri\Diag_Appl_C301.c)(0x672975E0)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\diag_appl_c301.o --omf_browse .\objects\diag_appl_c301.crf --depend .\objects\diag_appl_c301.d) -I (..\boot_source\code_app\service\CanStack\canBus_hongri\Diag_Appl_C301.h)(0x672977E5) -I (..\boot_source\code_app\service\CanStack\canBus_Com\can_def.h)(0x67219607) -I (..\boot_source\platform\drivers\inc\platform_type_def.h)(0x672193E6) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -I (C:\Keil_v5\ARM\ARMCC\include\stdbool.h)(0x599ECD2E) -I (C:\Keil_v5\ARM\ARMCC\include\string.h)(0x599ECD2C) -I (..\boot_source\code_app\app_boot\inc\app_cfg.h)(0x6720B2FA) -I (..\boot_source\code_app\service\CanStack\canBus_hongri\CanConfig_C301.h)(0x67243FD1) -I (..\boot_source\code_app\app_boot\inc\app_can.h)(0x67285BFE) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_can.h)(0x67208686) -I (..\boot_source\code_app\startup\inc\stm32f10x.h)(0x671A25F3) -I (..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport\core_cm3.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\system_stm32f10x.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\stm32f10x_libopt.h)(0x67177362) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_gpio.h)(0x62D28C12) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_iwdg.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_pwr.h)(0x65F3EF70) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_rcc.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\misc.h)(0x521ED710) -I (..\boot_source\code_app\service\CanStack\canBus_Com\uds.h)(0x67218E85) -I (..\boot_source\code_app\service\CanStack\canBus_Com\iso15765-2_def.h)(0x67235D8A) -I (..\boot_source\code_app\main\inc\config.h)(0x6721CC37) -I (..\boot_source\code_app\service\CanStack\canBus_hongri\Diag_Eeprom_C301.h)(0x6728607A) -I (..\boot_source\code_app\service\CanStack\canBus_hongri\CanCtrl_C301.h)(0x67219591) -I (..\boot_source\platform\drivers\inc\ecual_flash.h)(0x67288F56) -I (..\boot_source\code_app\service\CanStack\canBus_hongri\UDS_SA_C301.h)(0x672444AF) -I (..\boot_source\code_app\driver\inc\dev_flashApi.h)(0x67282DED) -I (..\boot_source\code_app\driver\inc\dev_eerom.h)(0x672860FC) -I (..\boot_source\platform\drivers\inc\24cxx.h)(0x67285B2C) -F (..\boot_source\code_app\service\CanStack\canBus_hongri\UDS_SA_C301.c)(0x6725BFB7)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\uds_sa_c301.o --omf_browse .\objects\uds_sa_c301.crf --depend .\objects\uds_sa_c301.d) -I (..\boot_source\code_app\service\CanStack\canBus_hongri\UDS_SA_C301.h)(0x672444AF) -I (..\boot_source\code_app\service\CanStack\canBus_Com\can_def.h)(0x67219607) -I (..\boot_source\platform\drivers\inc\platform_type_def.h)(0x672193E6) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -I (C:\Keil_v5\ARM\ARMCC\include\stdbool.h)(0x599ECD2E) -I (C:\Keil_v5\ARM\ARMCC\include\string.h)(0x599ECD2C) -I (..\boot_source\code_app\app_boot\inc\app_cfg.h)(0x6720B2FA) -I (..\boot_source\code_app\service\CanStack\canBus_hongri\CanConfig_C301.h)(0x67243FD1) -I (..\boot_source\code_app\app_boot\inc\app_can.h)(0x67285BFE) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_can.h)(0x67208686) -I (..\boot_source\code_app\startup\inc\stm32f10x.h)(0x671A25F3) -I (..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport\core_cm3.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\system_stm32f10x.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\stm32f10x_libopt.h)(0x67177362) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_gpio.h)(0x62D28C12) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_iwdg.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_pwr.h)(0x65F3EF70) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_rcc.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\misc.h)(0x521ED710) -F (..\boot_source\code_app\main\src\main.c)(0x6728AF31)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\main.o --omf_browse .\objects\main.crf --depend .\objects\main.d) -I (..\boot_source\code_app\main\inc\main.h)(0x6718CD0E) -I (..\boot_source\code_app\startup\inc\stm32f10x.h)(0x671A25F3) -I (..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport\core_cm3.h)(0x61605444) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -I (..\boot_source\code_app\startup\inc\system_stm32f10x.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\stm32f10x_libopt.h)(0x67177362) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_can.h)(0x67208686) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_gpio.h)(0x62D28C12) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_iwdg.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_pwr.h)(0x65F3EF70) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_rcc.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\misc.h)(0x521ED710) -I (..\boot_source\code_app\driver\inc\dev_config_all.h)(0x671755F9) -I (..\boot_source\code_app\driver\inc\dev_sys.h)(0x6721C8E4) -I (..\boot_source\platform\drivers\inc\platform_driver_inc_all.h)(0x67177546) -I (..\boot_source\platform\drivers\inc\led.h)(0x67175BF6) -I (..\boot_source\platform\drivers\inc\24cxx.h)(0x67285B2C) -I (..\boot_source\platform\drivers\inc\platform_type_def.h)(0x672193E6) -I (C:\Keil_v5\ARM\ARMCC\include\stdbool.h)(0x599ECD2E) -I (C:\Keil_v5\ARM\ARMCC\include\string.h)(0x599ECD2C) -I (..\boot_source\platform\drivers\inc\can2.h)(0x67205017) -I (..\boot_source\code_app\app_boot\inc\app_can.h)(0x67285BFE) -I (..\boot_source\code_app\service\CanStack\canBus_hongri\CanConfig_C301.h)(0x67243FD1) -I (..\boot_source\code_app\service\CanStack\canBus_Com\can_def.h)(0x67219607) -I (..\boot_source\code_app\app_boot\inc\app_cfg.h)(0x6720B2FA) -I (..\boot_source\code_app\service\CanStack\canBus_hongri\Service_Canstack_CanBus_hongri_All.h)(0x671F598C) -I (..\boot_source\code_app\service\CanStack\canBus_hongri\Diag_Eeprom_C301.h)(0x6728607A) -I (..\boot_source\code_app\main\inc\config.h)(0x6721CC37) -I (..\boot_source\platform\drivers\inc\ecual_flash.h)(0x67288F56) -F (..\boot_source\code_app\app_boot\src\app_can.c)(0x672975E0)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 -I.\RTE\_hongri_boot -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include -IC:\Keil_v5\ARM\CMSIS\Include -D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL -o .\objects\app_can.o --omf_browse .\objects\app_can.crf --depend .\objects\app_can.d) -I (..\boot_source\code_app\app_boot\inc\app_can.h)(0x67285BFE) -I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x599ECD2E) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_can.h)(0x67208686) -I (..\boot_source\code_app\startup\inc\stm32f10x.h)(0x671A25F3) -I (..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport\core_cm3.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\system_stm32f10x.h)(0x61605444) -I (..\boot_source\code_app\startup\inc\stm32f10x_libopt.h)(0x67177362) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_gpio.h)(0x62D28C12) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_iwdg.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_pwr.h)(0x65F3EF70) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\stm32f10x_rcc.h)(0x521ED710) -I (..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc\misc.h)(0x521ED710) -I (..\boot_source\code_app\service\CanStack\canBus_hongri\CanConfig_C301.h)(0x67243FD1) -I (..\boot_source\code_app\service\CanStack\canBus_Com\can_def.h)(0x67219607) -I (..\boot_source\platform\drivers\inc\platform_type_def.h)(0x672193E6) -I (C:\Keil_v5\ARM\ARMCC\include\stdbool.h)(0x599ECD2E) -I (C:\Keil_v5\ARM\ARMCC\include\string.h)(0x599ECD2C) -I (..\boot_source\code_app\app_boot\inc\app_cfg.h)(0x6720B2FA) -I (..\boot_source\code_app\service\CanStack\canBus_Com\iso15765-2_def.h)(0x67235D8A) -I (..\boot_source\code_app\service\CanStack\canBus_hongri\CanCtrl_C301.h)(0x67219591) -I (..\boot_source\code_app\service\CanStack\canBus_hongri\Diag_Eeprom_C301.h)(0x6728607A) -I (..\boot_source\code_app\driver\inc\dev_sys.h)(0x6721C8E4) -I (..\boot_source\code_app\service\CanStack\canBus_Com\uds.h)(0x67218E85) -I (..\boot_source\code_app\service\CanStack\canBus_Com\Can_Transceiver.h)(0x67297611) -I (..\boot_source\platform\drivers\inc\can2.h)(0x67205017) diff --git a/boot_project/Objects/if_can.__i b/boot_project/Objects/if_can.__i deleted file mode 100644 index 6f859f6..0000000 --- a/boot_project/Objects/if_can.__i +++ /dev/null @@ -1,6 +0,0 @@ ---c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 --I.\RTE\_hongri_boot --IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include --IC:\Keil_v5\ARM\CMSIS\Include --D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL --o .\objects\if_can.o --omf_browse .\objects\if_can.crf --depend .\objects\if_can.d "..\boot_source\code_app\interface\src\if_can.c" \ No newline at end of file diff --git a/boot_project/Objects/if_gpio.__i b/boot_project/Objects/if_gpio.__i deleted file mode 100644 index a0829ca..0000000 --- a/boot_project/Objects/if_gpio.__i +++ /dev/null @@ -1,6 +0,0 @@ ---c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ..\boot_source\platform\CMSIS\ST\STM32F10x\CoreSupport -I ..\boot_source\platform\Chip_peripheral_dev\STM32F10x_FWLib\inc -I ..\boot_source\platform\drivers\inc -I ..\boot_source\code_app\startup\inc -I ..\boot_source\code_app\driver\inc -I ..\boot_source\code_app\interface\inc -I ..\boot_source\code_app\service\CanStack\canBus_Com -I ..\boot_source\code_app\service\CanStack\canBus_hongri -I ..\boot_source\code_app\service\Eeprom\inc -I ..\boot_source\code_app\main\inc -I ..\boot_source\code_app\app_boot\inc --diag_suppress 236 --I.\RTE\_hongri_boot --IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include --IC:\Keil_v5\ARM\CMSIS\Include --D__UVISION_VERSION="525" -DSTM32F10X_CL -DUSE_STDPERIPH_DRIVER -DSTM32F10X_CL -DUSE_STM3210C_EVAL --o .\objects\if_gpio.o --omf_browse .\objects\if_gpio.crf --depend .\objects\if_gpio.d "..\boot_source\code_app\interface\src\if_gpio.c" \ No newline at end of file diff --git a/boot_project/hongri_boot-GD32F105.uvguix.Administrator b/boot_project/hongri_boot-GD32F105.uvguix.Administrator new file mode 100644 index 0000000000000000000000000000000000000000..c6b193d1d6a96b8c18a2d9acffebca03be62fe43 GIT binary patch literal 184320 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

    FjQGufl&;#(VK( zB|X;}pMuwU;RUOlWZk7wQ41LhLNPddv}u01hoxi+>H8S)69&Ann_E3H0wr7-&;3CT z459HpcEVH7wp4Ta2XgDqw_Ks3cdoutJDFQT!kkGmEa#6qv1d9{#(70VF$`L&kfYSS0yj?>o#th&guONlhxM z*5JdhunX{H5&^jPfk=xM%`>3QpXEU(K~xmzNFTn=%e7^1U4JCyE>@RYT1KO#FJMct z;fL7m5?&LWX(Q=7v#n*43lRz*P*bmjoH`R@AySCj?95ICNgWDP`bS>*23}13YeaC0 zW9>+_(`jK9%)#f9qx9Jmos{y0@Iv|_ly%@2+2O`{<(W|>rVg^H0E(IYCBuHpbdE3T6kac`s1lAV@*|D`76gg!*t4~uOd-IA>j83f4^%G z5(&Ve$%wG899daIzHa&%7KU^j42ufqb0x^gYdOMU=KrNK*QYn7vS zHGG&YtO~uPtn#)#?UR=_atAtwp21KQJL=yv#Jdwh33lj1)1*Pt^VV69jhVPW|5|?F zQ*?Ou0mm7-IL~gNLC)_7L=Jx_6o%~nN^_MuAq*Kj&I$h0@6ASl}?Q6p_@sSYw)j9-dd8K$g>}W*) zQZ@D{z*5uF-}mQ8<70*5$5ey?$;_J)!^i}hT~ZnlX{{Nh_42S=`1RF>5a^u{DeLiJ zd7SL=dDL{aJG~xWkzK|1VV04m?M$9Fsv@79s_8(YfwBD*8iGgjd4~kW%+(inLbvVp z^B!8A&5?bHzEL)*RT_3ZVkE$pLpBur{#%ak0+0>f1b5O>9GrcxXIL}@QirZ{cpzxq z;bF(TtNFI2bv;b$T_CD}T#ZEBY?Gt!YGrrfQmL^_21HCDQ{P*?L8eeVDyU`OW)3{2 z=(&{0(}iawZwIyGI>NNnamR@_b3jHUIQ4B3tflW6e}nkNZOK!{O$-o%>u%8#OD5*M z)sT^L2;b-5;J8R?tnZz$P8a4ZNy-rZ;Nr&^;$A98D?RkvFkOMiK?k~BYRgZcsg4I8$nrL*d42&>R#;X%|s=wvaRa}xwH5saXAQZ-$v4aE?=9`|5eairq(Wbrcjn*D7H4e01|E)1c0O zn~rC!6gc*E;aH^=qs0XDw0g;@dvI$j^&H`Ib-v7)DneXN*>Vp|QGX-BPt}t`@ zPH@iCeJS$-1;p@_z`rLKh^@Ib@ln5k8(PsYwlN&=4W3Q1qo4qBJL zNsx+Mp5m#?w7tM_fJDEoS%BhY_m-QtC@USo7R2(t3H(r>8hL%6|WC*NO%@EPu}n1 z&!*pL(zVTH4YqkoBS{@%YH%Rfs1O#2~F;?B2;e+)g`5a!-0c?D6a_DF7RwgOjk+68sD~6VhSclZ+ z(Bl+2js~)1dK||~UA$3-u3@iQ{Y^f)r@z&T&xUPEv%)DsHulN$fOF9IU4wTA?*YyH< z5Z`-HG2vD;kdfI#JaYtdOT&g%X9$mYgeUiH^?}(}#Fpo6t+EFm-AfBA1>Mw?aWSS{ ztq;Vj*P`)A72@kq4BZAL;t#Lu2+1}hmh$UlhYG!?{e`dG<)nsQLAKyVcKUY(q<>p7 z0#fId+yWcqD0P^I`8|uM_GH$Bzh{k%Pm74SE-93}!C`el!HhB;HsC+G_W%EBIy2MQ zM&beTk+}wTd7cjiEtGPi&h+I1FMRSFd^-Ysu=l5O=a$r4cn6;e+_y3axE)d}6Wfbz z9Pt&!t6bQL4}``5d;?k)wGqI; zYYwc2lqPF(N9k2*_NZgc`i1A5%weaGf4w(aK5hTO+!B1HrTSEyj=8nA(IiUr0!XZE z4-+{Jps70q>*E!h!~}+th3!;7A*2K3xgHFW81P+l!FP4a=lVV}JQtev=mSwph5{Fl z3_xyg44RFZgS%*<>VHC%O3R0OT=6o-?D2TN7vxnOQx0thanQJuMxAFQ*g|;1?tqBO>8idw zr9C5i#`d-PahG(;-T=Gs>x)<-W^a=voXYy!XilgWh_VvTc7T4%zBD<;vy~uk<7gzG zkKIsHnLcU1^-Qs6y5mfO7zRl%r}Ywx&$tezYMDXWqnH+`OL30=GEO04QNu0h8U2l4 z*MhH5wjiYPy^-i(Hbjh2cfF3_KCRt{SYsWGHxc_UQ{AIo?){LGdTavM0xcv|p)R4r zR^){fLo#pHGSziN=J6Hb%a5L^oGWA7&j(YvB0)g!1 z6JDuR-Li|fuL-6oE71D`tbS76^&~#JwOxmJrW47QFi+h~tjXv^W~5kd5Z^qAn*Q+S zPO$ORX)IJEEhu|d!@=2#chu5w^Hf^1W`^YLaz!6FkTZyJups|aC@K;G?n5vUPhYbb zq@Kf#>7#14zp<)pr=+ALMHKdM68%vV#2#bW@Kh0?dpE{pP}0Eo(3K+M$4mryBQS^b z`BvpU>^hKeD|#=Gp7run!4-j(MsL2ID)51uzZ(OJ9{{*sBz`=26wvuSxi5+%3>A3oeyVc9TAr<@ zyWe?76+M8ZnP+;gWdNgfUPX2H?M0SXB|Ib6kB%d)qT~F!ZpIFa2_|9Q`;@O1K-NjF zA!{#-hy48~O55?nH=)Y#IhidDulhm_2RGP`5nZ*RBFP_FVg5HH2AT+0DD344V{$cY zAQdj^mEbuwPiP^}t{fh<92mS=Q^OvU~QeygL6Uq7=#_{hZ5{HZ~O zafCGTT)&(Xu)zzIU~bNG)RrRi2~Upg`9JqgLrzZnd-?pHBj=X}qNUNjNgRfZ!P@Sj zx6u5jUQgiU?hTsYf_$u{k@`cBb}}up8ek1UzoI_*a3?xFE6gbSwtLIC2txK7uvqBj zHt%phn@HmaU`;cnHIRqo3tG_(*I*BOV=t~uz&1TZHnCI1>jeZ`syL2faAeSU=um)$ zvmG;WR1dcJ11i6sokO719I|&6;+?ho7X#vQtZc2?fuB7P40nvU%IpgCStKVUkpFUY zDYYr6eo8P!+Lf#N3D=1&^ZE!Ig%Q-uPkwut{L?F5}RzMk$j0cd(A5!MD(&Eo+zQ+9A{PF&^mWhI8=a5 zHpGr8t8?O`Z2YSEQ!*Y4hQgs%)x3p2W>EVxHA0EqZA?qI&v+cz9z({)pkTuH{>(uF zpGt~v*i1gn6Q3`$;uoY$1QXqUH4DK;G$?XTq2Ubt$wtOh%0G%(lMLZ)7gaB=v=QR! zI(*+KKf+yqn|B7lq5ZMtV6;QAs@w8jlz-oj@L5X+tZ;?8)7C?$v?qJ!Tc&?9`W-~I z8A4gzo|E90_v&U5EcOnK2mu6XrrrjIfO;|vS`B&;k;5)7H`3aYr3P3j<6&hNqq_9t zeLHjYU;q3)PYPeQB*sFPDS%I|otsReL8Dr#dw)UEag2tbplZzp%u<9PG<#G6bBy~< zSQ*6&L<6bXJLWF#(<)zuw&^%(81oH7c#;_W4x>`y%8?hmS6HIa$Nbrq>m3Zv9K&!J zgSjgeU_>H%sGRg;l8k?{j)N<`T?^A?2jBOH{@!*!@MJXX-Fw$guf^IMZwP>nw~Kj^ zRi^AjUypeH2(UJFD%6%Drjo;HKQWfzJxC9gK^O}mEgXJh)|Mlug=jwKk>cFFuPr+o zN#JH7dp3SUwe%hXhW=4)A=tI75XUmD{$)l{3N3AHMJDm!fa>FK-|-trFn6bht=Nm@ zPOZ$Ewho)^hC44gX{C$9kujWuFy+BXw{M5# zDq!}90F5Wv0T1Dl!UM+-d14)?hOF+c8tr(3(IYCxoAXHe)&FtALO`SlpbBSYWx-h zmv=D^$|*(t3R|$Cj9cB#41P##BLP5T*{{5`bcSgl9Qf1m%rJG0?~EYMVA7cYCZkfk zE0XSpWf|@tJu9zc_;Q82{AP2aCY15+AVJh?%qi$rL6K6%3u(x^LRR)~*?J{&>{amN zp@2Ik2!Zy$C-Zvyvg#HMFvIojNz)SC(QqQrj^YJIF6q|Q5)Q>j*8h?myTcW(p?r}= z_R$NKwf@T3yx0RJgDY^fL*+S*N+FxO)k;2(wGue>7{!>KSj%-joXiML-Bf_s_TQYz zEC2~FG^uxmv;q)gA*{{q;kWA46gBVAsvEzgIzbwcG4($CgsLZIxanB=m~IC0IyEvHI$@``1S#a!-Hwyn^7 zA+{s$JvF-8-ZBj0!i@X^Xj_1pM<26ze7ZuiLPZcrig~!;WOYnDC7j%Fm0318^XCoh zI3?qlC>qzFHLCf%ND>&4~H5`VGLN1whWgVu(4MnV8kx``_&> z5L6bv9m7TAF%WSO^2vB2ydP?kn3z~uxeKRN>FnJ)GjQ|&;c6VBd_|vdRxsW$+BQZW zd3BpxXlEqVsN5{8hcr&0%Vu);!rh}rns9~yYIwD-v}abI%i3!Xn*ilaDIfhA%LU`6 zuSPQ*d6XgxH=zYVYmOhef58n!Ro#m027g1R(7T{jIEr5RgX#j%@f5GH zi?noNH$Sr&*k3}Gg%y9?=;}^5+|X!&Jf|*Z(UffLjDa@XU z%Ck;X@!pLg!FHIQ*#b9{`l9zJjU1?75|X3T4}T@&G1>tzAL7tk8y!HQGb-VVK_5lD+K5w4I$SKnOd*783@fy zxf1@uyrJVs0t10Dvjt|OEsTMHiOL5e&gI@xr0=}OwZt9aO=r*krCAivm_BXP62%dm zfm~Ojm1I>fgZQNsZvyn-m>YE_nYl^ZGGbnTzXedV?J<0G>B{p&naR!yAyh?~O_)zc#d^=V#yUEfiGY>@#0lW}gFgUjR*e>o0@brVw227riTtktKJ7G>= z9IaT1y=a_-Ac)2_Nk4wzeEntx9=2?D@)?+d`NC~WzasY)C3|>C;Dh-*KT#+ zCkykf0I$2p;5J8~LLF3IMt&P8!C1gTPQi8VrQr<@3D|J!fdFW-N0U_W8n4a(dKAxM zH!FYixzlraSl#2a8yeOnwH11qoLw0U&iRs0A3=c%a)xMVL4hacIp5ELW-z(A#QLTb zxUOn0DK{{_3ZeFGlt@*ZPn{!?9?zrbVSeU!?8zEld8RZLq$^Oc?HZoEC9 z3A*TGI=!tnq$1a3JN`nP*?16hZdo2ipR~&r4|T>gVCYZ{^Preq|>A`5Ln{R+3 zTmsc;v_@gX9d;ELo1_G7AMLxsOP6cYE(f4I{&Nip4`FI(3@TXiF6s*lkg6T1pYSZhwYSIPWdnzY4 zu3O=3s*ajf$n3dKiV|@iICd}t3dz=9+MbcCEiyGOki z2Ple&E1F##UmjNTe7o?bv;kyzMCMEZ8oB{>!_>Hi=STJ!L?07W>b~6UPsvh^)Q3Re zMuQ*BMAi%@vH2#25O2!eF-F}QQmd@4_rd-n*x)IEhd!zoefKB_P@av`!71q={r<_lvLRU?J7R770nm zLXE<3;0ReNo5vhCa-hg5KjP2k(q8K9FOI}<-=wZ|an7}!V5wbFa>fc;szX2y?HKfl_S(?edyap6uwQ+iQSY-s+O1FX*_63 z%A`Ptm3?5y*8Fdyfnr7fhgUdI5owpR3|!lo)j|*k^w}47X~#l9SDGnCdcs+%9QBMp ziU+vYG${Iqd_gVx5e1DnQroUL$uwoXF2prIvE^q9kaX3fps9^?_^P8=p^y_2w|d6* z9C<(P>Sa!P>jmlRkZ$OM(FGXX;mxL5hMS8Z`MRbn0NW=a)v80^Wtl(_CZA@6tlc%) zEz{+_3c8X#bWo>=n!9^=nJiEyqN5Tbb6$2577LYe{}3+~Q!lT6^nTQgM-}Kxj`jk7 z!V{`fF$oDQ8j!L!)zpCU6W{IhzMt{RFl03GntgPQX(As!{w>QoN#~~FDb}_EghLs@ zf373Llp6F6>yz{ioNKCoxivxdZytbkcBN_d^`xu8dv!|(?{*pImk@;OydZ)wH6Mwa zc2$qwO%ay~3R4qJZ%IKdfMY`kR^#KHP1#he*5StyVGH)_Tvvrz+}9+|PsAw*)DtTJ z5uB#soP!U)Ehu<8E^5fMC%FM8D8>ZgJxIX?W3%oaGUMydDJSAO)5Z+yxJ_46xyl;a zUy+{$lmcAC+nx=T8Cu2pqFKOA&!3u(V|Giv4SGhbX_+lnz~C?1>2DPRglA!E8U{0= z2@KTce+6f%C>1-snXL4(pBacjt&52hWeJ`J?mJ7D-tc(?$YU%Q{p+_=d{%RF>=TC% z_tP|OPUpmK^tOy)bUHU=awy;CR#xStIrj>>&c>J6SK9q3e0VUa6FEl?bm1HZpj|%! z!3R5=rp89yI!UFOOO6o_w6_WXFuH5RMB5sK&lS>zY7GMbir%0amwmXB2m8BYzVaXgyB|6KcDSBmN#6pAYgThWOki(2Ut)OJ%4Z+d3H`IC6FNqm%;0nnh5>3)oCeQ#V zvBwC8ZW6e`Z{4L+7N}MAHPqNT6tOz~rc~I4`36nXlp+-+1(`l9PO72vvaUFcZ>c%` zC%@p6?c}=Xgh*ZMqrAt0;Db~#O}k70y1oVSh7M}gSaV0BON`M(;gC|~c&~aadAZ3V z55bt;X1Sr0Z0KMkxuS*4U?k)e6Et3~j^r_6<3cX(A0L5iv0QU9HlZ2iurJtR`S=)R zs>iLjryFBaO)@QGXAZi$KD)nVnDxFb@n%gD_7w2FW`UpQ7$+08)8Xx2l9b9@u@r88 zEaC30cs(+zgHC9mew)6PxrG_+!_UYYx)melgyf!w!|Q8L;<%mr@89ZJ5O^Byt0sqD zk4d)_+i}D_A}oo9##E-AvX7hIg{h&ogO<#;YJ32yuSYm1-o_G*mZHXHX&NJMas3Br zn=j<@_E1P0&}t}{Yg~3gm1GP+QGYMp@R{gn@;{OAadvOh;^lKM4JMj0+MX?%ueZ25 zr0xw!t+ckSo}P=1Mur{a0s7Btj7m^ub@iGgC0-AmoyJwxpm>jIQO3Im2eurr-7+|`t!G-d z3NeajqksQNgyAoz(rdkuo~vsH%q+NsU*!2_>v``bsx$kwJ;>fwZVy4J zr1_sVKXEY^jiczI1#G1(o<&U3bApWvNt}^B-4mit!NqmBhRAvjD?h~1H_EVheYez` zyHUl_C(Fo}O0gc7N34;IbeUg!!ZDH-vg@A~tuB$2EV+L!mfR1f&=;)5lS|R=brwO( zJCyc9RamWh>MljiA^2b`JjvyR1it%`cy@quusF5pEe2|+OEt3|0_W!dRQ`%Y@nr?&d|DwTW7vJT7NzM7}{Hv+4&sv_F zfL_!{RkMNIatNBJiUc-i1LS~Zlp7u{&E|qgON!P$kxUPQLT=8vW%92u z+c}c5`^y%|(F`ML@6d8$)X(%I2Lu4`SVuT1Te=Y_;^^#aW0lmn2-4jTd+}QC%?*?l znhRZ|S>ClWWgHtIVZ2$Qp#r%~=m#2WE|Pg1Ce;VRs)AfIUCcdqhmM(eGUxleZ86R8 zfJ6~8c9=Z<`-xBg{g5Z*2G`cf7q6a}_y*9V-D=mHc7mXy3uOrvli6IQz zK;|rPadfqeuR^J^3H>^pnuO#LTfx01$gCa;@_DAMB!t^}{|7b1h^d{DmP%$K#1Cc~ zVx1F!=dw^5wkNJEx%Y>%QBcqsdFY6MIMW;jW$UyG$y_|VyD7)=4ikt6FyNwa z$t6_{{~@p0MaqTm2665pdzf}Lr&IfAWF)x5EB>zVG89>YwVwA_47P_AU8A9^OwdGr z2y;w{STCLqJ#|Q$>2^7pXMNrr1OqPOIC6r`m-rly_pJC9`wN)M|2_2Bdq@moRv;YP1Lmvg4t&HF1t=pvEV_o365Pd$L(CZg z3N2Kez?NaGt&_o)9gRL4@FZwUt(33#FyX6Awf5%yhPlx>$weVOCrj5ev+B5{!HQsr zbP86h2lLDp0Ka1UuHW4~l|!dywT@YAiDjnf!K?T{ z<<6bYQttBs3XFIxP2m;`h52RE6>aL8&`J6d#EqyxTm?2jtioZ+D16 zRPz^z+fIj{!ltT+!{c3!61JWG|JlLLjmK?{rqu1??q|LX&F-<$xXU8Lp5A4^8%qbv z=_;@8-4VGwvkC3HstpruH2}2xd{$F9fIgXH;qIr5EA@hc*RV8PYiJXk!=@GjXm&1V1)%Q@E(u-84o;P zFoWT9)MwY-8nm!4VCaThwnKCYdbP%QZE(_-+Q9c53SL`hj@{pyiP|ozQRBQ}| z5>y5YJMjZyMG{#nVkvdWYZUWvBJ+t_*)=fDvl58X?OpY5K*;&Kkh}tqa#@i@d$l)p z(ys#STk_4u-y!36dKcGstBhUzvj2ea{p+2X%caqql{4cru)c5K_JRMj@HBM;_#?P4 zw;L_uATCv^n_%JkL(Xiz)+BC-IGzSaRb$vBHM7FqC6PU`-jR?;n-#WRFF+E8{~r$&5r99WgmyfU^C@X-O1J+KKCW zMA&$3q4s>jn0;ObI8xnn`?%aoZB-MUl4P(}`L5xH`^+E-#T4xBM5i_I{;GyVn05?l zRlZETzc65*kyaj0_tWg5G@Tmb{6hEPa6F(fQ=~T3&*S`@LXwpdhC95FT>lhmFT?}*-HnZBIq~n33)|U&5jZJaeo>&fdZq=6LBCArl-6wg*eF>r%@wXF90$ld2H%gu+(U zVZ*8RtCkbseA`jgn%EFKvS3;~N6*hWcsJ`z^3!Anvfk^ku?$XK`JKKSAB>S!bQy^8 zbLE@P`^GCns69y9_g~Bx9j}7FP^{7EwKKPN`4Q1)HQNkz+KCU8Eam!r)faFKa-^ce z+}oT^=oKUv+gk>5SLdkIz)1fT_nvN&cLNdocxuNvSmdDCT!DN`zwjZ1ugA2WqRjg1 zl#k8muG||J3vrzobM^Oq*Ui`_0d4fWrJ)bRhv$my>@!+1)_Q6*r<>ioq=dWWM@vop zKi+Nw?I?1GRd2|yyCQ0_gBjMYDH@9vv$4Quz-n&j=@`1hP*z{pB|#j)$$r~DrPye) zc?Xyw(G>9RAP0}B@}dGEtWci1g;u|?{pCP2Z+@sSacz{VMwTXLr5zOOud`#>SNNR1 zF-rc?X4Jm;OKESc;V+0>VclIEX$yK zE!S7-6U%b8O!W4nHAe!UJ4gZ@j6E^U|CbCS@3c9W^`!+YndUdEMRU)Xv$AJBy>y_a zVk?=9vIDORzfQGq=ZJGEd;!$lps3>lFr@e)5v3yvS4YGBac(-yK#ww8{1b-9~5s_K;2)c zGG9{a5greS1Irzba2qXpYZ z4BH}MEDNf)4IP-m%ub~=v5V=6!DU<9vd#?88>NfU1Ul4{hLxzqQS zuYkClGw${Gb&S={pj@&WUsyr@-ZWP z;&Ct{43qT%WLXkX-Jijf0pkG9pglHdB~r}VENfsjX=E~8v@+FuLWf6w(M=V@OeL2e z#T*-9$asieV?ec@KyT141z~lnNjQzbSGuYr?UR_^oK|*$ISmcpEcx;^3SNxhDljIm zvjAol6A#h&$|s=SR#rA8>F^?CZM)zP({8QDsN+CXuxxUm+gXWOaOs@LLW^00k`dbU z5%ZF(D)f4}3KII{#kG|d4${iMAHeflJ2eTS&S{T&kYL7p!t(xOplT zKhIksNT6@pTX(d}^CVw}bRpHT!JwVJ9gYCSwvCqau#%=StdpRwQ94%G$17@7-7+t4 z==L&N4BIYm$!3Ze{LkdSZj^(sZq=E(3e^3gr!0!6TS_&1Yq z##aldrH5B^#RQZ`8)`{#4DHv^LA%3|6s>JEM%hQZ&!X_1F*S;01n?fLrYj4t0)@gH zScs%-&3XO$EU7WX3%uyF)KKgr7O5WyZD_=!Zl&J#=Cf~0@9}Gnjb#*TWo}h@JfwOF^fOPz$Z*y zhm@@=UodpqN%#tRHa|7)Pf#Y#>YCbD-6-sRJkP{5k>s1g=MvSU)7GlT&3g^_5tsZC zHg3^{KmMwaoxWHm!vLS_V@y9*d$+-f#<6HvNoo(d?$((X;47rqO=zL=02!-G&l#8R zrqvPQ_wfD%BFWZA$U74g<$Ok!GK(MZQdehAS1(%(me)e*#l|hXp;@x@QGM&`^F%AV z%!b06W!LVYpv8^g^3+f;M-mB^!nin$1(WsL49arIRfjq{L4I`6|!U1ax`3 zY(Z|$8_UAJ2PYDGcb4!xh&IWlwm<7eQ;)JvEyi~Ix??-~dKM~axaG_*Yq%i#7sVfO z@qrDqq)7wH0EqfNvwz#+jMBML+rRdy?lwE%iAnF|LuRy30lQRS9U@B#-#tuvtg?vg zp45zvF!+INMTUSDz!5@;HAEn)Cdz}k^byLV@Upl!u*`wnWe9+jh`O-$kZMjm?5G}g z&{tx;R6X0u+Xi;fcyvHa+b-4VTN>tN8q8f=XG|P97spN*FMxA%3@y;eJ1e`QFz5Aj zT9X^7d|WB>Bpg-HCyu@=3tEd!oxmjb1EF^>(NdMy0W)Bwd0)6=uss5p*8TA7O;hzN z9fD{uWvdJzH>*^fIXKUX8BZf;{X#)%HOp4NPHS~HI&>hTWA>jBhejh|R z(~nFc)j+J?Lk;%e(sWFo$r&R{6WNsQB)4lyvZ?px+_BRysHrGlDwCSBR1(LSYt8E) zDZ0DJI=liungHYX zGHju&N*-xcmq;s^NN?oA*LA~>!)evy)KeBfq>K|8bY)9a*Yy|2%u%|4$jGim5GdIf z09!z$zsIW#Y@|pbx10M?hhzxPum`4e`Pa*GzobcTEM$)>s}(hQhZ&5|-U%E@aL4^Cw)|V$UsZ@<4ES4(pv!&& zS<%sqz)%=`cQ5Mp*3zLtxI<7IMJOM z;>=B#o;)-rs4%K|Q=uS~Ew59yz9jW#t=3UQskd+oNbpXZY1T^@ok2)!blt?XfEKTM zSm+7^VN>jPZTFq^dMoe!aOJ>VQkkzzRC;t&c0T4ymAF&BKi~NVu*xS zaSt|gZS>aa5UkMa==E4cF^Sgf(%j}?XdZZefYh88eG7eB&7YZpX(>>Q8;8X`X+o+M zqfBIG)Qp_N_)^fy74|=k{*FwBAH217)r4X}15{<~7+(AYY0YK>QStvLU;bSiaUMQ) z&Fud{)Wc_ZL6<3iEn2yE2(ZUh>s)_1?jVPZSevFUgX2d-5;T2??u74JQT-t}E+IJr z8Ovvb-`5koh*7bPW)J_=Xz~6SdEcMt254oP1`GYh1CZiMI*Z}l9Y-m+1Th0sW6i}@ z{ULPi#pO#406cM%+!eRTGfKR>x}2)mI2B{;HMv?pgJht^}H%a1ckBIaBI8Pl4Uo zF{Uz;<_uB7Q)z9S`OA>2$Uk|{hRw8laZgp4OaduG_Cb_j7=vl3B3R4MK?@eIse@L7 zuSPVBBR56Qmz`G5Q5fQX-UE-D$)d=vFu=?7dMpm4WR>t4SW7INL3-g~ew2-pl*NB@ zz%?z{4m^yy1wUp`J#1tW2T3jTCR5DFf69tR$YYX%?-R$lroUYc70%nktT?R#>^fm6m(q(|h_{0!A*eONpvjSMU{ zNGHP}6P=MtQ$S(U%D1#cV@w84ghfFxoU7a_F}vvyTU)9{_f)3}xG8J&GHDJ^At;8T zfoqG)sRLQp?zi4iX17Ujn71}*w(Jpwzx8%vDj7UVhvbCSkjm5!$UiPdllf~SE02gE zZGqI+o|U4=3hg{rlV@KsHK#=d3llQ71vi!CJRXeDPh32-oy*9Iq#W~DV!dE*3`GPo zw3C!=H^8CLj9TMWSS#Y0kx&5}o5U008GLk4Efc_iYmK?Qf6L>2TMX(DrV!l!7B4Wo zb{LeAw6|b?nM{uuae(T@mteXiIz6RdErtZ!}qD58n<0i$xY)|m0cS( zhFsP(@LfW2vfuwA*PbvW)oJ`oa*mlN_=-WCkOz)jL z6NU``?~y!N;A#sdzF1MbIPpiz`w9=Ae+N@p-k90F^6+#W`{g4QXUb)beo-GF30%2$ z|CrF339+eo!K?t@_O^2n3GU?(1a|2_Dv84n{QD!O#!f%=?0&^wxI;S0nwk;I_pDPG34rlg+jSKDfAl zPK#jrzL)>2p;$%4aKiJPO7$5kbkC(UdVSdzR39%fvpZwSs13|gsmH@@+zZR9lro!_ zp~9YJv4L*oZlHlo*wc6;Vk8OC@aey*NSa9|u25L77n^7B7u96UjL>oBSVlV_xV81? zxG4x;U*8U}C0NMU5??!Ehwem1*F~zomj+g;TLEv}J*jE>Q&78vS($VxuOwJEeivN> zW3e=w&y*LU_**S@I21Iy&c=tM24IxQqAiwXXD~ z1Emv{4&NX_)=CFD6fh{xpDJl-eu#sqVNI zFntQxxU&<@+}?FeWQeP%VFV;^+hD(C#H;(Nr(zmpYRQ1)@i(Dp>l^ zaMga(&l>_QN2d5w2w5Tuu@O{|O0Z`9{A!xrWdbTCP-`vLob|@!BY! zxONI9+10T#DoahEMlBK{;WdxOHt5M;Kn81^ue#vu??_JI^N@5}=v>h=d zlaWhks8_QP1e1<=Qf}f~XQP98IO9-(qlNP;Owtb*v*lZ+KjvxM^1|sz5Y=hD1*sk` z4zJ#QHH+5tb68<>HAhev;ous{@@tMi?U;w4K*7&}4#tPRVmxx8DFJD84OLQH0M_Th zQXijle7j^&NB*1;(c@yC?V()uKN}h-4pGU)M#1pIB@0CO9QZhJVf?kri&xKDjHVk) z8wWiySIC?J6Bo%+W1fG`$=kFVSXGpj9-*RMB;JSLcrAdtOq*w?t}zdPi?n&Bx&X4_ zd9GvOFUh@+>nL0W$T^2ivGTG^fuR%utzVop-NA!ZW>(z^rRx}F>oTNh?nOD9aannt z<^%dEMo4Y4Nsy>g9}1Fd(^gt=vbf#2gu70P01+ff^PJ6^JY|kv{oRJ6InpbbM~;Of zHcKR2G3Xk@N6HW-v?oa5%>FI5!U}$qd1Paz*(neX(}E9*#JaA6eVy{-?a_Yuv5y0HaNLYT4NWL6eP{*pZ;b~2v5EfMregpW5Rx07C25Pi#Ih09SLRF zzc0WvuD#*MJ=eYuJ8Z)eoHDAs%wU_o^!7@4n9JPokaWeQj`#v&bVN9!ldwkzLrCwG zE9z!^?rl%3c^1l?DAPdoT!v!0li2S@?HMOEY(wmO+nHn29%lj8d(b!$fN;m1!woy5 zlECT)?WmIAZ0pflm)Xo{H^f}j&JU1K-@wd_RQBl5I*$fV?j9`pdGbRJd3D@&Ks;~IWa!Ay~81l5Q!XGW2}bM{UMY3 zJ=h|Na(u5-Pn-R!KP=1HtCAv3)lt{F(9TC9QlVaAS%hP#H_ai;n@(-y{bRx3**d#Obw#5_Pjej zcYkg&+;Rey=>0~prsTN0J&SO=l_DHJ>GS*MXkxOY?vc@s@g29$`qF!LX$(KOL-` z`(OSW@_9E+{p|BuqaKkfRt&FhC1q;atBn=cvq^vav(Uq$7+MRANYrnerLE4z5Za|!(>g0dcwP`E|Z=84?dL>?Y&fn zOZ>t1G9sJ%xO@MKvO@06+`PUq&fWfwbT%^{u ze&>*MyOWfFcbe{;zx86cN$q%WX^@vt)`!h=oBnUkKKhyZ|Hnx!1YsT`RCZ{bIHAL8%+oF_gJsn7 zQaTAKrm`_hOMzQAFw@9bbQO{7a>_^W;|tGP_q{#61pB5VV%%QAcGe2k0Du*1y`bgH z3!vq&04x%-N=MHqZxpB_6@yLnz(fCzPx^WRbITgFew4L}z-drN*a2>?#_AvLC06bf z32}$f28$u$fUCVWMCgGj*=r8ClEio4rj7Vvo=yi)%#h+dZ-KS***`2m_b@R<{vbQd z$86!sCIce}Vjy7C-Vq!LsOKO6dn!t_08)drCHg zbC+pU*EDHcn9j0U(;$rEbXl+ji(SagB*eY%ats~Y-F#TZxGt-Ves|JH2cK`Bx6Glw zMaK)06-RBFJ@hUI&#uT-2gCr|7^BEKb*j^|Ix##9kw+;#?qSZy#bfkqD6*}(GB zHu}j_mZu-bL4WtVw^gUqO4lzwX+q|}j8^RbYQD(7_fnb{qvRn+_0J5ibThetJr;)J z(wPr1c6Q#)zyMRLrgXr%-vIYPx$Ens)_#h>O}%5@D7>qwhBDbSyOyLBYMxcR2p>@y zK~*}H6@!jj4mUsEC;fyD2|9I8fP`<)mi-FMfz{z#AlPeX{b>;@HRNk-(408pT6v(8 ztnx2s9mb<+p{S`B0lbNnF2tAGqYSdj{wEqf-> zr9lk)@Yc*6mQ+3n%hw`?M&yU@?t>r2!Vn+3Vl+lGxy6&6F5KbSy-ipJd2ou3{A8EN z-}e&zmHsDiC`LielixyAY-IZ=Adi@c$)zj3u(Vux6+^{@=}qF1JJPCbc?0u@OjK0@ zNB1*`$`h_?E4OmFIlg}JAw2*ONSKLQ#lkIGxb^-5yw)?c;ywOt-a}AvsiOQ=4y13` zGlCGIKUVYYH$cxeBh4hvji-Ih|LPdjznUE@xNDnUjfenk0yt!(Wc|hud_+tei#z9dgbmPqphNC>$u}{ z8HPqMk;`0Fo`NeF?hLSAX<&>?cPy~D_~0q?QToS%KE{_nKap)82@AuqI%+!_PkewY z2nac|Ujm4i*E%fdmh|s&G#Z~&xdfQRt?=1J`|1SMyU5yQI|YYgr^qE?>X5)grB{{L z7srK?DHf!|VC{%F2P%?5>74D!z8rXN7H(M_XN_xwTVvy7TM=HG>(IN=lJN**}YJhny> zi!{mUt9hYdPo`GF(^~l!$ivAz6hGt;T1Il_wg*xJmRxMV) z*_XhjHmFy!Y#N=?!of;Jn{B|2e2o(B zf}GVnoSiwy3gUg*v2k)8fSp6r# zZ!S>RPuPN`V8KRpHb?qnF|6Lsyxh?GNwS165ya)Tur9d{UOjJpn(Fysf-FwMS&ys> zFo9^6?TuS0@$N$JCksB#Rl*W^B8<&DvLBR!0rSj#G0hfGVMFn&;4rP^ zI=Al|!Q?65%GQBl5zm_A!MnElD+Dj<9{iHgheWV!_$CTBVeo}HE_E_c|Nz=FQcto%&ljQU5-Hgq$v(Jkh*7sIX5zEd;Y z^1IEpnk@980V*f^{6Bk8fe#})Oa~y&Z`;b*d1xqiV$h%6yBQApg%h0Z6j zBSEvKKh=C&T?P8!=##wk0wI8_)#V=$}sz2jk$f~`13#RDEA&doE?@u zx?{WtTgP~x4oo12B%(kzVU(?weGuWy&PpIUP&;Ou!&M?Q1GSi zy{4pzFMTj_$sTbJ4=GcS88JJU&PJR#+AS+=aq>Wb9h89ize(vGO|wO9kAXANp_Q6@ z_5D-m0YgruJ@uWwQOdSibopswC0fq4smrrZ+XMDWXnpD|0lh;KxgI~G7K8j=HYwv6 zh!oIsHn+WZ%^DWXFdo(B<0W4WhgiGPYP+PV15(is`3Pti*yAYOaN+#ydm-Vr^1&d; z?hLd+?0wzB0+2Z!xsh>GbE-D!ldrd=+*>or(P0d(PI|ojipL3YFoCfVpS@_5j^cPV zzV8v~keDJ^)ZjcM;2}$=a2E7z>nGHP*=t*L*H_1#=hvd!{^QQ2_A`1f+XR0f%juw* zE<0XO+G)Fb4yxX`LMhcAJTCgj7yG+N!@{rLIZ9*a+%-_LMfhx$ZoycHqxBd#j&1~% zhmvME*<{`I+8blVRnKJr_{?>3pvmHYk|_Uhy^i&k@{fdJhZHIVy4L}D(M5-G;yS*9 z9dE>t=$rn9QjMri-J08dX2)}RjfvP1HL6#V_#)9#-W_dM^qWYz9;3V$pP{&O=W)fg zqYSZ&!}KcknIinesd(xx_d0U!zLD*hC0yadEr)+M3A}Z0egVy4u69QdV0gWsI1^A+ zb#{kE#{yjFQE+Z0W$%ZRIBVA@A_*W{f^H~*=x18-E_CHiUtc_}sx8=0~;vwh#mFyWw4NmYVQ zq}RzG^goah6KV0eD4pl_8saX|mc0{MIwD>$If+s&d$by)_~DAnjXC#_l9i)l#p##K7*fOT3_pycj<1Bn5Ap5WnIvUO=m-UBDL8J4z)m2x>S zWuSP!kYWaNwlZzCSI;_e2F?}|jXVqx7A_QY%hib^Jc0W!DnwJ#5vlIe8QX+(k?G|h z{ovlo5Kh%wMr(+_xl#w}&!D7f7Qy4Aj-NonbAdb9)O!n!g+#trLSx}LJmtx!4m!VRDlYcf zUrT%9L<3_-eM(y-WeQ;dr8KhD2Xw8)R=h9Z*md2oJuBGHn*H2uB+!)4H9h5 z5-~7gR$mHOovhE_1)s^?8DH>Q1Gi7we2947mCdFyP?>{m{WdlpzYNLceI+^II|}u8 z(zO{9gV2G#-=^Revzv?a*lQyhnGleYP7q38e=Xtd6N*po{o9&0AqrkzA~5MlXH9@r zshi4>kd7*a*-S^5{l?=!%jqBxYZGGR&KphZb@FZypqT0<{C5^#-bO9iRgbIYVADa` z|5}ipeV0DK4stEpF$s)x^>>zCYWtp|?r4BmP`v$_wAY0ar#7#5qC1fE^J+ z4F2cH)`$`_jw*`YCR9o-c?^UDd|LbPy0ZQzWQmo0b`9i$j}p5tEE_N!TboZn7p=zZN6sAF_$zyDGtrqAj~7y z2?VzkIomzSFT&h@!8?w=J2Na)NW-~dFTkFg=M31KS-%|?64Idr&Ik)Mo{W-vdYTh^ zfCL$|mf_@F|3q#e%9A@pik^MD=;U?HX3-|WhE4!eoD&C@V3E_}12B7KQc`D5!BC1V zUUMKidh?3HU@e262LCO;mdqJJHKCx|8SF`&IUMr5x4elx>}yhQYx^cOb-iSm6>CU{_bNt5@=kQv)& zSf%sbBtvw=ju%>|((msP2D@W&L!le7uR9fZeBwf_2Fga&pukJQ*&oBDig_G=W37_X zC{H{~FkufTucy_Ay&lU-4&K$AMm|8$paet@Knr^Bnvv=Ie}u|OE#^S31*cR*;J<{W zJ1&X_Gp#MTVp{brlW5K{NM8QG#`NRd5DzGp&k3=tf71X^OumbhLVdI_c=4Jt$I)t1 z;{RM06&u+2Gk!)Mez4uY6~yt53?$7>TG>y;&elF~{bXmvrh^+iK}1;og0G)s4p}KK zG#YZDCcH8Vx+k$}z}_~Fq%cSM=f74!e6Zab#mFSal#}+k$bfd!K_8|!`bp~P#|5o7 zRo1b;RM1jxA8)e`9hF<^GQ`sa*wT4fO&?NKzeXBw5S;Y``XuJ#(Cpz>F$WAXtPb0cDG2EUCG@Dt-A^}+ z0((s$2twTK6^AMmQnFY7cP=#v8)&e;ZVT$U%-GpuLlGFTW=!hGTP~GVoTBA=D24+O zACham;-`RNr90;o9md+g&z$kCwKBWB+JCwhW9@Dlh}`2KSVe&Zw?mBd+G(?doOXx} zyjkYo4E}zQ^E0xQwS10p140m9|EYpg81s_bU}PoerK-uruTT}AD#Gl2=Np&L0KjO* zX%h>BaCBK2brbt&Q&E)#Ma_12e_UBER(R%T#0gq;s0W)+mzI1H3VkhcYMweIKo7mR z!w!H+U{zyJsP@b8w2XgGkRP7SSqO5fmMaoOZ{2M+`!|&3aP_1gad&L zaL0@6R4suDuwbH!s~{(HnLur#l4Ci&%-M=d9vfJ63vXk6Rey-I6lf#?F+ST>7-Uy4 z^YI2s)s^c$eUmKm&@;G{Y9n0Ye2?%9Nq^brCVzndIjkG$2@r<75QuVwSTCY_8fJAD zN6x-w0rcX0qPHFpLfmUKY4l)rC9|0X0<-<%~#_6$d#<1U>0zwtiu~Kv#8S;rg^ScWsF%MpPx4_`&Rd@dK)aKND z?EC;sK@~%SA!TiswffeCpT-S>MV9!xwe;vao1bS;@Eu|VDfo;)V0L4mZi>Mf#G7K1 zJ-#SUn&HnE-#19JXD-!2}Z$!>d zj5^HFb#)`?Lx=ZDs?ob-*P7_XEXu_i|31i~+(0&;;S44|!(3`4v+)O!R%&3S z;W?%`3j~l(r)vy_)S2+mu!X;CHs#vaf~=<0vI?ZX!y+C4T=_+R4av#yFRSyQA=jzJ zO1iT!8)KXJJ)Tpkic@+W-lo#-o--Lu)rjYdJZ9#OsbNWsrJ)nJaWTO9i9VqPjC&E! zt=BRQw{4f5r5EXZZ!RZ5HxL(dET%6(6vuuRmimF=rMJYm_NR0Y8kOP!O3jTvJOBs- z7*uDX4JLjK=%F1c)cu1G;k-v0!4Tf08W8CSH#YOE;zj4QjEa_`ns3A}x!93Uw^`J^ z$K~XQg0r5n-?sAMMy`)af2y2kEy>%@-_7aymwjf&FaPy8+XhDf2@swio)mS%4GgCkubn~h`A0qZ@N2m#dKQ2OX?-ffB@Y03ebyc z{EXF%s@q)yq~KS&D#A=Q>VN~?NmBHoPyETlwhsn-Mpf^X>Q>lL*P)3yjxrAGbV#_* zx-9_*dH~(_U(hQ-w>&CNP;mbX*jL?7<#NzKz44{}V^UV2qG)@6f8tb4UzD4og6cYE zh|qw)RZKSA#rWR333~nSRrwSC9{TQ+zQi2b!F-_rh#T}06=a>J_-$;-(#oy_da*jV zeBp2+qInRTliqOYO+4Ua#S{~DQ1mh0khcza1jTnQOM}&j#83SMG?Gfa2y-iQvhj)r zYXJ-yKpW}g>E?q1#7e+Yj*Q5muQcqFAN@%*Ui?yiJHPR@Mlfp#Hgk5`2VoQ)GbyH?6-p3 zs;np5XWysfz?^QA#r$uz+DP+j3)a4$x7EEt)WvVhrjs&ncS>t#6^tPYuPttPn+%=DlUC}?Pw{5pP9#n` z!}tpzzZO&$cpqmOGrhyz&v_}mLJ=Cf4VEUa&-P0CbfHIFF93M~$+$qT=5#VU1Jlr; zNby~{O{|RkXcXWFcnnx!SfOZ|>+WucbTcG1e z0c;JEtPbgOA1q1ahXW>0z0ky$H8xG+C- z&A@uro@%&c{W$xt$+N$#%3nVO(M{ra+k<&fhhb5;9D4-w$Nw-OVOJ5?6@r?SLrr~Q za01el(!8gR$`mUK9jzk0SGlpb5J;|mAQ=3L-5>XCPFmzt9vxF3C8J2}kiSR1!}f!N z6Zyrwqhl&xyA+Y3o9I_`Exlm#?HIX)n@&Ihn#a&wTR!h+ZMXJ@QcY}TOc8%~Xx;zm z7v{nFI$SlO^7>xh6=y7<8%BeeKbr+eI!d20vgy0mZaEfY^{;A;O96iD%S=F=Y3M^U zOaYj+bWn+zLqVmfAX%-1nEfbpQsHyI=W>SO)*(_;23r(O56n4lJYdf6S%ZWTqy(}l zrN>VryJx<97LV%US7@_Wuu@+3q)+eO{O2xe%^Gt2+#Q|;FN6PaG)?%h0Hr63bXaQ{wI%^lq)uY znsx~mM92u;GN%MmVS41+U!v3a1SN~#na^agS(IMdZ_nB%6svCp^CM#eb_*or-Osqy z4lJTtN!;%T1obX!NSB1i)1$h5MxeaSTXn`w(DNb>qA^zy^KQCrxh~FesU&(eHHLCk z82k0(mwbKe=hHtwNL=m|-CnCs0}1n$Q}Ta|z!mwLj5=x_fx0VP9RR5?oH|=(#XnwE zK&XwZ>PSobjiel^_tYq^UhdY`)9W|28CF$^A)>8xNP8bIveZii&HFWBy6fKK1fBb= z#P}f8nw%M^uPi8Dh+r^ET?qmpyLXx*5u{%w9Gixuyvr0$xw^C&U|AR=)a_c**U$M7 zgvULqTQI$`9$hDw6zp@DhT0l5<_Y6k#Yq0Wxe4_IDWJWkdNO_pdt8(OD8F(lDR>@fCoY+hHX_oPdrRe zuY@NhiR^|XzTfII;w^DE8zny1SOOXaZ`65MIRhUxfgRYMW^R4Y_l_+2b+Ut5nmW&o zapc(6-m+3m#MAPYXk>s>g+onY4t5f!?UD%UYa+GtNU)+Ds@f#@n;431XEaL|Z??i5 zZd~r2%}1|PON)436XCZ657be`JCbTUVHD`Y8K}502oFE+4qxkw9SlfA*KrBej;X~t zZ|LY{B_MYh#l$_PHBF%;igsWwZm3MNucCw$Eko}qGx@VQ^F<7qSys2dpWvDd^gvI% z@7&%f*zspi*3#&RTKHfwI8w9$YWEy>nnqkb>Z-5i;b)Ni(!>P=UkOWvikW{xN%@9| z#hMlq;0{Q&Jca{*#|-o>@2b_~VcIQQy!b9WHd2jy9Nt?rG6v7X4Apy$bAie^yGDrH zX0NF98+iB>s9NG%IdYLfaB6Z=mo7;mga-Q+SUUo@p$)ErS#4~bq~skwCJ*5u0YWAm zz9MPaa3MzQMaNMoP?u^A$gdXpgVq+*50i?Z=iM($K6Q+NlVz_^&!X`HSzjitOj1X> z65(!lmxt{7KW3hTm{=iD_R`x=OfEG*6z}Q(h?KTsc74szB(y=P13B9Sn3hwm)Bw7T zAk~!#DYbF)a$LgG!#tluB-3I-T&*~OhoCzO%hQOoTa}x9^rTok2E7XIfp4It=Wj)@ zR%6}i>-(rAABdFTo}?jMp)qb$Ykmi&NyqT{%D^SYtZzJt1yX{G*A6Ib=#rX)rS__h|fI8 zavcIR3nj7UA%Q#cN;~=@% zvuB-Cy>1(e%#p7o?E#037jr^*cM1{8W6wi_0Bti=E~M2%+&uJv^EFdJUToHBZgxfS z-{~`u?v{dU!25IoVWYIDcoVTG$iRu$Yu0i!hXx}(UMKuDa7(JO#Ee^9z_bdGnM;5` zQXQ#3;7sG`3x)|pq)c=xjVW@Hp!0O++E>7)54$v31R1ca?LFgNkrgt!N&eki8yI5G#$Et(uDOLv?x!s z0VI9RdLqAEF{!_qNkQz(nOPZiU%U82eBYj%svCR(YpRd5*aH7;eo9Ri=GkpVl}@g3 zvqq#t(UoMcguBWFXg$6@Xko~4%hq>q@2iMFR z$;x=s5wk7JWgVnrA=podaEBN^5#YkLhc}OY@5(THJnu2Yx>XpyS*~mKn*^eS?DBXO zBtJv4Nb>Ae0~En&m!jYOy~~(ghuDWSs;b$k^PeQKr|VTt+`Dm0Gm?@>iaszob$?H# z_YOkqtT4Xo7XEUvb8n+0reN%w9Zw)3SOk3+HkB#u0+&A*9P-fSHrRb!xndN z>uLr9SMq_F*$T9}G9rB|vu;)J?OjfyOM$nDgLABmwdaCH3tPOMvafi((i%%jFKVYk zbmNl34pBDu2UYY;y0&M1_AZEKM%cT{4>0w9VhOoZhI9$sAq`?ljm3CElkgHuoFE+c z0=`PtzL|b4ZIZG^O`?7y%Ox(afCR2P7f!F;M4hT&mQJjQ$e>}p2k(82|Gzu%;X-~w z6|ISlLIW_^udpMu;OIuhtdhf4RTMB7@L6+dShkM5$_hGyg#XQ{;}C<)@%UVyn#>5- z0TtF0y@oeZ9iEdi&Lc-OpvxQy;|UXMrAKu`Nsj#ST>ytse7S^bD?*=Xz^%;Z)tc1o zh~H*YxN5=8Hi2(5CG#}(gkOfmU55V)bsJ`ydi2e3WYsW-o5I z=;|7N8fW5&X91H-UsSm+|2}VEH<_>QiOmx}&J3Opo54i=MaUpvITL>tc2%gT9QH>>A@F1Vk9B%8iB)*` zb4v9rdj#D|E{j@wns1YzG)&_b8YLO6At7szqbZh#SR!fBoK1fl>3&zx7ehv*C}=V$ zS#_yfxQuSz)++$1w!`Zot>}3j4&FV7L}ZkE24r?EDF}}j8S8Eo_cnLfCVk9&L>yno z`TUR8GzU(N5jjxa%`BTU_jv)HHxf1*48!?^03&j%1|ZnPYn`r=<8Uz}di*;e(gFA; zOf9hB6j`6v9~l*ZO{ppW*-g06rofcLLkwK)zn|gszMx9S%YayT<|+Bk z%6yDB+cPR3yMqLuWcMv;@8@Dga2AH%XVt$WUZfKaK#vM1@xm<@eb+~{E;xj$5Hr~< z4+}JE5GSiG{VnJY;doTn)OL1QC`zX%Hqn6}{7v7US9%g+C-tNtlN86xX;_44qiQ3e z5p%7|^hx!v-0B#7`?AE-g^;<>{HN2+K5CKxePF1G8OVwRl`)neNzqbT z@XkzD@9x@S1a{0ZWpBGXBo!7vUuAs-k8{iuw<0N%Ys2Hx%`Hjq%}4qm2c&+Q!S^%C z(mL|d*96pz=f&dO1`Z#Kjbre=VjYql$f3vrB5 z$pr#9M7nMCcX9om*RBw5vtfXDV+*zd)CesYLvEP2Hc@)yc(pNKAd1^H>75ig{iNC18E6&UIjvcfZY~CElfK>Qgipb%Sp6`=3kR($xq+SBXELpiw2bQc|8XTr_<^rizmIU$tUQ zUCx#aJ)Y?JFsGwa4oquE+vz$HCna>E8O>U3kvmp&qp`pR0nE0xr!VrwViN==h8IlW zT;;A!v!=j6gTi?p|2anPBZ1ft5JQm^?YKS+dcTyoehNo;a5KCf+Jpb2rDd-L=~pz< zJ(h6SC;gQLvlC)B2m}4Axw&U3Z5(l5Ybl|P zer4TiXr%Ft!6YzWk3hhN$$RnWKGVM}MdT1?=5%nZOK@E(;K`ueUjN@k^_}WxuBdyc zw)}^WV1FBiedp*?pASum(3**pD5Du@ra-OBEhkWBZ}nD}zB`@8TJrr_#=MSNlNd)E9K($C?0j-LhCUj6TqA zb4y{#g+hGn(VtSAcP*OELlcr(Wh-$wAPI+6N36?e_!Y1o{EVm%-DQh@jP5}+J)PK} z=rx_QTI1_N#KF|r*3ZLH`uN_`6n$!!2(MRL%<(*&uSGX!hunLqkk&c!3TkMyl6*br z(i|iJhKjX^kc97G{U-A|mx@9=>jC}oz~_ET*EGp>Di;nb*vZiQu+Pj~w@4+!6H+4r z#+ZvN*Z7&tvzqW~B5BkKBcE{{p}C*jJm74WI%{vH#J{z7gY*zu9P6v?5*6T`rS)*z zWAKci3Ir*+4nPJvUXBrLa|sgk=vUgf;l&`pi|~bwn=%mh5Q-6&r`s0NWZ-+OC90EG zQRvrpF=SvCo3Ze=^a_4^YJpx|%sq<8y0U!oz6eWD%Dp~iKu4-(4z#jRAHB_PV|K6# zHRhv$7zIDs##dVd^J-A0a5)-T%i33%2+0aX8hfIt`(l#XE*W6oPR0pSEwtCq}Urz7>!e5 zp-l#KQkR!%_3)lwNUyJ0lthvgJ`>T^gp>FNY=!j#Y=}CPELhCCCGV0XNe@k2eo%?) zL*a)9H|fH1AHGX$LN=&Zix)M~in8XqrWO3-P0Cv?<*5kG@{B#`Y;!_e?!%B$PAx_D zCLXY{)xLuMLN|fG%1i~O8Omi3Oxpp#BW^j2-~D)Ck0u5g``Gi4Y-rC1#u?9J$;kSE znd~?7@(~T-bISb%Wq?i)v@+bRiO6SsrAkt5C%rzSL%0b@*WKUh24VCM0@OP*}*{Gu74uL>YIsa$N*SirQs zUv}LF{aNVe0Ad3h^O*)%D8WvdNxRc12r~{i*tn40p?e{s2WFGy5_+rA`?G#dS z5-nU9ntyRsm=vIA@2eo%y~9QKxMgE5SFIFFu3`n>#`p4tuIS+MxZ@Fv-8lQcp8*7e zTMA;^gA*Z@N}N&>5=#H91gx(>M6#RWp%pM{_HbewlsbagpjahTLHTsmx&l911UXq~ z5YkP13pTu{`4EL=kZ7o5fR<5FSI~2WO+7MALBSog3s4qqv$T6|f|8$+a>U*w5QU0S z&j&aR-wT<%6b_R!47)Q-MvT6WhUW|h^;+k`P_joxHZm9Y=0O@uY7Kk&+SgLyX$rD0 zQgfKQOfO8#=_-SAk-h-2R14M~K-` z9e!pmlweH!&UcT}DU3smuTiBH=$J!yyo3!ZGb zySfr!gsc`~OhdoNWHW3XtR)7r7#sy>?oqNLMgjAg&j#(d?C2)8ecgOJbeO*tBWgXd zPPzy&0;0ULDX?8A+$7G1MYGQtYf>C8=zgz&C3&1-4=~Rj07pQ$ zzx&(sRD>_o6?h9Xk!0HnA^BO7QPwn|vY8b@ju*|ocG`UJE|}q;4N;pI65hW5mozz3 zrd|ftb=&wZ{(qovpXz5J!Am#F>W#s&yi{d$uT+RLfJL%s))>mF?&zWs7(Oxdyn879 zEHztZ3)#zu+;nui%tixXkk758EA35{FfLvlRr8t`D*zRqinjEUXVOkMMNb!%< zsQ&Gwa5mFuBmhjt_4+2Epf;)3$XjOZGI=RVI~+~_Is z_ZC@zW=SlbDbhw!B|Ic(ysX#+-Wgus{dw+p;lOim40ec>1CQAXA70CSr^mPX34@e2 z2v>IC@7|v3?NPst${>({f+$)eM2HjAfq0rEQY%t~JR5*f^5R9+$iFY6&O5w<)p#N= zeJ)eFJ}TmKfsu5s*lqf=$gLK~{7z!h1Z*^Rr0luxQS4BJ1)JvCnBWj+zhn!>>0`*u zgWGoN7jg!&n5SY;ah(fH*1cc;xGk}rag+tg=pux66>Vb=3z8J?j6gDmn8+t&n&($AJkm^Pxcz!R~- z4pLODN&uG2-`kH0c-~#1qH`etAIJgnxp7QjN*h%;5A>mZHZ5)%{ZJG4T7$50Y5bk5 zCtC9lj2I0bLLQPsS8&`W`^#3Kp!t5{N;rzsGt#($U!R9G<|f%o6myt5#cFML-GKe? zf30|N`cGL{z4?h?mRdrl1!9>O7J-q z3AVb+&0{&3ryg;3`<|KuFgKLe}3(~`! zlopqWyBYjRB|;AwsZo*fYC6w$D7}6a`If@z02HzA+RdbJMBLwb#v(>$7h+pu-;)Bf zTWzXdlN#c$`tw|eI}R$59rEPUZp5#Yi(cq|9VTQtKEmK^s>1x}k$h6K0Xw+8GXSOfK6MyoRrhNE!Us;C zp!W~a12s3Qk1SR%&g;f54C(6;+o27aL-lIU52tc@x>2cZCQHO+p?HXt!ugn+rXon= zjPQKRzVoDbhko)(A3IP7j7Yu8^Ulk;vvluw@PBdV!7LM$9lBz<6yA;8lXEwPSYwbh z5|5B&c(BB6;dGnpFr#Q(itG<=&KCT2WXkc zrsFc9p;gkfKg-ss@L2t3+;MH_3X!lE*SjnCfRR4><-$#2AnR2Jo6Z#(&~r){q5}Wt zsj4_?ef%-s)v(b0sS?DQttI-TMV67t5Jt#CWNG=#1)+Q0oeNlCySfE!#^c}_{HcDY zz}pv%E9^AzCgbzX5@ni}WOUQx9Lent3yekN5*# zsAilmcrrhR>s`V-6yXzhCx45|jHsiGrK{wmS%uZ&mLrUuHub^i6T>8OrNGC^sCKy^e#%O957%kjd$JM&SEbn zx|z-8n01t3JYQ0x-|QX(T&Mf3h19u`bKY1aE2pI$kA>T4lF4`=B+7iHv+<&Us*-@& zGtiZOC;fGdYtOwzr0wNt+!by8+1RD>%@*~TOkE{X(denMa?1TfxhDMn8LL0LcS*L& z$^K=vuDNQ^e{GduH*qcy(Ld612CXL?b!?9KFu6e|$AmkIrVeo*AlET1E%xIcBfwdP zP*(xp!-I-JPg)N=^!g63c9th@>rqe(7{&LlbLg(3iV}fV)4$n$eI5P3kDiXAkZ^JZ zh-5&ym34OHQ<3wb3H!9$By5vV{WZ8zt>DzrG~MMWREuu+3u(2S8UUZ=@SeIhs`M~4 z{(j$z%?x}A4^n*Y-r}679XNxbzg0A5sag3QJZq?`M>onAiq?Lu5E*Z%d%-2?S8Kpl z=kJQclTTb1dV_d>Z;TS5kHASGRE8>p1DV((|5shqf46NCp{y!rQGLjRr^e*8@8WMc z7)fq%8)zLeOh8OW_+{{pm&gSYFz#S}`wm|V-c$8yjO1$s@o8*DH2eFH{?##PqX~iw z!|RoW!K^da)%D5oLee}XHj8ARp_h=%d7Z8c7E3yIm#T#1KfO}C^c~`$f22m1 zMH5H>U+ww3%hurJ6m+8IRnNUS;~XpmZK2wRLs<9O8kZ&(s^P~M$XF7j@P`yroI<-J zUoxO~87z*^(BZWi#aX0Q#Hljkv&H~(X5i* zagMMF$rUt6FF!`tZn-E8IYP4HtSoHn^=ZZp(|2N!HM`;aDe<4TVz|nqnK-1iZT>*O zsMXRN;QDp?BQ)M_ckx~cnJ=e(&+A5oGhNz64v0Gt+<&L9Jn`4{6q8dtG^wERqx4m>r^qTv*!6Q}??$nf)_WQC{E1hHUc0{ue46&(0VEquxU<7x z0EdQ-P#aotj~fEkV?XN8AV^6UCM1K)iy7@-J1;@&9_rqX-!KgJO7tieZ*a0?8 zIP?-)rfWU@gQ`^Vua?TfNMAlvePZ^iP*V}n#mlU|wHXKb{xR}wuc}Q*ZW64c96dui z56Y;*{(!D@T8Q~c+|xQkP+2VW;QaF%C)d&r$jII4JZ!F!!t4cX1K%^HpiJe(khCtw zSC3)WuVWDau5oJ@uDsiPX2ccAouJo=>n_5M931z^8*jDnnvrf1^d9qZaOd0N`|x$6;asV>UGQHv(|}i5Y=XFNg5e&8dpzh zLFyf{d|kaQJg&|hP1FcRph$z6#gDaIB?H9_v0vr=lL;xrMQoVCK`|-jo|>vR+&?`O zI1cbC@~S>)!>rty(ClbeIyCU@k=kFN$)5%wzW;45$;o_*O`v z+zp-9f*mZM&qsPwPb$*f!PlAl*y!cCV1}_jKj|$dg)Mj+Y>g7Rp{Gq zSN}xZMsqnOHD|7O(|>++@@}P}sCqcg1j73ph|T3&ksJi8wWmgzD@{u;`N_+IuEp+# zu%nKsJ#42dO%thMtcMMs4Dp2>TodryC*aR|BV7TS(>un=?x#!^=c`L$8VNa)+GB;? zaFL)70FXm3m;;7qV*$0xM+&n220iolT3>DnVSHO=j81wul?VL5qn2<-WPky=3UrLn zZs@F_{j){9{Y^-KbV99M|WrGCaxc|-CH0JW284ACTmH=Hse>UX_ z%_Raq7|RTlzk7!OE@kupwQ zTGIuX^>q)( zl7NDM&08+U9vJq%?=N7NX?}DxL7o&Iug`Q939_M&zo9Q-b(mn|ENBv=)#({UWCc8e@~9+c1|s7B!l$2+?lKS~o9r|1@7<>VgFC&E@id z3Z}!RDepo8F8=uP!ieG@$OdIS47#p|t+H>#Yhu!+{+pq`se2xVy~7m2lSSFf=lUc_ z4;D`LOR)>g$chM%iSQP+Fcoo=cU*y0s|15Mxr1QcjG;WdUJRmA^hg$6F>DsZ@!fFg ztGKxf(B8J;`u3sF#malqcA+U=zq9fG67%{T2QH3ZOvu1iD!C&8WgU7ZJY|YLr@TcM zO@f0Z`sc~9X%dB@pG0dkymA;bH#Fe?%qVy5%4MTAjIdMH1v17+@}GztjvDXr18m!?F}+kPG_>4 z({z%TZXd$m7*F!|uPrJ*t_=YIIg*zzK#_6oYBtNtwFE7NUe~%pE`wG6pT)#{u6km3 zuD_gzY)=P#;_)I^Y0apIkY{+8*T(@O2;fc}S^)TNI;Q?O6LsE-5dL5G^q>8%)_yg_ zl(!Xvo~#*Qdf9Q8cPH{r-?H!`8~2|BxRe{{EZt6>N!MLIe2;Mhr*jCan0It_G2dMW zWMtDA&G#FA1P_gvi9K8ouYz>d1 z6r7>kFV+bo&3tG$m5*Y})9HWaWvzwxyscKJDRm6)Oc8k7-Ow8P94~E+x~D}oSfAb@ z8uX7RR~CE`Pt-|IN8_GMVe*cYK{ZdAn4HJyeD^g=o>AVT(n<69M2g#-5N`|z%Q|w} zaw5HzI)!y26?B92WjnfzYk63`^Ord~9&i_w*2*m?R^TSMwSY3Tf|#t}7pG7 z{LpQ4q$!ZSE!HZ)2r3}gWE`Od+VY!3-=JDMtB(7~@XTQsx}0EU;J$8XY}pmWF-z%~ zwAgR2bUG>Gb}ji?AK2yGwpN@VsRp1iVfHfWiBNy#-=90bbQS`|4AM9e^?2;^m@r1S~poAe8TxOan=c@#8;5(9Pf_ZBLOAD|Gs)Q zLaT-`5=tXf_le0_c^oA74S500jbm+A(z-Td2=`povrg}bNu5pSOw^AUFUr@ zeHCV!6jxj(=CHlPCwd8zKm6~dq=||Ln4=Y49OSMy!A{NxH>o*5v;A!WC)8=qST+sd z7f2Ua*Xl0kr%{Qq+*1Py;hp`c9s-tKHx4zCHt>iPp4pjIMq?J@g?aUk;y@G8YRz8B z2qxV{6$E_nkSW>}O=VCtu-kycn8Byc5KQQ!dW0d0?i7^2lU_E$l;;U9#TY96(shJD zQcKryAGIC7X-D_y(i&;na-NTr?E}f@Bj&)|^7cg)V49DEDA}n$-NnC)lE| z469+5sduwv-Znf+Kct!Y%=?fa?F>g9h**V17V9E@bCAq?MAzcL0sOp^uakdAj&>`G zY>HM23vhl&Mq+Rx>?H^ShpSzaP7tf^2Qe3XXH zicGns{349#^UbBQCm(bG_A?soma1v8^I|m`LqiZX3Q(I6rka<`FnfvunK9I`fhd86 z%=2okcq7u5q&i-@vUdPqCj_w^33}Ew*T}2Vp|D)?&uO|XgQuG7{XEfU%dCZQvnmC_ugmxEjwuh%or z^{Y>OY^}sqO26a{Ek*qJ zVqB`zU`H$)l1%T?$W|{S?DIKa6|5> zOe7@F-V=@V0>Wy;60L~BBIK&yOpS&wl?ELD6e2KC5OVq#s)@u>%=cqqp{EUn&*|)r zC1XB{+fOVwrEKUGz6x>Sc5#yCEwcg;LAKe8yzLa+h)b^?~So0 zTnl*9D-yx;raHWsRd)rWRIi05)Fzy&k7n#bc_Uj(%FON~nz0_;)L5*j<9W~gFT=cd z7h9>+Zn2|a&Y$aze<^D=2Tq4k;Z}82#A1^S=qYoSyM!8<0nv*Yh?-`71)jv(U99P* zhaib_Pfes6=8$S^&G|?3+&J53D|OAuyW7???3AJQ_q-A_?Mo7s?@DTC*odfE&guDS zcE3a&VKeryA#iArNyRm@zQlT;awjKM?G%k(u?!M&i~Knt&!}~}lW1CI;+!*HU{;|o zAz2WG(_-ZlT?-cfzo5cB7GMij!_Qt0P_AyMVs|T2^ek_@Q_Mj;(z_UsPiI;rQ5H?S z|JJc3>6%p3Gg`)zf=ds&s;&{gVA~a>sa^?54~`i=|0ETQfFczOF0DE@0eSr@fA~#v zF#CY4ss@ccBQ-$mH(_zAfM-AYFA#>56ht|7gT~x1JH-eEH~p`Xtl`CYAk&@NR{5Db zUw6N^Pq5!!ML{rVHYh3{*FXw%0$-AeLUGU_u!MoO%37(S0qPwgY5BQa0-~!L`A8nE{FMK*r5yI7uej{Y8z| z<#^T6&(}+iEOQy_AWzl;nKZw~8K0&HTa_xemZa0rb_gj4!=0H|^DS6fpJ)Z6lDnHH zkbS>gx;G`sAGUsv#Am5fOmAIj`+WYD&XbyTg1N;lE|ipe8?)GQM~*kp9dzR9qfT4k z7PZhGqhd(!F|r{UWrq9|D2L0g$>1Bu;F9MPGY++-YbYEj?9`~&7qX2x&NQ>|1xt)c zTDl@A*{YPJMN-(WE^@K4{RSd!o525o356Wi{9%D-Sm@}QUBAOp18xaX=HY&!y7pjn zy`-284yn8}1#Rsd$hwg9P~U0KgHRXbof0Uqgdn5u7}_ zR_R4AI61=HH;5pBPSY2kbXp7j2`VlDa4=&l%6+h4s6TdjzkwOKSgG)tPyJfx6|R)& z1v@&$S|P@)J^C?Ix3yh z;wdGEa3(F7nH*U*zb!nYH8?V)j%LR!jXyS5HydMJV7)g~hj_PdpWPV$GQeRzAV|Rc z#K1IQ!~>Wi&$-gk>ez(r2ERca717G`h@^tBnx4w0gtk=sZ^l15BhJs~BafDP?XiN|3@IE*LpnmyoeXV3=+kX&p z$*VD=lPC}?sB75__4?1aDF4lhFn70Wx=DzyQHx~^*f=T60)P&mt2RR}g;__#faAR@ zU3Kqx-T=)O^nt{`5QX;XJCt|8(KNHCom`D9d!i4y9!p!XRh#mfwFFno-%X*>Eu@T5 zoDcEh!D2hDdyLx`uGVwHjMd&=^7?iyH8ixXqX;<(x!jjq2n&;qE9QS3R5E#lFPX>S zH2xQqk%JxO(^lU&NO=kzebwruk@F`8GOYcrFr`gouhRNdtE#H`s26;w=GGTJOqhBM zX<|F}G@^b0_r4YPPM9D-E_cSII5~#?JsY z;TFUA={CwAc3Q$6Gg{+E2$rAXKyWK{W17WqDvLGfmPUzKo*g*n4?P#;28=J=kjku0>^c$qUB8@Hjs4K(ACT- zfD$KtE%!tHaYi$)tWL8=fV`Di7(h&22CQ;e#MJqdXH6a7s!)7M8@E?mFkeihKHj~byqmR&+y5BZXHtE^^jesWM&SDIN7Dc zYIz2A_MV$^hE47N{<#hqJtg<9IsYt~hmy<6c^0`-P+$UBrWeZRNysPI{W{C^oA^)e z$1|NIQRfJVnVDH2=bsxN;BnlElArqhEOh|XLD$m$IE1MGm)!pZbX?&G%>1(ZYw0`z3Y)td{QRReP+ZW2pT z!C8u?mna3&_@VzBSRj76{Z*4i*sYXYIQ4m&;v*+uQ1i)#|L+B{4S_9iTgO=F#a|s) zu=a62i$SZdoppLX9pi>m%cl8#goyTaKsm)ZCyZjX*)15d<-eG8#kKLi68cp$X#xvc z#bYt`J5O44U%<-L5DkPPXvKTSk7O9t62TLEi*b8~k_A3(p&D%Y6qsW=-ay_WeX!JN z?msQ+Di zprH+}f>~{BoTTI(J|++0A%0VSjvp;A`B=Q^R$w>pVPY6)J#wg?D|>2&7JIh*{Zxzb zYx1oaX5Qe@$f_!&q3x-@LB{R3oV4OWerHc|_-W0Up9y*hNfu<^vJbWJ`oYF;_d86OE zkMmz)5vc$iMlolb%t|J!3C|*4$5hxaj^b%&k?nQ?@Y;kZgl#k2HkB*pD|~F<9|%ng z+yHL+1i4jlF{rm2&@NB{g8hl>?t22DB}K#=R1(u~0p(xZ8DFBz9htln%#bhG^g?m3 zEzn1_j)u?0{U|p0gthoI*svXvnU`bM((A{z37h2RAyz@lqcn z_6MEdl*1Z?H~AGF>b=leaP<6n-;Mx6L3_x5WRWgMeomBK`_a)!T`y zZHHkohipuoh{`24W*WnX9_ni1u%EtOV7TZVG);>h-|fBnD+)};uB&$YD&nb%$c6um zR6s)JnGzc~<^Y_+(U}QiJhv-GYFZ)l{YX){Q*$W#RpzKX?_Tpy9rHRaTR^6EXG^*D zX=uh5IBwGEjspZ%V-3z3t4iYvd&b`PH*OI+eR0sD*95AWrVQK;`v0m3v@Yu*voZCl zc`nP{Exkg`j{01ZrtS;hG*LLZ)A_MHbt1N0h@=)Zp37~^PFmTUyE~kV_{z((bQ*f%=j+lo9mv>t z8=w4LIu6OcmP@lu_8u(aLqvPVdw^L7@eF%nY4G-MRz(i^vm1lDjS4GnbuaF?YxIIVl-B-DoPtf(P1X9(M zqRlF&v2vy_DZS}IfSvx8WcSEX)jhqlvf0up6GCJXDh^zn~s8*$yoDrh)uhRjJT<~w#$aG$kUq(%MrMTyu6MB}@ z;rI8gfE|=sm|xV{Uv4s|CNZ@RC04p3q*Q|3D~|3{ZV;@>O{cVTMf+$DOCBIwvqVs_?)^`#$R|%XzO03)ULJ zyAc|i&!|s)=F3OENYmuRyO}#18C8J=9qH5orK!pXd}-I5UDS4#urwi$BD@I#vUgE- zI>9E5XO>Wz?ehDoVb)J*%9By=(~)6nk=~v>98ct$kO@|%ho5^_CW;BlR+i~zl2=AZ zu~k$gyED~Jp5*Fjpmnc=;-w!3U~j?J)y_x)PUVXCw;Kda@SM+WGAg<2U{hj`ttau* zT%*+#bcv5T6jO4bQ|aymj6COJ>4+e4u)mBWF4fzV&guw-ri1$N>jPQ@f~H~mJ` z7%*4?Ya>SYYxs;jHQ8fD0nQPuit`=A_P^B6VwB9af_TV12!9j|Q)iK;7C4t+1fvR~ zH)cb*-<3lIQxl;{XBE(d1FddJ3K5fOaL*ys%g2OjJ;d~Lrjt@r|?aA3g< zQ8Ea=6v}q<{02PrF)8NhBIwkhC{ef(_5tC|QPlz-c2yNz>0ztjNkO4uaCja_y5&Ut50`T$hUv%2x||Vl2be9NOnJ*@Rw+g%8*IafreXK- zNq~4e)yt332>6$=QGEU77&T@y&LE-?e5h4rH^AV2}aHB`n*7cCS* z-V8>Ye6PUSgmV2pvL>{YbePmU0tf*q(zm{!hTjq?f9E2LcGf2wQLzI}zV!=#WQA-_ z<&kV$BfJTybZ$wRDyH~Q0mLqyqtlptp1|aW#Cp6@--!X%+;?bD2#5x=KsAhlA(N9 z2gJYs{(6i3Q$;+_ckW_&o2CWeGYutud0du#CkgA-ztZRTx0-fghl z2G8z5MsDldL>1fDKm_o81&0MjfM@fyNj2$U-;aAr8$dhDujWXEL3blTiK^Hga_)WG z)dr%>D=6%_!WR_?YGkH~+kJ37uH{1V!#<@)P!mNGfNsXv(kyj;V(EgU^+Tw@1#u@O z0Ko1M^efBHFr1sQpnWmh%RwnxR)%xWd^*f8(wN5I{lA&mMjuHc73H%!*<@^{YaxlS z1fu-X-3Y%3S4of(V)QHDzkgzJgu)1L-9CM>UcKJNFrq>`zDHyDleTwwhx+xSd!pB< zB^azqdpzBR)S@Qvh^f2jE>2-?=~Qw~rj<1L7(i@4XF)b;lMKv9ts%bxe)}fuxSx>2_b$cGPEJ{OG*9#= z;t6Ws{(OxQI9#(gXlyf)n&%BRcxkvrQTWl*D6+( z|CWjtp@<9}M)j9QdjX{VOj>`&ME!GK_aC^BgBRdDREW=Kr5C->d$ZYR%YI~*guSUY zkp##q#nx^J=!IYUATz8*fz$qN%<|)B<>>?|>fqMoIfnq{_cc+JU$zpdeUBN)@FC54 zXfw&^G#I09H~Hx-)yMSP+igDGa`%mh#WgOV!8D0>6-L|fR-DfUZ*Lss`` zp5g`#Ef?^B`~9phMW{V{c6Te4u%0`nj8X^0?OrUomH<+Z=NaTWP+`4G{|a|kc!|)8 zU0fYg-F_F+*SU-y`MCqj*rx$0673pI7attxaJ+3DH_a!c$i2(2kme^$w)JPl{B~}h zROOLvv9>XA5h*Z>XwUNz<57^d*(VP<%K;L%+~sfP9tK9>@x5i14K1*wyLT1K^k8cr<%s8%)$Ea`aq+cg$i68mpV^?H!sYQP8^s3qki{$9H;Vav-3B>(kL4l3SU&tRl{eYaJu7w- zm`O)b5#l+fU|oPM>VSQ?k~j_N37WcM?K3y!g$IRRvR|q<Dd)xJELF&eMiM_VfR>ZSUSqEjR$VV+0_orNDZ!TM%K zKr)mNr}k!&FunWnUHDO6b|Es?)M8z4Fv7zFv~veVKt6Qz5I+S8gp zGQE+&qwK8Z@$F^SU~|eV{mw&VRFRXIbra@Dv5OHoa1GMDgO>>zIJt=}l zVJW9FsAzYkFEmPNdq#$8UDkmzWnLiIdz-PK-uFAOaARvpOT|4G_BpG)DY0*44;9xn20oMslATrse?JDvZJB2WIbPwm?iz0yazSteSJFi)K8tvX+i zf#aQ+{p|jT2S)fSUdV&kcuk!JhNZ%|H$@WFAh(y(|EtayC~rpm>l;T4|J3G1zQ|ZL zEfus!7&-Rjt@w+s*K5s+?ql{XK}wIC8eM=9qw=VC%z=&~0n-auHAza(Y;ZGNZ5UF= zfyBr_o;J9_9<{Lon-9Oy+>v4;*H)XhXi|GvL+NkDA+|$OgfPzx6~!sqMtoNxVLMd!OSfrTXzO zB=|mdx)Vd!t(u*0RIQ2FlS*Z>$>9SD+GST{nOeRH=*Bjtc@Q9*#Zy4W6AnEWH>d4AQ26Bd0534y6_Lnv0bsO!o z^Q{)r3I*|tl+6YNrhD?QU*-o!9OyxdM<|f*k1)3Nl6O^Z`HIgs8+mHsqZCbcc{nSBxGP(Bb@7B2~^RHPERnx2-KvzxX=F9R26&mIs6~#B{ znx-pNiE9F9cN$L|R)IvSC=4f=jLu9YK(PRTY!v%DTeue#85etPn~(#UkCKQehDPAjroO6!53+r6$$kd_4ArXux{k)fKEIn= zxjUGYkeqtkR7`3G@6GD}&YQ}NZ;{NmUmcZ~{Ib?z@$1x838RTRK=l-f1KEqxQ1~@oU+j<(2_reZXK$5&9CQO(Q!7&uRkD^VkII50Njvi?!no zF`Vf$Nk0>2DecM8KtIEk0|hXbxr)j=qH98BRFk61x%wOSGx=-#EXqK%tnKtuZfV4S z54Yp!p+GTWKX0l5Z@La_yT$i|TbhjP$Q3yfWM2|x`8&4KZ%jGfL z&JnJMqHrSMhU&**#{s;%10$RvL4L+ZNc0w(>gl_Dn8{GP6~F`zLY+N}q8v!;o`9+v z?`^^joMREkSt+GLU2n#--l^pSqdG#FmuipB5}Jd)tLI zU`F@<4F-PxEH=cRI@GzrE06B)IBLINW7C4{>br7BGp-bi{@bC?Q;NDLhHRZ{cqLeT z_@pAnlgM@JINTD3qRG+M9bP}zsk{+&y+PuAvF_cI#B@Abxz*4r#j?ACR?9fMQOp^H z94)J?i&a4uzAO4@7>1uf?*&><{l0? zu;>Bx(jGQbZ{eLGG8SXnrXc|s%9R*eCj-M}_X9mShpX@$C2_^Lz2!pU zd(&;NJL)47A?w0a6m+e3tQBEIAsf#&osdBRW^{j2&)P6CQjy+jm)my1A|dXAW*;sq zn&5&nHnrngKPIVF<}0N=@!sY$4cgGN=1o46IWamFQ_)xrqW1X)pj<6k44}pj zwiT$%Eoq>mu|*=x2ou-a<`{}2@CG_LJE%<1YSTwOc+D~R`kcA!N=Ks@W$BAwe&%++45Syga1hXO*7E|c}wMAA6n7>@{81B z7GA>A6-ZQgpi8vlOlLF8UZ}5^-c`ja1(zJ!DIckq#jD5$(DoB5=Oz6Q2^tWn%QXOB z&T2(28}>;Tq|@xOnQ#y4rd8xZ5Y)@s+p0K z0rd94^1m5tCGT2N2UnCPibf?rQtO3y=CrgcCqZ<)vgt!zsH}fxH~j2= z0_uKyT9#pigQe`uNE2426a$f+2lw%%Y2qNuXLbZ+5s2>4;HKcv^>+D1P0`B$mXEtH zBZ?KHW+j{|M?hws@S*GDWX?(MYn+N5bTi7YiB7rP3dU~Iy=O+9+&EV4lG$RCwahEx zfD)}*JZLEb^ss_9@l!-K{8#6cjkpc6S&wsq-j?q-bnM{hbnPzP;b=i9wPa%G<1Mqh z><{}r*JR!KYkZg+u~49@lGuzd!1a9N!7*Zl!-?i0*M|PrsD?^U>*P1R!B36P7L z`k(w81nSsgiprz99sbsf(trUcUx83wT0hmvgQyHdZH=4(r8){E8mxey@O}XWQr0mW zNBL~8Z;II`iPiMpwY~Y5*ov=LQNiZ+OIEy&zvqH%YW+(V#Yj_APKy0`n?CvNJ zizuC9$H(|HEY`oQAspXQ?%tbQ4{D~nkM*hYn!mOFe(TV&~08vZQ=N2f5D3+5z6Pw_qLP}eA_@Bp-wz*CC!Xt&?iO4F}>lX&u<6V{JVnAZ<$ zx@tT7;`~SrbzIGU6>GFQ6jLJVrFJx@sc0kf8a?0C zH#D)8&9GcuG48P0()3yP(7%4rp;@@S;h*YWFn}|BNsx>iUd##OzKn209o88B*Vud9 zP*337?l(N64JR{-m8Q1^17f&tcTblJYY==_iWxEs12LU*4(=IdRhHV}4ECwCi z#T@g0zbzx7;|FF019n$%>Z%9^-;Y)iBKtetxX#{#mjdy8fbL)zTp8kwXVG`_IeJBl z-_Qbbtjd|d<{1yldC?Ok`lQJPjO?rF;i6tpduqtSS=_m}*wyQ{iK+U;6)b zgy&MOija9&3luOlZ4ZjlJYDf-zBhxRTp%1gS)o(SPY|(`H!|-#PVBG`E>Bk-s4~l+ zM1^Rcl)sWQ-0dd_9RB+=B1FjysCMAB|v%}oMF43rJ<%iW_ zu@e}q+n~*wbh9TrKlCMo85KtL7NKNZ*@%DBB zxV+7vzE*d|hC{L3@$L8z5^D{&b4s{*m1Ldx78zvY5w2d{Sb1HO+oou%3y@ zba1-$xN%H&i7DmihJ5TgWGa_~|0=@mr+mU*h%g9$!H9aKdU$%HZ7gLI43CQdgk8dN zU-L@jY=pnsjm4)+oET0Mc?n}Skw*v2f2W-*idS6Q+4F7ShIDl@yVG7{&MBCLh%Br> zJKEsRfsEM&r`9jJ8!d?%s@bf#c$|`T1AE-%_9bnEu6ZjqemX@gq3lbqE=~|cv^L&A zCdz2SdWAb zIu-C%)RdS5dRAx2?SI|KT89a@SQAmJ4{HFWt(EXO-eD`jeZ)lMMYHY7h{p`AeRc=1zRHUUgkLrs-qi`n*4&+UYLR)i98Zeq~l&JlA zukYxW{m2Wq->q4pM;u+{(f+p$tYK-KTU%A|B&b)VfmFwHt+)gZZTqWkw)X6ra_H$# zuc#`S*q(#PsX_0T`)bhI@XNhdjz^QF4%eWm;Aj9aDO5{UuNdWnz)p;hg#rSYA$801 z5vg!I(z&Zu`M*;)*de#Cwj-npiNe1P_^3@!ZdVJ!92aGF2^oc)S>J-i8DAZ2tM65V zvJe%iHd0jm4594w_*jzf=;gu>mvj1w6 zL1sC%zYDloo<)@Su7>r7D^^lRb#f!9JsQ@M*2^L%Y<~CNAup0s}tTGvedx zeSCi)#ee`Zbg5Hu_Cq3yTrA8ci%qz?>WAKtz5lV8K6@vY?}qBpOhtgE7EYN2P z-R)aSWL_YOS-1Xjq2eG*weL2k2r73aqr(90!IVeY*qXm!M6u;xI!N20BvdUgNTR@ORH~Q z;KRF@&h}EB91xNddE`~x5a(2$OLw56tmm|9aOCLhR+>ByD_nm#n=1{ea;PLFoM&f zr9L6v5w4J*`nJ{VRrtg-`gMo)4uqLz082o$zfu}gRV@d{O-n%t)FXwXuvwoB(RKpw z3?IQ$+kZDu$=K|Wm4C(en&H>|A=rJClPRp7YIz1iDNV6#RgB!8;$$3j?+R-6cVy^N zakF3OFUDb+V3ejS8g}qNnk_8yo9yLz+2cpinS_JgiUT;WACfZc!c`czVoo2b`vo6R z)-=!YYERsaww+Rg_GpNkP&nk|vx!~5*5esrq9^)X-w~hh_bR+n^h`%NmTRCwZ{6bR zTH4}bf7z?02Iy9|0K;oYeJoX2zb>TN#z5XDyuj#z0pXifMNN%hbbqR(5RRCxrWknn zPm3Ie_3r#!W09$bJ$|0|jTHlz@H{GW0Kl&G!TOYlqQOap+8$tE@{6QR1pnpRgwBY- zMD-lzDD0&5o$hUeiLbawv`!(%V0nFbcX>K_tDW(O?>x|`l4EO>u?(gSSbdu3`z1M5 z4hl-={b0hC`qkI$WiUvhVkwO$qMEEGXVZ235l0J108&TF$n};qPh&M$hk8fQRM`OD z7_@sDjS>Nsgu?VLpFLPpgjJ}z1Tf*1m3de9pL2Mq))Vv5tFi$|ZIAkxIDVS4e6_ce z1vj|5tth@GlZLR{Wmu-*Zkc-Xyd7Ze$%t7Dst_I#t^WQfbi~(8uLx!EXg=+%8x}W3 zcwTaeWoq}8$x#3oAw}WOP-{~k_9~pbbKb39Ctq7gb$`ce1s(DLZ5BXY#;3G7Jv{OH zs)OQvZyn}2SU&4E$Jo8?hjPa`xionprj}QAAsD!UhLmcCIr>Cs4j>lx`(}zyOuO{# zdYeJcFSk>$0<1W>H4$(5lEC*V{M-2(_HCv~c~op3bc%T_DkmHh0|xK?Y${($}tn7Aa62Z5PK8f&0RO>q-!Zl zTggRRKE{9~AgK5dTO-kJh^t)$HfcMC6en~SH?3Vr!Bu7XS|Cb_!1tYEBEEnQq)_7i z3Yc&o4c|`L@oAV~vjKkdRHpD&d}(|0;MmDDh$mZ}s5RWDUDiEk8Q#1V0(SdQE!66K zg&1=#;=IsGladv{0a_X(xuN9!(#uG3qlL0+G@8^0*&%yrmV`2W)?Okm8h}tjB<6uj zIGCCqA+nc1OOf5_&sDCuL;G6kT9hKr-3!lITi5OOY>pnB2OIlw&7z{^ClGGjtEr&3 zwhyZ*`N>Vo{TpC-Gr^TMK|^ZBHf~`1Vl(U@b_n#1bc6Trlkmv53OW-CFdUrdZB zy}Z5_QRa7<9dmVoV^y0W_A9pFbsn;SWIZsWT7mN@7&rU;xcGu96D_20rfrFZM3oWn ze7uULzYMd0YSLUNuK;uGFL@mNiuH@&+lM2;XKhtdcAAZaN~*U<2(Ji0_3I<0XjQk`c#LZ_^bn zzb+1ayQ+6toJpLbLMb0I6Hfu#t~ zen9hq$W+WjPpdEbD7CE7BXx3KH1UaJEcf?kC^9@4t0oB0R4|8*G*7 zHwrbWR-UQpLC_Dd3=ogv<=Vh@lg^>lX@4Y*N70@{#^Mmx+YUQW6*%=u>%esucyer0 z80nKK616`GT_-lmqaEXWMlLcGsUM|(ng|HY4Wv?syv-)R9M#@zI)wZ1E(PUJNMuwu zqiNQRp?~Xw0#W1pS$iG4lpfZQ52zMQUMYVn(3xM7mg%o};Gs0* zcugp@Gzz+$A;(7oqq;IHTl>&k*>15i66 z5HKXcL^uL=uSczyc%L#v&^Goko^~O00lX)94;lIr+O=ORWe3YeGkPWRYA;-R6(=BE zc$4&tZYnouMId6?gOsXxLj(qKC|UzZ{=iUXRgL@amA1HF4G!TXHuAS5aNn&Cf8H-9 zprWQ@d2T$dChiqyo#v+Bv@16|&yU?yX;`^bV5gCCCZy7B!MS3R%iC%bkwW zcTV>6xu^#p*jXQ>0DO7>>K0M9C<)Aa6zfNSU{NF*U*iC!42@KD$IJ5Xq=l#L?Z@Bv zl;B1yFdt4)*wpW>d&UWWhrB2SGxzN4<*1omSt5S5hu?>BSgi9}ZX(+zFt3#ikCtid z;2zn-q;Wu9zpM3dnPvE6pj#`vldeIwvgLt%}<07ja?kRp!gaxV#t6| zBz~he!~WuVF~N}?Dxe3Mj3PaN#hld(&ID7{#G@dK;CFQ(WVU-VZ<H)Zu=`2gxOQK>ATVbN-ZKdF=(sP7I5gItdDMp>! zEhtSK#<9zom{=yq)L~5CS0Udcrjyv4_^JOIF&(kjqjA*)RL}t!SdO;`f#a z-ys}fruPVo#S1zk;ksjz^ZoU$-9q5}VO+m}r>Kt>-a}W+6)A%47UjY#Od--Kr0@eK zu~P=msRa$B&xUb$b1>2x1Z68xOb;A!`bv7c^XNU^b15U2g~9$SN73am)WJ*in_umr zP}Y`lZ0}c;)*v~MwNUt1B3Q571w|4jrox!L3zLX40eO<8c``R&rz6H}fa1?iM@&Ub zsnh7PQnCr?qL=J4frRXD%gSPF^ExvR3ED62;7oGX8wT4rZ{;;0{E9Xxwe2>61-s?! zSNd`=Viz-3x-Ro6t)E>4$92G#!n`}85mzn%?U_byR)4c|dp=&pHE@Vk^L(QONUhTd zNuKf2RKjScJ>H!IV&C133KDO-jHpU62J`2o3Fcok2^6)I99@BMa6ky{1b1ed{ojj%4c}7q8Lk zvw?uJjNLGwmPwRusYUJ|Tv|FL{hrHT@T}&z**d2aZ_N*k}R&#@b6AI&hJI0SOv zj6I&$_Zc@D@ACFYP?F?~8HdIfn|z4seC*VLI~XKn4>0hDu_73jF56;ArcHJihyoeG zhiR-Qb8WBRJp?K$!v||JusW1n75De7E2mB2uMwyoqvm)^ar9|TmOw9R^qR|*zL`zW zX8xkVSVqbuQ=aBNwWfLrKCHT;IBRjkb9TrfbDi^YLP~~i5IGGBa6UbOq7Qv5Nd`C+ za{gm$27zeK_cS9UmG53-;pnj_TUxz$5JbzSYMyr5%LH!t>1NHkrDsF|&@ARW4Oh@t zQr(UZDJO5$IP%}E(#98N{>(iX8}5qWlg=ri;1Y?NT_=hbD3;4eFOcp>a`EcK3W})e zV2QDMbCM|WR=rt%1FdETcig@~2Oh}cz1v$m?wyE!s*TKEd$=tBendhb4f*@uNg=(V zPI-^WH?r^WLo-bL(!?{)g1&r^70L(q(u9*VuPZ{@1@zmMDDdEqreB+}1{o+MsTdEd z7$S_zhpo|^~Hfq{Y@FS@sfUO+iU(J*5%xRN&@}Qg;yVqbqu({ zvZyr-5rM<(q&EmDTQtfd;RN!-K^!g->UqWVKb}iJ%F7bKDeQ2w(<{vM36P1}PCAmA z2cMP&t(5;UK(E>8n4A9!_Qc8G8=dhUO||yO{_nr^UHQcbkRS(1e_k?L{Ra+hC(Pqt zVs(1cf7Lx5VEBFb(YPsN%O}+gtTHvaY}Jb@bhJ(MFB5L!8mp%AF`nLkALTZk!^;p+ zJ9>Z|Mw5W=!uL{JA^eUo%M&G8aAI*lDM$SHj*WjDzzHrObC%v-z2-VCevh@*2dkEd zrk9V3%w{-$jOVJ88UkQ=&|i)7d93pC%DRWfQV~yXDQJ}!PXvX12%y3(_z0)>>D#l} zCG@c@!NQ56`|QSl6*7}4#WbA7x7%RDYb*80e}TOX%Zi{{LehP1JG^?r@7xC+1K!h+ zq8%$S6&pfxeeLR2-ejqVNIFX7nAzC*h=}*DZC8Bv{HSR_y~K> zd;`TCR*4CCg4x>mLL`OyPdf5gq5{X^63TLIHrCuaCaIc$UZ?6{LaTAUzfU+y1RnG7 zRKnMK4yG}Db#(BI+XWfSnjM(`Q6fi6n14>|NDQWRQ(i@;58ZNL?^o~)L>GJk)OS+? zwl^R@G^jNK<6?&0Z}wH6T1oCr;@ry8Pk-*#!JSbMx)eiH z+f4WkeuyI+oOr^2v4i29${WVLDA({Y`N4E%+0ap_Ci4F+lui}N#Hb^>{vN%*jzx6b7X)!|OlaXSa z+cLQidi6AQ7*FBcUU-K_og^5iylmjZ#Qh&kA}BYV1KY*H4!GPk2aEg3ChAR_~DYpeSO@c zI5LZ0)zo8qus{1^g*=_Iyl%ULYsv%RPoD#%XmV(6O`7wwfxaf5T}@o0w*kK+%!q4+ zJgJ_MM=%E`kwKG++2jTEd*MdB=L{K;k7;Y4OhpVpbBjofiS90lf0`7pJ8~kF_HTf8 zsKpnc=GW5Vk}1w+Ux&?rm@N=mKo|fcYesK+(vgVa3t^u;)oMn(BtGmz#8{5ng0QMp z`$08dzTZwrTg-@P2*84qM46A+$3noXNk+r~awkvF2oD+2Jdly(k>hn?C-rn8cQ2cT!vMkktWw zp5JL1I2z-d1z^orAR}3>n06GdK{{W?Oej%IAb?6uM!ZvV*HGzSFV`XCI&;*JYi^HF(#9JtGy$B%x_=Ny6XOBtuv^kFr)=HhX8;x+8s$@1bLBQJi&TrI1@#s5!M8upEReiIyz zbggn&er_)3Iaef7i+pXDDR@qnwXX=_EDe}PLaB5~6m)UflGv#^-?*&?IeP>0jZh7P zkRTHmaPmWG&qEeDYrkGbyrxj+i6^+&1@Eb(xxUui=#tFtJ*!7|BI@szY%8on4x}s? z>?f9FZeqAeUi#kv(Sj>@bg#kERE5v|TenaP`JMrze95Ysm#CTL*q{`j;Ffv{?EuD7 zuO3Fy4T~R(zEcCm)k8EOyitTy&!piQI6A~q|e{ZAav4Qw_2 z+sZ{ho&1MSMok__gd6k|NLMrQ$~(}Xf#XA*#Ljwb^n(UHf|T`Z$^wWPaL(vX+B)y~ zKfqdw_&~k-yA%57E>?cQXxdBad3o5k-)-tonE52gQ4;ktq`KmF3Fa$6`(q|k#K3Sh z$UJ}L*PV{L8*xEc?e?w1m5Jn;l-|sbwUBaE!#SLvCfu3@4KP>Z%X=U;)mrwh*sZj- z{(d+g5ai6+$o@oH(8(sMFuFgN^S6S?vzsKuH>q}=hq3IOfyzPegluD6bSU<^X5DvB zFC*%8JrmZbYt&s$g)_c9blnX4&BLAYbP4*lXuP|hiLSh3`;eFzQToyv`Cw}YUs^RUw6=YAkOnwPN_pDl{si(kTZwNP-+k;zC z_ep?;54J5IHZ3qs5tRBqpE9HIwsspm9OzP9V31Q&sC4YNA4>g+R9i~G{!8qCzigtmU( z;BKFpwQ*$=zrHxsQ?@ob2feTe!+ACGoGKzbH%1*E<|?ti;B9usJ6xsOGB_9+cYGZ4 z3>ZrV&VE5&ZVVlim@0QRHo*hd6F9v~Z*V?mU^9FHq$RaYYYuhvC-@)?)vOYhbbx_F z{WE^M75F*(Vt-xWA@OtHj|I+j85X+>lLT~_OHHUihYB__N!}g(jZ`d5a<5>7^K2S{ zTa7f-*7pto1I*AwX>3Rt$pw^3XH!yqolZNoYBPd++KhLP6v%e`p#h$jm#%VXy?7jtnx!X<=Nu#hdG8W+ zj^3^HKH87ojDfC^K#qeo)WBD2m!OPN2p1kS9un=PJR{zo{>VlcU{Ea1$TUe&QF~BK z0Ll8>Eb?4AGDPk;AXcJ`t5-*PD-V+lH!w}t=+2BWm?kN~5QDN}f?pc~5wH&v@{JvY zb90=2rBLK#OM7{3S)bZhwI^DT6+B`fF8GJe@qR;E7MBAa z6r+2@@q9EjU=>|NE$P39(zrw{>aNOW#D#i9i;_^9U~3%pCyA=wUaCgYb~P1VyK!34 z;7v)dGlZIory9CKB;*OpbW~a-R3EZuN4|WJ;Z&Bu&CW3jgi&wz9QfOqZyuU!09>8{ zbdwxuC;-O^c6S}ITYg&o5w1U`aCv=aZ-T!Fg=P+!58qWQr?iyFy>pPn3Z$Vd;+!sj&=h;@bNaCCYl(_)bO?st%?gS|TN`dFvC0>ILaRUeJ(( zJ-=#z*Lc!VGduQDj?PLEsh$bDb^c74`X+~VDUVb@!DpqdQKz>`%M(c8K;L5m`HyTr zG<_QafTp{=ohl=9ghDjjjN~@xhA;#(4V$wRLivjKl9+kIGVm*d6Go;94%Tl*ofK=QQR%9T%iy ztc-hR37IY4!#BBg0SZvef5!$}ts2*1`0bBPr~i8VJuUpnTx3g6h7`OG?!m6aO5_ji ziW_<`*ItsgFzbpR1VqGA4widXT6-8ZwZ3uWv3c<(SNKUxDlS`lFy(hJFTCZaU5uHP zd^o7bV88dklXz@Qm*lV9SJ?pI&Fa-Imf?IwE8`^+%cZZfB)+2ARzgM5v(y?njn!>HpPjl`a>R@L~f<^+Qzmn6mqB4Kq3)o%@%hdc{IeN=s7N~8EAuC z1}ZP)w;xo|vLAM#vAQK(d*?eG)7vx&b9FYT`*CR3pxstJ`966e^f7FOI9RZcHr3e~ zl%_E){!yi;O%h04ri+WRZlU*>Hpo*Q>ykDT&#_uv6zp+hfHU{W{ff0m@235VOC2_V zC1@71FDOCHYHe+boSxdc8gN3ElrYJ?&6`_RTqwN9tM3wRrI#m^;N1i0E0JnNjUIk8 zdBL625L3=X<$y7!$8aFJI8gQ1$O->#2JV4GGH8^i5ErG#%VtNR0{tE{MPS4&(^*k! zI5W87hR&U01tPYP+H1muqNuEzlcUl3wkXa3q?KZ0^Wr4dDDsX2m)ba9gu4uT1i^8WW658U}9uOMC?G> zRCyhsIf}or@-QAoE|ogK+cd-4uc=Pwvn}&}>XLhm~6Az6vdqwOtWx;SJ3+^T2mEQFUKdasitzB3n&?OG-bZQ(_Z4(+Ek- zZaQ}BBD5&FbADQM$S6v({9|)V)$XA}E_sOI426q?))zeRMsvcHWtrl(wSo57|2gf( z1Ip~_PfA|C?pq!Uk#Ss>SbzS49jo=R`hs{m3Q_j!y&!=Ui-M_~_v5I{a0GD`OHIFO z$xo-~BCZ}y3f|F7=f?>?Ivjo4Ht2H9ITtx?d|>;b_^hL@H^_^Ay^r0fc*vIm{p^FI z6)b2O){8I(=Tmz?N@)U6*xr>tebAv_=C4nW#aVU%8yQ5C4rigK{v!@4@8Dzm z;;i8m{=0rob)?(f%ns*%9ljgh8z4K8<#dLpHnCv0 z&Do)fEauwDHDXT;{6hd_bFVRZvD#QIiG~Hi0!yHTKz4BSi+DJ(-Yq`%X8yW-Oa*`z zIAG`L7fczr3gZ4~xYV3hNx3fv!S8|Y2K7xbI{U!F*NQ%YO&GYOYruXQy-+-4pBW-X z2!BH{LI@M10OFBY0&9gI2;A}-&NZmb{2a(ZWoM;`r~6h@IV!Y(t<5tM0u#_KAq6!G<^ekOTtC*p0gVJn!_q1}HZKT$n&0pl;fR8I zL{qF^Pvx<>q+_zvN608AMieQ5#TR)r>tWac#v*{xVvXU4ex9K#20AE$*ZIV*@AnPQs@fs1tu!{oHP1XCKj6}iD0hd;68P8YW8Li z@96jsDEy*M?!DD4!$~PiMSgL!#5HKNP+IAQy!(zvLRUzVs*;+(Qvmtj$BOI`i~N{Y zG3WM%DknvPlvi*PsUCmcJH9Fjf6>bxiv{cLZ&Xc2_YnDEQl^6tTl z8kr6b_`(0pfO)fGXpPmAfa%5R|77*SOpcZ@)*Z6Dm3qHOE59m3Fm6Do^c=w05hvV? z@5vV`e?^m&@d6MrFsu=~6pDMAh`*;qP-f*#kFOKjJ5m?K6 zKT@8hAUElDJ>FXOKz)eiiFa3<6vP)2S4BYY-_zQ?%6tsuIM3554Q)~JvZ}H;3f!7H zQ+|UWgz6jNb2@VVjy%kDAO?5~6FK3rKx`BwH;r~uaGlJ z@}?NmlK{qrI72nb$T)V-D$7wR5=f3(Oh^GbBw33jB+<`E@hS^>#ekjx0N>-3XPs&~ z4CQ;F!af!4G04NW1^X6HFk+IyybN06;50PIek7z0taWB3+-c$5oz9z4rl?}?R$8r< zw;i){*Eu}sHfzCl2S_UlvK5_ef_qD?qKNNI(gU0r=)caCsiGWkNZ8%pxjtxIQO~eB zSi6-I0|9@;QPb3jUoL#)tldGoYIJZxK{}PK*M4-M_e3*AaImYy;%}W^*t*#5t++m8 zklp&heRtw>YpriakE3BZ+^N`tE0D2$4LTa#KAWOB-`;SDsqZLR_C>KaF5->xfLG%% ztgRd}g@kW5X=rQm0O_o@wSnpJ09}+>CI?f&dnn%F-)}u|L~kSc_G?L?^CEU?zNJOS zrANII?;E zLW)ht8_rct_7f3KL|_lRb5K(rdFg93%U+p1Gs_-TshIIuD2)&L`ZZ_W;)8T`c^Kp8 zDR@*)=CG(sfAL%DAA)%i)+|c&%)=6CXZ?~Gj1ij0YY;QVPSEuf7_5;~BOlI|%4p+g zaAl0Ko1%W@Sb|vMeH)O$sueCO0X7UCs)nETWlKBoH9xAN(8;1G&d^G@basA+I*&bB zXP}+)L!h01AZwtJGeh;s`xt&W{k~ye=wZeWq%pR%KGeZQ9=0wL3T?zEeQO+ zUqxGo*E%$!6agZ|6mL+%YCleZbWG31gx@&o%P#UlrW)Ht%4I;N^bs4|SHy0BLNTUc zJUeE+mQF~gx5#(GZ}G-@Dz{TOVPcuEuRQ&1JIiMkHshWT{OYi1oNj%7iWiF>6 zN?fNbs|qCW&qSxzOPhxzr1TMhgjFeyQSM~hAW|3kv0L)Z^jT|npc$j7+EJyC7SGq* ziDyZ;51rKW4)8I|_x|nts4MPzJNTRc;}t)Rpc?xx7_go1p0+(>-oDy{64w<~z;fy- z$EnDG<6vYfq%bM0W|9knk+2o!2>g3h1WAP1R@ti12pV}mD+iSo}w8(_EdwX#jL^!T7Ze1&0sI>ryu~{b^LP4J3pg!ZLF3;JPqKA3uNWjcGLxbEtHlLwVbbnhCtS`*lV9_Ct!Mk@S^vK9AC=g8eAWfcZ z^!n3y(r=0*X6wbx(6dmD2dZJjP%iZ|M61ex?3$tkq0iNf(Oh0kQD=ShdKIVo_yxi* z>kk`&$dtKxSQed=85{f90k(%_NEC4GO?vYAp6j;D8{fGJoo0Pq8$rZuD~LGHO#+FS zh%$1dmB7D&hG9Vpb=fm4D4X*7s3F0wIJ(g9(h*FpTN<1pK&7+O>;D(8=?FrXRFw+C z@u@RQVCEiXmu@Z492#I1_F}U*^m~yr*KJa*=QG+OI2Mrq3MS5`BqBgaCWkz;Rh}$k z{Eq3nu;*IRB2z+vRta_LRtly}|9n=0adE4X4Ds?X$t89vDvQ>_w=4W~p_0X5pTdZY z^W%vj@=7E*}E{rOCa>=QMy2)i)0qHi< zcjaeF`v33F7qekzq8b{!#lB^Z1U1_hY2P()7f)f>kEr`tW}42A;+bh-NI(Wmc#bZP za|?DM4%Tp4zr?-5(>Vj-ySRZN?~I!o#~yN}cfes}>gv}7>0u3UY%p--R}uZ$tL8%= zv;=WLe|euQn;bRbKMafK{%dVK&axQI=2@aBcEJIuH;IMuw@#xk&LZ$@JFJVQrs|Yg z;G`F*vFp@C-=smvC2|we_QijqL5uXeWGqX6ecc+0fJ7(wB(ro;sXW1v4+>e}$oY3U zYV8yHK^GJ7*_o1EU%^r{FKaXh>E<%!-J`dGg?pF%XVQ+THm!9#0Dp49SJPg>8kLKq#l zUOHAZeN`uQOmJ{$JX^E;%YMG$|!m zNshy#LZu*`Wk-bLg!uX-`Y%3jxTc|S+;zM7!fbQf`qaWI0IATnWISZ@dzzkA&WEuE z$dSTnS2PpEvFqYmb4Y+XaMyY_OS)P&PV3z2Yr=mec0=EF4j<_?T=^3EdDAk4 zA^_TZeCh(*hn*?DsPM$B&$pFP#yyAwG!DC*e}Tq;^+pfy5r_$W-W)G>b=p!m1ZmYJ zo_|Gi3T~nOa0Qa$oqeTs|B)UR_p*qa*$gy9tk+Mb_UL^;g*K#zQ!E7o_`QxWHYnZC ziw?$_UEi?xJ17HPaYezoHG#+~iQQE;;V46sG-%E447X2-x>3GRicWEkF&f8V%_Pm_ zGUw~K(NMu~d{ZF1HkDBp=pw1sL2~Dz1mFc74e(F(mVfvGEkG(1w@W+Ng}5&=d@F2>|JA z7VO)n^$XwV3rBmqdN(bJK2feYwl3E~_N zE;?zx_z_oVlf>xkb50g-d$A0WsF0W~s>y~KwFDI2bU6R#bj{DC0p6>Ia9|;fpTuKO zEW208TuU?uCe>@+PyOl4yb>5m^9__0W1fu~Gw3y(kWz4ZEmHXdhk*psoEr3-YTVNs z9QP6=PA-UlieNwwOANyVKnyR@0!0~Nc-Jvw%68ms)f)E0tautTW>fGH5nAW8JZwi& z{t9O#-Iv5s4*T%}D{^Sxi;1*U)Gai;&Y+jsG6SBL_u^tIO|J*e$&sF< zt=ZS;fb}LRMVMx(qLyWmKf`&1lKo`jJ9b_=+?nBmdHrY#276+PQrLC5I9h%I7vW5$ zBcj>5-{Hu5+nUZ5)K=ifDv)VX^FsrEcGOfCNSehe^0=VwN5Z=jlJD6#`s;jjY{wkAvyj{ zQ(}Av-0{NCjWmaFqWScO$OCra#q<^ajKwb)KiBJUcrd;*dqZ%$j^wZYbOUC z&C9T#jC&kn??Ew7FyXW?u_1)#nCeB-WRoGDdnA5@N;D=~;h0uCu~b%!j!c9hgkVN4 z8=;pUW1shSS3W5`Dt?}3?Y;MBhmYS4cL%(&3H$CbVdraXE7dIHg!P{;7Rtve)S{9b zs@9#^-!SR_yFZL{VlO}ns+c`MLR5l;;O2=4V^PIF;tOA7=buxKCOEv+N*}!zzDjEv;t*$^Q9r06}lFyR!BGUZ3sHeYm zbA0lmVxs<@?49K#Pow620LXl`^4ckF`yfP!S#41lm<{URjU3>O>YyTNTqsn4+P6bW`Uno53?8+v^B_~;8vA_3s2vnNieKsCHciy z;QAB~#zf(TBdJ!Kx0oaG@yN-*$M)3(Hy(2v2v2H_Rx8sZDR51>Y+j?B#gd8h(Zpqo zl((et!3*R=m){Jc8xvy;yqilxN0)XF<~cfgVx1RKZp%YEgV+rhGWiSlQkG-m&qGRJ zx92C2GE@TQ%+&I$MyMwu0p7gJ^P3onQ*yriH^$LzynKb>#7S$ON<{+xV=2Is)Rp zYZ5F1f&P+-8E~1*`(XQB0cSP<%BXlk-a>7~Ttlhww#Rv?{dMEYwyKktz66t|?L~b8 zY_rgk`DveV+yE|C6>_oq%LH?%_oIT{dm$&_#Et|8?O%1;g#gGnRbqU;7@ z<8Zn`a;QIS5deaA&wu>;wuoc8HK0YjGc*YyUt}d8&?Oo#SHm6c3MGOTZ6rR*{eeYFxGtk+yC!7dHx zz;#Y_w~SV_83^EJui@@g5^btnqHwPIAKL|C8}N$aW{VukF<2ggc7p1ESnvTAOH-Z? z{Gf0qhp;?qDgx3!UC6Dt?=-*8c28i}0Aaz@%#eW7N?S!!;GCKtqPj2VI2R-0P;%i| zG$thO)VlkZey?;wV=zgbL0Y$O?mIlvlG!Y@3cxo%U;5CD?Pt>S1hPcUOV?(Dq~@_E zHLc{IWD872q({2gTKDTLdz&;ItcHnkiZgVAit048wMF}Rw)*doCqn)RUc5TcmjgX& z+>jQ)zOBIN(j9nKb2;+Y?^;Wmh$3BXuWxSe*@d?pO-9XXb^--+B4Dl_v;uA%iLzgJBj8egf4j506NrwXd zUm4i_#BD?ORXuzKndR2o{cFr1reEmw&ET7DEXsEV9g7NKyN9a!Q=Tl&50=cY?j z?2|K2s*qZmmWRrqt*rg`$(|QZwz{{Jjx;6-u~&1H_%*V)g(0ZPGb90I04(ts3*T;^=!aE3@;ubiY)fXB^w zP~R5F#p0U;dwrEGQU#X2n1N)qYsTwTHokLIIm=KX!o-s;s($i}6x=Z~lumGP(*(|x z3<5*I%??$HI;e_@g_WLWvIu9)f8odLSI>}2t%G%UFy!TZR_(1TdH|jRC=oX>aq;pA zL+nDNEXcCwG9cH%P`+)Af#X7hdo4*iwVwtFuwZ_L~5`jhj2ReK+f=0 zT{dQ6nk}j9;EeXP}$Va_1W7M`B$_M$LOV=DF8!&f@6 zuo0Mga^<43Rlyb5gkp_&L!q^4yLVKZHr9tboUh8S2n)GMO{~~tF$lIv!;V*x0fQ9% zT!{iaC7lk>?6ltzsTSotCiybUBV_PyXT{c4!zU%+Rn{{jaxrae{*@j&Aeg!2h8R=00n+_dU+_l$6vu)-k#bN;_CI3Du`|lN8_E!Xk zL~xmfv1c2zVVB-(!v725lbC;1P$Nn@SyDSiH_ZxO3T-Xja`B@V(5Bo;v$L7$uc-ePqMDLI$l-1=tX~r~ci(m%Rwlcza(mGH9N$_GNQrf-9G-`cRA%JXnva^!;7v;Kc3z7R7xn;o7rM=w zO65S9+bR~4P%nWbg?DJ@*rS=Fg%g1=Z+4*F&P)Jv+P*WKm z95(c6mAo^+wIxj*Cjq%agzD*@g7>$DKMvsMQuG5b$rNC#x zq7~$<#JdFRLLIKiA$Vof3CZt)LFw1D-q8|3(^&aN+2<+)3qUzPhs%iDzLbLxM#JPx zSWOV$9L32?wZ?9Gm#B#e;!NI#wZ$>KdcFEDmpgOzeXQ2)4qU@nl}9xW5V1wIl>=aD zwVeXffcf}zr&2|w`L@eWvgn>OV%O9B!}r{4a#tnW$ak+g-p{F!F{*n?V|Q!kXGF8J zTqhF8;5oDyc6GpR$;a5mvj0$dBKwDbw#S=$G61W+LO-Efg1t0+D4S-Y5syo3&wbad zu{}_;H2Y0Fl4%$K9TqN`n#qPVmklRd4YrB7TVAje)H=sCEGWXUaJZOuHcO^W#acwYEDfRUAHmRc<_+Js zix!%=O5Aj8=LcdE;wXH8ub-v;n`M;xk?Ud%y5d8s3X8@W?M6P3JaB=U!|dRmHE)o4 zyK&1_YYVt(?)Dr#y9bYMN|0wlPnHt}A@x@$7J(6ZD30@;P$*TJ#B61H44PE}-ZwoT z4kWbbXGm?D3g3UF06?Lux+bR3X;`ZK+D#B&P~1(=#gSz8WxlaRM-N=`W-AJyk^IpA z=e_tweN;_h5RA$MrFNjYD0mMhyC++s zH7lz8DQwQIGyFaEe2u&K=NxqEc8T*F1ec*|@R2OvzbLh(q!L08#ZEC5OD2%{E4K<2 z9VF8|plHAyE3Of34*%SGL(MUsGr+PXVHxLbXU>#3OYGe{KRk}=+PYMH*CeYF@rDCS z@)!{mPptmsB>-zT^7bK`Oq79%|G{G@w$qGBU7Xt=Q}GoY&|wD#npI0~9&Nv8J@&{4 zr)8v7rNL-k_^A<#7MmwXD&qtR8|+lo`6^i@q3Be1B~ha(lW-e6lnR5 z*j=QjRbblATj;QpAYjZ0bj37Eic^&bnYD9di7K5;Qp<>Bnf4O#dZfSc^MTQ zRoLC~B$jWs?|IHc-;{zcJaJ_ZjOX%lGDE3r7GTT4U5i6|i&|t2yu%weT%xUW5tQF? zp)`Ar^I$9_nAwxj&DbuWR9if>OpzbvE;#Nxl!sEuwI{OyE>Mlob$wCbBvYQMR&Hpynz z)w*Nz{3MlqleqKK5=Xsf4XkGjn1i`&19$l5eid%}1sGg`nl3i9VgFDW+t3DPvEVhO zq^6^?x-0#y-T@iso0#|&@P_qrNawaJpS(L$+%yNH%{sv#*lwq8sr@_w3OAIdl0Kys zeUooB3(AR9Dr^Z>7`rOm)UG?a35s-xvP_wh?|_e5>t@8A=hcIIj~uk}OFi=%8s{*m z^d0GxL~+fG<(-T4%t`2KX~R@^cZPdn0SY%0lj0`8udhb^fy-xh-44O|G>r0=d}0e7 zSvZ{p08Bu$zZ=y0njmr-zUqW*>;an+Kfqz%^b^wyyE@TiMB8kQcwL|CiH8nw)XgtF zCF{I6+{p@bKOU?)^@jV%nbrTJ1yh3EgUp=X7OoAcZzbg)dLJfY=mts01fXW5v81>xnF05y9y6y^USXR9!}pZ5WD6#~~8b|618Oo_5ZXImw|2 zFH1ub{UTVbCA~hXS%eqhyMp=Ff6igDB!&UW*~>sqA{BIIIZ|ic+r<)xA@Yb+g>&JR%>lZd$b#YygjNhRa)k*AHhY3c3$m&H!nDz_dWS(x#v04xMVn0V6BcbzOk z_W?o87(j;zWIyYjAQV3>Df9*zD^-8!<6X`B2{KJ)vixI;^c`?7Fa6AJ_v~cJ>Q(tt*2%7kAU_Q!+RY~2uI2)?_>GbIZk&Zkn_g@*xDP$r%;~p6usXq@a8xW(n33H_8pofna zIcawyS`vXWkUgrYA)%ptAuAz&(2~`#oke!C6gI+y z$Ox#6Anubk4;xYj@v`zTB9~Kz+J?n2I~qyNEFJY3C$2|^&z(!&g3+cXi>Ga8yrI)f z^cynIRFQB>=Y1&ox4dUzVmL(Hc->0`jl-Fe(gb7~)bxm%9n`o{++l2E8Kx}E=a91t z$|Q+|I%B7mN{gpc8O0K=|FfOHPf|pBGCvyTR0}f#voLF zDOq5EBwT#aYIk|u!vV0L$UVj`Z_6b9|L$m|K8?Ht4}=%{zMQ9W z{9Gd&Puya%2<+DXn@c#;*((}_-^MiHi;5o?93q%lc02r6!8Z82N2t}T#ynBM%y`Mo zI4tegU$ZCm9{4QUV7y3Rl#OiXmAkn0VN#eeizG6*AeU%*P1Fwl9T;Kvp*|atdrtuC zEvjqPm3K5c%$0RTv8!X^+3+&>nblgSnv|tiPc-}Ys8n}m@1Dem(!9%}m?agjZ#K|( zyYeFBWj|RXK03&J)Iqo9#KZ zgz&GDRj2E3E@``WYmoIE&6XF^OLsTNZ|oK>UYhzwO`RZh3iS0%nNGI2;p&PliI8c6 z${p`-Fdo?yiP%o!*4dO7WP28}Mf7fzimCMwln01I`1@>}HrEIRd^*(V)A9VhHrZdDxeXs+c3-$K zR9xWxFhgaRy2#+6AVR>tF416k3X1w$#U7F+X)@&q9!+RG^M4ezyW-k#bg34!m59n; zcL=B^5=vbq#bn2#kBtO?E|Zi_;C}fYVqGgFR^9nkJTg+Wx*ucH_iWiR3`VK@Oos6) z6N0R(fM8=Ot|uIocZ;?@ve1A75~j=^3b+#hbKw%?)1M6ybB~#>(pw%%QzV~RR=;p; zIOn$KP2uK5a{|oo?U#5uy3l#%_!9?>s`i%#ri8#VK-@p0X@UKzN|HR#X{t?4%9C5nI?WCmXCS}~<=QSg-yGjWXvWDH= z3%G6E>WR4c4wB&sey&oiS@ZJ)pW?V$0wkU5F~rjIT&T)z5sc{>-8(f(H|1DRMi`{A zYFM}{43Dr*H7T)R4l{o|*5p%IqI@bsC}~i!CEurkmNziN3(3(ir)UO82Qg~-uoTwd zXV3XTOMp$GrzTNG&@rCECClV#)d$EkFCy3!B`0casp`L>M1euxETjo*)*DfOSxJMg zBOq5P@G3xDe!P7;B!w{;f~-hT)Jl(&$vn%Xjc4*6h5aLIjE0{AI}!`o$yZK=uRf?u z+c-q-D=_c33s#CvS zn=ofP4`Us3$>^V;;y&gH2^)K`05d`^!K>ivxFauC>acy^rX!TrhCi^iHQImlpVMGK z#|{5})*zfTM%0z^C;yZTn7_j z*{@uIK4vk|(nt%!ZEg4PSV+B=WTs(g)}zQ-BP2=qgKfw`W`aQ;W$i>EM*vveFG&&9 zi7M1@e#i&rF72<;My*#-4u~!0NE49?LT)WVK&mIALsgujws~cO%lm4?-G83L{QpwN zDI0gwjk*Gq}@Pb=vSr}h*xnRMLLvy-jAew(By{~SQ0v)kozw1tc zKxdMC;wGu2F5EibT7$D+Xeo`l)*tAAR+g3DllQ>o={cG@?{A<79`?v70Ey&30Pj`N z(N?1nt5bMoRv9i-&(Ue6opn;V{7rzdge}*Yh=N-)HU?Uv{MT&oJUtpFY<4F)mFQ)Z zLw(RvgkZQ^(p_0|#(Ea0#x)AwM0S|n2_uYg2%}Z`Hb{XB4qz=E7w?t3S7N6`L&50* zdWNe@|E)*BOK;Wodmdc!7{iOSc380esoGDU6%@Qf)_99)Q{}7z%I8|kDYHA@QMoTa zM5j6@=cF1xv~CR~7l{=7#7`;1vl^R!RQ$V&=O_HL0*5$g7ICaSFFgGzh=6?5!~OX& z*}^==20U43Rv^HD(iH#l-T`1y#}S@Z4BoSp`Ko8Xi16%k-cwcP%MLw1 z>|~N-votQTx!#6BYn?ChKic9lKGhots`o2&Ql!!Lvcz2!8Gi z@G&eSt*sa+ls6M`CL`$!c0rq}~^dMbvs|>88c-vm_!LrGR|_ zdsdB)j6I?OA&K%&!>G@VJ5vpVH@s+3P_Pd|)H2ThsSNI_F*Den|AhTkTs8aU@}*q` z5G>6=l>kinQxKm*JVfe2gB1q2=hBU5&@F9rv_g;$VFnB zg)81JibnB(9)>y06Mb-9R3?Xuo+9?p6He0pSoJVKZB%McijlXc6r5lX{ zZm&4T9I+BR$sq2i1SW=H`7H2}psjQVW30XO`B5S0ttF-B!j$|uMA-Ycop0}e3*RYm z6CM+N+v-h*ll@e#i`e0}i-Q=JA-(|&{n&>2A*?y7FLMIDasr5C`>#rbeo+ju)F-9M$W zGfuw|OS))ecM9E3BBp$ds9JOx%KPR58sH*xiUzz3eJjLjCxxcVgekza%lLJS;G4sS zb=#SHGevh7$Si#vu~@VNL)DgBUL+E-HT!eX+KLAHphC=i;=H@k!Q~KIk3%qyxYiKS zHNmdwlkY7f-al zRZsbnmH!AydPe=u(mmxhs~&8Xgp!i_Lo^5XBun5n%TuQiUI?zAaQLzLz{(-*7S`rJ z8!+?oj9FP?ZUb2)><8Ck%{n7*Q;9L082&d5Vh)-+KrmAvmURm>_x(s>ZZ}G{ z%Fq4Ej(zHJ^=GtA#E%H@?)c);if#+#mRId}#{*Z}=t~jTwDE`rYgi!R#8PBeUgye} zA2sRKj^VXu;>U*v74@6@WsJ_UlLJN{nBQ;utF7k&piWdo0tcJNS0f7OKCb`3`zvoE zx!|c=%;=jxy8N2@!%s%h3i_0qbVzL6`0io88oqs*8RNGHP`|Dq;{_6zn!^N4QF}K< z2v;@pkeBFNgAnHz1?;-mFvtw0X}Birqt+2aG7Y>8%W#19(V>}^Ggz64$!0>6h7ItS ztKy|tq^TeW)fvgIpE0CrRvRn|xIWR2Cn0*bD&j_}MWo=*3g>o;bW~>ThiN1@ngXj* zRe3bo)B9yT9wuilGuJNCC)|cofbeHnbzIO`{V(Ci9f_S9n?o|X#SdCSL*9}zSF%|> zY=`@aW>-%X1Q2JZ9Tu~2O%`YCZO{VX{jsKYl>2T7{j=~qI|Fy5odh3=b+Go>Tj7WQ zIG+Sipnf!}+2?y4ptvjQTdsr3SJD(nTXQ68v}U1O`63yFmA@`(voE*(iorM}X>28C zUcENVD1_1mu-%p}R)jIW<+{ndhfB&+ia~xuozH{sh-wCL=u;F38m(Qq=j_56#nFxg zjpX__*}oU8t*)3a{V{X{cq0_?dO8G@4cJCmnsBHkzk8^b*b&Aygwx(o$#Q&8-Fcm@ zD=i|<=@o3a$9Z{WPIjdz0lL$;q?30wHoiE&A%N4?3Frx3LOgtrClf)w7Z3XfXc6+2(udc2&Pts zzq+C!DyjPi68bwz52rh?t8+h>mnA2{tmuQV^uG}rCZG&%5#qCrz(qwm~e7WQa!J~)R9(|6l&Jhc%a!gq-h4N6hEw;jt-}9le23t9_CAiDv zr858-IO!#49n8M14utn~q5r{=wN#`#udDtz*1Ba2mDEgNOJsTZPnIG<`_M}bUby)K zV=wgK!fK=uEO(V?umSujpac!GUhsCE+QNCbugQbNA_=g)-BnCy^H+}VZ7a5o8DaU@ znAY#8`;O#yYV!tTVYl&}*&9_i&mFESvWu#Se(qgf0e+cW=cUHCq6L}kuKNAO=ohhW zxn%7-Z=tMH^?zo60MkCpSwtp1rd^?N8urh_QS2eG#AJ3HNU8jmUWTp!I|a&@ZzGB2 z0-q!|X!F`iNkB=t_#Z}rtc7j(HqRkL1(>`#&%|livSCOC6>;&1;@!KQ;Cd3Y*K#o- z!Q2+OJFl3#WAcF%=clV4opJn;=jTEn$Enb~SU25p(-B zr3v%hm0vH0*n64w z#3~95oi=&0(#NVta*Mb*D@j)KZ>z(T1N%O;AQi|s`y4~EE}PKbH|f#GDnj4NwSM19 zcJnJP?FON3=9ad>Gf{M3h)~d=(r`Jg0sDLzxEZtRBVn7Z@CG_k=wRxF5-(N%$RkO$ zp`NQycFF;Y!6~{ihEdDux6_6%5;U0yZP1^O82Y=rGY!5gdr%3C|}Ri6sqX4sCHZ9FqGP3O=yLqiSK`sR#>AAz6s%vVfi*M8pRMOW+FET z%VjKkpv-<-2Ak;_h%f+f=csL4eD;DaRW`ANkp?2K>V=TfQ`(DzKQQ;oF&;RTi(aH;l3M13?K9*~#FClui zO;)(Ho!aeoen`bVBue!R5K}D{JNXlJ+R+n}s@$VlFf;Z%$+8QAamc4Kr|-aB;V4~4 zG{SSJ4E~cb((OnC~#z|Y4C{+&)5n>z5#rIvTZ&J(Nv4 zlgI++tU`R4sjVXYPw4_?;R3T#&6y&DTi}-(t;leBVKU&~RAL(onLqf-$PI!QSfbD# zhE@N;m&WzSh1+_7$0<|x1*GWXJ1j+CPlh#|+h!#U8*#k%5snRSa~3WmNRh(;nV9pr z&xq_D7=^AfPi-kG{QL3Ym^o4DvYpO~TgAZJ8*mqhM$bXcgr`T|iMxbb-eSSu(({HE zTrvF04aL7H{K|J$^fUDtP~dNo=TLF#Ru16qdjnJJ59Y6T`WwpN{nMc|yaTJ`+8V@s^w*25l9mi=BoPf{MJo|R4A<&xk5NDK zpT}(1s6w*j6hYz9lOp9aSRcHL3=L@H+e+|CYk8I zp;lK0)_j9C3A}~QWRqC#z!}D-9W*JUzyZg=kj`n)>N1y-;}OqBu9#8IVP)@fUX$4i z1Wf?Q9n$#d@sb?FG8AyX#>K*wD)6ZP&VTP=UFlAbUJgDwThR*FU)jtquKPbkxy7bjImgr5HHVPxKmykFiH%^};(10zP(S)BX1 zs8&%-#dd{>sg$4Zu`i>~Ovl3`5nzYPzojq}3A5p#4)F zOI{Zaf48D4$#e)~(;HRi-e-h5b&!Fxu27f{zn^+;5}6X{KwCT4%aJLoFKCWz0BP2& ztdY$D!(uVJ53}UHR{>M6+uwe)7*Kr704CCH4Pn)VT?s5nSnEN4h}AZtZJY+o*R5x1SyE*DqeV*Zub*ol+EjulzMOI8 zFw9wW!PE6=RAX62BlvqSA=@)BJSWfVU?D zBE>KxUC`I)=M0|)`}&aOpOaV(%8&jtaX;RZ*Q=L2QBUpgp@+ zbjb$it?I~8$&6_@)|ijB&&FXLf3C^sc^XlNWLmD$t9Mjdfu@h=uqNoCblJ2~F?@6{ z!o^S!mo9V9LpLYc)=jH$LkZ>OCkJus_^8_ad zNgsxY%Ke*Vn4Ty)KzSM3In>@q9G3KvEqt%ojCkiRMc$x5Gbqe2wKwAYBf|zHkS9RYV{f7Je z9j#O?iN0l$CKBc_p<+GW{XDcV_SDfhS_Sut!-8TyIEU8JaRP7wNM@2$=^eHc^T}*LIcEQ zu-w}nzh$x*Qit6}+@^JW5xa&#sjpYH7RDAB1Py0`{1$fu&rPMX7@b?i;n4*?5}nMk zk}GYP=z+!M>vF=gCWdPR(f1@Hxu0D9C?|SGiITv-B!?6;w4G6Lxu$lmM8KZf^&aBG z{8`AkFxMLSM#);z8}nv-bH>4`(uz$wgV~01@uhy^9hi{ z`WaIYGM(Ak0HaXueoC5rI_zK`?~tdD7AIC$$aZXas|^>MCg z;dMrdYcxVHLRz-Jn}I;_gWjOhPeV4(4>w#+*#cPW_lTgb+jwd!<%ks|(I}OX! z%Ooi8`>G5VYqSCjj$AHK)d|n2P4NlGxk|K!WNYbGrDx${M8ascE=znV(VH`~KeBLO z6@Q>K70cM+bpjU!k2z?*F;x{eAtipSHHJ@F_ng(KPKHqboM2V1WNybfCfOp9Ad5~* z$gElB&lLSVWd=z7#1BL@VYqd|VsvfEdS91!f9vCYYKcTQOygu3McLak#GvI6Vif;B zbCMVZ&P1UXUi-XmI2Rk=B?_7+y<1%pDgQt=~p?5r0-y0=BDzyX-BWrz>Z+yIAWdMyqT^)LFDFWJ9Us=F#jQKp!$A%K_o21(0(0Hdj7bBUlJQq*H7KoV*Z= z;MFGB#;R8ne59_R?#CUyf?8E<6=DuLVLKmh} z(C8p_+}CBhZOLoZH-ppr&uM{Z_gH;?Rm#SpqhQ2-@-({v>W|DI)UwMQwXCKCGzqnN z`Ic0;wn#nU9qwh9Mu&ahKQpnqba4w&mmp|Y;S+%6dB6h{GSs8ne1Y#a49}x8=&ZMi42K3d1qrWUd8a~}Q( zqeiOYds?e>Cgx_i{Wj8W_x#@C*hH(lU!ZN*K0Sr;_6YZ6g6TAY+$-kN|4T!=Hvbxs zhJ5%tPQKfV8?AIAFycmr=(2!#ct;&Ztmih%*MxUa5v}wOJ(t3)k4ARtx*jM4>b<4R*UAK-3L$42F!L_BQZ3ZaAgboL&~?>Ql11?u2A<%6 z-v>;OlGx8yq0W3zAf^EwXAkeMbR`Ba9VrOKxryhJ1VRCITc#J_g}@#1hE(&G@kr2T zs&Zb+?s~Q@-0AEM*R=TahvYpohGhc|e@7n3vZG|d1E1@ym<3qMl6!mkk8;zo6OQ&vA4fKEPTUdCaQ?8q<0ANx z`uIT_1nA)wIRCWW*!vyIQ3w#Fu|6veVI>AO<97)H8h9>lo%UDjOWLM9(-(z<{*BK$iPmshFx4s)y$J9r zD;8ZsR^wEm*s=UsO}oQzQu5g2jskawM_CHLrY)w#XE~drK}=WShs?PLo`_P4LfiLr z#|~xDYt_?!izI+1*=ehe)+ zRqzNZQ@>3wCDdgO!raU;vLxsPFGTJ5_(s+Fo)Mv2-I~!2l{yD)m3Bz{Tg=guC`i$a zPV(Gqc9wY|L>gw#wl>6d!W55rCDg8(%6(hECy(OC(^$>dJcO~zFF`D~oE(-e^ZTx< zs&gBuVmXutB%Z(c&RjNWxUuS|Fx2t4B66!Qws=A2sMKIf#x!QuL!uwb3Mq6*$sRWh zw)6Q+(G7y?JEtb;s`BuREm{o!qJd@;Po*rJVt&AXp2-33?c~=M1z%d0JWN>fdyVzX%#1m_t&F5U%II@GKm1?1 zcy~ajprxx5-%sS{oyo@Gz8#u-{VXNaU)S!NOe?xZQYxe!Z>P}eRF)RjZb#lu;rEcU`CZPsI)W__P_Ci>n*AlUZu=8k`TH1uc(u;YuPge>MtaW zLs`7*$hi)())Ttts->M?0P3JAFjH%Ju-$TKpSTfmNgj?I4mxE5kgp+`Ne^>4gY(3Od#zyQNTAYzMWCOQpZh4@{; z72u&mdAx4)TO0)xYs5cD3py>G61?A70Q90sx8Uchq6yvvH1qJev!QCpX>bx1zNyOy$D*zCZ zz=9iLLY_)8QvOhN-xye!K^PPQ>}%NmH4y6SgM37vV#$6Ai=d=>6CS(Ia&AB3i_wIQ z=eaylB$#bmtf4-~^fIm2Xo}Gnf`|CYetfe~xg^~=TPx3{%bhX#lg6Bm|1APxy=`ZR zb&w>XoWIoKogV4*Esr^-X`hE8H4a3xz`&b^1C)9wN)2RM(n1h>w3-{*6NqnCpa+^l z?2FpGkb2%lgtZ%MJ0KW)X>m3?3BK@MK<)NBhNJqEMJm2miraF~VO5D0OeyZw>{V=R z=J-|We?s>VqR2I(JN`Deo0IRd-|Nmjo(*BDS7aQ zOEP6VX$)xR`)D~8huk9(ZRsmLrnIs4G)AmC2X(~0C=2I`aJ=WVgg>Qmc_rIo-g=M5 z!A|%25Jl|g(VVKiHv5DqqXYO~V+~d+D2IGSCY}U={+gg>6)>WVRahh*d~|fxtM!uA zO}I_YKz`4aVllP_%6a0QzR;An5f(LscV}Xjc_DrzgIqj3s~OUej#tuD2GopSOkDHz z4*+nvHwT-ik0k)3`{-V;H>!nMQEX-my=)lyamjrCVhq>k)3YoMJgh@e89a#md*^00xtd*Q6aiEy$o0PUc@MdyoRT6ahZ z0l8_(2W-c&mEowW_CIaIn2|jD!xUqAYLKMmpX1he-iW`3V=>wFTM}!J8qX!HHy8G6 zRa*@q9B)3-+UL6rb39Pq8L)iENA&-(613j&O<&6rHt@ZP;#1zPrx9PSZz4LRQ4Joudk&zp9Va(5Ty=C6`^8R&CjPV?4a$9N_j{ zB1K$RgVe3Qa2xNK>K~+IV_d^QMKN)qS^9>!niTweqJ1Q)r>%2+r^4>Kb?>lp0|d(P z&FMVQ1e`tiZQVuywpd}g>L%!0h|w5~1>ti!O2D8BWNul&r;9j@U4KuKrBSBvLV`VauxDz{RI7f!gd zZFR6)-_-%W=R=M2w_z3CpjO}?m9R3wUKi0rw3cCR*-EoRO2g$+IZ_p12L)=@YZce$ z`?4Zn^H<=(`weYvt)L6j<9gLJtY?6Rh|$VCD)Sv-2_T7c8B~=U_P+^uX_P2=-E}d= z!w8b-4$$kP*{wqbebbF;JLwbwXc;yi?(va-(5DvryP8bd*UuV)UOetx{pOv=n_$#? zK&{GDZZU`2=N}sNl-G*9h$G_DkPGm2mQSV`uoKwW3`VIxCr9<)rE%318Z3d^|0sFV zctQQho=d_eU@-ozmVW}K;NOaYP8=8my*nds6?}rz>(&tyi_j+cbwBn<_tSARvT7Oz zluh@*uSVfuAiWOqcdHWthP@SPeKCquNKwP95x4ffmu*O~HCB#yt|@6_A+}yt%b8Vs z278NxL;}P~a)luKx@TkhGS@9C_3oTz2Ml3|G(z{*6)dc5Xz6OIn<&3KP8uEQL*SjU z1a?4tXkm?9MK;_oc^FMfeYiVRsMG#8D$P262I}}fTwrHr3=qPGR{;>U36MKUXWeL z{Z_bg0lOl*zy6d{Ur>(srh<6c>GK7DkQf!6+99-D3pI_lkQ0M%U6_)X5p;c)nhu-4 zY>986v1tFedF1_tV{~2PnL#oB`bZ7hF{rRvdju+6Nj7V|+O?m4X@m=I{dQ#i+D4vP z5xQ94`y{BN)SO41m#0ij=r+W)>q3#!$qs^c@C3M_-AwRqX)MpsK!gR!8*B=g=An=K zFusnYoBDl?_nd5S7evTB)^LsO$8FZ5a(3$;WA1{txE_u`bReBouKGf^^#SKA)D?@r zr%&6$2||5o|B7jlKW~?vB-26K?iG8&bWv{<+-5D2&-#-N_B)%J#^X(09`lcrU6d>Q zB4>P$_j94X9hbgQZJ&fDDb%tQ2<-0x#ek+vlQBA#?TpElZ0X+C#4y;-$ve1Oo zjHB$pZ;HaAf7CxEKnzJt@n`c{gzjd&8)!DfQ%fk)UP|ve6Du$btmq*=Uz!%yO;&;NJTfMqG0 zSBOY&HW2safty!IAPJ^>ZJnMNKgP11nbCf^eye?89A2(90sCBu0_L7jP!>KXm$4h? zOV*c8jwI^;Q4e8Kdw>ifUuh)wb)@WXH{j1HSvwCA?vc2l=oS8Uik5jclqli(2wn61 zz6ce0a$_2*zfN_04Ns{b2+T1FAM*^{KmUiQFCoy8O^;LG_*2ub)VQ7cPF}f>pzfzo_urdFKn8`5^hHU*g-4Qil1=fO*c3 z*nlji_+@}tN0$4jvHkZrS6o?muAhcHiJqlr*N_tdEPqN0PAm?hvP<-Q%`%el4qB&( zPN7|jq?>|Q-ubemfSPBWZd1CSMM`_mL0ybLDy!bV77>-n-Un2|h}aunjS$FFME#Smmx z)xxn{VA`1%5S9U}dQ<*C-^tT^2Mxq;i6*}$N-;+rF!$Kw%=5+z|Ke6_?khffcbVOb z{+tPk*SxoRFKW1aH}0*QQxuF8r!0(3&!!1Mwu3M~c@SDO*cSgRQ1nP1501t1glP#i zUb%~jj5C1OG=(|_so|4j+y#7Mc5!xq5^-w~)1KtC`3|t}MfjcB(1F zht81uwfES3Rpn*%57PS|Jn83}B9VQ^1=v^-VN%gV3F`NSVd{2jLgw`gSHe zu&7N*`TncVluIXZ$N;17^e=H-ZGOajJ$)bK`hGT(n+_LP72u^TEY4d1%+gW3r5`nz zmvM6ZsA>y_r%Po`n0&rJ)sN0Ltic*n5W*8Se?fttJGC<7yITTYtYb_B(T=hKVLuRM1t5}$@`qU_{ znWLe2#t9_totBt64pM`a_opOOoP4|EiRiDE`)AR1i|q-_3rb`XL0XbYZYpji-BV*y z0k%!2AIQ#LXcdikcMJTO)pyJT+6iY zWwM*D{7`;ed;45(l1yEOvv2J@oDjUIv`5G-bX^qZiIE2;Rwdhf&`qsn`o8F&-s{U} z*9vT>fw9v-SDcxyyBrVwp-Dfz>T(h58fm0S_}w-r3y8k2fTcrL`2DLK8T%ghTrjuS zI*IO#W!1On%)1g7ZKUzR`>!R<9CZ3I9E2NSdD8FCdS{=n zAm+AyVbb$uhjss{=v+R={0!F*ZlRtVkPrOMAV46TH}N zE&nNca^AY8PQk{zWsLL1-?S5(H=$c-0`v$}tnmAQx}%i&vIXa3fij?Dv)MySteDED z9qdHk3I!!kHubf-e4VR$MjoK5$rbnzI2s|b&Reo7$|i*kR_BptAZZRaYqqq=mOmj? z?I>c3!?;b2KU)P}%$6n0x#n0ulhLGjrDAARi#KsITVmGEVTm0p+|@X1E5il}fWRR5 zKbYeRZ(gr(08Xxr6IW!Avh!AQ4s)7Yr@BZ&%M=BrYHwX z;W0;`R4U2d!v37Nc=Sg7?K&DR|!d1%Xj#a51=Ihnvau z1iMyod>nPcWnT2cilheUcTS@D!xa%K9$j6cDN2#10oaE%5#SJ4aDSXSkd3S-*?wS{=9YD5-xvGbi+T2xaO{urcX*WrsyiNXN2UC}^GBry)K%{#&S8iPpJ03P><9ok^rw1Pl3eFC zG9Cm~lZ2Wi?4j9_VmmcwxlfmLAOO^^6oxs|KA!9YikmipsD5^yMU3)|!q5^{zFl#e zmq@&+s;m?@5oJdR!8;FqgVwr&YSAHQR@R;gag@_toQ)~K@E?I2El`6Md$dJook=WpcGjPc*u&!VmCu2N$-3K}^=$PsgEfL5eiJSsUi?<+T`1{cN@Ro%SR_JdOvn#X6?WAbBzzz*kkbnk(|G*bOSWoN%v)wS(^lG6cYf zp*e(TOU_smeK5m<-P!$$Y3}06Qc*PVu#PzU&gET{dScg6lu;mJ2qRO3TVp4n8Ok#~ zyn;xT`~&U_SC$i}kbAkqBwumfIvJfbY0Z(j{Um?&S@o(&s_1sI8Nv!O1tOl=SE(jA z@gE88soadn^KWeJJ2t~%=dLb`1a-o8Ov2z(Eq^2s8nCr9-RvmZrtr~n0boAUgn{9h z=59_ABSZ+69!Sb%4vq2G2ZF|k7;Z`?^r<}swn+P+?b#m7>9P%s^@o>hwz!G`1Y-UD zv)wwEYM1n!gZ`CdcDf`BY;x&S^R&>gkP*dy#?Tvj2_AfB!-x!72+vf5>a3TJgch77 zU>SO;e&J7(djg4lN4M0?wVfIPk^u#hq@ti9{noO@-&N4T$cOW2qfPCBw2!Aw5d8)a z`;AE4ZDL0agQenQ&PE@k#?;$Y)sLssgWj3dHV5Pjns%%VQb7{U4%?n*6T)q?G9SVj zT#0QSYx6&AzHZ4OM8=Ol1O~uM>0y=$^^H5aWylbQLzmBvunjJ?(2548=Uk94mva-{ zQ5tdx9O!@{zdI4N&<~y-rP;08j&uv~%@$M5S|=cO{KKQ>za>rq|f2(-G#DI%(N7{gN=^jHQefyb-C( zlkBxBLAH=9QI}5IVnp9f6GK7Sje;dJCbRM78lYf-rC*|sfHys&wt-a6D}i_j4G)|f z=DO*Z6}Z(GDok)kLZY^@7%7&G*S5y{39P3kg+tgszbt*PF?kNqh)u@*^)9NYmQOSdZ4O50u+7@o_QVUtblc`rhjBPe2Am?-qvbV zUBN|CTMkVNL=#eIE zV|w$;rjP-_`7Cy|XlDOvPJo{=vV#f3;pW(NbSublV3X-vWLzM!ZRR{rsh&32 z;3R$+!G{G(!t&`~LL`q^QV5Pb&YPzf4fZRWmOCJgdF6SkSO7Ud#=o8*O$|^0&V#Y$SHp(zzj%lKgE@*q4%#(&C1HjlL}DD+XouQ;SZ{AgPhI06FenL=0H@j)8ydGu=eYc&%B zjZ~yX5<}m`8}mnVdFLB19Ye+V?r@~vjr)MjDxh>$rlI-eGCgK+hRPpR&iP(GFXz~V z!VxU*V@+@$1#bOfIZ~EtK_fbqFv0~r|C#ckvp&b-vIONSTQc9lrS$byuwJI(c@c_z zM(5~ZQv~lZQ0h!lfs2$(znW(IKE+`hTC9(S?vG$4g7rony|j(Wm&WAvV!N+`O2LRf zMX{MqaMcP2jE}Hg2yEBCCF<1Vbg&R{`r=}}YCC#!71l;{VXnYEiz@PemTQ|8MP6ARr{EIO z9}LW`2-MzSX{ps<#kIW*!ZY-YhR9&K026B704F``6$`5ck8JCNHG8Cu1j`{G&i&0@ zAEI~Uh}NmRt^-hqDSKI_Lc7OXqdp1JsYeLJ_JAU}1DcF`tycy(pnPpssF~wW<9%qbZY(W)+rM* zkuV!v0;AC$F3A$c(|C7xdC}~@wBR8n>ii&LPeuUfs&8}-VzLFulzYvJW{2raXov`r zP{QAG{m;kHA81zl6&t##QjFpopyoN`vh<0n;y@pmosRcHz z2|uUk{NL}@ddMp9ReHZpTzwtuNRopm+5LXBLR zTyuAv2;X|m`xWFqxdvju$Hmd3)^t_lY0JR<;bUNUfuo}{cy!Ns5Bh#01l|GqS0!ND zCvIsW6JKEEkAp(@ug{)cLf3(WB860;A;{jCgbDz2BDTj$=`PB+oY+e5;6atbzC5_8 z6tgfx9mmc~NR>nb*zsl2lfo(MRIT?#1)Nzr*-|9$g(L-Vi)HR91~gKJ!qM_49S1#M z@>0P+QulC6NmvIOvDl=!9mvNCWvI7BGtna8+_V}usxb$c+l;YmnY%lO2N!kS;7=>W(2dPoE# z98YRKiXj8;C_BW;-Q|9`tj7X}NjRaTmgD0@l|2wnR)iP%drWCFf> zAgrKHPn!tZTTJqO$&K`a$4UC8tL2&h&=%f&g<27?c>>4{3C4Lt=)0rk_uggqZnbSK zijaB*nx0cg#0gc2$t8HvEapvqdu~!4o0`Z;q7z#j_DeOv)OQLC3#BVOJlYS(1vhT9 zVSpF)u{EZo^*bj4bxE2SGy)UGg-?Rrc>4H1tQLutU%-#RwUM_F=Hc0IgZ=?HQUlUE zridOZl4hpfkSg^gwo1s?TXj}2%ox^ zBDbkLwrS4&e1jRo%iSg?fx*3bl^*hHuD1G@T8oqNSA^fR>2qD{NxpQ3xbzTOwud4^ zZ>JjLC~;fR5&WyE;E??Axc9hX?p+i*&pyvh47I5E!6%Xn*1sUQxHgTM0~vHLuNU~X0Re8LFtRCxKD&M9Ntxg#v{(_hDo zw3M88IaD^-?p5fk%4$b& zK9m-8BqaJdHDtbU!Mz)b4FI-Rt8EPPfu(X|G>4C=V1L&YNGj|n7!z`9{NBco#qrF+ zoWa>pFikvgqVRDaTX{N7Rfu`d$Y1d0?gip#y0i9Jsb;QiE?91Z_?Qf`1l8!)_NKGK zCT|_OM%_;F>DHh*Q*ZF(sT@hQ4_E8nDkRU-XDeIa{sgu_#HQp9p~q=2;@)F*2=N+v zOO<9p;z~#h%XCKS8UK($)qQ~n;*>Ki;rO2h`n5tAuyZX+;KuR1#kurM1}>HUsBS_F zF%YU=Zde%|U$a7G9}_kRT_M1t*k#%n1dqGD@wDahm&&>tx?NmR(K?lp8PgZYQ)-gb z(~+fIfbvi7O*5SFV7!r!C{?RL@VCD;qd3j&@bP~4R&^q!lVcgL`X&XGK>pzs5A8o0ph_nAO^FHP#cq2eTn%AyboY6sOk-7mWr z1?l+=b|V>?&U_|o_tf=G+)dXH1M6ow=*&A_WhqpE5S)G7}krKpGV5UI8v+2WwW1Za8p;o?Bkp$!&JIM_B0M|THkGE&4L$Gs4iMzC8 zfF?IGR)Y)B4+5>;Z_TJ#0MWz_suFXXT(1GJ!}?mjaQDV)2i62z!gox=iUvY>b9xOxHE zB5EefFnupO>>sglOl$~^xT1kioTl&EyudE=XW|tbdOEyOX!)(~I(FMASx8SG zN6YEu2I99_b15B!(EO;h@|LmnA-$|+03Qhybos21xuSp}4l>#TcubyzR+k=`m|G2D zkoS1r^1g&hpP#7E)n%`W*E7b+j25@P(TUcf1~OhuxzLCa{M3 zo!Nd4HtnTx+{p5INO+rH9;Ac*P(K^klUOu}aCi3*mTPT@d|38h;o*Cx1keER-&_F@ zy!^x!!>ESatr*)V+SX!RU*0;VhfWzO57gPrJ|C(;o1f^jpi-v_i_bCBPm3T2*GW1$ zfN<}5%SqPZ{jGBwVLM!Icu#@Bh9}P`S6!K8>?^HNR<(rja~Y(1Ykcpx*se=WhldM{Pvz-9A^HKx2*ai9_k z$!!e9lT)0S6PPBfq>+|F!d)!2TmCrHAwdua$!0l?-xkg8sa15A$otM8PISQ+jT*1# z5;Y?f89+x_50o4_%t9;!y30LeYM52BXe<8TfLxt$vVaf!6Tj|4J_vpCrSz#kpphf<-5MMxBF(j6daW7zgT*nGnii!Klkr`jYH zohMY#pF&l$liJ1KAdCGIi~9%(*W97VVsqkGcNk~K>~r=oDA`~Ajg4YG5MLD@Z-fMl zunp6@=mGfJ@EWHi$O7EDgO=mkXukbhL$zPJbZx4fBgeR##s@lP+ zq<_E7H#&Y#5|ysX{w4p=ptXT#7KBqHF*r~wNX#2&LomXqH0I8~ob;IYe!L!;l0i|X zw(IEv#+wv1v>9);T*{1Jb6Pz|O3ljKT^ok5QSy*fUi`Ed;E6iG?zvaV>TGXWNTyGa z9I8lmYa%M7DPsQ#2S}-1yR+2xZ`OU1mww`FH`G2hw1{NV56)A&o?hGj3^noj)vX#q z-cRDyvl=fPJ`pWSGUqx@`5xmJWV3#Mo}=+&pN!Gx%m@nnMgT?PkofBDs5CI3Km>+ zgO7zVr6XSJMUzXWGpWS*)cS=hFz!b1XE;4#zqZH@@0f6fQHIU?ddoRB?08doXIU4_tC5K*B1 zQ7LbZX!1jbbNu>Nn*w}7_k&kmh|~ku+o%l5 zmJEATP$#EXj1K()i)NkThFN)lygQl%w-3Y`6RUIQ&-?aV+lC3<@`qZMOa>M7pLo?Q zAtp@0KfV}6Tz&i!E0|kpVP+hMI;Hk!UbRLDfcSPE6zW-RqcvQ31X^jklIq(~2!JxK z!xb0sqP|Xwk#4__s?p7VemgD{)|YIa_XfeD1;0*;F5+L`|}T~5saR8!O1gV1B1kHw3&=I+vt zZWn}klw3AY>WM@>LhXf_rC7N5O*n-1S>?OQyKAJ^!%UbP6;9e>X^wt7F;v3osKC z`wZ4yGRDLP?igm~6|l;9bs$1{VVEa#YN1zZ2Mbbtvi?{yt%VXfuj2`>OM_%LjJR~1 zffRG3W!^#1q)syWA#=2@Bi1|e2;4TF03IpxifYy7*>Vyf+kQGG9ENSAW|v+LfgWFQ z&DlwPumYTJ@((JhKd5YZT9%scczdTvzV4+nG72IE258~Ger{9d?&Wvo*y?O#PG`Ot zv7Yzlpqx2o_F|BIHtn5$%I;_mipdi_yrlGSkVF;h3VBEl_H&H{1k!eMgqS*ymT({3 zmER~m7nV}%h3TiV`m;R@t6i@T zOEo~Bok@$NXaA{9!U!?~O%NgjP8p@l^c#|RJP6JrJU+IiUbIcUqmshKUIsLlGVEKS zzllT@iYN~`xF`(+11u~h<861s%uW0n>HA+!69fmm)lGj5J>eyv)6zw*v^^Ec=KAjV zt7wx(3Asbc_b%0{_fZKz2hz&RG3$Z8GhH(b8TZF!?$>PJo_h+eJwbe-l~a^N>cu(h zQhHTVQcbWDOqN%R^xDT%9`1nw^6t~xXXm9Wbw(p{MzRzOxq}F_9$`woV0BagBq>@k zXqz?Z4GM%IL&iEKfg4+J1&9CVonsY^u(m5?P@VVs_iRG%bFQ9;&qpYmC%J6pM%%)| zXar*LBiYIB&=ZRGkUuUp1 zNV)c&y@NJ?KB0q9(VZCTB-b^yeMuPxAeirhYQ=7)8WTBbh4>uBcAYF}GK~OrF{@-H z&KQ*wRhil1UF#_PKJ;SKC%F2k6}10g)2!RGysrlb+eD%1c)d+ zDh4(;tKO%6=@rcai(KoE%~O>FN^K(k3=n19?%smR{|gaZJUN-%TU)1oRLDC20oiim(Y?P zh>H6rrYb zg8Pn%g7{qSa5M@z4#R4IlcxwsE>0gWzF34yiW2_7o9{5!2W{ygR>R>As=EtGdWNOiBPSNucrVkBL!4Mw9Lwq6yd8gh z+wyj1PIJPA4XL#%qDx4fnP(pskgmyiI?#00uBwP`E9P^nI!<{$%wazjfMQUn*62ri z_^$VS-{WX`tgkqADd4TA+rJ_NUsfn#e6RH{q>RWk5q zyLkthSaf+Qosg1#~II3`X6thzpVtw{S@3PLQO4K$bU%4jQ`cI#fnwlgJ zmd7k?zGiQ+#g*vSk(JL=BPMAfQx8tYsy{1crhESggMTmn?Hi>2lQ0xvo~=^dN3BOr zBusmE{a?nz=NPAN+HHTdtlI+_&ae|5i&T!Si3sq5nsQUqKmC~`NA8eh#sIZ~-jEA( zl`RP9$$Hop-QE}fD80J#Bn&4r{o5G}pVzwcQFW3R^Ib-Kkyjno_h2f*teM;e&#%Oq z?}a5FDEClxA5q|~3JoqX@gt(X5I}~cLmafw?evot+QS9h9hv#B<(3&tkTJuX`P*k# zWFt262n=^vkc^!BTqI`CTY!tXTyk@G3eflwqaJk;6OqpO^CP{!LzcP_C$PIfJ{;)KP&D> z{9eldZa&YxCBq!e&%&29HWNaeb1tBJYG!LDc1h*6Bv6*!yUt}i}-J_OReDuiaYZB zu(e!UP@R+pc`eEdPPzAtr{3is!9%pAk6!d*z z=m0bX86&A>N2ad%{*1tmmKxN=Z}_vEC3lh}S2dYZTOFvgc`gC17xK|vwp_hO7DeDH z3X%i}w0r}4sHh=1kXHIvnJ{;EJmtRl#QpntMl!dpg9|r&!NH4i1DG^ge)nqQKOeYM zO*EDBG~L)BpWI#oqT1)QMB11J+j<~=BVQ>FoC@}|y2aW=g~T}r2lS-*)f~qG>@<{L znQTjK39QA5zV;+x-$6I7k)(bWiajBY27e2~FzvlW{_^;xzaSRCei{lpwCpy1FURCU;$d02Nk_zle)@cH(CHDO1@Os$Ycg>d@4J&&h+Ov05<@V=R;Hz+$=v{JT1~(+LJ`AT@Y-_a#TLo%50AL=- z&f+|IZq{65FrX(sgXC#A#6(h7*H@qfz6QiaQ zk{YJTE40y!M3-4IF6Po^0KnwtopY-=N}=fT&v2WiRibzn!58_porONY2eG#D6ooVH z*}Xw*DBJ2=DD5a3s#w)x8qh|tw(rv8S^qAT5*qJ@ifv<>kAMI#h>2$etLN?Z5K45= z?Vsd>0P$c5Y>elv(9t06-8K;Q8Yv)^FPtJ7gj1xQ74nO(gMhXM+!6-PNZJ`o{~K8{I#jHS#xfRdZXvj+&BG`V0F70 zk9UijyobIK1TBuw4`HCsNCBtfUbp!K5nnm4PDThKdRYmtGYSmjgKAbJmyhJ1FcPF_ z{+D$gn^b0u4!r(zcD=bxTmYIG)X)^20C=r9CG8kX&SW6~cHEMHgW5goM+}{zu}v2T zy|uc;-m(>q1)>I5NC9Ekj!ivi+}Q#=b+fMSKl!Rws;~rYPXwJ)23BW|pDugxPkJVJricJr)RFf`A33$t^f6{md+bJNMQ0pnL z$sM-P;IS#Sq8)r$Q@7Jb7R8 zJ7aC{?E90!QjuUn1qbbtnSJ#*{DtOxDdm>;H2=56Qhib6Bf9 z85k@-B6KRhJKok@6$^|N)a3+pEt)mXOnnx&2CE~C=Sz^;^qC9J&MJeDv&p!cBWoj8 zhhK=w5{*zYDXqa)E(p>9qGx35Tr7ph?}TP2yp4k&_JQfl584FP8H=%1eKlk^HFbk86@v{jmL;xL(^sue2O>vJp6 zlgG5`PfJW=EG{y84IqSFs=^pe2D$fcIWRV4^*J=@yDh)K$)v(c{v^ySc{{oaY+J$h zg7bb+%$m360gvrXf=&}bxryMfSD&*uFa=~U43nL<@$yp2sXw2_ji@v?4c8M`A@GHR|*p&%nAb%7+byT?aoR2GEx=@+4(`g_@LtQ`8*|}Y)@oss%F16Q){Et zeveZ-;5_blq2yabhKsb~OrNGDiUDTW*{xPvd8tYK`l~lRSc+Unk(#o8w;Xa}<k zIuw=_zxwTC>r8wdWa^w-G4HFaMLKft3F`e`!W|Cz3h#1`_w+Q69v;YJ?+jB9j-o3O zcwCcI7uQb3j1^JXtk$D)vUtue)ZII|9aj`=9A2gAiQQAut?k`=lbEVE@o55Eh*EJ7p3kFX5KT@6kk+v`2gf`ubHH4o#%IrA#JLm9evOYjgTyii zA@LGf%YR(<;xVm0anEhQcu?LNM&&Jce?RWPM7&X$>3XRbqOzTvo<7kQlT0#tkGOMR zOALDU;|Fu%A`0od{R}Tloq*&Z;X!({iExY+ELWyQ{blo{u<}^!BAtzMzKtZdd~adL zG3XTX?V(>UYXWn*3|cVXUa@b&wkjee{AZPdkY)~@oMu=q*6}H;Fgg5YW;vN_G95wl zBg|fqn!XuJLO^}qe>eHW|A`Z4pQ&X6yKMOJ6lXG(A5Zt~`vB4fZCbuF3um`*pPi;u zePNmlUd3-ahIbNbwqIQDXRk1GQpqWq%n;N$@BptOa^@-lMw*$}0da0^ci` zooRW(3;_tWbr79!IdOrlv<9(paPJgmnI%O`Y%2{HGZ!C0pw$U@vOOD3oyB{W$V1Amj3l*eq=SXcw_rG4pgKbQnaQ{mFp0CJeadkb zm%J^2tbKrT92)E6E%Um*Awak8U5KIp8;bG=ZO{UPsF-_ZoQmXstpZvdiE1 zdLZv~$FE@Ey`X){SA7eAzTi-S`RUH#>ek)>dN^(w z?}m&VZ;0t%qOYO&Vtjh$O6Z)>F4&PdVHEZcB z_{3>o6IamR=8i3la#5a3JNRB+wDTm6B)oh~U4ZfBG|)Vx5Qcl&u4ZxIfVCatfXU=i z7`Puzu!9S?m=d_-cJa}nKnxG{fUQ_`9!+BYG5-Poz&;;`gF5Df8ltnA%rR}F^j^`v zGC0Tk@6?^ydE5tZ^@UGgC1mcnp|SPc7Ew*X8NZ4W_6@J= z%TsLBZit^fD8@gOQ@y5yqo35QZLimx{5chJ)v)LKn~~Tp7{ax|xw!|1BZy|o%m!R$ z!H6t;c2bGcnONR|2a@GH0nKbA@OrW5S>5P+i<~9E*wvidvmRsN0$V{ zDs<3CMHDp9U*(&*hL!X#Pz@n>(Rh^Srii{%{!GOUN6`aiOovcL1!l1&loutRZ*{lL zn%od6^vn4BAiJzv0#kAMj)+<|fBu$?(Mi91x>=0#A;U2%RlgOgKK#rwcSLPR$7QYf zuK-44eP1q)2Zo#@l*K5+G=-HR9tjgzqpc<-uSoc=Ct=3z)<511E+cr%q7te_Oe|`G zHa{t@XavJ|i(tuvh2P{n1zwd@Qe)c$Jb^A(LQONWWzcZy->h zXQN^6ZhpYzB(5X;@VR%77Z9PH@CyLjbls%gr^Xy7?k+eRXA-0J`GjHKuDrDRAi#|Z2*LBD<<%X#gN|U+_waW5Txr6#-tq@OuGB+#dTxNoG-98PSH=wcU@comlXJ>E_4f;BEMP zlDAl1!T%G9Ge3^79wK1O_Z%lD;_Bp?%G&m@`?4xV%#ht^k0#;#6%F;yiGgBMAMhH~ z#KmR{pkb4z!rE_)vq6qQGb(#8ng#!}C+<}r;3$vR3G?J}X2g%t57RMq@COX`sHjK5 zvSMBUsr|Y@yVpw_YhBu3qRFxMY~LoRVCC8%zd|EW(>yz;l>a@am@UE8ukh0t{0XK! zrgceC7y|RSTZ3OotLGwn|BIi5KX{ANAS7Gdcob|i8K854*Y%5f?W~7IN$prb_2?>=%C$VL z=Y&_L9A_VGQ;oj2A!i3H1pu(7hf9$h=CBS4Ihjqx)LG4O z3w^_d&KhJA3)jg1Zt?6J{oxkaRO@>L?_oqf)HXxlJTkCb_^!!TQYpCEYj^=Bs9918f6=;rD%HB@`#zIbWE( z;#%-#*1DBI5q&VGm`LdL9`B(W^Sqm&78PGSmO;ptGOUHl=QqQ}G3UBd_v)o^IW_s` z*`wey9z#Kq5LBfP=u!TWTF?I+UcNxXLC>j9LiSji;5VQvhaJyHx zJUTcnRcSAfwrZKn;l;!0WtIJ>YG)JudH1;Y%)gQ3P{|-OmQlz2=&a)lZeZ#l`l!0o zW`Y^4{||3z>ySE9zql;^1u9j%uQ-sdT8$IIENlcz`|G)(9c$OLw4j~JaAZHXgEAhv z5mVf%zn9?+K&8(CNLKVqFSn^p{F2>S8QhP$T2pM-8YZE$G;M30uXsmh(c&uV6XdgA z7b*BB@jZEQ1;t09)G!<3-K4Li@qPA<8#zkxv;#`fj82IQ)5>%o+op`OeLQ~C?C}2- z8iMlJ%E~QQdQdlM-m2l?E9Fg~5xuRn7?b8Uq426qo`3JHG zk>meHC~lJOPVu4*)P~OQM63Pv=PrwS6GHaDd0!NaKwo9z*n!Vg1*S$6BZvQdWPtlI z&EZT0wJ$rRf&00{TaGTI^eE}g%UHPKeOc#r*yUF>c%tTZr&8*`UCclQK_<3Ffv{D)0fyJSU{!0SmJ4}oP_9mmaeRsO0f zT`u+KQksHpZ3|mN#pBG7!+Mf+3YUidWeV4gLW!YD>$l^Z`Nm!q_XX}AuSOlxx2sW_ ze$d*hp**k4s0?Cg0LD^|Zp^XoV23Q(zr+Abv8v^~xA~vR$<-UG)o3`%t|U;JrB!Bn z$J10xFH!!X&jJ4dY}n*8q@Dfo?U6U8;=2$chF#3M$m}+q@Kd?+(zvUEx5^TAQnot5 zwQeR-_6${{H=d+F^wKMWC?TX+quA4^lJvV^rFS5@u5mOjF{>rAb)&MW?TIbz30laC zs^RbKbhvG5aD1wCVg5s^J~qGy_ALn827*xkfVa&z=*k2k$*g*wE`R#7bREa6c|%+C z>Jsc1a2O}_@H{^RnR=DPuA>{TTI4q;8vGLUeC|v#crZ>gJbCs&2FTG8_V~y@B1Znj zXl3&VuUcE4cSU=(z++%}YLaGz5<*={E;n@`Pem*(Wl7k7r3%ga>QjY=97|;ou*BPG zB_5%9@SjIlj9I1$t+rh?d2nb!ls--|Ync;Yd-G7rG5$56k^*JC5`M|AX6-J@K>aOg+1%X_sPEIH`kz-6aJBS0`4=Ts?&wm&RtHS{w>yd4IDl7x!-Q zwcTF~mtoB-Ms--Ry;Z!!FMQ|EaN^o%g)++dRjp$bz9$X!MJG>f$=l(Y9{DsV-&d|3 z>vV*pHY)Q{Cim=pWF`dOAWYq)QL4E#oZX@qD4zV#2L31bd6KV#?NvscNR!t#c8r-HiFr2x$KsQlWuDC+#L%)8` z`}_nCOeMFGHl-jxwETK)lV6>-DynRZubgBNq74%CcC{PU9NWWL#u0_yPv|R|q&}jS zAOM8qdKIvmZ8GZmD=`)Y`+G=wOII+JwJ$Lsvhq;Mnca12hFqA@ob{n`V8*5 z7Cg!E$`L}peN%M%Yyu!UWGqD5q__|KtMf&$2_0DB#9nyB#n(oL(t}E_T5;X{EQHNc z>3juNOYQm~52fk2%avID`@VJGC=F^vfFbLzJ%dGs&mK^&2C_cL=LE9|o+Ym|v(jTN z*FM?yS>Eej@+Uk`K)~FzYAnvXQvNGOq<@!o0^#v^6R=JE&vOLgH1uc$S8oAgk_r|@ zDPL_E*+sQ5ce3n;o{H#_C5wnE)k8t@7fs(VlqVFYSMdWiOq=q8HCf(-z&3GI#>o67 zz8ILTs#)@-BhajJ}cC)DkkHAzhCe38@^?~?)?!2lCl4_xN~_gmPIw{ERh*S5n`7#UA#{fdX1$x*!qZaIXLp=n270U&zKy8z8cT3=j$etc_D%dup z0)p*5kWqVuT#+f#C0*$d6D&`>J!qBT2kzw8OONyV*jRWEdPtV9??%lHXZPExequ;* zpd_M=7B7Eyk^otM{hPn{b%GV+cuDGc4Z^&($lLY9Km$= zF<%vnGU*1?9p-5}iy1V2N

    K&alP}Mk*H~rP8Hv5jj;CX7`H@#rnaFdrbIqYRQKa z+j@zy1L~o5gV0ncZ{)XsX?Tb=TYB z2lJS|^QxP|DSNNQJ5eR~7V2cQC7n(6VKn5<>^6TP^A`~4LjJyxa3T)2G|!ClZh3v2 zQS*IbNHIh;*UZ`fDz@l&^wvki*us8QTO5wAa!@qte?-+p5J7^(?dZ}5Y_p)UL-+UK$nE65pHYA-uB)u8(zZ6IL`J#dHnXG-iv4ihBc`0R3gSOG( z{9)am0BS56Hpl7rK9hx%BP0{???gTvQU#i?F!}U?5drA?0{{uZl?}VTdEt)+Vk9*V zUxMB`_h?-lZAo>&ImQEVxwGwQkL}xSz8g2^a$zSPm(-^cLg9C4T69XG{yyJ7 zw*BY<cu9Z8@*x{A!#|ioNbh zn|>^%hU`M-ex5|*+d#o=VkkDu%%nmZ4gST=Hz2pcC z_VSa66cr4mkE-$Q&JOb!r@%|;-sQww35K?%EgWChaFUIvH>o-LcuJVjy2Hu>#Amt! zpwcKtU%MITN>CbVz+2zgjX8W1H1&%Xn%l9V%jBy8Vs5D*a zux(0|vujSehmTtsw$TtC88NzM0ze7hwLCg!jyAHj}D!chwilxm1 zGS(Ea^7n%8vT6G&2QAZWNQ+9fAjtcVLpTYZ)ZR1kqr^oFoBU{05)>aLiwf@7_(!@$ z(@6$QRuLn0qUfS9l|7*#hy3pHF{5(ZlTZ7t7GwZ8emmFe2jU9iJikcX1wA@h*rULC z<9qNFjds+cBs?zlVBEQUh@@khvvukFaitkEBM^eEgR4ET!fci}VUe_&M$1Yfd zcH-{_()?J6jdK4%Gmxi!=}|_h)G;}lM%voLIY@!}o-_*F_`oW@J|E zYfI!oEPqG)buj(Y#BH#+`m%I&QM?Scb0dOe$WC>w(mQ=L;I9XX)@8UW&f0F0^gf_1ep8;zt+(B%yzDz@!UC`rwT;}l==hS zXkU!6zl_ZJ{!n`v2X1d=FhOD9wG#Q(%b_ttadpCx)&NvZP4m?acd=b4iO>k>Ti=f! zph|16a@U=5u0!)D=n8-JygodvE@Yun&=ylSQNFfkiV-y}n9Y59t|5)+yZ+W=msVDp z0T^i3IRd`3iaVXH&E9cVV9726sxVTgkB@v7IwdCeKOoPxouL>9ic6ljfhQfF4EirL zJM~sRko@@QJq>%~^cXe|*Q#fYJ3mW{6FlEEB*Hj+SX>c2U=%CJY&Cljzh!5-`n9zdon}HF)F~iK$lN1>4jKhb@_DInz9sL?7#vs+- zZ#w=q$%on%hGPB+T8}i^6&!{9v*+_OmN|#>ElFsFJGFFF#n;6i4Ux3B-n53Q25*<= zj0Nkb<8r9O%R~+V7uUny^IFH1da^|8b*T(wI*@ZY6c?ZEP*Ps*rays!Q)j>QlLNS&R;&CLdfH>;Zvlf$AG z*Od9IK~;~}x<$ypx`n9{C!m53RaPzvuh$gI$S>G&BE6Nv`tU zFb9@_CP5O}@9$ftp__ef&UzBkwB;*+tR(k0CL142w}e9Zx=GpY{BFFdv7~UqlI(CF zb0wif6^~-0&CQpLvsoj{rK}GL!*7UeR&AdGXz+aiE%Q230&qa$pH-A z1XtQu`m?F#Mna1m>LxPum14xo)Rg1;19K(Hxz?pwWvO$Oz8H$akOFJ3p3`tAN`n|C z^Fps-W-kQKyHh7AJGh`v#R%_s(cs<OOx^5NGwoAw;)zuir=HU!hs=_Y7>2YW( z(HA(3a^@d;d`46mUpa4ZRb?{YnjnF&^BNM}4?>y2X*0?ZOv-vC;;EoxvP?v1CwSKb zUci$D6J)cA9`vRv31T0RB(()gM`S>p1{x!LeB$ZSs$=F)CHY}kq&~Vi1Vd{qZ^Uvo zB=bkXxh^!KuqDo$7QZ-KnBX%EVeWw1ml5jYzAa1#2S!F0;A?Iu%U|*BM`jBH+8)Qp&sW*vms?|{>!X8F*w4R)Th}dhDn>RE{2fwAcoNtNrtkUP zchc!x1oBH<&N`gfn4i?fpDV9MFgZNAjWnG`jc}VyfRmzPWUeM9I=2m%P4vvc@?_6L zBnI*47g7jU0lPY=9YQU2%^Sw{n?Q&VwD*ZI-vnW6K9NfvKERrB8(qJ~lEM-MII1v) z>2HADFgW#j@Qd1fOpKAwAHRL0Ynn8whg@{*cFO-Y5v`V%m}P;&=O~(31L7glZhxb3 z-Z{N5riU#!PVSS6`|B&Y+#`h4`lhRy6LRdpa4#hC*AaOB`z1TTGgu!c z2uZ_hZMO+Y8P5ahnG5Fc7;mHG<1>7HgNtTW%LZx!nxOOvbXgh0fZuNDvE@c$E=g@y z%k`6g(3yj&uBWsNIw0_){`a81hCtNfXgm(-B>>)hN(?S#h{hpr>uAdz184wr;l+CT zOFNB1t<$+gg!Tf`6v>BjD1J2!Fk2A$@h-yG$VNi3wjs>5LK6DqA&&O9baV^J=tucO z=7cUgbX8l>-(^$yzb`=!)#(4KFf-FuApT#^%{{S$@@nsydxR=o_hqYq;1;pWv9wdf&=%3t*DKtfMp?uGD4<)1_?teP6F@IO4I`V_LJ~+k202XuBYHQ!DC(2g-5v zd%g^k7vxWJCW9OTaL)5{oHT9RD~@+Rl2}m&Q!@8;wUNPxWUIG0TR4F8TTmg}tP1^h zu;8IhDjFVLX92g2hW|y8)ca3NAq2J`!I2RFRsWNKQT_ro&*Dw}7Su}kYjo>6?vS>7 z)%`$Xbzr#m{9^OC)WCK`ra$=|<)AFWo4CII9ff_8PBr`b`4l#U($ z>Fs{qNOVGqVRu0wEvtMt)NRV?Us^z*?FN0%G^ZmJ?!jeVTqDwF1$9AB`YD|AFyvf- zjq*Hbh*_VN#7h$|jf%Qg0WQ`K1vQ5$*ve!?((5J3gG>Dsweh@zy`ezm`dmFz1P96egDVOH?*oAo zE-9_2I;WA@;umA$)bBkQBCWMvOO!Q{aYTTE*#-4yBt#43-9B)lW($oMQhRrx%NlGC zgFjqfRa)!WnaoIJ!u_oFF!kg&shzc7wc9BoT^C9%D>uT=Kps2-2fiKT2p8S+&|hc!6C$ceOk5)1HRuX8T(j%k=qOEfmT0qf|3^ zC)x!elblJRou=6FJJL#*8^kvr)v)XbHj$Pk&sgB*8+~sb?K2GhHExTWCaxpM&~V&C z*ue{#UkTryBVboYRQo$_sQ3y&=U_FS^A6j!ha=#K%;iORFWDMjuS{wCfsbXqZNeH{ zL3`33aJOsn2n)#WczAj6wy{mN0uZ2kF0^3dX`yb69j{X)wGkNNBB4vUtaZWZh)HfV zQHw<*lx%FvtQ0)m^qa2kc_W=Y7k1P?w-4}Pdz~1mF+QD!SZm@(;kF*!SP_Sesv#m^ zpw6Jlf8rJ<@x&0hmrd-Eo81LX0Y!aY-JnnlFJOub)Hf3J)la<%XNIoo)<*=AlLPAh zCI$ve2&+c!Z^+~U*xPDRd#k#0={mC@7%8jt`M}x>m6euPFb1W@DZXAEURbWI$@hEb z57ulbSNBnn4j1*PG2~QGSacp&v(VD2E3#W-h6Ns;`6oUOu7fJGIw!eoq^@^A3ZLjJ z#2NZ&EZ!kqLxAtgq?A+g2}1~M`n2@;dFj?Soz6z}su&0XRd=mx>zcR;&Z9U{h zdq_bvp*74YU0da-gVI29?gDg4?SbvRy;HezeL6E`lXl2}U`OB;C-AX6sy%5lWHaj8 z=HGBxi%t5*uKH(YV_38{Z_>f-kyz{%GpU-mJ5=s!;8t!(G@JP7lmj_&Q=54dt{K(x z8USIhy>DjH$qX6-uz*{HP!pE<+;oP#D~ervNq!e0>cW+Q=cl&#_mFV@?stua+t+tz z987u zS^~Hx%KB4?N=`y(!cUL1KEE0^huH~5WuZ&1)x~k;`j4!2YT5XAWSJG)!}ZNdb!g#h zd^1LN^9=mv8|)M>f>XM1E&R9*3nQBQMwBf%8xjcX87J(o0KNmivNuQi+2Yn0{9w2E z{~iYES2g=~t_3s|xXc^%@ZtF|#<$I(2T>e|a3EenFJ`Ip$8aTaZzer@AiVun(>;K( z{{lcLPLnB^Q>U3?2CekqX{!Tb2v`NK{2d|AG_Y$6_r}hUT}dOW9fkR>WJ_yb7UT}u zxQ7KLd-^N*FA6Fp5!@z#Myj5brt@y&7yQEXq5cN3Y?WP6an*2+k+HI3b@XFJdFUAu zR9$d)36&IKZj$AglY1n{r6}2RxipBh$o1S5 z21LwW!BJNdCw$@fL4~un2IzitvUPw6Oj7fk?6zYBj6SKu6D>fetg3#xql&}($oagp z^BF2)eKLEnkmRdHmN?v2Iq!RJGD+baGf#F3>dA^_^<$cV&u%D7fh}c6{&!;L1d!ki z!Vtdud6|lxQ{6}p`P8(HAi}2kw|>kD&Z<68^>0(0y4*btJ1RK1=!IkevF0%q=~aCA ziDjsyhe7AgH{(7HMRl;{_xM3&)W%T4^WfD`l>yqhU`bSx`4J^!23go`pgJOcY*9|k z=Hhn5_w~dcxv>RumDWJD@?rzYb=3~myo|Ig^j>?)I_2&GHV{%T5tBuOxNx7M&O1ei z!Us}QlxIk3!HmNcAUIrA=Nx9LPR;f$lnhxxQPY|z=l9`bvzO8iLb8e)8m&(qp7KcT z4XCRe&fE(Wsr03Ibx^)(R=@H#?(w|XHY%)b+gVMpmjMr}r>0oqz}m3Z5%rW z8hl|)#yyK0lnI3~0!QT)uL>y`=6uw5P|y?R?*t6+cgo(emBr+|(j(wj0zGk?C61_d)U=QXq#Th7yTIAg=~SQpSrS@ffo zCbSet2Z=Jo`II4~PIT8IvY?Q1uZd)iA0N~de8q*@07YUg(JJswGBQ9g!(B!W*SRCj z#T#b&{cqH{{TRXG znhVuYH4;EXP>LNM8V!z4l6Y`9xpe*cWthJ7_E87=FlU%*HbF{(o+ZjXs~Pf3mtRt{ z&;%=bfsO~d;HiZk)p9RmrBpnfQvBrwU<4?$C}Rv~FG%svpNH2 zZDC5=VjJ@sGB$RDA)n~C>I^ov_L`v?Si%<;B*_HEaI!(u(oJ@C#GH?0^@bzM=|N*Sd1RrSrP=D)Xt}RoEoI_zMGcB3fSe?XBPN=g zgE`WeVYwFwC(H5Uwp9QB=IA?O%9@3-{z3c$%%@u>_3ho7y@H6wSmz3kjSyM1NN$G= zSHIimm*m|A^_kQ;`30ON%Z91VWWs~YCyD)xY16^#KslLP{E(6=12@{U#?MPmGm=zK zqFTWOsqRmYnW~0$;jP_(R99>gjdjz}`am_=?wzL`b?}`|r6N+{`M% z47@hTxw7a_8caS*7}+m9Ft{yH5Z1(rVyIsL0o$TJ&jf`F$2|Nx@oh+P^eM^yk4yaY z+bpBp=8m`K!o0$$|GbY!sAGIB^Aoyzu>{Gf05Bw&odoDd30?|z?}S8f(d&_^gMbBnf+L%k@8 zu;tGNqNx+o{u1x zlz&z4;F<#zeBUAz!-lzoXJmaGPr6uIwG;Qb=B=KyU?5b3CAY6sLE~Tv=JN}iUaC%qdMeY5foC-l0jIT znM7gWSsp3od<@3D2E~_WNbL;PQBol4_+GI8A*Od~ncY$ya4V)8dtJY8LKGaOKj|7- zpQAMztGd=SCl2($La9U&r0FmoCf%yOKK;5cu1|7Vg?0|RBmysWnGLt3S0X>RN zYcv5^nY!4CPuORkpUHRaQ(`z`b5d>jFM=oeI{yWQeYNjd4&jd~FL0U#D2m&cT%&+{ zZiYT|a;&sE7?Qh1QyxxXw{%iz(A23C(Irk+O+H(t$x@qBsoX9d&MTnng`^|Lq(19C&+M>%H4NS-@3!GA&MDl1NHb+>9Xag0cm} zHwljtjHE%)(%cu`;hl|cMLd(PmT(66GP27!aiMq9#QZ1t1*NY+eT7Mxy#TESkh&n6 z7IbRpYq1eX$g5-|50hC<6q=IEia$0DUNcb5z%C;%gg{YKlWWNQNF1R#eL+#rvCVb7 z1A6<|Tn*e!D2s}%>d1YOdLaoqcL6Y=f8^$qV056MhG2{m+8l|3z~`RZX2Sec7#wes zsdTN=-}gXpGY6Q?-;}Mmt6nO%_zSB^)&YHG4>-PT%1{SP1aY>SrsZ;9B$(XH)5=Hg zpFVTO_-I$XM#)fswYg`9U@h?lF3SCP5pbsDSJDt9XyVO%r<;J1b>T$mBmn6aAAx#8 zmP54sVY3%`ZK~eJ&*Lpdww(Rq$>ibVs~ZA;bm}|xC~M*t2BlDe@-L{xOMsx`z{Akw zAk-X?gB(KfGywA3or}p1=p|5OhbN>B6?wMir$wgB+_wUDRMYG_Bh388m|hEH{sYi| zkYMTsyYSOZ^B>_Q+P@wu%bMU$K0=y}%rJ0BpR>?*NBZRJc0%Ab7^hoD^l%-H^#gs* zWx3(3zF6!8_PGc4;9J4#>jVAjgf#s_9T8q3)gJ(~`(oIzvz*V>%-p)yPYg=fTGk=AxXkNE12wc|Vyt_9}y7KEvcJI43|Fp=aa{3sP|&SVwq|@!Cj~?u9gMgHT90=obozZ)gs+%VMSN!fv{L1=f~$@F&Jmh&GkVQ|Fi0|ne7jX>F7-}-47cXRZGhvR z7k1mvFcj0ReKYIGf z$O_1fs_pWLpd&N%=>Y>H#*l?6!J7fI#8ZYh!WXQPpoE2NLl(W00{o!r3FCxk4rkt0 zo1J_bf5zdzST27;%V0soDRMHNXP0kS)v_m?<`Gc=h)8+gxxTmZb@w{6z7F|?o`J{M zjf?EFwU263ehCGII@dmU`U`>#23UHE61-~dJH5o(OABjx(XQ}vaq0kk;;vX++04;nZyp_Z6^tni1G1y?Z4;YLUJO@W8o_BgfgjDTFpbw^hyyil=4 zK%=Nt_!OEQ^WQahMz8sM@2CU4P~PA%SaCTUgVO~MQZ1DlVul(h9NZdWca+q!9!g>-*= zZ=ECmp{yibO3$xCE|j3f4V$JMom!RBxIV(SRpnkjw6J1qEHHS&o_tq;F;462Bv`He z@0Fa6xEA_N;NUKrtm{pnrIsh%u^ysrKBNn)1UY|+8nMGRXoT8YAI>N)2{ciN_k*=t z=NRWD3W7GhIUKsC5AJh!$(`318%<^!rY@?ir*7AMPc}xZ)=xJV!?$1lKW|YKn7+Es zmNyDE83WL7DerD}ORK}-=B%dVP^>In~jf-w!Eho2f|crSqY6A#7kyI(ggXnxv<><-g- zih&@)b?dE@UghZKKdFt>=(l&>Ob5)8gVXc@+v1E;nH_kjzS%A57&Ai@zdwIadaXT+ zIDijq&Mv)&vco4C`Gp)4Zs47=#W{kgdO{`B_4R-bJ-DDeD{F!(J{(Mez^kIlHMInY zb?+esBNons!*6#-Nlg1|w$zt+aOzjoeLerKy4he?*JYMkwJ6X;F+yUPPvvAsb)Zew z3(69D0qn+`V|Z+i`BwrlqaHu4U}_=-LiXg<$ZZY4+9X&04e-4&7w7?bY9VyK1SqtWu6;mg{#d3nsF7SM=)~FnRd!bMJ++Ys?n0)X6na@_dqt4EmMA6S8&b5&{@-;-F8Ljp>XCfQV05dbw zv&%kYz7a=H+Sko04=C~CFY7jR{1%Nu7BNEw1ew?<;>_`YK!gI-`Q(`(etfmRPt00Ns)rLVsNKG-3SqJ2NthSj|TV}wT_@YQ%2kNSa8N$a+fA{@K(!FoKJTbpP!XFcCH@;_Jm`w> zI|yM*&M4-B>$>Tr&fzlf{|_h)kwjt4t1mGqgTnKFK=yhY)s-I6YP17rU9`UK2Bs=} z_$V7dg`8|P0XD55Vt#=R_}A_f5C8M}bZPuk)^Z<$tTox^su0Q(je=S-D%pxN=@=tJ zw;!m>>$$#=q5V<%QnP&rD?nwRNt^72k_xvK27D;~%L}=_iy)kHl^DA;=`_C~Bk&+e zaD$Jf&~?ues9&d=(BEm&jg@wmV)!z9ocPxN2b`SUrBgfxIfy> zQ$9;@TjvkOVrVM7q?z-*ETi9PsNKc4o-S`ZDN^&W(;R06N6K>JBQ(2`fN@uRrE7_Cd$JB4k@DUX*RkIHTD6ucq5D9C z--Du)4>3|%DqEOFfyUtRX`BjjUc?xo<-7K6$LQ83yM6j)KRdj&sm>e^-dx7%h84_0 zG!g?Mn>{rxmDFrBUK4?xYL**+F_x>KK}`*tv>DlPI2Ls zn%JlaJLX)X#y#;=_G5md%7TtAx8#6pJ>~Q7aE2fG31}T`G3pW@;;x^{7+s8?J+P8s zH`bU@2$1EERU_V1{Zjx9mXNkGofuJ-4T15+X*E2CCy0I+qD$3p$KMPkTdkO#{rKk5 zW^V`6f>Y);R4Y4rUj__m7m;d(%)n7%02_xO=-&14g27EPqUIY$Cll60%|EV`o@lBp z{IvX8Y26GLYC^O1x|Gp{_r?7ro9D{Bg`o1zamcX!ev`l7Ar%T=)zEXF?u|jy4RV*l zz{HC+TC?H<+;1v+aCV>56*Cu5;+j$Fo#-2CTMVz`HPcw7wvC+4*1IO2|Xj~bKHLU*!+*IABnd}Ql@L0Km4 zey@3`ob6*jCgQ9(Cl&RZsH(u{v5y%JAOuix0=+>&u$?8{*BF^MMb6T5wh~^BWy8zgaakO!=R_D%%2NYk^cS)z7Yti>e_0XofhYx&P6r zV>yc!2{Ai&bA?a|OvA%{xt3`IRtWj!dw|=aMLbMAo-wS4Ix}koHE~pndmu)pOY0{m zm5@#OGv)b!LXNQybDgqQ1dr)bT63ipo7*BNOyoO{VV*gJ?n=BS$R+uL>eo4&|JW*b zgm1dTN!Gg_AZG2<4(@pd5Yu6Q`-6en>55TAacw!8!aLB+w-+IqxT*#_?0}hpNVUYV>JyaaKN*}Jm7;Ri)vr2$?^2Q{#Nav0 z*sh!Ruhvq z?Pt%6b+^;4g?*7@U82x`aBwIgk*OAi*CtuRGsf~>sV9>YXhM7~mg3rd9|{jc{4wcS zyU&>-8FxqTsY#h1cXZ18?OZ84z!ciy3^Uo?@mQjdDy`h@l1c|TrN2|OCBK*DAkka zBZxlAoAO_i!%&6UfdTSiqR_npr|9>!Mo$AOlSDg-gs1`(-^WAOA= z0>0vpiVA|F7lU9m!vb(ilVR?$34QUn*9Z(2xQ-^@0byC97$9dL2P9~G46&tz z&5PJ*zj7OcVNQMR>D67kMQ_>n83e&0=(n(by$lxGsz1Jok`Anlvxv`e(m1%yY zfm|Z!HOt`~7j#VKF`*)otNXkOC?;^_wSr)M-(0PCtSc*D-r3_@*xHJ-8o&ZrwjcD{ z35B#4xK+Duo#4d=qhW=uhKka4b?I{#ftlSW%dvhUkcsNpNafjLi|iK-z%6JUnupO2 z7YzieBAM_Gf^;(6y$=t2j3MRd+x*nB$_$=d8u8tfPUr=|m#(gu9v!UuT@TrrgZbt& zvU=?^6U19#J+Bb=Vk z1OVX`K=hRtt~;q-2J{|+Nv+dUM|yC!x8##$jCxOR9bLas8q5?|jPFblRnu=M=Z_|; zdXn8Su@@0S?8wZ?Jbg9%;e)75fK%jp_*5Xb*uDpE9R#0f6(y?Oa-_g4NKH(QSM))!KXF z)L}#VV^|e~8!(h!CIG>gin?a-H>EYv?aa3G*svNwj+n30>*1R|c@FgRZ!)`l$7+em z;O_GKi_tOlXv7BNHFxAveShVotU>wgQ4SLa?Qp#gyJNQVv%+omu1$I8B zDwYfG4*8zGNe$<{`5VmK5+~TF=2|}Aceml$_;?$^gExVLt^QEl`!kDe zLAh{e32Kj^3bc2LPFC;wUOOe_Dl)Jgt~s+vr^9yjDhdu$*HKmFeHoEoG*@)7iP zRCv-5n!)~90ZCI`&BJAqbB7vt&C6<$(9ztnE2wue)6mK(4vJ!NWhyc;HMw6?LDoSl z+U8GdwKnMFXWM_ndHfB*DG-J=Cee*pih;(kDwg9u5GR*mwEaOc{28~c8$|njeHcjH zQA-)f8uVDM?8jgUei8jU`%DN`SGuW8_-3xy=VKm@7xkjnm4bO$j_7vYl_HTf6mJ-W zt*#1V8F?_)lxpvI7mt>28rQxBQROQA&9xLHn_$V)r8RXyemr8gE>QUQeQ|^KTLdq9 zO_B}BmF>e?1X^qzo54&$EkuAmqIvk09XlT_!a4CK)u*CJbS0hE=M$g`2;t*1=ZP(Q zZ44I6^Gvtl8bE*$UgXmqcr;!~at)8zp{5D z%2#(*X7ab)3=t%1_mj(*h|3f)^QG0xx?uY3v%c36vx9hOjFmZ}Oty$1z!Y6R=j1HL z@*<%dFMqH8S`NLTvr}pvg=@rL4RzT6M`g~0Z5odww~oh-hK=e`dYnXCwm>!UJv@3u z`jZ{4bN1Za~C}Wtt+ATlZa0krn z-$1eKRv+VeuhN85ajxZB>PP-G{jP*gK=OqPt|Mt>bJKA0IF%tTjO*Q`DcyY!^0VT`aVH{l{xE#S9mAQHm47wU0)iUGx2y*9O8*}r zyce1c64nv`MF#=Q%%Xc{h?ZG6l^1f~LWLc!*)Q%a>eCZ8z^0SQedKd-KFoW(=u5Of zSUvAR*ocupFU--97H`!TV_ESJn+0)7c|)3Fxl_rB+O0{fHN-F0ZglWHN**w+-Z7ox zH+<8S^%tKO0rCP@uZN=&cFa&-#f~It;3nZ2xJzn``_!_$E$L;^WO*u^0n!E>FL%>9 z&0vEeyA#`OqWYxPN~BV9sFJ@l{GA6)VM;7@{d1SEzMd$@W# z8Yr8T2FyNqqK+&av>$|h*Qr_fj@Q+fL0K+SUrPxy&7fMs^*bneirpmF`*CCmwSpgN zKDV$q+^86aRO=wnwOg*+1DWJo@SaO{3x2&i;Vl2D@#lKEEy{epohA@Fn9Bc2mc0)( zvvrNy2gTpkk+!TTZ-9im%otLH2?9V3SD+kA2XBKhXZNRc96+F(FV0Fg*@|+nJ!+Ab zln`^gKP7<}^v15I5Uha#cv!{l(zFKwi|MJ_ni?ll_tmqmc#vPQs6zhHR0CJT=OIr% zYME2Aa0Ccs?-eVWN&csR;4n*x!!x6Ny#W`OA;Yv;Vwx4;TT8qCkh3PXb^N4nTv{AQ z(dCBKUXs$+;dllC=$$|_`Ogm{-?nP5G$Lr=$3|LHQzwWVIYB0e9x(6n%@59 z=Y>SA5aaumVE0SZ^%{qWf2yaLXlC!K^4jGBtLgZg82ngsO z#!1*Iv`{J2C1RFpAuCtJe&Nb+s>{ zD(0sstc`b*O=d4HrOW$^n@Rt`^=sl+Mb;L#K zE}24U`eMJ9)(NhRSon(2j9Et0jW-zE*ZvST9;_Ed9Sy^pe!)H^1i+@7Bqa@(KA+1} z{}}2b(fH2;XFO=$JX#CDahB`d+6C`{W!cQy$tA($)USwFfYE*d(${nO^kXY>fFx9< zT>z|pZ{2hZf!K~YyT2(1Q>-{c%qwclV*7iglX1U1Cw{T(P~ko1(5Z-`^GfKOIv4Z5jV0P-WxcV z3MXSm=pRD_)c<*9PDMO0nr;>xOq4X8DjXB-8*u*lr@iMI3i3^%3EC>^l-V=7!f))D zPyRRkYFAMlkd?8Q@&zJR{EnhC6(}8SF={N5EaBzA=Wz_L5g~at<8N#XIzJj%Ke}0( zLK#~kPj@X=MBm*!b{$-7=<}akPA$!Re4I4d$eEL+l)9mjO(m4QI3~XgmklOCrxk(^ zX{}qs9|(=wt$LE4761$EPIIrg3#~V}khz?$O!9>FhM8rJVKJz5!`QPR;22QQ9ek%9 zxcYrV_TYAonEhDzk~N)Ng0eZTC#Vn(xN{=IB>DTpA7PQ!>az)h#23zixG?rHthVUR z`vr5`N#|*Okd6W8LpIW@r(|3A4aM=V5&f-{6WnBR)cmvbA zw{6E@)4peYhM4zR!YMgV8&Hm$6a%g`wv?SDoGV4f<3GOumd&d86kOV zAl3zIt+)Zc-R3v!C44(2oH=vnBkDF}W~ z&dW2K8G!B|XhjVExz0gH)v%@{ZE-5Wc`YmGfkddw2L>WZz&ani5bQDrW(Cg1O(d_6 zNj~KsA;knHcjxDdjD6i(Ty55L4tltCnddokGb6K5)J`(7^+@9kn$7DgR%TN>voT3m zE9@b1`K2T7WmzKVSm6_=Q!F_`Ohd}^foO{_0`UnC!1_Iw$G=G99m(ja(a7BBf^8Rr zfo<7f%z%`Z_oHpOBT>16`7II-_oB5FJF@aNea=QR10wB2y{CA1=YC${D*$m-M!m9&|@2hWvb_@csN}LH=e0c6s!w!Gl~hCQjZ$ zhHYTz1671Nt`_fANG8?mLwze$`w!Oe6w>|+j`HJMDc<&?4d?0(i@S8Yn?qoJphl>! zxKC;mg^&o0d%TZPQ64*->-ntsFcX>twSfasV|k!$N{q3F~ zLxuLW#bNo%gcx)ram0sMqG3zXrn|U(*HH$~;i9<3?&a<9EoHNQ;Fv_Hw_36C&WN-` z0Ibx*PYBPH<}gsk3!c(emig@42|3H(_~OVf2cYB5S%F5&b^vV1H+WJxVZLV5#7@c+ zJ0VQ11qfb6QkTJ?yTOUZ#;jn6uz9XOfJyH_>0%uqVTm)((Z0!WMY>xxIP#Ja$CQbf z*P`vSWzV-4F6_hc5g_|2zjfn9k}A7=c%NY_2%gjo)2&!i`pKzON^If-%W_j;fwbX0 zDT>QaJoE113U@ZYuXh@xpggQFN;d`b4GONsZ35hm7xnQBl^EEcms}B0#BfBrFl8Ly z2nY-290|tjxSBpOmS%BahMQI-*5tbuHM0yW4&1}IbfXY(m##_l_!IkJHaI1v$`GB8 z4|2yk?=CC<$8kCNi`^^0EiBuk8F@7LcY&Izopryy7Tn0JBs0hDphX~R;0W|?5YUHc z-)Lo(6X6?rZ7Ys{FD&B@Mu(kkgYoeeOt5!_xS^yzdwA_nzfhfLUqB$kp2 zoI;`Bpxnh6zg>5sL)2$m0Yy#;fxiBAZ$tAZ^OYB)(pZO1KehNa58w+LV zOB|o)&-M~7<>AI@30=$;yL{QZ=;&1}IUib%EyZFUy71*`XOLJ}@9vH7!Osj-KKis* zo!!Wir27*Lo)Woavz(e9A#RfHlk;@F+j2e+wh$dN?q#-_^wm$Rk!uOg!IKVU0IPsD zPL6q(v#dwUcY1ihC&Bu+c75-b41?N?d=DUnZ<*KrtUlrnOXr8HkN9^8awR>ckJSM*Eks(TZG zBKI_t58mIXSwd2$La!=WM!PA->HTtjnAqcGUKioMgvfC(=FfPRNIK9xUoAPZsk)oc z&C|u2V-4)?=N#f{W_46fUd!fj5J!pdJC>cqf*TVdatdYa+CYGWk0cAMIVgY`@2g!y zio)JLcrh)UY9Xs$?4ZS%`pnPgXjdln0{kcC;T$*|xk==vteD0|lXyBh2o;;PSzglD zw*7-0&K{8nsGB@aT$F=Jffk8$K#ab&7_tfG1%4WYV~6#Re0Q@)ZObSqQjjs4vdg8I zaV7yw4Q}wEr!+{|S^=f(p1u}U$T|Vf4|(goC-y>Yyp@7woI0;l(r=O%hwEPL;^!6)c&EB!+D4}%xIbk6lG3Mykzocr4VA|k58P#xS0qM68*z6edr0$Qf6H z$I}@8<)D9}Y$@lsNUC5D*t{j`2QoIhdDt=cL;Taa29+R9l(pMXL5i`9X zL0n=NaXk&Z4UBB#;6JsxHzjEWpi+5x|i=8k)5 z<}`dXC~CU-y_8zG@8n+3BC=YPLsqmL%@LDTzV!4virKqin1layyw-ITE$hkY@D+wm zn7+KGP~c>|(R22U5w`$oN$^2+#HYypOV;4~$54or*Bz~q9AaGM_gSj?r_@Z3FCP2& z=*~MGd6+KQiFw!xnb{0u;TI0ZC9%3h0O+8=&@0cB61fN%?aXdsumwj~B-p^*CF>cP z;1;{8kmsi7LC`E{GRzRkgXY4@FOGisrk#s~2}i5y^uwiQm-@DN@|zwJ4SBcm$JGhg z8VRdgqO6(~v)^MX-1%Qy)NbM*=CkTds9(eEmx=0B`iOvX0$G*$+ZGo+9DWdJ{wdy{ z_uEOJu1Xup_m3wEKH_pw|DPw=b|O_8r#0x$PT3c)&HzV^_$JIV zSmWZU8}Kd0AE@I8=tSQ92N97QYkdcXV|$;(*4nBy9Fwmc$yPf#cN$ZdM%H(IN9-vw1z9VCcVs!!3i7 zfL-{jndlkYQlA7gn*vpCe{nnsQ1+{&dj_24S8els%CAln58n=;jyO%bYql0_6km^#^H z+IY6zDqL(zvU0zwYl^Q%Z?Y-KDS*gBxu$$9Y%ht`FyCHI@mArpvgK=1R-)gLQCzaT zT1ytVWq)CF85Ufg9CxtzYT3iR7UueqTXk$K_HJL9z_1wTgJ|1R98)wh{=!v}mI$5Z zMblRT4Ya#QCX?GnfFDuDafVI*liH$Gll^O!FgZ(aADgphrnUqW_C;?{*p*`VRi8t+!8v6l!8|<=x z3=kh)Y`}_WxHVd#CD<*0RUX3t@NkxMT?hAGJ#br(tf7|$rkMD03*&IjF(Nstvr3$F z88YSlb6jn>S%?Zf%|{|0H3HJnbiqlWs-RMB+($#B7t1b!3{@oxU}EupvqmGmyAL&H zkC$(Yb3ajx_&yZ`o5qkc<`os9{7f{5jwnfC#+Sy~2WOPQM{@uGv(D{b&0Gw>ZO;J` zuj9)8Uo)nbVC7pG*ZFg)(Lx$-Dd=3WAB7tGEcEwIJtY2bf~FPqQs}LBG|`gq!+8k7 zzJOx0TK){mUCxx=%szMD3rkwE)MOJlYz2)o2n7wVW^+143WA;{PPd?F$SO#E-xA8+ z{A5JYp8w?6bF%o(*S$;2E4Pj+-w!x0{N3rFx*D>*YKuC({C#}A#Gzg}G@mjdKaCJ& zASTh$8_=2PJXm9gcP1h`$i@B{v;GbEb856nKb_?a0G==n31hOL>`X3@L@0D4V|Tfu zyvmtxh@x4nA#+H42P%2x959CJk7WlVMVCtiD>|*u^LMD_7sBPGSSvFm6UAt#x5KJx z!%-(+NOK!_@ow8?2Zn&*wish)O-Ubqg+xZ&8`wf0u#)-rU`oZJb02psiu=sdbuwW= zF*WEcXjP)s4b2>m|9JGZLwGiQQwG-_B%Koe!)NY{lid%oRh8CDD+Q+X<|IqoDSh6N zs0}F2N#nf<%+)iM-Y7k8IA&iK?I)QUK5;2)iR2F?4r4Zq#TbL2^{aRfWxF)x8FKqQ zEW)lYijuFUA;?0IvO1XEg?46nD)R&(vldt}l!bDZYkd}vMYl@KC(MghwG4K@#5oM% z9>8S*_iZrL@+kZGEOD`-|1a^3FeJJ79aV3b^M$@a4^^Ee62-740ULYU@uEiJyX#v? zy@3_$5R4XsD(Z+fOCC!Zd$TceA>_4o`gdw1&9dq>fM279)3alXd8@>wnnG#QhxE(`VW+osvV`|a7JrAGqctsEAW<%v3{8? zdV5S~Xv_=)}6PQFNB-{4hQ61`wZ|hGxIOBOl zsF^atkil!TR37}Ps&Fx{2S|1USm}s`?sKD1?iO0V0t^#b?+EI5Q*5iTLq!T`^K`?j zn{AY5&K|09DAgGz{ZUw37Ogk!LF?gyRQJ)XB0g*Q%Z9$t-&w(ReLK$Y@6!=3523^9 z*jPG$N)r3hnfN=ijgxXg1(^~#q9)m78Fc_g*U#LTd?(TK4XSllS7}O^+eyj!AkO`O zmEb?~qObjfsd8tFYTaQLUBw&2RQv0VP>-h6IxN9ToM*RSLDdyjsVnTy*4O^}EN0Z0 zw?BY{Jf-`KLf0Oxx1kNLf>~{BoTTI(J|++0AxhU2@_WOgsKR>9sXHH-5W#VH-8N4X zi|PadIQ)a*bg1B&0pEfWjc3~`HVyXf)?B@QhM~94dT`B1?lFAVUTB;l4S_tl?*Kb{ zxyH0wK$P}m$-DH#dXgG0Yqq6J(gB*{JzS-9H%M+gyljHx!{PpRD|{OZoN}MLa8DGu zjxTfEwJ21Zh)ML=aAx&B6Hs$*K>@om=#XEXsb*fwDM77};=w)HJ!n<^j}F}!kkOvu zco30zU-vz!UKp&#xpmAza#HFj;msPw*Q>cjag->Q=+qYd%tJD?lJ|O7KB?T?I1puG z0_<9Ajd{3obj$+iL$PmxSITN!Q)vLLyq+tMqk((#I-20pT2lhk-N=7VEcBMZ3XTyS zwQ2>k49LX2{b!tjHfh3}FB6W`{3zpBemonxZ*Fn#Xl#2tZM`*U2K#e6RY$Ak5pOmt z|JqqCJ4mq|$Wre$*91f{^@F3ifLq38DI{`1rHM7=008`+d{z%;rIj&|OZ)Cxo#aOC zU4^!-Z<|H|W7i`6UlDY7e6v)-~QBlC03o5TSS9GMf5*tnr7bwG4F zLAR(PU;S^z@y&O=`T->35c=DL3;WpK!oCnVP!4Zj1t_b?<^{Q*q&>@_y#N3>c5IL; zH;uJL5Ph5)PJq2U&<$n&>Vd)+PkRt3QQh84q2(oK>K5g5}&l{CwAh;-^XC&_*bq8W4 zF1@&9cxzyj`boBEYpG6-i{&hVlf=WVmW#}8l$0fqDSp`Y=eYmq4{JXR-sO!NPLM~r zp($QDYK}9lt_?=Hu?0ru4U(|A4#|MeBUz$Y?>wC$5mV)AC>404D0`Htjh6$L-n~3T zZwdXlTK?p@yLJRbZVkELX6ho!#iX}uZW2(VLi^*m39lS=SVXUc+Efa}!sribzoYUP zoVSC(4z+{ktbcYHSW?5H!PbI|eJO_j5wX9CHZiUJmgFT!;Y%&uSTD%SsK$xI2|!5h z_wNzX!XIXBPZyx4hn4MGsMoyhyim0^Vm2|1ajLx2G!qxxhJ+PCdHJV^Yj<&)NeRCH zs+PbbiIm|$;i$^p{Wn|Q-*EFwvfl6$4&t3j#MwGNZ}Sb)OyfM?LC@B!0xXQD9MTb_1(oRAVVyXjgW^zb-|hK4byIVD>=tuc;!(XE$DOC8 zJixUjh`2mnF9hjxXCIR#m5KuC&pN+CEls=X<8y$qczdYgq{O~~WZWGrA^URn;J`kSNUg<+Qf%gZUtv|M5oaRE>Z)HK= zD&NsHsTHzkrVvr;L)tI)F-O@4?UevPLfFsK@HBOaXaX*4`E&l$t{(_lY>!qZBgaPb zKOMW@kR`%_JcGz&;&h6Gl?1@P{WPAC)id8TRdGq0h}2axcX2`K1!%%M17c$pS?`TO zUInSH64bA2F-J_BOGS7Y09Cj#)G2GCPjs7@-}*1_1T5`0TI6%ny56W4Byel5EbGjM zY?kUefrL2z)A%ELfR@xk8uzu8#30pewp#+E$kQC>V3)^C^xjhBa;z%?)xU|LKc=t# zI~xMj1x(>nH#jt$I`AU#Lpz{_c*3)AHM|~k9*X;=(Kg%lY!b&ILHYXTMVhDMqyCV4 zJh8D{@mpoD3>l)eV`@vXmrlkoYeO`rNhSZ1 z_ZiuQ=I2t)zC$9!*u>|?N-g3d3qvh&dWr?AgR3eJK*|Z{j(IJRj;M%+*j9RvACLm1 z#pqwr&)j_HTf#X90&Y+e{>9z7=3N^K;=JgX6w~pblR*mP9fpmC&T6f*)TJsIspk;x9ON^LiqoQYcQSi>`eJmFAt3?qkgRBvge&dylR08f9|3ZeAp(W$Q{=&^mpS> z>&;Q&Y}Q|rj)foJ;8A}URXoyT|_a9CoiZufK`&W1|5r9K|RsK(?pDgD8x-Cc!?R+GCpNCaw zEHle*YfiLi8EIw9vOKOxEkIG!!mF>U4lmjp@H9KGu24v;VbL;Q2uC z6w`kAp=Tm{nV0Fsd!6*w!GwB^MgOGT(FZ*AP{h`$X1!LESj#|Ee9}1-TR2aUaHrbQ z=X;Huv_Euw!QMnXn-z|8t(c2>cbiOS|8bzQ!n}9Ph71d?ea3`tUzu~*chi)!qKOX4 zFxd`(`qh42n;4kwAU%G4Cu8QLq^J3mBa#&TjuY5)5fnl_I8R}yY|Cn7cLI2=Q6x>P zVG*qN?xo3lzNRREF#t)l1gIoN{D2M?-9DUdAo)G-wy)Si%TEpyB6m0=Sy<2)vAr{B z{^&!*L3JefI46Bgp{1aEawmIc-Q_d1-vKPX3>j)u=988xQi~CSy7QN0Tz(at8;&GW zCA8@nK9nc$yEdk1KF+1gYAUz0A+YI0jCHp+6}k`~E*rd=W>EqR1f9mC;qGvbin5>a zD-mT#Kd3JDwg-hq1wF=N8HilUwATLveYh&aa&d*5`X?#%Pq*ws8YsPDpGk?ySUcrH z=FqO$paLk@1TV$z%0eWbb{>;f2H*3{SV1r^!&72G({ADc9lAK}o2>r{>JNf<=EN73O8`^Fc?Y@)f=grRkL1(rD-SWV_$eSu? zmZnxG6laeU#seqbMt;I0sN1;M`Bl8a>#VdidVKSm1~pG0VuKAc&u^rng?A0?UH;vQ z@K@F{q8%w7!%3OMZ@+jt*`G|&TqB8|V@Tb-Q!OWlu}36x65?Cc9`gu+DOldevf5|j zAh_AEXP%2A_HyYyfO_wqD-rq3ApcxVx6vYp;BH=%BEoq9G;xxi*YY8D|BSf+=p~6M zM=%JqwGO7%*E}urXM19+=U$vL{Ym4m3Lfq$Z(}Jrhp+3Ie*6~D zHUS265}G7#QTevrWo33}}St#kH?jO2gM) z%+Se>o+FfNdF|@7`9ZT+uuc|iK@U9qja)_V7=pfhYXp)Gf_k$Sq(`BZZze$vK6Y=# z2Y;RCHLz$gPgg4`8_t{uT?y*_v}bhz3fogJ@#GIorcaslDQ05MYV z3dHS`pX&fn$;l^oJCi@txA{|YjrFzvwF3eDfk7B9>s?WVlx0tOHlVVwsOE{ENzg6% zsg}-J-`7^me7{{_2!A?3SCVwJm8>I2gWxj*#b>t-WU&mUIVC4NiApJSKL-?pTe_d( zQU-vOxu*SMC6>10HP3MamY~plXQUP-MHCYc6xfa?Ft)Rqc&=A}d8?d$<|?pKj=M{4 ztOhn$|1)$S#R{(yFMD%FJK*v(IDi)V^+Egt{kZ}H;F2J|MmPRGfH_kRi)YWC%+3Zu z28TJO4nU=g&OhuZhD2=cR=*T06@Jb#*6Dj1+yUop_VqX$N%U=lrDxgqPvrJ&vwK=U zX1S>5?K~muI1Ni_ zn;JEqac!s}ftTT+#{Ls!Xg^pP)-*iG{f(ig-Lox7sqAsk?7+c*R(E3jFpp9=bKDJB z4?A7C_|E+>qdoXCHqDAcVvOo@IyX{%dLZ> z`>KyH6=Ip{3G@(7uhK)_385Y5win2{;$*f=W;YUV7;I~R7E^p6L9}v*A zY46C~I34^n5VlK~MwD-cA7ioDKs7FY!F}@Nwfa$<{i`0qg5KT>)oT~(65}L6(gVoR zsz~1LT9US(t=M8VwOh^JgtTvD$ec7IJ%0f0sw70hWswc<3(tFchi&*h5WFuFpiRke zc@)SpP(37?W~<{5a4_v|CZC0ZdQvV$W!a{gZy`xnC-JO+3{jmqLVid{*-J?@Uh4}1x(S_=GNjxe=;gJL*&=nL>WZ^uYH|Q zR5{Jx;C$KCkDmYUr}M%35pDDJo@w_)X}S=m?y0ya&FuKu0#+3`q`&QCpklH*~cyQx4=~As(p1xbCv*Ps|9%)F>`{ro1AkyisoN$>9K>96Yb3^AE zc`!!blP<8O1h7lXMyyq9qQ^Zjf3^#nM+olY+w!ie%jA|W zDH6QMfBVs)TNR;~ZwFog#s!IHWka6H(fzqzc8~6Bo*uh=3oI)?dLMyeoBVB*-3!%Y$5RLKFus@7%N~9N3PDT zBQlkL$G?ZLZfKfeHZ;asRnkZa1{#2Gm=$QMLDlQu^!_DpDfBMA8E2N*y+w2(HZ;>{ zX5q|Uy$Q&BTZv|>trpTPbje%U=~`vo8el(1Lo%QTx1Tu!;PV+KB8WVBy~zBTCV%c5 z_-2qR9hT9^tJnm;DQJ|sz(VMy8=5}{bq1S>Q(DuWl(kKN1fsH94%dpyU>Iyc#`7Jj zK^4=3L8LRNmdUKD#Ako5HBjq|QCb&B0zvS!M^(#(^xB(VYgM^M5QD@oOzKWc*pSuV z5va4@2R(gRfT_3onywL)=_~p@qEX>hKO?WbKMu|3>w=zGXyu#d!9R|oA+*Zv3jan_ z1AC~_I}#nlfWLg@Efg9V580(91t5f8%26 zioxgh0pMIIzW83U{U>rlqgfcO*4X{#)!|F%tv}I`DRpkeBRjQwDMzq}qcC!oF?eYaZM;0o;VQo>>QN-SydGMS* zMcEaLfC;)4h3fMQ{Hz-DOKaBTe)9As)<^PRd@~sI1^p@^@XnjG8pOY&l3N0!ksPiq zDPy8sZ($r|(ziC!-WVyJPeR21HoTF=xqB6^AGS>&IG~z#c^ioCsuj>-VFtJvQGY*> zy>V)hQR5D}X-!s16zepjawZbUR_KN6BusLqE4Zc#8?>>qFx$p}_Q(LIjh~?h$j0O* zuLgbhv7M>Dy+RznhNZ-1r&~xfSUb0pLsor^=?lT&YHp~jiKfFN4L0fDvDJ&}9$#E| zKeIxA1`c2$e*H^e6Q){~w%106bh@3)rX&9+-GM&$YY%;;f3Jk>!F9Yfvb(#*7l!}4 zHoLO=VrAO2YGa&{7e*hIn{I~)B;gx&1f^hdm9Pt-_D6%R*C?WbDh)NeZ$Q7LdgC>+ z94aVZU~gXY{6ApVtmE+=an1tEANw4G*M~0Pt2pVPcOsx6aoKB((=(b^LXO6O9{>xY z3_dc&&r_%XI>DLFMQi1RM5%vfi)@4z^Z|O3>{Whvl@8rriySu)vY`&#oisE1%9VR? zS)fdb{N$qVX<-sVh%{~@xdj42mHuit<6b|$YbFE2PCh&<6G+Jhqhujn6pr$U3~Mcd z=|qDsX4nN{RI)jzrch`uu56 zDm!UzYLd*#FMia%BNV znJfDsb-Ut)0*^cA5Bo}y>kIo50ZJ`i%l-1m>SP5xAIB|I!#D7ZS42RjD~(j~h$9-x z|B=U=&cEsyp~HlO+biSpGb5|UD~Vk~VLt+hRBN&)*!}};mp%P1|9*3&(N?wd7B*sR z0x)SxNhtE523YZ~-ZI@>S=fXkqz;(hDIc>N(gT7Mtb~KXv!QDr!jbU_N3d%paC^ex z_BVf%2+`RAawYZo)SuR)%`276B3{suu`UVg!u;S_qBMQmG?B0YJuiLi!)-pf`=EG# zL2A4=pQ~gxpuEFm&jYavCG-=03`kFZ5DabZ&zSvWv{){9&bu^P_%8R*iQmJBSj`u+ z70X%LU2xr-N)s!NN-}I95$AH>U6g>3vNzg>PO+r%h{I-;!MoXtx>2Upm0@YoxjZi* zD2{OOdkN^BqM!MYyBduo?wUliPyfoJE^E5)pFI~qX(h(at4s3!zGTU5P}5JjJM!-o zfnEgN6bTl?G8f`kd6-gI&$%IQqE84Wa%CoR5N;YDFYQMcv%(cU71Sb}UvHCJUa*o` zG}XM(0pqRK5i1kL!h5ZQ83$6}L**~J;(Mi40wX(AJ)%HGC8Kosdnm8#qPp^3s(SJI z{qZ%R)yMW0opD>ruZhX;*N1gnzFSTK)q} zxJTspAbOvL|2`wrBE-NPe+aR$<_;Ktr;N7y2h}eGU>6kanFJGCN-=TTPt+0@ zZa7lFUR+tp%SEgrtMo7$(C|(cOJ|=LylV6`5(iYIpvUA!De9@x*Xz!l&Zf;VVs(Mv z9ySel@+URCkkW7T1ep1;(R>CfmV-I0?_$zBU^QbxEWHmUMeLOl;Z{>Ex~0WD0j|f5 z+RWj5BOFyqNq}6khtIp*o6@RDya{4?<}w_!LO@WKM@Mot0DAdJA2%-wukpjJ27ZfV z2{EI|%!ei|D|331L)W101 z`t1N7-|zE(Z~`TLHQHl2N5!zrkhqS{( zZke{>?SpvBLaQ};MDb*_d|sxYlenlpJNfklZxJc3P2JT3${{dfr^*v-p zs-Ts}ZBKZdF0WDq=%8{XM0sbfx-8DI8RPbW#xT`uO(V3al??OH+?PQ5x5sad`o!I7 z^bJJ6@CXm<+|O*ct5(=F)8jdJ_0bvI3T0;~$uJ+oq?0qZNyd_!*oN{ zdwkcZCDD?xB$tl;?`a$k;bfscED{X^VEDT9e`SvDaw6gY(Wz^LR=?0$uD?M&CQAq1 zF{r-xR?0cOT#?Jlh!AZz!Tv&7byOcCgqKY<;od|q8+4(^$EI^oB)!_p}GSm8| zyq5vmHTEKId0*J2df@qZ7i{hpR<5(kUgs*iV>7}>PYoa{3T&P0gSnJ0Py7@P-{1@w z_4_no;A|$R*tMmhW!y&vPtFp~-tI*vl_9=gX%KC()a}wpCMw~fHH1|W> zAwAUd*6APUeuw#VhZs1FnBhu+ zAf>~Lk>uEodqw*w&=ua2YClKWhwqQpk22{bZPs)(o*lbv=hnyRpHQC~q1yDkLw z9?i+WB&wTNj89bj@z!ZR)^3$I1+N7_pBiQjcmZ$(bG&}c*QXpof1!+j9zM5vj;udM zZ|d>K;Wnw^7q_?W`=x#;FKFt*oJO?Ly~7WkV8G^boG@vLSS(xg$3%1e{B=~Pd4Yle zh|G(J0!{NFU4CTQ7gQa7XbFxiN*{&F?kZvBqAAzr+5gX8t@PnTPNg6}VS;A?k6~F9 zngr-y`6T#ZsOB~vv4R`8Q%oJ>N9YOmFkN3}r#lAiGo-2=6~Jen+?C#=bMI0)*Yuy^ zz#&?oX-)lVSvU|T>ix{;bOn?b;g-bA1yRm0XvH|=Q0-~m(F=z5gnbK;z&Gp?pI*P8 zKTEWY$Dbr;C`_!14$<9T?XWJNdF>B-COznm2w_p#mSG{GcrqplXqiUaA8+=w$|2ki z$&bA7f(BhJUa8nXHK>i-e~0E~cbmX%BAbr{ut(0nKvhw@|1Y{hnW%sZaaGX+{4VZb2 z^|36AJh>y=Gt11m%iG6j^FvxwZR9m^^tW5)l>lrlbc%%{a4{?3B;TE(dq}k{@uvv2 zbYRw$8XOxyKmNa^9buw3Fn%$eN!O@hurGvR zd%B2_Qs6uQ!LL*Wt6&jLh`7gllYs|tC^{s;QgQ+~!it1k1#x7)^%An-W49Q_-gQNd z&Zgc_cDFx)Xb{9IclV!tXxD_Pjt(SCX_$f%`{>34Na)lfjQ<(!=!RpPsD`A!Ja!dl zJ3%i(kR@S*3Zf?Y>G~lZ+J)N)h}P~92j+1i1axE1U|pC>`5+gQgvi0PPv~k{B%>X= z)-*=3GZ;U*IFiq0`yDO9XAwkY6^n~cN3S*Em({=q{)(FeHuNtA5inrZMtj_jyiPn* zSE(_{oo%V(bAi$=GStDZ(aw~G#W(Dbu{9`O(0MTmn3^*x07rFoe{iHJ=N=g?_yqN$ zegCRUXm`;cLjrEZQ%9w%@Z8GG9n*x`491%K6{N6~^tW&?1v#Q2e!llxwORIdqJ-Vo zWH!@(3!KHgO`FZsZ2Cw|TRmE0c_857`6;d#Jg3A;ah~GRhZ4w_@LqLK;`92>KsZL( zZTmtT*4vPmOsu#V3Dm5?*5|)5=nc^1GAevG8q@^;Zj3wp+(S7Fy|68I+6I0Eu*lGH zr>qhS5IOg70_sey@alrjpg?MhWYQIf4XFjh4&wL+GqZ@es zY8}I_i5DP}`O=FFSucHbG=cs!wH0t`gT6sgLI>UKRKI_++Kw~;X>J;`Qcl`|IZVP@ zmUDxwPAp-bg1@vU`c%B2zPQdQ+ueS^&x1!R*{mY%myD}!$Lg%_^@_40KSH;9?P`Td zL$FAo4}S)zB(I$|uqkr$X$2kssYm}fIY^SV17^AZx?X;@v?l|4^H(JFf~c2Ink2<> zfCePs@JJ%6_3aod1h?G#utc&NRYq*~CWOI4fUPQtjK`x+;@{er%dul9-fRS%W)0os zbDyN)(`BleT1kq2CtUZ9>39(1mEY73mIEiu1>atTAFZ}uRIs&Amd4Rn^2(n-DcdOp z*|rZ}2Nl9jyPW93$9Hr&jpXM_?f2vxup&Lz4+u!b$E=J!Ys`gMewGxm>i=C`#W#fZ z0R1P{jBwOjGBLmtCCDVR2e_rFt&+suEi7Ku>ALhydh@Qunu{G{W@HBPjh#jTs?Fq; zusX7QpgHRXBmqyie)Ix?_Re=jA(gMT7zyaC%m5X5MlN*Ig7fu_E;w@)`$_N{VRjc} zm8`8Pjgj!4rPu}==0H}Jg};$Y@6e-8Hl@|hiA95v7CHUf`C@A0XH`@@Sk&JlRTPxGA85}VZKD*cA6|kVlm?av^2?+I&?6_6lPiXpNs-C-H))epl zptS$n%A4UH=zYRDASqqazpnpvg{bFeE<)UsHY%>!Kad1-U!nOx)qLBHp zef(INt2zMQQMqcKJ86drkD#MpRderti};vX34`9j7aPQZDDrf+GpLPoFk(smr2A7; zN78-!PJjblFI8n(8CLi04D#NXAIu%bc29pIlLWoGuya{!QWw05GhhOWGcXJXe}}Vx zV03+NW%zzvHd#ul!68gAz=Dn4BC$=!xtmtlw$`$WARvelE)mHI?H6iYLxF1pI#3t^ z!NySy&zPxGP9$hnIV@h3G0_N{f!}`ca9K_TB-CAKdKZn82P%9dN4rey|7azN5Ds`` z$evGOVb~XO-35 zbK(P{_)YsVFeczsr;h6Y$h9<&8lj4dq zzB<%BR9#@26qrKH8%7Gwdv`KnhmT@=@AJ*HTiBl^ZODbRx$N=o&AK|85^be=;QTok zc8&fZI%QHGQ42H@X#P{kB+@?Hy`Bho+cT*sw({InHG4*igF4pq;^TL}K@v4&Bu`@= zeFQHZyk-0hQttx%K)27MvpVe?jj z=2!GY2FvSdO)G$dO zd}HGT8KXW@xhueiJA%1WI-UFx@Fh^FRvnDoJRu_sitO-^b5ggOTHw36WaWq-c@^Et zF#Rznxsu?ZW4W3jY?AA_^3Q1MQE!s99K7CZlOT9-9F>=S&H)AT>|e8lEF+Vq;(_PY z;$Z37r>Lg=W|M9$SjI#Mqc(RNxravY>(kKU^(dAzkRX{C%J?upETc?A+X6W%Lpu^3AJ08*fAAjVp z4w`w)EE-^%F7y?tUMWtgRw(n;<;wJyM{5lRm-re4?J7^09GGq$oOSDiLcG4%o+Cp0 z8s~qbj=w4QI$wtvtaySkFSg}kDyUmlwZd87MTt*#Nb6q3eEcv5V=8SRVVcujcMq8% zME&YZ6otipct(`|<%^XHSw;LkUUx2ND~ll{2l>z~L(xl@F_9;>~D_tQq(SjH^J=2;g zeFId||DmXBLiH=inP$V#3u_}#=I*mPehb|z8AT}{(a}2c1hY-Z!)@kR3T5!SmX9!> zKs+$oLx+r&vpA0~qJ|@zppp8=(^o2=1|U%Md2_JjHdeYZxP&1X0m%N7bJHVK`qebs z$Q-DIM{N4ldu9czQFiC296RmEvca#9((qUW3l|)P%!q6|2HH0^{AUBS))Wy_M3S{3x^DU7FM98*aS7+m6(ST?L5{*@l??d(Sx=cP11jt1!g`J> z7^=CKxLO&=QPuW*nPBAFkVr_Us7iZ5iRS1(x;9Q2o~u=i>dQ(Vvf|Q-10+(NryQjl@?jG|*BMD;_^AoQWfL8vo4Ct5 zkZ(atW!y90_5|~uCyNjuA*(se53y0p0PJ7)735z~uz7+b-cF(Oy^9A$198Yno9AB3 zw|?hw!+e~62!Fv61Mm1W>glA&Rv!I9OIT}UYFqN%JUI zp^6x|GmhQE1K+q*Q9P&$1YhU0;lE!6(NC~mGmQ+`H)7j)JO;VUvru}Vs%5&Eq|eRN zW+gV1Ri!%~xYZ2L2JX{YNtp_){ekQWM@+6V`S*i?$9v$kf|8Af)~&$zK98 zo=}4(EXLxb>zcXumthy*pA-PK1nMUf>sb)NfA=T!f8V$VMvTb2!O(ysKjJ|eFUkHU z-MAe^1vEGA8Z}IjE6j9?b<7h{M8#$&*J%S))YM@PHNEPx`ydrGoyn{5@`X2kEX)Km zK1ftzG)abW^6to_^H5|7Fbnm15Jca>aAU=kkm<~2%QM^E9u=A(calG0B-1Z~{w&UD zDB{hUY6kAZw82%9aLlMKXJ!wkIA8A|LOgSGT zoIG0E;p!esIMli;{g-hsFZ*SZCiVY!r_;r@I!oYKV*-G- z1Ky5RCGruKuXqh7g<7NOj8Ej#ze|2Gw6FBq0Eq_JcveF6>)l(pjy~~R@Pcroz|q!L zmzLH%wPTOhk#YkTO+oJYyjGh0lnmi}LcOQm*2sNz@yy)f4Cq=K4ucXURrxaEe?1S* zOo1-o9 zIhD#s)=W=`3o@xVM+z=@xr@^+p#q9VkWt+%s?&}SQ=h-8?wH1WD;KY6^)B^cJI5eY z@mndDUtH@!*#v077Uq5LH;^%ik!WqRu*4!PCiw>W@CxW^ZKz=s>LQXo3;kjD5=VeZl4*Dn~ zIujvpPZS*Sfh@^~ImB?LPir}|1{BTFOF^xOeyvb~-tkAJ;|oo0xZ@-IKHSBrH(4(7 zKiA_A&fX+}v>L1FWghLIV^;D5lmBPn1V(t5>jx#*tj_7(j2~$;2#&JRkQ)n*ipdB6 z)gm-^-mltrdF5x1aw`Un!OYEE2yt@P>*8hnN+sIgUvc<;Gi_6W-gu6)@$x+fR!AZR z^+bsPdI{Cd)n}*4P%3Rfy$K#=A)UFP!G)aW7*uK|=5>u2g4 zVVK`-V!;t%fbuIIF2D&mKRqmNA_CT=wSDPwJ>$-RkCJAd$7{e3Lw-{Th3bc#nTX>vY510?T z?G=4>Joa|LNm$|!L`*A{w)~nGnv)!1uLzZZHqyFAWP8H}nb~P!O-1J@qGcv(Ph5O# zH#7nm_0_9tRM!8auhVlQPEI#E||-hE@9@Zb=mFRf>>V z-q|{(+P8KP&ANqt2{ihe64iy#FpVd+E>d%DDhQu@&#slA5zEbYGYWqAsjw~&ax~ze@K2hzdA)dF-!Ww*;P>e zY=w`i-qjiV7`sT{y)LJHO=Xus+^Y|PtgNcZJ6eESC%Y-j2T=Xo^4;R5@TzSz!R|@^ z7j1IYc|{9xW%iR^2cw^u&=K(m#+h^}4?rBAqy>t3f`A$@`JD*(`nxKI`Jk#7aatr# z1AoXm+ps1IMwaD5j1wU#l%d)J+kya#q?5t>Lt1CUg4#~Jdrn;37s3)JZr0SRkTWP( z%H^86=H~>JBn!9jqIQx48S6<4CkV#AI97v?34BoJ!8b zlYR6HL}g}1cj*;BAW$JPK)>eC)TKCuE#E6+J3o_Msn%{fda+bljBI(L1^&b%Okfg# zY|3&b5O^uOA9Y2YqCBLn9^sIPP}0O*eP<0fMSyCZJVOH_&HPWr1uk$xSr8iL9?Gm^ z0h=oCOVnMQk&83Yf0^5|4*ll6C%H!aEg{HHcyuAyucAMSzd`ysp;GI(d;mdVC@qMm zRMx{p)2PuAcKmBlJ+T7{h#kC9!{o)3grmboJ>EtFO?63sS^Z?a-!r4a z4eY9I>P93=VhI@TM-INhW-mRadF@WpG|u?rF8ll=dVb+P^_IDl!X|#ho4=}ibD>|} zeB=)$0wX~c&qNWU+7Uun^L}MC7RdJy!_IR72C+D4im`VCLG-8)(-78wG^Uk@YEDWJ zV01eE&Zx-U$atAYFt&RR?bn*c*3Zdtb?2U+pdB0@0;s$9Yue((IOU+ZnK5&xDGw{s zwq8D5%Y4U7IYb3}e_P5hCGSUNUHFx(ftqeB0{)idP3F1ZyAKgkv|4qX;}SBr>ujYMh- zM88tjp92|UWT8o?(JmUUM)({+9ZF+1hm!msO{V}bp(s2Gl_wJNb+hPY7V6WVhPn|@ z{0IK2n8o!1*EGSnJYs%XqW+P?(0;Cw2F9dhf}Tmlu6L;Q;o% zqsAof#IvocC)aL}8OP#xayU-1&^$fI=MjaD@#ruqaf6cDckXM=^@6MOOSH753U-&T3VVYl_jCN_Ae7rIwIS--;?p^`Ahmp^>6AByPI zogyVQ0d7yYgCc}{rDX{|(xGCpxFH7+Z1EmSHkXZd{b=#R^1>T07BC7Rr@Ym~z z=Ded~b9C~kcLuv3EO-OQrwQ%skCd+3*Zl&1X%-t%feS*Y^POLX)8Z|zvJ{rHG|rjG z-!_D;$AN9?7M3TL#FJhL`7~x*+<07S~lYDO5K;NqdkQ(9$GhQF97(3FdSO@A2 za-ubnjX~4P`WZ3iBdXsM^>@Gjy#cQ2iAx(E|4q?A;cP1TXaeV*WRLsBL(?#yS&A61 zRDXq}?8E~t(_AcRb5DKV20$*ikTW8gwPNNtnts2umN=`II5g7w8d!WZ@Lh8Gsta7 zTqaC!_XoQMkxLx1h6KPxG8j?4O5(vR{MQC+=f&^&lZa9jJcyvu&;~BUZ5N4e6u*A0 zSpcK^m-uCDu*2QYo$&6tM=My>Y&eT#3XQF;NqTh%?MV2|_WE*jZ$BD$0n`nYG`14B zYZ^Re1l;3^s}lIpd#x_xI~E%UcuashP{x^W8hixntm04gn>7X8zGA1qvuVP{3f@lU4{+@6HObPKo}Wd{w+P9yVhM*FMS97_i}&?F8IwhBNQ*!HlmJpw3OZI2 zgPWYeiSxYsFAHI zTobLOa94GP@ecP(*?qS{NR&U^dmCxQp9W!B7z)v0GtE#IfE_IR(db~X*b^}?KSG}5 zit^&zaTTF*kJ!rIE>&241=c(IPk7Ay+gVg*S8WFdq!ybLx4VXre%K9z`m!f-uV@s3 zq1DlEMPIpY3_w(7?*xLnhPaTLnAshY`VI2mH*TF^CGf0_^ZpFv(-)aJ639aNIcuI% z(Xvi%6c*PCj0m+HIHh=}>%p}Yr!C?77M740av~BN5w}a}D_lD5lUGV;mgCA%Lj8#Q zZ~lIFF}QzaPxGI;Hpl5OPJu^#c9A+q;$^!lOYa=n=L5iubutaEIm5%_F1ecInp^+H z`JeXrE`PCr(D9rL?af%!gQr(59MM*C^ z#|OHK3BC|Fj1c*kh#QA(pH$cs+rX-(1KYHyY|x#44wCrrefvBuRWSwfx5k;)>E~kvqy-3{xT+<(94#14P}r^@)GBs@@NiRt zDh&CS-gz%N=i)@^hrIgYne%9Mi?zy^;Y-AT0TS!LzqiOX*LhIb!o677DIQq{c7AI| zO_hs+u_rOrQ0L`A*z3=R^%vu+j~+)Bd?w}E^BQxcg(kA4>W!`Om1@9ME%lZLnQj}N|!Z>?|W`uz+tmGNKpX3!f z0+*OI7eaL=dZ`s-f`n7|EGW+8_#|)JflVc8e_}rfVimNg-_w&c+tFni>dMyKB47pyka-JzC@+tW?AK- za-||{z3F0?YASG3U&Ejkg-eHvO~bHCfcbnSSqR|N$>6QeBgwO?2ha`bJ}0SnbDd;1 zcgqkZ9UUI(#0>&^-r?}s@dS#hU5LT#^JbpciWT~^=~HsAmihEc=7t{>oU<-C04on` zrar$qz61#L&pnvr!g6PvB#In;l>?TBm?_92m5VB@Z6^m zbA1i(4vV)fGZyymv`sF;SC_-_g8+`ytx&td1K3i+>8{OHl0|q^TS3!2K)pYnNrwh5 zGXG>25?p$oMDp~EeNvL~>eR)4^`PM`_i{zLSBFQ1+%PR298%G>u?eJiAI%QEO4^E@ zv0c4X>fIuInxnJuj@CnvVUv}nyQj3{&8XJU?g8W159U~CM-d{=GFKJ7QPppgX0s8A z(c2dv0*5#qnWHT=xX!=({pg3mnPb+#tA7;f_V#=?H&>Mm#H?-uN~%>(uVX1v@i-wgS$7d4aRGjpt-D}lEpDvf!4 z4D7&!T*F}^MAHf-SkOPfV?so5x>A3`ai?2(5g`=ephv>HBDkEcRG#oMBu8?(A)tU? zLGYuy=Pfn5;%@gNtdAZ_nuBg1y}1{{%@fcJBG>MhRDXs>AKQ3P+_F^W4rDKlw=hn3 z@ja`2fz9PTk-E&T1QsR?h~WZ#&>1&`vtzrZinpdoTfg9htWq9 ZA3&m~m^c!M?|Ak-Oyv2E*p))Uj}J|ZxhVhu literal 0 HcmV?d00001 diff --git a/boot_project/hongri_boot-GD32F105.uvprojx b/boot_project/hongri_boot-GD32F105.uvprojx new file mode 100644 index 0000000000000000000000000000000000000000..dc15e811428a125900c1549cdfb4bc8d3fd59f80 GIT binary patch literal 32768 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 U5{aaO1y#2J?K3b4nKWxP1MvqsS^xk5 literal 0 HcmV?d00001 diff --git a/boot_project/hongri_boot-STM32F105.uvprojx b/boot_project/hongri_boot-STM32F105.uvprojx new file mode 100644 index 0000000000000000000000000000000000000000..79028730bddf78b0627b97f967f142f2182f05ad GIT binary patch literal 32768 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

    *QDXs$7mgrQv2bh87K@sl8kq?a4cHweIpQ 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 UcY-XC5`t^W!=KM*QQ`CJsj&@$TL1t6 diff --git a/boot_project/hongri_boot.uvmpw b/boot_project/hongri_boot.uvmpw new file mode 100644 index 0000000000000000000000000000000000000000..2202f9c50621e14ee8b738e7d0b1c047f3bbfa1f GIT binary patch literal 8192 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 Z<6}nlTxElkP5~8)rQ~d1!UEZ~{{x+cc5wgz literal 0 HcmV?d00001 diff --git a/boot_project/hongri_boot.uvmpw.uvgui.Administrator b/boot_project/hongri_boot.uvmpw.uvgui.Administrator new file mode 100644 index 0000000000000000000000000000000000000000..2b13efe7bd052dae4b782e507b08a0214ed89a93 GIT binary patch literal 94208 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 z z_IUviQWGpD+i{gh>&oArgveEWbhwp5o}9V<-0a%nRB{?{ z{SQ@41V;U)Bbhndtj6RDp0W_qh@ueVV}BDzh__o3E@d8{z4Fl9AHQ;9?IOLnzkS3{ z%v^H_vQ<|!m=Wjo2j-7;FN_UnM9uU12RD3mS_Ed+TgSJo1xixH08lPAZWzJ+@FTHb zon0Jmf>9;eL597xt+xR7UUaAYRJ`|2b6Kb*rzvxCl+!h_#`%VZ4u@IS%$f zI_pqgtU8V0lApn}`nKdd_Vfdcbef-dqZu-S^a!rBW-NF=0z|BOVD%4O>w%#_)}rgh z^_z8T&yX*^MRC1+G}I55y6=_S7LZ`gD?-(Nd8#>ZJ;h}Bl+^s-P{da#;aZQ}i%zt; zNl%JzA29=ICZL4=*a9`*N$OG&QmT@KI`$J#3es@}yy&ANr_RBr@b*~yHW4B}GcEX1 z@*>R7w|ynnHJ`lWpid%#`=xj8sUj+@g!Ve)H0&3`n^|Ih1B^I59i9hY^<@e6LU5H1j z9Y^Aji;o7r3P2&lCOGaPQP(SYNy4;SOE+`bNbTTj)}%zAVNaf0od#P(fCzX+M$*a= zAc!afX~ys{+iRGrYG`0qm!*ejwrVlEdSMAM#osN3-CshRF>Ldc;?jFEhZ?ku-71TA zZG3w(&ok<6L@v#{iY@ZYB-1ENn&0YGLp{amN5@pG)m`l53c7C%w0Ay5B;MYqU__KF z>j^EQ#FBOO9O4V`kXYm*l_eXPT~xGe7}-upX%$8gRDJ_^af+{x>DP zt6iEHD24HWjz>Tmu$6fI&KB8Wu&Ajb%8UZ&eYS|8&U{o6y86DVxy+?N6~J>4r<{Wq zu!Z(49xQizisAMYXnnlirq8~?$=idGlmUNiy3y_f;J&-babBhB4q1Su_;4<}6tq8qFc<4=88L@=plcL*1Z@ku}AZnJ1EMKAx|HCAdx8(Hi*j8{vXC)B9O6!Fdho~-oUhj z8meRjuMql^Kd_8GY}znr#(TrB6@(xeD)I5~mQ&Te7d}M{yCxjgQid z04nuwJXHNWwoPNUy)Y=M8dp(4C=eJLkm8zK7H+mW5USG(15q-sfaBff6H|5`2Ii^$ z^QzZ$BB0H%5U2<15>9C0Q6^X^I^hmJ;{o|mKjSErCdaz1#jg#@TJ1^#Dk`R#E2)%Ib3lQ*j&fq0--G>g6*$_6Id8zpDCa6 zTRDGNx2#snoKVotNJ0EPyPUBPH~dZFean0nKVl8loTP@=povz{74@P0lNMO+g&kaX5OFe_)eEMMtGu0>m(bg<`P-iC9Q{42)~ux&49CU)%7%5ZXlTm_g(+WbWJWf^FQ)vUq!h+DBz1t}|5a#h}++2s8$@Q B_ptx~ literal 0 HcmV?d00001 diff --git a/boot_project/hongri_boot.uvprojx b/boot_project/hongri_boot.uvprojx deleted file mode 100644 index dc67a95790cfc5942b1a22cebdc7a822e19f64e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 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 BL)-uW diff --git a/boot_project/link_sct/GD32F105Flashdriver.sct b/boot_project/link_sct/GD32F105Flashdriver.sct new file mode 100644 index 0000000000000000000000000000000000000000..8f74173a0f115682168627406d3e00239a60ecc6 GIT binary patch literal 8192 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 delta 8464 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≶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 diff --git a/boot_source/code_app/app_boot/src/app_can.c b/boot_source/code_app/app_boot/src/app_can.c index 14c1337003d956c5794a23b6cbf19461e12aa889..2cce59783b6eb52d5c5ef82e87bbaad638dabbaa 100644 GIT binary patch literal 28672 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


    @f`KqQ)TA)mq3`}YQvy1! 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 Oxoxw#Mck8BOXlb$-$|kX literal 28672 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 OB!ex;-7O_6{~3Ljjz*XO diff --git a/boot_source/code_app/driver/inc/dev_log_usart.h b/boot_source/code_app/driver/inc/dev_log_usart.h index 0f2bf7d6b3030819badfa46000e8035344a30b85..84dfe4a9b9b1f212dff7acb9175927a75e76981f 100644 GIT binary patch delta 4336 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 diff --git a/boot_source/code_app/driver/inc/dev_sys.h b/boot_source/code_app/driver/inc/dev_sys.h index 8cd3c75be6e61d9497d8854e991b81aefeb84197..229fe0614f4b2f0f20fe46cbedbef65b273b7aca 100644 GIT binary patch literal 16384 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%0AVodlnUWf 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 diff --git a/boot_source/code_app/main/src/main.c b/boot_source/code_app/main/src/main.c index ae22750708658cd71ecb6fea193e4aedd96ec1ef..1ec54eebfbdf0241f0e2dc7a1c08206736373593 100644 GIT binary patch delta 8464 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 diff --git a/boot_source/code_app/service/CanStack/canBus_Com/Can_Transceiver.c b/boot_source/code_app/service/CanStack/canBus_Com/Can_Transceiver.c index 4fd10a0c9f8ab51f88f012e0a517554d3541b410..d550506780e80fe741470c6f1649e6ae4a985293 100644 GIT binary patch literal 16384 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 literal 16384 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

    n)d7|Nij+{1G{Pe3ml?^}U$AY&aiyDxMvolGk{ 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�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 MMZ+9_8Fi!y!uPef&;S4c diff --git a/boot_source/code_app/service/CanStack/canBus_hongri/Diag_Eeprom_C301.c b/boot_source/code_app/service/CanStack/canBus_hongri/Diag_Eeprom_C301.c index 1f42c1eb51bfdd0a992810dccc93d802e9f84ed0..c8769afed1229f19c9b524b8878cab8c8c72fae3 100644 GIT binary patch delta 8456 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 delta 8456 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%0A6Yc;ifrE9q1(Y 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 WbZ_ARj=sE5{#b%9?2+;{bnHJ6fl|Z( literal 0 HcmV?d00001 diff --git a/boot_source/code_app/startup/GD32F105/inc/system_gd32f10x.h b/boot_source/code_app/startup/GD32F105/inc/system_gd32f10x.h new file mode 100644 index 0000000000000000000000000000000000000000..71fc2af3af67d161da4d839ae9f99988fa8cb4e1 GIT binary patch literal 8192 zcmeIuNj^S+jU~-u5&fzeOqo+F#(+)OW_x-%O zpFhI&>UwkiKG)~V_Euk!SJlDB-ocBPg@uJpemq`+wgyR5Cytf)^V*LY1%L(!2mEh9 z02Bbtq;bSiD*zywrvu34enm*LVY**c@=tJiF!*6W9sv3Ko3_{8Af0_F`VC#ufd^%s z`<|o>mq+n^SHD2_#CUsIqe%`-^w{4iIl<=d5}ogHdka1>{bkZ9qVtjJXo|)A|Mem@ z2>;uogGHUEvx^G8p+h46+Y8&1l>NV6b-w^uuBo%+yGagYCQ;SwzjrdSwoJ=|`Vas6 z_<4I4coujTcoujTcoujTcoujTcoujTcoujTcoyK{;4DBTb8-m;M(eK~1&}1eMkNgO z-1%}3ce;>XTx|e558Uq4eZ+mhfp1ej_2K*Se@@Is*}rB!H&F22WokSP z0lilJ`DC*5#0mmt+?Nf+{M|UmDNR1N1?bgPuD}f^Rp~?t%W*8qPdRYT9~j@q;x(>9 zL7~n_hS3<5Pg^HvJca9{b+!nfXuVY8u!c>53v`XdwF$UXfca&|NIP-b*5D%y!sZk5 zLM=8%%(ynKg;hLbRXMViS`GZ8D#MkRk^4XOkxJrPZ?))DMd%cTXj)jk2O+WCLSLO35{Fr?9-v^ju#0ly1+lOrQ{B1vT1{HtKhGj8Ob#v-$Vnk5Y<(k_KQ?1TtKHRWqU zzjII%D$*o4Ivv`{zv?{Q5;Zc$2SF-W;4;qdXnU>(dJC)U?A&RucgNTC&AMRbz%%k+ zaNiy-Wq*wkA2|+SW?-Ua0fH{YT=r^p474j*BEgW~Cnww^WISgV%|OdP?>+pRw5aKX z=~KxWrHAIrZLl3XzrAHJ{Bp@AD3^QovSg|w@Q3(Z1XV^nX6I5+o1+#rGD`H2HM2f4`Fg^K+j1X}p}o}HBrx~nk);RT?O{cNZG zuj=_KR5?G-X3E-fr2Oc2Rx(nzydO63>c??G2H2)NV?1$BBHvEB)h3&T!DtTaA-*zg zZggA?CeaLbw!~;z#wAowUDoc!tOUUBCiepv{;1Wl^Tu5e8|vv+Wr_VpU(c+egq%$j zQ1NfY2Gc>qTy zh!qbMiPFB!HsEfB1GX+jK~gNZQddJni}qI$D1w8b3WE_A{ux}nU7izFe;wCy_Ut60 zy{D)c7P77@-q7bb)XdE)?&Q6Vs+e`;(Tzw72MZtuhvqKxAdli5K|33wS3;QUs>j`M zug}OaYc03$yB<9ErX=aqGbMZMS6{1zB(R1E!JQ+jPp5!><68>#X|3~Z+$%fdbLt8wvE^BTHK1ph%gM*5hwF6 zdv)yx>h&-D>nnO?lxYV4q4!(7Cku%~@lh+rQWCHu{RCw26=1B?8?}T4+#d0#qn_*2 z@D={bmR7|92FMT^UeqjK^Np|#yE&TTW;M4>U}T|S-LUijJK%37G*sMEf<#0?s(c~srnNG%c=T()d3o@M$x-%x=`UtZl1lGwC&V z1y!!Z7d?^rE-q)NvrBBVDn~T)W_4H2pE+|>Cd=yiqGo?@O1W9Nj|_Xrtx}=x%sR1S z7HLh;kSE=0nI9g&4eh}a3OQ(3h+lg`oxa1TB!Zq|sA$Hl-+*27b-sMkw!oGN+qQG2Z&#+fdJURYswD+A7uhzKf(BPo z|2`R0PJ|>HE;N+-4hWG;d6;&qef0AF<+%QqsH4@z@`Q!qZ&|(6Zj0I!`-mh7?KyJr zu)1cSOgAmebk-%Mn0UIGlazdTjI=9k(u$m~Z~ccuY?5qoO;E#=v;Qh&8WgIfF;xym zm%27!o@kFJs&{*j3gO~>Q4!W6$aZ3QcaQ#hyJDBqOlGxj&4zO(&Uw(IL3K-2Z%t@M zOSkWzw~RciE`;lz{Ol%x?43gSKt2qAqboOb=?>Z0mB36Jx@jv}J5bL?`} zsdZf*rKU^zG%G$OkS5E=@ZZaYzQhY`ZjaESvIgL*u^m90V4ItKjh#l{V)44vC`4Q9 z9Rn;3qedlL_5ES}f;sh_^0zcM(q1WL*M@kU`vd39wXqFznvb#*2!72vZ&1U1UR!hP zkgqzHXks-F>KAoB);5-EzVzrgs`D6FSYs&t){DzmU#L72%kMQig&ym3Z??6a0xs_N z;?&-JpI_sH7W78m#U9HZ1)&vn{oIKe5iqLS{?#8kkE-)sXoA*9hi%lUM(pB{pg0Gk z(KIc{eE@Qe#PeZlAk;W#v+pM1pH9-mR$(BE+da_R;i!_c!9*A1oU>y$mC@lx*src)aG>yz_+)#@lA;XpVx6LJS-Ent{s#$XfLI7 zSEG<( zJNDt=M8*wzT8ly#Xb7yP@`Y7OD&pzKI@tqxZ16aWR_Kk(F!%%eMVpb8V7R2Zc=eiq zj^-v|L_hfP%Wakg8iwqYL~Kq%`qqxONjXRh{&|GzUMP1Y?F*WWGS-Z1%Q|H%4U2Et$uoX!#V%NXaEejzCGm9)5e%$L!m)QT@Z;CU^86yShmb zV2UAWK4B>f;KL1mojxUJ3{qH%4lZdM&E)60bh+r+w0QuuQGI8GF5W85)sRC$Cz|vU z)0i|`?jll*2e?tNXoat1TABK4%bukYe{3nvM#&=>2fDDw@1ay+pcdCdG^-4%9ZH?M z;)B)Zs&mwYgiyZqX`W@@A*I?C#a40w)jxbLNWwiBtJGzt&>86#s*ONPt z?}bmNQ_Lyc(uJ#^*A!KHkzg?O8@7E~G0XQs!S9Fk)u)zf8e=qRRao?&RXmn^0*1Vx z|BSPhj~=Z%gaF*tuEg4=o^LG6g=;Aacv5#7|jI(Ajn;cR48pmgn0 z2x>PS(e%SvOV+6Z-1iG{t~1uAhk2w>BbZxO;+yonB^A>$n( zAeE8B0awSxKZ;pVu7vB?f{v}W^G)6*^>l``E%bhC^sh(b7$_`~@>NN({{0}T&TwTo zDk2dtkf3VPmk8irf~%~+@j?=&ByT^vBqq5cd1J*P0(bV^W+BxV;6QY*7LM4 z&6QD@CZo?fCoLsW<^+If_2dv}xKgzHQ9BhUp4GkQDi|1hoOw)2nc)OnhOb_XJ7+(o zzeGH2%gk=D9nTMZNR=SyKM2(^D&!#m%IjSDYqc2 zo%Ye5H+t>KF0msv@1&eY=Llf5oq@v9CZsRy!lm6HT&>ZY(r#ZbB5mf4TvYnxIkY?K za9566ebxur!8XI_{ZmHLy>w~hM9jN-4J-vQua4^Yu%Sbw${9w55@_&l|d3-Dg<CN37poW@ka5mVB z%rOc$9{!XEEa$+_N4jZ`7jkQmq(JKmUBJXLg>D`d0i~rvqrZKs29#ToN*;eq@xnMF zBS_204FJ4j2Q6Ysx?z_E8+AsdpLU2C@afkvR};DanN<>YXcyNTDUM%r-xi~eR0k*a zwNX7hx{yT4&fBe~N#-T4TKm97qIPi;yYx6t)W6)L?YMm%S=`5+b_^ZodIVC}LgGuR zVj8u`@MD7MFs!I^7-n997lO+_&0{*MV|_(FyaU9=;kb@pKXpNeTY@xq0qRuu^_XlV zH%xvGRvDV@I{m_mPFGd>?frsb1mWE?>rF;nW5xh_u@O4PT0Dc8)CHk~}$~H;I^xKSF#wt5}9iaB71lk%q T4>x1>Z?!=s{Ks^S6aMx;n;>)z literal 0 HcmV?d00001 diff --git a/boot_source/code_app/startup/GD32F105/src/gd32f10x_it.c b/boot_source/code_app/startup/GD32F105/src/gd32f10x_it.c new file mode 100644 index 0000000000000000000000000000000000000000..24da9d26ed74960fdbe06dca649299127a35041f GIT binary patch literal 12288 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 literal 0 HcmV?d00001 diff --git a/boot_source/code_app/startup/inc/stm32f10x.h b/boot_source/code_app/startup/STM32F105/inc/stm32f10x.h similarity index 100% rename from boot_source/code_app/startup/inc/stm32f10x.h rename to boot_source/code_app/startup/STM32F105/inc/stm32f10x.h diff --git a/boot_source/code_app/startup/inc/stm32f10x_it.h b/boot_source/code_app/startup/STM32F105/inc/stm32f10x_it.h similarity index 100% rename from boot_source/code_app/startup/inc/stm32f10x_it.h rename to boot_source/code_app/startup/STM32F105/inc/stm32f10x_it.h diff --git a/boot_source/code_app/startup/inc/stm32f10x_libopt.h b/boot_source/code_app/startup/STM32F105/inc/stm32f10x_libopt.h similarity index 100% rename from boot_source/code_app/startup/inc/stm32f10x_libopt.h rename to boot_source/code_app/startup/STM32F105/inc/stm32f10x_libopt.h diff --git a/boot_source/code_app/startup/inc/system_stm32f10x.h b/boot_source/code_app/startup/STM32F105/inc/system_stm32f10x.h similarity index 100% rename from boot_source/code_app/startup/inc/system_stm32f10x.h rename to boot_source/code_app/startup/STM32F105/inc/system_stm32f10x.h diff --git a/boot_source/code_app/startup/src/stm32f10x_it.c b/boot_source/code_app/startup/STM32F105/src/stm32f10x_it.c similarity index 100% rename from boot_source/code_app/startup/src/stm32f10x_it.c rename to boot_source/code_app/startup/STM32F105/src/stm32f10x_it.c diff --git a/boot_source/code_app/startup/src/system_stm32f10x.c b/boot_source/code_app/startup/STM32F105/src/system_stm32f10x.c similarity index 100% rename from boot_source/code_app/startup/src/system_stm32f10x.c rename to boot_source/code_app/startup/STM32F105/src/system_stm32f10x.c diff --git a/boot_source/platform/CMSIS/GD/GD32F10x/CoreSupport/core_cm3.h b/boot_source/platform/CMSIS/GD/GD32F10x/CoreSupport/core_cm3.h new file mode 100644 index 0000000..1b661b4 --- /dev/null +++ b/boot_source/platform/CMSIS/GD/GD32F10x/CoreSupport/core_cm3.h @@ -0,0 +1,1638 @@ +/**************************************************************************//** + * @file core_cm3.h + * @brief CMSIS Cortex-M3 Core Peripheral Access Layer Header File + * @version V3.30 + * @date 17. February 2014 + * + * @note + * + ******************************************************************************/ +/* Copyright (c) 2009 - 2014 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#endif + +#ifdef __cplusplus + extern "C" { +#endif + +#ifndef __CORE_CM3_H_GENERIC +#define __CORE_CM3_H_GENERIC + +/** \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
    + Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
    + Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
    + Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** \ingroup Cortex_M3 + @{ + */ + +/* CMSIS CM3 definitions */ +#define __CM3_CMSIS_VERSION_MAIN (0x03) /*!< [31:16] CMSIS HAL main version */ +#define __CM3_CMSIS_VERSION_SUB (0x20) /*!< [15:0] CMSIS HAL sub version */ +#define __CM3_CMSIS_VERSION ((__CM3_CMSIS_VERSION_MAIN << 16) | \ + __CM3_CMSIS_VERSION_SUB ) /*!< CMSIS HAL version number */ + +#define __CORTEX_M (0x03) /*!< Cortex-M Core */ + + +#if defined ( __CC_ARM ) + #define __ASM __asm /*!< asm keyword for ARM Compiler */ + #define __INLINE __inline /*!< inline keyword for ARM Compiler */ + #define __STATIC_INLINE static __inline + +#elif defined ( __GNUC__ ) + #define __ASM __asm /*!< asm keyword for GNU Compiler */ + #define __INLINE inline /*!< inline keyword for GNU Compiler */ + #define __STATIC_INLINE static inline + +#elif defined ( __ICCARM__ ) + #define __ASM __asm /*!< asm keyword for IAR Compiler */ + #define __INLINE inline /*!< inline keyword for IAR Compiler. Only available in High optimization mode! */ + #define __STATIC_INLINE static inline + +#elif defined ( __TMS470__ ) + #define __ASM __asm /*!< asm keyword for TI CCS Compiler */ + #define __STATIC_INLINE static inline + +#elif defined ( __TASKING__ ) + #define __ASM __asm /*!< asm keyword for TASKING Compiler */ + #define __INLINE inline /*!< inline keyword for TASKING Compiler */ + #define __STATIC_INLINE static inline + +#elif defined ( __CSMC__ ) /* Cosmic */ + #define __packed + #define __ASM _asm /*!< asm keyword for COSMIC Compiler */ + #define __INLINE inline /*use -pc99 on compile line !< inline keyword for COSMIC Compiler */ + #define __STATIC_INLINE static inline + +#endif + +/** __FPU_USED indicates whether an FPU is used or not. This core does not support an FPU at all +*/ +#define __FPU_USED 0 + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TMS470__ ) + #if defined __TI__VFP_SUPPORT____ + #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) /* Cosmic */ + #if ( __CSMC__ & 0x400) // FPU present for parser + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif +#endif + +#include /* standard types definitions */ +#include /* Core Instruction Access */ +#include /* Core Function Access */ + +#endif /* __CORE_CM3_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM3_H_DEPENDANT +#define __CORE_CM3_H_DEPENDANT + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM3_REV + #define __CM3_REV 0x0200 + #warning "__CM3_REV not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0 + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 4 + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0 + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/*@} end of group Cortex_M3 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + ******************************************************************************/ +/** \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { +#if (__CORTEX_M != 0x04) + uint32_t _reserved0:27; /*!< bit: 0..26 Reserved */ +#else + uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ +#endif + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + + +/** \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + + +/** \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ +#if (__CORTEX_M != 0x04) + uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ +#else + uint32_t _reserved0:7; /*!< bit: 9..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ +#endif + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t IT:2; /*!< bit: 25..26 saved IT state (read 0) */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + + +/** \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t FPCA:1; /*!< bit: 2 FP extension active flag */ + uint32_t _reserved0:29; /*!< bit: 3..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/*@} end of group CMSIS_CORE */ + + +/** \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IO uint32_t ISER[8]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[24]; + __IO uint32_t ICER[8]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[24]; + __IO uint32_t ISPR[8]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[24]; + __IO uint32_t ICPR[8]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[24]; + __IO uint32_t IABR[8]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[56]; + __IO uint8_t IP[240]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED5[644]; + __O uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0 /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL << NVIC_STIR_INTID_Pos) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __I uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IO uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IO uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IO uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IO uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IO uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IO uint8_t SHP[12]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IO uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IO uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IO uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IO uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IO uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IO uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IO uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __I uint32_t PFR[2]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __I uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __I uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __I uint32_t MMFR[4]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __I uint32_t ISAR[5]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + uint32_t RESERVED0[5]; + __IO uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24 /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20 /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16 /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4 /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0 /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL << SCB_CPUID_REVISION_Pos) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31 /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28 /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27 /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26 /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25 /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23 /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22 /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12 /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11 /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0 /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL << SCB_ICSR_VECTACTIVE_Pos) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#if (__CM3_REV < 0x0201) /* core r2p1 */ +#define SCB_VTOR_TBLBASE_Pos 29 /*!< SCB VTOR: TBLBASE Position */ +#define SCB_VTOR_TBLBASE_Msk (1UL << SCB_VTOR_TBLBASE_Pos) /*!< SCB VTOR: TBLBASE Mask */ + +#define SCB_VTOR_TBLOFF_Pos 7 /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x3FFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ +#else +#define SCB_VTOR_TBLOFF_Pos 7 /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ +#endif + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16 /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16 /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15 /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8 /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2 /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1 /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +#define SCB_AIRCR_VECTRESET_Pos 0 /*!< SCB AIRCR: VECTRESET Position */ +#define SCB_AIRCR_VECTRESET_Msk (1UL << SCB_AIRCR_VECTRESET_Pos) /*!< SCB AIRCR: VECTRESET Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4 /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2 /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1 /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9 /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8 /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4 /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3 /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1 /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +#define SCB_CCR_NONBASETHRDENA_Pos 0 /*!< SCB CCR: NONBASETHRDENA Position */ +#define SCB_CCR_NONBASETHRDENA_Msk (1UL << SCB_CCR_NONBASETHRDENA_Pos) /*!< SCB CCR: NONBASETHRDENA Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_USGFAULTENA_Pos 18 /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17 /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16 /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15 /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14 /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13 /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12 /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11 /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10 /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8 /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7 /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3 /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1 /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0 /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL << SCB_SHCSR_MEMFAULTACT_Pos) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Registers Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16 /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8 /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0 /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL << SCB_CFSR_MEMFAULTSR_Pos) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* SCB Hard Fault Status Registers Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31 /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30 /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1 /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4 /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3 /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2 /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1 /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0 /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL << SCB_DFSR_HALTED_Pos) /*!< SCB DFSR: HALTED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1]; + __I uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ +#if ((defined __CM3_REV) && (__CM3_REV >= 0x200)) + __IO uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +#else + uint32_t RESERVED1[1]; +#endif +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0 /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL << SCnSCB_ICTR_INTLINESNUM_Pos) /*!< ICTR: INTLINESNUM Mask */ + +/* Auxiliary Control Register Definitions */ + +#define SCnSCB_ACTLR_DISFOLD_Pos 2 /*!< ACTLR: DISFOLD Position */ +#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ + +#define SCnSCB_ACTLR_DISDEFWBUF_Pos 1 /*!< ACTLR: DISDEFWBUF Position */ +#define SCnSCB_ACTLR_DISDEFWBUF_Msk (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos) /*!< ACTLR: DISDEFWBUF Mask */ + +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0 /*!< ACTLR: DISMCYCINT Position */ +#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL << SCnSCB_ACTLR_DISMCYCINT_Pos) /*!< ACTLR: DISMCYCINT Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IO uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IO uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IO uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __I uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16 /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2 /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1 /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0 /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL << SysTick_CTRL_ENABLE_Pos) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0 /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL << SysTick_LOAD_RELOAD_Pos) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0 /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL << SysTick_VAL_CURRENT_Pos) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31 /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30 /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0 /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL << SysTick_VAL_CURRENT_Pos) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __O union + { + __O uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __O uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __O uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864]; + __IO uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15]; + __IO uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15]; + __IO uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[29]; + __O uint32_t IWR; /*!< Offset: 0xEF8 ( /W) ITM Integration Write Register */ + __I uint32_t IRR; /*!< Offset: 0xEFC (R/ ) ITM Integration Read Register */ + __IO uint32_t IMCR; /*!< Offset: 0xF00 (R/W) ITM Integration Mode Control Register */ + uint32_t RESERVED4[43]; + __O uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __I uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[6]; + __I uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __I uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __I uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __I uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __I uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __I uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __I uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __I uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __I uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __I uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __I uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __I uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0 /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFUL << ITM_TPR_PRIVMASK_Pos) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23 /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TraceBusID_Pos 16 /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10 /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPrescale_Pos 8 /*!< ITM TCR: TSPrescale Position */ +#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ + +#define ITM_TCR_SWOENA_Pos 4 /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3 /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2 /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1 /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0 /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL << ITM_TCR_ITMENA_Pos) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Integration Write Register Definitions */ +#define ITM_IWR_ATVALIDM_Pos 0 /*!< ITM IWR: ATVALIDM Position */ +#define ITM_IWR_ATVALIDM_Msk (1UL << ITM_IWR_ATVALIDM_Pos) /*!< ITM IWR: ATVALIDM Mask */ + +/* ITM Integration Read Register Definitions */ +#define ITM_IRR_ATREADYM_Pos 0 /*!< ITM IRR: ATREADYM Position */ +#define ITM_IRR_ATREADYM_Msk (1UL << ITM_IRR_ATREADYM_Pos) /*!< ITM IRR: ATREADYM Mask */ + +/* ITM Integration Mode Control Register Definitions */ +#define ITM_IMCR_INTEGRATION_Pos 0 /*!< ITM IMCR: INTEGRATION Position */ +#define ITM_IMCR_INTEGRATION_Msk (1UL << ITM_IMCR_INTEGRATION_Pos) /*!< ITM IMCR: INTEGRATION Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2 /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1 /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0 /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL << ITM_LSR_Present_Pos) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IO uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IO uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IO uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IO uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IO uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IO uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IO uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __I uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IO uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + __IO uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ + __IO uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED0[1]; + __IO uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + __IO uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ + __IO uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED1[1]; + __IO uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + __IO uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ + __IO uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED2[1]; + __IO uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + __IO uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ + __IO uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28 /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27 /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26 /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25 /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24 /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22 /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21 /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20 /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19 /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18 /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17 /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16 /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12 /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10 /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9 /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5 /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1 /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0 /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL << DWT_CTRL_CYCCNTENA_Pos) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0 /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL << DWT_CPICNT_CPICNT_Pos) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0 /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL << DWT_EXCCNT_EXCCNT_Pos) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0 /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL << DWT_SLEEPCNT_SLEEPCNT_Pos) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0 /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL << DWT_LSUCNT_LSUCNT_Pos) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0 /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL << DWT_FOLDCNT_FOLDCNT_Pos) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Mask Register Definitions */ +#define DWT_MASK_MASK_Pos 0 /*!< DWT MASK: MASK Position */ +#define DWT_MASK_MASK_Msk (0x1FUL << DWT_MASK_MASK_Pos) /*!< DWT MASK: MASK Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_MATCHED_Pos 24 /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVADDR1_Pos 16 /*!< DWT FUNCTION: DATAVADDR1 Position */ +#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ + +#define DWT_FUNCTION_DATAVADDR0_Pos 12 /*!< DWT FUNCTION: DATAVADDR0 Position */ +#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10 /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_LNK1ENA_Pos 9 /*!< DWT FUNCTION: LNK1ENA Position */ +#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ + +#define DWT_FUNCTION_DATAVMATCH_Pos 8 /*!< DWT FUNCTION: DATAVMATCH Position */ +#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ + +#define DWT_FUNCTION_CYCMATCH_Pos 7 /*!< DWT FUNCTION: CYCMATCH Position */ +#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ + +#define DWT_FUNCTION_EMITRANGE_Pos 5 /*!< DWT FUNCTION: EMITRANGE Position */ +#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ + +#define DWT_FUNCTION_FUNCTION_Pos 0 /*!< DWT FUNCTION: FUNCTION Position */ +#define DWT_FUNCTION_FUNCTION_Msk (0xFUL << DWT_FUNCTION_FUNCTION_Pos) /*!< DWT FUNCTION: FUNCTION Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IO uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IO uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2]; + __IO uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55]; + __IO uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131]; + __I uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IO uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __I uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759]; + __I uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER */ + __I uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __I uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1]; + __I uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __I uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IO uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39]; + __IO uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IO uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8]; + __I uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __I uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0 /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL << TPI_ACPR_PRESCALER_Pos) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0 /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL << TPI_SPPR_TXMODE_Pos) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3 /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2 /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1 /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0 /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL << TPI_FFSR_FlInProg_Pos) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8 /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1 /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0 /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL << TPI_TRIGGER_TRIGGER_Pos) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration ETM Data Register Definitions (FIFO0) */ +#define TPI_FIFO0_ITM_ATVALID_Pos 29 /*!< TPI FIFO0: ITM_ATVALID Position */ +#define TPI_FIFO0_ITM_ATVALID_Msk (0x3UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ + +#define TPI_FIFO0_ITM_bytecount_Pos 27 /*!< TPI FIFO0: ITM_bytecount Position */ +#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ + +#define TPI_FIFO0_ETM_ATVALID_Pos 26 /*!< TPI FIFO0: ETM_ATVALID Position */ +#define TPI_FIFO0_ETM_ATVALID_Msk (0x3UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ + +#define TPI_FIFO0_ETM_bytecount_Pos 24 /*!< TPI FIFO0: ETM_bytecount Position */ +#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ + +#define TPI_FIFO0_ETM2_Pos 16 /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8 /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0 /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL << TPI_FIFO0_ETM0_Pos) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY_Pos 0 /*!< TPI ITATBCTR2: ATREADY Position */ +#define TPI_ITATBCTR2_ATREADY_Msk (0x1UL << TPI_ITATBCTR2_ATREADY_Pos) /*!< TPI ITATBCTR2: ATREADY Mask */ + +/* TPI Integration ITM Data Register Definitions (FIFO1) */ +#define TPI_FIFO1_ITM_ATVALID_Pos 29 /*!< TPI FIFO1: ITM_ATVALID Position */ +#define TPI_FIFO1_ITM_ATVALID_Msk (0x3UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ + +#define TPI_FIFO1_ITM_bytecount_Pos 27 /*!< TPI FIFO1: ITM_bytecount Position */ +#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ + +#define TPI_FIFO1_ETM_ATVALID_Pos 26 /*!< TPI FIFO1: ETM_ATVALID Position */ +#define TPI_FIFO1_ETM_ATVALID_Msk (0x3UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ + +#define TPI_FIFO1_ETM_bytecount_Pos 24 /*!< TPI FIFO1: ETM_bytecount Position */ +#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ + +#define TPI_FIFO1_ITM2_Pos 16 /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8 /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0 /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL << TPI_FIFO1_ITM0_Pos) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY_Pos 0 /*!< TPI ITATBCTR0: ATREADY Position */ +#define TPI_ITATBCTR0_ATREADY_Msk (0x1UL << TPI_ITATBCTR0_ATREADY_Pos) /*!< TPI ITATBCTR0: ATREADY Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0 /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x1UL << TPI_ITCTRL_Mode_Pos) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11 /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10 /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9 /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6 /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5 /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0 /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x1FUL << TPI_DEVID_NrTraceInput_Pos) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 0 /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL << TPI_DEVTYPE_SubType_Pos) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 4 /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if (__MPU_PRESENT == 1) +/** \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __I uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IO uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IO uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IO uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IO uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ + __IO uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ + __IO uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ + __IO uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ + __IO uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ + __IO uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ + __IO uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ +} MPU_Type; + +/* MPU Type Register */ +#define MPU_TYPE_IREGION_Pos 16 /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8 /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0 /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL << MPU_TYPE_SEPARATE_Pos) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register */ +#define MPU_CTRL_PRIVDEFENA_Pos 2 /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1 /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0 /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL << MPU_CTRL_ENABLE_Pos) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register */ +#define MPU_RNR_REGION_Pos 0 /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL << MPU_RNR_REGION_Pos) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register */ +#define MPU_RBAR_ADDR_Pos 5 /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4 /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0 /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL << MPU_RBAR_REGION_Pos) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register */ +#define MPU_RASR_ATTRS_Pos 16 /*!< MPU RASR: MPU Region Attribute field Position */ +#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ + +#define MPU_RASR_XN_Pos 28 /*!< MPU RASR: ATTRS.XN Position */ +#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ + +#define MPU_RASR_AP_Pos 24 /*!< MPU RASR: ATTRS.AP Position */ +#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ + +#define MPU_RASR_TEX_Pos 19 /*!< MPU RASR: ATTRS.TEX Position */ +#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ + +#define MPU_RASR_S_Pos 18 /*!< MPU RASR: ATTRS.S Position */ +#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ + +#define MPU_RASR_C_Pos 17 /*!< MPU RASR: ATTRS.C Position */ +#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ + +#define MPU_RASR_B_Pos 16 /*!< MPU RASR: ATTRS.B Position */ +#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ + +#define MPU_RASR_SRD_Pos 8 /*!< MPU RASR: Sub-Region Disable Position */ +#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ + +#define MPU_RASR_SIZE_Pos 1 /*!< MPU RASR: Region Size Field Position */ +#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ + +#define MPU_RASR_ENABLE_Pos 0 /*!< MPU RASR: Region enable bit Position */ +#define MPU_RASR_ENABLE_Msk (1UL << MPU_RASR_ENABLE_Pos) /*!< MPU RASR: Region enable bit Disable Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +/** \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IO uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __O uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IO uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IO uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16 /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25 /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24 /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19 /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18 /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17 /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16 /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5 /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3 /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2 /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1 /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0 /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL << CoreDebug_DHCSR_C_DEBUGEN_Pos) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register */ +#define CoreDebug_DCRSR_REGWnR_Pos 16 /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0 /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL << CoreDebug_DCRSR_REGSEL_Pos) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register */ +#define CoreDebug_DEMCR_TRCENA_Pos 24 /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19 /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18 /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17 /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16 /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10 /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9 /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8 /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7 /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6 /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5 /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4 /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0 /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL << CoreDebug_DEMCR_VC_CORERESET_Pos) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Cortex-M3 Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ +#define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ +#define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ +#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ +#define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ +#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ +#define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ +#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ + +#if (__MPU_PRESENT == 1) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +/** \brief Set Priority Grouping + + The function sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FA << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << 8)); /* Insert write key and priorty group */ + SCB->AIRCR = reg_value; +} + + +/** \brief Get Priority Grouping + + The function reads the priority grouping field from the NVIC Interrupt Controller. + + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t NVIC_GetPriorityGrouping(void) +{ + return ((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos); /* read priority grouping field */ +} + + +/** \brief Enable External Interrupt + + The function enables a device-specific interrupt in the NVIC interrupt controller. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) +{ + NVIC->ISER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* enable interrupt */ +} + + +/** \brief Disable External Interrupt + + The function disables a device-specific interrupt in the NVIC interrupt controller. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) +{ + NVIC->ICER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* disable interrupt */ +} + + +/** \brief Get Pending Interrupt + + The function reads the pending register in the NVIC and returns the pending bit + for the specified interrupt. + + \param [in] IRQn Interrupt number. + + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + */ +__STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + return((uint32_t) ((NVIC->ISPR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F)))?1:0)); /* Return 1 if pending else 0 */ +} + + +/** \brief Set Pending Interrupt + + The function sets the pending bit of an external interrupt. + + \param [in] IRQn Interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ISPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* set interrupt pending */ +} + + +/** \brief Clear Pending Interrupt + + The function clears the pending bit of an external interrupt. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ICPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* Clear pending interrupt */ +} + + +/** \brief Get Active Interrupt + + The function reads the active register in NVIC and returns the active bit. + + \param [in] IRQn Interrupt number. + + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + */ +__STATIC_INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn) +{ + return((uint32_t)((NVIC->IABR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F)))?1:0)); /* Return 1 if active else 0 */ +} + + +/** \brief Set Interrupt Priority + + The function sets the priority of an interrupt. + + \note The priority cannot be set for every core interrupt. + + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + */ +__STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if(IRQn < 0) { + SCB->SHP[((uint32_t)(IRQn) & 0xF)-4] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); } /* set Priority for Cortex-M System Interrupts */ + else { + NVIC->IP[(uint32_t)(IRQn)] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); } /* set Priority for device specific Interrupts */ +} + + +/** \brief Get Interrupt Priority + + The function reads the priority of an interrupt. The interrupt + number can be positive to specify an external (device specific) + interrupt, or negative to specify an internal (core) interrupt. + + + \param [in] IRQn Interrupt number. + \return Interrupt Priority. Value is aligned automatically to the implemented + priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn) +{ + + if(IRQn < 0) { + return((uint32_t)(SCB->SHP[((uint32_t)(IRQn) & 0xF)-4] >> (8 - __NVIC_PRIO_BITS))); } /* get priority for Cortex-M system interrupts */ + else { + return((uint32_t)(NVIC->IP[(uint32_t)(IRQn)] >> (8 - __NVIC_PRIO_BITS))); } /* get priority for device specific interrupts */ +} + + +/** \brief Encode Priority + + The function encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the samllest possible priority group is set. + + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp; + SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS; + + return ( + ((PreemptPriority & ((1 << (PreemptPriorityBits)) - 1)) << SubPriorityBits) | + ((SubPriority & ((1 << (SubPriorityBits )) - 1))) + ); +} + + +/** \brief Decode Priority + + The function decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the samllest possible priority group is set. + + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* pPreemptPriority, uint32_t* pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp; + SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS; + + *pPreemptPriority = (Priority >> SubPriorityBits) & ((1 << (PreemptPriorityBits)) - 1); + *pSubPriority = (Priority ) & ((1 << (SubPriorityBits )) - 1); +} + + +/** \brief System Reset + + The function initiates a system reset request to reset the MCU. + */ +__STATIC_INLINE void NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + while(1); /* wait until reset */ +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if (__Vendor_SysTickConfig == 0) + +/** \brief System Tick Configuration + + The function initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + + \param [in] ticks Number of ticks between two interrupts. + + \return 0 Function succeeded. + \return 1 Function failed. + + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1) > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */ + + SysTick->LOAD = ticks - 1; /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY 0x5AA55AA5 /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** \brief ITM Send Character + + The function transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + + \param [in] ch Character to transmit. + + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if ((ITM->TCR & ITM_TCR_ITMENA_Msk) && /* ITM enabled */ + (ITM->TER & (1UL << 0) ) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0].u32 == 0); + ITM->PORT[0].u8 = (uint8_t) ch; + } + return (ch); +} + + +/** \brief ITM Receive Character + + The function inputs a character via the external variable \ref ITM_RxBuffer. + + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) { + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** \brief ITM Check Character + + The function checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) { + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) { + return (0); /* no character available */ + } else { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + +#endif /* __CORE_CM3_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ + +#ifdef __cplusplus +} +#endif diff --git a/boot_source/platform/CMSIS/GD/GD32F10x/CoreSupport/core_cmFunc.h b/boot_source/platform/CMSIS/GD/GD32F10x/CoreSupport/core_cmFunc.h new file mode 100644 index 0000000..2c2af69 --- /dev/null +++ b/boot_source/platform/CMSIS/GD/GD32F10x/CoreSupport/core_cmFunc.h @@ -0,0 +1,637 @@ +/**************************************************************************//** + * @file core_cmFunc.h + * @brief CMSIS Cortex-M Core Function Access Header File + * @version V3.30 + * @date 17. February 2014 + * + * @note + * + ******************************************************************************/ +/* Copyright (c) 2009 - 2014 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + + +#ifndef __CORE_CMFUNC_H +#define __CORE_CMFUNC_H + + +/* ########################### Core Function Access ########################### */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + @{ + */ + +#if defined ( __CC_ARM ) /*------------------RealView Compiler -----------------*/ +/* ARM armcc specific functions */ + +#if (__ARMCC_VERSION < 400677) + #error "Please use ARM Compiler Toolchain V4.0.677 or later!" +#endif + +/* intrinsic void __enable_irq(); */ +/* intrinsic void __disable_irq(); */ + +/** \brief Get Control Register + + This function returns the content of the Control Register. + + \return Control Register value + */ +__STATIC_INLINE uint32_t __get_CONTROL(void) +{ + register uint32_t __regControl __ASM("control"); + return(__regControl); +} + + +/** \brief Set Control Register + + This function writes the given value to the Control Register. + + \param [in] control Control Register value to set + */ +__STATIC_INLINE void __set_CONTROL(uint32_t control) +{ + register uint32_t __regControl __ASM("control"); + __regControl = control; +} + + +/** \brief Get IPSR Register + + This function returns the content of the IPSR Register. + + \return IPSR Register value + */ +__STATIC_INLINE uint32_t __get_IPSR(void) +{ + register uint32_t __regIPSR __ASM("ipsr"); + return(__regIPSR); +} + + +/** \brief Get APSR Register + + This function returns the content of the APSR Register. + + \return APSR Register value + */ +__STATIC_INLINE uint32_t __get_APSR(void) +{ + register uint32_t __regAPSR __ASM("apsr"); + return(__regAPSR); +} + + +/** \brief Get xPSR Register + + This function returns the content of the xPSR Register. + + \return xPSR Register value + */ +__STATIC_INLINE uint32_t __get_xPSR(void) +{ + register uint32_t __regXPSR __ASM("xpsr"); + return(__regXPSR); +} + + +/** \brief Get Process Stack Pointer + + This function returns the current value of the Process Stack Pointer (PSP). + + \return PSP Register value + */ +__STATIC_INLINE uint32_t __get_PSP(void) +{ + register uint32_t __regProcessStackPointer __ASM("psp"); + return(__regProcessStackPointer); +} + + +/** \brief Set Process Stack Pointer + + This function assigns the given value to the Process Stack Pointer (PSP). + + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_INLINE void __set_PSP(uint32_t topOfProcStack) +{ + register uint32_t __regProcessStackPointer __ASM("psp"); + __regProcessStackPointer = topOfProcStack; +} + + +/** \brief Get Main Stack Pointer + + This function returns the current value of the Main Stack Pointer (MSP). + + \return MSP Register value + */ +__STATIC_INLINE uint32_t __get_MSP(void) +{ + register uint32_t __regMainStackPointer __ASM("msp"); + return(__regMainStackPointer); +} + + +/** \brief Set Main Stack Pointer + + This function assigns the given value to the Main Stack Pointer (MSP). + + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_INLINE void __set_MSP(uint32_t topOfMainStack) +{ + register uint32_t __regMainStackPointer __ASM("msp"); + __regMainStackPointer = topOfMainStack; +} + + +/** \brief Get Priority Mask + + This function returns the current state of the priority mask bit from the Priority Mask Register. + + \return Priority Mask value + */ +__STATIC_INLINE uint32_t __get_PRIMASK(void) +{ + register uint32_t __regPriMask __ASM("primask"); + return(__regPriMask); +} + + +/** \brief Set Priority Mask + + This function assigns the given value to the Priority Mask Register. + + \param [in] priMask Priority Mask + */ +__STATIC_INLINE void __set_PRIMASK(uint32_t priMask) +{ + register uint32_t __regPriMask __ASM("primask"); + __regPriMask = (priMask); +} + + +#if (__CORTEX_M >= 0x03) + +/** \brief Enable FIQ + + This function enables FIQ interrupts by clearing the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +#define __enable_fault_irq __enable_fiq + + +/** \brief Disable FIQ + + This function disables FIQ interrupts by setting the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +#define __disable_fault_irq __disable_fiq + + +/** \brief Get Base Priority + + This function returns the current value of the Base Priority register. + + \return Base Priority register value + */ +__STATIC_INLINE uint32_t __get_BASEPRI(void) +{ + register uint32_t __regBasePri __ASM("basepri"); + return(__regBasePri); +} + + +/** \brief Set Base Priority + + This function assigns the given value to the Base Priority register. + + \param [in] basePri Base Priority value to set + */ +__STATIC_INLINE void __set_BASEPRI(uint32_t basePri) +{ + register uint32_t __regBasePri __ASM("basepri"); + __regBasePri = (basePri & 0xff); +} + + +/** \brief Get Fault Mask + + This function returns the current value of the Fault Mask register. + + \return Fault Mask register value + */ +__STATIC_INLINE uint32_t __get_FAULTMASK(void) +{ + register uint32_t __regFaultMask __ASM("faultmask"); + return(__regFaultMask); +} + + +/** \brief Set Fault Mask + + This function assigns the given value to the Fault Mask register. + + \param [in] faultMask Fault Mask value to set + */ +__STATIC_INLINE void __set_FAULTMASK(uint32_t faultMask) +{ + register uint32_t __regFaultMask __ASM("faultmask"); + __regFaultMask = (faultMask & (uint32_t)1); +} + +#endif /* (__CORTEX_M >= 0x03) */ + + +#if (__CORTEX_M == 0x04) + +/** \brief Get FPSCR + + This function returns the current value of the Floating Point Status/Control register. + + \return Floating Point Status/Control register value + */ +__STATIC_INLINE uint32_t __get_FPSCR(void) +{ +#if (__FPU_PRESENT == 1) && (__FPU_USED == 1) + register uint32_t __regfpscr __ASM("fpscr"); + return(__regfpscr); +#else + return(0); +#endif +} + + +/** \brief Set FPSCR + + This function assigns the given value to the Floating Point Status/Control register. + + \param [in] fpscr Floating Point Status/Control value to set + */ +__STATIC_INLINE void __set_FPSCR(uint32_t fpscr) +{ +#if (__FPU_PRESENT == 1) && (__FPU_USED == 1) + register uint32_t __regfpscr __ASM("fpscr"); + __regfpscr = (fpscr); +#endif +} + +#endif /* (__CORTEX_M == 0x04) */ + + +#elif defined ( __GNUC__ ) /*------------------ GNU Compiler ---------------------*/ +/* GNU gcc specific functions */ + +/** \brief Enable IRQ Interrupts + + This function enables IRQ interrupts by clearing the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __enable_irq(void) +{ + __ASM volatile ("cpsie i" : : : "memory"); +} + + +/** \brief Disable IRQ Interrupts + + This function disables IRQ interrupts by setting the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __disable_irq(void) +{ + __ASM volatile ("cpsid i" : : : "memory"); +} + + +/** \brief Get Control Register + + This function returns the content of the Control Register. + + \return Control Register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_CONTROL(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control" : "=r" (result) ); + return(result); +} + + +/** \brief Set Control Register + + This function writes the given value to the Control Register. + + \param [in] control Control Register value to set + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __set_CONTROL(uint32_t control) +{ + __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); +} + + +/** \brief Get IPSR Register + + This function returns the content of the IPSR Register. + + \return IPSR Register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_IPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); + return(result); +} + + +/** \brief Get APSR Register + + This function returns the content of the APSR Register. + + \return APSR Register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_APSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, apsr" : "=r" (result) ); + return(result); +} + + +/** \brief Get xPSR Register + + This function returns the content of the xPSR Register. + + \return xPSR Register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_xPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); + return(result); +} + + +/** \brief Get Process Stack Pointer + + This function returns the current value of the Process Stack Pointer (PSP). + + \return PSP Register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_PSP(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, psp\n" : "=r" (result) ); + return(result); +} + + +/** \brief Set Process Stack Pointer + + This function assigns the given value to the Process Stack Pointer (PSP). + + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __set_PSP(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp, %0\n" : : "r" (topOfProcStack) : "sp"); +} + + +/** \brief Get Main Stack Pointer + + This function returns the current value of the Main Stack Pointer (MSP). + + \return MSP Register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_MSP(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, msp\n" : "=r" (result) ); + return(result); +} + + +/** \brief Set Main Stack Pointer + + This function assigns the given value to the Main Stack Pointer (MSP). + + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __set_MSP(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp, %0\n" : : "r" (topOfMainStack) : "sp"); +} + + +/** \brief Get Priority Mask + + This function returns the current state of the priority mask bit from the Priority Mask Register. + + \return Priority Mask value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_PRIMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask" : "=r" (result) ); + return(result); +} + + +/** \brief Set Priority Mask + + This function assigns the given value to the Priority Mask Register. + + \param [in] priMask Priority Mask + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __set_PRIMASK(uint32_t priMask) +{ + __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); +} + + +#if (__CORTEX_M >= 0x03) + +/** \brief Enable FIQ + + This function enables FIQ interrupts by clearing the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __enable_fault_irq(void) +{ + __ASM volatile ("cpsie f" : : : "memory"); +} + + +/** \brief Disable FIQ + + This function disables FIQ interrupts by setting the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __disable_fault_irq(void) +{ + __ASM volatile ("cpsid f" : : : "memory"); +} + + +/** \brief Get Base Priority + + This function returns the current value of the Base Priority register. + + \return Base Priority register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_BASEPRI(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri_max" : "=r" (result) ); + return(result); +} + + +/** \brief Set Base Priority + + This function assigns the given value to the Base Priority register. + + \param [in] basePri Base Priority value to set + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __set_BASEPRI(uint32_t value) +{ + __ASM volatile ("MSR basepri, %0" : : "r" (value) : "memory"); +} + + +/** \brief Get Fault Mask + + This function returns the current value of the Fault Mask register. + + \return Fault Mask register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_FAULTMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); + return(result); +} + + +/** \brief Set Fault Mask + + This function assigns the given value to the Fault Mask register. + + \param [in] faultMask Fault Mask value to set + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __set_FAULTMASK(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); +} + +#endif /* (__CORTEX_M >= 0x03) */ + + +#if (__CORTEX_M == 0x04) + +/** \brief Get FPSCR + + This function returns the current value of the Floating Point Status/Control register. + + \return Floating Point Status/Control register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_FPSCR(void) +{ +#if (__FPU_PRESENT == 1) && (__FPU_USED == 1) + uint32_t result; + + /* Empty asm statement works as a scheduling barrier */ + __ASM volatile (""); + __ASM volatile ("VMRS %0, fpscr" : "=r" (result) ); + __ASM volatile (""); + return(result); +#else + return(0); +#endif +} + + +/** \brief Set FPSCR + + This function assigns the given value to the Floating Point Status/Control register. + + \param [in] fpscr Floating Point Status/Control value to set + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __set_FPSCR(uint32_t fpscr) +{ +#if (__FPU_PRESENT == 1) && (__FPU_USED == 1) + /* Empty asm statement works as a scheduling barrier */ + __ASM volatile (""); + __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc"); + __ASM volatile (""); +#endif +} + +#endif /* (__CORTEX_M == 0x04) */ + + +#elif defined ( __ICCARM__ ) /*------------------ ICC Compiler -------------------*/ +/* IAR iccarm specific functions */ +#include + + +#elif defined ( __TMS470__ ) /*---------------- TI CCS Compiler ------------------*/ +/* TI CCS specific functions */ +#include + + +#elif defined ( __TASKING__ ) /*------------------ TASKING Compiler --------------*/ +/* TASKING carm specific functions */ +/* + * The CMSIS functions have been implemented as intrinsics in the compiler. + * Please use "carm -?i" to get an up to date list of all intrinsics, + * Including the CMSIS ones. + */ + + +#elif defined ( __CSMC__ ) /*------------------ COSMIC Compiler -------------------*/ +/* Cosmic specific functions */ +#include + +#endif + +/*@} end of CMSIS_Core_RegAccFunctions */ + +#endif /* __CORE_CMFUNC_H */ diff --git a/boot_source/platform/CMSIS/GD/GD32F10x/CoreSupport/core_cmInstr.h b/boot_source/platform/CMSIS/GD/GD32F10x/CoreSupport/core_cmInstr.h new file mode 100644 index 0000000..d2ec262 --- /dev/null +++ b/boot_source/platform/CMSIS/GD/GD32F10x/CoreSupport/core_cmInstr.h @@ -0,0 +1,687 @@ +/**************************************************************************//** + * @file core_cmInstr.h + * @brief CMSIS Cortex-M Core Instruction Access Header File + * @version V3.30 + * @date 17. February 2014 + * + * @note + * + ******************************************************************************/ +/* Copyright (c) 2009 - 2014 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + + +#ifndef __CORE_CMINSTR_H +#define __CORE_CMINSTR_H + + +/* ########################## Core Instruction Access ######################### */ +/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface + Access to dedicated instructions + @{ +*/ + +#if defined ( __CC_ARM ) /*------------------RealView Compiler -----------------*/ +/* ARM armcc specific functions */ + +#if (__ARMCC_VERSION < 400677) + #error "Please use ARM Compiler Toolchain V4.0.677 or later!" +#endif + + +/** \brief No Operation + + No Operation does nothing. This instruction can be used for code alignment purposes. + */ +#define __NOP __nop + + +/** \brief Wait For Interrupt + + Wait For Interrupt is a hint instruction that suspends execution + until one of a number of events occurs. + */ +#define __WFI __wfi + + +/** \brief Wait For Event + + Wait For Event is a hint instruction that permits the processor to enter + a low-power state until one of a number of events occurs. + */ +#define __WFE __wfe + + +/** \brief Send Event + + Send Event is a hint instruction. It causes an event to be signaled to the CPU. + */ +#define __SEV __sev + + +/** \brief Instruction Synchronization Barrier + + Instruction Synchronization Barrier flushes the pipeline in the processor, + so that all instructions following the ISB are fetched from cache or + memory, after the instruction has been completed. + */ +#define __ISB() __isb(0xF) + + +/** \brief Data Synchronization Barrier + + This function acts as a special kind of Data Memory Barrier. + It completes when all explicit memory accesses before this instruction complete. + */ +#define __DSB() __dsb(0xF) + + +/** \brief Data Memory Barrier + + This function ensures the apparent order of the explicit memory operations before + and after the instruction, without ensuring their completion. + */ +#define __DMB() __dmb(0xF) + + +/** \brief Reverse byte order (32 bit) + + This function reverses the byte order in integer value. + + \param [in] value Value to reverse + \return Reversed value + */ +#define __REV __rev + + +/** \brief Reverse byte order (16 bit) + + This function reverses the byte order in two unsigned short values. + + \param [in] value Value to reverse + \return Reversed value + */ +#ifndef __NO_EMBEDDED_ASM +__attribute__((section(".rev16_text"))) __STATIC_INLINE __ASM uint32_t __REV16(uint32_t value) +{ + rev16 r0, r0 + bx lr +} +#endif + +/** \brief Reverse byte order in signed short value + + This function reverses the byte order in a signed short value with sign extension to integer. + + \param [in] value Value to reverse + \return Reversed value + */ +#ifndef __NO_EMBEDDED_ASM +__attribute__((section(".revsh_text"))) __STATIC_INLINE __ASM int32_t __REVSH(int32_t value) +{ + revsh r0, r0 + bx lr +} +#endif + + +/** \brief Rotate Right in unsigned value (32 bit) + + This function Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. + + \param [in] value Value to rotate + \param [in] value Number of Bits to rotate + \return Rotated value + */ +#define __ROR __ror + + +/** \brief Breakpoint + + This function causes the processor to enter Debug state. + Debug tools can use this to investigate system state when the instruction at a particular address is reached. + + \param [in] value is ignored by the processor. + If required, a debugger can use it to store additional information about the breakpoint. + */ +#define __BKPT(value) __breakpoint(value) + + +#if (__CORTEX_M >= 0x03) + +/** \brief Reverse bit order of value + + This function reverses the bit order of the given value. + + \param [in] value Value to reverse + \return Reversed value + */ +#define __RBIT __rbit + + +/** \brief LDR Exclusive (8 bit) + + This function performs a exclusive LDR command for 8 bit value. + + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +#define __LDREXB(ptr) ((uint8_t ) __ldrex(ptr)) + + +/** \brief LDR Exclusive (16 bit) + + This function performs a exclusive LDR command for 16 bit values. + + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +#define __LDREXH(ptr) ((uint16_t) __ldrex(ptr)) + + +/** \brief LDR Exclusive (32 bit) + + This function performs a exclusive LDR command for 32 bit values. + + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +#define __LDREXW(ptr) ((uint32_t ) __ldrex(ptr)) + + +/** \brief STR Exclusive (8 bit) + + This function performs a exclusive STR command for 8 bit values. + + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STREXB(value, ptr) __strex(value, ptr) + + +/** \brief STR Exclusive (16 bit) + + This function performs a exclusive STR command for 16 bit values. + + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STREXH(value, ptr) __strex(value, ptr) + + +/** \brief STR Exclusive (32 bit) + + This function performs a exclusive STR command for 32 bit values. + + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STREXW(value, ptr) __strex(value, ptr) + + +/** \brief Remove the exclusive lock + + This function removes the exclusive lock which is created by LDREX. + + */ +#define __CLREX __clrex + + +/** \brief Signed Saturate + + This function saturates a signed value. + + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +#define __SSAT __ssat + + +/** \brief Unsigned Saturate + + This function saturates an unsigned value. + + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +#define __USAT __usat + + +/** \brief Count leading zeros + + This function counts the number of leading zeros of a data value. + + \param [in] value Value to count the leading zeros + \return number of leading zeros in value + */ +#define __CLZ __clz + +#endif /* (__CORTEX_M >= 0x03) */ + + +#elif defined ( __GNUC__ ) /*------------------ GNU Compiler ---------------------*/ +/* GNU gcc specific functions */ + +/* Define macros for porting to both thumb1 and thumb2. + * For thumb1, use low register (r0-r7), specified by constrant "l" + * Otherwise, use general registers, specified by constrant "r" */ +#if defined (__thumb__) && !defined (__thumb2__) +#define __CMSIS_GCC_OUT_REG(r) "=l" (r) +#define __CMSIS_GCC_USE_REG(r) "l" (r) +#else +#define __CMSIS_GCC_OUT_REG(r) "=r" (r) +#define __CMSIS_GCC_USE_REG(r) "r" (r) +#endif + +/** \brief No Operation + + No Operation does nothing. This instruction can be used for code alignment purposes. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __NOP(void) +{ + __ASM volatile ("nop"); +} + + +/** \brief Wait For Interrupt + + Wait For Interrupt is a hint instruction that suspends execution + until one of a number of events occurs. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __WFI(void) +{ + __ASM volatile ("wfi"); +} + + +/** \brief Wait For Event + + Wait For Event is a hint instruction that permits the processor to enter + a low-power state until one of a number of events occurs. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __WFE(void) +{ + __ASM volatile ("wfe"); +} + + +/** \brief Send Event + + Send Event is a hint instruction. It causes an event to be signaled to the CPU. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __SEV(void) +{ + __ASM volatile ("sev"); +} + + +/** \brief Instruction Synchronization Barrier + + Instruction Synchronization Barrier flushes the pipeline in the processor, + so that all instructions following the ISB are fetched from cache or + memory, after the instruction has been completed. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __ISB(void) +{ + __ASM volatile ("isb"); +} + + +/** \brief Data Synchronization Barrier + + This function acts as a special kind of Data Memory Barrier. + It completes when all explicit memory accesses before this instruction complete. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __DSB(void) +{ + __ASM volatile ("dsb"); +} + + +/** \brief Data Memory Barrier + + This function ensures the apparent order of the explicit memory operations before + and after the instruction, without ensuring their completion. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __DMB(void) +{ + __ASM volatile ("dmb"); +} + + +/** \brief Reverse byte order (32 bit) + + This function reverses the byte order in integer value. + + \param [in] value Value to reverse + \return Reversed value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __REV(uint32_t value) +{ +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) + return __builtin_bswap32(value); +#else + uint32_t result; + + __ASM volatile ("rev %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return(result); +#endif +} + + +/** \brief Reverse byte order (16 bit) + + This function reverses the byte order in two unsigned short values. + + \param [in] value Value to reverse + \return Reversed value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __REV16(uint32_t value) +{ + uint32_t result; + + __ASM volatile ("rev16 %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return(result); +} + + +/** \brief Reverse byte order in signed short value + + This function reverses the byte order in a signed short value with sign extension to integer. + + \param [in] value Value to reverse + \return Reversed value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE int32_t __REVSH(int32_t value) +{ +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + return (short)__builtin_bswap16(value); +#else + uint32_t result; + + __ASM volatile ("revsh %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return(result); +#endif +} + + +/** \brief Rotate Right in unsigned value (32 bit) + + This function Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. + + \param [in] value Value to rotate + \param [in] value Number of Bits to rotate + \return Rotated value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __ROR(uint32_t op1, uint32_t op2) +{ + return (op1 >> op2) | (op1 << (32 - op2)); +} + + +/** \brief Breakpoint + + This function causes the processor to enter Debug state. + Debug tools can use this to investigate system state when the instruction at a particular address is reached. + + \param [in] value is ignored by the processor. + If required, a debugger can use it to store additional information about the breakpoint. + */ +#define __BKPT(value) __ASM volatile ("bkpt "#value) + + +#if (__CORTEX_M >= 0x03) + +/** \brief Reverse bit order of value + + This function reverses the bit order of the given value. + + \param [in] value Value to reverse + \return Reversed value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __RBIT(uint32_t value) +{ + uint32_t result; + + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + return(result); +} + + +/** \brief LDR Exclusive (8 bit) + + This function performs a exclusive LDR command for 8 bit value. + + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint8_t __LDREXB(volatile uint8_t *addr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrexb %0, %1" : "=r" (result) : "Q" (*addr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrexb %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); +#endif + return ((uint8_t) result); /* Add explicit type cast here */ +} + + +/** \brief LDR Exclusive (16 bit) + + This function performs a exclusive LDR command for 16 bit values. + + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint16_t __LDREXH(volatile uint16_t *addr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrexh %0, %1" : "=r" (result) : "Q" (*addr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrexh %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); +#endif + return ((uint16_t) result); /* Add explicit type cast here */ +} + + +/** \brief LDR Exclusive (32 bit) + + This function performs a exclusive LDR command for 32 bit values. + + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __LDREXW(volatile uint32_t *addr) +{ + uint32_t result; + + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + return(result); +} + + +/** \brief STR Exclusive (8 bit) + + This function performs a exclusive STR command for 8 bit values. + + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __STREXB(uint8_t value, volatile uint8_t *addr) +{ + uint32_t result; + + __ASM volatile ("strexb %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) ); + return(result); +} + + +/** \brief STR Exclusive (16 bit) + + This function performs a exclusive STR command for 16 bit values. + + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __STREXH(uint16_t value, volatile uint16_t *addr) +{ + uint32_t result; + + __ASM volatile ("strexh %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) ); + return(result); +} + + +/** \brief STR Exclusive (32 bit) + + This function performs a exclusive STR command for 32 bit values. + + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __STREXW(uint32_t value, volatile uint32_t *addr) +{ + uint32_t result; + + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + return(result); +} + + +/** \brief Remove the exclusive lock + + This function removes the exclusive lock which is created by LDREX. + + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __CLREX(void) +{ + __ASM volatile ("clrex" ::: "memory"); +} + + +/** \brief Signed Saturate + + This function saturates a signed value. + + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +#define __SSAT(ARG1,ARG2) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1); \ + __ASM ("ssat %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + + +/** \brief Unsigned Saturate + + This function saturates an unsigned value. + + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +#define __USAT(ARG1,ARG2) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1); \ + __ASM ("usat %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + + +/** \brief Count leading zeros + + This function counts the number of leading zeros of a data value. + + \param [in] value Value to count the leading zeros + \return number of leading zeros in value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint8_t __CLZ(uint32_t value) +{ + uint32_t result; + + __ASM volatile ("clz %0, %1" : "=r" (result) : "r" (value) ); + return ((uint8_t) result); /* Add explicit type cast here */ +} + +#endif /* (__CORTEX_M >= 0x03) */ + + +#elif defined ( __ICCARM__ ) /*------------------ ICC Compiler -------------------*/ +/* IAR iccarm specific functions */ +#include + + +#elif defined ( __TMS470__ ) /*---------------- TI CCS Compiler ------------------*/ +/* TI CCS specific functions */ +#include + + +#elif defined ( __TASKING__ ) /*------------------ TASKING Compiler --------------*/ +/* TASKING carm specific functions */ +/* + * The CMSIS functions have been implemented as intrinsics in the compiler. + * Please use "carm -?i" to get an up to date list of all intrinsics, + * Including the CMSIS ones. + */ + + +#elif defined ( __CSMC__ ) /*------------------ COSMIC Compiler -------------------*/ +/* Cosmic specific functions */ +#include + +#endif + +/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ + +#endif /* __CORE_CMINSTR_H */ diff --git a/boot_source/platform/CMSIS/GD/GD32F10x/Include/gd32f10x.h b/boot_source/platform/CMSIS/GD/GD32F10x/Include/gd32f10x.h new file mode 100644 index 0000000000000000000000000000000000000000..30df3a59d5c6ff9b7baed026b20a79aa2fc98dc7 GIT binary patch literal 36864 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%0A6Yc;ifrE9q1(Y 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 literal 0 HcmV?d00001 diff --git a/boot_source/platform/CMSIS/GD/GD32F10x/Include/system_gd32f10x.h b/boot_source/platform/CMSIS/GD/GD32F10x/Include/system_gd32f10x.h new file mode 100644 index 0000000000000000000000000000000000000000..80cf6c81e8925adc71f4383ab5b1103ab7f22144 GIT binary patch literal 8192 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�ma+Sez zb@R-FAoK-#s{6Edv*t2C&5Dk)DF7MibP`0*ZPx`#mePGs4W8ST5?;z6#r6EVQW zteRe=%gUiYWl}`$O9J8|SFp9megcG9gW*%&EPmdFIjBOJFMM4%JAg*X-2bt1F`u@L zsX|DFW7ec>d-S%0`TN^b@Nc;Sf@7xLk5^LjcxF@Pg%w zoyRDxf0BQ@d#~E%GVQadE5_(n{>?30F;GmD=)sFxZDmNx!{xO=QAZNGl$l%%3GJvC zr~oVL=v|~0!i>IjLaRpSms1#ot56fIlIqbvw}81Ml2ePbBtp` zymq3^R)Y^&aT)flWTx2+q9gPD>{h$;D!~O@8I=E^Uf{1sZyw(&kve>RqVfd!h>1f< zkcuxQXG;>OBb(KbTal+D{IS=0hoTcpG=N4=*<8oCTmIw*Vl z`Kbu}F&Oj7Hb)@+8}@gD$38={55%e5gI21isUID?CFJbv)br2v**cF5Hl7_OHAp4B zuY}am-VSnS1ZW=@0=;|7AMz8fU-sa}t>7C*TCN;MI&JkgRR4jCLw%FgU*B{&l0Mxs>d(3LA19{qmc2<4 zomi)fU;jD2y~Mh>8h36|d?&t_#=u+G7(6u7DeCcB?$~|I#<`op7(mi)f&ub#%5UUr ze|G zvzXs(OofP%tO@*S+8ZYFu4}l3H4aL3zQ9#Afu%-jD0~J_I+CvmbYBZ#gGXEaJOu^kLe}ZY$|Ga<%flAZ X<|5x7|A;JoPqcTk@xB+kG0yrwePM7@ literal 0 HcmV?d00001 diff --git a/boot_source/platform/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_cl.s b/boot_source/platform/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_cl.s new file mode 100644 index 0000000000000000000000000000000000000000..42f110573f86b50ddf02fa2426c2c6bd935276a4 GIT binary patch literal 24576 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%0D?BUm|BHN-jzNTos0Z9gPy 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 literal 0 HcmV?d00001 diff --git a/boot_source/platform/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_hd.s b/boot_source/platform/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_hd.s new file mode 100644 index 0000000..440f308 --- /dev/null +++ b/boot_source/platform/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_hd.s @@ -0,0 +1,369 @@ +;/*! +; \file startup_gd32f10x_hd.s +; \brief start up file +; +; \version 2024-01-05, V2.3.0, firmware for GD32F10x +;*/ +; +;/* Copyright (c) 2011 - 2012 ARM LIMITED +; Copyright (c) 2024, GigaDevice Semiconductor Inc. +; +; All rights reserved. +; Redistribution and use in source and binary forms, with or without +; modification, are permitted provided that the following conditions are met: +; - Redistributions of source code must retain the above copyright +; notice, this list of conditions and the following disclaimer. +; - Redistributions in binary form must reproduce the above copyright +; notice, this list of conditions and the following disclaimer in the +; documentation and/or other materials provided with the distribution. +; - Neither the name of ARM nor the names of its contributors may be used +; to endorse or promote products derived from this software without +; specific prior written permission. +; * +; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +; ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE +; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +; POSSIBILITY OF SUCH DAMAGE. +;*/ +;/* This file refers the CMSIS standard, some adjustments are made according to GigaDevice chips */ + +; Stack Configuration +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Stack_Size EQU 0x00000400 + + AREA STACK, NOINIT, READWRITE, ALIGN = 3 +Stack_Mem SPACE Stack_Size +__initial_sp + + +; Heap Configuration +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Heap_Size EQU 0x00000200 + + AREA HEAP, NOINIT, READWRITE, ALIGN = 3 +__heap_base +Heap_Mem SPACE Heap_Size +__heap_limit + + + PRESERVE8 + THUMB + +; /* reset Vector Mapped to at Address 0 */ + AREA RESET, DATA, READONLY + EXPORT __Vectors + EXPORT __Vectors_End + EXPORT __Vectors_Size + +__Vectors DCD __initial_sp ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD MemManage_Handler ; MPU Fault Handler + DCD BusFault_Handler ; Bus Fault Handler + DCD UsageFault_Handler ; Usage Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD DebugMon_Handler ; Debug Monitor Handler + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + +; /* external interrupts handler */ + DCD WWDGT_IRQHandler ; 16:Window Watchdog Timer + DCD LVD_IRQHandler ; 17:LVD through EXTI Line detect + DCD TAMPER_IRQHandler ; 18:Tamper Interrupt + DCD RTC_IRQHandler ; 19:RTC through EXTI Line + DCD FMC_IRQHandler ; 20:FMC + DCD RCU_IRQHandler ; 21:RCU + DCD EXTI0_IRQHandler ; 22:EXTI Line 0 + DCD EXTI1_IRQHandler ; 23:EXTI Line 1 + DCD EXTI2_IRQHandler ; 24:EXTI Line 2 + DCD EXTI3_IRQHandler ; 25:EXTI Line 3 + DCD EXTI4_IRQHandler ; 26:EXTI Line 4 + DCD DMA0_Channel0_IRQHandler ; 27:DMA0 Channel 0 + DCD DMA0_Channel1_IRQHandler ; 28:DMA0 Channel 1 + DCD DMA0_Channel2_IRQHandler ; 29:DMA0 Channel 2 + DCD DMA0_Channel3_IRQHandler ; 30:DMA0 Channel 3 + DCD DMA0_Channel4_IRQHandler ; 31:DMA0 Channel 4 + DCD DMA0_Channel5_IRQHandler ; 32:DMA0 Channel 5 + DCD DMA0_Channel6_IRQHandler ; 33:DMA0 Channel 6 + DCD ADC0_1_IRQHandler ; 34:ADC0 and ADC1 + DCD USBD_HP_CAN0_TX_IRQHandler ; 35:USBD and CAN0 TX + DCD USBD_LP_CAN0_RX0_IRQHandler ; 36:USBD and CAN0 RX0 + DCD CAN0_RX1_IRQHandler ; 37:CAN0 RX1 + DCD CAN0_EWMC_IRQHandler ; 38:CAN0 EWMC + DCD EXTI5_9_IRQHandler ; 39:EXTI Line 5 to EXTI Line 9 + DCD TIMER0_BRK_IRQHandler ; 40:TIMER0 Break + DCD TIMER0_UP_IRQHandler ; 41:TIMER0 Update + DCD TIMER0_TRG_CMT_IRQHandler ; 42:TIMER0 Trigger and Commutation + DCD TIMER0_Channel_IRQHandler ; 43:TIMER0 Channel Capture Compare + DCD TIMER1_IRQHandler ; 44:TIMER1 + DCD TIMER2_IRQHandler ; 45:TIMER2 + DCD TIMER3_IRQHandler ; 46:TIMER3 + DCD I2C0_EV_IRQHandler ; 47:I2C0 Event + DCD I2C0_ER_IRQHandler ; 48:I2C0 Error + DCD I2C1_EV_IRQHandler ; 49:I2C1 Event + DCD I2C1_ER_IRQHandler ; 50:I2C1 Error + DCD SPI0_IRQHandler ; 51:SPI0 + DCD SPI1_IRQHandler ; 52:SPI1 + DCD USART0_IRQHandler ; 53:USART0 + DCD USART1_IRQHandler ; 54:USART1 + DCD USART2_IRQHandler ; 55:USART2 + DCD EXTI10_15_IRQHandler ; 56:EXTI Line 10 to EXTI Line 15 + DCD RTC_Alarm_IRQHandler ; 57:RTC Alarm through EXTI Line + DCD USBD_WKUP_IRQHandler ; 58:USBD WakeUp from suspend through EXTI Line + DCD TIMER7_BRK_IRQHandler ; 59:TIMER7 Break Interrupt + DCD TIMER7_UP_IRQHandler ; 60:TIMER7 Update Interrupt + DCD TIMER7_TRG_CMT_IRQHandler ; 61:TIMER7 Trigger and Commutation Interrupt + DCD TIMER7_Channel_IRQHandler ; 62:TIMER7 Channel Capture Compare + DCD ADC2_IRQHandler ; 63:ADC2 + DCD EXMC_IRQHandler ; 64:EXMC + DCD SDIO_IRQHandler ; 65:SDIO + DCD TIMER4_IRQHandler ; 66:TIMER4 + DCD SPI2_IRQHandler ; 67:SPI2 + DCD UART3_IRQHandler ; 68:UART3 + DCD UART4_IRQHandler ; 69:UART4 + DCD TIMER5_IRQHandler ; 70:TIMER5 + DCD TIMER6_IRQHandler ; 71:TIMER6 + DCD DMA1_Channel0_IRQHandler ; 72:DMA1 Channel0 + DCD DMA1_Channel1_IRQHandler ; 73:DMA1 Channel1 + DCD DMA1_Channel2_IRQHandler ; 74:DMA1 Channel2 + DCD DMA1_Channel3_4_IRQHandler ; 75:DMA1 Channel3 and Channel4 + +__Vectors_End + +__Vectors_Size EQU __Vectors_End - __Vectors + + AREA |.text|, CODE, READONLY + +;/* reset Handler */ +Reset_Handler PROC + EXPORT Reset_Handler [WEAK] + IMPORT __main + IMPORT SystemInit + LDR R0, =SystemInit + BLX R0 + LDR R0, =__main + BX R0 + ENDP + +;/* dummy Exception Handlers */ +NMI_Handler PROC + EXPORT NMI_Handler [WEAK] + B . + ENDP + +HardFault_Handler PROC + EXPORT HardFault_Handler [WEAK] + B . + ENDP + +MemManage_Handler PROC + EXPORT MemManage_Handler [WEAK] + B . + ENDP + +BusFault_Handler PROC + EXPORT BusFault_Handler [WEAK] + B . + ENDP + +UsageFault_Handler PROC + EXPORT UsageFault_Handler [WEAK] + B . + ENDP + +SVC_Handler PROC + EXPORT SVC_Handler [WEAK] + B . + ENDP + +DebugMon_Handler PROC + EXPORT DebugMon_Handler [WEAK] + B . + ENDP + +PendSV_Handler PROC + EXPORT PendSV_Handler [WEAK] + B . + ENDP + +SysTick_Handler PROC + EXPORT SysTick_Handler [WEAK] + B . + ENDP + +Default_Handler PROC +; /* external interrupts handler */ + EXPORT WWDGT_IRQHandler [WEAK] + EXPORT LVD_IRQHandler [WEAK] + EXPORT TAMPER_IRQHandler [WEAK] + EXPORT RTC_IRQHandler [WEAK] + EXPORT FMC_IRQHandler [WEAK] + EXPORT RCU_IRQHandler [WEAK] + EXPORT EXTI0_IRQHandler [WEAK] + EXPORT EXTI1_IRQHandler [WEAK] + EXPORT EXTI2_IRQHandler [WEAK] + EXPORT EXTI3_IRQHandler [WEAK] + EXPORT EXTI4_IRQHandler [WEAK] + EXPORT DMA0_Channel0_IRQHandler [WEAK] + EXPORT DMA0_Channel1_IRQHandler [WEAK] + EXPORT DMA0_Channel2_IRQHandler [WEAK] + EXPORT DMA0_Channel3_IRQHandler [WEAK] + EXPORT DMA0_Channel4_IRQHandler [WEAK] + EXPORT DMA0_Channel5_IRQHandler [WEAK] + EXPORT DMA0_Channel6_IRQHandler [WEAK] + EXPORT ADC0_1_IRQHandler [WEAK] + EXPORT USBD_HP_CAN0_TX_IRQHandler [WEAK] + EXPORT USBD_LP_CAN0_RX0_IRQHandler [WEAK] + EXPORT CAN0_RX1_IRQHandler [WEAK] + EXPORT CAN0_EWMC_IRQHandler [WEAK] + EXPORT EXTI5_9_IRQHandler [WEAK] + EXPORT TIMER0_BRK_IRQHandler [WEAK] + EXPORT TIMER0_UP_IRQHandler [WEAK] + EXPORT TIMER0_TRG_CMT_IRQHandler [WEAK] + EXPORT TIMER0_Channel_IRQHandler [WEAK] + EXPORT TIMER1_IRQHandler [WEAK] + EXPORT TIMER2_IRQHandler [WEAK] + EXPORT TIMER3_IRQHandler [WEAK] + EXPORT I2C0_EV_IRQHandler [WEAK] + EXPORT I2C0_ER_IRQHandler [WEAK] + EXPORT I2C1_EV_IRQHandler [WEAK] + EXPORT I2C1_ER_IRQHandler [WEAK] + EXPORT SPI0_IRQHandler [WEAK] + EXPORT SPI1_IRQHandler [WEAK] + EXPORT USART0_IRQHandler [WEAK] + EXPORT USART1_IRQHandler [WEAK] + EXPORT USART2_IRQHandler [WEAK] + EXPORT EXTI10_15_IRQHandler [WEAK] + EXPORT RTC_Alarm_IRQHandler [WEAK] + EXPORT USBD_WKUP_IRQHandler [WEAK] + EXPORT TIMER7_BRK_IRQHandler [WEAK] + EXPORT TIMER7_UP_IRQHandler [WEAK] + EXPORT TIMER7_TRG_CMT_IRQHandler [WEAK] + EXPORT TIMER7_Channel_IRQHandler [WEAK] + EXPORT ADC2_IRQHandler [WEAK] + EXPORT EXMC_IRQHandler [WEAK] + EXPORT SDIO_IRQHandler [WEAK] + EXPORT TIMER4_IRQHandler [WEAK] + EXPORT SPI2_IRQHandler [WEAK] + EXPORT UART3_IRQHandler [WEAK] + EXPORT UART4_IRQHandler [WEAK] + EXPORT TIMER5_IRQHandler [WEAK] + EXPORT TIMER6_IRQHandler [WEAK] + EXPORT DMA1_Channel0_IRQHandler [WEAK] + EXPORT DMA1_Channel1_IRQHandler [WEAK] + EXPORT DMA1_Channel2_IRQHandler [WEAK] + EXPORT DMA1_Channel3_4_IRQHandler [WEAK] + + +;/* external interrupts handler */ +WWDGT_IRQHandler +LVD_IRQHandler +TAMPER_IRQHandler +RTC_IRQHandler +FMC_IRQHandler +RCU_IRQHandler +EXTI0_IRQHandler +EXTI1_IRQHandler +EXTI2_IRQHandler +EXTI3_IRQHandler +EXTI4_IRQHandler +DMA0_Channel0_IRQHandler +DMA0_Channel1_IRQHandler +DMA0_Channel2_IRQHandler +DMA0_Channel3_IRQHandler +DMA0_Channel4_IRQHandler +DMA0_Channel5_IRQHandler +DMA0_Channel6_IRQHandler +ADC0_1_IRQHandler +USBD_HP_CAN0_TX_IRQHandler +USBD_LP_CAN0_RX0_IRQHandler +CAN0_RX1_IRQHandler +CAN0_EWMC_IRQHandler +EXTI5_9_IRQHandler +TIMER0_BRK_IRQHandler +TIMER0_UP_IRQHandler +TIMER0_TRG_CMT_IRQHandler +TIMER0_Channel_IRQHandler +TIMER1_IRQHandler +TIMER2_IRQHandler +TIMER3_IRQHandler +I2C0_EV_IRQHandler +I2C0_ER_IRQHandler +I2C1_EV_IRQHandler +I2C1_ER_IRQHandler +SPI0_IRQHandler +SPI1_IRQHandler +USART0_IRQHandler +USART1_IRQHandler +USART2_IRQHandler +EXTI10_15_IRQHandler +RTC_Alarm_IRQHandler +USBD_WKUP_IRQHandler +TIMER7_BRK_IRQHandler +TIMER7_UP_IRQHandler +TIMER7_TRG_CMT_IRQHandler +TIMER7_Channel_IRQHandler +ADC2_IRQHandler +EXMC_IRQHandler +SDIO_IRQHandler +TIMER4_IRQHandler +SPI2_IRQHandler +UART3_IRQHandler +UART4_IRQHandler +TIMER5_IRQHandler +TIMER6_IRQHandler +DMA1_Channel0_IRQHandler +DMA1_Channel1_IRQHandler +DMA1_Channel2_IRQHandler +DMA1_Channel3_4_IRQHandler + + + + B . + ENDP + + ALIGN + +; user Initial Stack & Heap + + IF :DEF:__MICROLIB + + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + + ELSE + + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap + +__user_initial_stackheap PROC + LDR R0, = Heap_Mem + LDR R1, =(Stack_Mem + Stack_Size) + LDR R2, = (Heap_Mem + Heap_Size) + LDR R3, = Stack_Mem + BX LR + ENDP + + ALIGN + + ENDIF + + END diff --git a/boot_source/platform/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_md.s b/boot_source/platform/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_md.s new file mode 100644 index 0000000..3c02759 --- /dev/null +++ b/boot_source/platform/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_md.s @@ -0,0 +1,326 @@ +;/*! +; \file startup_gd32f10x_md.s +; \brief start up file +; +; \version 2024-01-05, V2.3.0, firmware for GD32F10x +;*/ +; +;/* Copyright (c) 2011 - 2012 ARM LIMITED +; Copyright (c) 2024, GigaDevice Semiconductor Inc. +; +; All rights reserved. +; Redistribution and use in source and binary forms, with or without +; modification, are permitted provided that the following conditions are met: +; - Redistributions of source code must retain the above copyright +; notice, this list of conditions and the following disclaimer. +; - Redistributions in binary form must reproduce the above copyright +; notice, this list of conditions and the following disclaimer in the +; documentation and/or other materials provided with the distribution. +; - Neither the name of ARM nor the names of its contributors may be used +; to endorse or promote products derived from this software without +; specific prior written permission. +; * +; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +; ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE +; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +; POSSIBILITY OF SUCH DAMAGE. +;*/ +;/* This file refers the CMSIS standard, some adjustments are made according to GigaDevice chips */ + +; Stack Configuration +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Stack_Size EQU 0x00000400 + + AREA STACK, NOINIT, READWRITE, ALIGN = 3 +Stack_Mem SPACE Stack_Size +__initial_sp + + +; Heap Configuration +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Heap_Size EQU 0x00000200 + + AREA HEAP, NOINIT, READWRITE, ALIGN = 3 +__heap_base +Heap_Mem SPACE Heap_Size +__heap_limit + + + PRESERVE8 + THUMB + +; /* reset Vector Mapped to at Address 0 */ + AREA RESET, DATA, READONLY + EXPORT __Vectors + EXPORT __Vectors_End + EXPORT __Vectors_Size + +__Vectors DCD __initial_sp ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD MemManage_Handler ; MPU Fault Handler + DCD BusFault_Handler ; Bus Fault Handler + DCD UsageFault_Handler ; Usage Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD DebugMon_Handler ; Debug Monitor Handler + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + +; /* external interrupts handler */ + DCD WWDGT_IRQHandler ; 16:Window Watchdog Timer + DCD LVD_IRQHandler ; 17:LVD through EXTI Line detect + DCD TAMPER_IRQHandler ; 18:Tamper Interrupt + DCD RTC_IRQHandler ; 19:RTC through EXTI Line + DCD FMC_IRQHandler ; 20:FMC + DCD RCU_IRQHandler ; 21:RCU + DCD EXTI0_IRQHandler ; 22:EXTI Line 0 + DCD EXTI1_IRQHandler ; 23:EXTI Line 1 + DCD EXTI2_IRQHandler ; 24:EXTI Line 2 + DCD EXTI3_IRQHandler ; 25:EXTI Line 3 + DCD EXTI4_IRQHandler ; 26:EXTI Line 4 + DCD DMA0_Channel0_IRQHandler ; 27:DMA0 Channel 0 + DCD DMA0_Channel1_IRQHandler ; 28:DMA0 Channel 1 + DCD DMA0_Channel2_IRQHandler ; 29:DMA0 Channel 2 + DCD DMA0_Channel3_IRQHandler ; 30:DMA0 Channel 3 + DCD DMA0_Channel4_IRQHandler ; 31:DMA0 Channel 4 + DCD DMA0_Channel5_IRQHandler ; 32:DMA0 Channel 5 + DCD DMA0_Channel6_IRQHandler ; 33:DMA0 Channel 6 + DCD ADC0_1_IRQHandler ; 34:ADC0 and ADC1 + DCD USBD_HP_CAN0_TX_IRQHandler ; 35:USBD and CAN0 TX + DCD USBD_LP_CAN0_RX0_IRQHandler ; 36:USBD and CAN0 RX0 + DCD CAN0_RX1_IRQHandler ; 37:CAN0 RX1 + DCD CAN0_EWMC_IRQHandler ; 38:CAN0 EWMC + DCD EXTI5_9_IRQHandler ; 39:EXTI Line 5 to EXTI Line 9 + DCD TIMER0_BRK_IRQHandler ; 40:TIMER0 Break + DCD TIMER0_UP_IRQHandler ; 41:TIMER0 Update + DCD TIMER0_TRG_CMT_IRQHandler ; 42:TIMER0 Trigger + DCD TIMER0_Channel_IRQHandler ; 43:TIMER0 Channel Capture Compare + DCD TIMER1_IRQHandler ; 44:TIMER1 + DCD TIMER2_IRQHandler ; 45:TIMER2 + DCD TIMER3_IRQHandler ; 46:TIMER3 + DCD I2C0_EV_IRQHandler ; 47:I2C0 Event + DCD I2C0_ER_IRQHandler ; 48:I2C0 Error + DCD I2C1_EV_IRQHandler ; 49:I2C1 Event + DCD I2C1_ER_IRQHandler ; 50:I2C1 Error + DCD SPI0_IRQHandler ; 51:SPI0 + DCD SPI1_IRQHandler ; 52:SPI1 + DCD USART0_IRQHandler ; 53:USART0 + DCD USART1_IRQHandler ; 54:USART1 + DCD USART2_IRQHandler ; 55:USART2 + DCD EXTI10_15_IRQHandler ; 56:EXTI Line 10 to EXTI Line 15 + DCD RTC_Alarm_IRQHandler ; 57:RTC Alarm through EXTI Line + DCD USBD_WKUP_IRQHandler ; 58:USBD WakeUp from suspend through EXTI Line + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD EXMC_IRQHandler ; 64:EXMC + +__Vectors_End + +__Vectors_Size EQU __Vectors_End - __Vectors + + AREA |.text|, CODE, READONLY + +;/* reset Handler */ +Reset_Handler PROC + EXPORT Reset_Handler [WEAK] + IMPORT __main + IMPORT SystemInit + LDR R0, =SystemInit + BLX R0 + LDR R0, =__main + BX R0 + ENDP + +;/* dummy Exception Handlers */ +NMI_Handler PROC + EXPORT NMI_Handler [WEAK] + B . + ENDP + +HardFault_Handler PROC + EXPORT HardFault_Handler [WEAK] + B . + ENDP + +MemManage_Handler PROC + EXPORT MemManage_Handler [WEAK] + B . + ENDP + +BusFault_Handler PROC + EXPORT BusFault_Handler [WEAK] + B . + ENDP + +UsageFault_Handler PROC + EXPORT UsageFault_Handler [WEAK] + B . + ENDP + +SVC_Handler PROC + EXPORT SVC_Handler [WEAK] + B . + ENDP + +DebugMon_Handler PROC + EXPORT DebugMon_Handler [WEAK] + B . + ENDP + +PendSV_Handler PROC + EXPORT PendSV_Handler [WEAK] + B . + ENDP + +SysTick_Handler PROC + EXPORT SysTick_Handler [WEAK] + B . + ENDP + +Default_Handler PROC +; /* external interrupts handler */ + EXPORT WWDGT_IRQHandler [WEAK] + EXPORT LVD_IRQHandler [WEAK] + EXPORT TAMPER_IRQHandler [WEAK] + EXPORT RTC_IRQHandler [WEAK] + EXPORT FMC_IRQHandler [WEAK] + EXPORT RCU_IRQHandler [WEAK] + EXPORT EXTI0_IRQHandler [WEAK] + EXPORT EXTI1_IRQHandler [WEAK] + EXPORT EXTI2_IRQHandler [WEAK] + EXPORT EXTI3_IRQHandler [WEAK] + EXPORT EXTI4_IRQHandler [WEAK] + EXPORT DMA0_Channel0_IRQHandler [WEAK] + EXPORT DMA0_Channel1_IRQHandler [WEAK] + EXPORT DMA0_Channel2_IRQHandler [WEAK] + EXPORT DMA0_Channel3_IRQHandler [WEAK] + EXPORT DMA0_Channel4_IRQHandler [WEAK] + EXPORT DMA0_Channel5_IRQHandler [WEAK] + EXPORT DMA0_Channel6_IRQHandler [WEAK] + EXPORT ADC0_1_IRQHandler [WEAK] + EXPORT USBD_HP_CAN0_TX_IRQHandler [WEAK] + EXPORT USBD_LP_CAN0_RX0_IRQHandler [WEAK] + EXPORT CAN0_RX1_IRQHandler [WEAK] + EXPORT CAN0_EWMC_IRQHandler [WEAK] + EXPORT EXTI5_9_IRQHandler [WEAK] + EXPORT TIMER0_BRK_IRQHandler [WEAK] + EXPORT TIMER0_UP_IRQHandler [WEAK] + EXPORT TIMER0_TRG_CMT_IRQHandler [WEAK] + EXPORT TIMER0_Channel_IRQHandler [WEAK] + EXPORT TIMER1_IRQHandler [WEAK] + EXPORT TIMER2_IRQHandler [WEAK] + EXPORT TIMER3_IRQHandler [WEAK] + EXPORT I2C0_EV_IRQHandler [WEAK] + EXPORT I2C0_ER_IRQHandler [WEAK] + EXPORT I2C1_EV_IRQHandler [WEAK] + EXPORT I2C1_ER_IRQHandler [WEAK] + EXPORT SPI0_IRQHandler [WEAK] + EXPORT SPI1_IRQHandler [WEAK] + EXPORT USART0_IRQHandler [WEAK] + EXPORT USART1_IRQHandler [WEAK] + EXPORT USART2_IRQHandler [WEAK] + EXPORT EXTI10_15_IRQHandler [WEAK] + EXPORT RTC_Alarm_IRQHandler [WEAK] + EXPORT USBD_WKUP_IRQHandler [WEAK] + EXPORT EXMC_IRQHandler [WEAK] + + +;/* external interrupts handler */ +WWDGT_IRQHandler +LVD_IRQHandler +TAMPER_IRQHandler +RTC_IRQHandler +FMC_IRQHandler +RCU_IRQHandler +EXTI0_IRQHandler +EXTI1_IRQHandler +EXTI2_IRQHandler +EXTI3_IRQHandler +EXTI4_IRQHandler +DMA0_Channel0_IRQHandler +DMA0_Channel1_IRQHandler +DMA0_Channel2_IRQHandler +DMA0_Channel3_IRQHandler +DMA0_Channel4_IRQHandler +DMA0_Channel5_IRQHandler +DMA0_Channel6_IRQHandler +ADC0_1_IRQHandler +USBD_HP_CAN0_TX_IRQHandler +USBD_LP_CAN0_RX0_IRQHandler +CAN0_RX1_IRQHandler +CAN0_EWMC_IRQHandler +EXTI5_9_IRQHandler +TIMER0_BRK_IRQHandler +TIMER0_UP_IRQHandler +TIMER0_TRG_CMT_IRQHandler +TIMER0_Channel_IRQHandler +TIMER1_IRQHandler +TIMER2_IRQHandler +TIMER3_IRQHandler +I2C0_EV_IRQHandler +I2C0_ER_IRQHandler +I2C1_EV_IRQHandler +I2C1_ER_IRQHandler +SPI0_IRQHandler +SPI1_IRQHandler +USART0_IRQHandler +USART1_IRQHandler +USART2_IRQHandler +EXTI10_15_IRQHandler +RTC_Alarm_IRQHandler +USBD_WKUP_IRQHandler +EXMC_IRQHandler + + + + B . + ENDP + + ALIGN + +; user Initial Stack & Heap + + IF :DEF:__MICROLIB + + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + + ELSE + + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap + +__user_initial_stackheap PROC + LDR R0, = Heap_Mem + LDR R1, =(Stack_Mem + Stack_Size) + LDR R2, = (Heap_Mem + Heap_Size) + LDR R3, = Stack_Mem + BX LR + ENDP + + ALIGN + + ENDIF + + END diff --git a/boot_source/platform/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_xd.s b/boot_source/platform/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_xd.s new file mode 100644 index 0000000..b32be29 --- /dev/null +++ b/boot_source/platform/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_xd.s @@ -0,0 +1,369 @@ +;/*! +; \file startup_gd32f10x_xd.s +; \brief start up file +; +; \version 2024-01-05, V2.3.0, firmware for GD32F10x +;*/ +; +;/* Copyright (c) 2011 - 2012 ARM LIMITED +; Copyright (c) 2024, GigaDevice Semiconductor Inc. +; +; All rights reserved. +; Redistribution and use in source and binary forms, with or without +; modification, are permitted provided that the following conditions are met: +; - Redistributions of source code must retain the above copyright +; notice, this list of conditions and the following disclaimer. +; - Redistributions in binary form must reproduce the above copyright +; notice, this list of conditions and the following disclaimer in the +; documentation and/or other materials provided with the distribution. +; - Neither the name of ARM nor the names of its contributors may be used +; to endorse or promote products derived from this software without +; specific prior written permission. +; * +; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +; ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE +; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +; POSSIBILITY OF SUCH DAMAGE. +;*/ +;/* This file refers the CMSIS standard, some adjustments are made according to GigaDevice chips */ + +; Stack Configuration +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Stack_Size EQU 0x00000400 + + AREA STACK, NOINIT, READWRITE, ALIGN = 3 +Stack_Mem SPACE Stack_Size +__initial_sp + + +; Heap Configuration +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Heap_Size EQU 0x00000200 + + AREA HEAP, NOINIT, READWRITE, ALIGN = 3 +__heap_base +Heap_Mem SPACE Heap_Size +__heap_limit + + + PRESERVE8 + THUMB + +; /* reset Vector Mapped to at Address 0 */ + AREA RESET, DATA, READONLY + EXPORT __Vectors + EXPORT __Vectors_End + EXPORT __Vectors_Size + +__Vectors DCD __initial_sp ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD MemManage_Handler ; MPU Fault Handler + DCD BusFault_Handler ; Bus Fault Handler + DCD UsageFault_Handler ; Usage Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD DebugMon_Handler ; Debug Monitor Handler + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + +; /* external interrupts handler */ + DCD WWDGT_IRQHandler ; 16:Window Watchdog Timer + DCD LVD_IRQHandler ; 17:LVD through EXTI Line detect + DCD TAMPER_IRQHandler ; 18:Tamper Interrupt + DCD RTC_IRQHandler ; 19:RTC through EXTI Line + DCD FMC_IRQHandler ; 20:FMC + DCD RCU_IRQHandler ; 21:RCU + DCD EXTI0_IRQHandler ; 22:EXTI Line 0 + DCD EXTI1_IRQHandler ; 23:EXTI Line 1 + DCD EXTI2_IRQHandler ; 24:EXTI Line 2 + DCD EXTI3_IRQHandler ; 25:EXTI Line 3 + DCD EXTI4_IRQHandler ; 26:EXTI Line 4 + DCD DMA0_Channel0_IRQHandler ; 27:DMA0 Channel 0 + DCD DMA0_Channel1_IRQHandler ; 28:DMA0 Channel 1 + DCD DMA0_Channel2_IRQHandler ; 29:DMA0 Channel 2 + DCD DMA0_Channel3_IRQHandler ; 30:DMA0 Channel 3 + DCD DMA0_Channel4_IRQHandler ; 31:DMA0 Channel 4 + DCD DMA0_Channel5_IRQHandler ; 32:DMA0 Channel 5 + DCD DMA0_Channel6_IRQHandler ; 33:DMA0 Channel 6 + DCD ADC0_1_IRQHandler ; 34:ADC0 and ADC1 + DCD USBD_HP_CAN0_TX_IRQHandler ; 35:USBD and CAN0 TX + DCD USBD_LP_CAN0_RX0_IRQHandler ; 36:USBD and CAN0 RX0 + DCD CAN0_RX1_IRQHandler ; 37:CAN0 RX1 + DCD CAN0_EWMC_IRQHandler ; 38:CAN0 EWMC + DCD EXTI5_9_IRQHandler ; 39:EXTI Line 5 to EXTI Line 9 + DCD TIMER0_BRK_TIMER8_IRQHandler ; 40:TIMER0 Break and TIMER8 global + DCD TIMER0_UP_TIMER9_IRQHandler ; 41:TIMER0 Update and TIMER9 global + DCD TIMER0_TRG_CMT_TIMER10_IRQHandler ; 42:TIMER0 Trigger and Commutation and TIMER10 global + DCD TIMER0_Channel_IRQHandler ; 43:TIMER0 Channel Capture Compare + DCD TIMER1_IRQHandler ; 44:TIMER1 + DCD TIMER2_IRQHandler ; 45:TIMER2 + DCD TIMER3_IRQHandler ; 46:TIMER3 + DCD I2C0_EV_IRQHandler ; 47:I2C0 Event + DCD I2C0_ER_IRQHandler ; 48:I2C0 Error + DCD I2C1_EV_IRQHandler ; 49:I2C1 Event + DCD I2C1_ER_IRQHandler ; 50:I2C1 Error + DCD SPI0_IRQHandler ; 51:SPI0 + DCD SPI1_IRQHandler ; 52:SPI1 + DCD USART0_IRQHandler ; 53:USART0 + DCD USART1_IRQHandler ; 54:USART1 + DCD USART2_IRQHandler ; 55:USART2 + DCD EXTI10_15_IRQHandler ; 56:EXTI Line 10 to EXTI Line 15 + DCD RTC_Alarm_IRQHandler ; 57:RTC Alarm through EXTI Line + DCD USBD_WKUP_IRQHandler ; 58:USBD WakeUp from suspend through EXTI Line + DCD TIMER7_BRK_TIMER11_IRQHandler ; 59:TIMER7 Break Interrupt and TIMER11 global + DCD TIMER7_UP_TIMER12_IRQHandler ; 60:TIMER7 Update Interrupt and TIMER12 global + DCD TIMER7_TRG_CMT_TIMER13_IRQHandler ; 61:TIMER7 Trigger and Commutation Interrupt and TIMER13 global + DCD TIMER7_Channel_IRQHandler ; 62:TIMER7 Channel Capture Compare + DCD ADC2_IRQHandler ; 63:ADC2 + DCD EXMC_IRQHandler ; 64:EXMC + DCD SDIO_IRQHandler ; 65:SDIO + DCD TIMER4_IRQHandler ; 66:TIMER4 + DCD SPI2_IRQHandler ; 67:SPI2 + DCD UART3_IRQHandler ; 68:UART3 + DCD UART4_IRQHandler ; 69:UART4 + DCD TIMER5_IRQHandler ; 70:TIMER5 + DCD TIMER6_IRQHandler ; 71:TIMER6 + DCD DMA1_Channel0_IRQHandler ; 72:DMA1 Channel0 + DCD DMA1_Channel1_IRQHandler ; 73:DMA1 Channel1 + DCD DMA1_Channel2_IRQHandler ; 74:DMA1 Channel2 + DCD DMA1_Channel3_4_IRQHandler ; 75:DMA1 Channel3 and Channel4 + +__Vectors_End + +__Vectors_Size EQU __Vectors_End - __Vectors + + AREA |.text|, CODE, READONLY + +;/* reset Handler */ +Reset_Handler PROC + EXPORT Reset_Handler [WEAK] + IMPORT __main + IMPORT SystemInit + LDR R0, =SystemInit + BLX R0 + LDR R0, =__main + BX R0 + ENDP + +;/* dummy Exception Handlers */ +NMI_Handler PROC + EXPORT NMI_Handler [WEAK] + B . + ENDP + +HardFault_Handler PROC + EXPORT HardFault_Handler [WEAK] + B . + ENDP + +MemManage_Handler PROC + EXPORT MemManage_Handler [WEAK] + B . + ENDP + +BusFault_Handler PROC + EXPORT BusFault_Handler [WEAK] + B . + ENDP + +UsageFault_Handler PROC + EXPORT UsageFault_Handler [WEAK] + B . + ENDP + +SVC_Handler PROC + EXPORT SVC_Handler [WEAK] + B . + ENDP + +DebugMon_Handler PROC + EXPORT DebugMon_Handler [WEAK] + B . + ENDP + +PendSV_Handler PROC + EXPORT PendSV_Handler [WEAK] + B . + ENDP + +SysTick_Handler PROC + EXPORT SysTick_Handler [WEAK] + B . + ENDP + +Default_Handler PROC +; /* external interrupts handler */ + EXPORT WWDGT_IRQHandler [WEAK] + EXPORT LVD_IRQHandler [WEAK] + EXPORT TAMPER_IRQHandler [WEAK] + EXPORT RTC_IRQHandler [WEAK] + EXPORT FMC_IRQHandler [WEAK] + EXPORT RCU_IRQHandler [WEAK] + EXPORT EXTI0_IRQHandler [WEAK] + EXPORT EXTI1_IRQHandler [WEAK] + EXPORT EXTI2_IRQHandler [WEAK] + EXPORT EXTI3_IRQHandler [WEAK] + EXPORT EXTI4_IRQHandler [WEAK] + EXPORT DMA0_Channel0_IRQHandler [WEAK] + EXPORT DMA0_Channel1_IRQHandler [WEAK] + EXPORT DMA0_Channel2_IRQHandler [WEAK] + EXPORT DMA0_Channel3_IRQHandler [WEAK] + EXPORT DMA0_Channel4_IRQHandler [WEAK] + EXPORT DMA0_Channel5_IRQHandler [WEAK] + EXPORT DMA0_Channel6_IRQHandler [WEAK] + EXPORT ADC0_1_IRQHandler [WEAK] + EXPORT USBD_HP_CAN0_TX_IRQHandler [WEAK] + EXPORT USBD_LP_CAN0_RX0_IRQHandler [WEAK] + EXPORT CAN0_RX1_IRQHandler [WEAK] + EXPORT CAN0_EWMC_IRQHandler [WEAK] + EXPORT EXTI5_9_IRQHandler [WEAK] + EXPORT TIMER0_BRK_TIMER8_IRQHandler [WEAK] + EXPORT TIMER0_UP_TIMER9_IRQHandler [WEAK] + EXPORT TIMER0_TRG_CMT_TIMER10_IRQHandler [WEAK] + EXPORT TIMER0_Channel_IRQHandler [WEAK] + EXPORT TIMER1_IRQHandler [WEAK] + EXPORT TIMER2_IRQHandler [WEAK] + EXPORT TIMER3_IRQHandler [WEAK] + EXPORT I2C0_EV_IRQHandler [WEAK] + EXPORT I2C0_ER_IRQHandler [WEAK] + EXPORT I2C1_EV_IRQHandler [WEAK] + EXPORT I2C1_ER_IRQHandler [WEAK] + EXPORT SPI0_IRQHandler [WEAK] + EXPORT SPI1_IRQHandler [WEAK] + EXPORT USART0_IRQHandler [WEAK] + EXPORT USART1_IRQHandler [WEAK] + EXPORT USART2_IRQHandler [WEAK] + EXPORT EXTI10_15_IRQHandler [WEAK] + EXPORT RTC_Alarm_IRQHandler [WEAK] + EXPORT USBD_WKUP_IRQHandler [WEAK] + EXPORT TIMER7_BRK_TIMER11_IRQHandler [WEAK] + EXPORT TIMER7_UP_TIMER12_IRQHandler [WEAK] + EXPORT TIMER7_TRG_CMT_TIMER13_IRQHandler [WEAK] + EXPORT TIMER7_Channel_IRQHandler [WEAK] + EXPORT ADC2_IRQHandler [WEAK] + EXPORT EXMC_IRQHandler [WEAK] + EXPORT SDIO_IRQHandler [WEAK] + EXPORT TIMER4_IRQHandler [WEAK] + EXPORT SPI2_IRQHandler [WEAK] + EXPORT UART3_IRQHandler [WEAK] + EXPORT UART4_IRQHandler [WEAK] + EXPORT TIMER5_IRQHandler [WEAK] + EXPORT TIMER6_IRQHandler [WEAK] + EXPORT DMA1_Channel0_IRQHandler [WEAK] + EXPORT DMA1_Channel1_IRQHandler [WEAK] + EXPORT DMA1_Channel2_IRQHandler [WEAK] + EXPORT DMA1_Channel3_4_IRQHandler [WEAK] + + +;/* external interrupts handler */ +WWDGT_IRQHandler +LVD_IRQHandler +TAMPER_IRQHandler +RTC_IRQHandler +FMC_IRQHandler +RCU_IRQHandler +EXTI0_IRQHandler +EXTI1_IRQHandler +EXTI2_IRQHandler +EXTI3_IRQHandler +EXTI4_IRQHandler +DMA0_Channel0_IRQHandler +DMA0_Channel1_IRQHandler +DMA0_Channel2_IRQHandler +DMA0_Channel3_IRQHandler +DMA0_Channel4_IRQHandler +DMA0_Channel5_IRQHandler +DMA0_Channel6_IRQHandler +ADC0_1_IRQHandler +USBD_HP_CAN0_TX_IRQHandler +USBD_LP_CAN0_RX0_IRQHandler +CAN0_RX1_IRQHandler +CAN0_EWMC_IRQHandler +EXTI5_9_IRQHandler +TIMER0_BRK_TIMER8_IRQHandler +TIMER0_UP_TIMER9_IRQHandler +TIMER0_TRG_CMT_TIMER10_IRQHandler +TIMER0_Channel_IRQHandler +TIMER1_IRQHandler +TIMER2_IRQHandler +TIMER3_IRQHandler +I2C0_EV_IRQHandler +I2C0_ER_IRQHandler +I2C1_EV_IRQHandler +I2C1_ER_IRQHandler +SPI0_IRQHandler +SPI1_IRQHandler +USART0_IRQHandler +USART1_IRQHandler +USART2_IRQHandler +EXTI10_15_IRQHandler +RTC_Alarm_IRQHandler +USBD_WKUP_IRQHandler +TIMER7_BRK_TIMER11_IRQHandler +TIMER7_UP_TIMER12_IRQHandler +TIMER7_TRG_CMT_TIMER13_IRQHandler +TIMER7_Channel_IRQHandler +ADC2_IRQHandler +EXMC_IRQHandler +SDIO_IRQHandler +TIMER4_IRQHandler +SPI2_IRQHandler +UART3_IRQHandler +UART4_IRQHandler +TIMER5_IRQHandler +TIMER6_IRQHandler +DMA1_Channel0_IRQHandler +DMA1_Channel1_IRQHandler +DMA1_Channel2_IRQHandler +DMA1_Channel3_4_IRQHandler + + + + B . + ENDP + + ALIGN + +; user Initial Stack & Heap + + IF :DEF:__MICROLIB + + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + + ELSE + + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap + +__user_initial_stackheap PROC + LDR R0, = Heap_Mem + LDR R1, =(Stack_Mem + Stack_Size) + LDR R2, = (Heap_Mem + Heap_Size) + LDR R3, = Stack_Mem + BX LR + ENDP + + ALIGN + + ENDIF + + END diff --git a/boot_source/platform/CMSIS/GD/GD32F10x/Source/ARM/startup_stm32f10x_cl.s b/boot_source/platform/CMSIS/GD/GD32F10x/Source/ARM/startup_stm32f10x_cl.s new file mode 100644 index 0000000000000000000000000000000000000000..a9815cc18d6565bccf4c24f5d40f0f50088013b5 GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/boot_source/platform/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_cl.s b/boot_source/platform/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_cl.s new file mode 100644 index 0000000..9a281f5 --- /dev/null +++ b/boot_source/platform/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_cl.s @@ -0,0 +1,527 @@ +;/*! +; \file startup_gd32f10x_cl.s +; \brief start up file +; +; \version 2024-01-05, V2.3.0, firmware for GD32F10x +;*/ + +;/* Copyright (c) 2011 - 2012 ARM LIMITED +; Copyright (c) 2024, GigaDevice Semiconductor Inc. +; +; All rights reserved. +; Redistribution and use in source and binary forms, with or without +; modification, are permitted provided that the following conditions are met: +; - Redistributions of source code must retain the above copyright +; notice, this list of conditions and the following disclaimer. +; - Redistributions in binary form must reproduce the above copyright +; notice, this list of conditions and the following disclaimer in the +; documentation and/or other materials provided with the distribution. +; - Neither the name of ARM nor the names of its contributors may be used +; to endorse or promote products derived from this software without +; specific prior written permission. +; * +; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +; ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE +; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +; POSSIBILITY OF SUCH DAMAGE. +;*/ +;/* This file refers the CMSIS standard, some adjustments are made according to GigaDevice chips */ + + MODULE ?cstartup + + ;; Forward declaration of sections. + SECTION CSTACK:DATA:NOROOT(3) + + SECTION .intvec:CODE:NOROOT(2) + + EXTERN __iar_program_start + EXTERN SystemInit + PUBLIC __vector_table + + DATA +__vector_table + DCD sfe(CSTACK) ; top of stack + DCD Reset_Handler ; Reset Handler + + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD MemManage_Handler ; MPU Fault Handler + DCD BusFault_Handler ; Bus Fault Handler + DCD UsageFault_Handler ; Usage Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD DebugMon_Handler ; Debug Monitor Handler + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD WWDGT_IRQHandler ; Vector Number 16,Window Watchdog Timer + DCD LVD_IRQHandler ; Vector Number 17,LVD through EXTI Line detect + DCD TAMPER_IRQHandler ; Vector Number 18,Tamper Interrupt + DCD RTC_IRQHandler ; Vector Number 19,RTC through EXTI Line + DCD FMC_IRQHandler ; Vector Number 20,FMC + DCD RCU_IRQHandler ; Vector Number 21,RCU + DCD EXTI0_IRQHandler ; Vector Number 22,EXTI Line 0 + DCD EXTI1_IRQHandler ; Vector Number 23,EXTI Line 1 + DCD EXTI2_IRQHandler ; Vector Number 24,EXTI Line 2 + DCD EXTI3_IRQHandler ; Vector Number 25,EXTI Line 3 + DCD EXTI4_IRQHandler ; Vector Number 26,EXTI Line 4 + DCD DMA0_Channel0_IRQHandler ; Vector Number 27,DMA0 Channel 0 + DCD DMA0_Channel1_IRQHandler ; Vector Number 28,DMA0 Channel 1 + DCD DMA0_Channel2_IRQHandler ; Vector Number 29,DMA0 Channel 2 + DCD DMA0_Channel3_IRQHandler ; Vector Number 30,DMA0 Channel 3 + DCD DMA0_Channel4_IRQHandler ; Vector Number 31,DMA0 Channel 4 + DCD DMA0_Channel5_IRQHandler ; Vector Number 32,DMA0 Channel 5 + DCD DMA0_Channel6_IRQHandler ; Vector Number 33,DMA0 Channel 6 + DCD ADC0_1_IRQHandler ; Vector Number 34,ADC0 and ADC1 + DCD CAN0_TX_IRQHandler ; Vector Number 35,CAN0 TX + DCD CAN0_RX0_IRQHandler ; Vector Number 36,CAN0 RX0 + DCD CAN0_RX1_IRQHandler ; Vector Number 37,CAN0 RX1 + DCD CAN0_EWMC_IRQHandler ; Vector Number 38,CAN0 EWMC + DCD EXTI5_9_IRQHandler ; Vector Number 39,EXTI Line 5 to EXTI Line 9 + DCD TIMER0_BRK_IRQHandler ; Vector Number 40,TIMER0 Break + DCD TIMER0_UP_IRQHandler ; Vector Number 41,TIMER0 Update + DCD TIMER0_TRG_CMT_IRQHandler ; Vector Number 42,TIMER0 Trigger and Commutation + DCD TIMER0_Channel_IRQHandler ; Vector Number 43,TIMER0 Channel Capture Compare + DCD TIMER1_IRQHandler ; Vector Number 44,TIMER1 + DCD TIMER2_IRQHandler ; Vector Number 45,TIMER2 + DCD TIMER3_IRQHandler ; Vector Number 46,TIMER3 + DCD I2C0_EV_IRQHandler ; Vector Number 47,I2C0 Event + DCD I2C0_ER_IRQHandler ; Vector Number 48,I2C0 Error + DCD I2C1_EV_IRQHandler ; Vector Number 49,I2C1 Event + DCD I2C1_ER_IRQHandler ; Vector Number 50,I2C1 Error + DCD SPI0_IRQHandler ; Vector Number 51,SPI0 + DCD SPI1_IRQHandler ; Vector Number 52,SPI1 + DCD USART0_IRQHandler ; Vector Number 53,USART0 + DCD USART1_IRQHandler ; Vector Number 54,USART1 + DCD USART2_IRQHandler ; Vector Number 55,USART2 + DCD EXTI10_15_IRQHandler ; Vector Number 56,EXTI Line 10 to EXTI Line 15 + DCD RTC_Alarm_IRQHandler ; Vector Number 57,RTC Alarm through EXTI Line + DCD USBFS_WKUP_IRQHandler ; Vector Number 58,USBFS WakeUp from suspend through EXTI Line + DCD TIMER7_BRK_IRQHandler ; Vector Number 59,TIMER7 Break Interrupt + DCD TIMER7_UP_IRQHandler ; Vector Number 60,TIMER7 Update Interrupt + DCD TIMER7_TRG_CMT_IRQHandler ; Vector Number 61,TIMER7 Trigger and Commutation Interrupt + DCD TIMER7_Channel_IRQHandler ; Vector Number 62,TIMER7 Channel Capture Compare + DCD 0 ; Reserved + DCD EXMC_IRQHandler ; Vector Number 64,EXMC + DCD 0 ; Reserved + DCD TIMER4_IRQHandler ; Vector Number 66,TIMER4 + DCD SPI2_IRQHandler ; Vector Number 67,SPI2 + DCD UART3_IRQHandler ; Vector Number 68,UART3 + DCD UART4_IRQHandler ; Vector Number 69,UART4 + DCD TIMER5_IRQHandler ; Vector Number 70,TIMER5 + DCD TIMER6_IRQHandler ; Vector Number 71,TIMER6 + DCD DMA1_Channel0_IRQHandler ; Vector Number 72,DMA1 Channel0 + DCD DMA1_Channel1_IRQHandler ; Vector Number 73,DMA1 Channel1 + DCD DMA1_Channel2_IRQHandler ; Vector Number 74,DMA1 Channel2 + DCD DMA1_Channel3_IRQHandler ; Vector Number 75,DMA1 Channel3 + DCD DMA1_Channel4_IRQHandler ; Vector Number 76,DMA1 Channel4 + DCD ENET_IRQHandler ; Vector Number 77,Ethernet + DCD ENET_WKUP_IRQHandler ; Vector Number 78,Ethernet Wakeup through EXTI line + DCD CAN1_TX_IRQHandler ; Vector Number 79,CAN1 TX + DCD CAN1_RX0_IRQHandler ; Vector Number 80,CAN1 RX0 + DCD CAN1_RX1_IRQHandler ; Vector Number 81,CAN1 RX1 + DCD CAN1_EWMC_IRQHandler ; Vector Number 82,CAN1 EWMC + DCD USBFS_IRQHandler ; Vector Number 83,USBFS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; Default interrupt handlers. +;; + THUMB + + PUBWEAK Reset_Handler + SECTION .text:CODE:NOROOT:REORDER(2) +Reset_Handler + LDR R0, = SystemInit + BLX R0 + LDR R0, =__iar_program_start + BX R0 + + PUBWEAK NMI_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +NMI_Handler + B NMI_Handler + + PUBWEAK HardFault_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +HardFault_Handler + B HardFault_Handler + + PUBWEAK MemManage_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +MemManage_Handler + B MemManage_Handler + + PUBWEAK BusFault_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +BusFault_Handler + B BusFault_Handler + + PUBWEAK UsageFault_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +UsageFault_Handler + B UsageFault_Handler + + PUBWEAK SVC_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +SVC_Handler + B SVC_Handler + + PUBWEAK DebugMon_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +DebugMon_Handler + B DebugMon_Handler + + PUBWEAK PendSV_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +PendSV_Handler + B PendSV_Handler + + PUBWEAK SysTick_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +SysTick_Handler + B SysTick_Handler + + PUBWEAK WWDGT_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +WWDGT_IRQHandler + B WWDGT_IRQHandler + + PUBWEAK LVD_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +LVD_IRQHandler + B LVD_IRQHandler + + PUBWEAK TAMPER_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TAMPER_IRQHandler + B TAMPER_IRQHandler + + PUBWEAK RTC_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +RTC_IRQHandler + B RTC_IRQHandler + + PUBWEAK FMC_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +FMC_IRQHandler + B FMC_IRQHandler + + PUBWEAK RCU_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +RCU_IRQHandler + B RCU_IRQHandler + + PUBWEAK EXTI0_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI0_IRQHandler + B EXTI0_IRQHandler + + PUBWEAK EXTI1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI1_IRQHandler + B EXTI1_IRQHandler + + PUBWEAK EXTI2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI2_IRQHandler + B EXTI2_IRQHandler + + PUBWEAK EXTI3_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI3_IRQHandler + B EXTI3_IRQHandler + + PUBWEAK EXTI4_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI4_IRQHandler + B EXTI4_IRQHandler + + PUBWEAK DMA0_Channel0_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA0_Channel0_IRQHandler + B DMA0_Channel0_IRQHandler + + PUBWEAK DMA0_Channel1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA0_Channel1_IRQHandler + B DMA0_Channel1_IRQHandler + + PUBWEAK DMA0_Channel2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA0_Channel2_IRQHandler + B DMA0_Channel2_IRQHandler + + PUBWEAK DMA0_Channel3_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA0_Channel3_IRQHandler + B DMA0_Channel3_IRQHandler + + PUBWEAK DMA0_Channel4_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA0_Channel4_IRQHandler + B DMA0_Channel4_IRQHandler + + PUBWEAK DMA0_Channel5_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA0_Channel5_IRQHandler + B DMA0_Channel5_IRQHandler + + PUBWEAK DMA0_Channel6_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA0_Channel6_IRQHandler + B DMA0_Channel6_IRQHandler + + PUBWEAK ADC0_1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +ADC0_1_IRQHandler + B ADC0_1_IRQHandler + + PUBWEAK CAN0_TX_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +CAN0_TX_IRQHandler + B CAN0_TX_IRQHandler + + PUBWEAK CAN0_RX0_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +CAN0_RX0_IRQHandler + B CAN0_RX0_IRQHandler + + PUBWEAK CAN0_RX1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +CAN0_RX1_IRQHandler + B CAN0_RX1_IRQHandler + + PUBWEAK CAN0_EWMC_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +CAN0_EWMC_IRQHandler + B CAN0_EWMC_IRQHandler + + PUBWEAK EXTI5_9_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI5_9_IRQHandler + B EXTI5_9_IRQHandler + + PUBWEAK TIMER0_BRK_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER0_BRK_IRQHandler + B TIMER0_BRK_IRQHandler + + PUBWEAK TIMER0_UP_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER0_UP_IRQHandler + B TIMER0_UP_IRQHandler + + PUBWEAK TIMER0_TRG_CMT_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER0_TRG_CMT_IRQHandler + B TIMER0_TRG_CMT_IRQHandler + + PUBWEAK TIMER0_Channel_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER0_Channel_IRQHandler + B TIMER0_Channel_IRQHandler + + PUBWEAK TIMER1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER1_IRQHandler + B TIMER1_IRQHandler + + PUBWEAK TIMER2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER2_IRQHandler + B TIMER2_IRQHandler + + PUBWEAK TIMER3_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER3_IRQHandler + B TIMER3_IRQHandler + + PUBWEAK I2C0_EV_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +I2C0_EV_IRQHandler + B I2C0_EV_IRQHandler + + PUBWEAK I2C0_ER_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +I2C0_ER_IRQHandler + B I2C0_ER_IRQHandler + + PUBWEAK I2C1_EV_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +I2C1_EV_IRQHandler + B I2C1_EV_IRQHandler + + PUBWEAK I2C1_ER_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +I2C1_ER_IRQHandler + B I2C1_ER_IRQHandler + + PUBWEAK SPI0_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +SPI0_IRQHandler + B SPI0_IRQHandler + + PUBWEAK SPI1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +SPI1_IRQHandler + B SPI1_IRQHandler + + PUBWEAK USART0_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +USART0_IRQHandler + B USART0_IRQHandler + + PUBWEAK USART1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +USART1_IRQHandler + B USART1_IRQHandler + + PUBWEAK USART2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +USART2_IRQHandler + B USART2_IRQHandler + + PUBWEAK EXTI10_15_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI10_15_IRQHandler + B EXTI10_15_IRQHandler + + PUBWEAK RTC_Alarm_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +RTC_Alarm_IRQHandler + B RTC_Alarm_IRQHandler + + PUBWEAK USBFS_WKUP_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +USBFS_WKUP_IRQHandler + B USBFS_WKUP_IRQHandler + + PUBWEAK TIMER7_BRK_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER7_BRK_IRQHandler + B TIMER7_BRK_IRQHandler + + PUBWEAK TIMER7_UP_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER7_UP_IRQHandler + B TIMER7_UP_IRQHandler + + PUBWEAK TIMER7_TRG_CMT_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER7_TRG_CMT_IRQHandler + B TIMER7_TRG_CMT_IRQHandler + + PUBWEAK TIMER7_Channel_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER7_Channel_IRQHandler + B TIMER7_Channel_IRQHandler + + PUBWEAK EXMC_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXMC_IRQHandler + B EXMC_IRQHandler + + PUBWEAK TIMER4_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER4_IRQHandler + B TIMER4_IRQHandler + + PUBWEAK SPI2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +SPI2_IRQHandler + B SPI2_IRQHandler + + PUBWEAK UART3_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +UART3_IRQHandler + B UART3_IRQHandler + + PUBWEAK UART4_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +UART4_IRQHandler + B UART4_IRQHandler + + PUBWEAK TIMER5_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER5_IRQHandler + B TIMER5_IRQHandler + + PUBWEAK TIMER6_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER6_IRQHandler + B TIMER6_IRQHandler + + PUBWEAK DMA1_Channel0_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA1_Channel0_IRQHandler + B DMA1_Channel0_IRQHandler + + PUBWEAK DMA1_Channel1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA1_Channel1_IRQHandler + B DMA1_Channel1_IRQHandler + + PUBWEAK DMA1_Channel2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA1_Channel2_IRQHandler + B DMA1_Channel2_IRQHandler + + PUBWEAK DMA1_Channel3_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA1_Channel3_IRQHandler + B DMA1_Channel3_IRQHandler + + PUBWEAK DMA1_Channel4_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA1_Channel4_IRQHandler + B DMA1_Channel4_IRQHandler + + PUBWEAK ENET_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +ENET_IRQHandler + B ENET_IRQHandler + + PUBWEAK ENET_WKUP_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +ENET_WKUP_IRQHandler + B ENET_WKUP_IRQHandler + + PUBWEAK CAN1_TX_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +CAN1_TX_IRQHandler + B CAN1_TX_IRQHandler + + PUBWEAK CAN1_RX0_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +CAN1_RX0_IRQHandler + B CAN1_RX0_IRQHandler + + PUBWEAK CAN1_RX1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +CAN1_RX1_IRQHandler + B CAN1_RX1_IRQHandler + + PUBWEAK CAN1_EWMC_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +CAN1_EWMC_IRQHandler + B CAN1_EWMC_IRQHandler + + PUBWEAK USBFS_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +USBFS_IRQHandler + B USBFS_IRQHandler + + + END diff --git a/boot_source/platform/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_hd.s b/boot_source/platform/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_hd.s new file mode 100644 index 0000000..2b5ce4e --- /dev/null +++ b/boot_source/platform/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_hd.s @@ -0,0 +1,489 @@ +;/*! +; \file startup_gd32f10x_hd.s +; \brief start up file +; +; \version 2024-01-05, V2.3.0, firmware for GD32F10x +;*/ + +;/* Copyright (c) 2011 - 2012 ARM LIMITED +; Copyright (c) 2024, GigaDevice Semiconductor Inc. +; +; All rights reserved. +; Redistribution and use in source and binary forms, with or without +; modification, are permitted provided that the following conditions are met: +; - Redistributions of source code must retain the above copyright +; notice, this list of conditions and the following disclaimer. +; - Redistributions in binary form must reproduce the above copyright +; notice, this list of conditions and the following disclaimer in the +; documentation and/or other materials provided with the distribution. +; - Neither the name of ARM nor the names of its contributors may be used +; to endorse or promote products derived from this software without +; specific prior written permission. +; * +; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +; ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE +; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +; POSSIBILITY OF SUCH DAMAGE. +;*/ +;/* This file refers the CMSIS standard, some adjustments are made according to GigaDevice chips */ + + MODULE ?cstartup + + ;; Forward declaration of sections. + SECTION CSTACK:DATA:NOROOT(3) + + SECTION .intvec:CODE:NOROOT(2) + + EXTERN __iar_program_start + EXTERN SystemInit + PUBLIC __vector_table + + DATA +__vector_table + DCD sfe(CSTACK) ; top of stack + DCD Reset_Handler ; Reset Handler + + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD MemManage_Handler ; MPU Fault Handler + DCD BusFault_Handler ; Bus Fault Handler + DCD UsageFault_Handler ; Usage Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD DebugMon_Handler ; Debug Monitor Handler + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD WWDGT_IRQHandler ; Vector Number 16,Window Watchdog Timer + DCD LVD_IRQHandler ; Vector Number 17,LVD through EXTI Line detect + DCD TAMPER_IRQHandler ; Vector Number 18,Tamper Interrupt + DCD RTC_IRQHandler ; Vector Number 19,RTC through EXTI Line + DCD FMC_IRQHandler ; Vector Number 20,FMC + DCD RCU_IRQHandler ; Vector Number 21,RCU + DCD EXTI0_IRQHandler ; Vector Number 22,EXTI Line 0 + DCD EXTI1_IRQHandler ; Vector Number 23,EXTI Line 1 + DCD EXTI2_IRQHandler ; Vector Number 24,EXTI Line 2 + DCD EXTI3_IRQHandler ; Vector Number 25,EXTI Line 3 + DCD EXTI4_IRQHandler ; Vector Number 26,EXTI Line 4 + DCD DMA0_Channel0_IRQHandler ; Vector Number 27,DMA0 Channel 0 + DCD DMA0_Channel1_IRQHandler ; Vector Number 28,DMA0 Channel 1 + DCD DMA0_Channel2_IRQHandler ; Vector Number 29,DMA0 Channel 2 + DCD DMA0_Channel3_IRQHandler ; Vector Number 30,DMA0 Channel 3 + DCD DMA0_Channel4_IRQHandler ; Vector Number 31,DMA0 Channel 4 + DCD DMA0_Channel5_IRQHandler ; Vector Number 32,DMA0 Channel 5 + DCD DMA0_Channel6_IRQHandler ; Vector Number 33,DMA0 Channel 6 + DCD ADC0_1_IRQHandler ; Vector Number 34,ADC0 and ADC1 + DCD USBD_HP_CAN0_TX_IRQHandler ; Vector Number 35,USBD and CAN0 TX + DCD USBD_LP_CAN0_RX0_IRQHandler ; Vector Number 36,USBD and CAN0 RX0 + DCD CAN0_RX1_IRQHandler ; Vector Number 37,CAN0 RX1 + DCD CAN0_EWMC_IRQHandler ; Vector Number 38,CAN0 EWMC + DCD EXTI5_9_IRQHandler ; Vector Number 39,EXTI Line 5 to EXTI Line 9 + DCD TIMER0_BRK_IRQHandler ; Vector Number 40,TIMER0 Break + DCD TIMER0_UP_IRQHandler ; Vector Number 41,TIMER0 Update + DCD TIMER0_TRG_CMT_IRQHandler ; Vector Number 42,TIMER0 Trigger and Commutation + DCD TIMER0_Channel_IRQHandler ; Vector Number 43,TIMER0 Channel Capture Compare + DCD TIMER1_IRQHandler ; Vector Number 44,TIMER1 + DCD TIMER2_IRQHandler ; Vector Number 45,TIMER2 + DCD TIMER3_IRQHandler ; Vector Number 46,TIMER3 + DCD I2C0_EV_IRQHandler ; Vector Number 47,I2C0 Event + DCD I2C0_ER_IRQHandler ; Vector Number 48,I2C0 Error + DCD I2C1_EV_IRQHandler ; Vector Number 49,I2C1 Event + DCD I2C1_ER_IRQHandler ; Vector Number 50,I2C1 Error + DCD SPI0_IRQHandler ; Vector Number 51,SPI0 + DCD SPI1_IRQHandler ; Vector Number 52,SPI1 + DCD USART0_IRQHandler ; Vector Number 53,USART0 + DCD USART1_IRQHandler ; Vector Number 54,USART1 + DCD USART2_IRQHandler ; Vector Number 55,USART2 + DCD EXTI10_15_IRQHandler ; Vector Number 56,EXTI Line 10 to EXTI Line 15 + DCD RTC_Alarm_IRQHandler ; Vector Number 57,RTC Alarm through EXTI Line + DCD USBD_WKUP_IRQHandler ; Vector Number 58,USBD WakeUp from suspend through EXTI Line + DCD TIMER7_BRK_IRQHandler ; Vector Number 59,TIMER7 Break Interrupt + DCD TIMER7_UP_IRQHandler ; Vector Number 60,TIMER7 Update Interrupt + DCD TIMER7_TRG_CMT_IRQHandler ; Vector Number 61,TIMER7 Trigger and Commutation Interrupt + DCD TIMER7_Channel_IRQHandler ; Vector Number 62,TIMER7 Channel Capture Compare + DCD ADC2_IRQHandler ; Vector Number 63,ADC2 + DCD EXMC_IRQHandler ; Vector Number 64,EXMC + DCD SDIO_IRQHandler ; Vector Number 65,SDIO + DCD TIMER4_IRQHandler ; Vector Number 66,TIMER4 + DCD SPI2_IRQHandler ; Vector Number 67,SPI2 + DCD UART3_IRQHandler ; Vector Number 68,UART3 + DCD UART4_IRQHandler ; Vector Number 69,UART4 + DCD TIMER5_IRQHandler ; Vector Number 70,TIMER5 + DCD TIMER6_IRQHandler ; Vector Number 71,TIMER6 + DCD DMA1_Channel0_IRQHandler ; Vector Number 72,DMA1 Channel0 + DCD DMA1_Channel1_IRQHandler ; Vector Number 73,DMA1 Channel1 + DCD DMA1_Channel2_IRQHandler ; Vector Number 74,DMA1 Channel2 + DCD DMA1_Channel3_4_IRQHandler ; Vector Number 75,DMA1 Channel4 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; Default interrupt handlers. +;; + THUMB + + PUBWEAK Reset_Handler + SECTION .text:CODE:NOROOT:REORDER(2) +Reset_Handler + LDR R0, = SystemInit + BLX R0 + LDR R0, =__iar_program_start + BX R0 + + PUBWEAK NMI_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +NMI_Handler + B NMI_Handler + + PUBWEAK HardFault_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +HardFault_Handler + B HardFault_Handler + + PUBWEAK MemManage_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +MemManage_Handler + B MemManage_Handler + + PUBWEAK BusFault_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +BusFault_Handler + B BusFault_Handler + + PUBWEAK UsageFault_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +UsageFault_Handler + B UsageFault_Handler + + PUBWEAK SVC_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +SVC_Handler + B SVC_Handler + + PUBWEAK DebugMon_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +DebugMon_Handler + B DebugMon_Handler + + PUBWEAK PendSV_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +PendSV_Handler + B PendSV_Handler + + PUBWEAK SysTick_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +SysTick_Handler + B SysTick_Handler + + PUBWEAK WWDGT_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +WWDGT_IRQHandler + B WWDGT_IRQHandler + + PUBWEAK LVD_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +LVD_IRQHandler + B LVD_IRQHandler + + PUBWEAK TAMPER_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TAMPER_IRQHandler + B TAMPER_IRQHandler + + PUBWEAK RTC_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +RTC_IRQHandler + B RTC_IRQHandler + + PUBWEAK FMC_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +FMC_IRQHandler + B FMC_IRQHandler + + PUBWEAK RCU_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +RCU_IRQHandler + B RCU_IRQHandler + + PUBWEAK EXTI0_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI0_IRQHandler + B EXTI0_IRQHandler + + PUBWEAK EXTI1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI1_IRQHandler + B EXTI1_IRQHandler + + PUBWEAK EXTI2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI2_IRQHandler + B EXTI2_IRQHandler + + PUBWEAK EXTI3_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI3_IRQHandler + B EXTI3_IRQHandler + + PUBWEAK EXTI4_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI4_IRQHandler + B EXTI4_IRQHandler + + PUBWEAK DMA0_Channel0_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA0_Channel0_IRQHandler + B DMA0_Channel0_IRQHandler + + + PUBWEAK DMA0_Channel1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA0_Channel1_IRQHandler + B DMA0_Channel1_IRQHandler + + PUBWEAK DMA0_Channel2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA0_Channel2_IRQHandler + B DMA0_Channel2_IRQHandler + + PUBWEAK DMA0_Channel3_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA0_Channel3_IRQHandler + B DMA0_Channel3_IRQHandler + + PUBWEAK DMA0_Channel4_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA0_Channel4_IRQHandler + B DMA0_Channel4_IRQHandler + + PUBWEAK DMA0_Channel5_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA0_Channel5_IRQHandler + B DMA0_Channel5_IRQHandler + + PUBWEAK DMA0_Channel6_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA0_Channel6_IRQHandler + B DMA0_Channel6_IRQHandler + + PUBWEAK ADC0_1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +ADC0_1_IRQHandler + B ADC0_1_IRQHandler + + PUBWEAK USBD_HP_CAN0_TX_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +USBD_HP_CAN0_TX_IRQHandler + B USBD_HP_CAN0_TX_IRQHandler + + PUBWEAK USBD_LP_CAN0_RX0_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +USBD_LP_CAN0_RX0_IRQHandler + B USBD_LP_CAN0_RX0_IRQHandler + + PUBWEAK CAN0_RX1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +CAN0_RX1_IRQHandler + B CAN0_RX1_IRQHandler + + PUBWEAK CAN0_EWMC_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +CAN0_EWMC_IRQHandler + B CAN0_EWMC_IRQHandler + + PUBWEAK EXTI5_9_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI5_9_IRQHandler + B EXTI5_9_IRQHandler + + PUBWEAK TIMER0_BRK_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER0_BRK_IRQHandler + B TIMER0_BRK_IRQHandler + + PUBWEAK TIMER0_UP_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER0_UP_IRQHandler + B TIMER0_UP_IRQHandler + + PUBWEAK TIMER0_TRG_CMT_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER0_TRG_CMT_IRQHandler + B TIMER0_TRG_CMT_IRQHandler + + PUBWEAK TIMER0_Channel_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER0_Channel_IRQHandler + B TIMER0_Channel_IRQHandler + + PUBWEAK TIMER1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER1_IRQHandler + B TIMER1_IRQHandler + + PUBWEAK TIMER2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER2_IRQHandler + B TIMER2_IRQHandler + + PUBWEAK TIMER3_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER3_IRQHandler + B TIMER3_IRQHandler + + PUBWEAK I2C0_EV_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +I2C0_EV_IRQHandler + B I2C0_EV_IRQHandler + + PUBWEAK I2C0_ER_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +I2C0_ER_IRQHandler + B I2C0_ER_IRQHandler + + PUBWEAK I2C1_EV_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +I2C1_EV_IRQHandler + B I2C1_EV_IRQHandler + + PUBWEAK I2C1_ER_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +I2C1_ER_IRQHandler + B I2C1_ER_IRQHandler + + PUBWEAK SPI0_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +SPI0_IRQHandler + B SPI0_IRQHandler + + PUBWEAK SPI1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +SPI1_IRQHandler + B SPI1_IRQHandler + + PUBWEAK USART0_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +USART0_IRQHandler + B USART0_IRQHandler + + PUBWEAK USART1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +USART1_IRQHandler + B USART1_IRQHandler + + PUBWEAK USART2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +USART2_IRQHandler + B USART2_IRQHandler + + PUBWEAK EXTI10_15_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI10_15_IRQHandler + B EXTI10_15_IRQHandler + + PUBWEAK RTC_Alarm_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +RTC_Alarm_IRQHandler + B RTC_Alarm_IRQHandler + + PUBWEAK USBD_WKUP_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +USBD_WKUP_IRQHandler + B USBD_WKUP_IRQHandler + + PUBWEAK TIMER7_BRK_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER7_BRK_IRQHandler + B TIMER7_BRK_IRQHandler + + PUBWEAK TIMER7_UP_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER7_UP_IRQHandler + B TIMER7_UP_IRQHandler + + PUBWEAK TIMER7_TRG_CMT_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER7_TRG_CMT_IRQHandler + B TIMER7_TRG_CMT_IRQHandler + + PUBWEAK TIMER7_Channel_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER7_Channel_IRQHandler + B TIMER7_Channel_IRQHandler + + PUBWEAK ADC2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +ADC2_IRQHandler + B ADC2_IRQHandler + + PUBWEAK EXMC_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXMC_IRQHandler + B EXMC_IRQHandler + + PUBWEAK SDIO_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +SDIO_IRQHandler + B SDIO_IRQHandler + + PUBWEAK TIMER4_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER4_IRQHandler + B TIMER4_IRQHandler + + PUBWEAK SPI2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +SPI2_IRQHandler + B SPI2_IRQHandler + + PUBWEAK UART3_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +UART3_IRQHandler + B UART3_IRQHandler + + PUBWEAK UART4_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +UART4_IRQHandler + B UART4_IRQHandler + + PUBWEAK TIMER5_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER5_IRQHandler + B TIMER5_IRQHandler + + PUBWEAK TIMER6_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER6_IRQHandler + B TIMER6_IRQHandler + + PUBWEAK DMA1_Channel0_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA1_Channel0_IRQHandler + B DMA1_Channel0_IRQHandler + + PUBWEAK DMA1_Channel1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA1_Channel1_IRQHandler + B DMA1_Channel1_IRQHandler + + PUBWEAK DMA1_Channel2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA1_Channel2_IRQHandler + B DMA1_Channel2_IRQHandler + + PUBWEAK DMA1_Channel3_4_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA1_Channel3_4_IRQHandler + B DMA1_Channel3_4_IRQHandler + + END diff --git a/boot_source/platform/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_md.s b/boot_source/platform/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_md.s new file mode 100644 index 0000000..5fb94f5 --- /dev/null +++ b/boot_source/platform/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_md.s @@ -0,0 +1,398 @@ +;/*! +; \file startup_gd32f10x_md.s +; \brief start up file +; +; \version 2024-01-05, V2.3.0, firmware for GD32F10x +;*/ + +;/* Copyright (c) 2011 - 2012 ARM LIMITED +; Copyright (c) 2024, GigaDevice Semiconductor Inc. +; +; All rights reserved. +; Redistribution and use in source and binary forms, with or without +; modification, are permitted provided that the following conditions are met: +; - Redistributions of source code must retain the above copyright +; notice, this list of conditions and the following disclaimer. +; - Redistributions in binary form must reproduce the above copyright +; notice, this list of conditions and the following disclaimer in the +; documentation and/or other materials provided with the distribution. +; - Neither the name of ARM nor the names of its contributors may be used +; to endorse or promote products derived from this software without +; specific prior written permission. +; * +; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +; ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE +; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +; POSSIBILITY OF SUCH DAMAGE. +;*/ +;/* This file refers the CMSIS standard, some adjustments are made according to GigaDevice chips */ + + MODULE ?cstartup + + ;; Forward declaration of sections. + SECTION CSTACK:DATA:NOROOT(3) + + SECTION .intvec:CODE:NOROOT(2) + + EXTERN __iar_program_start + EXTERN SystemInit + PUBLIC __vector_table + + DATA +__vector_table + DCD sfe(CSTACK) ; top of stack + DCD Reset_Handler ; Reset Handler + + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD MemManage_Handler ; MPU Fault Handler + DCD BusFault_Handler ; Bus Fault Handler + DCD UsageFault_Handler ; Usage Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD DebugMon_Handler ; Debug Monitor Handler + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD WWDGT_IRQHandler ; Vector Number 16,Window Watchdog Timer + DCD LVD_IRQHandler ; Vector Number 17,LVD through EXTI Line detect + DCD TAMPER_IRQHandler ; Vector Number 18,Tamper Interrupt + DCD RTC_IRQHandler ; Vector Number 19,RTC through EXTI Line + DCD FMC_IRQHandler ; Vector Number 20,FMC + DCD RCU_IRQHandler ; Vector Number 21,RCU + DCD EXTI0_IRQHandler ; Vector Number 22,EXTI Line 0 + DCD EXTI1_IRQHandler ; Vector Number 23,EXTI Line 1 + DCD EXTI2_IRQHandler ; Vector Number 24,EXTI Line 2 + DCD EXTI3_IRQHandler ; Vector Number 25,EXTI Line 3 + DCD EXTI4_IRQHandler ; Vector Number 26,EXTI Line 4 + DCD DMA0_Channel0_IRQHandler ; Vector Number 27,DMA0 Channel 0 + DCD DMA0_Channel1_IRQHandler ; Vector Number 28,DMA0 Channel 1 + DCD DMA0_Channel2_IRQHandler ; Vector Number 29,DMA0 Channel 2 + DCD DMA0_Channel3_IRQHandler ; Vector Number 30,DMA0 Channel 3 + DCD DMA0_Channel4_IRQHandler ; Vector Number 31,DMA0 Channel 4 + DCD DMA0_Channel5_IRQHandler ; Vector Number 32,DMA0 Channel 5 + DCD DMA0_Channel6_IRQHandler ; Vector Number 33,DMA0 Channel 6 + DCD ADC0_1_IRQHandler ; Vector Number 34,ADC0 and ADC1 + DCD USBD_HP_CAN0_TX_IRQHandler ; Vector Number 35,USBD and CAN0 TX + DCD USBD_LP_CAN0_RX0_IRQHandler ; Vector Number 36,USBD and CAN0 RX0 + DCD CAN0_RX1_IRQHandler ; Vector Number 37,CAN0 RX1 + DCD CAN0_EWMC_IRQHandler ; Vector Number 38,CAN0 EWMC + DCD EXTI5_9_IRQHandler ; Vector Number 39,EXTI Line 5 to EXTI Line 9 + DCD TIMER0_BRK_IRQHandler ; Vector Number 40,TIMER0 Break + DCD TIMER0_UP_IRQHandler ; Vector Number 41,TIMER0 Update + DCD TIMER0_TRG_CMT_IRQHandler ; Vector Number 42,TIMER0 Trigger and Commutation + DCD TIMER0_Channel_IRQHandler ; Vector Number 43,TIMER0 Channel Capture Compare + DCD TIMER1_IRQHandler ; Vector Number 44,TIMER1 + DCD TIMER2_IRQHandler ; Vector Number 45,TIMER2 + DCD TIMER3_IRQHandler ; Vector Number 46,TIMER3 + DCD I2C0_EV_IRQHandler ; Vector Number 47,I2C0 Event + DCD I2C0_ER_IRQHandler ; Vector Number 48,I2C0 Error + DCD I2C1_EV_IRQHandler ; Vector Number 49,I2C1 Event + DCD I2C1_ER_IRQHandler ; Vector Number 50,I2C1 Error + DCD SPI0_IRQHandler ; Vector Number 51,SPI0 + DCD SPI1_IRQHandler ; Vector Number 52,SPI1 + DCD USART0_IRQHandler ; Vector Number 53,USART0 + DCD USART1_IRQHandler ; Vector Number 54,USART1 + DCD USART2_IRQHandler ; Vector Number 55,USART2 + DCD EXTI10_15_IRQHandler ; Vector Number 56,EXTI Line 10 to EXTI Line 15 + DCD RTC_Alarm_IRQHandler ; Vector Number 57,RTC Alarm through EXTI Line + DCD USBD_WKUP_IRQHandler ; Vector Number 58,USBD WakeUp from suspend through EXTI Line + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD EXMC_IRQHandler ; Vector Number 64,EXMC +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; Default interrupt handlers. +;; + THUMB + + PUBWEAK Reset_Handler + SECTION .text:CODE:NOROOT:REORDER(2) +Reset_Handler + LDR R0, = SystemInit + BLX R0 + LDR R0, =__iar_program_start + BX R0 + + PUBWEAK NMI_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +NMI_Handler + B NMI_Handler + + PUBWEAK HardFault_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +HardFault_Handler + B HardFault_Handler + + PUBWEAK MemManage_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +MemManage_Handler + B MemManage_Handler + + PUBWEAK BusFault_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +BusFault_Handler + B BusFault_Handler + + PUBWEAK UsageFault_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +UsageFault_Handler + B UsageFault_Handler + + PUBWEAK SVC_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +SVC_Handler + B SVC_Handler + + PUBWEAK DebugMon_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +DebugMon_Handler + B DebugMon_Handler + + PUBWEAK PendSV_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +PendSV_Handler + B PendSV_Handler + + PUBWEAK SysTick_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +SysTick_Handler + B SysTick_Handler + + PUBWEAK WWDGT_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +WWDGT_IRQHandler + B WWDGT_IRQHandler + + PUBWEAK LVD_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +LVD_IRQHandler + B LVD_IRQHandler + + PUBWEAK TAMPER_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TAMPER_IRQHandler + B TAMPER_IRQHandler + + PUBWEAK RTC_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +RTC_IRQHandler + B RTC_IRQHandler + + PUBWEAK FMC_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +FMC_IRQHandler + B FMC_IRQHandler + + PUBWEAK RCU_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +RCU_IRQHandler + B RCU_IRQHandler + + PUBWEAK EXTI0_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI0_IRQHandler + B EXTI0_IRQHandler + + PUBWEAK EXTI1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI1_IRQHandler + B EXTI1_IRQHandler + + PUBWEAK EXTI2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI2_IRQHandler + B EXTI2_IRQHandler + + PUBWEAK EXTI3_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI3_IRQHandler + B EXTI3_IRQHandler + + PUBWEAK EXTI4_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI4_IRQHandler + B EXTI4_IRQHandler + + PUBWEAK DMA0_Channel0_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA0_Channel0_IRQHandler + B DMA0_Channel0_IRQHandler + + + PUBWEAK DMA0_Channel1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA0_Channel1_IRQHandler + B DMA0_Channel1_IRQHandler + + PUBWEAK DMA0_Channel2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA0_Channel2_IRQHandler + B DMA0_Channel2_IRQHandler + + PUBWEAK DMA0_Channel3_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA0_Channel3_IRQHandler + B DMA0_Channel3_IRQHandler + + PUBWEAK DMA0_Channel4_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA0_Channel4_IRQHandler + B DMA0_Channel4_IRQHandler + + PUBWEAK DMA0_Channel5_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA0_Channel5_IRQHandler + B DMA0_Channel5_IRQHandler + + PUBWEAK DMA0_Channel6_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA0_Channel6_IRQHandler + B DMA0_Channel6_IRQHandler + + PUBWEAK ADC0_1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +ADC0_1_IRQHandler + B ADC0_1_IRQHandler + + PUBWEAK USBD_HP_CAN0_TX_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +USBD_HP_CAN0_TX_IRQHandler + B USBD_HP_CAN0_TX_IRQHandler + + PUBWEAK USBD_LP_CAN0_RX0_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +USBD_LP_CAN0_RX0_IRQHandler + B USBD_LP_CAN0_RX0_IRQHandler + + PUBWEAK CAN0_RX1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +CAN0_RX1_IRQHandler + B CAN0_RX1_IRQHandler + + PUBWEAK CAN0_EWMC_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +CAN0_EWMC_IRQHandler + B CAN0_EWMC_IRQHandler + + PUBWEAK EXTI5_9_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI5_9_IRQHandler + B EXTI5_9_IRQHandler + + PUBWEAK TIMER0_BRK_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER0_BRK_IRQHandler + B TIMER0_BRK_IRQHandler + + PUBWEAK TIMER0_UP_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER0_UP_IRQHandler + B TIMER0_UP_IRQHandler + + PUBWEAK TIMER0_TRG_CMT_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER0_TRG_CMT_IRQHandler + B TIMER0_TRG_CMT_IRQHandler + + PUBWEAK TIMER0_Channel_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER0_Channel_IRQHandler + B TIMER0_Channel_IRQHandler + + PUBWEAK TIMER1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER1_IRQHandler + B TIMER1_IRQHandler + + PUBWEAK TIMER2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER2_IRQHandler + B TIMER2_IRQHandler + + PUBWEAK TIMER3_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER3_IRQHandler + B TIMER3_IRQHandler + + PUBWEAK I2C0_EV_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +I2C0_EV_IRQHandler + B I2C0_EV_IRQHandler + + PUBWEAK I2C0_ER_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +I2C0_ER_IRQHandler + B I2C0_ER_IRQHandler + + PUBWEAK I2C1_EV_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +I2C1_EV_IRQHandler + B I2C1_EV_IRQHandler + + PUBWEAK I2C1_ER_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +I2C1_ER_IRQHandler + B I2C1_ER_IRQHandler + + PUBWEAK SPI0_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +SPI0_IRQHandler + B SPI0_IRQHandler + + PUBWEAK SPI1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +SPI1_IRQHandler + B SPI1_IRQHandler + + PUBWEAK USART0_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +USART0_IRQHandler + B USART0_IRQHandler + + PUBWEAK USART1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +USART1_IRQHandler + B USART1_IRQHandler + + PUBWEAK USART2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +USART2_IRQHandler + B USART2_IRQHandler + + PUBWEAK EXTI10_15_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI10_15_IRQHandler + B EXTI10_15_IRQHandler + + PUBWEAK RTC_Alarm_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +RTC_Alarm_IRQHandler + B RTC_Alarm_IRQHandler + + PUBWEAK USBD_WKUP_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +USBD_WKUP_IRQHandler + B USBD_WKUP_IRQHandler + + PUBWEAK EXMC_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXMC_IRQHandler + B EXMC_IRQHandler + + END diff --git a/boot_source/platform/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_xd.s b/boot_source/platform/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_xd.s new file mode 100644 index 0000000..74bd753 --- /dev/null +++ b/boot_source/platform/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_xd.s @@ -0,0 +1,489 @@ +;/*! +; \file startup_gd32f10x_xd.s +; \brief start up file +; +; \version 2024-01-05, V2.3.0, firmware for GD32F10x +;*/ + +;/* Copyright (c) 2011 - 2012 ARM LIMITED +; Copyright (c) 2024, GigaDevice Semiconductor Inc. +; +; All rights reserved. +; Redistribution and use in source and binary forms, with or without +; modification, are permitted provided that the following conditions are met: +; - Redistributions of source code must retain the above copyright +; notice, this list of conditions and the following disclaimer. +; - Redistributions in binary form must reproduce the above copyright +; notice, this list of conditions and the following disclaimer in the +; documentation and/or other materials provided with the distribution. +; - Neither the name of ARM nor the names of its contributors may be used +; to endorse or promote products derived from this software without +; specific prior written permission. +; * +; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +; ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE +; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +; POSSIBILITY OF SUCH DAMAGE. +;*/ +;/* This file refers the CMSIS standard, some adjustments are made according to GigaDevice chips */ + + MODULE ?cstartup + + ;; Forward declaration of sections. + SECTION CSTACK:DATA:NOROOT(3) + + SECTION .intvec:CODE:NOROOT(2) + + EXTERN __iar_program_start + EXTERN SystemInit + PUBLIC __vector_table + + DATA +__vector_table + DCD sfe(CSTACK) ; top of stack + DCD Reset_Handler ; Reset Handler + + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD MemManage_Handler ; MPU Fault Handler + DCD BusFault_Handler ; Bus Fault Handler + DCD UsageFault_Handler ; Usage Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD DebugMon_Handler ; Debug Monitor Handler + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD WWDGT_IRQHandler ; Vector Number 16,Window Watchdog Timer + DCD LVD_IRQHandler ; Vector Number 17,LVD through EXTI Line detect + DCD TAMPER_IRQHandler ; Vector Number 18,Tamper Interrupt + DCD RTC_IRQHandler ; Vector Number 19,RTC through EXTI Line + DCD FMC_IRQHandler ; Vector Number 20,FMC + DCD RCU_IRQHandler ; Vector Number 21,RCU + DCD EXTI0_IRQHandler ; Vector Number 22,EXTI Line 0 + DCD EXTI1_IRQHandler ; Vector Number 23,EXTI Line 1 + DCD EXTI2_IRQHandler ; Vector Number 24,EXTI Line 2 + DCD EXTI3_IRQHandler ; Vector Number 25,EXTI Line 3 + DCD EXTI4_IRQHandler ; Vector Number 26,EXTI Line 4 + DCD DMA0_Channel0_IRQHandler ; Vector Number 27,DMA0 Channel 0 + DCD DMA0_Channel1_IRQHandler ; Vector Number 28,DMA0 Channel 1 + DCD DMA0_Channel2_IRQHandler ; Vector Number 29,DMA0 Channel 2 + DCD DMA0_Channel3_IRQHandler ; Vector Number 30,DMA0 Channel 3 + DCD DMA0_Channel4_IRQHandler ; Vector Number 31,DMA0 Channel 4 + DCD DMA0_Channel5_IRQHandler ; Vector Number 32,DMA0 Channel 5 + DCD DMA0_Channel6_IRQHandler ; Vector Number 33,DMA0 Channel 6 + DCD ADC0_1_IRQHandler ; Vector Number 34,ADC0 and ADC1 + DCD USBD_HP_CAN0_TX_IRQHandler ; Vector Number 35,USBD and CAN0 TX + DCD USBD_LP_CAN0_RX0_IRQHandler ; Vector Number 36,USBD and CAN0 RX0 + DCD CAN0_RX1_IRQHandler ; Vector Number 37,CAN0 RX1 + DCD CAN0_EWMC_IRQHandler ; Vector Number 38,CAN0 EWMC + DCD EXTI5_9_IRQHandler ; Vector Number 39,EXTI Line 5 to EXTI Line 9 + DCD TIMER0_BRK_TIMER8_IRQHandler ; Vector Number 40,TIMER0 Break and TIMER8 global + DCD TIMER0_UP_TIMER9_IRQHandler ; Vector Number 41,TIMER0 Update and TIMER9 global + DCD TIMER0_TRG_CMT_TIMER10_IRQHandler ; Vector Number 42,TIMER0 Trigger and Commutation and TIMER10 global + DCD TIMER0_Channel_IRQHandler ; Vector Number 43,TIMER0 Channel Capture Compare + DCD TIMER1_IRQHandler ; Vector Number 44,TIMER1 + DCD TIMER2_IRQHandler ; Vector Number 45,TIMER2 + DCD TIMER3_IRQHandler ; Vector Number 46,TIMER3 + DCD I2C0_EV_IRQHandler ; Vector Number 47,I2C0 Event + DCD I2C0_ER_IRQHandler ; Vector Number 48,I2C0 Error + DCD I2C1_EV_IRQHandler ; Vector Number 49,I2C1 Event + DCD I2C1_ER_IRQHandler ; Vector Number 50,I2C1 Error + DCD SPI0_IRQHandler ; Vector Number 51,SPI0 + DCD SPI1_IRQHandler ; Vector Number 52,SPI1 + DCD USART0_IRQHandler ; Vector Number 53,USART0 + DCD USART1_IRQHandler ; Vector Number 54,USART1 + DCD USART2_IRQHandler ; Vector Number 55,USART2 + DCD EXTI10_15_IRQHandler ; Vector Number 56,EXTI Line 10 to EXTI Line 15 + DCD RTC_Alarm_IRQHandler ; Vector Number 57,RTC Alarm through EXTI Line + DCD USBD_WKUP_IRQHandler ; Vector Number 58,USBD WakeUp from suspend through EXTI Line + DCD TIMER7_BRK_TIMER11_IRQHandler ; Vector Number 59,TIMER7 Break Interrupt and TIMER11 global + DCD TIMER7_UP_TIMER12_IRQHandler ; Vector Number 60,TIMER7 Update Interrupt and TIMER12 global + DCD TIMER7_TRG_CMT_TIMER13_IRQHandler ; Vector Number 61,TIMER7 Trigger and Commutation Interrupt and TIMER13 global + DCD TIMER7_Channel_IRQHandler ; Vector Number 62,TIMER7 Channel Capture Compare + DCD ADC2_IRQHandler ; Vector Number 63,ADC2 + DCD EXMC_IRQHandler ; Vector Number 64,EXMC + DCD SDIO_IRQHandler ; Vector Number 65,SDIO + DCD TIMER4_IRQHandler ; Vector Number 66,TIMER4 + DCD SPI2_IRQHandler ; Vector Number 67,SPI2 + DCD UART3_IRQHandler ; Vector Number 68,UART3 + DCD UART4_IRQHandler ; Vector Number 69,UART4 + DCD TIMER5_IRQHandler ; Vector Number 70,TIMER5 + DCD TIMER6_IRQHandler ; Vector Number 71,TIMER6 + DCD DMA1_Channel0_IRQHandler ; Vector Number 72,DMA1 Channel0 + DCD DMA1_Channel1_IRQHandler ; Vector Number 73,DMA1 Channel1 + DCD DMA1_Channel2_IRQHandler ; Vector Number 74,DMA1 Channel2 + DCD DMA1_Channel3_4_IRQHandler ; Vector Number 75,DMA1 Channel4 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; Default interrupt handlers. +;; + THUMB + + PUBWEAK Reset_Handler + SECTION .text:CODE:NOROOT:REORDER(2) +Reset_Handler + LDR R0, = SystemInit + BLX R0 + LDR R0, =__iar_program_start + BX R0 + + PUBWEAK NMI_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +NMI_Handler + B NMI_Handler + + PUBWEAK HardFault_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +HardFault_Handler + B HardFault_Handler + + PUBWEAK MemManage_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +MemManage_Handler + B MemManage_Handler + + PUBWEAK BusFault_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +BusFault_Handler + B BusFault_Handler + + PUBWEAK UsageFault_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +UsageFault_Handler + B UsageFault_Handler + + PUBWEAK SVC_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +SVC_Handler + B SVC_Handler + + PUBWEAK DebugMon_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +DebugMon_Handler + B DebugMon_Handler + + PUBWEAK PendSV_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +PendSV_Handler + B PendSV_Handler + + PUBWEAK SysTick_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +SysTick_Handler + B SysTick_Handler + + PUBWEAK WWDGT_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +WWDGT_IRQHandler + B WWDGT_IRQHandler + + PUBWEAK LVD_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +LVD_IRQHandler + B LVD_IRQHandler + + PUBWEAK TAMPER_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TAMPER_IRQHandler + B TAMPER_IRQHandler + + PUBWEAK RTC_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +RTC_IRQHandler + B RTC_IRQHandler + + PUBWEAK FMC_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +FMC_IRQHandler + B FMC_IRQHandler + + PUBWEAK RCU_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +RCU_IRQHandler + B RCU_IRQHandler + + PUBWEAK EXTI0_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI0_IRQHandler + B EXTI0_IRQHandler + + PUBWEAK EXTI1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI1_IRQHandler + B EXTI1_IRQHandler + + PUBWEAK EXTI2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI2_IRQHandler + B EXTI2_IRQHandler + + PUBWEAK EXTI3_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI3_IRQHandler + B EXTI3_IRQHandler + + PUBWEAK EXTI4_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI4_IRQHandler + B EXTI4_IRQHandler + + PUBWEAK DMA0_Channel0_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA0_Channel0_IRQHandler + B DMA0_Channel0_IRQHandler + + + PUBWEAK DMA0_Channel1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA0_Channel1_IRQHandler + B DMA0_Channel1_IRQHandler + + PUBWEAK DMA0_Channel2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA0_Channel2_IRQHandler + B DMA0_Channel2_IRQHandler + + PUBWEAK DMA0_Channel3_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA0_Channel3_IRQHandler + B DMA0_Channel3_IRQHandler + + PUBWEAK DMA0_Channel4_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA0_Channel4_IRQHandler + B DMA0_Channel4_IRQHandler + + PUBWEAK DMA0_Channel5_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA0_Channel5_IRQHandler + B DMA0_Channel5_IRQHandler + + PUBWEAK DMA0_Channel6_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA0_Channel6_IRQHandler + B DMA0_Channel6_IRQHandler + + PUBWEAK ADC0_1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +ADC0_1_IRQHandler + B ADC0_1_IRQHandler + + PUBWEAK USBD_HP_CAN0_TX_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +USBD_HP_CAN0_TX_IRQHandler + B USBD_HP_CAN0_TX_IRQHandler + + PUBWEAK USBD_LP_CAN0_RX0_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +USBD_LP_CAN0_RX0_IRQHandler + B USBD_LP_CAN0_RX0_IRQHandler + + PUBWEAK CAN0_RX1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +CAN0_RX1_IRQHandler + B CAN0_RX1_IRQHandler + + PUBWEAK CAN0_EWMC_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +CAN0_EWMC_IRQHandler + B CAN0_EWMC_IRQHandler + + PUBWEAK EXTI5_9_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI5_9_IRQHandler + B EXTI5_9_IRQHandler + + PUBWEAK TIMER0_BRK_TIMER8_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER0_BRK_TIMER8_IRQHandler + B TIMER0_BRK_TIMER8_IRQHandler + + PUBWEAK TIMER0_UP_TIMER9_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER0_UP_TIMER9_IRQHandler + B TIMER0_UP_TIMER9_IRQHandler + + PUBWEAK TIMER0_TRG_CMT_TIMER10_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER0_TRG_CMT_TIMER10_IRQHandler + B TIMER0_TRG_CMT_TIMER10_IRQHandler + + PUBWEAK TIMER0_Channel_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER0_Channel_IRQHandler + B TIMER0_Channel_IRQHandler + + PUBWEAK TIMER1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER1_IRQHandler + B TIMER1_IRQHandler + + PUBWEAK TIMER2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER2_IRQHandler + B TIMER2_IRQHandler + + PUBWEAK TIMER3_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER3_IRQHandler + B TIMER3_IRQHandler + + PUBWEAK I2C0_EV_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +I2C0_EV_IRQHandler + B I2C0_EV_IRQHandler + + PUBWEAK I2C0_ER_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +I2C0_ER_IRQHandler + B I2C0_ER_IRQHandler + + PUBWEAK I2C1_EV_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +I2C1_EV_IRQHandler + B I2C1_EV_IRQHandler + + PUBWEAK I2C1_ER_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +I2C1_ER_IRQHandler + B I2C1_ER_IRQHandler + + PUBWEAK SPI0_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +SPI0_IRQHandler + B SPI0_IRQHandler + + PUBWEAK SPI1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +SPI1_IRQHandler + B SPI1_IRQHandler + + PUBWEAK USART0_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +USART0_IRQHandler + B USART0_IRQHandler + + PUBWEAK USART1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +USART1_IRQHandler + B USART1_IRQHandler + + PUBWEAK USART2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +USART2_IRQHandler + B USART2_IRQHandler + + PUBWEAK EXTI10_15_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI10_15_IRQHandler + B EXTI10_15_IRQHandler + + PUBWEAK RTC_Alarm_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +RTC_Alarm_IRQHandler + B RTC_Alarm_IRQHandler + + PUBWEAK USBD_WKUP_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +USBD_WKUP_IRQHandler + B USBD_WKUP_IRQHandler + + PUBWEAK TIMER7_BRK_TIMER11_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER7_BRK_TIMER11_IRQHandler + B TIMER7_BRK_TIMER11_IRQHandler + + PUBWEAK TIMER7_UP_TIMER12_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER7_UP_TIMER12_IRQHandler + B TIMER7_UP_TIMER12_IRQHandler + + PUBWEAK TIMER7_TRG_CMT_TIMER13_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER7_TRG_CMT_TIMER13_IRQHandler + B TIMER7_TRG_CMT_TIMER13_IRQHandler + + PUBWEAK TIMER7_Channel_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER7_Channel_IRQHandler + B TIMER7_Channel_IRQHandler + + PUBWEAK ADC2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +ADC2_IRQHandler + B ADC2_IRQHandler + + PUBWEAK EXMC_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXMC_IRQHandler + B EXMC_IRQHandler + + PUBWEAK SDIO_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +SDIO_IRQHandler + B SDIO_IRQHandler + + PUBWEAK TIMER4_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER4_IRQHandler + B TIMER4_IRQHandler + + PUBWEAK SPI2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +SPI2_IRQHandler + B SPI2_IRQHandler + + PUBWEAK UART3_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +UART3_IRQHandler + B UART3_IRQHandler + + PUBWEAK UART4_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +UART4_IRQHandler + B UART4_IRQHandler + + PUBWEAK TIMER5_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER5_IRQHandler + B TIMER5_IRQHandler + + PUBWEAK TIMER6_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIMER6_IRQHandler + B TIMER6_IRQHandler + + PUBWEAK DMA1_Channel0_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA1_Channel0_IRQHandler + B DMA1_Channel0_IRQHandler + + PUBWEAK DMA1_Channel1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA1_Channel1_IRQHandler + B DMA1_Channel1_IRQHandler + + PUBWEAK DMA1_Channel2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA1_Channel2_IRQHandler + B DMA1_Channel2_IRQHandler + + PUBWEAK DMA1_Channel3_4_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA1_Channel3_4_IRQHandler + B DMA1_Channel3_4_IRQHandler + + END diff --git a/boot_source/platform/CMSIS/GD/GD32F10x/Source/gd32f10x_it.c b/boot_source/platform/CMSIS/GD/GD32F10x/Source/gd32f10x_it.c new file mode 100644 index 0000000000000000000000000000000000000000..24da9d26ed74960fdbe06dca649299127a35041f GIT binary patch literal 12288 zcmeI%(_1BOw7~IfbBD>cZQFJ`P3F$#WLuLad#cICWZT%;QI

    CzNFUnl`|MnowQX2-w^Drb_)AG@{w!1N3_o63R9y5`OaI`Vc|>)92c!wg7Pxv;N%loato7$@OP# z)ZhR~KeYRF_!sU z?)6j<)i@;RsiL`+;GMd=w>$^MJBPb3{6VAdhnoRW4)Mjms@Ga zk?d6FQwce3iqz$b7=hJH5BGvWkh_IYJ9XfTK-D;zJMN}(+QOJn)EWdV8P9i9SXh&% zrB4dPpMjp#C89{7;HYD8)E6|iThD$btTYlW4@iEDn#kb+6>;k=+>P6pxnX=4(c`^# z+%{UvlRd%_$8iij{;J@!1YXsi&=kDsjehg~>jIvk%aUCS;xWgBBhH_>B@Eiw-M2x} z@T9CE%DZ3xN>abo%VCeUh7OK1&vlQM97x}&+qgCAX-~56 zRb>>)RbeHcF|HS_j*KYK{;ae~E6TjvtPgP?uRckM#(G#hBXIK;Bu>dJNlj#qPTVPA zLGIT`o)02u8!yyZbX3Q(guw(J4VMOWEsrxA&ybA!oYfX3=M#>lFS7mR?$=l(-l2@Y zGp1zTv*k~Xg2WoiQL3-{ZnOxVYJp^t;$1ioYt0;oU-S!@Z7@mDJuymdl$FHP4sNg-@ZqS+&ThDZ5TEPBIsqqas1Kn8acqJh2tBI z5HJ;~>nHt?*Q@_Jv%~~JnlyB5tYbgI~okn=c#Q+iG|)4U^%3gKyIdP_dk2r3_(0qpFa5J^jGLo3FhAw@p#Whk^Cp{-|bmU5S6LFq0{Wy!$Pq53WP8>_K8+pt!5&u zIgg(%heycjr1m3K$uYJ^_nxP@>AO(3pU8>0SC|kzUo^hH;lPhu>#Q3dkf( z;^JKUp_Mc==PiHvhG%;+5VziE;6?0%?mc$4;$3=Z&$zlxxch3-|M#7)OkNV)eK}CG zu_T5|B8Uf2>hvtKQYNBhwTT-O`xXK8{_?hlY^7;xNEFV*#r4ikA*hoAq=kwD;NJ#G zf`=Lj)?Ba>1ll5_qELKhDmDH2?~fW|0^x^xJx+|GY6;xsyZ6KazU=L1x&hLm=GCyc zK|*K^T|Q)k-qiWONbO{s0T2sWkcr*vD;MN z0j|CGrR)tYZ$SIC1d^{z6gxj#G=X=2;YB>Fd?g$w(H2_tiY@$LA%ueWpRWcZjg&(# zRE6enX$6c!-02Gals*eVUK^yVFByptS~%^?h38^_ETd)7e%Sx(%-M7D{xhg~RrbVi zvd>i%2sBNv(FO!#XY;f%w+7#>bYGFr?Vz37q~mueVCHR!B!*SwHWVR^X;Ou4PW~pT zhqemC?CaSTSniyxGe%ggKySSdz720D&SllwEU6Mc=o4K)6-H$QVcCnP(h=>7_x9`g z3~*LL)-$TjchMx$NQ<52rwHF5}34EYGi^1~80Sn(Vz_mOb~9TfZ=WZ?M+Fvu#-S3qaPj(y`XC zW;N~B)1~q<{VUlt74Wn({82&F%<_?iUQzr|fALD`MySPMqeOVKJ<`mY;PSKO`WGuf zD!4mRU|Lori5L!jrn?L7^dluyo0Vp-`B*8kBw{!|fxT{r!#WryPwxl|CqoLbd@zl$ z3ev1v379+Mr}ew3%QTvSMap>Cw1F_iuXPiW=;j6mAyn#!+=^FjqOzlKFe8^Ou5W(d z{Rws1{Ynwcxeo)m6(~tJUtR0a<~XtXqhM&#Rt0bu%v;R0OC;(-?g6Fy?Fy1IBG_$xjx2z__h4@kwZIji1n2Pyyp>llXh@IvU*t4M(ib}=U5q`rz zR6C_SNpU=ck|f8eaMDEBUL$#MlvEVfe03GPPOz0x+yMr`K{;)|D zLf$hgC+RHg5c66qRMTzT?&+mv*yftbLgcd^PVAKN(-g9q7jEaEOW^(}cW|Y!XtFFQ zc0MIEng6ohVOPmAO%MV716;#;#8%fG*u~Yn$qvTe7yUD4iwhD=+JnQA26+F_4)n~H zY>ZB7wo?euxn#OF-~M>4;V6;~bY^keYXG^CXx2viUxNB{g^d+%<_Uxu#hxbf>2yq- zB5gAe^64m)oR@meT)$c=GymFIg!RG3nH{a@Y2-><*XgxNU1Uk{x7LKLX`^?sd2=l} zHCWI#LV_^<2`QKtdt6yZ7jZd(`pfT+Z+KiuLGIin{_- zC#af+9Rz%niucOE8hR>`1es%eLIzAoxjYr~8}{bit>_6~D%Fit(99wc1kaKgrtTKt zr8mnZ$Ztaq4A8Rdms3fIvcY7>9`_;{Uc5^xofso;9%mMt!TKl|=7}7evz=@KGED^h zM#5pn&NS(6(Rvz)+8;r-^+8tFxJh2p$Y)4~;zM-mZo1g_=QyT;Z8{XMd6gK>048R@%$z^1~;)k6!z~9#Dj6&ko@BES6$?OS@uaaRV{qO!(%aE!saq-6xIj%y@ISu5^+?%e1qmqkGGat zq+-eI0>M?hh-FOJ=@8+G;LsdUfXPtcM)iKsJAmOHF&I@;a)V(WlP3ve$GzSyaoYKG+TThc=O%jZ zl4KqvcO!bFSMnnLPaOSP)2I4ZcWc4zYZl^eRHKrJcj(qJtW*!8&xBu87i^KJq39uM zGaN|X>3CLZXVUn?AWiRia6`k?X+=aQ;*NYP*D-j_mv4ipil~-A=5_b%=@F!y8I5&T z+2L@DT<5v3pBC?v(9O5&to8(`FxtkqM%-X5adP*`5A|ItqFQ;JvqmtrciNQ+WF-V# zK`FGCvTer1M++u(W;j?I`==X?V+8p=vgxSyhxv8;mBc%%&Wv4m_&$dCJSV}b8VpBo zURk=ayKstJuu>zAJcSFRGphO+{8$xxFL>ZGFhePaDwd`^J+N>FWEn zZs?>GY}o;fLC%o0V7}y%E$v4+9Coq(VDQhWxnjajTse+hf8gQHx|0<_eJX9W&k-D} z$dL0(H-i!Sd(3YlA5<9xLUPf(Mepy@z0(jsI%Q1UxaKN&%6)igWzirs-a8M>`>P^q zvG4q+f7{N%6(uLI;>f0^FNaaSxUs^k=$inUy1R@@uT?;&C~{@(;(MTsbnYm&+x%D5 zG6HI1BHES1h}fo&*IiHxI0JD*CVQEU4lE470^MD5E=H(a>~t6NmKc+KwCD3@=kb z#528ezLYVjK_ev0rP*}d`wvVaN^`xG52B0AeOFt ztH{j?#N$D4w6m{+9}t2`P?Xz2l|Rl4f|*cSM|CT%!;T0n=!(MLKSCchDY%jl1kjXH zU!xqxWf*d7jj^uKX8OuZ4uKrt@J62)(G~SGi{p_|oGW4(eTK(9opid`m?_23iYD#U zY`q448m9+)4JtfmIj=vuk72*g!=mr;3a}|p=}fQ~u_J!iFFA1S-E>G+QYV<;RzyKIxy_A$YU7X|o~T zP)?*(MsnHTu1i@uOx55r%}Dww@-_Qt?Y^R(!>M}yP%f^-q)sL@7EhjeBfJ`A!~mx$ zgY$v{)OiE}636~Gp$+n>P}&EJw3J6Gb%9T%Qlfh#M5*93P*F~hx`<3Q8-ZBE*UqMOgAc-4P z=AFCN5k`AD5Ti9T1WIhR*k+av>;}gr*#dkRTq)nYOQzSDgI=5zox5d|a~;S9tzYf(zH z25UgRCxqq}Rdu6ss`Plr0QcdxeeLHs)m!h(yEtVLUpHuvLx!{1WO5!Ct4SFxqS$oa_EJtCsL+!(LVjh>bS+Rcb-6> zjO@|6WSZIy;wI0l#-QHzbz+2wcUWu(Ws&j*Ze&L@#ojC$ZNv9~-;pGqsn*w%CLaf~ z>K$88QWlxaGzn>!xQ|eE{C<<+zDG12 z((BPy4laFH#!_sy8S}E!B=pdiIs-=myQCS}tu34V95$L!WcqS;Q!qpWFPQ!NnYiPh z;vuV|S>9$LdQG#Cc0ntiIyt`~7(t|>V&;jKZIlGt9M=OW?k-@xA^YJeH)gzSvfAsM z4<_dUp?4RDVm*@pEquY!l=B4v{71!t~h#L69;B|T<*Atpoj3ZSr=iHPn`bu zMtbKgnICL3omdJBi7NbGSB6F&2t9!fj#F~jIt@DmX#9)Goq7;JEfNp~FGinacCfz& zfb2V62TzvOstCHJm?Z1pQuTUWJlV7a+`Ie}oLT;Lep5(SK7{b7*=j3y@di1nMmPgj zSz_e=k4%{_rQd{5wC(zZiJqVq?fthvA$Rv7R+5r=Z9_5URRP-c7CXjj)!(f!Du6^mq;dhfx97*G(8A3Qmx|2 z!l;7GbTJ6__{oV?a&@$YZpun!1;K$$L@kWa`P~8*;_Rs7Vt|$L8%R0xw=DCt9GLr#h_53EUq|*tgUuLx~fE zm1IyL?kMB8Jq zjQegLi$_$bKZJA}zb&x7xc|C8eH!$f=_=OVd@Res-}x#4lP?j%E$I4iA(fu+IZ@>7 zvpRun^%r1&ai%YXrGW;CSClg(|NW~cKV&47)Zl}Jw%*2;ECHe*!(=aiwvb0uc)(u> zqm<>?`fGweuJJoYdj~VjCzPwTT-((-GWVm2huZmxH@Ehs-Ie9rX0a9i!LP#8BU0XlQkgj|x{8vzgB@yttf0rQ zUMQ-Ld6~Zm?F$UCv~2;Jc6Ey+%ibTV?MmJi(HDrim1R*-bIT=gO>x^gJ2Udu?$`Jl zLglGAG7YTyo)Y2l&9rrgar=oru&|*EN6OQ|zUbExPr} zN0}$Pd9f|MQr;Kbpt0wB+Phy2`l6llw&TfK@8IuDh=N~j^v%PpXIM^(Pj!sva={_? zd9@AU95*J-`!AZOcCiXlq}sgrOV9qL7xzasdyu!XusQ5@i_LRAejc9A#ke%a40eMo z(OY%ZKx`awmJLkj4<+LIETYkg>;tgS1>a zWW)~v=)F*f2Y>R;s{5u|f7KfDEzvvTX0Y$?iu>w^d-Rkile^mxgO|6_f>*U2fTT^0 z9;mAgoZ~2izoY8*SNhn7X1zzZU{xc`a75D7-WCm8POTYHf0Q}h5RnOtk|JsTs(R&j z4wKKHqU>6_37(0CK0e2;slAK3C~Nn;n|g4d5`#V@(fC7>roc!+8JF5+nQHxvKA5<# zwRK35NnL2cR38vX{00vd0HfUJOCfvX)VVA+mbaZ{6e7IzPF@s4&p9iE(zpE60h~k{ zUW-#aH$$d#A%_%NKx2iGfOe%LMJ7okK#cVJQnw>>T9Pp)46;#@m*w~_yVDgIZ~i-i z({)-t?ROUyRvv@$CSjZSK0_xp8V}d=oiZbX45F;vBDbyQ8W%!hq5crYjQ~U`#M82@ zZxX0|+h=KK+t^%Gm~TcvM^1z0t*6K11^L2n=5|_|+AmSNa#dyTn<_5*WxQI6D5M=< zNEDrc65&%lyzsGdR?qQTRkVo{a8=)?PTf4QUs2ZnNM4Tir5uc5c#u(+){f#yQ24)Q z@}5R&kR6Mrttszp%?CdI<&F;Blm8K{j>Vc1RZ6xOcM=tX%*BIu&Wt*mSnJH7kw;cK z9_Hi^_P{($2ETekmM5TOD@rS=PVh&dzD@8yd4f1&FL9-`Us7aMCnIVkMCi!I3>V2v zyW|&B4jOi0PU3BW-QLlVlzlFEuJVHL^f2^s0$~o05=HQWqYbRgzZFw)%S*`~;h;$} zd^%>WiNlLOA9d8E3z3ZDo2V_L`OY&uDIX9gb?xHcKHmalk-QA=3$eSY=hl6BhSV62 z4~`oU!#?P)=~v57tkWV8=d1W8i`LIG({`w@8Sg}o$!LU=`_3=d7p1ZVWUrT7EtIKX5v~?rQu5)Sii;q@;7bY zduxMn#t~W>2?00bc5#tjBig4*Op4&7kCLYO^FZ0)LJeu=2pJ4F&mEncP#Z#^u~c9` zp)WOBRDJ**;NWG4Ob{=}Mw}CaX9>PUQu=ObXgB&2d7cuozviPJGGOpDgibQ)BhYeD zeg~?Kg9PGP6S^%{Ka-`UJ_}q7IECe2?ZHPYyPdsoa=I)zmKsS6jWc4%%y5%-U3J?I ztGL4e!HlJp#x34)6}}|#OXoR6T;go7QS~pj7e?MY&aUpHl`FN#TpPzN%lLJd zPPuDa8I>`_c$hVqfK}F}S|Z{po?;seyf}XKo<(}IkAYHXz|ED)Wu2?FS!D63wxP?w zdWbl!gM$0-TY>(<3X3O4g?55qDI1NI{`};v)SYqe1=i2OdW9`7w#`0n*6b-_#%Urz z+8{UoZG(NNk&FkCLvsZc71UrUdlV*}jzWZYyd3=(=<`vpZG_Ed!{gfKwZ!N>rw3cF z<3@euTu(`I*EffF`Rv>os~`GiB!Ps6u%Pyi`92XwC(Y7peOi=M)fU}gntWNt#ce@Q z?DVXh&QNT_RG-u<@s*W)nFgaBnBZv!7jZNC5Nr^dSBqw-c~x8fGad3({0d_i0Y|j5 zy|$vhq=AqAM3*2^Q%@pF51zg$?6WC94vAIW|3#r>@&e( zMw53rJ!S63={pm-RD_QU^1Rr%dR=5? zZ8^=0-CWdm3Vr9NVx#a<-p`aTm7#Phg`+f@nTbvzOC-+qP}nwr$(SY1=+++qSLK*1WTt`4L}M*`%&q_ac>4icD2S zlupvj$kfc4j)a7S%+olHwLR_*xq)_`OGB2R0vHGkC=lrX4M8AapkA~n-0OBAAo?0b zAPYB64lej~xPa`xJaUShu|FQ}nK)qJpVi|9H5$=ON9kbEg1hPj5#T&|k;d`0k`(N` z_1p5!hA{=a2SR!nMwSyQw7?`cXuhkGnOTDHR8*cI3QGT9yvkqm|KfptNZb|Fbn`JC zy~q9+Pn;kE?*GQiua$&}=Bi)RcQ(`y(9-t$Z`}c_ax3g`388#cPQ0U|rp?}^Yc{^JMtg#b2E7{vRR_tsW7{dtB z!840Ia3JyJSnIk-SQ*>vL@lmLz(Zl!9o2Q$J?GFeoYPlhC~O(QMm<4p|6zt>H^39r zf1HpiVz8-PRDzv9Z7olj{Emc2pGriFa71&{eA=-Fd8RQ~p7m+>wYDYS?q@jr$h-@{ z`JB|DZ?)IEW1(k7dc%ZQQ)qEyJtTOEGh`&P=P0tnX!_IaxANH+n>k~Rjj@l{LSqAo z(f#qj9ZWDlrIn}?M7XRw9uurWXH#5Z-4yjq^_WffS9&lB8gbQc=~+Tao|D27oO<4P z%X17KB&;njK^fNPqo4EV-XOq}-hFReff1aP9!AtM3FBaY5<<0LPJMP?@Ee3@RJvxO zarR$K0YEE@&>7Ne8faWq&crRb$}8);#P7u1w|b}2dQeKj7$cAC1wo`;6gpVg3DQJ9-fvgx%BUc1T0+1d5@p)b&|Zhz7d;aDVW87s#~us3zWPx zax>h?ss`Vp>LgcP*#)$yyzzsQz^ON!mEbOo(m^-pgJO;#++?70G(O;=IDX>XQQsXs zhDC|w6-C;ni&SxFE`mIGuZqkt3>Iew0E(q1pYMu=pUX6K?e(+j@1s4%9eQ?LE?5+h z=pSje1xQrG>Y(LIfr#u-gQqd|90mr6;SYV;%rZ|7pV?O)z)~1G@^COwCk6N$2xRV0 z_WzkrjusdTI2F$F*!rD_biuZ9BxQw+y?GS=DG8pU>;@+*;pd;GFe-)2>^#N;W^cwUXJ{p*EyuIFjw1*D*{4EwTd91Et?Bi%FcQBTM%&7Y%H)s zb~B%r1Y}?c)FuKmgU!GfZ<8E3!w`fG!`CFZPZwc2ZG19fcG-ppA;$pQAQpgqQ)Zh5e_cn8lyE5n0+;PSk;XXOtuP`meGq^K&A1fshd>;+c~p^_9*F zDj^vBou?$!Zeu}Z?-Zi3F{#SKT8PFzb(5bL`}nIJd~sbUp)f2PfO~XLkTLtTo}Vl9 zMlgL(EY~AkH?>lwy*EBcH{;i~qAsFvGf{$29_gNRXa>{e)Z$Ip$#E2n_-FC`zGuQu zyWsa74JRk@t@q@X+}R74RNz~TB6+842J}~7jkCx;LsYaY-^FIwlqcsqv|*Gvw(H0#u;G)RI&(6&WxubY6E#@^MKxzUk^~htYuI5STZ%inUdft^k|pR3H=^XYtfk3Ur0JYWii7Ryn!=|B!z4Lco?q8VdcUqsen{P2Jw^F zrQ}4*K_%@L6r;GHwLF^Qbh7Y*eY@d)6f|i#5d?eUOjZ0`=lJ8O5rmk9M$8{XDlJ%K zI0aU({+fjXHeI?wmm>Jdjjbg+6H{zM@%65Hs@d(e43*i&l3aE^=_t|Ulg#Ws{;;v& zQ36o0biO-s>QS3I4^kZLpqKQaLFCProGHmce~b+oQcGU8)8F_pZC(R?>p#l{@_Vlp z)6(>za5aoZy*CUI%)j(H7}_y{Sw!)unb)fg`0AM5(f72rm%x`06C_B@eZBd~6&{Hb z>z&$)k%f!&2u$d-Bd;?jH=9v6P-%H6Qsf0hitTk$^4f_AET zJr|Nb%zZ;yOHPFt$Mg7-N@S7TpTfB&Db{F%4&7o2+p3~>e$Fgbx|qpY8Hcqpl}sH_ zHmH)05aai$1v!G#@T?_~BuC93oF2xGxN^2aKaKS6y<@tZ%#IbmwG;(!IT%T9!tdB) zSty10VV^N_xi3S9_5OVf9(_MU^I?uA2Xf zE;W6rHd*W{=ApD(ttBe0l4M4|nm$9GtoR%6WTYFk;Wb*UF0YS6nh*AF>ZbMYilG~_F{r^{ME*T4bSSIW>*X_Kn!9PC;ogDl6_HOFLFCS!C2N= zmQ=GPeV=?g^ZdKN&?1ZgF5}g_=_!|g3`jD?k!;_J;ai*gdLYIAnZ~A4>47BW-GZN* zc=)MI0+-KJDtg<|yAV9|4$q%2JBtsnWi#cOY>Ow5lh4>mT|vaRIT!m0B00zU&V3?9 zd5LjPyF~XX5=}K#%hrvuCHuvof~S?;KIUh%3Xy3%N2`orbbBUU62wey#;23z9fa8; zofSneqATSy&uos^sjL6HG}{mWKc9*EOB$Q()zsA3@H{N9bNrkMx!GmPe@Xd34aHX= zpzp``j`AqYT3IZ(>`o#af5GuOr+BuHJHEX|d=TEA%x>Jh@{qsR{YaCp*~PiHXmbd* ziUaUAc(#F|AB|9%G`JhFlerFQ>MI(f*@%4?`8B!y{cDlvMZSl4b*WrXRfa_%6E4`p z3n^mbY9R7x8#qz#zy6;bRvC!KDG@!6k?4zE zs{11c*{h1JTINR(l#h_FQT8K0KXFvrvj#z|4aP2z*YyA)@^s)hL|jV1>a4He?T~vb zv|l7|c=`U@IdU9ks3f7v=|7Kv%a&)FF4}XuVOu6_O4u+&g%A6yx>FC0feBB^47WaH^Q;3t&Wiesb> zUj|fI@!&hWdQ6LfEhaG+>VCaS5o$EIRM=csql${6n%lduIN&2d;#bgiT;?zeo2Clf zYweE;uh(*RUD1`yD5_)_1-`ActM+WFuNtkjLnu#r?&yO3{YnoEYR1OH>?0YWU2X8R z?y60kqq~I{8sk`W!-_WIZ=OER@5E?RV7M}avC~T3VZ3x$T zXTP@K4--j9TtcNQXO;2qEk2lfQCeveCE;&NY?3PL})87-B&)1+9 z2yjx8Gwl;@?Z{mH$n$b?lX05uSpTBbEG2=lw^FyXKY^*3cL ze1e8GOQ6H24~M%m*Fkevfx92l@lOzHR@)^~OIroyb+r*sCaNPK$$2_FfT%-7%pqu*dY6;KqSY}x_q}QT)9FJeSbMH#&djP^DlRF@M$E; zKV5WBf*UB{KrG&32!Z#h4p(QtLCb>H5GoPU5xByThv{Sze*_|+ohZtsYdsBBUkru< z_hyrGh<3X5{_SWC(xmTJyLMKssPx?K;eV6Ul4ruI*jVGU@qT!dMv)^iTD|KRVa*J# z2rm>ar(|y^vu-$?XJP8=DNr(`%7fJ}wO-ZMSh-PHy6|$yBKX6{Xwjw*rnvc?f4j~& zov}7}pqUCP+cA?(HkuI{7jU~rOTnQE0&S#J@x(a@oq2!g&N!Cy01G@rp_QiS=4Khp z`VoQvO9B%HhN$1}%~QAmN{sAv5}VP#fg+bEp33G8ZoJ(?Z^)A@U$s48UI}g74d-)g z!`UF}10Nn-<|dH^3u2F%TN1vf6HG2zLHNm`WzQk8G?0H6+Ni4WgJ`iHbR$gECj!+D zU2AT1u7elQF@+R|)=_;zP9vsce9r`G?;jf823^54L|ee)GGBuYOEehu7_BHL?pJ23 zWxJ~EeZv=eJVRw?sDPEVf3~^nv?)LV1R+CWCsz1L1{bYm)#I@0x>W223AKd2CC;Ui z&KG@UVbD%v_N`VGk~$d-2bPPn8oB@agx-RZlpW_qA#BpwuzfiVNu}w<962t~lbN&S zfMQHH2}e-awqPDKtS-or4j`Bx)8ceb=eCcMb(WCxc;DwdMm~}NM-V-nM~zTm@t5*Vd};a_O9*FA<{9zqaVt}?pbeEzq7qSLW9 zvxxb&Dcm`55=#{%|&wgIko%mKJb+KK%@7)_^ka;|*%_ix^Mz%tPk)hH!r$_krp{++v5b480$__)z4?kM`AgWC zZ1CyJzjO4V+4EyA-veMn3E?gLQvx~stxh}P*|j7e^mgxp$MUFzyL>*UqQ0ywi(Fysdq{m_q!j=3DYgT) zZY60II2&FVj~zvsN1WG<9@u)(C?yQD+<+3JC5bA3`PqY{x3obStgYXaF_sYybXo(;x)w zkbQ1j?nJ&Lu}SCp(U^4hThDYcTcO^aCMT9+FqV>Ek0qgwG(0CxnV-edqAJ5nR{lxV z5w}l7e%?+YFgkt`^F~ALVvRo$481FSJYqlK%&UhZB3L~Xl|uOh9zKU2p~JZ|XmtUq z6^^*R%8=Z`dDndd7e>gL5rvQGcfsh;AF{1_swzC_f*W-5=cl{)JID*(xtD^{oAE0F zMR;Y(*AKz;aCLj;N!#N#+HpgyUNXjI$K`;Dj?oZ|elS|N_*i9bizx6kfIl+{M8T6n zTtmN7e9al^)~>oQ6(@#76*}+X^V9!W-sB+xADk84SyzK^3w9#cm(o~=)HCS9*RVZO z1?_wC(<*BYtRv-SeYMLrsY}*V3_m{Wwi!$%6N@R4zAL6sA&4Zp2L=|0RP9 zUc>Hs$ec!YsUrs7(~)y4r*fBn{hOh7f@cU=x@TjAEFe!G4;1rwzUZf_> z_Wf?mmS&5WtMK@8ep#!88JB!b|H@2i<#@ET)_y6}c|qcjkp)5SP8D&JZvmlZ*3FrM zLkU%%R2dnU(s#s!Zvs14)gp zCUu@>__w3w6T7lYAx^~QQN7od5tq>5m%pzc6xsgy$e4V+c9JA!i9qL9~4>gxnt(cSKgeziR34)(s0TgMu=jXDe_2;k!y`Zw;aC3 z3vn%>-%yc}*8@@9g!!u(f(wA-vO4TT&D)|Zk=_c^TIC{GNwgIS5<-UZl(Mv2D+Tk% z3X)%3;~l?GV70$+_SR$?u=5VLBx*;8c-ve9UG3&krb_Uyo{vY0;6Xo5LLV(8ovqBr zlG6H~mlS^_M6PVcf`F=I2w}IKCz>F49oA}N-?!PWt*z`3W*I?rBdso6^hp1S?DqHg z1ca#!o!4N%c!%z2P83+=MfZ^-f&O<&fP}7@0Pi?@NKwF4fzx-jah-JKnyAdbP>W1ZDN#n1jMa+ z2RQufTogPZ*(~>zyk9}m$_Nf_xHw6oY)EA1>;;Zbty3Cy)x`I&_{ZFqxkCQ7CA$8~ zp@b7(PVSA&*!)RLB=S;Z0`j^22(h2%StWTI12Vi{$2O5Y1RoRH*4Mr^_K_#@Qdi3f z7r)g(oa}npXfFb4JhPbOzOGvavxd75ehjsZ$5^3j&tCOpNttJzS!bAzsIf~ejWY6v zLnf+{;vZK@Zi#D+N!t7!N{t)K>X6~WJIJmrp}^_qdi~^L@&F}rnqz3R@RmkAC zQ=R6Z{k>|mU33RAj9k^fK6&oRccSw`%Q55T8yU`|!}e}PLmye2Ub|`f2S&&AdT%x^ zfOm(FaAf0jtL0x=!^7BjqXLB9*0QwGee8u?0Ch(w*1c>7sVf;L+&n83+r(A6$IR@wl}5uED?wPX(iDg&jd9 z*#^T-<@^opfO<=t0OReqURW?CQmTU>>$tU7?#!Eje18+;0UsZ6#^)+bz!$4{W^k-^ z+pXkOIO&}YjK*hnjN{YPoA!@?$Ot2F1b%gGF1y^h4QfwtUe7aXF@Sj3y{aZ5#ae`Z z8P~^9Mj$$4mkgKbnoe51eJrFLYc@QDxOWO_{EE_W7B-CvSJ;AWa1e3XkI_kP7Fhsf zFaj@ghFMhCBdnhK9imxoN5=hAKh8NH#@lQ$=I73EbmH>-*pfGPre zI$(am1MG&fPkCk}QciHdDew~(rD4*Ow)JH!9}vMqxl-VdT_*p2r)LwS!z9hjkb=z1 z-TJ#&AX&y{ofL)9ZsN-jQ2{#Uv+dhb$s_3|9a2Vktmtg}SJdqz;KKXp4%tIIEeHYO z_#u{Ciu0N1_El8txh2aOj}ghdZa^rcmzAa3lp|A^aX1*yqt2!%-@D@$*G{+byArF6 zgI2W5L0;~$%_cSSx?wo^}EwNUzXFNd>8j`|LjM-I_Yz~nJ>@m zLo_A0ZlXKX%D8x4+AYbV`us0|QijD!Uy@_ts&?_&u`A(bJxppMjpu%U3=gj6WtfEM zsn*4HFQ9b55;ryXcB6j-yJ?~2sCDCnRZqE9D`&JHaeH8Mm9Z&SnyNl_8H)@YE)8tC z24n)DWZU_BFXM(>Wb#B57XP+csg5m~QlcE_C|1TFE}I_#1I9jS&g6T2`I4wCy?m;g z`FJJ}={G6j9ss)D=)gCVv8$|;aCL-y7^kYS2%Y40WvMcYkrfY!Jdk81Bpgtwdk(e| zAGgjMBq9`Aw?9imNF?FbE=@vCyAbkP5`QZrZ+*HqkRbYwre7exF9p=0>pwoP=U_jp zv7flTIrWZz0C&jtLDqdGSfGgX1yQ|~QHQ;K;zMRg$2Y*c^68NfzfOh~02?P`(9y?& z6W(ovR|sa|=sX#fb+HA|(f$dgwpC2c!!0~5=e>n(M3TwUZx-BTd(pYig)zA2xEeN2 zy(ELyAxxXH{U9p~pe5$UM8Q{uu{&snh3{a6WS{r#O;GP5B3XTLwXApaQc)@UR2`%f zL8!#fkpq9V6BrjIg2WLW&t$E#4Sbbbd4^HbUFBFX8u?R^Q<|W~WNNloDp++2zKJIQ zKGVf6ovJyq@KESXG*{7!DI3td)b;XVw&-7rsBu4ff&X2<)^!Nt8EE{1owc3$feJ)J z$lxUUucx_CjQ+Kz4bBPp0x|y-$BoL-M_}&-*!P9lUI`psgb;=8@?dF-UXeX`s$UWQ z%82>DOQ+xh^%_<05tE#?hw9z`G zj4fDd9%DYBJr2!%NCIlm1@qGJn3N}-1G7f#iw-NK1d>#Z@1pk%@9>#+AI4Q&V9CVZ ze%)S>l41U=-c7wp!GMO4sLVi0`dHMCS?V@jhcXmtn&6PhjAJJ;4vX}NqZ1w=WoT58 zBMXk-=-+wiL(i6y`t-LT>sW51X-H3EXSvE)%M@&Aai#KjlOzu@_`{CusAH-&Y6Coc z-vj;w!Hd@dE4T_{f#TWkBjcT+81d&X@F6{SavS8N#9^a=p)*|e0xIQ+ol-18;#^iAJ5l6k@MRm~^OMUM08@52w@f4SCnzyhM2iL8@_|+`MUoWS=p}tH zq!saM!*yLDsebq+R){8~pA6}O$PMpTG;~gowyN5(B|V_Ylbk?r{q1zZ*^X<;2(K*K zJ*8FLLtpX;LGsVF>O^T%ArPNw=_LWbL1M2p^uKG|iDLBzRs0S|QwyNm0@6x#=NsEQ zE5?S*zjrn07t_$nnB;8ug75-|-9Tp4Y30|hm!=Cc%3!9}amK@A{Zk*q=<(p1Ls?c-|C5jVi41+%y@70IHh>}C5= z7Vwb=UAIHlluZKJPJbtSJ~Ck#BEOGL;5pzy)As5%)jO?eMxhI*Q5{TKBfiRhDwrR+fGnxHkCQERA{&ipeOti$sBKz00vx$u^!!iAugF+MA(ba>AFc zO<}}yA0Lj6d~1PSCZ9;yhz?VIIUlIMT=5d_S0QGz&i3<+e`TH?A8ygN+k^!yA-C>U zE{m&}No5JufEz&ItJZdyu|Vjz1jV8cNq~!x8QQIakm{M4xA$tpY>+ECIbuDks#vxP ztEy7jo3%VESYBx&-~S3BN1M)lgrhuU>0$DLf)A~M<6u))+=M5?I_^Sihh%=XdL?3V z#a3LU5~TbYFbB1f>v-GW9&V2|6tgMSvhclPVLTJhY^E4Rdn)VhT55`NbFB= z$A2}%rqo_>T9}U!z;Z8^n<+Y|rp%|&#L?Lx*2l@)^~r z1a9of@4KC9u}d@a<)cz)H#RDkqTjPK1Z-g-B+<_{T0{+gRtC}|M&`^4vHXy>Z@ZKp zUHOqkf0bdbSw`@}*Vcy~iNz7`Hqp;Py^}VRjrXj=^RG`$=raq@>R+h?|vuR1p%-R`|CWC@gFe z*3gy}_&8B(OVn>xqr!pZY*71p1-5w97GjWIaaEfjLTlUL{i@lb zbL#m!^o#iPiY~&sU!Ivwe^CgZSgza3N{0ozkpfwKY1c=MdZMvFbk++h&bztJ4e)=j zbNanTS?@zgh{RR>a%v*R@VL1uENFXZhJHo|=p7|z5xtLFVlD?a4>4oD*5>S$$~xm# z1Y@6``BI=K9*j|UpIYYLDdbUEj#!YNJ+A~6mIa(+*dljb61vH&N$otm@qrpxw+1cg z#rW)Cv9sk&1Puw7`+(q=s}{wv7(xMx+bnf6cUU}p#D=&a0O35 z^lkyqTF*Fu6W-0B(v0LT9(JZ8Kjf_4N6dO6Iely_5h0`*D=yabXH(!-x=Z;^-Ww{C zovUsb}HI}DM1w$=l(suyG& zvsCk1`NYbW_N1>6*fJlNS;DOylSrG?;(RXlTWukKDoaZ}|EM1cVxu#!kEY9L?o>qg zE-T9V36fwY5#vJX%U9Frx{^bI9Hcs2^l2O21$4!u`Htt<54@D%AGo|`)C4kYTRsL1 zW$Ss2#&B=E%F(j8rA7)>9SU@}5m22xj#fz?MCQ-FysMdYv9OFYc^?#!6@JV5Z{(;7 zechui*^lkRg89Cbb6d)ce7XU#p3IG&q*k_q-`T!hhIurCc#d}?rKRMKudY3vkqqJ=2x+(@h|pM~G#o5qF6P4$uQv|LeFrL|IWz{&Tft^}>VV;{v_dZGilr6_dRX8a=n7M4#inI%)mr zfFi>%iFi8ZpjUgqvz(%(w&4xT@PSU?d^k+u-ZQv79dZ2u!>QE>bqclj7#FrdQvGYa zssuvZhL7|+0BMM&Cgyz_Y7r{738%fy3v04xEgzaJD8am^%`UD>1D5ih-9t}3LshYI z1V{s|phEF+-^yJ7v9GDvD;BnDbe4u7VDm&})eAr9VrDPnwzuupkW+2R998Af@xP2@ zma2vUaJqZL#i8utO0UL86Mn|WK(T@>gdhG!VH&wnk#YJ z8@;@zl0R~Fmoh9n)1X1~Um2qTrUDd7TerLv@Y7IrILD_=VQR?qw>1Xr3=eBgS+YrC z632CTx6>!F=Tk;lg#`P*X4!7P@ViCO?~@4&c~(qqFAp7VqW;yn{aHF=lP;=yc=pC; zYH+8vSo_Pwk|)&13`ZPzL(yHEN47!yF~D&UrwGR0fyElUj2^{NCQQ{lGK^`uruiB|Y#CCeBkpV4i)= z@%lIxf+HS#n7DTT84aE{2mS9Aj*qf7)z2|%-5y9HsfJbx{?f0HQ`{V86lCz}GHT4= z>1$a+yn_K9D`6MZp1o}3dY!0`sbGQAf10Zg!D%m758Rp&pLzHBy~ zjKV{HywjB-wrxx`(PeCmn1+HBBi5!4o*>m(tBXWRWyW4~T<=+@Ke7NB$^T70|F25-ezj-gIc@3|I=qi= z#u)(LfJxCbM4I9qu2$3Oz!!k&%^7Y!rfazV*Ep))7s2_|on3_rBg35m?>iQYkc4(U zL!^8BU;5DT9GAO~Ga_nJiIoA^*ov^34JKGf|Mhe^vIGU zqJ&n$>128Go3V((tn9DQn}}bn?*YeJj$&Md?<>P-P?_EZwNu~LeKpCnT{sTh>H#B5 zZ8i36)k|v!?1uj;TrUZI7h@ASXeKP$J+pp(^SYx(?Xjf(yeHMoK4OA58~bp2mI_Cy z6>kZ&$7Lb)%4VFWqVU%w#?`Qu1!>N9Hq>L}h!G=n;{zuV+@As2>lUB-q}hyMCuJBy zLZ%Q~w1JzrL%S8B)AX|As<3Phr^RMyB5pWvv?kz2XFu8=F8ju`iq<7m$ya=XiTbF( zrHsYYSW0G*AI@}dWJ*lT|B~Nt$EsT_NbFA|!O2slGs9+@0aQAC*$Y7tY5C>%J8=MVOGv3~j2m4&hCV4NTlZ@k}#h0@Ot1sy8kE++LX z=$6$Smf-8xqiN7+#vvoGH#t6`k)wExr3D+T7yc$7^UNzHX0S4Z6Dw^(U_MD(gMpVyw{|nCEn&9qHC7oHz8tM!e_W zWs}QEyf~QCN6!~_Zx(?G_a#lnZ-W>BxDN)?(wF6@5_>JzJ^GqljAc!Gjt}B}Ewio3 z{v82$o?pZYYkVRJE3@%w=*hi>+oWIMtObks$k%7a3^(%y+y%DqGkOU^V^F=f>lWvp zS9lPBCtmfA1_)YH?8(Ak@KL4R*u+O=?S37D_TVk)q)-K02SMZ@X7PA<#c3TZDuJFz`$pAwUiwUM<`B%^c~KImi*2z|wobxY(@=p>Q;^_HJfiknRByVpeAnjN^SPP~b- zR+@`JBP0}o);#6TAq`T9)Xs!*=AUwY>+zgf&N3aifl(8ZSic;p4Izo_Kric6(}*?= zt%18sKMDo;nOUvWR<{8#=$cgJD%JV<&DAQiPQ(e~eUSQ~Z=aNd?s$ZZAbtL%GNsPM z_B0bGChP)j{Bm=ND>_^XQzNQxr=>mr9=|7BM^jnr6hP_s94{Y1j9nnDG4pUE`qjEb zgR3-vXP*8AJ$D@AQVuf46N zAGMGMHh9vOU@XCYC9zA-dCfTDO)1Ax6kCOv#;0Vzbx^;6w;-zq4aAp*c@v}WZ!%Bh_0V~# zG9?_YQ)HgEtXK{Hp?2+&Ir@;D_=k=$)_q3y7@~Ym>uEn49SWGthc1$i&0Ntb7GPyI zb&JQfnRkBu^ix)TGcG_tOV5~pg1Ub{;fDGb`1zq2XDufLR}IX!!$g3Et@ZHZQXX?S zGqW}7T<5Ex+yoFm#=B z=HcZPl(WOP!&TY2Fkbht=(|mGlelr+l69!D0Q^NIdk|3K%sndsE_n7nO`Z-~v^?%h zX0}t_c5S$;PbPiJ&%$S%)iF*2WOzL~+cw7^J^#?F^{v@)pS|jMP8i?eIOEQn% z;OzIQfi@>O-^JSPi0lDB6?Kdo_3O7oD|B4QnT*j8)zCbkMt*-}&n$9COE;Y-YwjL^MmeIqz?P_F|3$M7^_Cvu zG!IEiKq6_|#{EQ075=Aj7|^L}Iv=OJHTf@|owXT+o(JGuXaMQ|-0wk#2Gg(6#fZ!; z_`)@bo2XBtdS~|+@u~2O1Le59CJqrZS;&Y;TbtugfL|)8!xf54Ncy)9wXQnZeL|qj z97rDN>U3SSmaC7rkI6Ay0AO z_!j6Lop|?Eoff)dv()SNy?YE?youd#_pgM?5VK=oEMYQ@9AovQ)p^y~Mw`ruD&ViF z>Z;cW81icZa3!W4j_a`Fi!K6PQrN`B-CX+QC4pP8dOx6tP>kpk zDKYhkfc(>V#DpyLB@{fl%&;q8FiV0bhRng$N1e#Lk9QU?mD6LeP?EO(xS{3^R>4=V z07GXdd6L<@!nes+urtHU1LHppemkUkU{<);`@z!e!dED`Dl$Y^6UyE@DlB5c%&NPh zWr)hxYQ1+Q=77|RspO)b!R|q4>BX+rf)~=15nc@?n2*Zsg%3vT>@f=K6Yg-#U$sdG zf}-h~2Ib-pVnbu^OrX8iObQF^&;VV%=F&IQj|T&H5Biyw97X)W0eG&P0n7*dE@m<> zWQ^RfXkDh?k7xUbJ|4s=HWHh=x)mB+HsAdSC5L|PA#&@PcgZMSmV~#-y#=|*Y}2f| z@l8E$A3URf3>fTi-kUo37U~L74(YMwTDsU`?y{WqEtEdKftG`JPq=5KJJe$4z>aC3 za^zx?+qp&H4s;OM0>BV8g!k6S;a?gMDcM-IE`3i_Z*3c2ZmA(tEe9Tz10*$#Po(D( zK(-|l&CG<8vi%h>gdjs~)NJIlI*;ZfOEDdRu-Lw~?&G_R8lPN(JTt-;tLDdl3)kJs zDo?1xZXY)P2ouRtDrl}U)(D|d$R#cCm`RJdKenZcUO-2%R~t*yqk}fyHR)%)3~Ft6 zJni~&ZCsGL6+}hs*cayxdOfy!zK9|`sCoWT-eZM9Y+osPl9d2mf$t`n?E#Myaff;0 zA!`!#73$o(L5ZlGgVKmEYw9FNDpsK-^$t|rC9bCQh|}W)LpOOrP|EAzf5_0tgM7fLq@LwyoB#*px|i7l=hkGGVh&Ng z;^^-mo52yy$~FdG#@@5zNg+T1?m@tBNmRr|DQ%QDKw{+KxZF31e{9Z?}5`)J~rB=LEKRkJ#_c7w5&k z8DM#x(Cacfn{|a2RL`?$d@5`LBn9TjHEWT7n(zphqHJi>UOMvTpOt;qbMA81~4y9Tx4mXoOrIDc2^zE+-adQS|FlKMDUmv>JnH9Ym;&>h*pA3*D*m11gV;x; z$9mxuD0DokmPu`4VhP7^4hXlx<2rrKa4=p^SHhrOii?m5?{f#`t?2dG1xgzk-<&kZ{u-3t;3&+AoBe%tF#60)cXo%rPD zyZ4d|X0?@QGQ8zYyQO{us8VAs$ovlxZ-1_E_5?RkLQ#O8X(6k1F3<#@?FnL}Z(DA4 z$g*;I>?%=N$GJ1x+2SB0s4DnOQoMQAP(yJmIEk7lX2mqbcr{_c$0QX{YCCUT%9&{m z-vf*{0c9HA>NR1u-)d_?*YI2P_82o57j@U<Qaj5Xpn`dLoRN#>zFT=R1 zjKQtco!`|T+%q$96~a;~CNn~tjg;DZXH0tb@1ZfD&Ziyrj9N`5Q4|DW`kKrn7&CkN zMJ5wpSw4dFIC79af|<2}6mzbk)fqbVs&Hx!S{-8Xk^LuAtVD`}=OU!v$jzd_pN_c= z{6-#1@?X|2k7;+=Y_l*ofh0Gaz<*r9*dBRwr41@IiGS%-7_ba8sU`^u3tDhrRNO7^-q9;nJ5VqCNP-oyz_Mw|R?Sl;bP{VfWv zBk~?pD6gREhMTewScL?OT$ER^LI>R6654U3cNF#sG>>iaID^x&Aic;hH&FkKga-DHuA(*lV5L*zwh8{T%`L?!2iso0MG-`F{0W|a zP>pJ=?F>-A-JgUl=M+8~kt+q-q-LI2V7JJNb!H<U6VxD z((=mBLkWo?LaeB+?rs^?Q~=I5=5s;-ej5@lSC^*0h~(K=1an+(u*`jyFD_XVNS*g| zj>-7~(RLkQLZcd&mwvHRUSg_g&|o<8jweCHZQaJVZ!SUZ-d|lIZO<|B3w@6ThyH9ek~uz0+Ya-umN0__=GTW9m?c`$|Gzy|K+WEEK&USm3R3HfFt`F^Dr+d?1uxy?ltaYG20fAL|O-=Hg$d$I9h{ zjVvpX{gqt2cxIPFl{dol1->=jIAVYf-rSVzhN3xlImn~76?4PW;A>52rXcFttW8XWtO_L^5)Cljp)6lGi1tKZBUHe{=7OuF)8sg}Skjrz5 zz13^XOs0dEA+(#_uQv4TT#l7|EI$ z!Xb@lVUrkiJg4;jqMlW@px5fbue-<2N{a;Qp?|LUmXjvWZ$B*I`%^GMh%Uh~(zTqo z*wALS>Cp*Y4bmE(V$Ema!%Ste?utt8u~|i4ScUFDyj+GD&UmSD;7Hzx!`!Urz&@K1emXT35@vg?>lq+Db~LT6h%4C&LCcBPnFlL4m}Bw4s;<1)Y=~;At;pk zhTc`vBZ=WMY?kS?yhVcO{@yb#9%^sACaw1*F>lnGUL`<8_^??dVfL=1EsFV!B^ggS zS>PyE`#zGmZLnDTo(|@&L^s3SB5E!)S+>2(jI*ZR&_m#irc}trdn=Y~r4L;OuA;#s z1`<;?Rbw2LUlYd|8YLBDNnjT;sF576s>U2!e(sImg@?IKgqIf;%?#@nPq0e!>qM|>gUrWB0P!j{%Wr9 z88j8pAVq}jq!T7j;}kfZ2)LL-W{-o8o5(_9`6)Gr2QG~+)g4AxB!4~3MDl`D0n&L9 zC`UPtZ;j8wWgP8LjX3z6=zG9+Kq{B;)$0Kb@DuA?J6Y{Ah?oOA@-^%zK+9gc;k}e- z`aGa}ki1%ctCe^vvMlYg_Z&7b_YjC+*p|$y2e#70fSBxjd}2!e+S`GCiSrfrWH3$x z8ZPQU0~^y1lQ3EbKyEvSv)%V#^1zSv<{~qs&rdy-&UeQDK|yTR>T*k1mdEFrP`yCK z6eblF;8mD=?k|-4p=!PcXo~zz*3%E@8aa;T%En)bQED$6`$9Sl?!iD34k$A=MV z+)lD(GeWX3kZoi?-?;eKn7`Y{0_t^IfP2~f>Kmo}dKYiOE5-u0mYVZFXy)V&s@4|9XSyApu$jo0s_sqee)2dq0+&z-n!Q2JP2G9=yb z77sb1*rN~!cRSCisgK;*PCWO35s(Qr08bonM44;1e4qho6Xk+@)5P-?+Hs~#$O3uzfe{^F3?jY$mU{^f|` zl9>mh#InLo8wZtHd4iLP8#R(GyFBAO$2LMoLar1v+kx`z&gvq3&gdb)C#deR;U1IC zmcR^bNyfr zX>z0Q>=kM4d1YyxWdqBp)$pk@H~rFX%^Rn$uv0 zfT%rYQnV6tJXKz+jFbsN3xiUybU^X!#i$a|&M7n60skIN!_!>5!n)$XUmq-f2+UTI=lUlf!avY|kf>t7t1iC-{wMZ~4_1tHA$1jDhN z2BkJ|6LoLu5C|39iy8-W(|o}q%~B$(zCE%1d^5T^+6NO!*At`?sAjBXuNuJOI!M@w zt}ZdB;2&kI`^xIi;O|K=Y97$xW&t+;n)n*seXc)pXNJ^N1v$rB@iBOAYt9dUI6R9D zdc#(}`)QHVAIhJ$XGAN(i0xd62p`|2vr5!*xfdtJ?p^bs)~ zj}YukbG~yw_O`J~WJ3i6&eoBtt(!kuG^WC$?=KJ+NP6+UV8B)oh!Bxa+>0{hydFD@ zX0u$X^b*w_5uXBc8;=AhG0v%&Qo-Z(o$$&DO*p`|qixYdD_nyDs|3|q4wm>L!Ac;~ zq#6gUzEYhXY;w*hBODtSG7|bcM0UvmrAUk^JQ0b1nU!d9!(i_fGSG1%X>)G8Sb(FR zGSc4t;D*QQTEyt0dU5@rtu+gK@DpH&C5_yk$Rahzf@>m89cxpYFETfMV%@>Cwc9b! zo;-8;R|F}eKZ1Y&W#nkh10L|-c+lTsWBJ}T|jRliEq|XO(P)HJcQ6? zAhHU^+P+6q0{hcx5}hN`WA({~S1k16pCuD6R0FW#o;ri|5#!Fy2sP}|VE=G^&-(Dd zVQRB3F#^95yTt=Ti?*N@la8YU7%V9M>HhU3`8(}A6gj@Bf>B1bu-!{e;(OgLUpMih z`QPPC!sli5Z8>+mWs3m2R}W9P;wh!%di6rnxj4A*5ucdoXRJrgriHP9fzI?Ny+CJ&;-zdY0GF#RjUD%$5$18pcm&z9Y)yl1J{5-&>2| zPHo66fdYxW4{BypUpYF~>}TH;GZiFS7pT9>y442_R=jBKOOe}|hyF;v3U%1xq)#sC zj@8hcsb8jY_i(*T*;??}xvI!%-6?LIr_tLW=RjN%su%fC&XXOV&>5-7yiZcy0hQnF zWl=6IZsmGC9?004)Va(Vy-}%hFc5Xm(-@+=RU+$_5Jb95F^nqrZhJ+2{b2BW5V#f< z;8v{xL5O{qFTa)Ct0auVG=kRW_k((2uE;vTR1QoZ0zx`S8_e zq$UP#@jeFPk#Q=aKZsqC)?K<^-llH_n9G2aA_45yO7awh`qc%pG>oa$pDRcZ=v}2T zX=e!_772+uDme(bKwnen&;cJu?3awN6Bu(;MqdEccohiE8p=8s)I26mtwM+Y_}IVb z>+*YsAnRwI$7b?41ZPT%vk@feOt~Nk$)AaZQLGL4I)D# zv!xpMqkUOxX{ix&Yzb1JP&ViK6}4GgJ#&poZT$(7 ziV-rYQavtXokxL2&|em*1gRf%1p7H8pbpth@y= zi)Ps5x|d)Dcga^IF=i*l!$sUDgDk6+JeuizfFk*jdFffLr4+cUn<kkZSdw+fm> zO%|s=TYK%}X z8iQhjPBWAzhs*O@F!45+&nVUr$q8{9yxY-vQ1^=k@}LpFTI&JkboRu9!VMe9 zvkhqxZ)0LR6v0W#KvkvY=LD~yK%AvX0^dns<))ylVyl(tB|3v-eWNhp9V)Jy8=Q+D zTzUjmQA9Rf-xD>ir{WNbaD8ND7+<#co*BNuZhvlwfoRd?kV$}Kk5zjzNB)J?_?kcv zky4^pR6@(N=iG;T|U)$60h0$vt}~sTgq3lC=Bzc4mdvv=8b!1ki6;8Ytyc2GrtP zogJ=X9w8#4gz6WcjzjUHpc6b@Ew!}#CkmCqyb|Aah1&9Epp_&OwWj^=iYL6ts+o3< zB57m;e8MfcBE{^XY5qS-a}J!IxB!Q9>3FKeqiZqbflQjY8}LxFKx>o`$6;6$2Lp>| zgFHID=CO8#v9*Im?Y8|;_TBD5N6954wVL=it)R97J9NlicK(&X{&Mj}bg57s_vV2N z<(NX|o=PDhH6w}La&{FM0m+(WV(X)-A6MplI>)jBU{ zt=~+p*_4Gi*X)!+7*m%vi|d%+x%A`Fw}BJGE$6C|%zxbHL8&o7SMy0KblB?Zws(eW z*D)GWp4s>Lt*|&0)(=-BW9wUYr&3}(QE-Fo;Fiuz@?%rX8vO@z9U?sHF3Yotdt+wDVi@2%+ndcDWCc$$NIWs|K}p1+>N*qHhi-RnlwIu@HbI-a_> zUPWf6!~b`_pJwd+{DhB$JMniGtHoCJ2LN_PuRWAPY&8r|!)~KjSW8D-E-N#cL=Kd(M&H8w`Rza>5i3 zkqeL1&39196NR6{oKb}M;uTd-&gFFSzEzVe``?Aec27~4HXQ|fJfuK zlfk#h0>KM>G0?2!ZYwgqA#udTLHYY-C>1BY{iNOw+6dg_ADT(enIBZZ`xmBC?wxe& zq_%^ZRR}k65||sT9(Zl>^q^Bo73ToshsJaSRIO3Wu*=m}5vqaowzDD4@)Cy4(^87+ zbx)1qmKDyLz9MPot9#Ey0iiAo28V?R3+R#;{Lg97mOeApnzs_tzD=1g-)#IF-m<(~ zQ(+165mbZwc6)j7r0aJ5uEr4AxTq8t;rY=(ogW_=h~!!)@d)QBEz_1@2LKHE`G*c5 z^y4`}%Bx=7P8G8{dG`B-#5G6WfStlwbrr#V9~z-L3A>S}D-YpeX`}n~S}DKd=qmUZ z@lnmixb&)sob~ZpE4b1M7`UYl4;}(%RS?^*TGlB~GJw6>g-8t~&zY~OPu}yPcaf1A z5=aNhFM_No?Q&Mx)+xYQJXC|`+}Opd#G(=g!4aBC^9AbUyy(XQ7X00{)`{C3OF2wp zN7R7Sjk7YH(7$kio>&9X5n`>_XEpGV{Bb0XeMk3fPiq+5<3@Pp&Xa!$f6ALPr=Ig~ z6~W7HMz9xzUrVa`T?Z&%jJ*I6w$P0-iOLM{AlXSs&cNkXrJi*6`FT(7w#}0+QogZi zqnsu}mSd(m6(p-p!#-gj>M~9ZR5$bRV|80P&&ZY(3HrWRY{&bY)cf8Lud9Q=O{%!# zI0u<3PM`qTWrFfq9FhMmQW&~01d~;%1`0KljyBC5A}_mOU|4`a+6@c4hY$QF{G&+f z<%4%wjuu^|r^T0YWwdkK7xJ49mvgfek*kA3Ad3U-ZbC<9^JHWNSeyT zq2XoHb<7-2r~?noGm(zds@{&zfSl~q!b%#4b+fR2@WBJeQhgKDxRr;;JlfjqIx79I zu-|wVY6jib1%bradX32~Zd8)wFcV})H}0c00C>ju+``$}`aji|$yKFEWCUw2s796# zl-v5J#&5rgSCgC5$5=VdzKm11!TKoNyZ14F^J{i4?5?^Ln8Eom($U!a)lrDwOxMz; zu{>Ly?ATF%<1w7_z7GFuG>btQfGI)0K1W56Zn@E}cDS(S{pf9Y$bZElvm7#CRJJ1# zEyWr=9{b6>VI%VFDrMPT$Gs%cpNOD>X@|s{BaKS=BC;k6&q z;A^5xVe>oSirdst%9Ffq_-QTJopXg&!8}@Mscswcyw@;ellbj!kgihN+#U4)P%4JW zGigdXj9o(QwA3W;|rV=RFRr0hm+MH^wIg6+%;cl>SGtG<+z-&XK2=4 zs)fU!CIx*mipOq29=tc{bW)>|GCs0{t3gW2?{MW5E{2h@BDqlC1y&)^)V*8L%q6!A z7H%HZ;D9s90!z#PS(5cVlRiDvG?@tdb zzIRD3*q84;uh>wp(Cp4BvIX*uf@?Ldn`awI>b-GG_YAdYewR&X8YSlUilml5bD~C&U8}Ao8k;JnP*@w693*y za7=gg=1y&aXlgJa&C1svLc$P|XT_>fBC5;jNTm~&8@}M9NyRK!vu4yf<&PP1hSQxV z3A)bUlroA92JWiU)@@|Ox@{KDFn(BSn$uX@!URYcPP2;i5y zXSbi*&W=`~KWOLlxeaF)%`Y4;C1guYwUuKY8y2FGxu{nr}6f9y!M zjBm@x7lBvs34+Mwp?ph=rP>4EZy&7bh>$UpRmr{Qp4JlOalbcE6e!`8u@w#1sm^2n zMGwVAz-)9XV{!Wat`SPDqpjQp``#5~ zEz^>H+u>xfnX6WW{xmyVB;@h>(42o$AqA-DrsTiK=sy%VJ}z~O(F^dz-E#x_?FPzE zkhs=Sy2to4OaGvg?hrFem+ej5Dv9R}6u{%wrHFBEpU&+Q-ZqK4$!ne~jK+Td?c9U` zppJ0whboj-dU=0AznZ?GwN5`4ug|6zYX|GWgb>|s;>*i^IG!OR*~RL2Ktkqncm|>}i)gClN^~)N%`O(J$uH#ng zYkk?DsZt~6)XO^d$GZd;kD>1)jrI0^2-168a_${${vwwmM!rhevm7q&aAVE5&KXIo zZcPI_Q!Czc;DiD8XU2pujM^OGmpOgx;1%tyvO{I2*$5JDuQaM2%-3&B*b&w06-^y- zhT0BxJIjUWtpL7d?b~cq9vMkN?|N?%YIA*JraEM)N89@rH$9ReC0@=d*xD{T1#6ow zBFD<$`V!jCd?luQ0hMKpp-x-f=Ifga=zJR*sbKDS1^-P<|NJ6Nl(Q?u-fd@?h`~vb z3hEA2fPIkGHU)|7G@kDaJZ45Uz1pz3W+lyH1XMLEzVl8n$H6+@g`K>yG98*ng_+WI)5Uu4_2xAtL$|sZvTQ z8rbDwf>vgCWct1kIqBR=YOhjEtc4P`bh6Vfu2+yw8Y%C_&fCjyW0zhjO@L$;1q=W7 z)Eo@t`^Z1==eO7CJ*lpw%@jB31`0Q?jy$Egw6>b=2N(V)K_k497(=Rn*A(r^=9pKf z(}_H)oBGmq(r_fhTSY5}w|y$@pGWx~@t z2$|X&fc(9`CLHD5PxMU{^7k0pz7*&ET4PxK=t?QNO5X}0jNY=<>ErAZlZMx$*Th1% z9-I)Aue9<#v-di2ls`6=`IlR5(|9A#1f( zYxk(gSglr2=dwe(YxE1`pdh+xdsT#}lEnOKT_G{Ce;||>QNRtt3r02q?zyVi&Fe+} zghQ)MvYmpNGKa0;v9t!69_w`YgMIu?oToc-xXdbR6+pli%h5fJ)zHM*CXNIb=MLt? zA|Rq}f4ortcU}@<*4THBoz4a(rq$5|?7rrL#e<6dB#%a|Uf`6M>g4gRbyV$|0Lb)& zAF1q-gw0-oWB}{C&JQ~;$auUh%)&CJWc__u+!u1dDH%4^YoMKk=D+LHM(HS>rul6f z6>|>Oc1bJ5A^6_@zV8ck?P5?lg0IDz{T!Dn=kNL3CL=_F58^=B(j`_|eP+4sQh$Hd z&HsS0_&?5pvWKm>$Tj}_F@cW^mnpPyV-W!1zDB+4jau^7RsPZ^`)x>eXj!^?1+A>Pa6j(Oihk~5;tUqMGXXA_bFmiwXzYkjTGkQ? zq>-pFP)_YM^0JVLWMUoY+<$6Wiy&FxE{u5oxh{-z%_7kk?BUv(@&k<@B)dpf42(t{ zC>{?B)pHGenkx@{y)zg^g(y<#X3ROkhfk_?(#Q|Kk>U&i-PD2frCtkaajFQzA zNnn!#=HGUG(fz#RPoY=~7mvW?R_C5XCqfax9INc+w5#d5Kc+iJ>Jd6~oTDWSKGlZK zT0&#UZw}L!Q~;t@W$n^d>DBybpMngyT6P<7iG&V3TRCKtyAZ+k%mxpGkI59a6Saq* z4pzS8Ueyt}wTURq3~5MtJZixaS#;B?h~{8XDA_Rfz0fYSII+*7ynzusd<(gPiGOXN zLfCnNteu5I@$d3Y&NsPaAzQh?rHe&S3aQ$KPoVlV10=gM%uTgnC(VZ6RXR_X%Qv6S zTww*$Up3EH=WnH$$z(GNt6aVS8s2?} z6RY4gy#QJv(#3G@G%i=KyBrLz(O8#;(iw z-1n1A@s|AdSj_ERMW4^!&?G+?g~H8~6J=n;3Wb-L@27O165!8T*z2H*+Ak=;x8@gA z2w12sNEz0ZW2o5Y|COo=co!~Yq89yl6&3U zRRy)%_GcWnO3hx+^OGVQvjZ<1Iaudo0wvygo|cxrO4CTd^pUJL@B@4jC_&3$oDi&3 zw#A3=Ll4is${sPk%MU+8!NSza4LDF<2v^+OP=h_l_65eur9#BMsjiq(( zLaAiLeK#IRY{$p1(`oKWMj$j~i8BnR*rg`TwJ3jWy&{CyDIJv0xIjuW#vTaEzn=?i zt$+N5mFa~ofs$|VYgtW+FjvK{h^c>>CRJdZZcqP`5>XDd-A*qV@h|*`Ogyv51;0n1 zPEomy2CXG71KCEm|BOzLM{FHE`jqlBfB|?GD~))GGp+*mc~LY!#6B+o4@U)(*E-8l zC0jWAG%VCH`elJvgnpeOqOk@h(g$Ttrp=b~SS>J1a1+e>4#gg`OM393|4duV5nEog z6BQT}@u9{PNtiy2?D^Wb*OeNBigJQAX`)LhKB?6cQmmh~U{A8Ok*pWIp1|#SCaAQkS`CAe5qdhq;)%!cs_NDWO?5yTmPH%4BC;zU>o?94 z$1mK~Hq<}d^S8SbGU$LoWaHX6p6(U(N~y!0fQG69%{q<@+o_=qzq(vUr(rC#fJ9R= zNZrp$?v2aTxXz7|A_|>tdTpb~ULHRi2EhR@{g9l6>@+GYrQCSo|`oMb3W4Kc=Kh&)DeX zf9fmqOIW(5p0iX>aG$v67h*kI-)=Y0MQRiuNm?3$8+dwFS`fc;fNGi#7Gw55H;R%a5UGO5GlanWG7ELj~ z&&Jzc1Wqr_?PC3>2@{{cl&VIjA2L}$uJ7tnU9D#}yU`3nW#-J$k$*O{O@%Hra!cvQ!%OrYl=RqF|C!OGNwhh{xRA;1Wd=Mm@%NTE51MP z*J6EKJTQ?`AoS9#qAo7SM2Sj?xQ6RvT9%GS_p(#r$ygu1u>MMW6l z7}O5fOwWa>*&(=9i3&1zYJv8ay1gu=fw``vjT?FZPr1IWJYu<{w@@Slw(gijSoOkI zDT>4$MQ9aTJreF1m?W;mkG!gWyp}eDMS~fX+Q?`zIx|#e&xe^Q_iyONK-I*XF}{VW+a>5xL^<&yP(``SHYGO;me~^3!ERDre~br4dFE!EYA84a}EG< zK&A2`En`=m1NV(tI8miILI`#X!a)=6gMY#lK)pLoHLmrWglby9)f?Ka{Mm85y3q7z zls-fij!ljrNd0hhyryb2SA~iV_%z9IKm`dCtnQ0|JIV>(dqWBD#&(9`QJI!SScfq# ze-67VmS(m%+RX%Sai}5*-!KO=Q=|+j>~ztv7yFIgkCM_N37ce=%n6!3msKnN?$g;V zB8VBTS2tnq^=jAonJ_O^%!8)4gD$$^7`xRIbYgEs@;)rzMJ&2j6A%EaVrv1L+zhFu z&x~cswRcSmc{{^ztGL)7>2CB?4r5KnU#k44ihO0P`VZdVnH03G`N&%%5BIX^>8trh zbxCzYm(D9rT%y%rz<`lXbcF?q84pFqFEJSnOeiVs`*p0Rt0};JR6K}P+W-aB`9QSDgYsJTcbZgN zw<6Pvkltc}gQyDEMr2lG(%P^dC9HI1L#hs}&Br`ic<)hPS&t4Wb-dMrj1z(ArfK3D zs!j#h%~lBzW>CklIS`~sL*V!mUm8?{U^99}K(4+}VGCc(QI6Ir5fs+|-uEnBfdZuf z8BWdIg!Fz7o;?2&uY$p^XYB|w?Gl(fPKn}3j4Pw(k_lz0;^=BtgK4 ziz4?Ju=sdAX^`L}Tl(z7F%e{`$9w|7dNii0r*4L%VI`t5sKVUT4w6>%|whNV_!OC@X;BOJ!%8+y4lA? z2MgRso!tKScuQ(Vefu;1q_ikuRZ$+;Ye!ik3p_K9w|S4GN&Ae2us0J0WB_DXw!yS< z_bDR2CFbLJ3t3?~0;a2v+Sb->WZ9uvYk}L$DwxSm6fWW4J3kWe#H7G;lB3v2AiTn` z!YT(vt>hparDrmYSA_Z>6Kw;Gro(dx%hX@F0YT6-3m)}X{%9t6Wl0F#F^7$nija)I zGBX4>;1=wUBV7RCyV@EkJ@YYqcTCG;`_IyTz9;3er2xrD-5;Nk-(cu8c;I`F72KN- zBbO}qHiKc+2#7`iL$Y6R5acE`MKA?w@FGXn32^G%?8JM<51CwFiv1FD8EeoL`j7&D40ZMOjfFKx*YrQ(PMQLNarYX3lum}=Juw!wgv z!=<_?1`=AB?OBb?T{NRFB!qfRrm?K8sLcp-SQ#aQ%)6PpBXWz?x@TlM7ef;90(=U`XiVPo%JuYkXyq zq%z<~!Xa%@S9f>gE6i%q%=1i=Q*byGJ6O{M(6hKbR<(EAoe*5n5%FYT+r7y24iTS9 zK=(Eio$Phw-{d#NuKF~^8?)@=xMIlN6Kz>ok?n_4f@O8A}Q$7A1`M=;lg8x>3 zD@td{XV%x7?bU1`O${bzs$vuj{7#!`)TO_>Fe6SX67LwU@|EcrjT!GBY42ShMT_1^ zwD^L^ndX_s*;@lFRfS(_R@(`nk+}}cwI5Wcky9S4mk_q5TuyfI2o8o8QJq_Q_`$ax zlqSpO4J<{}?ZY%R@O0SJsn}>#*2;n(nPGr+8$`0hx_3yI)dIm*^l37_EyukZvF!&lYu+sR-nkZ{U%Yza4SqwdlZ zsaMqPbLVKElR$7cqPxKErs_#)Y(j0Y$RYR9xa~ z)w=Jpwenx{*$MMrdxU5|T6w^Qg*+9@&tgr{BXZ0b0xl-`t&g0HG06*#CvXs=sttvF z&=r(WHLU^_a!L+CFXJDYj@jA#(iv`ACi)dwOyvY$yy^5#sKIaH(+*ay$HC(j(niS- zh1t!@=GfiidDQeI+SciHE~R{*NujL;$i3nooeR10@e%#!U#FEBIE7KlyPpH^48j^R zm-t!IOC8?s(@tCrfbT(}BOvg%5wXS`Y%iq{&%`zYB27I$?tLCQa4E+!!HUa8Gv-(( zGqme~ch5$vm{fJwN%K;2(jC8I3~zM4x5$MeeCsY8kA&PxXM!0!s>zqEi%p{|6u84IrUc6?^zgzc+7?zXJ3Lza(az9& zqr9HEr6rhWO$biC>1VqPmG=|LD-Nm20Wq2lT8sG#2P|g9OlEr|roTN+>0DNe98(dY zh~!GLIyo~q01{InG(}S@)Z_nZX{1H6JK!KB&mHyfeU`Kbr*jn=8_BBt7_1A*G>;p2 zE!uHPd6Fiqzr1rm1kVXptggxlRLdeCrGyo27C}q|u;dd=@cg3@(qod;Mb_NU#RMuc z=@q?)LNVTgNrAYc#d}WXv(!#-%ln3r;L278frPY7L+!>=#E3`wBuW_tZi@9=rb^+1 zSfG+E)G7pp1|Qpu4%i#b>xza>^IyMvx4um}B-WuyB7)5Z|8vQTbi|cgVy)083HR~K zr~|Np;%e4QJ~TPInM0sy$0LX!!FQS)o)Pg*&fD+OH_lydyT-cufkhect}*Z0JS0hJESG?%`4yh`uzQ}y{i zo^1^U0hxlS(Y3R{Q)IG#m>XY@gd`ay$ReQ@PY7LFf}tcz za09hVsEb{NFj?imyk#CYgZ6aGA$|#e=IMO13)+60KS93%!B~9f2RvW3gSnCs#-COV zW@&C+sQ@MRc(3tEQ6^xlSFJd>cR+m}QUw~;mxR$J-^ER$ZY|;HpndYcfL4pD$&dU# zONuKsVt13_Hr>>xj!7NQfK}a9GG)GaSLqWo0u_`+nCERrBAufO0q^NRW8lj>RRxD+ z*&w7Hwk)@+cweUh?)lxt>gygISC5vLpI%E7KdN-}kIhkD%e;xT)dIy^3YT90yhGKp zC{xoS?);tFp#Ez`ccwGkpvoLoQ4SJ(EsrlZQVe3+H#%k8J3N(krT0$jLqeNKq{Lgo zos+S6q|q&V9KJ{60l1poX7M`|CyB`4CLY3ciuc;U5>qFQ(h)=T1LgtJoEyCm@IEjj zHmCTWYBgPXT*PE-Xob47L!#;@8xWpV+vp>k2T|&i9$e4Jy+$6jCxD&A&5riqFrHM3 z;l_XA;tOK4vhG@ZK7PzL5~?oJ+m`spum|}o-a1Rq z?$?0NNXWc^C0KyLK%|OM;?`-3{-_&VMl`4GmKgD)aZ<{k$)~E0D&EhqmEGD3Q=1$h22X{ zqy+^H$o*jCn3+g`Qd8LsMK!mQyq#dV;6e1E>lDdWd8?M1!BX)1p}lk^noT> z6GN5#aeA%)Y`5h_sLA(xJa!ZXA&$RvHhrJUeUd;W?`zeL%QfM2ig(>ZaZa*9&{Z)1 zFacAfr0c*%1lHa?cbq+#lRG}UIZVRyw!DehiRy5EkaArNN?fI35DxjJEyh_{M~5Z1 zhGNdDi=)mnZEBd*U4t=iE$ravjc8@F$1-eo7h@JzG2JS~J!ZRfRik*?dxn@~{Hd2R zdCHBb+^c=W@0H&)BqX@%`mdGtgYo<<0-KJsMo*w9RS%McJr5C9)K-RT%)|r%9c*}* zVhXwJ#yS|^Db)@Sqi&n0nKlaCli(#hPG*6%6Nz-kH?@w&UpK!pRo8EoJ^s^3l9 z0Z=Suq;37)ecV{Vf@`Uc&E>f0@WeuPN#Ih~Z(o67Q=ut+sVT>o4q--%O3_cg-VI_v z2E@~S=ps!-%;jPd#ATGxGePV3#yCKm#+V@kIsrr-pI?4{xzhb;A1;`ip%YPv=d_>m z1~pv4h$vqky7mfPXPIJdJR$_4(w%+*sT5ojhFZ(+T<~Z`y83Nicskk8%B7HMWoX;s z-rUY1@mGfKSC7~wna4l*W}>RA>c;b*V6R{K(-AFRdX)oU{aZ{|(o4w@Ven?L;(l4h z%MH5nB20=JKCpRw>`1$p@YPrxZPIpp_4g&_8dPbi%28C-F-Js&8Fx3(eg+%(Z_?lF zj|zs6qW`K6MJeHf{>qysk;LWc3F;2}RLMs3munBoYEPN5l9TZgt)pw-HL4}zdDwik ziy>u^eR7qSbN9m!=LH~bh=(wA#%6%Fqh^b^nIT2p>2U?3w+Ky-Og^1r%fyWG zy**tZI^^Ts$D)}6p|$Rvz1hjZlW=TaeAE74hys&18b|9KI5xY)*1nkcv~EyaUX4eyQl6^K3j7$<*@Z&BmpIJt0E`B4A|1Ol-7blyer?^OeTRxk zn$8lL%3*pE4n0%LIAm)+vdehH%keS5>#_C(3_2(0mCDj^PaB|mmG#7oC7xUv%I5VH z1gHYn%ezTIV-7^R>7vjfuGX|KK|j^|OB)3B!`kRPYm^NW7Vc3NU1+TFQK-<`Xw|bS zKu3Bde8LM#BfL)kz)(MEViuIn1!=@NYf19j)hPOvEu88Y`GS^@1;D653Z==T^W`4lqI&_X_8^g42o znVqfM^ev8U>rY%qYvrGYaAKrd!Xkp+c?NdCr>L0UIFlr`4zI~}3!tp?>Fk{Bt%I;r z|I%XS{f6kjiV=3?XkWcD@}tkQ{1_ZnTB9L!HT%YlrZ_cuFtegx=1w}R@<6?>0jM_M zx;(LX1fqefs7-OsczM_K1|gAE3OZe|q?UzFc);ox|Hd*l_27a*aNK66#?rwt!xN~Y zYlrY+wEt-@sF}<`xwg>=(s)x_Ge z+WuNZ=N5vfWxFF`YvC%#{INjTnc5W?hX*pI2?x!hZVGltcLfsDp9K)#vu}oy9LOy3 z5WDo>awy55*3tLy?woM^SNn|Ca+SWXZGg2Mw)e_}re4$+66rK2)iSA%N3XhA$dL4n zd3JByD}|OduOdtbPRD0|H}R<9584a(_o7HxF zhn1Q^9!=ErQW8PmnRJ2eRC22pIFx5|WZ7DbV>Utv0iZgf7zkSbJW9b}L@v3*>?!N7 z$EVkv@oyB<78wdqXY}59jrU>wEbgAclrNlTZnV38Va#U5piYOpMc#W>>vPi|L4hE$ zi)^X>j?AzN#epBYQ$GlbXzX2EZo_gj6i6x~>@H!RR11Az)Ll>HA&+x;bZ6I`4a1bH zof1{vX-jP@-=Kz3Rq`V~3&i_KNuI0WzpDIV!Sj5CLrQP6zx^E;J?5OiSZZE}Fl+Xv z2=SPe8;s!+sb^IbK|r)Uqr(8wgXv$+fxp%^(R?rzqSp^yz?t>4qAP6rSsn^j|3%|Q zOkIO1Xg=BtZ3&BlGnCM+o3>vq4d({GWh^ERGMp2#lt9fO$@Oq`a$(}?_rIVGM3+Id!DX@PVv+|03S8Ur<#%+aeI zUpaJl`&8+7q@KvEgCoSEm6f8kr62mmtX7-WUKXx{*}=}O4IH-JH6LkH|hbZ$ZAq}*i<2Mv

    C8rHw*O%Bkl$Pm(x*zmGcf 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 + +#define IF_USE_EXTERNPHY_LIB 0 +#if (1 == IF_USE_EXTERNPHY_LIB) +#include "phy.h" +#endif + +#ifndef ENET_RXBUF_NUM +#define ENET_RXBUF_NUM 5U /*!< ethernet Rx DMA descriptor number */ +#endif + +#ifndef ENET_TXBUF_NUM +#define ENET_TXBUF_NUM 5U /*!< ethernet Tx DMA descriptor number */ +#endif + +#ifndef ENET_RXBUF_SIZE +#define ENET_RXBUF_SIZE ENET_MAX_FRAME_SIZE /*!< ethernet receive buffer size */ +#endif + +#ifndef ENET_TXBUF_SIZE +#define ENET_TXBUF_SIZE ENET_MAX_FRAME_SIZE /*!< ethernet transmit buffer size */ +#endif + +/* #define USE_DELAY */ + +#ifndef _PHY_H_ +#define DP83848 0 +#define LAN8700 1 +#define PHY_TYPE DP83848 + +#define PHY_ADDRESS ((uint16_t)1U) /*!< phy address determined by the hardware */ + +/* PHY read write timeouts */ +#define PHY_READ_TO ((uint32_t)0x0004FFFFU) /*!< PHY read timeout */ +#define PHY_WRITE_TO ((uint32_t)0x0004FFFFU) /*!< PHY write timeout */ + +/* PHY delay */ +#define PHY_RESETDELAY ((uint32_t)0x008FFFFFU) /*!< PHY reset delay */ +#define PHY_CONFIGDELAY ((uint32_t)0x00FFFFFFU) /*!< PHY configure delay */ + +/* PHY register address */ +#define PHY_REG_BCR 0U /*!< tranceiver basic control register */ +#define PHY_REG_BSR 1U /*!< tranceiver basic status register */ + +/* PHY basic control register */ +#define PHY_RESET ((uint16_t)0x8000) /*!< PHY reset */ +#define PHY_LOOPBACK ((uint16_t)0x4000) /*!< enable phy loop-back mode */ +#define PHY_FULLDUPLEX_100M ((uint16_t)0x2100) /*!< configure speed to 100 Mbit/s and the full-duplex mode */ +#define PHY_HALFDUPLEX_100M ((uint16_t)0x2000) /*!< configure speed to 100 Mbit/s and the half-duplex mode */ +#define PHY_FULLDUPLEX_10M ((uint16_t)0x0100) /*!< configure speed to 10 Mbit/s and the full-duplex mode */ +#define PHY_HALFDUPLEX_10M ((uint16_t)0x0000) /*!< configure speed to 10 Mbit/s and the half-duplex mode */ +#define PHY_AUTONEGOTIATION ((uint16_t)0x1000) /*!< enable auto-negotiation function */ +#define PHY_RESTART_AUTONEGOTIATION ((uint16_t)0x0200) /*!< restart auto-negotiation function */ +#define PHY_POWERDOWN ((uint16_t)0x0800) /*!< enable the power down mode */ +#define PHY_ISOLATE ((uint16_t)0x0400) /*!< isolate PHY from MII */ + +/* PHY basic status register */ +#define PHY_AUTONEGO_COMPLETE ((uint16_t)0x0020) /*!< auto-negotioation process completed */ +#define PHY_LINKED_STATUS ((uint16_t)0x0004) /*!< valid link established */ +#define PHY_JABBER_DETECTION ((uint16_t)0x0002) /*!< jabber condition detected */ + +#if(PHY_TYPE == LAN8700) +#define PHY_SR 31U /*!< tranceiver status register */ +#define PHY_SPEED_STATUS ((uint16_t)0x0004) /*!< configured information of speed: 10Mbit/s */ +#define PHY_DUPLEX_STATUS ((uint16_t)0x0010) /*!< configured information of duplex: full-duplex */ +#elif(PHY_TYPE == DP83848) +#define PHY_SR 16U /*!< tranceiver status register */ +#define PHY_SPEED_STATUS ((uint16_t)0x0002) /*!< configured information of speed: 10Mbit/s */ +#define PHY_DUPLEX_STATUS ((uint16_t)0x0004) /*!< configured information of duplex: full-duplex */ +#endif /* PHY_TYPE */ + +#endif /* _PHY_H_ */ + + +/* ENET definitions */ +#define ENET ENET_BASE + +/* registers definitions */ +#define ENET_MAC_CFG REG32((ENET) + 0x00U) /*!< ethernet MAC configuration register */ +#define ENET_MAC_FRMF REG32((ENET) + 0x04U) /*!< ethernet MAC frame filter register */ +#define ENET_MAC_HLH REG32((ENET) + 0x08U) /*!< ethernet MAC hash list high register */ +#define ENET_MAC_HLL REG32((ENET) + 0x0CU) /*!< ethernet MAC hash list low register */ +#define ENET_MAC_PHY_CTL REG32((ENET) + 0x10U) /*!< ethernet MAC PHY control register */ +#define ENET_MAC_PHY_DATA REG32((ENET) + 0x14U) /*!< ethernet MAC PHY data register */ +#define ENET_MAC_FCTL REG32((ENET) + 0x18U) /*!< ethernet MAC flow control register */ +#define ENET_MAC_FCTH REG32((ENET) + 0x1080U) /*!< ethernet MAC flow control threshold register */ +#define ENET_MAC_VLT REG32((ENET) + 0x1CU) /*!< ethernet MAC VLAN tag register */ +#define ENET_MAC_RWFF REG32((ENET) + 0x28U) /*!< ethernet MAC remote wakeup frame filter register */ +#define ENET_MAC_WUM REG32((ENET) + 0x2CU) /*!< ethernet MAC wakeup management register */ +#define ENET_MAC_INTF REG32((ENET) + 0x38U) /*!< ethernet MAC interrupt flag register */ +#define ENET_MAC_INTMSK REG32((ENET) + 0x3CU) /*!< ethernet MAC interrupt mask register */ +#define ENET_MAC_ADDR0H REG32((ENET) + 0x40U) /*!< ethernet MAC address 0 high register */ +#define ENET_MAC_ADDR0L REG32((ENET) + 0x44U) /*!< ethernet MAC address 0 low register */ +#define ENET_MAC_ADDR1H REG32((ENET) + 0x48U) /*!< ethernet MAC address 1 high register */ +#define ENET_MAC_ADDR1L REG32((ENET) + 0x4CU) /*!< ethernet MAC address 1 low register */ +#define ENET_MAC_ADDT2H REG32((ENET) + 0x50U) /*!< ethernet MAC address 2 high register */ +#define ENET_MAC_ADDR2L REG32((ENET) + 0x54U) /*!< ethernet MAC address 2 low register */ +#define ENET_MAC_ADDR3H REG32((ENET) + 0x58U) /*!< ethernet MAC address 3 high register */ +#define ENET_MAC_ADDR3L REG32((ENET) + 0x5CU) /*!< ethernet MAC address 3 low register */ + +#define ENET_MSC_CTL REG32((ENET) + 0x100U) /*!< ethernet MSC control register */ +#define ENET_MSC_RINTF REG32((ENET) + 0x104U) /*!< ethernet MSC receive interrupt flag register */ +#define ENET_MSC_TINTF REG32((ENET) + 0x108U) /*!< ethernet MSC transmit interrupt flag register */ +#define ENET_MSC_RINTMSK REG32((ENET) + 0x10CU) /*!< ethernet MSC receive interrupt mask register */ +#define ENET_MSC_TINTMSK REG32((ENET) + 0x110U) /*!< ethernet MSC transmit interrupt mask register */ +#define ENET_MSC_SCCNT REG32((ENET) + 0x14CU) /*!< ethernet MSC transmitted good frames after a single collision counter register */ +#define ENET_MSC_MSCCNT REG32((ENET) + 0x150U) /*!< ethernet MSC transmitted good frames after more than a single collision counter register */ +#define ENET_MSC_TGFCNT REG32((ENET) + 0x168U) /*!< ethernet MSC transmitted good frames counter register */ +#define ENET_MSC_RFCECNT REG32((ENET) + 0x194U) /*!< ethernet MSC received frames with CRC error counter register */ +#define ENET_MSC_RFAECNT REG32((ENET) + 0x198U) /*!< ethernet MSC received frames with alignment error counter register */ +#define ENET_MSC_RGUFCNT REG32((ENET) + 0x1C4U) /*!< ethernet MSC received good unicast frames counter register */ + +#define ENET_PTP_TSCTL REG32((ENET) + 0x700U) /*!< ethernet PTP time stamp control register */ +#define ENET_PTP_SSINC REG32((ENET) + 0x704U) /*!< ethernet PTP subsecond increment register */ +#define ENET_PTP_TSH REG32((ENET) + 0x708U) /*!< ethernet PTP time stamp high register */ +#define ENET_PTP_TSL REG32((ENET) + 0x70CU) /*!< ethernet PTP time stamp low register */ +#define ENET_PTP_TSUH REG32((ENET) + 0x710U) /*!< ethernet PTP time stamp update high register */ +#define ENET_PTP_TSUL REG32((ENET) + 0x714U) /*!< ethernet PTP time stamp update low register */ +#define ENET_PTP_TSADDEND REG32((ENET) + 0x718U) /*!< ethernet PTP time stamp addend register */ +#define ENET_PTP_ETH REG32((ENET) + 0x71CU) /*!< ethernet PTP expected time high register */ +#define ENET_PTP_ETL REG32((ENET) + 0x720U) /*!< ethernet PTP expected time low register */ + +#define ENET_DMA_BCTL REG32((ENET) + 0x1000U) /*!< ethernet DMA bus control register */ +#define ENET_DMA_TPEN REG32((ENET) + 0x1004U) /*!< ethernet DMA transmit poll enable register */ +#define ENET_DMA_RPEN REG32((ENET) + 0x1008U) /*!< ethernet DMA receive poll enable register */ +#define ENET_DMA_RDTADDR REG32((ENET) + 0x100CU) /*!< ethernet DMA receive descriptor table address register */ +#define ENET_DMA_TDTADDR REG32((ENET) + 0x1010U) /*!< ethernet DMA transmit descriptor table address register */ +#define ENET_DMA_STAT REG32((ENET) + 0x1014U) /*!< ethernet DMA status register */ +#define ENET_DMA_CTL REG32((ENET) + 0x1018U) /*!< ethernet DMA control register */ +#define ENET_DMA_INTEN REG32((ENET) + 0x101CU) /*!< ethernet DMA interrupt enable register */ +#define ENET_DMA_MFBOCNT REG32((ENET) + 0x1020U) /*!< ethernet DMA missed frame and buffer overflow counter register */ +#define ENET_DMA_CTDADDR REG32((ENET) + 0x1048U) /*!< ethernet DMA current transmit descriptor address register */ +#define ENET_DMA_CRDADDR REG32((ENET) + 0x104CU) /*!< ethernet DMA current receive descriptor address register */ +#define ENET_DMA_CTBADDR REG32((ENET) + 0x1050U) /*!< ethernet DMA current transmit buffer address register */ +#define ENET_DMA_CRBADDR REG32((ENET) + 0x1054U) /*!< ethernet DMA current receive buffer address register */ + +/* bits definitions */ +/* ENET_MAC_CFG */ +#define ENET_MAC_CFG_REN BIT(2) /*!< receiver enable */ +#define ENET_MAC_CFG_TEN BIT(3) /*!< transmitter enable */ +#define ENET_MAC_CFG_DFC BIT(4) /*!< defferal check */ +#define ENET_MAC_CFG_BOL BITS(5,6) /*!< back-off limit */ +#define ENET_MAC_CFG_APCD BIT(7) /*!< automatic pad/CRC drop */ +#define ENET_MAC_CFG_RTD BIT(9) /*!< retry disable */ +#define ENET_MAC_CFG_IPFCO BIT(10) /*!< IP frame checksum offload */ +#define ENET_MAC_CFG_DPM BIT(11) /*!< duplex mode */ +#define ENET_MAC_CFG_LBM BIT(12) /*!< loopback mode */ +#define ENET_MAC_CFG_ROD BIT(13) /*!< receive own disable */ +#define ENET_MAC_CFG_SPD BIT(14) /*!< fast eneternet speed */ +#define ENET_MAC_CFG_CSD BIT(16) /*!< carrier sense disable */ +#define ENET_MAC_CFG_IGBS BITS(17,19) /*!< inter-frame gap bit selection */ +#define ENET_MAC_CFG_JBD BIT(22) /*!< jabber disable */ +#define ENET_MAC_CFG_WDD BIT(23) /*!< watchdog disable */ + +/* ENET_MAC_FRMF */ +#define ENET_MAC_FRMF_PM BIT(0) /*!< promiscuous mode */ +#define ENET_MAC_FRMF_HUF BIT(1) /*!< hash unicast filter */ +#define ENET_MAC_FRMF_HMF BIT(2) /*!< hash multicast filter */ +#define ENET_MAC_FRMF_DAIFLT BIT(3) /*!< destination address inverse filtering enable */ +#define ENET_MAC_FRMF_MFD BIT(4) /*!< multicast filter disable */ +#define ENET_MAC_FRMF_BFRMD BIT(5) /*!< broadcast frame disable */ +#define ENET_MAC_FRMF_PCFRM BITS(6,7) /*!< pass control frames */ +#define ENET_MAC_FRMF_SAIFLT BIT(8) /*!< source address inverse filtering */ +#define ENET_MAC_FRMF_SAFLT BIT(9) /*!< source address filter */ +#define ENET_MAC_FRMF_HPFLT BIT(10) /*!< hash or perfect filter */ +#define ENET_MAC_FRMF_FAR BIT(31) /*!< frames all receive */ + +/* ENET_MAC_HLH */ +#define ENET_MAC_HLH_HLH BITS(0,31) /*!< hash list high */ + +/* ENET_MAC_HLL */ +#define ENET_MAC_HLL_HLL BITS(0,31) /*!< hash list low */ + +/* ENET_MAC_PHY_CTL */ +#define ENET_MAC_PHY_CTL_PB BIT(0) /*!< PHY busy */ +#define ENET_MAC_PHY_CTL_PW BIT(1) /*!< PHY write */ +#define ENET_MAC_PHY_CTL_CLR BITS(2,4) /*!< clock range */ +#define ENET_MAC_PHY_CTL_PR BITS(6,10) /*!< PHY register */ +#define ENET_MAC_PHY_CTL_PA BITS(11,15) /*!< PHY address */ + +/* ENET_MAC_PHY_DATA */ +#define ENET_MAC_PHY_DATA_PD BITS(0,15) /*!< PHY data */ + +/* ENET_MAC_FCTL */ +#define ENET_MAC_FCTL_FLCBBKPA BIT(0) /*!< flow control busy(in full duplex mode)/backpressure activate(in half duplex mode) */ +#define ENET_MAC_FCTL_TFCEN BIT(1) /*!< transmit flow control enable */ +#define ENET_MAC_FCTL_RFCEN BIT(2) /*!< receive flow control enable */ +#define ENET_MAC_FCTL_UPFDT BIT(3) /*!< unicast pause frame detect */ +#define ENET_MAC_FCTL_PLTS BITS(4,5) /*!< pause low threshold */ +#define ENET_MAC_FCTL_DZQP BIT(7) /*!< disable zero-quanta pause */ +#define ENET_MAC_FCTL_PTM BITS(16,31) /*!< pause time */ + +/* ENET_MAC_FCTH */ +#define ENET_MAC_FCTH_RFA BITS(0,2) /*!< threshold of active flow control */ +#define ENET_MAC_FCTH_RFD BITS(4,6) /*!< threshold of deactive flow control */ + +/* ENET_MAC_VLT */ +#define ENET_MAC_VLT_VLTI BITS(0,15) /*!< VLAN tag identifier(for receive frames) */ +#define ENET_MAC_VLT_VLTC BIT(16) /*!< 12-bit VLAN tag comparison */ + +/* ENET_MAC_RWFF */ +#define ENET_MAC_RWFF_DATA BITS(0,31) /*!< wakeup frame filter register data */ + +/* ENET_MAC_WUM */ +#define ENET_MAC_WUM_PWD BIT(0) /*!< power down */ +#define ENET_MAC_WUM_MPEN BIT(1) /*!< magic packet enable */ +#define ENET_MAC_WUM_WFEN BIT(2) /*!< wakeup frame enable */ +#define ENET_MAC_WUM_MPKR BIT(5) /*!< magic packet received */ +#define ENET_MAC_WUM_WUFR BIT(6) /*!< wakeup frame received */ +#define ENET_MAC_WUM_GU BIT(9) /*!< global unicast */ +#define ENET_MAC_WUM_WUFFRPR BIT(31) /*!< wakeup frame filter register pointer reset */ + +/* ENET_MAC_INTF */ +#define ENET_MAC_INTF_WUM BIT(3) /*!< WUM status */ +#define ENET_MAC_INTF_MSC BIT(4) /*!< MSC status */ +#define ENET_MAC_INTF_MSCR BIT(5) /*!< MSC receive status */ +#define ENET_MAC_INTF_MSCT BIT(6) /*!< MSC transmit status */ +#define ENET_MAC_INTF_TMST BIT(9) /*!< timestamp trigger status */ + +/* ENET_MAC_INTMSK */ +#define ENET_MAC_INTMSK_WUMIM BIT(3) /*!< WUM interrupt mask */ +#define ENET_MAC_INTMSK_TMSTIM BIT(9) /*!< timestamp trigger interrupt mask */ + +/* ENET_MAC_ADDR0H */ +#define ENET_MAC_ADDR0H_ADDR0H BITS(0,15) /*!< MAC address0 high */ +#define ENET_MAC_ADDR0H_MO BIT(31) /*!< always read 1 and must be kept */ + +/* ENET_MAC_ADDR0L */ +#define ENET_MAC_ADDR0L_ADDR0L BITS(0,31) /*!< MAC address0 low */ + +/* ENET_MAC_ADDR1H */ +#define ENET_MAC_ADDR1H_ADDR1H BITS(0,15) /*!< MAC address1 high */ +#define ENET_MAC_ADDR1H_MB BITS(24,29) /*!< mask byte */ +#define ENET_MAC_ADDR1H_SAF BIT(30) /*!< source address filter */ +#define ENET_MAC_ADDR1H_AFE BIT(31) /*!< address filter enable */ + +/* ENET_MAC_ADDR1L */ +#define ENET_MAC_ADDR1L_ADDR1L BITS(0,31) /*!< MAC address1 low */ + +/* ENET_MAC_ADDR2H */ +#define ENET_MAC_ADDR2H_ADDR2H BITS(0,15) /*!< MAC address2 high */ +#define ENET_MAC_ADDR2H_MB BITS(24,29) /*!< mask byte */ +#define ENET_MAC_ADDR2H_SAF BIT(30) /*!< source address filter */ +#define ENET_MAC_ADDR2H_AFE BIT(31) /*!< address filter enable */ + +/* ENET_MAC_ADDR2L */ +#define ENET_MAC_ADDR2L_ADDR2L BITS(0,31) /*!< MAC address2 low */ + +/* ENET_MAC_ADDR3H */ +#define ENET_MAC_ADDR3H_ADDR3H BITS(0,15) /*!< MAC address3 high */ +#define ENET_MAC_ADDR3H_MB BITS(24,29) /*!< mask byte */ +#define ENET_MAC_ADDR3H_SAF BIT(30) /*!< source address filter */ +#define ENET_MAC_ADDR3H_AFE BIT(31) /*!< address filter enable */ + +/* ENET_MAC_ADDR3L */ +#define ENET_MAC_ADDR3L_ADDR3L BITS(0,31) /*!< MAC address3 low */ + +/* ENET_MSC_CTL */ +#define ENET_MSC_CTL_CTR BIT(0) /*!< counter reset */ +#define ENET_MSC_CTL_CTSR BIT(1) /*!< counter stop rollover */ +#define ENET_MSC_CTL_RTOR BIT(2) /*!< reset on read */ +#define ENET_MSC_CTL_MCFZ BIT(3) /*!< MSC counter freeze */ + +/* ENET_MSC_RINTF */ +#define ENET_MSC_RINTF_RFCE BIT(5) /*!< received frames CRC error */ +#define ENET_MSC_RINTF_RFAE BIT(6) /*!< received frames alignment error */ +#define ENET_MSC_RINTF_RGUF BIT(17) /*!< receive good unicast frames */ + +/* ENET_MSC_TINTF */ +#define ENET_MSC_TINTF_TGFSC BIT(14) /*!< transmitted good frames single collision */ +#define ENET_MSC_TINTF_TGFMSC BIT(15) /*!< transmitted good frames more single collision */ +#define ENET_MSC_TINTF_TGF BIT(21) /*!< transmitted good frames */ + +/* ENET_MSC_RINTMSK */ +#define ENET_MSC_RINTMSK_RFCEIM BIT(5) /*!< received frame CRC error interrupt mask */ +#define ENET_MSC_RINTMSK_RFAEIM BIT(6) /*!< received frames alignment error interrupt mask */ +#define ENET_MSC_RINTMSK_RGUFIM BIT(17) /*!< received good unicast frames interrupt mask */ + +/* ENET_MSC_TINTMSK */ +#define ENET_MSC_TINTMSK_TGFSCIM BIT(14) /*!< transmitted good frames single collision interrupt mask */ +#define ENET_MSC_TINTMSK_TGFMSCIM BIT(15) /*!< transmitted good frames more single collision interrupt mask */ +#define ENET_MSC_TINTMSK_TGFIM BIT(21) /*!< transmitted good frames interrupt mask */ + +/* ENET_MSC_SCCNT */ +#define ENET_MSC_SCCNT_SCC BITS(0,31) /*!< transmitted good frames single collision counter */ + +/* ENET_MSC_MSCCNT */ +#define ENET_MSC_MSCCNT_MSCC BITS(0,31) /*!< transmitted good frames more one single collision counter */ + +/* ENET_MSC_TGFCNT */ +#define ENET_MSC_TGFCNT_TGF BITS(0,31) /*!< transmitted good frames counter */ + +/* ENET_MSC_RFCECNT */ +#define ENET_MSC_RFCECNT_RFCER BITS(0,31) /*!< received frames with CRC error counter */ + +/* ENET_MSC_RFAECNT */ +#define ENET_MSC_RFAECNT_RFAER BITS(0,31) /*!< received frames alignment error counter */ + +/* ENET_MSC_RGUFCNT */ +#define ENET_MSC_RGUFCNT_RGUF BITS(0,31) /*!< received good unicast frames counter */ + +/* ENET_PTP_TSCTL */ +#define ENET_PTP_TSCTL_TMSEN BIT(0) /*!< timestamp enable */ +#define ENET_PTP_TSCTL_TMSFCU BIT(1) /*!< timestamp fine or coarse update */ +#define ENET_PTP_TSCTL_TMSSTI BIT(2) /*!< timestamp system time initialize */ +#define ENET_PTP_TSCTL_TMSSTU BIT(3) /*!< timestamp system time update */ +#define ENET_PTP_TSCTL_TMSITEN BIT(4) /*!< timestamp interrupt trigger enable */ +#define ENET_PTP_TSCTL_TMSARU BIT(5) /*!< timestamp addend register update */ + +/* ENET_PTP_SSINC */ +#define ENET_PTP_SSINC_STMSSI BITS(0,7) /*!< system time subsecond increment */ + +/* ENET_PTP_TSH */ +#define ENET_PTP_TSH_STMS BITS(0,31) /*!< system time second */ + +/* ENET_PTP_TSL */ +#define ENET_PTP_TSL_STMSS BITS(0,30) /*!< system time subseconds */ +#define ENET_PTP_TSL_STS BIT(31) /*!< system time sign */ + +/* ENET_PTP_TSUH */ +#define ENET_PTP_TSUH_TMSUS BITS(0,31) /*!< timestamp update seconds */ + +/* ENET_PTP_TSUL */ +#define ENET_PTP_TSUL_TMSUSS BITS(0,30) /*!< timestamp update subseconds */ +#define ENET_PTP_TSUL_TMSUPNS BIT(31) /*!< timestamp update positive or negative sign */ + +/* ENET_PTP_TSADDEND */ +#define ENET_PTP_TSADDEND_TMSA BITS(0,31) /*!< timestamp addend */ + +/* ENET_PTP_ETH */ +#define ENET_PTP_ETH_ETSH BITS(0,31) /*!< expected time high */ + +/* ENET_PTP_ETL */ +#define ENET_PTP_ETL_ETSL BITS(0,31) /*!< expected time low */ + +/* ENET_DMA_BCTL */ +#define ENET_DMA_BCTL_SWR BIT(0) /*!< software reset */ +#define ENET_DMA_BCTL_DAB BIT(1) /*!< DMA arbitration */ +#define ENET_DMA_BCTL_DPSL BITS(2,6) /*!< descriptor skip length */ +#define ENET_DMA_BCTL_PGBL BITS(8,13) /*!< programmable burst length */ +#define ENET_DMA_BCTL_RTPR BITS(14,15) /*!< RxDMA and TxDMA transfer priority ratio */ +#define ENET_DMA_BCTL_FB BIT(16) /*!< fixed Burst */ +#define ENET_DMA_BCTL_RXDP BITS(17,22) /*!< RxDMA PGBL */ +#define ENET_DMA_BCTL_UIP BIT(23) /*!< use independent PGBL */ +#define ENET_DMA_BCTL_FPBL BIT(24) /*!< four times PGBL mode */ +#define ENET_DMA_BCTL_AA BIT(25) /*!< address-aligned */ + +/* ENET_DMA_TPEN */ +#define ENET_DMA_TPEN_TPE BITS(0,31) /*!< transmit poll enable */ + +/* ENET_DMA_RPEN */ +#define ENET_DMA_RPEN_RPE BITS(0,31) /*!< receive poll enable */ + +/* ENET_DMA_RDTADDR */ +#define ENET_DMA_RDTADDR_SRT BITS(0,31) /*!< start address of receive table */ + +/* ENET_DMA_TDTADDR */ +#define ENET_DMA_TDTADDR_STT BITS(0,31) /*!< start address of transmit table */ + +/* ENET_DMA_STAT */ +#define ENET_DMA_STAT_TS BIT(0) /*!< transmit status */ +#define ENET_DMA_STAT_TPS BIT(1) /*!< transmit process stopped status */ +#define ENET_DMA_STAT_TBU BIT(2) /*!< transmit buffer unavailable status */ +#define ENET_DMA_STAT_TJT BIT(3) /*!< transmit jabber timeout status */ +#define ENET_DMA_STAT_RO BIT(4) /*!< receive overflow status */ +#define ENET_DMA_STAT_TU BIT(5) /*!< transmit underflow status */ +#define ENET_DMA_STAT_RS BIT(6) /*!< receive status */ +#define ENET_DMA_STAT_RBU BIT(7) /*!< receive buffer unavailable status */ +#define ENET_DMA_STAT_RPS BIT(8) /*!< receive process stopped status */ +#define ENET_DMA_STAT_RWT BIT(9) /*!< receive watchdog timeout status */ +#define ENET_DMA_STAT_ET BIT(10) /*!< early transmit status */ +#define ENET_DMA_STAT_FBE BIT(13) /*!< fatal bus error status */ +#define ENET_DMA_STAT_ER BIT(14) /*!< early receive status */ +#define ENET_DMA_STAT_AI BIT(15) /*!< abnormal interrupt summary */ +#define ENET_DMA_STAT_NI BIT(16) /*!< normal interrupt summary */ +#define ENET_DMA_STAT_RP BITS(17,19) /*!< receive process state */ +#define ENET_DMA_STAT_TP BITS(20,22) /*!< transmit process state */ +#define ENET_DMA_STAT_EB BITS(23,25) /*!< error bits status */ +#define ENET_DMA_STAT_MSC BIT(27) /*!< MSC status */ +#define ENET_DMA_STAT_WUM BIT(28) /*!< WUM status */ +#define ENET_DMA_STAT_TST BIT(29) /*!< timestamp trigger status */ + +/* ENET_DMA_CTL */ +#define ENET_DMA_CTL_SRE BIT(1) /*!< start/stop receive enable */ +#define ENET_DMA_CTL_OSF BIT(2) /*!< operate on second frame */ +#define ENET_DMA_CTL_RTHC BITS(3,4) /*!< receive threshold control */ +#define ENET_DMA_CTL_FUF BIT(6) /*!< forward undersized good frames */ +#define ENET_DMA_CTL_FERF BIT(7) /*!< forward error frames */ +#define ENET_DMA_CTL_STE BIT(13) /*!< start/stop transmission enable */ +#define ENET_DMA_CTL_TTHC BITS(14,16) /*!< transmit threshold control */ +#define ENET_DMA_CTL_FTF BIT(20) /*!< flush transmit FIFO */ +#define ENET_DMA_CTL_TSFD BIT(21) /*!< transmit store-and-forward */ +#define ENET_DMA_CTL_DAFRF BIT(24) /*!< disable flushing of received frames */ +#define ENET_DMA_CTL_RSFD BIT(25) /*!< receive store-and-forward */ +#define ENET_DMA_CTL_DTCERFD BIT(26) /*!< dropping of TCP/IP checksum error frames disable */ + +/* ENET_DMA_INTEN */ +#define ENET_DMA_INTEN_TIE BIT(0) /*!< transmit interrupt enable */ +#define ENET_DMA_INTEN_TPSIE BIT(1) /*!< transmit process stopped interrupt enable */ +#define ENET_DMA_INTEN_TBUIE BIT(2) /*!< transmit buffer unavailable interrupt enable */ +#define ENET_DMA_INTEN_TJTIE BIT(3) /*!< transmit jabber timeout interrupt enable */ +#define ENET_DMA_INTEN_ROIE BIT(4) /*!< receive overflow interrupt enable */ +#define ENET_DMA_INTEN_TUIE BIT(5) /*!< transmit underflow interrupt enable */ +#define ENET_DMA_INTEN_RIE BIT(6) /*!< receive interrupt enable */ +#define ENET_DMA_INTEN_RBUIE BIT(7) /*!< receive buffer unavailable interrupt enable */ +#define ENET_DMA_INTEN_RPSIE BIT(8) /*!< receive process stopped interrupt enable */ +#define ENET_DMA_INTEN_RWTIE BIT(9) /*!< receive watchdog timeout interrupt enable */ +#define ENET_DMA_INTEN_ETIE BIT(10) /*!< early transmit interrupt enable */ +#define ENET_DMA_INTEN_FBEIE BIT(13) /*!< fatal bus error interrupt enable */ +#define ENET_DMA_INTEN_ERIE BIT(14) /*!< early receive interrupt enable */ +#define ENET_DMA_INTEN_AIE BIT(15) /*!< abnormal interrupt summary enable */ +#define ENET_DMA_INTEN_NIE BIT(16) /*!< normal interrupt summary enable */ + +/* ENET_DMA_MFBOCNT */ +#define ENET_DMA_MFBOCNT_MSFC BITS(0,15) /*!< missed frames by the controller */ +#define ENET_DMA_MFBOCNT_OBMFC BIT(16) /* Overflow bit for missed frame counter */ +#define ENET_DMA_MFBOCNT_MSFA BITS(17,27) /*!< missed frames by the application */ +#define ENET_DMA_MFBOCNT_OBFOC BIT(28) /*!< Overflow bit for FIFO overflow counter */ + +/* ENET_DMA_CTDADDR */ +#define ENET_DMA_CTDADDR_TDAP BITS(0,31) /*!< transmit descriptor address pointer */ + +/* ENET_DMA_CRDADDR */ +#define ENET_DMA_CRDADDR_RDAP BITS(0,31) /*!< receive descriptor address pointer */ + +/* ENET_DMA_CTBADDR */ +#define ENET_DMA_CTBADDR_TBAP BITS(0,31) /*!< transmit buffer address pointer */ + +/* ENET_DMA_CRBADDR */ +#define ENET_DMA_CRBADDR_RBAP BITS(0,31) /*!< receive buffer address pointer */ + +/* ENET DMA Tx descriptor TDES0 */ +#define ENET_TDES0_DB BIT(0) /*!< deferred */ +#define ENET_TDES0_UFE BIT(1) /*!< underflow error */ +#define ENET_TDES0_EXD BIT(2) /*!< excessive deferral */ +#define ENET_TDES0_COCNT BITS(3,6) /*!< collision count */ +#define ENET_TDES0_VFRM BIT(7) /*!< VLAN frame */ +#define ENET_TDES0_ECO BIT(8) /*!< excessive collision */ +#define ENET_TDES0_LCO BIT(9) /*!< late collision */ +#define ENET_TDES0_NCA BIT(10) /*!< no carrier */ +#define ENET_TDES0_LCA BIT(11) /*!< loss of carrier */ +#define ENET_TDES0_IPPE BIT(12) /*!< IP payload error */ +#define ENET_TDES0_FRMF BIT(13) /*!< frame flushed */ +#define ENET_TDES0_JT BIT(14) /*!< jabber timeout */ +#define ENET_TDES0_ES BIT(15) /*!< error summary */ +#define ENET_TDES0_IPHE BIT(16) /*!< IP header error */ +#define ENET_TDES0_TTMSS BIT(17) /*!< transmit timestamp status */ +#define ENET_TDES0_TCHM BIT(20) /*!< the second address chained mode */ +#define ENET_TDES0_TERM BIT(21) /*!< transmit end of ring mode*/ +#define ENET_TDES0_CM BITS(22,23) /*!< checksum mode */ +#define ENET_TDES0_TTSEN BIT(25) /*!< transmit timestamp function enable */ +#define ENET_TDES0_DPAD BIT(26) /*!< disable adding pad */ +#define ENET_TDES0_DCRC BIT(27) /*!< disable CRC */ +#define ENET_TDES0_FSG BIT(28) /*!< first segment */ +#define ENET_TDES0_LSG BIT(29) /*!< last segment */ +#define ENET_TDES0_INTC BIT(30) /*!< interrupt on completion */ +#define ENET_TDES0_DAV BIT(31) /*!< DAV bit */ + +/* ENET DMA Tx descriptor TDES1 */ +#define ENET_TDES1_TB1S BITS(0,12) /*!< transmit buffer 1 size */ +#define ENET_TDES1_TB2S BITS(16,28) /*!< transmit buffer 2 size */ + +/* ENET DMA Tx descriptor TDES2 */ +#define ENET_TDES2_TB1AP BITS(0,31) /*!< transmit buffer 1 address pointer/transmit frame timestamp low 32-bit value */ + +/* ENET DMA Tx descriptor TDES3 */ +#define ENET_TDES3_TB2AP BITS(0,31) /*!< transmit buffer 2 address pointer (or next descriptor address) / transmit frame timestamp high 32-bit value */ + +/* ENET DMA Rx descriptor RDES0 */ +#define ENET_RDES0_PCERR BIT(0) /*!< payload checksum error */ +#define ENET_RDES0_CERR BIT(1) /*!< CRC error */ +#define ENET_RDES0_DBERR BIT(2) /*!< dribble bit error */ +#define ENET_RDES0_RERR BIT(3) /*!< receive error */ +#define ENET_RDES0_RWDT BIT(4) /*!< receive watchdog timeout */ +#define ENET_RDES0_FRMT BIT(5) /*!< frame type */ +#define ENET_RDES0_LCO BIT(6) /*!< late collision */ +#define ENET_RDES0_IPHERR BIT(7) /*!< IP frame header error */ +#define ENET_RDES0_LDES BIT(8) /*!< last descriptor */ +#define ENET_RDES0_FDES BIT(9) /*!< first descriptor */ +#define ENET_RDES0_VTAG BIT(10) /*!< VLAN tag */ +#define ENET_RDES0_OERR BIT(11) /*!< overflow Error */ +#define ENET_RDES0_LERR BIT(12) /*!< length error */ +#define ENET_RDES0_SAFF BIT(13) /*!< SA filter fail */ +#define ENET_RDES0_DERR BIT(14) /*!< descriptor error */ +#define ENET_RDES0_ERRS BIT(15) /*!< error summary */ +#define ENET_RDES0_FRML BITS(16,29) /*!< frame length */ +#define ENET_RDES0_DAFF BIT(30) /*!< destination address filter fail */ +#define ENET_RDES0_DAV BIT(31) /*!< descriptor available */ + +/* ENET DMA Rx descriptor RDES1 */ +#define ENET_RDES1_RB1S BITS(0,12) /*!< receive buffer 1 size */ +#define ENET_RDES1_RCHM BIT(14) /*!< receive chained mode for second address */ +#define ENET_RDES1_RERM BIT(15) /*!< receive end of ring mode*/ +#define ENET_RDES1_RB2S BITS(16,28) /*!< receive buffer 2 size */ +#define ENET_RDES1_DINTC BIT(31) /*!< disable interrupt on completion */ + +/* ENET DMA Rx descriptor RDES2 */ +#define ENET_RDES2_RB1AP BITS(0,31) /*!< receive buffer 1 address pointer / receive frame timestamp low 32-bit */ + +/* ENET DMA Rx descriptor RDES3 */ +#define ENET_RDES3_RB2AP BITS(0,31) /*!< receive buffer 2 address pointer (next descriptor address)/receive frame timestamp high 32-bit value */ + +/* constants definitions */ +/* define bit position and its register index offset */ +#define ENET_REGIDX_BIT(regidx, bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos)) +#define ENET_REG_VAL(periph) (REG32(ENET + ((uint32_t)(periph)>>6))) +#define ENET_BIT_POS(val) ((uint32_t)(val) & 0x1FU) + +/* ENET clock range judgement */ +#define ENET_RANGE(hclk, n, m) (((hclk) >= (n))&&((hclk) < (m))) + +/* define MAC address configuration and reference address */ +#define ENET_SET_MACADDRH(p) (((uint32_t)(p)[5] << 8) | (uint32_t)(p)[4]) +#define ENET_SET_MACADDRL(p) (((uint32_t)(p)[3] << 24) | ((uint32_t)(p)[2] << 16) | ((uint32_t)(p)[1] << 8) | (uint32_t)(p)[0]) +#define ENET_ADDRH_BASE ((ENET) + 0x40U) +#define ENET_ADDRL_BASE ((ENET) + 0x44U) +#define ENET_GET_MACADDR(offset, n) ((uint8_t)((REG32((ENET_ADDRL_BASE + (offset)) - (((n) / 4U) * 4U)) >> (8U * ((n) % 4U))) & 0xFFU)) + +/* register offset */ +#define MAC_FCTL_REG_OFFSET 0x0018U /*!< MAC flow control register offset */ +#define MAC_WUM_REG_OFFSET 0x002CU /*!< MAC wakeup management register offset */ +#define MAC_INTF_REG_OFFSET 0x0038U /*!< MAC interrupt flag register offset */ +#define MAC_INTMSK_REG_OFFSET 0x003CU /*!< MAC interrupt mask register offset */ + +#define MSC_RINTF_REG_OFFSET 0x0104U /*!< MSC receive interrupt flag register offset */ +#define MSC_TINTF_REG_OFFSET 0x0108U /*!< MSC transmit interrupt flag register offset */ +#define MSC_RINTMSK_REG_OFFSET 0x010CU /*!< MSC receive interrupt mask register offset */ +#define MSC_TINTMSK_REG_OFFSET 0x0110U /*!< MSC transmit interrupt mask register offset */ +#define MSC_SCCNT_REG_OFFSET 0x014CU /*!< MSC transmitted good frames after a single collision counter register offset */ +#define MSC_MSCCNT_REG_OFFSET 0x0150U /*!< MSC transmitted good frames after more than a single collision counter register offset */ +#define MSC_TGFCNT_REG_OFFSET 0x0168U /*!< MSC transmitted good frames counter register offset */ +#define MSC_RFCECNT_REG_OFFSET 0x0194U /*!< MSC received frames with CRC error counter register offset */ +#define MSC_RFAECNT_REG_OFFSET 0x0198U /*!< MSC received frames with alignment error counter register offset */ +#define MSC_RGUFCNT_REG_OFFSET 0x01C4U /*!< MSC received good unicast frames counter register offset */ + +#define DMA_STAT_REG_OFFSET 0x1014U /*!< DMA status register offset */ +#define DMA_INTEN_REG_OFFSET 0x101CU /*!< DMA interrupt enable register offset */ +#define DMA_TDTADDR_REG_OFFSET 0x1010U /*!< DMA transmit descriptor table address register offset */ +#define DMA_CTDADDR_REG_OFFSET 0x1048U /*!< DMA current transmit descriptor address register */ +#define DMA_CTBADDR_REG_OFFSET 0x1050U /*!< DMA current transmit buffer address register */ +#define DMA_RDTADDR_REG_OFFSET 0x100CU /*!< DMA receive descriptor table address register */ +#define DMA_CRDADDR_REG_OFFSET 0x104CU /*!< DMA current receive descriptor address register */ +#define DMA_CRBADDR_REG_OFFSET 0x1054U /*!< DMA current receive buffer address register */ + +/* ENET status flag get */ +typedef enum +{ + /* ENET_MAC_WUM register */ + ENET_MAC_FLAG_MPKR = ENET_REGIDX_BIT(MAC_WUM_REG_OFFSET, 5U), /*!< magic packet received flag */ + ENET_MAC_FLAG_WUFR = ENET_REGIDX_BIT(MAC_WUM_REG_OFFSET, 6U), /*!< wakeup frame received flag */ + /* ENET_MAC_FCTL register */ + ENET_MAC_FLAG_FLOWCONTROL = ENET_REGIDX_BIT(MAC_FCTL_REG_OFFSET, 0U), /*!< flow control status flag */ + /* ENET_MAC_INTF register */ + ENET_MAC_FLAG_WUM = ENET_REGIDX_BIT(MAC_INTF_REG_OFFSET, 3U), /*!< WUM status flag */ + ENET_MAC_FLAG_MSC = ENET_REGIDX_BIT(MAC_INTF_REG_OFFSET, 4U), /*!< MSC status flag */ + ENET_MAC_FLAG_MSCR = ENET_REGIDX_BIT(MAC_INTF_REG_OFFSET, 5U), /*!< MSC receive status flag */ + ENET_MAC_FLAG_MSCT = ENET_REGIDX_BIT(MAC_INTF_REG_OFFSET, 6U), /*!< MSC transmit status flag */ + ENET_MAC_FLAG_TMST = ENET_REGIDX_BIT(MAC_INTF_REG_OFFSET, 9U), /*!< timestamp trigger status flag */ + /* ENET_MSC_RINTF register */ + ENET_MSC_FLAG_RFCE = ENET_REGIDX_BIT(MSC_RINTF_REG_OFFSET, 5U), /*!< received frames CRC error flag */ + ENET_MSC_FLAG_RFAE = ENET_REGIDX_BIT(MSC_RINTF_REG_OFFSET, 6U), /*!< received frames alignment error flag */ + ENET_MSC_FLAG_RGUF = ENET_REGIDX_BIT(MSC_RINTF_REG_OFFSET, 17U), /*!< received good unicast frames flag */ + /* ENET_MSC_TINTF register */ + ENET_MSC_FLAG_TGFSC = ENET_REGIDX_BIT(MSC_TINTF_REG_OFFSET, 14U), /*!< transmitted good frames single collision flag */ + ENET_MSC_FLAG_TGFMSC = ENET_REGIDX_BIT(MSC_TINTF_REG_OFFSET, 15U), /*!< transmitted good frames more single collision flag */ + ENET_MSC_FLAG_TGF = ENET_REGIDX_BIT(MSC_TINTF_REG_OFFSET, 21U), /*!< transmitted good frames flag */ + /* ENET_DMA_STAT register */ + ENET_DMA_FLAG_TS = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 0U), /*!< transmit status flag */ + ENET_DMA_FLAG_TPS = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 1U), /*!< transmit process stopped status flag */ + ENET_DMA_FLAG_TBU = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 2U), /*!< transmit buffer unavailable status flag */ + ENET_DMA_FLAG_TJT = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 3U), /*!< transmit jabber timeout status flag */ + ENET_DMA_FLAG_RO = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 4U), /*!< receive overflow status flag */ + ENET_DMA_FLAG_TU = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 5U), /*!< transmit underflow status flag */ + ENET_DMA_FLAG_RS = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 6U), /*!< receive status flag */ + ENET_DMA_FLAG_RBU = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 7U), /*!< receive buffer unavailable status flag */ + ENET_DMA_FLAG_RPS = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 8U), /*!< receive process stopped status flag */ + ENET_DMA_FLAG_RWT = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 9U), /*!< receive watchdog timeout status flag */ + ENET_DMA_FLAG_ET = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 10U), /*!< early transmit status flag */ + ENET_DMA_FLAG_FBE = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 13U), /*!< fatal bus error status flag */ + ENET_DMA_FLAG_ER = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 14U), /*!< early receive status flag */ + ENET_DMA_FLAG_AI = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 15U), /*!< abnormal interrupt summary flag */ + ENET_DMA_FLAG_NI = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 16U), /*!< normal interrupt summary flag */ + ENET_DMA_FLAG_EB_DMA_ERROR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 23U), /*!< error during data transfer by RxDMA/TxDMA flag */ + ENET_DMA_FLAG_EB_TRANSFER_ERROR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 24U), /*!< error during write/read transfer flag */ + ENET_DMA_FLAG_EB_ACCESS_ERROR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 25U), /*!< error during data buffer/descriptor access flag */ + ENET_DMA_FLAG_MSC = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 27U), /*!< MSC status flag */ + ENET_DMA_FLAG_WUM = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 28U), /*!< WUM status flag */ + ENET_DMA_FLAG_TST = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 29U), /*!< timestamp trigger status flag */ +}enet_flag_enum; + +/* ENET stutus flag clear */ +typedef enum +{ + /* ENET_DMA_STAT register */ + ENET_DMA_FLAG_TS_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 0U), /*!< transmit status flag */ + ENET_DMA_FLAG_TPS_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 1U), /*!< transmit process stopped status flag */ + ENET_DMA_FLAG_TBU_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 2U), /*!< transmit buffer unavailable status flag */ + ENET_DMA_FLAG_TJT_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 3U), /*!< transmit jabber timeout status flag */ + ENET_DMA_FLAG_RO_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 4U), /*!< receive overflow status flag */ + ENET_DMA_FLAG_TU_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 5U), /*!< transmit underflow status flag */ + ENET_DMA_FLAG_RS_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 6U), /*!< receive status flag */ + ENET_DMA_FLAG_RBU_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 7U), /*!< receive buffer unavailable status flag */ + ENET_DMA_FLAG_RPS_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 8U), /*!< receive process stopped status flag */ + ENET_DMA_FLAG_RWT_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 9U), /*!< receive watchdog timeout status flag */ + ENET_DMA_FLAG_ET_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 10U), /*!< early transmit status flag */ + ENET_DMA_FLAG_FBE_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 13U), /*!< fatal bus error status flag */ + ENET_DMA_FLAG_ER_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 14U), /*!< early receive status flag */ + ENET_DMA_FLAG_AI_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 15U), /*!< abnormal interrupt summary flag */ + ENET_DMA_FLAG_NI_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 16U), /*!< normal interrupt summary flag */ +}enet_flag_clear_enum; + +/* ENET interrupt enable/disable */ +typedef enum +{ + /* ENET_MAC_INTMSK register */ + ENET_MAC_INT_WUMIM = ENET_REGIDX_BIT(MAC_INTMSK_REG_OFFSET, 3U), /*!< WUM interrupt mask */ + ENET_MAC_INT_TMSTIM = ENET_REGIDX_BIT(MAC_INTMSK_REG_OFFSET, 9U), /*!< timestamp trigger interrupt mask */ + /* ENET_MSC_RINTMSK register */ + ENET_MSC_INT_RFCEIM = ENET_REGIDX_BIT(MSC_RINTMSK_REG_OFFSET, 5U), /*!< received frame CRC error interrupt mask */ + ENET_MSC_INT_RFAEIM = ENET_REGIDX_BIT(MSC_RINTMSK_REG_OFFSET, 6U), /*!< received frames alignment error interrupt mask */ + ENET_MSC_INT_RGUFIM = ENET_REGIDX_BIT(MSC_RINTMSK_REG_OFFSET, 17U), /*!< received good unicast frames interrupt mask */ + /* ENET_MSC_TINTMSK register */ + ENET_MSC_INT_TGFSCIM = ENET_REGIDX_BIT(MSC_TINTMSK_REG_OFFSET, 14U), /*!< transmitted good frames single collision interrupt mask */ + ENET_MSC_INT_TGFMSCIM = ENET_REGIDX_BIT(MSC_TINTMSK_REG_OFFSET, 15U), /*!< transmitted good frames more single collision interrupt mask */ + ENET_MSC_INT_TGFIM = ENET_REGIDX_BIT(MSC_TINTMSK_REG_OFFSET, 21U), /*!< transmitted good frames interrupt mask */ + /* ENET_DMA_INTEN register */ + ENET_DMA_INT_TIE = ENET_REGIDX_BIT(DMA_INTEN_REG_OFFSET, 0U), /*!< transmit interrupt enable */ + ENET_DMA_INT_TPSIE = ENET_REGIDX_BIT(DMA_INTEN_REG_OFFSET, 1U), /*!< transmit process stopped interrupt enable */ + ENET_DMA_INT_TBUIE = ENET_REGIDX_BIT(DMA_INTEN_REG_OFFSET, 2U), /*!< transmit buffer unavailable interrupt enable */ + ENET_DMA_INT_TJTIE = ENET_REGIDX_BIT(DMA_INTEN_REG_OFFSET, 3U), /*!< transmit jabber timeout interrupt enable */ + ENET_DMA_INT_ROIE = ENET_REGIDX_BIT(DMA_INTEN_REG_OFFSET, 4U), /*!< receive overflow interrupt enable */ + ENET_DMA_INT_TUIE = ENET_REGIDX_BIT(DMA_INTEN_REG_OFFSET, 5U), /*!< transmit underflow interrupt enable */ + ENET_DMA_INT_RIE = ENET_REGIDX_BIT(DMA_INTEN_REG_OFFSET, 6U), /*!< receive interrupt enable */ + ENET_DMA_INT_RBUIE = ENET_REGIDX_BIT(DMA_INTEN_REG_OFFSET, 7U), /*!< receive buffer unavailable interrupt enable */ + ENET_DMA_INT_RPSIE = ENET_REGIDX_BIT(DMA_INTEN_REG_OFFSET, 8U), /*!< receive process stopped interrupt enable */ + ENET_DMA_INT_RWTIE = ENET_REGIDX_BIT(DMA_INTEN_REG_OFFSET, 9U), /*!< receive watchdog timeout interrupt enable */ + ENET_DMA_INT_ETIE = ENET_REGIDX_BIT(DMA_INTEN_REG_OFFSET, 10U), /*!< early transmit interrupt enable */ + ENET_DMA_INT_FBEIE = ENET_REGIDX_BIT(DMA_INTEN_REG_OFFSET, 13U), /*!< fatal bus error interrupt enable */ + ENET_DMA_INT_ERIE = ENET_REGIDX_BIT(DMA_INTEN_REG_OFFSET, 14U), /*!< early receive interrupt enable */ + ENET_DMA_INT_AIE = ENET_REGIDX_BIT(DMA_INTEN_REG_OFFSET, 15U), /*!< abnormal interrupt summary enable */ + ENET_DMA_INT_NIE = ENET_REGIDX_BIT(DMA_INTEN_REG_OFFSET, 16U), /*!< normal interrupt summary enable */ +}enet_int_enum; + +/* ENET interrupt flag get */ +typedef enum +{ + /* ENET_MAC_INTF register */ + ENET_MAC_INT_FLAG_WUM = ENET_REGIDX_BIT(MAC_INTF_REG_OFFSET, 3U), /*!< WUM status flag */ + ENET_MAC_INT_FLAG_MSC = ENET_REGIDX_BIT(MAC_INTF_REG_OFFSET, 4U), /*!< MSC status flag */ + ENET_MAC_INT_FLAG_MSCR = ENET_REGIDX_BIT(MAC_INTF_REG_OFFSET, 5U), /*!< MSC receive status flag */ + ENET_MAC_INT_FLAG_MSCT = ENET_REGIDX_BIT(MAC_INTF_REG_OFFSET, 6U), /*!< MSC transmit status flag */ + ENET_MAC_INT_FLAG_TMST = ENET_REGIDX_BIT(MAC_INTF_REG_OFFSET, 9U), /*!< timestamp trigger status flag */ + /* ENET_MSC_RINTF register */ + ENET_MSC_INT_FLAG_RFCE = ENET_REGIDX_BIT(MSC_RINTF_REG_OFFSET, 5U), /*!< received frames CRC error flag */ + ENET_MSC_INT_FLAG_RFAE = ENET_REGIDX_BIT(MSC_RINTF_REG_OFFSET, 6U), /*!< received frames alignment error flag */ + ENET_MSC_INT_FLAG_RGUF = ENET_REGIDX_BIT(MSC_RINTF_REG_OFFSET, 17U), /*!< received good unicast frames flag */ + /* ENET_MSC_TINTF register */ + ENET_MSC_INT_FLAG_TGFSC = ENET_REGIDX_BIT(MSC_TINTF_REG_OFFSET, 14U), /*!< transmitted good frames single collision flag */ + ENET_MSC_INT_FLAG_TGFMSC = ENET_REGIDX_BIT(MSC_TINTF_REG_OFFSET, 15U), /*!< transmitted good frames more single collision flag */ + ENET_MSC_INT_FLAG_TGF = ENET_REGIDX_BIT(MSC_TINTF_REG_OFFSET, 21U), /*!< transmitted good frames flag */ + /* ENET_DMA_STAT register */ + ENET_DMA_INT_FLAG_TS = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 0U), /*!< transmit status flag */ + ENET_DMA_INT_FLAG_TPS = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 1U), /*!< transmit process stopped status flag */ + ENET_DMA_INT_FLAG_TBU = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 2U), /*!< transmit buffer unavailable status flag */ + ENET_DMA_INT_FLAG_TJT = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 3U), /*!< transmit jabber timeout status flag */ + ENET_DMA_INT_FLAG_RO = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 4U), /*!< receive overflow status flag */ + ENET_DMA_INT_FLAG_TU = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 5U), /*!< transmit underflow status flag */ + ENET_DMA_INT_FLAG_RS = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 6U), /*!< receive status flag */ + ENET_DMA_INT_FLAG_RBU = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 7U), /*!< receive buffer unavailable status flag */ + ENET_DMA_INT_FLAG_RPS = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 8U), /*!< receive process stopped status flag */ + ENET_DMA_INT_FLAG_RWT = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 9U), /*!< receive watchdog timeout status flag */ + ENET_DMA_INT_FLAG_ET = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 10U), /*!< early transmit status flag */ + ENET_DMA_INT_FLAG_FBE = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 13U), /*!< fatal bus error status flag */ + ENET_DMA_INT_FLAG_ER = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 14U), /*!< early receive status flag */ + ENET_DMA_INT_FLAG_AI = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 15U), /*!< abnormal interrupt summary flag */ + ENET_DMA_INT_FLAG_NI = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 16U), /*!< normal interrupt summary flag */ + ENET_DMA_INT_FLAG_MSC = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 27U), /*!< MSC status flag */ + ENET_DMA_INT_FLAG_WUM = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 28U), /*!< WUM status flag */ + ENET_DMA_INT_FLAG_TST = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 29U), /*!< timestamp trigger status flag */ +}enet_int_flag_enum; + +/* ENET interrupt flag clear */ +typedef enum +{ + /* ENET_DMA_STAT register */ + ENET_DMA_INT_FLAG_TS_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 0U), /*!< transmit status flag */ + ENET_DMA_INT_FLAG_TPS_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 1U), /*!< transmit process stopped status flag */ + ENET_DMA_INT_FLAG_TBU_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 2U), /*!< transmit buffer unavailable status flag */ + ENET_DMA_INT_FLAG_TJT_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 3U), /*!< transmit jabber timeout status flag */ + ENET_DMA_INT_FLAG_RO_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 4U), /*!< receive overflow status flag */ + ENET_DMA_INT_FLAG_TU_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 5U), /*!< transmit underflow status flag */ + ENET_DMA_INT_FLAG_RS_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 6U), /*!< receive status flag */ + ENET_DMA_INT_FLAG_RBU_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 7U), /*!< receive buffer unavailable status flag */ + ENET_DMA_INT_FLAG_RPS_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 8U), /*!< receive process stopped status flag */ + ENET_DMA_INT_FLAG_RWT_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 9U), /*!< receive watchdog timeout status flag */ + ENET_DMA_INT_FLAG_ET_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 10U), /*!< early transmit status flag */ + ENET_DMA_INT_FLAG_FBE_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 13U), /*!< fatal bus error status flag */ + ENET_DMA_INT_FLAG_ER_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 14U), /*!< early receive status flag */ + ENET_DMA_INT_FLAG_AI_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 15U), /*!< abnormal interrupt summary flag */ + ENET_DMA_INT_FLAG_NI_CLR = ENET_REGIDX_BIT(DMA_STAT_REG_OFFSET, 16U), /*!< normal interrupt summary flag */ +}enet_int_flag_clear_enum; + +/* current RX/TX descriptor/buffer/descriptor table address get */ +typedef enum +{ + ENET_RX_DESC_TABLE = DMA_RDTADDR_REG_OFFSET, /*!< RX descriptor table */ + ENET_RX_CURRENT_DESC = DMA_CRDADDR_REG_OFFSET, /*!< current RX descriptor */ + ENET_RX_CURRENT_BUFFER = DMA_CRBADDR_REG_OFFSET, /*!< current RX buffer */ + ENET_TX_DESC_TABLE = DMA_TDTADDR_REG_OFFSET, /*!< TX descriptor table */ + ENET_TX_CURRENT_DESC = DMA_CTDADDR_REG_OFFSET, /*!< current TX descriptor */ + ENET_TX_CURRENT_BUFFER = DMA_CTBADDR_REG_OFFSET /*!< current TX buffer */ +}enet_desc_reg_enum; + +/* MAC statistics counter get */ +typedef enum +{ + ENET_MSC_TX_SCCNT = MSC_SCCNT_REG_OFFSET, /*!< MSC transmitted good frames after a single collision counter */ + ENET_MSC_TX_MSCCNT = MSC_MSCCNT_REG_OFFSET, /*!< MSC transmitted good frames after more than a single collision counter */ + ENET_MSC_TX_TGFCNT = MSC_TGFCNT_REG_OFFSET, /*!< MSC transmitted good frames counter */ + ENET_MSC_RX_RFCECNT = MSC_RFCECNT_REG_OFFSET, /*!< MSC received frames with CRC error counter */ + ENET_MSC_RX_RFAECNT = MSC_RFAECNT_REG_OFFSET, /*!< MSC received frames with alignment error counter */ + ENET_MSC_RX_RGUFCNT = MSC_RGUFCNT_REG_OFFSET /*!< MSC received good unicast frames counter */ +}enet_msc_counter_enum; + +/* function option, used for ENET initialization */ +typedef enum +{ + FORWARD_OPTION = BIT(0), /*!< configure the frame forward related parameters */ + DMABUS_OPTION = BIT(1), /*!< configure the DMA bus mode related parameters */ + DMA_MAXBURST_OPTION = BIT(2), /*!< configure the DMA max burst related parameters */ + DMA_ARBITRATION_OPTION = BIT(3), /*!< configure the DMA arbitration related parameters */ + STORE_OPTION = BIT(4), /*!< configure the store forward mode related parameters */ + DMA_OPTION = BIT(5), /*!< configure the DMA control related parameters */ + VLAN_OPTION = BIT(6), /*!< configure the VLAN tag related parameters */ + FLOWCTL_OPTION = BIT(7), /*!< configure the flow control related parameters */ + HASHH_OPTION = BIT(8), /*!< configure the hash list high 32-bit related parameters */ + HASHL_OPTION = BIT(9), /*!< configure the hash list low 32-bit related parameters */ + FILTER_OPTION = BIT(10), /*!< configure the frame filter control related parameters */ + HALFDUPLEX_OPTION = BIT(11), /*!< configure the halfduplex related parameters */ + TIMER_OPTION = BIT(12), /*!< configure the frame timer related parameters */ + INTERFRAMEGAP_OPTION = BIT(13), /*!< configure the inter frame gap related parameters */ +}enet_option_enum; + +/* phy mode and mac loopback configurations */ +typedef enum +{ + ENET_AUTO_NEGOTIATION = 0x01u, /*!< PHY auto negotiation */ + ENET_100M_FULLDUPLEX = (ENET_MAC_CFG_SPD | ENET_MAC_CFG_DPM), /*!< 100Mbit/s, full-duplex */ + ENET_100M_HALFDUPLEX = ENET_MAC_CFG_SPD , /*!< 100Mbit/s, half-duplex */ + ENET_10M_FULLDUPLEX = ENET_MAC_CFG_DPM, /*!< 10Mbit/s, full-duplex */ + ENET_10M_HALFDUPLEX = (uint32_t)0x00000000U, /*!< 10Mbit/s, half-duplex */ + ENET_LOOPBACKMODE = (ENET_MAC_CFG_LBM | ENET_MAC_CFG_DPM) /*!< MAC in loopback mode at the MII */ +}enet_mediamode_enum; + +/* IP frame checksum function */ +typedef enum +{ + ENET_NO_AUTOCHECKSUM = (uint32_t)0x00000000U, /*!< disable IP frame checksum function */ + ENET_AUTOCHECKSUM_DROP_FAILFRAMES = ENET_MAC_CFG_IPFCO, /*!< enable IP frame checksum function */ + ENET_AUTOCHECKSUM_ACCEPT_FAILFRAMES = (ENET_MAC_CFG_IPFCO|ENET_DMA_CTL_DTCERFD) /*!< enable IP frame checksum function, and the received frame + with only payload error but no other errors will not be dropped */ +}enet_chksumconf_enum; + +/* received frame filter function */ +typedef enum +{ + ENET_PROMISCUOUS_MODE = ENET_MAC_FRMF_PM, /*!< promiscuous mode enabled */ + ENET_RECEIVEALL = (int32_t)ENET_MAC_FRMF_FAR, /*!< all received frame are forwarded to application */ + ENET_BROADCAST_FRAMES_PASS = (uint32_t)0x00000000U, /*!< the address filters pass all received broadcast frames */ + ENET_BROADCAST_FRAMES_DROP = ENET_MAC_FRMF_BFRMD /*!< the address filters filter all incoming broadcast frames */ +}enet_frmrecept_enum; + +/* register group value get */ +typedef enum +{ + ALL_MAC_REG = 0, /*!< MAC register group */ + ALL_MSC_REG = 22, /*!< MSC register group */ + ALL_PTP_REG = 33, /*!< PTP register group */ + ALL_DMA_REG = 44, /*!< DMA register group */ +}enet_registers_type_enum; + +/* dma direction select */ +typedef enum +{ + ENET_DMA_TX = ENET_DMA_STAT_TP, /*!< DMA transmit direction */ + ENET_DMA_RX = ENET_DMA_STAT_RP /*!< DMA receive direction */ +}enet_dmadirection_enum; + +/* PHY operation direction select */ +typedef enum +{ + ENET_PHY_READ = (uint32_t)0x00000000, /*!< read PHY */ + ENET_PHY_WRITE = ENET_MAC_PHY_CTL_PW /*!< write PHY */ +}enet_phydirection_enum; + +/* register operation direction select */ +typedef enum +{ + ENET_REG_READ, /*!< read register */ + ENET_REG_WRITE /*!< write register */ +}enet_regdirection_enum; + +/* ENET MAC addresses */ +typedef enum +{ + ENET_MAC_ADDRESS0 = ((uint32_t)0x00000000), /*!< MAC address0 */ + ENET_MAC_ADDRESS1 = ((uint32_t)0x00000008), /*!< MAC address1 */ + ENET_MAC_ADDRESS2 = ((uint32_t)0x00000010), /*!< MAC address2 */ + ENET_MAC_ADDRESS3 = ((uint32_t)0x00000018) /*!< MAC address3 */ +}enet_macaddress_enum; + +/* descriptor information */ +typedef enum +{ + TXDESC_COLLISION_COUNT, /*!< the number of collisions occurred before the frame was transmitted */ + TXDESC_BUFFER_1_ADDR, /*!< transmit frame buffer 1 address */ + RXDESC_FRAME_LENGTH, /*!< the byte length of the received frame that was transferred to the buffer */ + RXDESC_BUFFER_1_SIZE, /*!< receive buffer 1 size */ + RXDESC_BUFFER_2_SIZE, /*!< receive buffer 2 size */ + RXDESC_BUFFER_1_ADDR /*!< receive frame buffer 1 address */ +}enet_descstate_enum; + +/* structure for initialization of the ENET */ +typedef struct +{ + uint32_t option_enable; /*!< select which function to configure */ + uint32_t forward_frame; /*!< frame forward related parameters */ + uint32_t dmabus_mode; /*!< DMA bus mode related parameters */ + uint32_t dma_maxburst; /*!< DMA max burst related parameters */ + uint32_t dma_arbitration; /*!< DMA Tx and Rx arbitration related parameters */ + uint32_t store_forward_mode; /*!< store forward mode related parameters */ + uint32_t dma_function; /*!< DMA control related parameters */ + uint32_t vlan_config; /*!< VLAN tag related parameters */ + uint32_t flow_control; /*!< flow control related parameters */ + uint32_t hashtable_high; /*!< hash list high 32-bit related parameters */ + uint32_t hashtable_low; /*!< hash list low 32-bit related parameters */ + uint32_t framesfilter_mode; /*!< frame filter control related parameters */ + uint32_t halfduplex_param; /*!< halfduplex related parameters */ + uint32_t timer_config; /*!< frame timer related parameters */ + uint32_t interframegap; /*!< inter frame gap related parameters */ +}enet_initpara_struct; + +/* structure for ENET DMA desciptors */ +typedef struct +{ + uint32_t status; /*!< status */ + uint32_t control_buffer_size; /*!< control and buffer1, buffer2 lengths */ + uint32_t buffer1_addr; /*!< buffer1 address pointer/timestamp low */ + uint32_t buffer2_next_desc_addr; /*!< buffer2 or next descriptor address pointer/timestamp high */ +} enet_descriptors_struct; + +/* structure of PTP system time */ +typedef struct +{ + uint32_t second; /*!< second of system time */ + uint32_t nanosecond; /*!< nanosecond of system time */ + uint32_t sign; /*!< sign of system time */ +}enet_ptp_systime_struct; + +/* mac_cfg register value */ +#define MAC_CFG_BOL(regval) (BITS(5,6) & ((uint32_t)(regval) << 5)) /*!< write value to ENET_MAC_CFG_BOL bit field */ +#define ENET_BACKOFFLIMIT_10 MAC_CFG_BOL(0) /*!< min (n, 10) */ +#define ENET_BACKOFFLIMIT_8 MAC_CFG_BOL(1) /*!< min (n, 8) */ +#define ENET_BACKOFFLIMIT_4 MAC_CFG_BOL(2) /*!< min (n, 4) */ +#define ENET_BACKOFFLIMIT_1 MAC_CFG_BOL(3) /*!< min (n, 1) */ + +#define MAC_CFG_IGBS(regval) (BITS(17,19) & ((uint32_t)(regval) << 17)) /*!< write value to ENET_MAC_CFG_IGBS bit field */ +#define ENET_INTERFRAMEGAP_96BIT MAC_CFG_IGBS(0) /*!< minimum 96 bit times */ +#define ENET_INTERFRAMEGAP_88BIT MAC_CFG_IGBS(1) /*!< minimum 88 bit times */ +#define ENET_INTERFRAMEGAP_80BIT MAC_CFG_IGBS(2) /*!< minimum 80 bit times */ +#define ENET_INTERFRAMEGAP_72BIT MAC_CFG_IGBS(3) /*!< minimum 72 bit times */ +#define ENET_INTERFRAMEGAP_64BIT MAC_CFG_IGBS(4) /*!< minimum 64 bit times */ +#define ENET_INTERFRAMEGAP_56BIT MAC_CFG_IGBS(5) /*!< minimum 56 bit times */ +#define ENET_INTERFRAMEGAP_48BIT MAC_CFG_IGBS(6) /*!< minimum 48 bit times */ +#define ENET_INTERFRAMEGAP_40BIT MAC_CFG_IGBS(7) /*!< minimum 40 bit times */ + +#define ENET_WATCHDOG_ENABLE ((uint32_t)0x00000000U) /*!< the MAC allows no more than 2048 bytes of the frame being received */ +#define ENET_WATCHDOG_DISABLE ENET_MAC_CFG_WDD /*!< the MAC disables the watchdog timer on the receiver, and can receive frames of up to 16384 bytes */ + +#define ENET_JABBER_ENABLE ((uint32_t)0x00000000U) /*!< the maximum transmission byte is 2048 */ +#define ENET_JABBER_DISABLE ENET_MAC_CFG_JBD /*!< the maximum transmission byte can be 16384 */ + +#define ENET_CARRIERSENSE_ENABLE ((uint32_t)0x00000000U) /*!< the MAC transmitter generates carrier sense error and aborts the transmission */ +#define ENET_CARRIERSENSE_DISABLE ENET_MAC_CFG_CSD /*!< the MAC transmitter ignores the MII CRS signal during frame transmission in half-duplex mode */ + +#define ENET_SPEEDMODE_10M ((uint32_t)0x00000000U) /*!< 10 Mbit/s */ +#define ENET_SPEEDMODE_100M ENET_MAC_CFG_SPD /*!< 100 Mbit/s */ + +#define ENET_RECEIVEOWN_ENABLE ((uint32_t)0x00000000U) /*!< the MAC receives all packets that are given by the PHY while transmitting */ +#define ENET_RECEIVEOWN_DISABLE ENET_MAC_CFG_ROD /*!< the MAC disables the reception of frames in half-duplex mode */ + +#define ENET_LOOPBACKMODE_ENABLE ENET_MAC_CFG_LBM /*!< the MAC operates in loopback mode at the MII */ +#define ENET_LOOPBACKMODE_DISABLE ((uint32_t)0x00000000U) /*!< the MAC operates in normal mode */ + +#define ENET_MODE_FULLDUPLEX ENET_MAC_CFG_DPM /*!< full-duplex mode enable */ +#define ENET_MODE_HALFDUPLEX ((uint32_t)0x00000000U) /*!< half-duplex mode enable */ + +#define ENET_CHECKSUMOFFLOAD_ENABLE ENET_MAC_CFG_IPFCO /*!< IP frame checksum offload function enabled for received IP frame */ +#define ENET_CHECKSUMOFFLOAD_DISABLE ((uint32_t)0x00000000U) /*!< the checksum offload function in the receiver is disabled */ + +#define ENET_RETRYTRANSMISSION_ENABLE ((uint32_t)0x00000000U) /*!< the MAC attempts retries up to 16 times based on the settings of BOL*/ +#define ENET_RETRYTRANSMISSION_DISABLE ENET_MAC_CFG_RTD /*!< the MAC attempts only 1 transmission */ + +#define ENET_AUTO_PADCRC_DROP_ENABLE ENET_MAC_CFG_APCD /*!< the MAC strips the Pad/FCS field on received frames */ +#define ENET_AUTO_PADCRC_DROP_DISABLE ((uint32_t)0x00000000U) /*!< the MAC forwards all received frames without modify it */ +#define ENET_AUTO_PADCRC_DROP ENET_MAC_CFG_APCD /*!< the function of the MAC strips the Pad/FCS field on received frames */ + +#define ENET_DEFERRALCHECK_ENABLE ENET_MAC_CFG_DFC /*!< the deferral check function is enabled in the MAC */ +#define ENET_DEFERRALCHECK_DISABLE ((uint32_t)0x00000000U) /*!< the deferral check function is disabled */ + +/* mac_frmf register value */ +#define MAC_FRMF_PCFRM(regval) (BITS(6,7) & ((uint32_t)(regval) << 6)) /*!< write value to ENET_MAC_FRMF_PCFRM bit field */ +#define ENET_PCFRM_PREVENT_ALL MAC_FRMF_PCFRM(0) /*!< MAC prevents all control frames from reaching the application */ +#define ENET_PCFRM_PREVENT_PAUSEFRAME MAC_FRMF_PCFRM(1) /*!< MAC only forwards all other control frames except pause control frame */ +#define ENET_PCFRM_FORWARD_ALL MAC_FRMF_PCFRM(2) /*!< MAC forwards all control frames to application even if they fail the address filter */ +#define ENET_PCFRM_FORWARD_FILTERED MAC_FRMF_PCFRM(3) /*!< MAC forwards control frames that only pass the address filter */ + +#define ENET_RX_FILTER_DISABLE ENET_MAC_FRMF_FAR /*!< all received frame are forwarded to application */ +#define ENET_RX_FILTER_ENABLE ((uint32_t)0x00000000U) /*!< only the frame passed the filter can be forwarded to application */ + +#define ENET_SRC_FILTER_NORMAL_ENABLE ENET_MAC_FRMF_SAFLT /*!< filter source address */ +#define ENET_SRC_FILTER_INVERSE_ENABLE (ENET_MAC_FRMF_SAFLT | ENET_MAC_FRMF_SAIFLT) /*!< inverse source address filtering result */ +#define ENET_SRC_FILTER_DISABLE ((uint32_t)0x00000000U) /*!< source address function in filter disable */ +#define ENET_SRC_FILTER ENET_MAC_FRMF_SAFLT /*!< filter source address function */ +#define ENET_SRC_FILTER_INVERSE ENET_MAC_FRMF_SAIFLT /*!< inverse source address filtering result function */ + +#define ENET_BROADCASTFRAMES_ENABLE ((uint32_t)0x00000000U) /*!< the address filters pass all received broadcast frames */ +#define ENET_BROADCASTFRAMES_DISABLE ENET_MAC_FRMF_BFRMD /*!< the address filters filter all incoming broadcast frames */ + +#define ENET_DEST_FILTER_INVERSE_ENABLE ENET_MAC_FRMF_DAIFLT /*!< inverse DA filtering result */ +#define ENET_DEST_FILTER_INVERSE_DISABLE ((uint32_t)0x00000000U) /*!< not inverse DA filtering result */ +#define ENET_DEST_FILTER_INVERSE ENET_MAC_FRMF_DAIFLT /*!< inverse DA filtering result function */ + +#define ENET_PROMISCUOUS_ENABLE ENET_MAC_FRMF_PM /*!< promiscuous mode enabled */ +#define ENET_PROMISCUOUS_DISABLE ((uint32_t)0x00000000U) /*!< promiscuous mode disabled */ + +#define ENET_MULTICAST_FILTER_HASH_OR_PERFECT (ENET_MAC_FRMF_HMF | ENET_MAC_FRMF_HPFLT) /*!< pass multicast frames that match either the perfect or the hash filtering */ +#define ENET_MULTICAST_FILTER_HASH ENET_MAC_FRMF_HMF /*!< pass multicast frames that match the hash filtering */ +#define ENET_MULTICAST_FILTER_PERFECT ((uint32_t)0x00000000U) /*!< pass multicast frames that match the perfect filtering */ +#define ENET_MULTICAST_FILTER_NONE ENET_MAC_FRMF_MFD /*!< all multicast frames are passed */ +#define ENET_MULTICAST_FILTER_PASS ENET_MAC_FRMF_MFD /*!< pass all multicast frames function */ +#define ENET_MULTICAST_FILTER_HASH_MODE ENET_MAC_FRMF_HMF /*!< HASH multicast filter function */ +#define ENET_FILTER_MODE_EITHER ENET_MAC_FRMF_HPFLT /*!< HASH or perfect filter function */ + +#define ENET_UNICAST_FILTER_EITHER (ENET_MAC_FRMF_HUF | ENET_MAC_FRMF_HPFLT) /*!< pass unicast frames that match either the perfect or the hash filtering */ +#define ENET_UNICAST_FILTER_HASH ENET_MAC_FRMF_HUF /*!< pass unicast frames that match the hash filtering */ +#define ENET_UNICAST_FILTER_PERFECT ((uint32_t)0x00000000U) /*!< pass unicast frames that match the perfect filtering */ +#define ENET_UNICAST_FILTER_HASH_MODE ENET_MAC_FRMF_HUF /*!< HASH unicast filter function */ + +/* mac_phy_ctl register value */ +#define MAC_PHY_CTL_CLR(regval) (BITS(2,4) & ((uint32_t)(regval) << 2)) /*!< write value to ENET_MAC_PHY_CTL_CLR bit field */ +#define ENET_MDC_HCLK_DIV42 MAC_PHY_CTL_CLR(0) /*!< HCLK:60-100 MHz; MDC clock= HCLK/42 */ +#define ENET_MDC_HCLK_DIV62 MAC_PHY_CTL_CLR(1) /*!< HCLK:100-120 MHz; MDC clock= HCLK/62 */ +#define ENET_MDC_HCLK_DIV16 MAC_PHY_CTL_CLR(2) /*!< HCLK:20-35 MHz; MDC clock= HCLK/16 */ +#define ENET_MDC_HCLK_DIV26 MAC_PHY_CTL_CLR(3) /*!< HCLK:35-60 MHz; MDC clock= HCLK/26 */ + +#define MAC_PHY_CTL_PR(regval) (BITS(6,10) & ((uint32_t)(regval) << 6)) /*!< write value to ENET_MAC_PHY_CTL_PR bit field */ + +#define MAC_PHY_CTL_PA(regval) (BITS(11,15) & ((uint32_t)(regval) << 11)) /*!< write value to ENET_MAC_PHY_CTL_PA bit field */ + +/* mac_phy_data register value */ +#define MAC_PHY_DATA_PD(regval) (BITS(0,15) & ((uint32_t)(regval) << 0)) /*!< write value to ENET_MAC_PHY_DATA_PD bit field */ + +/* mac_fctl register value */ +#define MAC_FCTL_PLTS(regval) (BITS(4,5) & ((uint32_t)(regval) << 4)) /*!< write value to ENET_MAC_FCTL_PLTS bit field */ +#define ENET_PAUSETIME_MINUS4 MAC_FCTL_PLTS(0) /*!< pause time minus 4 slot times */ +#define ENET_PAUSETIME_MINUS28 MAC_FCTL_PLTS(1) /*!< pause time minus 28 slot times */ +#define ENET_PAUSETIME_MINUS144 MAC_FCTL_PLTS(2) /*!< pause time minus 144 slot times */ +#define ENET_PAUSETIME_MINUS256 MAC_FCTL_PLTS(3) /*!< pause time minus 256 slot times */ + +#define ENET_ZERO_QUANTA_PAUSE_ENABLE ((uint32_t)0x00000000U) /*!< enable the automatic zero-quanta generation function */ +#define ENET_ZERO_QUANTA_PAUSE_DISABLE ENET_MAC_FCTL_DZQP /*!< disable the automatic zero-quanta generation function */ +#define ENET_ZERO_QUANTA_PAUSE ENET_MAC_FCTL_DZQP /*!< the automatic zero-quanta generation function */ + +#define ENET_MAC0_AND_UNIQUE_ADDRESS_PAUSEDETECT ENET_MAC_FCTL_UPFDT /*!< besides the unique multicast address, MAC also use the MAC0 address to detect pause frame */ +#define ENET_UNIQUE_PAUSEDETECT ((uint32_t)0x00000000U) /*!< only the unique multicast address for pause frame which is specified in IEEE802.3 can be detected */ + +#define ENET_RX_FLOWCONTROL_ENABLE ENET_MAC_FCTL_RFCEN /*!< enable decoding function for the received pause frame and process it */ +#define ENET_RX_FLOWCONTROL_DISABLE ((uint32_t)0x00000000U) /*!< decode function for pause frame is disabled */ +#define ENET_RX_FLOWCONTROL ENET_MAC_FCTL_RFCEN /*!< decoding function for the received pause frame and process it */ + +#define ENET_TX_FLOWCONTROL_ENABLE ENET_MAC_FCTL_TFCEN /*!< enable the flow control operation in the MAC */ +#define ENET_TX_FLOWCONTROL_DISABLE ((uint32_t)0x00000000U) /*!< disable the flow control operation in the MAC */ +#define ENET_TX_FLOWCONTROL ENET_MAC_FCTL_TFCEN /*!< the flow control operation in the MAC */ + +#define ENET_BACK_PRESSURE_ENABLE ENET_MAC_FCTL_FLCBBKPA /*!< enable the back pressure operation in the MAC */ +#define ENET_BACK_PRESSURE_DISABLE ((uint32_t)0x00000000U) /*!< disable the back pressure operation in the MAC */ +#define ENET_BACK_PRESSURE ENET_MAC_FCTL_FLCBBKPA /*!< the back pressure operation in the MAC */ + +#define MAC_FCTL_PTM(regval) (BITS(16,31) & ((uint32_t)(regval) << 16)) /*!< write value to ENET_MAC_FCTL_PTM bit field */ +/* mac_vlt register value */ +#define MAC_VLT_VLTI(regval) (BITS(0,15) & ((uint32_t)(regval) << 0)) /*!< write value to ENET_MAC_VLT_VLTI bit field */ + +#define ENET_VLANTAGCOMPARISON_12BIT ENET_MAC_VLT_VLTC /*!< only low 12 bits of the VLAN tag are used for comparison */ +#define ENET_VLANTAGCOMPARISON_16BIT ((uint32_t)0x00000000U) /*!< all 16 bits of the VLAN tag are used for comparison */ + +/* mac_wum register value */ +#define ENET_WUM_FLAG_WUFFRPR ENET_MAC_WUM_WUFFRPR /*!< wakeup frame filter register poniter reset */ +#define ENET_WUM_FLAG_WUFR ENET_MAC_WUM_WUFR /*!< wakeup frame received */ +#define ENET_WUM_FLAG_MPKR ENET_MAC_WUM_MPKR /*!< magic packet received */ +#define ENET_WUM_POWER_DOWN ENET_MAC_WUM_PWD /*!< power down mode */ +#define ENET_WUM_MAGIC_PACKET_FRAME ENET_MAC_WUM_MPEN /*!< enable a wakeup event due to magic packet reception */ +#define ENET_WUM_WAKE_UP_FRAME ENET_MAC_WUM_WFEN /*!< enable a wakeup event due to wakeup frame reception */ +#define ENET_WUM_GLOBAL_UNICAST ENET_MAC_WUM_GU /*!< any received unicast frame passed filter is considered to be a wakeup frame */ + +/* mac_addr0h register value */ +#define MAC_ADDR0H_ADDR0H(regval) (BITS(0,15) & ((uint32_t)(regval) << 0)) /*!< write value to ENET_MAC_ADDR0H_ADDR0H bit field */ + +/* mac_addrxh register value, x = 1,2,3 */ +#define MAC_ADDR123H_ADDR123H(regval) (BITS(0,15) & ((uint32_t)(regval) << 0)) /*!< write value to ENET_MAC_ADDRxH_ADDRxH(x=1,2,3) bit field */ + +#define ENET_ADDRESS_MASK_BYTE0 BIT(24) /*!< low register bits [7:0] */ +#define ENET_ADDRESS_MASK_BYTE1 BIT(25) /*!< low register bits [15:8] */ +#define ENET_ADDRESS_MASK_BYTE2 BIT(26) /*!< low register bits [23:16] */ +#define ENET_ADDRESS_MASK_BYTE3 BIT(27) /*!< low register bits [31:24] */ +#define ENET_ADDRESS_MASK_BYTE4 BIT(28) /*!< high register bits [7:0] */ +#define ENET_ADDRESS_MASK_BYTE5 BIT(29) /*!< high register bits [15:8] */ + +#define ENET_ADDRESS_FILTER_SA BIT(30) /*!< use MAC address[47:0] is to compare with the SA fields of the received frame */ +#define ENET_ADDRESS_FILTER_DA ((uint32_t)0x00000000) /*!< use MAC address[47:0] is to compare with the DA fields of the received frame */ + +/* mac_fcth register value */ +#define MAC_FCTH_RFA(regval) ((BITS(0,2) & ((uint32_t)(regval) << 0))<<8) /*!< write value to ENET_MAC_FCTH_RFA bit field */ +#define ENET_ACTIVE_THRESHOLD_256BYTES MAC_FCTH_RFA(0) /*!< threshold level is 256 bytes */ +#define ENET_ACTIVE_THRESHOLD_512BYTES MAC_FCTH_RFA(1) /*!< threshold level is 512 bytes */ +#define ENET_ACTIVE_THRESHOLD_768BYTES MAC_FCTH_RFA(2) /*!< threshold level is 768 bytes */ +#define ENET_ACTIVE_THRESHOLD_1024BYTES MAC_FCTH_RFA(3) /*!< threshold level is 1024 bytes */ +#define ENET_ACTIVE_THRESHOLD_1280BYTES MAC_FCTH_RFA(4) /*!< threshold level is 1280 bytes */ +#define ENET_ACTIVE_THRESHOLD_1536BYTES MAC_FCTH_RFA(5) /*!< threshold level is 1536 bytes */ +#define ENET_ACTIVE_THRESHOLD_1792BYTES MAC_FCTH_RFA(6) /*!< threshold level is 1792 bytes */ + +#define MAC_FCTH_RFD(regval) ((BITS(4,6) & ((uint32_t)(regval) << 4))<<8) /*!< write value to ENET_MAC_FCTH_RFD bit field */ +#define ENET_DEACTIVE_THRESHOLD_256BYTES MAC_FCTH_RFD(0) /*!< threshold level is 256 bytes */ +#define ENET_DEACTIVE_THRESHOLD_512BYTES MAC_FCTH_RFD(1) /*!< threshold level is 512 bytes */ +#define ENET_DEACTIVE_THRESHOLD_768BYTES MAC_FCTH_RFD(2) /*!< threshold level is 768 bytes */ +#define ENET_DEACTIVE_THRESHOLD_1024BYTES MAC_FCTH_RFD(3) /*!< threshold level is 1024 bytes */ +#define ENET_DEACTIVE_THRESHOLD_1280BYTES MAC_FCTH_RFD(4) /*!< threshold level is 1280 bytes */ +#define ENET_DEACTIVE_THRESHOLD_1536BYTES MAC_FCTH_RFD(5) /*!< threshold level is 1536 bytes */ +#define ENET_DEACTIVE_THRESHOLD_1792BYTES MAC_FCTH_RFD(6) /*!< threshold level is 1792 bytes */ + +/* msc_ctl register value */ +#define ENET_MSC_COUNTER_STOP_ROLLOVER ENET_MSC_CTL_CTSR /*!< counter stop rollover */ +#define ENET_MSC_RESET_ON_READ ENET_MSC_CTL_RTOR /*!< reset on read */ +#define ENET_MSC_COUNTERS_FREEZE ENET_MSC_CTL_MCFZ /*!< MSC counter freeze */ + +/* ptp_tsctl register value */ +#define ENET_RXTX_TIMESTAMP ENET_PTP_TSCTL_TMSEN /*!< enable timestamp function for transmit and receive frames */ +#define ENET_PTP_TIMESTAMP_INT ENET_PTP_TSCTL_TMSITEN /*!< timestamp interrupt trigger enable */ + +/* ptp_ssinc register value */ +#define PTP_SSINC_STMSSI(regval) (BITS(0,7) & ((uint32_t)(regval) << 0)) /*!< write value to ENET_PTP_SSINC_STMSSI bit field */ + +/* ptp_tsl register value */ +#define GET_PTP_TSL_STMSS(regval) GET_BITS((uint32_t)(regval),0,30) /*!< get value of ENET_PTP_TSL_STMSS bit field */ + +#define ENET_PTP_TIME_POSITIVE ((uint32_t)0x00000000) /*!< time value is positive */ +#define ENET_PTP_TIME_NEGATIVE ENET_PTP_TSL_STS /*!< time value is negative */ + +#define GET_PTP_TSL_STS(regval) (((regval) & BIT(31)) >> (31U)) /*!< get value of ENET_PTP_TSL_STS bit field */ + +/* ptp_tsul register value */ +#define PTP_TSUL_TMSUSS(regval) (BITS(0,30) & ((uint32_t)(regval) << 0)) /*!< write value to ENET_PTP_TSUL_TMSUSS bit field */ + +#define ENET_PTP_ADD_TO_TIME ((uint32_t)0x00000000) /*!< timestamp update value is added to system time */ +#define ENET_PTP_SUBSTRACT_FROM_TIME ENET_PTP_TSUL_TMSUPNS /*!< timestamp update value is subtracted from system time */ + +/* dma_bctl register value */ +#define DMA_BCTL_DPSL(regval) (BITS(2,6) & ((uint32_t)(regval) << 2)) /*!< write value to ENET_DMA_BCTL_DPSL bit field */ +#define GET_DMA_BCTL_DPSL(regval) GET_BITS((regval),2,6) /*!< get value of ENET_DMA_BCTL_DPSL bit field */ + +#define DMA_BCTL_PGBL(regval) (BITS(8,13) & ((uint32_t)(regval) << 8)) /*!< write value to ENET_DMA_BCTL_PGBL bit field */ +#define ENET_PGBL_1BEAT DMA_BCTL_PGBL(1) /*!< maximum number of beats is 1 */ +#define ENET_PGBL_2BEAT DMA_BCTL_PGBL(2) /*!< maximum number of beats is 2 */ +#define ENET_PGBL_4BEAT DMA_BCTL_PGBL(4) /*!< maximum number of beats is 4 */ +#define ENET_PGBL_8BEAT DMA_BCTL_PGBL(8) /*!< maximum number of beats is 8 */ +#define ENET_PGBL_16BEAT DMA_BCTL_PGBL(16) /*!< maximum number of beats is 16 */ +#define ENET_PGBL_32BEAT DMA_BCTL_PGBL(32) /*!< maximum number of beats is 32 */ +#define ENET_PGBL_4xPGBL_4BEAT (DMA_BCTL_PGBL(1)|ENET_DMA_BCTL_FPBL) /*!< maximum number of beats is 4 */ +#define ENET_PGBL_4xPGBL_8BEAT (DMA_BCTL_PGBL(2)|ENET_DMA_BCTL_FPBL) /*!< maximum number of beats is 8 */ +#define ENET_PGBL_4xPGBL_16BEAT (DMA_BCTL_PGBL(4)|ENET_DMA_BCTL_FPBL) /*!< maximum number of beats is 16 */ +#define ENET_PGBL_4xPGBL_32BEAT (DMA_BCTL_PGBL(8)|ENET_DMA_BCTL_FPBL) /*!< maximum number of beats is 32 */ +#define ENET_PGBL_4xPGBL_64BEAT (DMA_BCTL_PGBL(16)|ENET_DMA_BCTL_FPBL) /*!< maximum number of beats is 64 */ +#define ENET_PGBL_4xPGBL_128BEAT (DMA_BCTL_PGBL(32)|ENET_DMA_BCTL_FPBL) /*!< maximum number of beats is 128 */ + +#define DMA_BCTL_RTPR(regval) (BITS(14,15) & ((uint32_t)(regval) << 14)) /*!< write value to ENET_DMA_BCTL_RTPR bit field */ +#define ENET_ARBITRATION_RXTX_1_1 DMA_BCTL_RTPR(0) /*!< receive and transmit priority ratio is 1:1*/ +#define ENET_ARBITRATION_RXTX_2_1 DMA_BCTL_RTPR(1) /*!< receive and transmit priority ratio is 2:1*/ +#define ENET_ARBITRATION_RXTX_3_1 DMA_BCTL_RTPR(2) /*!< receive and transmit priority ratio is 3:1 */ +#define ENET_ARBITRATION_RXTX_4_1 DMA_BCTL_RTPR(3) /*!< receive and transmit priority ratio is 4:1 */ +#define ENET_ARBITRATION_RXPRIORTX ENET_DMA_BCTL_DAB /*!< RxDMA has higher priority than TxDMA */ + +#define ENET_FIXED_BURST_ENABLE ENET_DMA_BCTL_FB /*!< AHB can only use SINGLE/INCR4/INCR8/INCR16 during start of normal burst transfers */ +#define ENET_FIXED_BURST_DISABLE ((uint32_t)0x00000000) /*!< AHB can use SINGLE/INCR burst transfer operations */ + +#define DMA_BCTL_RXDP(regval) (BITS(17,22) & ((uint32_t)(regval) << 17)) /*!< write value to ENET_DMA_BCTL_RXDP bit field */ +#define ENET_RXDP_1BEAT DMA_BCTL_RXDP(1) /*!< maximum number of beats 1 */ +#define ENET_RXDP_2BEAT DMA_BCTL_RXDP(2) /*!< maximum number of beats 2 */ +#define ENET_RXDP_4BEAT DMA_BCTL_RXDP(4) /*!< maximum number of beats 4 */ +#define ENET_RXDP_8BEAT DMA_BCTL_RXDP(8) /*!< maximum number of beats 8 */ +#define ENET_RXDP_16BEAT DMA_BCTL_RXDP(16) /*!< maximum number of beats 16 */ +#define ENET_RXDP_32BEAT DMA_BCTL_RXDP(32) /*!< maximum number of beats 32 */ +#define ENET_RXDP_4xPGBL_4BEAT (DMA_BCTL_RXDP(1)|ENET_DMA_BCTL_FPBL) /*!< maximum number of beats 4 */ +#define ENET_RXDP_4xPGBL_8BEAT (DMA_BCTL_RXDP(2)|ENET_DMA_BCTL_FPBL) /*!< maximum number of beats 8 */ +#define ENET_RXDP_4xPGBL_16BEAT (DMA_BCTL_RXDP(4)|ENET_DMA_BCTL_FPBL) /*!< maximum number of beats 16 */ +#define ENET_RXDP_4xPGBL_32BEAT (DMA_BCTL_RXDP(8)|ENET_DMA_BCTL_FPBL) /*!< maximum number of beats 32 */ +#define ENET_RXDP_4xPGBL_64BEAT (DMA_BCTL_RXDP(16)|ENET_DMA_BCTL_FPBL) /*!< maximum number of beats 64 */ +#define ENET_RXDP_4xPGBL_128BEAT (DMA_BCTL_RXDP(32)|ENET_DMA_BCTL_FPBL) /*!< maximum number of beats 128 */ + +#define ENET_RXTX_DIFFERENT_PGBL ENET_DMA_BCTL_UIP /*!< RxDMA uses the RXDP[5:0], while TxDMA uses the PGBL[5:0] */ +#define ENET_RXTX_SAME_PGBL ((uint32_t)0x00000000) /*!< RxDMA/TxDMA uses PGBL[5:0] */ + +#define ENET_ADDRESS_ALIGN_ENABLE ENET_DMA_BCTL_AA /*!< enabled address-aligned */ +#define ENET_ADDRESS_ALIGN_DISABLE ((uint32_t)0x00000000) /*!< disable address-aligned */ + +/* dma_stat register value */ +#define GET_DMA_STAT_RP(regval) GET_BITS((uint32_t)(regval),17,19) /*!< get value of ENET_DMA_STAT_RP bit field */ +#define ENET_RX_STATE_STOPPED ((uint32_t)0x00000000) /*!< reset or stop rx command issued */ +#define ENET_RX_STATE_FETCHING BIT(17) /*!< fetching the Rx descriptor */ +#define ENET_RX_STATE_WAITING (BIT(17)|BIT(18)) /*!< waiting for receive packet */ +#define ENET_RX_STATE_SUSPENDED BIT(19) /*!< Rx descriptor unavailable */ +#define ENET_RX_STATE_CLOSING (BIT(17)|BIT(19)) /*!< closing receive descriptor */ +#define ENET_RX_STATE_QUEUING ENET_DMA_STAT_RP /*!< transferring the receive packet data from recevie buffer to host memory */ + +#define GET_DMA_STAT_TP(regval) GET_BITS((uint32_t)(regval),20,22) /*!< get value of ENET_DMA_STAT_TP bit field */ +#define ENET_TX_STATE_STOPPED ((uint32_t)0x00000000) /*!< reset or stop Tx Command issued */ +#define ENET_TX_STATE_FETCHING BIT(20) /*!< fetching the Tx descriptor */ +#define ENET_TX_STATE_WAITING BIT(21) /*!< waiting for status */ +#define ENET_TX_STATE_READING (BIT(20)|BIT(21)) /*!< reading the data from host memory buffer and queuing it to transmit buffer */ +#define ENET_TX_STATE_SUSPENDED (BIT(21)|BIT(22)) /*!< Tx descriptor unavailabe or transmit buffer underflow */ +#define ENET_TX_STATE_CLOSING ENET_DMA_STAT_TP /*!< closing Tx descriptor */ + +#define GET_DMA_STAT_EB(regval) GET_BITS((uint32_t)(regval),23,25) /*!< get value of ENET_DMA_STAT_EB bit field */ +#define ENET_ERROR_TXDATA_TRANSFER BIT(23) /*!< error during data transfer by TxDMA or RxDMA */ +#define ENET_ERROR_READ_TRANSFER BIT(24) /*!< error during write transfer or read transfer */ +#define ENET_ERROR_DESC_ACCESS BIT(25) /*!< error during descriptor or buffer access */ + +/* dma_ctl register value */ +#define DMA_CTL_RTHC(regval) (BITS(3,4) & ((uint32_t)(regval) << 3)) /*!< write value to ENET_DMA_CTL_RTHC bit field */ +#define ENET_RX_THRESHOLD_64BYTES DMA_CTL_RTHC(0) /*!< threshold level is 64 Bytes */ +#define ENET_RX_THRESHOLD_32BYTES DMA_CTL_RTHC(1) /*!< threshold level is 32 Bytes */ +#define ENET_RX_THRESHOLD_96BYTES DMA_CTL_RTHC(2) /*!< threshold level is 96 Bytes */ +#define ENET_RX_THRESHOLD_128BYTES DMA_CTL_RTHC(3) /*!< threshold level is 128 Bytes */ + +#define DMA_CTL_TTHC(regval) (BITS(14,16) & ((uint32_t)(regval) << 14)) /*!< write value to ENET_DMA_CTL_TTHC bit field */ +#define ENET_TX_THRESHOLD_64BYTES DMA_CTL_TTHC(0) /*!< threshold level is 64 Bytes */ +#define ENET_TX_THRESHOLD_128BYTES DMA_CTL_TTHC(1) /*!< threshold level is 128 Bytes */ +#define ENET_TX_THRESHOLD_192BYTES DMA_CTL_TTHC(2) /*!< threshold level is 192 Bytes */ +#define ENET_TX_THRESHOLD_256BYTES DMA_CTL_TTHC(3) /*!< threshold level is 256 Bytes */ +#define ENET_TX_THRESHOLD_40BYTES DMA_CTL_TTHC(4) /*!< threshold level is 40 Bytes */ +#define ENET_TX_THRESHOLD_32BYTES DMA_CTL_TTHC(5) /*!< threshold level is 32 Bytes */ +#define ENET_TX_THRESHOLD_24BYTES DMA_CTL_TTHC(6) /*!< threshold level is 24 Bytes */ +#define ENET_TX_THRESHOLD_16BYTES DMA_CTL_TTHC(7) /*!< threshold level is 16 Bytes */ + +#define ENET_TCPIP_CKSUMERROR_ACCEPT ENET_DMA_CTL_DTCERFD /*!< Rx frame with only payload error but no other errors will not be dropped */ +#define ENET_TCPIP_CKSUMERROR_DROP ((uint32_t)0x00000000) /*!< all error frames will be dropped when FERF = 0 */ + +#define ENET_RX_MODE_STOREFORWARD ENET_DMA_CTL_RSFD /*!< RxFIFO operates in store-and-forward mode */ +#define ENET_RX_MODE_CUTTHROUGH ((uint32_t)0x00000000) /*!< RxFIFO operates in cut-through mode */ + +#define ENET_FLUSH_RXFRAME_ENABLE ((uint32_t)0x00000000) /*!< RxDMA flushes all frames */ +#define ENET_FLUSH_RXFRAME_DISABLE ENET_DMA_CTL_DAFRF /*!< RxDMA does not flush any frames */ +#define ENET_NO_FLUSH_RXFRAME ENET_DMA_CTL_DAFRF /*!< RxDMA does not flush frames function */ + +#define ENET_TX_MODE_STOREFORWARD ENET_DMA_CTL_TSFD /*!< TxFIFO operates in store-and-forward mode */ +#define ENET_TX_MODE_CUTTHROUGH ((uint32_t)0x00000000) /*!< TxFIFO operates in cut-through mode */ + +#define ENET_FORWARD_ERRFRAMES_ENABLE (ENET_DMA_CTL_FERF << 2) /*!< all frame received with error except runt error are forwarded to memory */ +#define ENET_FORWARD_ERRFRAMES_DISABLE ((uint32_t)0x00000000) /*!< RxFIFO drop error frame */ +#define ENET_FORWARD_ERRFRAMES (ENET_DMA_CTL_FERF << 2) /*!< the function that all frame received with error except runt error are forwarded to memory */ + +#define ENET_FORWARD_UNDERSZ_GOODFRAMES_ENABLE (ENET_DMA_CTL_FUF << 2) /*!< forward undersized good frames */ +#define ENET_FORWARD_UNDERSZ_GOODFRAMES_DISABLE ((uint32_t)0x00000000) /*!< RxFIFO drops all frames whose length is less than 64 bytes */ +#define ENET_FORWARD_UNDERSZ_GOODFRAMES (ENET_DMA_CTL_FUF << 2) /*!< the function that forwarding undersized good frames */ + +#define ENET_SECONDFRAME_OPT_ENABLE ENET_DMA_CTL_OSF /*!< TxDMA controller operate on second frame mode enable*/ +#define ENET_SECONDFRAME_OPT_DISABLE ((uint32_t)0x00000000) /*!< TxDMA controller operate on second frame mode disable */ +#define ENET_SECONDFRAME_OPT ENET_DMA_CTL_OSF /*!< TxDMA controller operate on second frame function */ + +/* dma_mfbocnt register value */ +#define GET_DMA_MFBOCNT_MSFC(regval) GET_BITS((regval),0,15) /*!< get value of ENET_DMA_MFBOCNT_MSFC bit field */ + +#define GET_DMA_MFBOCNT_MSFA(regval) GET_BITS((regval),17,27) /*!< get value of ENET_DMA_MFBOCNT_MSFA bit field */ + +/* dma tx descriptor tdes0 register value */ +#define TDES0_CONT(regval) (BITS(3,6) & ((uint32_t)(regval) << 3)) /*!< write value to ENET DMA TDES0 CONT bit field */ +#define GET_TDES0_COCNT(regval) GET_BITS((regval),3,6) /*!< get value of ENET DMA TDES0 CONT bit field */ + +#define TDES0_CM(regval) (BITS(22,23) & ((uint32_t)(regval) << 22)) /*!< write value to ENET DMA TDES0 CM bit field */ +#define ENET_CHECKSUM_DISABLE TDES0_CM(0) /*!< checksum insertion disabled */ +#define ENET_CHECKSUM_IPV4HEADER TDES0_CM(1) /*!< only IP header checksum calculation and insertion are enabled */ +#define ENET_CHECKSUM_TCPUDPICMP_SEGMENT TDES0_CM(2) /*!< TCP/UDP/ICMP checksum insertion calculated but pseudo-header */ +#define ENET_CHECKSUM_TCPUDPICMP_FULL TDES0_CM(3) /*!< TCP/UDP/ICMP checksum insertion fully calculated */ + +/* dma tx descriptor tdes1 register value */ +#define TDES1_TB1S(regval) (BITS(0,12) & ((uint32_t)(regval) << 0)) /*!< write value to ENET DMA TDES1 TB1S bit field */ + +#define TDES1_TB2S(regval) (BITS(16,28) & ((uint32_t)(regval) << 16)) /*!< write value to ENET DMA TDES1 TB2S bit field */ + +/* dma rx descriptor rdes0 register value */ +#define RDES0_FRML(regval) (BITS(16,29) & ((uint32_t)(regval) << 16)) /*!< write value to ENET DMA RDES0 FRML bit field */ +#define GET_RDES0_FRML(regval) GET_BITS((regval),16,29) /*!< get value of ENET DMA RDES0 FRML bit field */ + +/* dma rx descriptor rdes1 register value */ +#define ENET_RECEIVE_COMPLETE_INT_ENABLE ((uint32_t)0x00000000U) /*!< RS bit immediately set after Rx completed */ +#define ENET_RECEIVE_COMPLETE_INT_DISABLE ENET_RDES1_DINTC /*!< RS bit not immediately set after Rx completed */ + +#define GET_RDES1_RB1S(regval) GET_BITS((regval),0,12) /*!< get value of ENET DMA RDES1 RB1S bit field */ + +#define GET_RDES1_RB2S(regval) GET_BITS((regval),16,28) /*!< get value of ENET DMA RDES1 RB2S bit field */ + +/* dma rx descriptor rdes4 register value */ +#define RDES4_IPPLDT(regval) (BITS(0,2) & ((uint32_t)(regval) << 0)) /*!< write value to ENET DMA RDES4 IPPLDT bit field */ +#define GET_RDES4_IPPLDT(regval) GET_BITS((regval),0,2) /*!< get value of ENET DMA RDES4 IPPLDT bit field */ + +#define RDES4_PTPMT(regval) (BITS(8,11) & ((uint32_t)(regval) << 8)) /*!< write value to ENET DMA RDES4 PTPMT bit field */ +#define GET_RDES4_PTPMT(regval) GET_BITS((regval),8,11) /*!< get value of ENET DMA RDES4 PTPMT bit field */ + +/* ENET register mask value */ +#define MAC_CFG_MASK ((uint32_t)0xFD30810FU) /*!< ENET_MAC_CFG register mask */ +#define MAC_FCTL_MASK ((uint32_t)0x0000FF41U) /*!< ENET_MAC_FCTL register mask */ +#define DMA_CTL_MASK ((uint32_t)0xF8DE3F23U) /*!< ENET_DMA_CTL register mask */ +#define DMA_BCTL_MASK ((uint32_t)0xF800007DU) /*!< ENET_DMA_BCTL register mask */ + +#define ETH_DMATXDESC_SIZE 0x10U /*!< TxDMA descriptor size */ +#define ETH_DMARXDESC_SIZE 0x10U /*!< RxDMA descriptor size */ + +typedef enum{ + ENET_PTP_SYSTIME_INIT = ENET_PTP_TSCTL_TMSSTI, /*!< timestamp initialize */ + ENET_PTP_SYSTIME_UPDATE = ENET_PTP_TSCTL_TMSSTU, /*!< timestamp update */ + ENET_PTP_ADDEND_UPDATE = ENET_PTP_TSCTL_TMSARU, /*!< addend register update */ + ENET_PTP_FINEMODE = (int32_t)(ENET_PTP_TSCTL_TMSFCU| BIT(31)), /*!< the system timestamp uses the fine method for updating */ + ENET_PTP_COARSEMODE = ENET_PTP_TSCTL_TMSFCU, /*!< the system timestamp uses the coarse method for updating */ +}enet_ptp_function_enum; + + +/* ENET remote wake-up frame register length */ +#define ETH_WAKEUP_REGISTER_LENGTH 8U /*!< remote wake-up frame register length */ + +/* ENET frame size */ +#define ENET_MAX_FRAME_SIZE 1524U /*!< header + frame_extra + payload + CRC */ + +/* ENET delay timeout */ +#define ENET_DELAY_TO ((uint32_t)0x0004FFFFU) /*!< ENET delay timeout */ +#define ENET_RESET_TO ((uint32_t)0x000004FFU) /*!< ENET reset timeout */ + +/* function declarations */ +/* main function */ +/* deinitialize the ENET, and reset structure parameters for ENET initialization */ +void enet_deinit(void); +/* configure the parameters which are usually less cared for initialization */ +void enet_initpara_config(enet_option_enum option, uint32_t para); +/* initialize ENET peripheral with generally concerned parameters and the less cared parameters */ +ErrStatus enet_init(enet_mediamode_enum mediamode, enet_chksumconf_enum checksum, enet_frmrecept_enum recept); +/* reset all core internal registers located in CLK_TX and CLK_RX */ +ErrStatus enet_software_reset(void); +/* check receive frame valid and return frame size */ +uint32_t enet_rxframe_size_get(void); +/* initialize the dma tx/rx descriptors's parameters in chain mode */ +void enet_descriptors_chain_init(enet_dmadirection_enum direction); +/* initialize the dma tx/rx descriptors's parameters in ring mode */ +void enet_descriptors_ring_init(enet_dmadirection_enum direction); +/* handle current received frame data to application buffer */ +ErrStatus enet_frame_receive(uint8_t *buffer, uint32_t bufsize); +/* handle current received frame but without data copy to application buffer */ +#define ENET_NOCOPY_FRAME_RECEIVE() enet_frame_receive(NULL, 0U) +/* handle application buffer data to transmit it */ +ErrStatus enet_frame_transmit(uint8_t *buffer, uint32_t length); +/* handle current transmit frame but without data copy from application buffer */ +#define ENET_NOCOPY_FRAME_TRANSMIT(len) enet_frame_transmit(NULL, (len)) +/* configure the transmit IP frame checksum offload calculation and insertion */ +void enet_transmit_checksum_config(enet_descriptors_struct *desc, uint32_t checksum); +/* ENET Tx and Rx function enable (include MAC and DMA module) */ +void enet_enable(void); +/* ENET Tx and Rx function disable (include MAC and DMA module) */ +void enet_disable(void); +/* configure MAC address */ +void enet_mac_address_set(enet_macaddress_enum mac_addr, uint8_t paddr[]); +/* get MAC address */ +void enet_mac_address_get(enet_macaddress_enum mac_addr, uint8_t paddr[]); + +/* get the ENET MAC/MSC/PTP/DMA status flag */ +FlagStatus enet_flag_get(enet_flag_enum enet_flag); +/* clear the ENET DMA status flag */ +void enet_flag_clear(enet_flag_clear_enum enet_flag); +/* enable ENET MAC/MSC/DMA interrupt */ +void enet_interrupt_enable(enet_int_enum enet_int); +/* disable ENET MAC/MSC/DMA interrupt */ +void enet_interrupt_disable(enet_int_enum enet_int); +/* get ENET MAC/MSC/DMA interrupt flag */ +FlagStatus enet_interrupt_flag_get(enet_int_flag_enum int_flag); +/* clear ENET DMA interrupt flag */ +void enet_interrupt_flag_clear(enet_int_flag_clear_enum int_flag_clear); + +/* MAC function */ +/* ENET Tx function enable (include MAC and DMA module) */ +void enet_tx_enable(void); +/* ENET Tx function disable (include MAC and DMA module) */ +void enet_tx_disable(void); +/* ENET Rx function enable (include MAC and DMA module) */ +void enet_rx_enable(void); +/* ENET Rx function disable (include MAC and DMA module) */ +void enet_rx_disable(void); +/* put registers value into the application buffer */ +void enet_registers_get(enet_registers_type_enum type, uint32_t *preg, uint32_t num); +/* enable the MAC address filter */ +void enet_address_filter_enable(enet_macaddress_enum mac_addr); +/* disable the MAC address filter */ +void enet_address_filter_disable(enet_macaddress_enum mac_addr); +/* configure the MAC address filter */ +void enet_address_filter_config(enet_macaddress_enum mac_addr, uint32_t addr_mask, uint32_t filter_type); +/* PHY interface configuration (configure SMI clock and reset PHY chip) */ +ErrStatus enet_phy_config(void); +/* write to/read from a PHY register */ +ErrStatus enet_phy_write_read(enet_phydirection_enum direction, uint16_t phy_address, uint16_t phy_reg, uint16_t *pvalue); +/* enable the loopback function of phy chip */ +ErrStatus enet_phyloopback_enable(void); +/* disable the loopback function of phy chip */ +ErrStatus enet_phyloopback_disable(void); +/* enable ENET forward feature */ +void enet_forward_feature_enable(uint32_t feature); +/* disable ENET forward feature */ +void enet_forward_feature_disable(uint32_t feature); +/* enable ENET filter feature */ +void enet_fliter_feature_enable(uint32_t feature); +/* disable ENET filter feature */ +void enet_fliter_feature_disable(uint32_t feature); + +/* flow control function */ +/* generate the pause frame, ENET will send pause frame after enable transmit flow control */ +ErrStatus enet_pauseframe_generate(void); +/* configure the pause frame detect type */ +void enet_pauseframe_detect_config(uint32_t detect); +/* configure the pause frame parameters */ +void enet_pauseframe_config(uint32_t pausetime, uint32_t pause_threshold); +/* configure the threshold of the flow control(deactive and active threshold) */ +void enet_flowcontrol_threshold_config(uint32_t deactive, uint32_t active); +/* enable ENET flow control feature */ +void enet_flowcontrol_feature_enable(uint32_t feature); +/* disable ENET flow control feature */ +void enet_flowcontrol_feature_disable(uint32_t feature); + +/* DMA function */ +/* get the dma transmit/receive process state */ +uint32_t enet_dmaprocess_state_get(enet_dmadirection_enum direction); +/* poll the dma transmission/reception enable */ +void enet_dmaprocess_resume(enet_dmadirection_enum direction); +/* check and recover the Rx process */ +void enet_rxprocess_check_recovery(void); +/* flush the ENET transmit fifo, and wait until the flush operation completes */ +ErrStatus enet_txfifo_flush(void); +/* get the transmit/receive address of current descriptor, or current buffer, or descriptor table */ +uint32_t enet_current_desc_address_get(enet_desc_reg_enum addr_get); +/* get the Tx or Rx descriptor information */ +uint32_t enet_desc_information_get(enet_descriptors_struct *desc, enet_descstate_enum info_get); +/* get the number of missed frames during receiving */ +void enet_missed_frame_counter_get(uint32_t *rxfifo_drop, uint32_t *rxdma_drop); + +/* descriptor function */ +/* get the bit flag of ENET dma descriptor */ +FlagStatus enet_desc_flag_get(enet_descriptors_struct *desc, uint32_t desc_flag); +/* set the bit flag of ENET dma tx descriptor */ +void enet_desc_flag_set(enet_descriptors_struct *desc, uint32_t desc_flag); +/* clear the bit flag of ENET dma tx descriptor */ +void enet_desc_flag_clear(enet_descriptors_struct *desc, uint32_t desc_flag); +/* when receiving the completed, set RS bit in ENET_DMA_STAT register will set */ +void enet_desc_receive_complete_bit_enable(enet_descriptors_struct *desc); +/* when receiving the completed, set RS bit in ENET_DMA_STAT register will not set */ +void enet_desc_receive_complete_bit_disable(enet_descriptors_struct *desc); +/* drop current receive frame */ +void enet_rxframe_drop(void); +/* enable DMA feature */ +void enet_dma_feature_enable(uint32_t feature); +/* disable DMA feature */ +void enet_dma_feature_disable(uint32_t feature); + +/* initialize the dma Tx/Rx descriptors's parameters in normal chain mode with ptp function */ +void enet_ptp_normal_descriptors_chain_init(enet_dmadirection_enum direction, enet_descriptors_struct *desc_ptptab); +/* initialize the dma Tx/Rx descriptors's parameters in normal ring mode with ptp function */ +void enet_ptp_normal_descriptors_ring_init(enet_dmadirection_enum direction, enet_descriptors_struct *desc_ptptab); +/* receive a packet data with timestamp values to application buffer, when the DMA is in normal mode */ +ErrStatus enet_ptpframe_receive_normal_mode(uint8_t *buffer, uint32_t bufsize, uint32_t timestamp[]); +/* handle current received frame but without data copy to application buffer in PTP normal mode */ +#define ENET_NOCOPY_PTPFRAME_RECEIVE_NORMAL_MODE(ptr) enet_ptpframe_receive_normal_mode(NULL, 0U, (ptr)) +/* send data with timestamp values in application buffer as a transmit packet, when the DMA is in normal mode */ +ErrStatus enet_ptpframe_transmit_normal_mode(uint8_t *buffer, uint32_t length, uint32_t timestamp[]); +/* handle current transmit frame but without data copy from application buffer in PTP normal mode */ +#define ENET_NOCOPY_PTPFRAME_TRANSMIT_NORMAL_MODE(len, ptr) enet_ptpframe_transmit_normal_mode(NULL, (len), (ptr)) + +/* WUM function */ +/* wakeup frame filter register pointer reset */ +void enet_wum_filter_register_pointer_reset(void); +/* set the remote wakeup frame registers */ +void enet_wum_filter_config(uint32_t pdata[]); +/* enable wakeup management features */ +void enet_wum_feature_enable(uint32_t feature); +/* disable wakeup management features */ +void enet_wum_feature_disable(uint32_t feature); + +/* MSC function */ +/* reset the MAC statistics counters */ +void enet_msc_counters_reset(void); +/* enable the MAC statistics counter features */ +void enet_msc_feature_enable(uint32_t feature); +/* disable the MAC statistics counter features */ +void enet_msc_feature_disable(uint32_t feature); +/* get MAC statistics counter */ +uint32_t enet_msc_counters_get(enet_msc_counter_enum counter); + +/* PTP function */ +/* change subsecond to nanosecond */ +uint32_t enet_ptp_subsecond_2_nanosecond(uint32_t subsecond); +/* change nanosecond to subsecond */ +uint32_t enet_ptp_nanosecond_2_subsecond(uint32_t nanosecond); +/* enable the PTP features */ +void enet_ptp_feature_enable(uint32_t feature); +/* disable the PTP features */ +void enet_ptp_feature_disable(uint32_t feature); +/* configure the PTP timestamp function */ +ErrStatus enet_ptp_timestamp_function_config(enet_ptp_function_enum func); +/* configure the PTP system time subsecond increment value */ +void enet_ptp_subsecond_increment_config(uint32_t subsecond); +/* adjusting the PTP clock frequency only in fine update mode */ +void enet_ptp_timestamp_addend_config(uint32_t add); +/* initializing or adding/subtracting to second of the PTP system time */ +void enet_ptp_timestamp_update_config(uint32_t sign, uint32_t second, uint32_t subsecond); +/* configure the PTP expected target time */ +void enet_ptp_expected_time_config(uint32_t second, uint32_t nanosecond); +/* get the PTP current system time */ +void enet_ptp_system_time_get(enet_ptp_systime_struct *systime_struct); +/* configure and start PTP timestamp counter */ +void enet_ptp_start(int32_t updatemethod, uint32_t init_sec, uint32_t init_subsec, uint32_t carry_cfg, uint32_t accuracy_cfg); +/* adjust frequency in fine method by configure addend register */ +void enet_ptp_finecorrection_adjfreq(int32_t carry_cfg); +/* update system time in coarse method */ +void enet_ptp_coarsecorrection_systime_update(enet_ptp_systime_struct *systime_struct); +/* set system time in fine method */ +void enet_ptp_finecorrection_settime(enet_ptp_systime_struct * systime_struct); +/* get the ptp flag status */ +FlagStatus enet_ptp_flag_get(uint32_t flag); + +/* internal function */ +/* reset the ENET initpara struct, call it before using enet_initpara_config() */ +void enet_initpara_reset(void); +/* initialize ENET peripheral with generally concerned parameters, call it by enet_init() */ +static void enet_default_init(void); +#ifdef USE_DELAY +/* user can provide more timing precise _ENET_DELAY_ function */ +#define _ENET_DELAY_ delay_ms +#else +/* insert a delay time */ +static void enet_delay(uint32_t ncount); +/* default _ENET_DELAY_ function with less precise timing */ +#define _ENET_DELAY_ enet_delay +#endif + +#endif /* GD32F10X_ENET_H */ diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_exmc.h b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_exmc.h new file mode 100644 index 0000000..3116d95 --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_exmc.h @@ -0,0 +1,428 @@ +/*! + \file gd32f10x_exmc.h + \brief definitions for the EXMC + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#ifndef GD32F10X_EXMC_H +#define GD32F10X_EXMC_H + +#include "gd32f10x.h" + +/* EXMC definitions */ +#define EXMC (EXMC_BASE) /*!< EXMC register base address */ + +/* registers definitions */ +/* NOR/PSRAM */ +#define EXMC_SNCTL0 REG32(EXMC + 0x00U) /*!< EXMC SRAM/NOR flash control register 0 */ +#define EXMC_SNTCFG0 REG32(EXMC + 0x04U) /*!< EXMC SRAM/NOR flash timing configuration register 0 */ +#define EXMC_SNWTCFG0 REG32(EXMC + 0x104U) /*!< EXMC SRAM/NOR flash write timing configuration register 0 */ + +#define EXMC_SNCTL1 REG32(EXMC + 0x08U) /*!< EXMC SRAM/NOR flash control register 1 */ +#define EXMC_SNTCFG1 REG32(EXMC + 0x0CU) /*!< EXMC SRAM/NOR flash timing configuration register 1 */ +#define EXMC_SNWTCFG1 REG32(EXMC + 0x10CU) /*!< EXMC SRAM/NOR flash write timing configuration register 1 */ + +#define EXMC_SNCTL2 REG32(EXMC + 0x10U) /*!< EXMC SRAM/NOR flash control register 2 */ +#define EXMC_SNTCFG2 REG32(EXMC + 0x14U) /*!< EXMC SRAM/NOR flash timing configuration register 2 */ +#define EXMC_SNWTCFG2 REG32(EXMC + 0x114U) /*!< EXMC SRAM/NOR flash write timing configuration register 2 */ + +#define EXMC_SNCTL3 REG32(EXMC + 0x18U) /*!< EXMC SRAM/NOR flash control register 3 */ +#define EXMC_SNTCFG3 REG32(EXMC + 0x1CU) /*!< EXMC SRAM/NOR flash timing configuration register 3 */ +#define EXMC_SNWTCFG3 REG32(EXMC + 0x11CU) /*!< EXMC SRAM/NOR flash write timing configuration register 3 */ + +/* NAND/PC card */ +#define EXMC_NPCTL1 REG32(EXMC + 0x60U) /*!< EXMC NAND/PC card control register 1 */ +#define EXMC_NPINTEN1 REG32(EXMC + 0x64U) /*!< EXMC NAND/PC card interrupt enable register 1 */ +#define EXMC_NPCTCFG1 REG32(EXMC + 0x68U) /*!< EXMC NAND/PC card common space timing configuration register 1 */ +#define EXMC_NPATCFG1 REG32(EXMC + 0x6CU) /*!< EXMC NAND/PC card attribute space timing configuration register 1 */ +#define EXMC_NECC1 REG32(EXMC + 0x74U) /*!< EXMC NAND ECC register 1 */ + +#define EXMC_NPCTL2 REG32(EXMC + 0x80U) /*!< EXMC NAND/PC card control register 2 */ +#define EXMC_NPINTEN2 REG32(EXMC + 0x84U) /*!< EXMC NAND/PC card interrupt enable register 2 */ +#define EXMC_NPCTCFG2 REG32(EXMC + 0x88U) /*!< EXMC NAND/PC card common space timing configuration register 2 */ +#define EXMC_NPATCFG2 REG32(EXMC + 0x8CU) /*!< EXMC NAND/PC card attribute space timing configuration register 2 */ +#define EXMC_NECC2 REG32(EXMC + 0x94U) /*!< EXMC NAND ECC register 2 */ + +#define EXMC_NPCTL3 REG32(EXMC + 0xA0U) /*!< EXMC NAND/PC card control register 3 */ +#define EXMC_NPINTEN3 REG32(EXMC + 0xA4U) /*!< EXMC NAND/PC card interrupt enable register 3 */ +#define EXMC_NPCTCFG3 REG32(EXMC + 0xA8U) /*!< EXMC NAND/PC card common space timing configuration register 3 */ +#define EXMC_NPATCFG3 REG32(EXMC + 0xACU) /*!< EXMC NAND/PC card attribute space timing configuration register 3 */ +#define EXMC_PIOTCFG3 REG32(EXMC + 0xB0U) /*!< EXMC PC card I/O space timing configuration register */ + +/* bits definitions */ +/* NOR/PSRAM */ +/* EXMC_SNCTLx,x=0..3 */ +#define EXMC_SNCTL_NRBKEN BIT(0) /*!< NOR bank enable */ +#define EXMC_SNCTL_NRMUX BIT(1) /*!< NOR bank memory address/data multiplexing */ +#define EXMC_SNCTL_NRTP BITS(2,3) /*!< NOR bank memory type */ +#define EXMC_SNCTL_NRW BITS(4,5) /*!< NOR bank memory data bus width */ +#define EXMC_SNCTL_NREN BIT(6) /*!< NOR flash access enable */ +#define EXMC_SNCTL_SBRSTEN BIT(8) /*!< synchronous burst enable */ +#define EXMC_SNCTL_NRWTPOL BIT(9) /*!< NWAIT signal polarity */ +#define EXMC_SNCTL_WRAPEN BIT(10) /*!< wrapped burst mode enable */ +#define EXMC_SNCTL_NRWTCFG BIT(11) /*!< NWAIT signal configuration, only work in synchronous mode */ +#define EXMC_SNCTL_WREN BIT(12) /*!< write enable */ +#define EXMC_SNCTL_NRWTEN BIT(13) /*!< NWAIT signal enable */ +#define EXMC_SNCTL_EXMODEN BIT(14) /*!< extended mode enable */ +#define EXMC_SNCTL_ASYNCWAIT BIT(15) /*!< asynchronous wait */ +#define EXMC_SNCTL_SYNCWR BIT(19) /*!< synchronous write */ + +/* EXMC_SNTCFGx,x=0..3 */ +#define EXMC_SNTCFG_ASET BITS(0,3) /*!< address setup time */ +#define EXMC_SNTCFG_AHLD BITS(4,7) /*!< address hold time */ +#define EXMC_SNTCFG_DSET BITS(8,15) /*!< data setup time */ +#define EXMC_SNTCFG_BUSLAT BITS(16,19) /*!< bus latency */ +#define EXMC_SNTCFG_CKDIV BITS(20,23) /*!< synchronous clock divide ratio */ +#define EXMC_SNTCFG_DLAT BITS(24,27) /*!< data latency for NOR flash */ +#define EXMC_SNTCFG_ASYNCMOD BITS(28,29) /*!< asynchronous access mode */ + +/* EXMC_SNWTCFGx,x=0..3 */ +#define EXMC_SNWTCFG_WASET BITS(0,3) /*!< address setup time */ +#define EXMC_SNWTCFG_WAHLD BITS(4,7) /*!< address hold time */ +#define EXMC_SNWTCFG_WDSET BITS(8,15) /*!< data setup time */ +#define EXMC_SNWTCFG_CKDIV BITS(20,23) /*!< synchronous clock divide ratio */ +#define EXMC_SNWTCFG_DLAT BITS(24,27) /*!< data latency for NOR flash */ +#define EXMC_SNWTCFG_WASYNCMOD BITS(28,29) /*!< asynchronous access mode */ + +/* NAND/PC card */ +/* EXMC_NPCTLx,x=1..3 */ +#define EXMC_NPCTL_NDWTEN BIT(1) /*!< wait feature enable */ +#define EXMC_NPCTL_NDBKEN BIT(2) /*!< NAND bank enable */ +#define EXMC_NPCTL_NDTP BIT(3) /*!< NAND bank memory type */ +#define EXMC_NPCTL_NDW BITS(4,5) /*!< NAND bank memory data bus width */ +#define EXMC_NPCTL_ECCEN BIT(6) /*!< ECC enable */ +#define EXMC_NPCTL_CTR BITS(9,12) /*!< CLE to RE delay */ +#define EXMC_NPCTL_ATR BITS(13,16) /*!< ALE to RE delay */ +#define EXMC_NPCTL_ECCSZ BITS(17,19) /*!< ECC size */ + +/* EXMC_NPINTENx,x=1..3 */ +#define EXMC_NPINTEN_INTRS BIT(0) /*!< interrupt rising edge status */ +#define EXMC_NPINTEN_INTHS BIT(1) /*!< interrupt high-level status */ +#define EXMC_NPINTEN_INTFS BIT(2) /*!< interrupt falling edge status */ +#define EXMC_NPINTEN_INTREN BIT(3) /*!< interrupt rising edge detection enable */ +#define EXMC_NPINTEN_INTHEN BIT(4) /*!< interrupt high-level detection enable */ +#define EXMC_NPINTEN_INTFEN BIT(5) /*!< interrupt falling edge detection enable */ +#define EXMC_NPINTEN_FFEPT BIT(6) /*!< FIFO empty flag */ + +/* EXMC_NPCTCFGx,x=1..3 */ +#define EXMC_NPCTCFG_COMSET BITS(0,7) /*!< common memory setup time */ +#define EXMC_NPCTCFG_COMWAIT BITS(8,15) /*!< common memory wait time */ +#define EXMC_NPCTCFG_COMHLD BITS(16,23) /*!< common memory hold time */ +#define EXMC_NPCTCFG_COMHIZ BITS(24,31) /*!< common memory data bus HiZ time */ + +/* EXMC_NPATCFGx,x=1..3 */ +#define EXMC_NPATCFG_ATTSET BITS(0,7) /*!< attribute memory setup time */ +#define EXMC_NPATCFG_ATTWAIT BITS(8,15) /*!< attribute memory wait time */ +#define EXMC_NPATCFG_ATTHLD BITS(16,23) /*!< attribute memory hold time */ +#define EXMC_NPATCFG_ATTHIZ BITS(24,31) /*!< attribute memory data bus HiZ time */ + +/* EXMC_PIOTCFG3 */ +#define EXMC_PIOTCFG3_IOSET BITS(0,7) /*!< IO space setup time */ +#define EXMC_PIOTCFG3_IOWAIT BITS(8,15) /*!< IO space wait time */ +#define EXMC_PIOTCFG3_IOHLD BITS(16,23) /*!< IO space hold time */ +#define EXMC_PIOTCFG3_IOHIZ BITS(24,31) /*!< IO space data bus HiZ time */ + +/* EXMC_NECCx,x=1,2 */ +#define EXMC_NECC_ECC BITS(0,31) /*!< ECC result */ + +/* constants definitions */ +/* EXMC NOR/SRAM timing initialize struct */ +typedef struct +{ + uint32_t asyn_access_mode; /*!< asynchronous access mode */ + uint32_t syn_data_latency; /*!< configure the data latency */ + uint32_t syn_clk_division; /*!< configure the clock divide ratio */ + uint32_t bus_latency; /*!< configure the bus latency */ + uint32_t asyn_data_setuptime; /*!< configure the data setup time,asynchronous access mode valid */ + uint32_t asyn_address_holdtime; /*!< configure the address hold time,asynchronous access mode valid */ + uint32_t asyn_address_setuptime; /*!< configure the data setup time,asynchronous access mode valid */ +}exmc_norsram_timing_parameter_struct; + +/* EXMC NOR/SRAM initialize struct */ +typedef struct +{ + uint32_t norsram_region; /*!< select the region of EXMC NOR/SRAM bank */ + uint32_t write_mode; /*!< the write mode, synchronous mode or asynchronous mode */ + uint32_t extended_mode; /*!< enable or disable the extended mode */ + uint32_t asyn_wait; /*!< enable or disable the asynchronous wait function */ + uint32_t nwait_signal; /*!< enable or disable the NWAIT signal while in synchronous bust mode */ + uint32_t memory_write; /*!< enable or disable the write operation */ + uint32_t nwait_config; /*!< NWAIT signal configuration */ + uint32_t wrap_burst_mode; /*!< enable or disable the wrap burst mode */ + uint32_t nwait_polarity; /*!< specifies the polarity of NWAIT signal from memory */ + uint32_t burst_mode; /*!< enable or disable the burst mode */ + uint32_t databus_width; /*!< specifies the databus width of external memory */ + uint32_t memory_type; /*!< specifies the type of external memory */ + uint32_t address_data_mux; /*!< specifies whether the data bus and address bus are multiplexed */ + exmc_norsram_timing_parameter_struct* read_write_timing; /*!< timing parameters for read and write if the extended mode is not used or the timing + parameters for read if the extended mode is used */ + exmc_norsram_timing_parameter_struct* write_timing; /*!< timing parameters for write when the extended mode is used */ +}exmc_norsram_parameter_struct; + +/* EXMC NAND/PC card timing initialize struct */ +typedef struct +{ + uint32_t databus_hiztime; /*!< configure the dadtabus HiZ time for write operation */ + uint32_t holdtime; /*!< configure the address hold time(or the data hold time for write operation) */ + uint32_t waittime; /*!< configure the minimum wait time */ + uint32_t setuptime; /*!< configure the address setup time */ +}exmc_nand_pccard_timing_parameter_struct; + +/* EXMC NAND initialize struct */ +typedef struct +{ + uint32_t nand_bank; /*!< select the bank of NAND */ + uint32_t ecc_size; /*!< the page size for the ECC calculation */ + uint32_t atr_latency; /*!< configure the latency of ALE low to RB low */ + uint32_t ctr_latency; /*!< configure the latency of CLE low to RB low */ + uint32_t ecc_logic; /*!< enable or disable the ECC calculation logic */ + uint32_t databus_width; /*!< the NAND flash databus width */ + uint32_t wait_feature; /*!< enables or disables the wait feature */ + exmc_nand_pccard_timing_parameter_struct* common_space_timing; /*!< the timing parameters for NAND flash common space */ + exmc_nand_pccard_timing_parameter_struct* attribute_space_timing; /*!< the timing parameters for NAND flash attribute space */ +}exmc_nand_parameter_struct; + +/* EXMC PC card initialize struct */ +typedef struct +{ + uint32_t atr_latency; /*!< configure the latency of ALE low to RB low */ + uint32_t ctr_latency; /*!< configure the latency of CLE low to RB low */ + uint32_t wait_feature; /*!< enables or disables the Wait feature */ + exmc_nand_pccard_timing_parameter_struct* common_space_timing; /*!< the timing parameters for NAND flash common space */ + exmc_nand_pccard_timing_parameter_struct* attribute_space_timing; /*!< the timing parameters for NAND flash attribute space */ + exmc_nand_pccard_timing_parameter_struct* io_space_timing; /*!< the timing parameters for NAND flash IO space */ +}exmc_pccard_parameter_struct;; + +/* EXMC register address */ +#define EXMC_SNCTL(region) REG32(EXMC + 0x08U * (region)) /*!< EXMC SRAM/NOR flash control register */ +#define EXMC_SNTCFG(region) REG32(EXMC + 0x04U + 0x08U * (region)) /*!< EXMC SRAM/NOR flash timing configuration register */ +#define EXMC_SNWTCFG(region) REG32(EXMC + 0x104U + 0x08U * (region)) /*!< EXMC SRAM/NOR flash write timing configuration register */ + +#define EXMC_NPCTL(bank) REG32(EXMC + 0x40U + 0x20U * (bank)) /*!< EXMC NAND/PC card control register */ +#define EXMC_NPINTEN(bank) REG32(EXMC + 0x44U + 0x20U * (bank)) /*!< EXMC NAND/PC card interrupt enable register */ +#define EXMC_NPCTCFG(bank) REG32(EXMC + 0x48U + 0x20U * (bank)) /*!< EXMC NAND/PC card common space timing configuration register */ +#define EXMC_NPATCFG(bank) REG32(EXMC + 0x4CU + 0x20U * (bank)) /*!< EXMC NAND/PC card attribute space timing configuration register */ +#define EXMC_NECC(bank) REG32(EXMC + 0x54U + 0x20U * (bank)) /*!< EXMC NAND ECC register */ + +/* NOR bank memory data bus width */ +#define SNCTL_NRW(regval) (BITS(4,5) & ((uint32_t)(regval) << 4)) +#define EXMC_NOR_DATABUS_WIDTH_8B SNCTL_NRW(0) /*!< NOR data width 8 bits */ +#define EXMC_NOR_DATABUS_WIDTH_16B SNCTL_NRW(1) /*!< NOR data width 16 bits */ + +/* NOR bank memory type */ +#define SNCTL_NRTP(regval) (BITS(2,3) & ((uint32_t)(regval) << 2)) +#define EXMC_MEMORY_TYPE_SRAM SNCTL_NRTP(0) /*!< SRAM,ROM */ +#define EXMC_MEMORY_TYPE_PSRAM SNCTL_NRTP(1) /*!< PSRAM,CRAM */ +#define EXMC_MEMORY_TYPE_NOR SNCTL_NRTP(2) /*!< NOR flash */ + +/* asynchronous access mode */ +#define SNTCFG_ASYNCMOD(regval) (BITS(28,29) & ((uint32_t)(regval) << 28)) +#define EXMC_ACCESS_MODE_A SNTCFG_ASYNCMOD(0) /*!< mode A access */ +#define EXMC_ACCESS_MODE_B SNTCFG_ASYNCMOD(1) /*!< mode B access */ +#define EXMC_ACCESS_MODE_C SNTCFG_ASYNCMOD(2) /*!< mode C access */ +#define EXMC_ACCESS_MODE_D SNTCFG_ASYNCMOD(3) /*!< mode D access */ + +/* data latency for NOR flash */ +#define SNTCFG_DLAT(regval) (BITS(24,27) & ((uint32_t)(regval) << 24)) +#define EXMC_DATALAT_2_CLK SNTCFG_DLAT(0) /*!< data latency 2 EXMC_CLK */ +#define EXMC_DATALAT_3_CLK SNTCFG_DLAT(1) /*!< data latency 3 EXMC_CLK */ +#define EXMC_DATALAT_4_CLK SNTCFG_DLAT(2) /*!< data latency 4 EXMC_CLK */ +#define EXMC_DATALAT_5_CLK SNTCFG_DLAT(3) /*!< data latency 5 EXMC_CLK */ +#define EXMC_DATALAT_6_CLK SNTCFG_DLAT(4) /*!< data latency 6 EXMC_CLK */ +#define EXMC_DATALAT_7_CLK SNTCFG_DLAT(5) /*!< data latency 7 EXMC_CLK */ +#define EXMC_DATALAT_8_CLK SNTCFG_DLAT(6) /*!< data latency 8 EXMC_CLK */ +#define EXMC_DATALAT_9_CLK SNTCFG_DLAT(7) /*!< data latency 9 EXMC_CLK */ +#define EXMC_DATALAT_10_CLK SNTCFG_DLAT(8) /*!< data latency 10 EXMC_CLK */ +#define EXMC_DATALAT_11_CLK SNTCFG_DLAT(9) /*!< data latency 11 EXMC_CLK */ +#define EXMC_DATALAT_12_CLK SNTCFG_DLAT(10) /*!< data latency 12 EXMC_CLK */ +#define EXMC_DATALAT_13_CLK SNTCFG_DLAT(11) /*!< data latency 13 EXMC_CLK */ +#define EXMC_DATALAT_14_CLK SNTCFG_DLAT(12) /*!< data latency 14 EXMC_CLK */ +#define EXMC_DATALAT_15_CLK SNTCFG_DLAT(13) /*!< data latency 15 EXMC_CLK */ +#define EXMC_DATALAT_16_CLK SNTCFG_DLAT(14) /*!< data latency 16 EXMC_CLK */ +#define EXMC_DATALAT_17_CLK SNTCFG_DLAT(15) /*!< data latency 17 EXMC_CLK */ + +/* synchronous clock divide ratio */ +#define SNTCFG_CKDIV(regval) (BITS(20,23) & ((uint32_t)(regval) << 20)) +#define EXMC_SYN_CLOCK_RATIO_DISABLE SNTCFG_CKDIV(0) /*!< EXMC_CLK disable */ +#define EXMC_SYN_CLOCK_RATIO_2_CLK SNTCFG_CKDIV(1) /*!< frequency EXMC_CLK = HCLK/2 */ +#define EXMC_SYN_CLOCK_RATIO_3_CLK SNTCFG_CKDIV(2) /*!< frequency EXMC_CLK = HCLK/3 */ +#define EXMC_SYN_CLOCK_RATIO_4_CLK SNTCFG_CKDIV(3) /*!< frequency EXMC_CLK = HCLK/4 */ +#define EXMC_SYN_CLOCK_RATIO_5_CLK SNTCFG_CKDIV(4) /*!< frequency EXMC_CLK = HCLK/5 */ +#define EXMC_SYN_CLOCK_RATIO_6_CLK SNTCFG_CKDIV(5) /*!< frequency EXMC_CLK = HCLK/6 */ +#define EXMC_SYN_CLOCK_RATIO_7_CLK SNTCFG_CKDIV(6) /*!< frequency EXMC_CLK = HCLK/7 */ +#define EXMC_SYN_CLOCK_RATIO_8_CLK SNTCFG_CKDIV(7) /*!< frequency EXMC_CLK = HCLK/8 */ +#define EXMC_SYN_CLOCK_RATIO_9_CLK SNTCFG_CKDIV(8) /*!< frequency EXMC_CLK = HCLK/9 */ +#define EXMC_SYN_CLOCK_RATIO_10_CLK SNTCFG_CKDIV(9) /*!< frequency EXMC_CLK = HCLK/10 */ +#define EXMC_SYN_CLOCK_RATIO_11_CLK SNTCFG_CKDIV(10) /*!< frequency EXMC_CLK = HCLK/11 */ +#define EXMC_SYN_CLOCK_RATIO_12_CLK SNTCFG_CKDIV(11) /*!< frequency EXMC_CLK = HCLK/12 */ +#define EXMC_SYN_CLOCK_RATIO_13_CLK SNTCFG_CKDIV(12) /*!< frequency EXMC_CLK = HCLK/13 */ +#define EXMC_SYN_CLOCK_RATIO_14_CLK SNTCFG_CKDIV(13) /*!< frequency EXMC_CLK = HCLK/14 */ +#define EXMC_SYN_CLOCK_RATIO_15_CLK SNTCFG_CKDIV(14) /*!< frequency EXMC_CLK = HCLK/15 */ +#define EXMC_SYN_CLOCK_RATIO_16_CLK SNTCFG_CKDIV(15) /*!< frequency EXMC_CLK = HCLK/16 */ + +/* ECC size */ +#define NPCTL_ECCSZ(regval) (BITS(17,19) & ((uint32_t)(regval) << 17)) +#define EXMC_ECC_SIZE_256BYTES NPCTL_ECCSZ(0) /* 256 bytes */ +#define EXMC_ECC_SIZE_512BYTES NPCTL_ECCSZ(1) /* 512 bytes */ +#define EXMC_ECC_SIZE_1024BYTES NPCTL_ECCSZ(2) /* 1024 bytes */ +#define EXMC_ECC_SIZE_2048BYTES NPCTL_ECCSZ(3) /* 2048 bytes */ +#define EXMC_ECC_SIZE_4096BYTES NPCTL_ECCSZ(4) /* 4096 bytes */ +#define EXMC_ECC_SIZE_8192BYTES NPCTL_ECCSZ(5) /* 8192 bytes */ + +/* ALE to RE delay */ +#define NPCTL_ATR(regval) (BITS(13,16) & ((uint32_t)(regval) << 13)) +#define EXMC_ALE_RE_DELAY_1_HCLK NPCTL_ATR(0) /* ALE to RE delay = 1*HCLK */ +#define EXMC_ALE_RE_DELAY_2_HCLK NPCTL_ATR(1) /* ALE to RE delay = 2*HCLK */ +#define EXMC_ALE_RE_DELAY_3_HCLK NPCTL_ATR(2) /* ALE to RE delay = 3*HCLK */ +#define EXMC_ALE_RE_DELAY_4_HCLK NPCTL_ATR(3) /* ALE to RE delay = 4*HCLK */ +#define EXMC_ALE_RE_DELAY_5_HCLK NPCTL_ATR(4) /* ALE to RE delay = 5*HCLK */ +#define EXMC_ALE_RE_DELAY_6_HCLK NPCTL_ATR(5) /* ALE to RE delay = 6*HCLK */ +#define EXMC_ALE_RE_DELAY_7_HCLK NPCTL_ATR(6) /* ALE to RE delay = 7*HCLK */ +#define EXMC_ALE_RE_DELAY_8_HCLK NPCTL_ATR(7) /* ALE to RE delay = 8*HCLK */ +#define EXMC_ALE_RE_DELAY_9_HCLK NPCTL_ATR(8) /* ALE to RE delay = 9*HCLK */ +#define EXMC_ALE_RE_DELAY_10_HCLK NPCTL_ATR(9) /* ALE to RE delay = 10*HCLK */ +#define EXMC_ALE_RE_DELAY_11_HCLK NPCTL_ATR(10) /* ALE to RE delay = 11*HCLK */ +#define EXMC_ALE_RE_DELAY_12_HCLK NPCTL_ATR(11) /* ALE to RE delay = 12*HCLK */ +#define EXMC_ALE_RE_DELAY_13_HCLK NPCTL_ATR(12) /* ALE to RE delay = 13*HCLK */ +#define EXMC_ALE_RE_DELAY_14_HCLK NPCTL_ATR(13) /* ALE to RE delay = 14*HCLK */ +#define EXMC_ALE_RE_DELAY_15_HCLK NPCTL_ATR(14) /* ALE to RE delay = 15*HCLK */ +#define EXMC_ALE_RE_DELAY_16_HCLK NPCTL_ATR(15) /* ALE to RE delay = 16*HCLK */ + +/* CLE to RE delay */ +#define NPCTL_CTR(regval) (BITS(9,12) & ((uint32_t)(regval) << 9)) +#define EXMC_CLE_RE_DELAY_1_HCLK NPCTL_CTR(0) /* CLE to RE delay = 1*HCLK */ +#define EXMC_CLE_RE_DELAY_2_HCLK NPCTL_CTR(1) /* CLE to RE delay = 2*HCLK */ +#define EXMC_CLE_RE_DELAY_3_HCLK NPCTL_CTR(2) /* CLE to RE delay = 3*HCLK */ +#define EXMC_CLE_RE_DELAY_4_HCLK NPCTL_CTR(3) /* CLE to RE delay = 4*HCLK */ +#define EXMC_CLE_RE_DELAY_5_HCLK NPCTL_CTR(4) /* CLE to RE delay = 5*HCLK */ +#define EXMC_CLE_RE_DELAY_6_HCLK NPCTL_CTR(5) /* CLE to RE delay = 6*HCLK */ +#define EXMC_CLE_RE_DELAY_7_HCLK NPCTL_CTR(6) /* CLE to RE delay = 7*HCLK */ +#define EXMC_CLE_RE_DELAY_8_HCLK NPCTL_CTR(7) /* CLE to RE delay = 8*HCLK */ +#define EXMC_CLE_RE_DELAY_9_HCLK NPCTL_CTR(8) /* CLE to RE delay = 9*HCLK */ +#define EXMC_CLE_RE_DELAY_10_HCLK NPCTL_CTR(9) /* CLE to RE delay = 10*HCLK */ +#define EXMC_CLE_RE_DELAY_11_HCLK NPCTL_CTR(10) /* CLE to RE delay = 11*HCLK */ +#define EXMC_CLE_RE_DELAY_12_HCLK NPCTL_CTR(11) /* CLE to RE delay = 12*HCLK */ +#define EXMC_CLE_RE_DELAY_13_HCLK NPCTL_CTR(12) /* CLE to RE delay = 13*HCLK */ +#define EXMC_CLE_RE_DELAY_14_HCLK NPCTL_CTR(13) /* CLE to RE delay = 14*HCLK */ +#define EXMC_CLE_RE_DELAY_15_HCLK NPCTL_CTR(14) /* CLE to RE delay = 15*HCLK */ +#define EXMC_CLE_RE_DELAY_16_HCLK NPCTL_CTR(15) /* CLE to RE delay = 16*HCLK */ + +/* NAND bank memory data bus width */ +#define NPCTL_NDW(regval) (BITS(4,5) & ((uint32_t)(regval) << 4)) +#define EXMC_NAND_DATABUS_WIDTH_8B NPCTL_NDW(0) /*!< NAND data width 8 bits */ +#define EXMC_NAND_DATABUS_WIDTH_16B NPCTL_NDW(1) /*!< NAND data width 16 bits */ + +/* EXMC NOR/SRAM bank region definition */ +#define EXMC_BANK0_NORSRAM_REGION0 ((uint32_t)0x00000000U) /*!< bank0 NOR/SRAM region0 */ +#define EXMC_BANK0_NORSRAM_REGION1 ((uint32_t)0x00000001U) /*!< bank0 NOR/SRAM region1 */ +#define EXMC_BANK0_NORSRAM_REGION2 ((uint32_t)0x00000002U) /*!< bank0 NOR/SRAM region2 */ +#define EXMC_BANK0_NORSRAM_REGION3 ((uint32_t)0x00000003U) /*!< bank0 NOR/SRAM region3 */ + +/* EXMC NOR/SRAM write mode */ +#define EXMC_ASYN_WRITE ((uint32_t)0x00000000U) /*!< asynchronous write mode */ +#define EXMC_SYN_WRITE ((uint32_t)0x00080000U) /*!< synchronous write mode */ + +/* EXMC NWAIT signal configuration */ +#define EXMC_NWAIT_CONFIG_BEFORE ((uint32_t)0x00000000U) /*!< NWAIT signal is active one data cycle before wait state */ +#define EXMC_NWAIT_CONFIG_DURING ((uint32_t)0x00000800U) /*!< NWAIT signal is active during wait state */ + +/* EXMC NWAIT signal polarity configuration */ +#define EXMC_NWAIT_POLARITY_LOW ((uint32_t)0x00000000U) /*!< low level is active of NWAIT */ +#define EXMC_NWAIT_POLARITY_HIGH ((uint32_t)0x00000200U) /*!< high level is active of NWAIT */ + +/* EXMC NAND/PC card bank definition */ +#define EXMC_BANK1_NAND ((uint32_t)0x00000001U) /*!< bank1 NAND flash */ +#define EXMC_BANK2_NAND ((uint32_t)0x00000002U) /*!< bank2 NAND flash */ +#define EXMC_BANK3_PCCARD ((uint32_t)0x00000003U) /*!< bank3 PC card */ + +/* EXMC flag bits */ +#define EXMC_NAND_PCCARD_FLAG_RISE EXMC_NPINTEN_INTRS /*!< interrupt rising edge status */ +#define EXMC_NAND_PCCARD_FLAG_LEVEL EXMC_NPINTEN_INTHS /*!< interrupt high-level status */ +#define EXMC_NAND_PCCARD_FLAG_FALL EXMC_NPINTEN_INTFS /*!< interrupt falling edge status */ +#define EXMC_NAND_PCCARD_FLAG_FIFOE EXMC_NPINTEN_FFEPT /*!< FIFO empty flag */ + +/* EXMC interrupt flag bits */ +#define EXMC_NAND_PCCARD_INT_RISE EXMC_NPINTEN_INTREN /*!< interrupt rising edge detection enable */ +#define EXMC_NAND_PCCARD_INT_LEVEL EXMC_NPINTEN_INTHEN /*!< interrupt high-level detection enable */ +#define EXMC_NAND_PCCARD_INT_FALL EXMC_NPINTEN_INTFEN /*!< interrupt falling edge detection enable */ + +/* function declarations */ +/* deinitialize EXMC NOR/SRAM region */ +void exmc_norsram_deinit(uint32_t norsram_region); +/* exmc_norsram_parameter_struct parameter initialize */ +void exmc_norsram_struct_para_init(exmc_norsram_parameter_struct* exmc_norsram_init_struct); +/* initialize EXMC NOR/SRAM region */ +void exmc_norsram_init(exmc_norsram_parameter_struct* exmc_norsram_init_struct); +/* EXMC NOR/SRAM bank enable */ +void exmc_norsram_enable(uint32_t norsram_region); +/* EXMC NOR/SRAM bank disable */ +void exmc_norsram_disable(uint32_t norsram_region); + +/* deinitialize EXMC NAND bank */ +void exmc_nand_deinit(uint32_t nand_bank); +/* initialize EXMC NAND bank */ +void exmc_nand_init(exmc_nand_parameter_struct* exmc_nand_init_struct); +/* exmc_nand_init_struct parameter initialize */ +void exmc_nand_struct_para_init(exmc_nand_parameter_struct* exmc_nand_init_struct); +/* EXMC NAND bank enable */ +void exmc_nand_enable(uint32_t nand_bank); +/* EXMC NAND bank disable */ +void exmc_nand_disable(uint32_t nand_bank); +/* enable or disable the EXMC NAND ECC function */ +void exmc_nand_ecc_config(uint32_t nand_bank, ControlStatus newvalue); +/* get the EXMC ECC value */ +uint32_t exmc_ecc_get(uint32_t nand_bank); + +/* deinitialize EXMC PC card bank */ +void exmc_pccard_deinit(void); +/* initialize EXMC PC card bank */ +void exmc_pccard_init(exmc_pccard_parameter_struct* exmc_pccard_init_struct); +/* exmc_pccard_parameter_struct parameter initialize */ +void exmc_pccard_struct_para_init(exmc_pccard_parameter_struct* exmc_pccard_init_struct); +/* EXMC PC card bank enable */ +void exmc_pccard_enable(void); +/* EXMC PC card bank disable */ +void exmc_pccard_disable(void); + +/* enable EXMC interrupt */ +void exmc_interrupt_enable(uint32_t bank, uint32_t interrupt_source); +/* disable EXMC interrupt */ +void exmc_interrupt_disable(uint32_t bank, uint32_t interrupt_source); +/* check EXMC flag is set or not */ +FlagStatus exmc_flag_get(uint32_t bank, uint32_t flag); +/* clear EXMC flag */ +void exmc_flag_clear(uint32_t bank, uint32_t flag); +/* check EXMC flag is set or not */ +FlagStatus exmc_interrupt_flag_get(uint32_t bank, uint32_t interrupt_source); +/* clear EXMC flag */ +void exmc_interrupt_flag_clear(uint32_t bank, uint32_t interrupt_source); + +#endif /* GD32F10X_EXMC_H */ diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_exti.h b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_exti.h new file mode 100644 index 0000000..ebb07da --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_exti.h @@ -0,0 +1,252 @@ +/*! + \file gd32f10x_exti.h + \brief definitions for the EXTI + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#ifndef GD32F10X_EXTI_H +#define GD32F10X_EXTI_H + +#include "gd32f10x.h" + +/* EXTI definitions */ +#define EXTI EXTI_BASE + +/* registers definitions */ +#define EXTI_INTEN REG32(EXTI + 0x00000000U) /*!< interrupt enable register */ +#define EXTI_EVEN REG32(EXTI + 0x00000004U) /*!< event enable register */ +#define EXTI_RTEN REG32(EXTI + 0x00000008U) /*!< rising edge trigger enable register */ +#define EXTI_FTEN REG32(EXTI + 0x0000000CU) /*!< falling edge trigger enable register */ +#define EXTI_SWIEV REG32(EXTI + 0x00000010U) /*!< software interrupt event register */ +#define EXTI_PD REG32(EXTI + 0x00000014U) /*!< pending register */ + +/* bits definitions */ +/* EXTI_INTEN */ +#define EXTI_INTEN_INTEN0 BIT(0) /*!< interrupt from line 0 */ +#define EXTI_INTEN_INTEN1 BIT(1) /*!< interrupt from line 1 */ +#define EXTI_INTEN_INTEN2 BIT(2) /*!< interrupt from line 2 */ +#define EXTI_INTEN_INTEN3 BIT(3) /*!< interrupt from line 3 */ +#define EXTI_INTEN_INTEN4 BIT(4) /*!< interrupt from line 4 */ +#define EXTI_INTEN_INTEN5 BIT(5) /*!< interrupt from line 5 */ +#define EXTI_INTEN_INTEN6 BIT(6) /*!< interrupt from line 6 */ +#define EXTI_INTEN_INTEN7 BIT(7) /*!< interrupt from line 7 */ +#define EXTI_INTEN_INTEN8 BIT(8) /*!< interrupt from line 8 */ +#define EXTI_INTEN_INTEN9 BIT(9) /*!< interrupt from line 9 */ +#define EXTI_INTEN_INTEN10 BIT(10) /*!< interrupt from line 10 */ +#define EXTI_INTEN_INTEN11 BIT(11) /*!< interrupt from line 11 */ +#define EXTI_INTEN_INTEN12 BIT(12) /*!< interrupt from line 12 */ +#define EXTI_INTEN_INTEN13 BIT(13) /*!< interrupt from line 13 */ +#define EXTI_INTEN_INTEN14 BIT(14) /*!< interrupt from line 14 */ +#define EXTI_INTEN_INTEN15 BIT(15) /*!< interrupt from line 15 */ +#define EXTI_INTEN_INTEN16 BIT(16) /*!< interrupt from line 16 */ +#define EXTI_INTEN_INTEN17 BIT(17) /*!< interrupt from line 17 */ +#define EXTI_INTEN_INTEN18 BIT(18) /*!< interrupt from line 18 */ +#define EXTI_INTEN_INTEN19 BIT(19) /*!< interrupt from line 19 */ + +/* EXTI_EVEN */ +#define EXTI_EVEN_EVEN0 BIT(0) /*!< event from line 0 */ +#define EXTI_EVEN_EVEN1 BIT(1) /*!< event from line 1 */ +#define EXTI_EVEN_EVEN2 BIT(2) /*!< event from line 2 */ +#define EXTI_EVEN_EVEN3 BIT(3) /*!< event from line 3 */ +#define EXTI_EVEN_EVEN4 BIT(4) /*!< event from line 4 */ +#define EXTI_EVEN_EVEN5 BIT(5) /*!< event from line 5 */ +#define EXTI_EVEN_EVEN6 BIT(6) /*!< event from line 6 */ +#define EXTI_EVEN_EVEN7 BIT(7) /*!< event from line 7 */ +#define EXTI_EVEN_EVEN8 BIT(8) /*!< event from line 8 */ +#define EXTI_EVEN_EVEN9 BIT(9) /*!< event from line 9 */ +#define EXTI_EVEN_EVEN10 BIT(10) /*!< event from line 10 */ +#define EXTI_EVEN_EVEN11 BIT(11) /*!< event from line 11 */ +#define EXTI_EVEN_EVEN12 BIT(12) /*!< event from line 12 */ +#define EXTI_EVEN_EVEN13 BIT(13) /*!< event from line 13 */ +#define EXTI_EVEN_EVEN14 BIT(14) /*!< event from line 14 */ +#define EXTI_EVEN_EVEN15 BIT(15) /*!< event from line 15 */ +#define EXTI_EVEN_EVEN16 BIT(16) /*!< event from line 16 */ +#define EXTI_EVEN_EVEN17 BIT(17) /*!< event from line 17 */ +#define EXTI_EVEN_EVEN18 BIT(18) /*!< event from line 18 */ +#define EXTI_EVEN_EVEN19 BIT(19) /*!< event from line 19 */ + +/* EXTI_RTEN */ +#define EXTI_RTEN_RTEN0 BIT(0) /*!< rising edge from line 0 */ +#define EXTI_RTEN_RTEN1 BIT(1) /*!< rising edge from line 1 */ +#define EXTI_RTEN_RTEN2 BIT(2) /*!< rising edge from line 2 */ +#define EXTI_RTEN_RTEN3 BIT(3) /*!< rising edge from line 3 */ +#define EXTI_RTEN_RTEN4 BIT(4) /*!< rising edge from line 4 */ +#define EXTI_RTEN_RTEN5 BIT(5) /*!< rising edge from line 5 */ +#define EXTI_RTEN_RTEN6 BIT(6) /*!< rising edge from line 6 */ +#define EXTI_RTEN_RTEN7 BIT(7) /*!< rising edge from line 7 */ +#define EXTI_RTEN_RTEN8 BIT(8) /*!< rising edge from line 8 */ +#define EXTI_RTEN_RTEN9 BIT(9) /*!< rising edge from line 9 */ +#define EXTI_RTEN_RTEN10 BIT(10) /*!< rising edge from line 10 */ +#define EXTI_RTEN_RTEN11 BIT(11) /*!< rising edge from line 11 */ +#define EXTI_RTEN_RTEN12 BIT(12) /*!< rising edge from line 12 */ +#define EXTI_RTEN_RTEN13 BIT(13) /*!< rising edge from line 13 */ +#define EXTI_RTEN_RTEN14 BIT(14) /*!< rising edge from line 14 */ +#define EXTI_RTEN_RTEN15 BIT(15) /*!< rising edge from line 15 */ +#define EXTI_RTEN_RTEN16 BIT(16) /*!< rising edge from line 16 */ +#define EXTI_RTEN_RTEN17 BIT(17) /*!< rising edge from line 17 */ +#define EXTI_RTEN_RTEN18 BIT(18) /*!< rising edge from line 18 */ +#define EXTI_RTEN_RTEN19 BIT(19) /*!< rising edge from line 19 */ + +/* EXTI_FTEN */ +#define EXTI_FTEN_FTEN0 BIT(0) /*!< falling edge from line 0 */ +#define EXTI_FTEN_FTEN1 BIT(1) /*!< falling edge from line 1 */ +#define EXTI_FTEN_FTEN2 BIT(2) /*!< falling edge from line 2 */ +#define EXTI_FTEN_FTEN3 BIT(3) /*!< falling edge from line 3 */ +#define EXTI_FTEN_FTEN4 BIT(4) /*!< falling edge from line 4 */ +#define EXTI_FTEN_FTEN5 BIT(5) /*!< falling edge from line 5 */ +#define EXTI_FTEN_FTEN6 BIT(6) /*!< falling edge from line 6 */ +#define EXTI_FTEN_FTEN7 BIT(7) /*!< falling edge from line 7 */ +#define EXTI_FTEN_FTEN8 BIT(8) /*!< falling edge from line 8 */ +#define EXTI_FTEN_FTEN9 BIT(9) /*!< falling edge from line 9 */ +#define EXTI_FTEN_FTEN10 BIT(10) /*!< falling edge from line 10 */ +#define EXTI_FTEN_FTEN11 BIT(11) /*!< falling edge from line 11 */ +#define EXTI_FTEN_FTEN12 BIT(12) /*!< falling edge from line 12 */ +#define EXTI_FTEN_FTEN13 BIT(13) /*!< falling edge from line 13 */ +#define EXTI_FTEN_FTEN14 BIT(14) /*!< falling edge from line 14 */ +#define EXTI_FTEN_FTEN15 BIT(15) /*!< falling edge from line 15 */ +#define EXTI_FTEN_FTEN16 BIT(16) /*!< falling edge from line 16 */ +#define EXTI_FTEN_FTEN17 BIT(17) /*!< falling edge from line 17 */ +#define EXTI_FTEN_FTEN18 BIT(18) /*!< falling edge from line 18 */ +#define EXTI_FTEN_FTEN19 BIT(19) /*!< falling edge from line 19 */ + +/* EXTI_SWIEV */ +#define EXTI_SWIEV_SWIEV0 BIT(0) /*!< software interrupt/event request from line 0 */ +#define EXTI_SWIEV_SWIEV1 BIT(1) /*!< software interrupt/event request from line 1 */ +#define EXTI_SWIEV_SWIEV2 BIT(2) /*!< software interrupt/event request from line 2 */ +#define EXTI_SWIEV_SWIEV3 BIT(3) /*!< software interrupt/event request from line 3 */ +#define EXTI_SWIEV_SWIEV4 BIT(4) /*!< software interrupt/event request from line 4 */ +#define EXTI_SWIEV_SWIEV5 BIT(5) /*!< software interrupt/event request from line 5 */ +#define EXTI_SWIEV_SWIEV6 BIT(6) /*!< software interrupt/event request from line 6 */ +#define EXTI_SWIEV_SWIEV7 BIT(7) /*!< software interrupt/event request from line 7 */ +#define EXTI_SWIEV_SWIEV8 BIT(8) /*!< software interrupt/event request from line 8 */ +#define EXTI_SWIEV_SWIEV9 BIT(9) /*!< software interrupt/event request from line 9 */ +#define EXTI_SWIEV_SWIEV10 BIT(10) /*!< software interrupt/event request from line 10 */ +#define EXTI_SWIEV_SWIEV11 BIT(11) /*!< software interrupt/event request from line 11 */ +#define EXTI_SWIEV_SWIEV12 BIT(12) /*!< software interrupt/event request from line 12 */ +#define EXTI_SWIEV_SWIEV13 BIT(13) /*!< software interrupt/event request from line 13 */ +#define EXTI_SWIEV_SWIEV14 BIT(14) /*!< software interrupt/event request from line 14 */ +#define EXTI_SWIEV_SWIEV15 BIT(15) /*!< software interrupt/event request from line 15 */ +#define EXTI_SWIEV_SWIEV16 BIT(16) /*!< software interrupt/event request from line 16 */ +#define EXTI_SWIEV_SWIEV17 BIT(17) /*!< software interrupt/event request from line 17 */ +#define EXTI_SWIEV_SWIEV18 BIT(18) /*!< software interrupt/event request from line 18 */ +#define EXTI_SWIEV_SWIEV19 BIT(19) /*!< software interrupt/event request from line 19 */ + +/* EXTI_PD */ +#define EXTI_PD_PD0 BIT(0) /*!< interrupt pending status from line 0 */ +#define EXTI_PD_PD1 BIT(1) /*!< interrupt pending status from line 1 */ +#define EXTI_PD_PD2 BIT(2) /*!< interrupt pending status from line 2 */ +#define EXTI_PD_PD3 BIT(3) /*!< interrupt pending status from line 3 */ +#define EXTI_PD_PD4 BIT(4) /*!< interrupt pending status from line 4 */ +#define EXTI_PD_PD5 BIT(5) /*!< interrupt pending status from line 5 */ +#define EXTI_PD_PD6 BIT(6) /*!< interrupt pending status from line 6 */ +#define EXTI_PD_PD7 BIT(7) /*!< interrupt pending status from line 7 */ +#define EXTI_PD_PD8 BIT(8) /*!< interrupt pending status from line 8 */ +#define EXTI_PD_PD9 BIT(9) /*!< interrupt pending status from line 9 */ +#define EXTI_PD_PD10 BIT(10) /*!< interrupt pending status from line 10 */ +#define EXTI_PD_PD11 BIT(11) /*!< interrupt pending status from line 11 */ +#define EXTI_PD_PD12 BIT(12) /*!< interrupt pending status from line 12 */ +#define EXTI_PD_PD13 BIT(13) /*!< interrupt pending status from line 13 */ +#define EXTI_PD_PD14 BIT(14) /*!< interrupt pending status from line 14 */ +#define EXTI_PD_PD15 BIT(15) /*!< interrupt pending status from line 15 */ +#define EXTI_PD_PD16 BIT(16) /*!< interrupt pending status from line 16 */ +#define EXTI_PD_PD17 BIT(17) /*!< interrupt pending status from line 17 */ +#define EXTI_PD_PD18 BIT(18) /*!< interrupt pending status from line 18 */ +#define EXTI_PD_PD19 BIT(19) /*!< interrupt pending status from line 19 */ + +/* constants definitions */ +/* EXTI line number */ +typedef enum { + EXTI_0 = BIT(0), /*!< EXTI line 0 */ + EXTI_1 = BIT(1), /*!< EXTI line 1 */ + EXTI_2 = BIT(2), /*!< EXTI line 2 */ + EXTI_3 = BIT(3), /*!< EXTI line 3 */ + EXTI_4 = BIT(4), /*!< EXTI line 4 */ + EXTI_5 = BIT(5), /*!< EXTI line 5 */ + EXTI_6 = BIT(6), /*!< EXTI line 6 */ + EXTI_7 = BIT(7), /*!< EXTI line 7 */ + EXTI_8 = BIT(8), /*!< EXTI line 8 */ + EXTI_9 = BIT(9), /*!< EXTI line 9 */ + EXTI_10 = BIT(10), /*!< EXTI line 10 */ + EXTI_11 = BIT(11), /*!< EXTI line 11 */ + EXTI_12 = BIT(12), /*!< EXTI line 12 */ + EXTI_13 = BIT(13), /*!< EXTI line 13 */ + EXTI_14 = BIT(14), /*!< EXTI line 14 */ + EXTI_15 = BIT(15), /*!< EXTI line 15 */ + EXTI_16 = BIT(16), /*!< EXTI line 16 */ + EXTI_17 = BIT(17), /*!< EXTI line 17 */ + EXTI_18 = BIT(18), /*!< EXTI line 18 */ + EXTI_19 = BIT(19) /*!< EXTI line 19 */ +} exti_line_enum; + +/* external interrupt and event */ +typedef enum { + EXTI_INTERRUPT = 0, /*!< EXTI interrupt mode */ + EXTI_EVENT /*!< EXTI event mode */ +} exti_mode_enum; + +/* interrupt and event trigger mode */ +typedef enum { + EXTI_TRIG_RISING = 0, /*!< EXTI rising edge trigger */ + EXTI_TRIG_FALLING, /*!< EXTI falling edge trigger */ + EXTI_TRIG_BOTH, /*!< EXTI rising and falling edge trigger */ + EXTI_TRIG_NONE /*!< without rising edge or falling edge trigger */ +} exti_trig_type_enum; + +/* function declarations */ +/* initialization, EXTI lines configuration functions */ +/* deinitialize the EXTI */ +void exti_deinit(void); +/* initialize the EXTI line x */ +void exti_init(exti_line_enum linex, exti_mode_enum mode, exti_trig_type_enum trig_type); +/* enable the interrupts from EXTI line x */ +void exti_interrupt_enable(exti_line_enum linex); +/* disable the interrupts from EXTI line x */ +void exti_interrupt_disable(exti_line_enum linex); +/* enable the events from EXTI line x */ +void exti_event_enable(exti_line_enum linex); +/* disable the events from EXTI line x */ +void exti_event_disable(exti_line_enum linex); +/* enable the software interrupt event from EXTI line x */ +void exti_software_interrupt_enable(exti_line_enum linex); +/* disable the software interrupt event from EXTI line x */ +void exti_software_interrupt_disable(exti_line_enum linex); + +/* interrupt & flag functions */ +/* get EXTI line x interrupt pending flag */ +FlagStatus exti_flag_get(exti_line_enum linex); +/* clear EXTI line x interrupt pending flag */ +void exti_flag_clear(exti_line_enum linex); +/* get EXTI line x interrupt pending flag */ +FlagStatus exti_interrupt_flag_get(exti_line_enum linex); +/* clear EXTI line x interrupt pending flag */ +void exti_interrupt_flag_clear(exti_line_enum linex); + +#endif /* GD32F10X_EXTI_H */ diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_fmc.h b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_fmc.h new file mode 100644 index 0000000..035d6ff --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_fmc.h @@ -0,0 +1,366 @@ +/*! + \file gd32f10x_fmc.h + \brief definitions for the FMC + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#ifndef GD32F10X_FMC_H +#define GD32F10X_FMC_H + +#include "gd32f10x.h" + +/* FMC and option byte definition */ +#define FMC FMC_BASE /*!< FMC register base address */ +#define OB OB_BASE /*!< option bytes base address */ + +/* registers definitions */ +#define FMC_WS REG32((FMC) + 0x00U) /*!< FMC wait state register */ +#define FMC_KEY0 REG32((FMC) + 0x04U) /*!< FMC unlock key register 0 */ +#define FMC_OBKEY REG32((FMC) + 0x08U) /*!< FMC option bytes unlock key register */ +#define FMC_STAT0 REG32((FMC) + 0x0CU) /*!< FMC status register 0 */ +#define FMC_CTL0 REG32((FMC) + 0x10U) /*!< FMC control register 0 */ +#define FMC_ADDR0 REG32((FMC) + 0x14U) /*!< FMC address register 0 */ +#define FMC_OBSTAT REG32((FMC) + 0x1CU) /*!< FMC option bytes status register */ +#define FMC_WP REG32((FMC) + 0x20U) /*!< FMC erase/program protection register */ +#define FMC_KEY1 REG32((FMC) + 0x44U) /*!< FMC unlock key register 1 */ +#define FMC_STAT1 REG32((FMC) + 0x4CU) /*!< FMC status register 1 */ +#define FMC_CTL1 REG32((FMC) + 0x50U) /*!< FMC control register 1 */ +#define FMC_ADDR1 REG32((FMC) + 0x54U) /*!< FMC address register 1 */ +#define FMC_WSEN REG32((FMC) + 0xFCU) /*!< FMC wait state enable register */ +#define FMC_PID REG32((FMC) + 0x100U) /*!< FMC product ID register */ + +#define OB_SPC REG16((OB) + 0x00U) /*!< option byte security protection value */ +#define OB_USER REG16((OB) + 0x02U) /*!< option byte user value*/ +#define OB_WP0 REG16((OB) + 0x08U) /*!< option byte write protection 0 */ +#define OB_WP1 REG16((OB) + 0x0AU) /*!< option byte write protection 1 */ +#define OB_WP2 REG16((OB) + 0x0CU) /*!< option byte write protection 2 */ +#define OB_WP3 REG16((OB) + 0x0EU) /*!< option byte write protection 3 */ + +/* bits definitions */ +/* FMC_WS */ +#define FMC_WS_WSCNT BITS(0,2) /*!< wait state counter */ + +/* FMC_KEY0 */ +#define FMC_KEY0_KEY BITS(0,31) /*!< FMC_CTL0 unlock key bits */ + +/* FMC_OBKEY */ +#define FMC_OBKEY_OBKEY BITS(0,31) /*!< option bytes unlock key bits */ + +/* FMC_STAT0 */ +#define FMC_STAT0_BUSY BIT(0) /*!< flash busy flag bit */ +#define FMC_STAT0_PGERR BIT(2) /*!< flash program error flag bit */ +#define FMC_STAT0_WPERR BIT(4) /*!< erase/program protection error flag bit */ +#define FMC_STAT0_ENDF BIT(5) /*!< end of operation flag bit */ + +/* FMC_CTL0 */ +#define FMC_CTL0_PG BIT(0) /*!< main flash program for bank0 command bit */ +#define FMC_CTL0_PER BIT(1) /*!< main flash page erase for bank0 command bit */ +#define FMC_CTL0_MER BIT(2) /*!< main flash mass erase for bank0 command bit */ +#define FMC_CTL0_OBPG BIT(4) /*!< option bytes program command bit */ +#define FMC_CTL0_OBER BIT(5) /*!< option bytes erase command bit */ +#define FMC_CTL0_START BIT(6) /*!< send erase command to FMC bit */ +#define FMC_CTL0_LK BIT(7) /*!< FMC_CTL0 lock bit */ +#define FMC_CTL0_OBWEN BIT(9) /*!< option bytes erase/program enable bit */ +#define FMC_CTL0_ERRIE BIT(10) /*!< error interrupt enable bit */ +#define FMC_CTL0_ENDIE BIT(12) /*!< end of operation interrupt enable bit */ + +/* FMC_ADDR0 */ +#define FMC_ADDR0_ADDR BITS(0,31) /*!< flash erase/program command address bits */ + +/* FMC_OBSTAT */ +#define FMC_OBSTAT_OBERR BIT(0) /*!< option bytes read error bit. */ +#define FMC_OBSTAT_SPC BIT(1) /*!< option bytes security protection code */ +#define FMC_OBSTAT_USER BITS(2,9) /*!< store USER of option bytes block after system reset */ +#define FMC_OBSTAT_DATA BITS(10,25) /*!< store DATA of option bytes block after system reset. */ + +/* FMC_WP */ +#define FMC_WP_WP BITS(0,31) /*!< store WP of option bytes block after system reset */ + +/* FMC_KEY1 */ +#define FMC_KEY1_KEY BITS(0,31) /*!< FMC_CTL1 unlock key bits */ + +/* FMC_STAT1 */ +#define FMC_STAT1_BUSY BIT(0) /*!< flash busy flag bit */ +#define FMC_STAT1_PGERR BIT(2) /*!< flash program error flag bit */ +#define FMC_STAT1_WPERR BIT(4) /*!< erase/program protection error flag bit */ +#define FMC_STAT1_ENDF BIT(5) /*!< end of operation flag bit */ + +/* FMC_CTL1 */ +#define FMC_CTL1_PG BIT(0) /*!< main flash program for bank1 command bit */ +#define FMC_CTL1_PER BIT(1) /*!< main flash page erase for bank1 command bit */ +#define FMC_CTL1_MER BIT(2) /*!< main flash mass erase for bank1 command bit */ +#define FMC_CTL1_START BIT(6) /*!< send erase command to FMC bit */ +#define FMC_CTL1_LK BIT(7) /*!< FMC_CTL1 lock bit */ +#define FMC_CTL1_ERRIE BIT(10) /*!< error interrupt enable bit */ +#define FMC_CTL1_ENDIE BIT(12) /*!< end of operation interrupt enable bit */ + +/* FMC_ADDR1 */ +#define FMC_ADDR1_ADDR BITS(0,31) /*!< flash erase/program command address bits */ + +/* FMC_WSEN */ +#define FMC_WSEN_WSEN BIT(0) /*!< FMC wait state enable bit */ + +/* FMC_PID */ +#define FMC_PID_PID BITS(0,31) /*!< product ID bits */ + +/* constants definitions */ +/* define the FMC bit position and its register index offset */ +#define FMC_REGIDX_BIT(regidx, bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos)) +#define FMC_REG_VAL(offset) (REG32(FMC + ((uint32_t)(offset) >> 6))) +#define FMC_BIT_POS(val) ((uint32_t)(val) & 0x1FU) +#define FMC_REGIDX_BITS(regidx, bitpos0, bitpos1) (((uint32_t)(regidx) << 12) | ((uint32_t)(bitpos0) << 6) | (uint32_t)(bitpos1)) +#define FMC_REG_VALS(offset) (REG32(FMC + ((uint32_t)(offset) >> 12))) +#define FMC_BIT_POS0(val) (((uint32_t)(val) >> 6) & 0x1FU) +#define FMC_BIT_POS1(val) ((uint32_t)(val) & 0x1FU) +#define FMC_REG_OFFSET_GET(flag) ((uint32_t)(flag) >> 12) + +/* configuration register */ +#define FMC_STAT0_REG_OFFSET 0x0CU /*!< status register 0 offset */ +#define FMC_CTL0_REG_OFFSET 0x10U /*!< control register 0 offset */ +#define FMC_STAT1_REG_OFFSET 0x4CU /*!< status register 1 offset */ +#define FMC_CTL1_REG_OFFSET 0x50U /*!< control register 1 offset */ +#define FMC_OBSTAT_REG_OFFSET 0x1CU /*!< option byte status register offset */ + +/* fmc state */ +typedef enum +{ + FMC_READY, /*!< the operation has been completed */ + FMC_BUSY, /*!< the operation is in progress */ + FMC_PGERR, /*!< program error */ + FMC_WPERR, /*!< erase/program protection error */ + FMC_TOERR, /*!< timeout error */ +}fmc_state_enum; + +/* FMC interrupt enable */ +typedef enum +{ + FMC_INT_BANK0_END = FMC_REGIDX_BIT(FMC_CTL0_REG_OFFSET, 12U), /*!< enable FMC end of program interrupt */ + FMC_INT_BANK0_ERR = FMC_REGIDX_BIT(FMC_CTL0_REG_OFFSET, 10U), /*!< enable FMC error interrupt */ + FMC_INT_BANK1_END = FMC_REGIDX_BIT(FMC_CTL1_REG_OFFSET, 12U), /*!< enable FMC bank1 end of program interrupt */ + FMC_INT_BANK1_ERR = FMC_REGIDX_BIT(FMC_CTL1_REG_OFFSET, 10U), /*!< enable FMC bank1 error interrupt */ +}fmc_int_enum; + +/* FMC flags */ +typedef enum +{ + FMC_FLAG_BANK0_BUSY = FMC_REGIDX_BIT(FMC_STAT0_REG_OFFSET, 0U), /*!< FMC bank0 busy flag */ + FMC_FLAG_BANK0_PGERR = FMC_REGIDX_BIT(FMC_STAT0_REG_OFFSET, 2U), /*!< FMC bank0 operation error flag bit */ + FMC_FLAG_BANK0_WPERR = FMC_REGIDX_BIT(FMC_STAT0_REG_OFFSET, 4U), /*!< FMC bank0 erase/program protection error flag bit */ + FMC_FLAG_BANK0_END = FMC_REGIDX_BIT(FMC_STAT0_REG_OFFSET, 5U), /*!< FMC bank0 end of operation flag bit */ + FMC_FLAG_OBERR = FMC_REGIDX_BIT(FMC_OBSTAT_REG_OFFSET, 0U), /*!< FMC option bytes read error flag */ + FMC_FLAG_BANK1_BUSY = FMC_REGIDX_BIT(FMC_STAT1_REG_OFFSET, 0U), /*!< FMC bank1 busy flag */ + FMC_FLAG_BANK1_PGERR = FMC_REGIDX_BIT(FMC_STAT1_REG_OFFSET, 2U), /*!< FMC bank1 operation error flag bit */ + FMC_FLAG_BANK1_WPERR = FMC_REGIDX_BIT(FMC_STAT1_REG_OFFSET, 4U), /*!< FMC bank1 erase/program protection error flag bit */ + FMC_FLAG_BANK1_END = FMC_REGIDX_BIT(FMC_STAT1_REG_OFFSET, 5U), /*!< FMC bank1 end of operation flag bit */ +}fmc_flag_enum; + +/* FMC interrupt flags */ +typedef enum +{ + FMC_INT_FLAG_BANK0_PGERR = FMC_REGIDX_BITS(FMC_STAT0_REG_OFFSET, 2U, 10U), /*!< FMC bank0 operation error interrupt flag bit */ + FMC_INT_FLAG_BANK0_WPERR = FMC_REGIDX_BITS(FMC_STAT0_REG_OFFSET, 4U, 10U), /*!< FMC bank0 erase/program protection error interrupt flag bit */ + FMC_INT_FLAG_BANK0_END = FMC_REGIDX_BITS(FMC_STAT0_REG_OFFSET, 5U, 12U), /*!< FMC bank0 end of operation interrupt flag bit */ + FMC_INT_FLAG_BANK1_PGERR = FMC_REGIDX_BITS(FMC_STAT1_REG_OFFSET, 2U, 10U), /*!< FMC bank1 operation error interrupt flag bit */ + FMC_INT_FLAG_BANK1_WPERR = FMC_REGIDX_BITS(FMC_STAT1_REG_OFFSET, 4U, 10U), /*!< FMC bank1 erase/program protection error interrupt flag bit */ + FMC_INT_FLAG_BANK1_END = FMC_REGIDX_BITS(FMC_STAT1_REG_OFFSET, 5U, 12U), /*!< FMC bank1 end of operation interrupt flag bit */ +}fmc_interrupt_flag_enum; + +/* unlock key */ +#define UNLOCK_KEY0 ((uint32_t)0x45670123U) /*!< unlock key 0 */ +#define UNLOCK_KEY1 ((uint32_t)0xCDEF89ABU) /*!< unlock key 1 */ + +/* FMC wait state counter */ +#define WS_WSCNT(regval) (BITS(0,2) & ((uint32_t)(regval))) +#define WS_WSCNT_0 WS_WSCNT(0) /*!< FMC 0 wait */ +#define WS_WSCNT_1 WS_WSCNT(1) /*!< FMC 1 wait */ +#define WS_WSCNT_2 WS_WSCNT(2) /*!< FMC 2 wait */ + +/* option bytes software/hardware free watch dog timer */ +#define OB_FWDGT_SW ((uint8_t)0x01U) /*!< software free watchdog */ +#define OB_FWDGT_HW ((uint8_t)0x00U) /*!< hardware free watchdog */ + +/* option bytes reset or not entering deep sleep mode */ +#define OB_DEEPSLEEP_NRST ((uint8_t)0x02U) /*!< no reset when entering deepsleep mode */ +#define OB_DEEPSLEEP_RST ((uint8_t)0x00U) /*!< generate a reset instead of entering deepsleep mode */ + +/* option bytes reset or not entering standby mode */ +#define OB_STDBY_NRST ((uint8_t)0x04U) /*!< no reset when entering deepsleep mode */ +#define OB_STDBY_RST ((uint8_t)0x00U) /*!< generate a reset instead of entering standby mode */ + +/* option bytes boot bank value */ +#define OB_BOOT_B0 ((uint8_t)0x08U) /*!< boot from bank0 */ +#define OB_BOOT_B1 ((uint8_t)0x00U) /*!< boot from bank1 */ + +#define OB_USER_MASK ((uint8_t)0xF0U) /*!< MASK value */ + +/* read protect configure */ +#define FMC_NSPC ((uint8_t)0xA5U) /*!< no security protection */ +#define FMC_USPC ((uint8_t)0xBBU) /*!< under security protection */ + +/* OB_SPC */ +#define OB_SPC_SPC ((uint32_t)0x000000FFU) /*!< option byte security protection value */ +#define OB_SPC_SPC_N ((uint32_t)0x0000FF00U) /*!< option byte security protection complement value */ + +/* OB_USER */ +#define OB_USER_USER ((uint32_t)0x00FF0000U) /*!< user option value */ +#define OB_USER_USER_N ((uint32_t)0xFF000000U) /*!< user option complement value */ + +/* OB_WP0 */ +#define OB_WP0_WP0 ((uint32_t)0x000000FFU) /*!< FMC write protection option value */ + +/* OB_WP1 */ +#define OB_WP1_WP1 ((uint32_t)0x0000FF00U) /*!< FMC write protection option complement value */ + +/* OB_WP2 */ +#define OB_WP2_WP2 ((uint32_t)0x00FF0000U) /*!< FMC write protection option value */ + +/* OB_WP3 */ +#define OB_WP3_WP3 ((uint32_t)0xFF000000U) /*!< FMC write protection option complement value */ + +/* option bytes write protection */ +#define OB_WP_0 ((uint32_t)0x00000001U) /*!< erase/program protection of sector 0 */ +#define OB_WP_1 ((uint32_t)0x00000002U) /*!< erase/program protection of sector 1 */ +#define OB_WP_2 ((uint32_t)0x00000004U) /*!< erase/program protection of sector 2 */ +#define OB_WP_3 ((uint32_t)0x00000008U) /*!< erase/program protection of sector 3 */ +#define OB_WP_4 ((uint32_t)0x00000010U) /*!< erase/program protection of sector 4 */ +#define OB_WP_5 ((uint32_t)0x00000020U) /*!< erase/program protection of sector 5 */ +#define OB_WP_6 ((uint32_t)0x00000040U) /*!< erase/program protection of sector 6 */ +#define OB_WP_7 ((uint32_t)0x00000080U) /*!< erase/program protection of sector 7 */ +#define OB_WP_8 ((uint32_t)0x00000100U) /*!< erase/program protection of sector 8 */ +#define OB_WP_9 ((uint32_t)0x00000200U) /*!< erase/program protection of sector 9 */ +#define OB_WP_10 ((uint32_t)0x00000400U) /*!< erase/program protection of sector 10 */ +#define OB_WP_11 ((uint32_t)0x00000800U) /*!< erase/program protection of sector 11 */ +#define OB_WP_12 ((uint32_t)0x00001000U) /*!< erase/program protection of sector 12 */ +#define OB_WP_13 ((uint32_t)0x00002000U) /*!< erase/program protection of sector 13 */ +#define OB_WP_14 ((uint32_t)0x00004000U) /*!< erase/program protection of sector 14 */ +#define OB_WP_15 ((uint32_t)0x00008000U) /*!< erase/program protection of sector 15 */ +#define OB_WP_16 ((uint32_t)0x00010000U) /*!< erase/program protection of sector 16 */ +#define OB_WP_17 ((uint32_t)0x00020000U) /*!< erase/program protection of sector 17 */ +#define OB_WP_18 ((uint32_t)0x00040000U) /*!< erase/program protection of sector 18 */ +#define OB_WP_19 ((uint32_t)0x00080000U) /*!< erase/program protection of sector 19 */ +#define OB_WP_20 ((uint32_t)0x00100000U) /*!< erase/program protection of sector 20 */ +#define OB_WP_21 ((uint32_t)0x00200000U) /*!< erase/program protection of sector 21 */ +#define OB_WP_22 ((uint32_t)0x00400000U) /*!< erase/program protection of sector 22 */ +#define OB_WP_23 ((uint32_t)0x00800000U) /*!< erase/program protection of sector 23 */ +#define OB_WP_24 ((uint32_t)0x01000000U) /*!< erase/program protection of sector 24 */ +#define OB_WP_25 ((uint32_t)0x02000000U) /*!< erase/program protection of sector 25 */ +#define OB_WP_26 ((uint32_t)0x04000000U) /*!< erase/program protection of sector 26 */ +#define OB_WP_27 ((uint32_t)0x08000000U) /*!< erase/program protection of sector 27 */ +#define OB_WP_28 ((uint32_t)0x10000000U) /*!< erase/program protection of sector 28 */ +#define OB_WP_29 ((uint32_t)0x20000000U) /*!< erase/program protection of sector 29 */ +#define OB_WP_30 ((uint32_t)0x40000000U) /*!< erase/program protection of sector 30 */ +#define OB_WP_31 ((uint32_t)0x80000000U) /*!< erase/program protection of sector 31 */ +#define OB_WP_ALL ((uint32_t)0xFFFFFFFFU) /*!< erase/program protection of all sectors */ + +/* FMC timeout */ +#define FMC_TIMEOUT_COUNT ((uint32_t)0x000F0000U) /*!< FMC timeout count value */ + +/* FMC BANK address */ +#define FMC_BANK0_END_ADDRESS ((uint32_t)0x0807FFFFU) /*!< FMC bank0 end address */ +#define FMC_BANK0_SIZE ((uint32_t)0x00000200U) /*!< FMC bank0 size */ +#define FMC_SIZE (*(uint16_t *)0x1FFFF7E0U) /*!< FMC size */ + +/* function declarations */ +/* FMC main memory programming functions */ +/* set the FMC wait state counter */ +void fmc_wscnt_set(uint32_t wscnt); +/* unlock the main FMC operation */ +void fmc_unlock(void); +/* unlock the FMC bank0 operation */ +void fmc_bank0_unlock(void); +/* unlock the FMC bank1 operation */ +void fmc_bank1_unlock(void); +/* lock the main FMC operation */ +void fmc_lock(void); +/* lock the bank0 FMC operation */ +void fmc_bank0_lock(void); +/* lock the bank1 FMC operation */ +void fmc_bank1_lock(void); +/* FMC erase page */ +fmc_state_enum fmc_page_erase(uint32_t page_address); +/* FMC erase whole chip */ +fmc_state_enum fmc_mass_erase(void); +/* FMC erase whole bank0 */ +fmc_state_enum fmc_bank0_erase(void); +/* FMC erase whole bank1 */ +fmc_state_enum fmc_bank1_erase(void); +/* FMC program a word at the corresponding address */ +fmc_state_enum fmc_word_program(uint32_t address, uint32_t data); +/* FMC program a half word at the corresponding address */ +fmc_state_enum fmc_halfword_program(uint32_t address, uint16_t data); + +/* FMC option bytes programming functions */ +/* unlock the option byte operation */ +void ob_unlock(void); +/* lock the option byte operation */ +void ob_lock(void); +/* erase the option byte */ +fmc_state_enum ob_erase(void); +/* enable write protect */ +fmc_state_enum ob_write_protection_enable(uint32_t ob_wp); +/* configure the option byte security protection */ +fmc_state_enum ob_security_protection_config(uint8_t ob_spc); +/* write the FMC option byte */ +fmc_state_enum ob_user_write(uint8_t ob_fwdgt, uint8_t ob_deepsleep, uint8_t ob_stdby, uint8_t ob_boot); +/* program option bytes data */ +fmc_state_enum ob_data_program(uint32_t address, uint8_t data); +/* get the FMC option byte user */ +uint8_t ob_user_get(void); +/* get OB_DATA in register FMC_OBSTAT */ +uint16_t ob_data_get(void); +/* get the FMC option byte write protection */ +uint32_t ob_write_protection_get(void); +/* get option byte security protection code value */ +FlagStatus ob_spc_get(void); + +/* FMC interrupts and flags management functions */ +/* enable FMC interrupt */ +void fmc_interrupt_enable(uint32_t interrupt); +/* disable FMC interrupt */ +void fmc_interrupt_disable(uint32_t interrupt); +/* check flag is set or not */ +FlagStatus fmc_flag_get(uint32_t flag); +/* clear the FMC flag */ +void fmc_flag_clear(uint32_t flag); +/* get FMC interrupt flag state */ +FlagStatus fmc_interrupt_flag_get(fmc_interrupt_flag_enum flag); +/* clear FMC interrupt flag state */ +void fmc_interrupt_flag_clear(fmc_interrupt_flag_enum flag); +/* return the FMC bank0 state */ +fmc_state_enum fmc_bank0_state_get(void); +/* return the FMC bank1 state */ +fmc_state_enum fmc_bank1_state_get(void); +/* check FMC bank0 ready or not */ +fmc_state_enum fmc_bank0_ready_wait(uint32_t timeout); +/* check FMC bank1 ready or not */ +fmc_state_enum fmc_bank1_ready_wait(uint32_t timeout); + +#endif /* GD32F10X_FMC_H */ diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_fwdgt.h b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_fwdgt.h new file mode 100644 index 0000000..8b48cad --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_fwdgt.h @@ -0,0 +1,111 @@ +/*! + \file gd32f10x_fwdgt.h + \brief definitions for the FWDGT + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#ifndef GD32F10X_FWDGT_H +#define GD32F10X_FWDGT_H + +#include "gd32f10x.h" + +/* FWDGT definitions */ +#define FWDGT FWDGT_BASE /*!< FWDGT base address */ + +/* registers definitions */ +#define FWDGT_CTL REG32((FWDGT) + 0x00U) /*!< FWDGT control register */ +#define FWDGT_PSC REG32((FWDGT) + 0x04U) /*!< FWDGT prescaler register */ +#define FWDGT_RLD REG32((FWDGT) + 0x08U) /*!< FWDGT reload register */ +#define FWDGT_STAT REG32((FWDGT) + 0x0CU) /*!< FWDGT status register */ + +/* bits definitions */ +/* FWDGT_CTL */ +#define FWDGT_CTL_CMD BITS(0,15) /*!< FWDGT command value */ + +/* FWDGT_PSC */ +#define FWDGT_PSC_PSC BITS(0,2) /*!< FWDGT prescaler divider value */ + +/* FWDGT_RLD */ +#define FWDGT_RLD_RLD BITS(0,11) /*!< FWDGT counter reload value */ + +/* FWDGT_STAT */ +#define FWDGT_STAT_PUD BIT(0) /*!< FWDGT prescaler divider value update */ +#define FWDGT_STAT_RUD BIT(1) /*!< FWDGT counter reload value update */ + +/* constants definitions */ +/* psc register value */ +#define PSC_PSC(regval) (BITS(0,2) & ((uint32_t)(regval) << 0)) +#define FWDGT_PSC_DIV4 ((uint8_t)PSC_PSC(0)) /*!< FWDGT prescaler set to 4 */ +#define FWDGT_PSC_DIV8 ((uint8_t)PSC_PSC(1)) /*!< FWDGT prescaler set to 8 */ +#define FWDGT_PSC_DIV16 ((uint8_t)PSC_PSC(2)) /*!< FWDGT prescaler set to 16 */ +#define FWDGT_PSC_DIV32 ((uint8_t)PSC_PSC(3)) /*!< FWDGT prescaler set to 32 */ +#define FWDGT_PSC_DIV64 ((uint8_t)PSC_PSC(4)) /*!< FWDGT prescaler set to 64 */ +#define FWDGT_PSC_DIV128 ((uint8_t)PSC_PSC(5)) /*!< FWDGT prescaler set to 128 */ +#define FWDGT_PSC_DIV256 ((uint8_t)PSC_PSC(6)) /*!< FWDGT prescaler set to 256 */ + +/* control value */ +#define FWDGT_WRITEACCESS_ENABLE ((uint16_t)0x5555U) /*!< FWDGT_CTL bits write access enable value */ +#define FWDGT_WRITEACCESS_DISABLE ((uint16_t)0x0000U) /*!< FWDGT_CTL bits write access disable value */ +#define FWDGT_KEY_RELOAD ((uint16_t)0xAAAAU) /*!< FWDGT_CTL bits fwdgt counter reload value */ +#define FWDGT_KEY_ENABLE ((uint16_t)0xCCCCU) /*!< FWDGT_CTL bits fwdgt counter enable value */ + +/* FWDGT timeout value */ +#define FWDGT_PSC_TIMEOUT ((uint32_t)0x000FFFFFU) /*!< FWDGT_PSC register write operation state flag timeout */ +#define FWDGT_RLD_TIMEOUT ((uint32_t)0x000FFFFFU) /*!< FWDGT_RLD register write operation state flag timeout */ + +/* FWDGT flag definitions */ +#define FWDGT_FLAG_PUD FWDGT_STAT_PUD /*!< FWDGT prescaler divider value update flag */ +#define FWDGT_FLAG_RUD FWDGT_STAT_RUD /*!< FWDGT counter reload value update flag */ + +/* write value to FWDGT_RLD_RLD bit field */ +#define RLD_RLD(regval) (BITS(0,11) & ((uint32_t)(regval) << 0)) + +/* function declarations */ +/* enable write access to FWDGT_PSC and FWDGT_RLD */ +void fwdgt_write_enable(void); +/* disable write access to FWDGT_PSC and FWDGT_RLD */ +void fwdgt_write_disable(void); +/* start the free watchdog timer counter */ +void fwdgt_enable(void); + +/* configure the free watchdog timer counter prescaler value */ +ErrStatus fwdgt_prescaler_value_config(uint16_t prescaler_value); +/* configure the free watchdog timer counter reload value */ +ErrStatus fwdgt_reload_value_config(uint16_t reload_value); +/* reload the counter of FWDGT */ +void fwdgt_counter_reload(void); +/* configure counter reload value, and prescaler divider value */ +ErrStatus fwdgt_config(uint16_t reload_value, uint8_t prescaler_div); + +/* get flag state of FWDGT */ +FlagStatus fwdgt_flag_get(uint16_t flag); + +#endif /* GD32F10X_FWDGT_H */ diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_gpio.h b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_gpio.h new file mode 100644 index 0000000000000000000000000000000000000000..76e19c46f9e8456521a20a4e111211fd75f0c9ef GIT binary patch literal 40960 zcmeF&!;&ye6DH8MZQHhO+qP}nwr$(CZN6>W?w)^EGZ*pIsy6jR#@S^?7O9G|2(5&v zp^2#zEio}M={?F@VA;zpV)ZlyVnwX_As_$x>C^oRRsy3KS@RN1>#&Tp$?zbO@V?9p=g?aa?bDfSIxQU-0|n_<>3fQ2y&P zbA43K-`VoQPyXi|BDr^j!XgpE=BL6V6xywUz)=5RUR~bZ|MFk_HaGv5 zccurJ@PG5}$?@%5<)9tMXXZ@bRKSV;_pTVylPWS_RpI|t{NL?Af&T>l6ZlWyKY{-Q z{uB65;6H)?1pX8FPvAd+{{*zLGa!jVy05N5fTi1bx`(aCv;z~YNIaB19fe%ek>Q@ntjg?%P^on<*Fk)V4DVSKQ`)g-g>t`t9;=*3Smh1x#|Dn3MX z_ODc>&cO(=@(6UsWVJzUSfYg`3JRBG%CBX~9rFN^Y!NCnlA)$bwtQM3+r04!tW(DAsgo- zDZ0MS=mk$yyIfj?^1Ng#8MgkdwXaYjMMJKY&+3oTiL{8Uup^C$QpbTo6NfQx0MHFj zbqctp=2r4EDkJ;WI+XUch+Up!Tu!{wc6YBB<6xYRFi>GqwM9fs9Lm`? z-X0@1u~R`(|N6_Z{oO-ETx|r@kMY%p!C7T;31=b$aohiRhm1RCGCtF%IZ)zigj`ZQ zqn=sy?*CS?%NwSmlhCEDgx>J>e&yw1$Jw5hgkZ0EeS=cE&3#~ zt&d*^m)jUS0=so4dl=rzR2gNw5AIYZvI8A$IFMiwgK~8#Pl@2)5h{d$v7Lk`I{*3M zx4xEbVXut-+)KB*=1&SFA=T2EVf#~6d%rh ziWkG}M>@FS=rU6yd?fN3a!0~j79|s$@`i`z#Wpd(v(ZbSnFh^euk!QX&Cab;s`%H4 zlUiD`IS8+Hl>u+z0(~MOOuuBR@tz3JN(QwSJ5d0&Zp;nEUFiKP4+!}_hJ?|V1plyZ z5BiaKCyIY#jxx{gOIITlYzO~I=7E{o#}JNCg-V{ol~mE=8I^^Wr97@+$$F_?Te0&nkj>*;1w>boJ0CZd;_zTVQM8(Vsi*pR&supnA-l&=6Gx7`!3 zzCgsx$8rNKy1p93=!YV1e1(88DOhzj$*|mh@wMaaTu}pKH`7Vp1$@X-hU@~fOe>>R z6O7jllMiw0ll-pQO9dlj)VNc;X5Wf1e;x-?nSba=O+P{dZGy z{L!S9fdJRv10!?otR2h4vW0xHCOL2^u_m`zLh~A_O46NbsgWprBlhmhs5q67vmQ>m zH2v@nr^`#&B_`;0`~@SQV#%O8Xd_TE2Osg>-j{Mb=nz1Vly|9ZaK+>72}$4sNteNfx z%FJ@AYuqP`GU%OnvOU-8Hpvo}5;@H>jB47I|DZymwV_lJ=Hj(pzvDcurb}`~3FzF4 zY?`Dv9kV<2w{%m+eL0kQfO0n=Iwpj#;JHQr`{0upS@Qd?t}`ozNq5LID=&HcV%YIJ zXHi1=Wnf!)ZkKjeR|d0q-p){WyQLocgE-xWQoB_7 zmy*zT!XRb=$zNWDLTdmEZZ;RL)!Xi)zf;)iI%L%|7hpjR*qF1W!D}7CV6%rLXf}hr zAkWFu@O((O6{=!ry!{=X7Y|qQMXSk!V5OshY4q|cBE$MVvbSe$ ze`W9-?VUdf@^RP#U*~-~nfWkYr^RR$V8Oc6rqGbknz&$RQ-@us7K~v3-7!Y|UAp!A zZHNkjMHC3g2NL*cd9zIouy=NzKXac#E*WL}cQra|4}fa*k840ER4g+gR18P8ifk!U zKrW`=_E1u-bfsN1@qwP+oeE%h$;l*UhHZc;87DYH1QAw*5SW?Ts&v?nd>x znA|by^sW!CF*@}R4eMzP66H_X)e;yZgf&Tsa2V;MAJLFT0{1YGHqraDu>>+F zyP1^WNZ1{{=fxl=crlJW9c-jrBNxz{{d&IR{Ibk>*ug0g#L!nmtUkPbp0jINaQDy{ z{OA{<^ea9Dar|wMX)@!ngSC72Pgsh^E5d6?g-1C;SW$Yf&mzBS#)DG$pJHtzEElZR zMuGk-Lwl7-izBsF5xYhub68m=B^BGNC9Ut+H?q~%z&Ta49@iIY=)`>l7j5U%4Q z{T%d+t)>E$>4JVfzrelA$XMhS{>5>F+Z2fD^H@0MPHY|`r7r)j^u-2}3wySkKCDPIfl{jX8t4ENw6>)t%$RbbXH=5VL8=sI$>_IeYrfbt&ecx#WMMjKXIR$c8hME-0}UWi z#;>K$;x5BVL-`2W?Ojvx2lo3*T*hN@I{RE@A*QO_HK&X!{v%MkRo7F0dS1+Z$NTQJ z(N!w_e7eW`*0&fxAc!4tyiRAcda-^pDhw3oc)A7^;;7;X;Om($vmH=2^y%96^H zK5lhc&m0=etKCeBg=cL$!Z}uiDIoDiSL=%<>VkS|j8*Ph-^h$LJn(!Ht2-6xg&IY@ zYN^vwO+On>v!YUVUI8*JCl9M-BUpCl$oqji>D;3?ife}Dri@I6=_qHy+CEk-c1K~h zGur-M7!y<2O2ntbScQnaz3@rkf_^S>+{U-i8!tca4cZBG2X8TLI|0djtXt;RR2RG{ z3b@IWJ?#2hcx)86E>z_dhNpfq^;=hnw#FhCNQneQ;G{Zn+Nk<^0 zlJf1=0MCx>ZiU#BVx2c%#K+|$<_^jpmImtu_(V(v8kku8tA~U0hab(Ku+@BJ7Km6+ z_t{t=`MD!PJkX8Eo5RLcyBIf3M(i+MogLhcfoyOd4cXtOh4H5C1E!g_ZV8Y^3t^qR zrUrsLHHlx;z>_Uk585T9!dN%#EtS$v7YpO9B2m*ro)3zR(!A^M$rN5;eL3~~KPnnJ zn}28f3;vw<62l!wz>qP*ABj@mL^~bpyl_%cMw~>C>p77AK7$C<b^=_g2|Di}&wEFr3BM%iy=(Ctd~8Nx88?8D^9j^>P*#%TPnf7SoH?d>u#{9# zmPuDh8lE2EA<0>DY>#JgKSOpg94WF?Ir^8i%)kMPuXqw#RTXIs(Q5Rjw@E~uT)m}%Ihq9 zEa59sC@_He_9+kY=Fb=2I-y?!-z3;J!G!9Z#dm>o(+oXUVk}MCS`31l28R{y{OmeP z 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 6))) +#define I2C_BIT_POS(val) ((uint32_t)(val) & 0x1FU) +#define I2C_REGIDX_BIT2(regidx, bitpos, regidx2, bitpos2) (((uint32_t)(regidx2) << 22) | (uint32_t)((bitpos2) << 16)\ + | (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))) +#define I2C_REG_VAL2(i2cx, offset) (REG32((i2cx) + ((uint32_t)(offset) >> 22))) +#define I2C_BIT_POS2(val) (((uint32_t)(val) & 0x1F0000U) >> 16) + +/* register offset */ +#define I2C_CTL1_REG_OFFSET 0x04U /*!< CTL1 register offset */ +#define I2C_STAT0_REG_OFFSET 0x14U /*!< STAT0 register offset */ +#define I2C_STAT1_REG_OFFSET 0x18U /*!< STAT1 register offset */ + +/* I2C flags */ +typedef enum +{ + /* flags in STAT0 register */ + I2C_FLAG_SBSEND = I2C_REGIDX_BIT(I2C_STAT0_REG_OFFSET, 0U), /*!< start condition sent out in master mode */ + I2C_FLAG_ADDSEND = I2C_REGIDX_BIT(I2C_STAT0_REG_OFFSET, 1U), /*!< address is sent in master mode or received and matches in slave mode */ + I2C_FLAG_BTC = I2C_REGIDX_BIT(I2C_STAT0_REG_OFFSET, 2U), /*!< byte transmission finishes */ + I2C_FLAG_ADD10SEND = I2C_REGIDX_BIT(I2C_STAT0_REG_OFFSET, 3U), /*!< header of 10-bit address is sent in master mode */ + I2C_FLAG_STPDET = I2C_REGIDX_BIT(I2C_STAT0_REG_OFFSET, 4U), /*!< stop condition detected in slave mode */ + I2C_FLAG_RBNE = I2C_REGIDX_BIT(I2C_STAT0_REG_OFFSET, 6U), /*!< I2C_DATA is not Empty during receiving */ + I2C_FLAG_TBE = I2C_REGIDX_BIT(I2C_STAT0_REG_OFFSET, 7U), /*!< I2C_DATA is empty during transmitting */ + I2C_FLAG_BERR = I2C_REGIDX_BIT(I2C_STAT0_REG_OFFSET, 8U), /*!< a bus error occurs indication a unexpected start or stop condition on I2C bus */ + I2C_FLAG_LOSTARB = I2C_REGIDX_BIT(I2C_STAT0_REG_OFFSET, 9U), /*!< arbitration lost in master mode */ + I2C_FLAG_AERR = I2C_REGIDX_BIT(I2C_STAT0_REG_OFFSET, 10U), /*!< acknowledge error */ + I2C_FLAG_OUERR = I2C_REGIDX_BIT(I2C_STAT0_REG_OFFSET, 11U), /*!< over-run or under-run situation occurs in slave mode */ + I2C_FLAG_PECERR = I2C_REGIDX_BIT(I2C_STAT0_REG_OFFSET, 12U), /*!< PEC error when receiving data */ + I2C_FLAG_SMBTO = I2C_REGIDX_BIT(I2C_STAT0_REG_OFFSET, 14U), /*!< timeout signal in SMBus mode */ + I2C_FLAG_SMBALT = I2C_REGIDX_BIT(I2C_STAT0_REG_OFFSET, 15U), /*!< SMBus alert status */ + /* flags in STAT1 register */ + I2C_FLAG_MASTER = I2C_REGIDX_BIT(I2C_STAT1_REG_OFFSET, 0U), /*!< a flag indicating whether I2C block is in master or slave mode */ + I2C_FLAG_I2CBSY = I2C_REGIDX_BIT(I2C_STAT1_REG_OFFSET, 1U), /*!< busy flag */ + I2C_FLAG_TRS = I2C_REGIDX_BIT(I2C_STAT1_REG_OFFSET, 2U), /*!< whether the I2C is a transmitter or a receiver */ + I2C_FLAG_RXGC = I2C_REGIDX_BIT(I2C_STAT1_REG_OFFSET, 4U), /*!< general call address (00h) received */ + I2C_FLAG_DEFSMB = I2C_REGIDX_BIT(I2C_STAT1_REG_OFFSET, 5U), /*!< default address of SMBus device */ + I2C_FLAG_HSTSMB = I2C_REGIDX_BIT(I2C_STAT1_REG_OFFSET, 6U), /*!< SMBus host header detected in slave mode */ + I2C_FLAG_DUMOD = I2C_REGIDX_BIT(I2C_STAT1_REG_OFFSET, 7U), /*!< dual flag in slave mode indicating which address is matched in dual-address mode */ +}i2c_flag_enum; + +/* I2C interrupt flags */ +typedef enum +{ + /* interrupt flags in CTL1 register */ + I2C_INT_FLAG_SBSEND = I2C_REGIDX_BIT2(I2C_CTL1_REG_OFFSET, 9U, I2C_STAT0_REG_OFFSET, 0U), /*!< start condition sent out in master mode interrupt flag */ + I2C_INT_FLAG_ADDSEND = I2C_REGIDX_BIT2(I2C_CTL1_REG_OFFSET, 9U, I2C_STAT0_REG_OFFSET, 1U), /*!< address is sent in master mode or received and matches in slave mode interrupt flag */ + I2C_INT_FLAG_BTC = I2C_REGIDX_BIT2(I2C_CTL1_REG_OFFSET, 9U, I2C_STAT0_REG_OFFSET, 2U), /*!< byte transmission finishes */ + I2C_INT_FLAG_ADD10SEND = I2C_REGIDX_BIT2(I2C_CTL1_REG_OFFSET, 9U, I2C_STAT0_REG_OFFSET, 3U), /*!< header of 10-bit address is sent in master mode interrupt flag */ + I2C_INT_FLAG_STPDET = I2C_REGIDX_BIT2(I2C_CTL1_REG_OFFSET, 9U, I2C_STAT0_REG_OFFSET, 4U), /*!< stop condition detected in slave mode interrupt flag */ + I2C_INT_FLAG_RBNE = I2C_REGIDX_BIT2(I2C_CTL1_REG_OFFSET, 9U, I2C_STAT0_REG_OFFSET, 6U), /*!< I2C_DATA is not Empty during receiving interrupt flag */ + I2C_INT_FLAG_TBE = I2C_REGIDX_BIT2(I2C_CTL1_REG_OFFSET, 9U, I2C_STAT0_REG_OFFSET, 7U), /*!< I2C_DATA is empty during transmitting interrupt flag */ + I2C_INT_FLAG_BERR = I2C_REGIDX_BIT2(I2C_CTL1_REG_OFFSET, 8U, I2C_STAT0_REG_OFFSET, 8U), /*!< a bus error occurs indication a unexpected start or stop condition on I2C bus interrupt flag */ + I2C_INT_FLAG_LOSTARB = I2C_REGIDX_BIT2(I2C_CTL1_REG_OFFSET, 8U, I2C_STAT0_REG_OFFSET, 9U), /*!< arbitration lost in master mode interrupt flag */ + I2C_INT_FLAG_AERR = I2C_REGIDX_BIT2(I2C_CTL1_REG_OFFSET, 8U, I2C_STAT0_REG_OFFSET, 10U), /*!< acknowledge error interrupt flag */ + I2C_INT_FLAG_OUERR = I2C_REGIDX_BIT2(I2C_CTL1_REG_OFFSET, 8U, I2C_STAT0_REG_OFFSET, 11U), /*!< over-run or under-run situation occurs in slave mode interrupt flag */ + I2C_INT_FLAG_PECERR = I2C_REGIDX_BIT2(I2C_CTL1_REG_OFFSET, 8U, I2C_STAT0_REG_OFFSET, 12U), /*!< PEC error when receiving data interrupt flag */ + I2C_INT_FLAG_SMBTO = I2C_REGIDX_BIT2(I2C_CTL1_REG_OFFSET, 8U, I2C_STAT0_REG_OFFSET, 14U), /*!< timeout signal in SMBus mode interrupt flag */ + I2C_INT_FLAG_SMBALT = I2C_REGIDX_BIT2(I2C_CTL1_REG_OFFSET, 8U, I2C_STAT0_REG_OFFSET, 15U), /*!< SMBus Alert status interrupt flag */ +}i2c_interrupt_flag_enum; + +/* I2C interrupt enable or disable */ +typedef enum +{ + /* interrupt in CTL1 register */ + I2C_INT_ERR = I2C_REGIDX_BIT(I2C_CTL1_REG_OFFSET, 8U), /*!< error interrupt enable */ + I2C_INT_EV = I2C_REGIDX_BIT(I2C_CTL1_REG_OFFSET, 9U), /*!< event interrupt enable */ + I2C_INT_BUF = I2C_REGIDX_BIT(I2C_CTL1_REG_OFFSET, 10U), /*!< buffer interrupt enable */ +}i2c_interrupt_enum; + +/* SMBus/I2C mode switch and SMBus type selection */ +#define I2C_I2CMODE_ENABLE ((uint32_t)0x00000000U) /*!< I2C mode */ +#define I2C_SMBUSMODE_ENABLE I2C_CTL0_SMBEN /*!< SMBus mode */ + +/* SMBus/I2C mode switch and SMBus type selection */ +#define I2C_SMBUS_DEVICE ((uint32_t)0x00000000U) /*!< SMBus mode device type */ +#define I2C_SMBUS_HOST I2C_CTL0_SMBSEL /*!< SMBus mode host type */ + +/* I2C transfer direction */ +#define I2C_RECEIVER ((uint32_t)0x00000001U) /*!< receiver */ +#define I2C_TRANSMITTER ((uint32_t)0xFFFFFFFEU) /*!< transmitter */ + +/* whether or not to send an ACK */ +#define I2C_ACK_DISABLE ((uint32_t)0x00000000U) /*!< ACK will be not sent */ +#define I2C_ACK_ENABLE I2C_CTL0_ACKEN /*!< ACK will be sent */ + +/* I2C POAP position*/ +#define I2C_ACKPOS_CURRENT ((uint32_t)0x00000000U) /*!< ACKEN bit decides whether or not to send ACK or not for the current byte */ +#define I2C_ACKPOS_NEXT I2C_CTL0_POAP /*!< ACKEN bit decides whether or not to send ACK for the next byte */ + +/* I2C dual-address mode switch */ +#define I2C_DUADEN_DISABLE ((uint32_t)0x00000000U) /*!< dual-address mode disabled */ +#define I2C_DUADEN_ENABLE ((uint32_t)0x00000001U) /*!< dual-address mode enabled */ + +/* whether or not to stretch SCL low */ +#define I2C_SCLSTRETCH_ENABLE ((uint32_t)0x00000000U) /*!< SCL stretching is enabled */ +#define I2C_SCLSTRETCH_DISABLE I2C_CTL0_SS /*!< SCL stretching is disabled */ + +/* whether or not to response to a general call */ +#define I2C_GCEN_ENABLE I2C_CTL0_GCEN /*!< slave will response to a general call */ +#define I2C_GCEN_DISABLE ((uint32_t)0x00000000U) /*!< slave will not response to a general call */ + +/* software reset I2C */ +#define I2C_SRESET_SET I2C_CTL0_SRESET /*!< I2C is under reset */ +#define I2C_SRESET_RESET ((uint32_t)0x00000000U) /*!< I2C is not under reset */ + +/* I2C DMA mode configure */ +/* DMA mode switch */ +#define I2C_DMA_ON I2C_CTL1_DMAON /*!< DMA mode enabled */ +#define I2C_DMA_OFF ((uint32_t)0x00000000U) /*!< DMA mode disabled */ + +/* flag indicating DMA last transfer */ +#define I2C_DMALST_ON I2C_CTL1_DMALST /*!< next DMA EOT is the last transfer */ +#define I2C_DMALST_OFF ((uint32_t)0x00000000U) /*!< next DMA EOT is not the last transfer */ + +/* I2C PEC configure */ +/* PEC enable */ +#define I2C_PEC_ENABLE I2C_CTL0_PECEN /*!< PEC calculation on */ +#define I2C_PEC_DISABLE ((uint32_t)0x00000000U) /*!< PEC calculation off */ + +/* PEC transfer */ +#define I2C_PECTRANS_ENABLE I2C_CTL0_PECTRANS /*!< transfer PEC */ +#define I2C_PECTRANS_DISABLE ((uint32_t)0x00000000U) /*!< not transfer PEC value */ + +/* I2C SMBus configure */ +/* issue or not alert through SMBA pin */ +#define I2C_SALTSEND_ENABLE I2C_CTL0_SALT /*!< issue alert through SMBA pin */ +#define I2C_SALTSEND_DISABLE ((uint32_t)0x00000000U) /*!< not issue alert through SMBA */ + +/* ARP protocol in SMBus switch */ +#define I2C_ARP_ENABLE I2C_CTL0_ARPEN /*!< ARP is enabled */ +#define I2C_ARP_DISABLE ((uint32_t)0x00000000U) /*!< ARP is disabled */ + +/* transmit I2C data */ +#define DATA_TRANS(regval) (BITS(0,7) & ((uint32_t)(regval) << 0)) + +/* receive I2C data */ +#define DATA_RECV(regval) GET_BITS((uint32_t)(regval), 0, 7) + +/* I2C duty cycle in fast mode */ +#define I2C_DTCY_2 ((uint32_t)0x00000000U) /*!< I2C fast mode Tlow/Thigh = 2 */ +#define I2C_DTCY_16_9 I2C_CKCFG_DTCY /*!< I2C fast mode Tlow/Thigh = 16/9 */ + +/* address mode for the I2C slave */ +#define I2C_ADDFORMAT_7BITS ((uint32_t)0x00000000U) /*!< address:7 bits */ +#define I2C_ADDFORMAT_10BITS I2C_SADDR0_ADDFORMAT /*!< address:10 bits */ + +/* function declarations */ +/* initialization functions */ +/* reset I2C */ +void i2c_deinit(uint32_t i2c_periph); +/* configure I2C clock */ +void i2c_clock_config(uint32_t i2c_periph, uint32_t clkspeed, uint32_t dutycyc); +/* configure I2C address */ +void i2c_mode_addr_config(uint32_t i2c_periph, uint32_t mode, uint32_t addformat, uint32_t addr); + +/* application function declarations */ +/* select SMBus type */ +void i2c_smbus_type_config(uint32_t i2c_periph, uint32_t type); +/* whether or not to send an ACK */ +void i2c_ack_config(uint32_t i2c_periph, uint32_t ack); +/* configure I2C POAP position */ +void i2c_ackpos_config(uint32_t i2c_periph, uint32_t pos); +/* master sends slave address */ +void i2c_master_addressing(uint32_t i2c_periph, uint32_t addr, uint32_t trandirection); +/* enable dual-address mode */ +void i2c_dualaddr_enable(uint32_t i2c_periph, uint32_t addr); +/* disable dual-address mode */ +void i2c_dualaddr_disable(uint32_t i2c_periph); +/* enable I2C */ +void i2c_enable(uint32_t i2c_periph); +/* disable I2C */ +void i2c_disable(uint32_t i2c_periph); +/* generate a START condition on I2C bus */ +void i2c_start_on_bus(uint32_t i2c_periph); +/* generate a STOP condition on I2C bus */ +void i2c_stop_on_bus(uint32_t i2c_periph); +/* I2C transmit data function */ +void i2c_data_transmit(uint32_t i2c_periph, uint8_t data); +/* I2C receive data function */ +uint8_t i2c_data_receive(uint32_t i2c_periph); +/* configure I2C DMA mode */ +void i2c_dma_config(uint32_t i2c_periph, uint32_t dmastate); +/* configure whether next DMA EOT is DMA last transfer or not */ +void i2c_dma_last_transfer_config(uint32_t i2c_periph, uint32_t dmalast); +/* whether to stretch SCL low when data is not ready in slave mode */ +void i2c_stretch_scl_low_config(uint32_t i2c_periph, uint32_t stretchpara); +/* whether or not to response to a general call */ +void i2c_slave_response_to_gcall_config(uint32_t i2c_periph, uint32_t gcallpara); +/* configure software reset of I2C */ +void i2c_software_reset_config(uint32_t i2c_periph, uint32_t sreset); +/* configure I2C PEC calculation */ +void i2c_pec_config(uint32_t i2c_periph, uint32_t pecstate); +/* configure whether to transfer PEC value */ +void i2c_pec_transfer_config(uint32_t i2c_periph, uint32_t pecpara); +/* get packet error checking value */ +uint8_t i2c_pec_value_get(uint32_t i2c_periph); +/* configure I2C alert through SMBA pin */ +void i2c_smbus_alert_config(uint32_t i2c_periph, uint32_t smbuspara); +/* configure I2C ARP protocol in SMBus */ +void i2c_smbus_arp_config(uint32_t i2c_periph, uint32_t arpstate); + +/* interrupt & flag functions */ +/* get I2C flag status */ +FlagStatus i2c_flag_get(uint32_t i2c_periph, i2c_flag_enum flag); +/* clear I2C flag status */ +void i2c_flag_clear(uint32_t i2c_periph, i2c_flag_enum flag); +/* enable I2C interrupt */ +void i2c_interrupt_enable(uint32_t i2c_periph, i2c_interrupt_enum interrupt); +/* disable I2C interrupt */ +void i2c_interrupt_disable(uint32_t i2c_periph, i2c_interrupt_enum interrupt); +/* get I2C interrupt flag status */ +FlagStatus i2c_interrupt_flag_get(uint32_t i2c_periph, i2c_interrupt_flag_enum int_flag); +/* clear I2C interrupt flag status */ +void i2c_interrupt_flag_clear(uint32_t i2c_periph, i2c_interrupt_flag_enum int_flag); + +#endif /* GD32E10X_I2C_H */ diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_misc.h b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_misc.h new file mode 100644 index 0000000..3d63018 --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_misc.h @@ -0,0 +1,91 @@ +/*! + \file gd32f10x_misc.h + \brief definitions for the MISC + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#ifndef GD32F10X_MISC_H +#define GD32F10X_MISC_H + +#include "gd32f10x.h" + +/* constants definitions */ +/* set the RAM and FLASH base address */ +#define NVIC_VECTTAB_RAM ((uint32_t)0x20000000U) /*!< RAM base address */ +#define NVIC_VECTTAB_FLASH ((uint32_t)0x08000000U) /*!< Flash base address */ + +/* set the NVIC vector table offset mask */ +#define NVIC_VECTTAB_OFFSET_MASK ((uint32_t)0x1FFFFF80U) + +/* the register key mask, if you want to do the write operation, you should write 0x5FA to VECTKEY bits */ +#define NVIC_AIRCR_VECTKEY_MASK ((uint32_t)0x05FA0000U) + +/* priority group - define the pre-emption priority and the subpriority */ +#define NVIC_PRIGROUP_PRE0_SUB4 ((uint32_t)0x00000700U) /*!< 0 bits for pre-emption priority, 4 bits for subpriority */ +#define NVIC_PRIGROUP_PRE1_SUB3 ((uint32_t)0x00000600U) /*!< 1 bits for pre-emption priority, 3 bits for subpriority */ +#define NVIC_PRIGROUP_PRE2_SUB2 ((uint32_t)0x00000500U) /*!< 2 bits for pre-emption priority, 2 bits for subpriority */ +#define NVIC_PRIGROUP_PRE3_SUB1 ((uint32_t)0x00000400U) /*!< 3 bits for pre-emption priority, 1 bits for subpriority */ +#define NVIC_PRIGROUP_PRE4_SUB0 ((uint32_t)0x00000300U) /*!< 4 bits for pre-emption priority, 0 bits for subpriority */ + +/* choose the method to enter or exit the low power mode */ +#define SCB_SCR_SLEEPONEXIT ((uint8_t)0x02U) /*!< choose the system whether enter low power mode by exiting from ISR */ +#define SCB_SCR_SLEEPDEEP ((uint8_t)0x04U) /*!< choose the system enter the DEEPSLEEP mode or SLEEP mode */ +#define SCB_SCR_SEVONPEND ((uint8_t)0x10U) /*!< choose the interrupt source that can wake up the low power mode */ + +#define SCB_LPM_SLEEP_EXIT_ISR SCB_SCR_SLEEPONEXIT +#define SCB_LPM_DEEPSLEEP SCB_SCR_SLEEPDEEP +#define SCB_LPM_WAKE_BY_ALL_INT SCB_SCR_SEVONPEND + +/* choose the systick clock source */ +#define SYSTICK_CLKSOURCE_HCLK_DIV8 ((uint32_t)0xFFFFFFFBU) /*!< systick clock source is from HCLK/8 */ +#define SYSTICK_CLKSOURCE_HCLK ((uint32_t)0x00000004U) /*!< systick clock source is from HCLK */ + +/* function declarations */ +/* set the priority group */ +void nvic_priority_group_set(uint32_t nvic_prigroup); + +/* enable NVIC interrupt request */ +void nvic_irq_enable(uint8_t nvic_irq, uint8_t nvic_irq_pre_priority, uint8_t nvic_irq_sub_priority); +/* disable NVIC interrupt request */ +void nvic_irq_disable(uint8_t nvic_irq); + +/* set the NVIC vector table base address */ +void nvic_vector_table_set(uint32_t nvic_vict_tab, uint32_t offset); + +/* set the state of the low power mode */ +void system_lowpower_set(uint8_t lowpower_mode); +/* reset the state of the low power mode */ +void system_lowpower_reset(uint8_t lowpower_mode); + +/* set the systick clock source */ +void systick_clksource_set(uint32_t systick_clksource); + +#endif /* GD32F10X_MISC_H */ diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_pmu.h b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_pmu.h new file mode 100644 index 0000000..65a1d3f --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_pmu.h @@ -0,0 +1,126 @@ +/*! + \file gd32f10x_pmu.h + \brief definitions for the PMU + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#ifndef GD32F10X_PMU_H +#define GD32F10X_PMU_H + +#include "gd32f10x.h" + +/* PMU definitions */ +#define PMU PMU_BASE /*!< PMU base address */ + +/* registers definitions */ +#define PMU_CTL REG32((PMU) + 0x00000000U) /*!< PMU control register */ +#define PMU_CS REG32((PMU) + 0x00000004U) /*!< PMU control and status register */ + +/* bits definitions */ +/* PMU_CTL */ +#define PMU_CTL_LDOLP BIT(0) /*!< LDO low power mode */ +#define PMU_CTL_STBMOD BIT(1) /*!< standby mode */ +#define PMU_CTL_WURST BIT(2) /*!< wakeup flag reset */ +#define PMU_CTL_STBRST BIT(3) /*!< standby flag reset */ +#define PMU_CTL_LVDEN BIT(4) /*!< low voltage detector enable */ +#define PMU_CTL_LVDT BITS(5,7) /*!< low voltage detector threshold */ +#define PMU_CTL_BKPWEN BIT(8) /*!< backup domain write enable */ + +/* PMU_CS */ +#define PMU_CS_WUF BIT(0) /*!< wakeup flag */ +#define PMU_CS_STBF BIT(1) /*!< standby flag */ +#define PMU_CS_LVDF BIT(2) /*!< low voltage detector status flag */ +#define PMU_CS_WUPEN BIT(8) /*!< wakeup pin enable */ + +/* constants definitions */ +/* PMU ldo definitions */ +#define PMU_LDO_NORMAL ((uint32_t)0x00000000U) /*!< LDO normal work when PMU enter deepsleep mode */ +#define PMU_LDO_LOWPOWER PMU_CTL_LDOLP /*!< LDO work at low power status when PMU enter deepsleep mode */ + +/* PMU low voltage detector threshold definitions */ +#define CTL_LVDT(regval) (BITS(5,7)&((uint32_t)(regval) << 5)) +#define PMU_LVDT_0 CTL_LVDT(0) /*!< voltage threshold is 2.2V */ +#define PMU_LVDT_1 CTL_LVDT(1) /*!< voltage threshold is 2.3V */ +#define PMU_LVDT_2 CTL_LVDT(2) /*!< voltage threshold is 2.4V */ +#define PMU_LVDT_3 CTL_LVDT(3) /*!< voltage threshold is 2.5V */ +#define PMU_LVDT_4 CTL_LVDT(4) /*!< voltage threshold is 2.6V */ +#define PMU_LVDT_5 CTL_LVDT(5) /*!< voltage threshold is 2.7V */ +#define PMU_LVDT_6 CTL_LVDT(6) /*!< voltage threshold is 2.8V */ +#define PMU_LVDT_7 CTL_LVDT(7) /*!< voltage threshold is 2.9V */ + +/* PMU flag definitions */ +#define PMU_FLAG_WAKEUP PMU_CS_WUF /*!< wakeup flag status */ +#define PMU_FLAG_STANDBY PMU_CS_STBF /*!< standby flag status */ +#define PMU_FLAG_LVD PMU_CS_LVDF /*!< lvd flag status */ + +/* PMU flag reset definitions */ +#define PMU_FLAG_RESET_WAKEUP ((uint8_t)0x00U) /*!< wakeup flag reset */ +#define PMU_FLAG_RESET_STANDBY ((uint8_t)0x01U) /*!< standby flag reset */ + +/* PMU command constants definitions */ +#define WFI_CMD ((uint8_t)0x00U) /*!< use WFI command */ +#define WFE_CMD ((uint8_t)0x01U) /*!< use WFE command */ + +/* function declarations */ +/* reset PMU registers */ +void pmu_deinit(void); + +/* LVD functions */ +/* select low voltage detector threshold */ +void pmu_lvd_select(uint32_t lvdt_n); +/* disable PMU lvd */ +void pmu_lvd_disable(void); + +/* set PMU mode */ +/* PMU work in sleep mode */ +void pmu_to_sleepmode(uint8_t sleepmodecmd); +/* PMU work in deepsleep mode */ +void pmu_to_deepsleepmode(uint32_t ldo, uint8_t deepsleepmodecmd); +/* PMU work in standby mode */ +void pmu_to_standbymode(void); +/* enable PMU wakeup pin */ +void pmu_wakeup_pin_enable(void); +/* disable PMU wakeup pin */ +void pmu_wakeup_pin_disable(void); + +/* backup related functions */ +/* enable write access to the registers in backup domain */ +void pmu_backup_write_enable(void); +/* disable write access to the registers in backup domain */ +void pmu_backup_write_disable(void); + +/* flag functions */ +/* get flag state */ +FlagStatus pmu_flag_get(uint32_t flag); +/* clear flag bit */ +void pmu_flag_clear(uint32_t flag); + +#endif /* GD32F10X_PMU_H */ diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_rcu.h b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_rcu.h new file mode 100644 index 0000000..b9aa80f --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_rcu.h @@ -0,0 +1,919 @@ +/*! + \file gd32f10x_rcu.h + \brief definitions for the RCU + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#ifndef GD32F10X_RCU_H +#define GD32F10X_RCU_H + +#include "gd32f10x.h" + +/* RCU definitions */ +#define RCU RCU_BASE + +/* registers definitions */ +#if (defined(GD32F10X_MD) || defined(GD32F10X_HD) || defined(GD32F10X_XD)) +#define RCU_CTL REG32(RCU + 0x00U) /*!< control register */ +#define RCU_CFG0 REG32(RCU + 0x04U) /*!< clock configuration register 0 */ +#define RCU_INT REG32(RCU + 0x08U) /*!< clock interrupt register */ +#define RCU_APB2RST REG32(RCU + 0x0CU) /*!< APB2 reset register */ +#define RCU_APB1RST REG32(RCU + 0x10U) /*!< APB1 reset register */ +#define RCU_AHBEN REG32(RCU + 0x14U) /*!< AHB enable register */ +#define RCU_APB2EN REG32(RCU + 0x18U) /*!< APB2 enable register */ +#define RCU_APB1EN REG32(RCU + 0x1CU) /*!< APB1 enable register */ +#define RCU_BDCTL REG32(RCU + 0x20U) /*!< backup domain control register */ +#define RCU_RSTSCK REG32(RCU + 0x24U) /*!< reset source / clock register */ +#define RCU_DSV REG32(RCU + 0x34U) /*!< deep-sleep mode voltage register */ +#elif defined(GD32F10X_CL) +#define RCU_CTL REG32(RCU + 0x00U) /*!< control register */ +#define RCU_CFG0 REG32(RCU + 0x04U) /*!< clock configuration register 0 */ +#define RCU_INT REG32(RCU + 0x08U) /*!< clock interrupt register */ +#define RCU_APB2RST REG32(RCU + 0x0CU) /*!< APB2 reset register */ +#define RCU_APB1RST REG32(RCU + 0x10U) /*!< APB1 reset register */ +#define RCU_AHBEN REG32(RCU + 0x14U) /*!< AHB1 enable register */ +#define RCU_APB2EN REG32(RCU + 0x18U) /*!< APB2 enable register */ +#define RCU_APB1EN REG32(RCU + 0x1CU) /*!< APB1 enable register */ +#define RCU_BDCTL REG32(RCU + 0x20U) /*!< backup domain control register */ +#define RCU_RSTSCK REG32(RCU + 0x24U) /*!< reset source / clock register */ +#define RCU_AHBRST REG32(RCU + 0x28U) /*!< AHB reset register */ +#define RCU_CFG1 REG32(RCU + 0x2CU) /*!< clock configuration register 1 */ +#define RCU_DSV REG32(RCU + 0x34U) /*!< deep-sleep mode voltage register */ +#endif /* GD32F10X_MD and GD32F10X_HD and GD32F10X_XD */ + +/* bits definitions */ +/* RCU_CTL */ +#if (defined(GD32F10X_MD) || defined(GD32F10X_HD) || defined(GD32F10X_XD)) +#define RCU_CTL_IRC8MEN BIT(0) /*!< internal high speed oscillator enable */ +#define RCU_CTL_IRC8MSTB BIT(1) /*!< IRC8M high speed internal oscillator stabilization flag */ +#define RCU_CTL_IRC8MADJ BITS(3,7) /*!< high speed internal oscillator clock trim adjust value */ +#define RCU_CTL_IRC8MCALIB BITS(8,15) /*!< high speed internal oscillator calibration value register */ +#define RCU_CTL_HXTALEN BIT(16) /*!< external high speed oscillator enable */ +#define RCU_CTL_HXTALSTB BIT(17) /*!< external crystal oscillator clock stabilization flag */ +#define RCU_CTL_HXTALBPS BIT(18) /*!< external crystal oscillator clock bypass mode enable */ +#define RCU_CTL_CKMEN BIT(19) /*!< HXTAL clock monitor enable */ +#define RCU_CTL_PLLEN BIT(24) /*!< PLL enable */ +#define RCU_CTL_PLLSTB BIT(25) /*!< PLL clock stabilization flag */ +#elif defined(GD32F10X_CL) +#define RCU_CTL_IRC8MEN BIT(0) /*!< internal high speed oscillator enable */ +#define RCU_CTL_IRC8MSTB BIT(1) /*!< IRC8M high speed internal oscillator stabilization flag */ +#define RCU_CTL_IRC8MADJ BITS(3,7) /*!< high speed internal oscillator clock trim adjust value */ +#define RCU_CTL_IRC8MCALIB BITS(8,15) /*!< high speed internal oscillator calibration value register */ +#define RCU_CTL_HXTALEN BIT(16) /*!< external high speed oscillator enable */ +#define RCU_CTL_HXTALSTB BIT(17) /*!< external crystal oscillator clock stabilization flag */ +#define RCU_CTL_HXTALBPS BIT(18) /*!< external crystal oscillator clock bypass mode enable */ +#define RCU_CTL_CKMEN BIT(19) /*!< HXTAL clock monitor enable */ +#define RCU_CTL_PLLEN BIT(24) /*!< PLL enable */ +#define RCU_CTL_PLLSTB BIT(25) /*!< PLL clock stabilization flag */ +#define RCU_CTL_PLL1EN BIT(26) /*!< PLL1 enable */ +#define RCU_CTL_PLL1STB BIT(27) /*!< PLL1 clock stabilization flag */ +#define RCU_CTL_PLL2EN BIT(28) /*!< PLL2 enable */ +#define RCU_CTL_PLL2STB BIT(29) /*!< PLL2 clock stabilization flag */ +#endif /* GD32F10X_MD and GD32F10X_HD and GD32F10X_XD */ + +/* RCU_CFG0 */ +#if (defined(GD32F10X_MD) || defined(GD32F10X_HD) || defined(GD32F10X_XD)) +#define RCU_CFG0_SCS BITS(0,1) /*!< system clock switch */ +#define RCU_CFG0_SCSS BITS(2,3) /*!< system clock switch status */ +#define RCU_CFG0_AHBPSC BITS(4,7) /*!< AHB prescaler selection */ +#define RCU_CFG0_APB1PSC BITS(8,10) /*!< APB1 prescaler selection */ +#define RCU_CFG0_APB2PSC BITS(11,13) /*!< APB2 prescaler selection */ +#define RCU_CFG0_ADCPSC BITS(14,15) /*!< ADC prescaler selection */ +#define RCU_CFG0_PLLSEL BIT(16) /*!< PLL clock source selection */ +#define RCU_CFG0_PREDV0 BIT(17) /*!< PREDV0 division factor */ +#define RCU_CFG0_PLLMF BITS(18,21) /*!< PLL clock multiplication factor */ +#define RCU_CFG0_USBDPSC BITS(22,23) /*!< USBD clock prescaler selection */ +#define RCU_CFG0_CKOUT0SEL BITS(24,26) /*!< CKOUT0 clock source selection */ +#define RCU_CFG0_PLLMF_4 BIT(27) /*!< bit 4 of PLLMF */ +#define RCU_CFG0_ADCPSC_2 BIT(28) /*!< bit 2 of ADCPSC */ +#elif defined(GD32F10X_CL) +#define RCU_CFG0_SCS BITS(0,1) /*!< system clock switch */ +#define RCU_CFG0_SCSS BITS(2,3) /*!< system clock switch status */ +#define RCU_CFG0_AHBPSC BITS(4,7) /*!< AHB prescaler selection */ +#define RCU_CFG0_APB1PSC BITS(8,10) /*!< APB1 prescaler selection */ +#define RCU_CFG0_APB2PSC BITS(11,13) /*!< APB2 prescaler selection */ +#define RCU_CFG0_ADCPSC BITS(14,15) /*!< ADC prescaler selection */ +#define RCU_CFG0_PLLSEL BIT(16) /*!< PLL clock source selection */ +#define RCU_CFG0_PREDV0_LSB BIT(17) /*!< the LSB of PREDV0 division factor */ +#define RCU_CFG0_PLLMF BITS(18,21) /*!< PLL clock multiplication factor */ +#define RCU_CFG0_USBFSPSC BITS(22,23) /*!< USBFS clock prescaler selection */ +#define RCU_CFG0_CKOUT0SEL BITS(24,27) /*!< CKOUT0 clock source selection */ +#define RCU_CFG0_ADCPSC_2 BIT(28) /*!< bit 2 of ADCPSC */ +#define RCU_CFG0_PLLMF_4 BIT(29) /*!< bit 4 of PLLMF */ +#endif /* GD32F10X_MD and GD32F10X_HD and GD32F10X_XD */ + +/* RCU_INT */ +#if (defined(GD32F10X_MD) || defined(GD32F10X_HD) || defined(GD32F10X_XD)) +#define RCU_INT_IRC40KSTBIF BIT(0) /*!< IRC40K stabilization interrupt flag */ +#define RCU_INT_LXTALSTBIF BIT(1) /*!< LXTAL stabilization interrupt flag */ +#define RCU_INT_IRC8MSTBIF BIT(2) /*!< IRC8M stabilization interrupt flag */ +#define RCU_INT_HXTALSTBIF BIT(3) /*!< HXTAL stabilization interrupt flag */ +#define RCU_INT_PLLSTBIF BIT(4) /*!< PLL stabilization interrupt flag */ +#define RCU_INT_CKMIF BIT(7) /*!< HXTAL clock stuck interrupt flag */ +#define RCU_INT_IRC40KSTBIE BIT(8) /*!< IRC40K stabilization interrupt enable */ +#define RCU_INT_LXTALSTBIE BIT(9) /*!< LXTAL stabilization interrupt enable */ +#define RCU_INT_IRC8MSTBIE BIT(10) /*!< IRC8M stabilization interrupt enable */ +#define RCU_INT_HXTALSTBIE BIT(11) /*!< HXTAL stabilization interrupt enable */ +#define RCU_INT_PLLSTBIE BIT(12) /*!< PLL stabilization interrupt enable */ +#define RCU_INT_IRC40KSTBIC BIT(16) /*!< IRC40K Stabilization interrupt clear */ +#define RCU_INT_LXTALSTBIC BIT(17) /*!< LXTAL Stabilization interrupt clear */ +#define RCU_INT_IRC8MSTBIC BIT(18) /*!< IRC8M Stabilization interrupt clear */ +#define RCU_INT_HXTALSTBIC BIT(19) /*!< HXTAL Stabilization interrupt clear */ +#define RCU_INT_PLLSTBIC BIT(20) /*!< PLL stabilization interrupt clear */ +#define RCU_INT_CKMIC BIT(23) /*!< HXTAL clock stuck interrupt clear */ +#elif defined(GD32F10X_CL) +#define RCU_INT_IRC40KSTBIF BIT(0) /*!< IRC40K stabilization interrupt flag */ +#define RCU_INT_LXTALSTBIF BIT(1) /*!< LXTAL stabilization interrupt flag */ +#define RCU_INT_IRC8MSTBIF BIT(2) /*!< IRC8M stabilization interrupt flag */ +#define RCU_INT_HXTALSTBIF BIT(3) /*!< HXTAL stabilization interrupt flag */ +#define RCU_INT_PLLSTBIF BIT(4) /*!< PLL stabilization interrupt flag */ +#define RCU_INT_PLL1STBIF BIT(5) /*!< PLL1 stabilization interrupt flag */ +#define RCU_INT_PLL2STBIF BIT(6) /*!< PLL2 stabilization interrupt flag */ +#define RCU_INT_CKMIF BIT(7) /*!< HXTAL clock stuck interrupt flag */ +#define RCU_INT_IRC40KSTBIE BIT(8) /*!< IRC40K stabilization interrupt enable */ +#define RCU_INT_LXTALSTBIE BIT(9) /*!< LXTAL stabilization interrupt enable */ +#define RCU_INT_IRC8MSTBIE BIT(10) /*!< IRC8M stabilization interrupt enable */ +#define RCU_INT_HXTALSTBIE BIT(11) /*!< HXTAL stabilization interrupt enable */ +#define RCU_INT_PLLSTBIE BIT(12) /*!< PLL stabilization interrupt enable */ +#define RCU_INT_PLL1STBIE BIT(13) /*!< PLL1 stabilization interrupt enable */ +#define RCU_INT_PLL2STBIE BIT(14) /*!< PLL2 stabilization interrupt enable */ +#define RCU_INT_IRC40KSTBIC BIT(16) /*!< IRC40K stabilization interrupt clear */ +#define RCU_INT_LXTALSTBIC BIT(17) /*!< LXTAL stabilization interrupt clear */ +#define RCU_INT_IRC8MSTBIC BIT(18) /*!< IRC8M stabilization interrupt clear */ +#define RCU_INT_HXTALSTBIC BIT(19) /*!< HXTAL stabilization interrupt clear */ +#define RCU_INT_PLLSTBIC BIT(20) /*!< PLL stabilization interrupt clear */ +#define RCU_INT_PLL1STBIC BIT(21) /*!< PLL1 stabilization interrupt clear */ +#define RCU_INT_PLL2STBIC BIT(22) /*!< PLL2 stabilization interrupt clear */ +#define RCU_INT_CKMIC BIT(23) /*!< HXTAL clock stuck interrupt clear */ +#endif /* GD32F10X_MD and GD32F10X_HD and GD32F10X_XD */ + +/* RCU_APB2RST */ +#define RCU_APB2RST_AFRST BIT(0) /*!< alternate function I/O reset */ +#define RCU_APB2RST_PARST BIT(2) /*!< GPIO port A reset */ +#define RCU_APB2RST_PBRST BIT(3) /*!< GPIO port B reset */ +#define RCU_APB2RST_PCRST BIT(4) /*!< GPIO port C reset */ +#define RCU_APB2RST_PDRST BIT(5) /*!< GPIO port D reset */ +#define RCU_APB2RST_PERST BIT(6) /*!< GPIO port E reset */ +#define RCU_APB2RST_PFRST BIT(7) /*!< GPIO port F reset */ +#define RCU_APB2RST_PGRST BIT(8) /*!< GPIO port G reset */ +#define RCU_APB2RST_ADC0RST BIT(9) /*!< ADC0 reset */ +#define RCU_APB2RST_ADC1RST BIT(10) /*!< ADC1 reset */ +#define RCU_APB2RST_TIMER0RST BIT(11) /*!< TIMER0 reset */ +#define RCU_APB2RST_SPI0RST BIT(12) /*!< SPI0 reset */ +#define RCU_APB2RST_TIMER7RST BIT(13) /*!< TIMER7 reset */ +#define RCU_APB2RST_USART0RST BIT(14) /*!< USART0 reset */ +#ifndef GD32F10X_CL +#define RCU_APB2RST_ADC2RST BIT(15) /*!< ADC2 reset */ +#endif /* GD32F10X_CL */ +#ifdef GD32F10X_XD +#define RCU_APB2RST_TIMER8RST BIT(19) /*!< TIMER8 reset */ +#define RCU_APB2RST_TIMER9RST BIT(20) /*!< TIMER9 reset */ +#define RCU_APB2RST_TIMER10RST BIT(21) /*!< TIMER10 reset */ +#endif /* GD32F10X_XD */ + +/* RCU_APB1RST */ +#define RCU_APB1RST_TIMER1RST BIT(0) /*!< TIMER1 reset */ +#define RCU_APB1RST_TIMER2RST BIT(1) /*!< TIMER2 reset */ +#define RCU_APB1RST_TIMER3RST BIT(2) /*!< TIMER3 reset */ +#define RCU_APB1RST_TIMER4RST BIT(3) /*!< TIMER4 reset */ +#define RCU_APB1RST_TIMER5RST BIT(4) /*!< TIMER5 reset */ +#define RCU_APB1RST_TIMER6RST BIT(5) /*!< TIMER6 reset */ +#ifdef GD32F10X_XD +#define RCU_APB1RST_TIMER11RST BIT(6) /*!< TIMER11 reset */ +#define RCU_APB1RST_TIMER12RST BIT(7) /*!< TIMER12 reset */ +#define RCU_APB1RST_TIMER13RST BIT(8) /*!< TIMER13 reset */ +#endif /* GD32F10X_XD */ +#define RCU_APB1RST_WWDGTRST BIT(11) /*!< WWDGT reset */ +#define RCU_APB1RST_SPI1RST BIT(14) /*!< SPI1 reset */ +#define RCU_APB1RST_SPI2RST BIT(15) /*!< SPI2 reset */ +#define RCU_APB1RST_USART1RST BIT(17) /*!< USART1 reset */ +#define RCU_APB1RST_USART2RST BIT(18) /*!< USART2 reset */ +#define RCU_APB1RST_UART3RST BIT(19) /*!< UART3 reset */ +#define RCU_APB1RST_UART4RST BIT(20) /*!< UART4 reset */ +#define RCU_APB1RST_I2C0RST BIT(21) /*!< I2C0 reset */ +#define RCU_APB1RST_I2C1RST BIT(22) /*!< I2C1 reset */ +#if (defined(GD32F10X_MD) || defined(GD32F10X_HD) || defined(GD32F10X_XD)) +#define RCU_APB1RST_USBDRST BIT(23) /*!< USBD reset */ +#endif /* GD32F10X_MD and GD32F10X_HD and GD32F10X_XD */ +#define RCU_APB1RST_CAN0RST BIT(25) /*!< CAN0 reset */ +#ifdef GD32F10X_CL +#define RCU_APB1RST_CAN1RST BIT(26) /*!< CAN1 reset */ +#endif /* GD32F10X_CL */ +#define RCU_APB1RST_BKPIRST BIT(27) /*!< backup interface reset */ +#define RCU_APB1RST_PMURST BIT(28) /*!< PMU reset */ +#define RCU_APB1RST_DACRST BIT(29) /*!< DAC reset */ + +/* RCU_AHBEN */ +#define RCU_AHBEN_DMA0EN BIT(0) /*!< DMA0 clock enable */ +#define RCU_AHBEN_DMA1EN BIT(1) /*!< DMA1 clock enable */ +#define RCU_AHBEN_SRAMSPEN BIT(2) /*!< SRAM clock enable when sleep mode */ +#define RCU_AHBEN_FMCSPEN BIT(4) /*!< FMC clock enable when sleep mode */ +#define RCU_AHBEN_CRCEN BIT(6) /*!< CRC clock enable */ +#define RCU_AHBEN_EXMCEN BIT(8) /*!< EXMC clock enable */ +#if (defined(GD32F10X_MD) || defined(GD32F10X_HD) || defined(GD32F10X_XD)) +#define RCU_AHBEN_SDIOEN BIT(10) /*!< SDIO clock enable */ +#elif defined(GD32F10X_CL) +#define RCU_AHBEN_USBFSEN BIT(12) /*!< USBFS clock enable */ +#define RCU_AHBEN_ENETEN BIT(14) /*!< ENET clock enable */ +#define RCU_AHBEN_ENETTXEN BIT(15) /*!< Ethernet TX clock enable */ +#define RCU_AHBEN_ENETRXEN BIT(16) /*!< Ethernet RX clock enable */ +#endif /* GD32F10X_MD and GD32F10X_HD and GD32F10X_XD */ + +/* RCU_APB2EN */ +#define RCU_APB2EN_AFEN BIT(0) /*!< alternate function IO clock enable */ +#define RCU_APB2EN_PAEN BIT(2) /*!< GPIO port A clock enable */ +#define RCU_APB2EN_PBEN BIT(3) /*!< GPIO port B clock enable */ +#define RCU_APB2EN_PCEN BIT(4) /*!< GPIO port C clock enable */ +#define RCU_APB2EN_PDEN BIT(5) /*!< GPIO port D clock enable */ +#define RCU_APB2EN_PEEN BIT(6) /*!< GPIO port E clock enable */ +#define RCU_APB2EN_PFEN BIT(7) /*!< GPIO port F clock enable */ +#define RCU_APB2EN_PGEN BIT(8) /*!< GPIO port G clock enable */ +#define RCU_APB2EN_ADC0EN BIT(9) /*!< ADC0 clock enable */ +#define RCU_APB2EN_ADC1EN BIT(10) /*!< ADC1 clock enable */ +#define RCU_APB2EN_TIMER0EN BIT(11) /*!< TIMER0 clock enable */ +#define RCU_APB2EN_SPI0EN BIT(12) /*!< SPI0 clock enable */ +#define RCU_APB2EN_TIMER7EN BIT(13) /*!< TIMER7 clock enable */ +#define RCU_APB2EN_USART0EN BIT(14) /*!< USART0 clock enable */ +#ifndef GD32F10X_CL +#define RCU_APB2EN_ADC2EN BIT(15) /*!< ADC2 clock enable */ +#endif /* GD32F10X_CL */ +#ifdef GD32F10X_XD +#define RCU_APB2EN_TIMER8EN BIT(19) /*!< TIMER8 clock enable */ +#define RCU_APB2EN_TIMER9EN BIT(20) /*!< TIMER9 clock enable */ +#define RCU_APB2EN_TIMER10EN BIT(21) /*!< TIMER10 clock enable */ +#endif /* GD32F10X_XD */ + +/* RCU_APB1EN */ +#define RCU_APB1EN_TIMER1EN BIT(0) /*!< TIMER1 clock enable */ +#define RCU_APB1EN_TIMER2EN BIT(1) /*!< TIMER2 clock enable */ +#define RCU_APB1EN_TIMER3EN BIT(2) /*!< TIMER3 clock enable */ +#define RCU_APB1EN_TIMER4EN BIT(3) /*!< TIMER4 clock enable */ +#define RCU_APB1EN_TIMER5EN BIT(4) /*!< TIMER5 clock enable */ +#define RCU_APB1EN_TIMER6EN BIT(5) /*!< TIMER6 clock enable */ +#ifdef GD32F10X_XD +#define RCU_APB1EN_TIMER11EN BIT(6) /*!< TIMER11 clock enable */ +#define RCU_APB1EN_TIMER12EN BIT(7) /*!< TIMER12 clock enable */ +#define RCU_APB1EN_TIMER13EN BIT(8) /*!< TIMER13 clock enable */ +#endif /* GD32F10X_XD */ +#define RCU_APB1EN_WWDGTEN BIT(11) /*!< WWDGT clock enable */ +#define RCU_APB1EN_SPI1EN BIT(14) /*!< SPI1 clock enable */ +#define RCU_APB1EN_SPI2EN BIT(15) /*!< SPI2 clock enable */ +#define RCU_APB1EN_USART1EN BIT(17) /*!< USART1 clock enable */ +#define RCU_APB1EN_USART2EN BIT(18) /*!< USART2 clock enable */ +#define RCU_APB1EN_UART3EN BIT(19) /*!< UART3 clock enable */ +#define RCU_APB1EN_UART4EN BIT(20) /*!< UART4 clock enable */ +#define RCU_APB1EN_I2C0EN BIT(21) /*!< I2C0 clock enable */ +#define RCU_APB1EN_I2C1EN BIT(22) /*!< I2C1 clock enable */ +#if (defined(GD32F10X_MD) || defined(GD32F10X_HD) || defined(GD32F10X_XD)) +#define RCU_APB1EN_USBDEN BIT(23) /*!< USBD clock enable */ +#endif /* GD32F10X_MD and GD32F10X_HD and GD32F10X_XD */ +#define RCU_APB1EN_CAN0EN BIT(25) /*!< CAN0 clock enable */ +#ifdef GD32F10X_CL +#define RCU_APB1EN_CAN1EN BIT(26) /*!< CAN1 clock enable */ +#endif /* GD32F10X_CL */ +#define RCU_APB1EN_BKPIEN BIT(27) /*!< backup interface clock enable */ +#define RCU_APB1EN_PMUEN BIT(28) /*!< PMU clock enable */ +#define RCU_APB1EN_DACEN BIT(29) /*!< DAC clock enable */ + +/* RCU_BDCTL */ +#define RCU_BDCTL_LXTALEN BIT(0) /*!< LXTAL enable */ +#define RCU_BDCTL_LXTALSTB BIT(1) /*!< low speed crystal oscillator stabilization flag */ +#define RCU_BDCTL_LXTALBPS BIT(2) /*!< LXTAL bypass mode enable */ +#define RCU_BDCTL_RTCSRC BITS(8,9) /*!< RTC clock entry selection */ +#define RCU_BDCTL_RTCEN BIT(15) /*!< RTC clock enable */ +#define RCU_BDCTL_BKPRST BIT(16) /*!< backup domain reset */ + +/* RCU_RSTSCK */ +#define RCU_RSTSCK_IRC40KEN BIT(0) /*!< IRC40K enable */ +#define RCU_RSTSCK_IRC40KSTB BIT(1) /*!< IRC40K stabilization flag */ +#define RCU_RSTSCK_RSTFC BIT(24) /*!< reset flag clear */ +#define RCU_RSTSCK_EPRSTF BIT(26) /*!< external pin reset flag */ +#define RCU_RSTSCK_PORRSTF BIT(27) /*!< power reset flag */ +#define RCU_RSTSCK_SWRSTF BIT(28) /*!< software reset flag */ +#define RCU_RSTSCK_FWDGTRSTF BIT(29) /*!< free watchdog timer reset flag */ +#define RCU_RSTSCK_WWDGTRSTF BIT(30) /*!< window watchdog timer reset flag */ +#define RCU_RSTSCK_LPRSTF BIT(31) /*!< low-power reset flag */ + +#ifdef GD32F10X_CL +/* RCU_AHBRST */ +#define RCU_AHBRST_USBFSRST BIT(12) /*!< USBFS reset */ +#define RCU_AHBRST_ENETRST BIT(14) /*!< ENET reset */ +#endif /* GD32F10X_CL */ + +#if defined(GD32F10X_CL) +/* RCU_CFG1 */ +#define RCU_CFG1_PREDV0 BITS(0,3) /*!< PREDV0 division factor */ +#define RCU_CFG1_PREDV1 BITS(4,7) /*!< PREDV1 division factor */ +#define RCU_CFG1_PLL1MF BITS(8,11) /*!< PLL1 clock multiplication factor */ +#define RCU_CFG1_PLL2MF BITS(12,15) /*!< PLL2 clock multiplication factor */ +#define RCU_CFG1_PREDV0SEL BIT(16) /*!< PREDV0 input clock source selection */ +#define RCU_CFG1_I2S1SEL BIT(17) /*!< I2S1 clock source selection */ +#define RCU_CFG1_I2S2SEL BIT(18) /*!< I2S2 clock source selection */ +#endif /* GD32F10X_CL */ + +/* RCU_DSV */ +#define RCU_DSV_DSLPVS BITS(0,2) /*!< deep-sleep mode voltage select */ + +/* constants definitions */ +/* define the peripheral clock enable bit position and its register index offset */ +#define RCU_REGIDX_BIT(regidx, bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos)) +#define RCU_REG_VAL(periph) (REG32(RCU + ((uint32_t)(periph) >> 6))) +#define RCU_BIT_POS(val) ((uint32_t)(val) & 0x1FU) + +/* register offset */ +/* peripherals enable */ +#define AHBEN_REG_OFFSET 0x14U /*!< AHB enable register offset */ +#define APB1EN_REG_OFFSET 0x1CU /*!< APB1 enable register offset */ +#define APB2EN_REG_OFFSET 0x18U /*!< APB2 enable register offset */ + +/* peripherals reset */ +#define AHBRST_REG_OFFSET 0x28U /*!< AHB reset register offset */ +#define APB1RST_REG_OFFSET 0x10U /*!< APB1 reset register offset */ +#define APB2RST_REG_OFFSET 0x0CU /*!< APB2 reset register offset */ +#define RSTSCK_REG_OFFSET 0x24U /*!< reset source/clock register offset */ + +/* clock control */ +#define CTL_REG_OFFSET 0x00U /*!< control register offset */ +#define BDCTL_REG_OFFSET 0x20U /*!< backup domain control register offset */ + +/* clock stabilization and stuck interrupt */ +#define INT_REG_OFFSET 0x08U /*!< clock interrupt register offset */ + +/* configuration register */ +#define CFG0_REG_OFFSET 0x04U /*!< clock configuration register 0 offset */ +#define CFG1_REG_OFFSET 0x2CU /*!< clock configuration register 1 offset */ + +/* peripheral clock enable */ +typedef enum +{ + /* AHB peripherals */ + RCU_DMA0 = RCU_REGIDX_BIT(AHBEN_REG_OFFSET, 0U), /*!< DMA0 clock */ + RCU_DMA1 = RCU_REGIDX_BIT(AHBEN_REG_OFFSET, 1U), /*!< DMA1 clock */ + RCU_CRC = RCU_REGIDX_BIT(AHBEN_REG_OFFSET, 6U), /*!< CRC clock */ + RCU_EXMC = RCU_REGIDX_BIT(AHBEN_REG_OFFSET, 8U), /*!< EXMC clock */ +#if (defined(GD32F10X_MD) || defined(GD32F10X_HD) || defined(GD32F10X_XD)) + RCU_SDIO = RCU_REGIDX_BIT(AHBEN_REG_OFFSET, 10U), /*!< SDIO clock */ +#elif defined(GD32F10X_CL) + RCU_USBFS = RCU_REGIDX_BIT(AHBEN_REG_OFFSET, 12U), /*!< USBFS clock */ + RCU_ENET = RCU_REGIDX_BIT(AHBEN_REG_OFFSET, 14U), /*!< ENET clock */ + RCU_ENETTX = RCU_REGIDX_BIT(AHBEN_REG_OFFSET, 15U), /*!< ENETTX clock */ + RCU_ENETRX = RCU_REGIDX_BIT(AHBEN_REG_OFFSET, 16U), /*!< ENETRX clock */ +#endif /* GD32F10X_MD and GD32F10X_HD and GD32F10X_XD */ + + /* APB1 peripherals */ + RCU_TIMER1 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 0U), /*!< TIMER1 clock */ + RCU_TIMER2 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 1U), /*!< TIMER2 clock */ + RCU_TIMER3 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 2U), /*!< TIMER3 clock */ + RCU_TIMER4 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 3U), /*!< TIMER4 clock */ + RCU_TIMER5 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 4U), /*!< TIMER5 clock */ + RCU_TIMER6 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 5U), /*!< TIMER6 clock */ +#if defined(GD32F10X_XD) + RCU_TIMER11 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 6U), /*!< TIMER11 clock */ + RCU_TIMER12 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 7U), /*!< TIMER12 clock */ + RCU_TIMER13 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 8U), /*!< TIMER13 clock */ +#endif /* GD32F10X_XD */ + RCU_WWDGT = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 11U), /*!< WWDGT clock */ + RCU_SPI1 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 14U), /*!< SPI1 clock */ + RCU_SPI2 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 15U), /*!< SPI2 clock */ + RCU_USART1 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 17U), /*!< USART1 clock */ + RCU_USART2 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 18U), /*!< USART2 clock */ + RCU_UART3 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 19U), /*!< UART3 clock */ + RCU_UART4 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 20U), /*!< UART4 clock */ + RCU_I2C0 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 21U), /*!< I2C0 clock */ + RCU_I2C1 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 22U), /*!< I2C1 clock */ +#if (defined(GD32F10X_MD) || defined(GD32F10X_HD) || defined(GD32F10X_XD)) + RCU_USBD = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 23U), /*!< USBD clock */ +#endif /* GD32F10X_MD and GD32F10X_HD and GD32F10X_XD */ + RCU_CAN0 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 25U), /*!< CAN0 clock */ +#ifdef GD32F10X_CL + RCU_CAN1 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 26U), /*!< CAN1 clock */ +#endif /* GD32F10X_CL */ + RCU_BKPI = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 27U), /*!< BKPI clock */ + RCU_PMU = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 28U), /*!< PMU clock */ + RCU_DAC = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 29U), /*!< DAC clock */ + RCU_RTC = RCU_REGIDX_BIT(BDCTL_REG_OFFSET, 15U), /*!< RTC clock */ + + /* APB2 peripherals */ + RCU_AF = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 0U), /*!< alternate function clock */ + RCU_GPIOA = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 2U), /*!< GPIOA clock */ + RCU_GPIOB = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 3U), /*!< GPIOB clock */ + RCU_GPIOC = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 4U), /*!< GPIOC clock */ + RCU_GPIOD = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 5U), /*!< GPIOD clock */ + RCU_GPIOE = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 6U), /*!< GPIOE clock */ + RCU_GPIOF = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 7U), /*!< GPIOF clock */ + RCU_GPIOG = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 8U), /*!< GPIOG clock */ + RCU_ADC0 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 9U), /*!< ADC0 clock */ + RCU_ADC1 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 10U), /*!< ADC1 clock */ + RCU_TIMER0 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 11U), /*!< TIMER0 clock */ + RCU_SPI0 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 12U), /*!< SPI0 clock */ + RCU_TIMER7 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 13U), /*!< TIMER7 clock */ + RCU_USART0 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 14U), /*!< USART0 clock */ +#ifndef GD32F10X_CL + RCU_ADC2 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 15U), /*!< ADC2 clock */ +#endif /* GD32F10X_CL */ +#ifdef GD32F10X_XD + RCU_TIMER8 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 19U), /*!< TIMER8 clock */ + RCU_TIMER9 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 20U), /*!< TIMER9 clock */ + RCU_TIMER10 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 21U), /*!< TIMER10 clock */ +#endif /* GD32F10X_XD */ +}rcu_periph_enum; + +/* peripheral clock enable when sleep mode*/ +typedef enum +{ + /* AHB peripherals */ + RCU_SRAM_SLP = RCU_REGIDX_BIT(AHBEN_REG_OFFSET, 2U), /*!< SRAM clock */ + RCU_FMC_SLP = RCU_REGIDX_BIT(AHBEN_REG_OFFSET, 4U), /*!< FMC clock */ +}rcu_periph_sleep_enum; + +/* peripherals reset */ +typedef enum +{ + /* AHB peripherals */ +#ifdef GD32F10X_CL + RCU_USBFSRST = RCU_REGIDX_BIT(AHBRST_REG_OFFSET, 12U), /*!< USBFS clock reset */ + RCU_ENETRST = RCU_REGIDX_BIT(AHBRST_REG_OFFSET, 14U), /*!< ENET clock reset */ +#endif /* GD32F10X_CL */ + + /* APB1 peripherals */ + RCU_TIMER1RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 0U), /*!< TIMER1 clock reset */ + RCU_TIMER2RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 1U), /*!< TIMER2 clock reset */ + RCU_TIMER3RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 2U), /*!< TIMER3 clock reset */ + RCU_TIMER4RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 3U), /*!< TIMER4 clock reset */ + RCU_TIMER5RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 4U), /*!< TIMER5 clock reset */ + RCU_TIMER6RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 5U), /*!< TIMER6 clock reset */ +#ifdef GD32F10X_XD + RCU_TIMER11RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 6U), /*!< TIMER11 clock reset */ + RCU_TIMER12RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 7U), /*!< TIMER12 clock reset */ + RCU_TIMER13RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 8U), /*!< TIMER13 clock reset */ +#endif /* GD32F10X_XD */ + RCU_WWDGTRST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 11U), /*!< WWDGT clock reset */ + RCU_SPI1RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 14U), /*!< SPI1 clock reset */ + RCU_SPI2RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 15U), /*!< SPI2 clock reset */ + RCU_USART1RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 17U), /*!< USART1 clock reset */ + RCU_USART2RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 18U), /*!< USART2 clock reset */ + RCU_UART3RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 19U), /*!< UART3 clock reset */ + RCU_UART4RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 20U), /*!< UART4 clock reset */ + RCU_I2C0RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 21U), /*!< I2C0 clock reset */ + RCU_I2C1RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 22U), /*!< I2C1 clock reset */ +#if (defined(GD32F10X_MD) || defined(GD32F10X_HD) || defined(GD32F10X_XD)) + RCU_USBDRST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 23U), /*!< USBD clock reset */ +#endif /* GD32F10X_MD and GD32F10X_HD and GD32F10X_XD */ + RCU_CAN0RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 25U), /*!< CAN0 clock reset */ +#ifdef GD32F10X_CL + RCU_CAN1RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 26U), /*!< CAN1 clock reset */ +#endif /* GD32F10X_CL */ + RCU_BKPIRST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 27U), /*!< BKPI clock reset */ + RCU_PMURST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 28U), /*!< PMU clock reset */ + RCU_DACRST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 29U), /*!< DAC clock reset */ + + /* APB2 peripherals */ + RCU_AFRST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 0U), /*!< alternate function clock reset */ + RCU_GPIOARST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 2U), /*!< GPIOA clock reset */ + RCU_GPIOBRST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 3U), /*!< GPIOB clock reset */ + RCU_GPIOCRST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 4U), /*!< GPIOC clock reset */ + RCU_GPIODRST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 5U), /*!< GPIOD clock reset */ + RCU_GPIOERST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 6U), /*!< GPIOE clock reset */ + RCU_GPIOFRST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 7U), /*!< GPIOF clock reset */ + RCU_GPIOGRST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 8U), /*!< GPIOG clock reset */ + RCU_ADC0RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 9U), /*!< ADC0 clock reset */ + RCU_ADC1RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 10U), /*!< ADC1 clock reset */ + RCU_TIMER0RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 11U), /*!< TIMER0 clock reset */ + RCU_SPI0RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 12U), /*!< SPI0 clock reset */ + RCU_TIMER7RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 13U), /*!< TIMER7 clock reset */ + RCU_USART0RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 14U), /*!< USART0 clock reset */ +#ifndef GD32F10X_CL + RCU_ADC2RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 15U), /*!< ADC2 clock reset */ +#endif /* GD32F10X_CL */ +#ifdef GD32F10X_XD + RCU_TIMER8RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 19U), /*!< TIMER8 clock reset */ + RCU_TIMER9RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 20U), /*!< TIMER9 clock reset */ + RCU_TIMER10RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 21U), /*!< TIMER10 clock reset */ +#endif /* GD32F10X_XD */ +}rcu_periph_reset_enum; + +/* clock stabilization and peripheral reset flags */ +typedef enum +{ + /* clock stabilization flags */ + RCU_FLAG_IRC8MSTB = RCU_REGIDX_BIT(CTL_REG_OFFSET, 1U), /*!< IRC8M stabilization flags */ + RCU_FLAG_HXTALSTB = RCU_REGIDX_BIT(CTL_REG_OFFSET, 17U), /*!< HXTAL stabilization flags */ + RCU_FLAG_PLLSTB = RCU_REGIDX_BIT(CTL_REG_OFFSET, 25U), /*!< PLL stabilization flags */ +#ifdef GD32F10X_CL + RCU_FLAG_PLL1STB = RCU_REGIDX_BIT(CTL_REG_OFFSET, 27U), /*!< PLL1 stabilization flags */ + RCU_FLAG_PLL2STB = RCU_REGIDX_BIT(CTL_REG_OFFSET, 29U), /*!< PLL2 stabilization flags */ +#endif /* GD32F10X_CL */ + RCU_FLAG_LXTALSTB = RCU_REGIDX_BIT(BDCTL_REG_OFFSET, 1U), /*!< LXTAL stabilization flags */ + RCU_FLAG_IRC40KSTB = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 1U), /*!< IRC40K stabilization flags */ + /* reset source flags */ + RCU_FLAG_EPRST = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 26U), /*!< external PIN reset flags */ + RCU_FLAG_PORRST = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 27U), /*!< power reset flags */ + RCU_FLAG_SWRST = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 28U), /*!< software reset flags */ + RCU_FLAG_FWDGTRST = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 29U), /*!< FWDGT reset flags */ + RCU_FLAG_WWDGTRST = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 30U), /*!< WWDGT reset flags */ + RCU_FLAG_LPRST = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 31U), /*!< low-power reset flags */ +}rcu_flag_enum; + +/* clock stabilization and ckm interrupt flags */ +typedef enum +{ + RCU_INT_FLAG_IRC40KSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 0U), /*!< IRC40K stabilization interrupt flag */ + RCU_INT_FLAG_LXTALSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 1U), /*!< LXTAL stabilization interrupt flag */ + RCU_INT_FLAG_IRC8MSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 2U), /*!< IRC8M stabilization interrupt flag */ + RCU_INT_FLAG_HXTALSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 3U), /*!< HXTAL stabilization interrupt flag */ + RCU_INT_FLAG_PLLSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 4U), /*!< PLL stabilization interrupt flag */ +#ifdef GD32F10X_CL + RCU_INT_FLAG_PLL1STB = RCU_REGIDX_BIT(INT_REG_OFFSET, 5U), /*!< PLL1 stabilization interrupt flag */ + RCU_INT_FLAG_PLL2STB = RCU_REGIDX_BIT(INT_REG_OFFSET, 6U), /*!< PLL2 stabilization interrupt flag */ +#endif /* GD32F10X_CL */ + RCU_INT_FLAG_CKM = RCU_REGIDX_BIT(INT_REG_OFFSET, 7U), /*!< HXTAL clock stuck interrupt flag */ +}rcu_int_flag_enum; + +/* clock stabilization and stuck interrupt flags clear */ +typedef enum +{ + RCU_INT_FLAG_IRC40KSTB_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 16U), /*!< IRC40K stabilization interrupt flags clear */ + RCU_INT_FLAG_LXTALSTB_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 17U), /*!< LXTAL stabilization interrupt flags clear */ + RCU_INT_FLAG_IRC8MSTB_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 18U), /*!< IRC8M stabilization interrupt flags clear */ + RCU_INT_FLAG_HXTALSTB_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 19U), /*!< HXTAL stabilization interrupt flags clear */ + RCU_INT_FLAG_PLLSTB_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 20U), /*!< PLL stabilization interrupt flags clear */ +#ifdef GD32F10X_CL + RCU_INT_FLAG_PLL1STB_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 21U), /*!< PLL1 stabilization interrupt flags clear */ + RCU_INT_FLAG_PLL2STB_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 22U), /*!< PLL2 stabilization interrupt flags clear */ +#endif /* GD32F10X_CL */ + RCU_INT_FLAG_CKM_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 23U), /*!< CKM interrupt flags clear */ +}rcu_int_flag_clear_enum; + +/* clock stabilization interrupt enable or disable */ +typedef enum +{ + RCU_INT_IRC40KSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 8U), /*!< IRC40K stabilization interrupt */ + RCU_INT_LXTALSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 9U), /*!< LXTAL stabilization interrupt */ + RCU_INT_IRC8MSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 10U), /*!< IRC8M stabilization interrupt */ + RCU_INT_HXTALSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 11U), /*!< HXTAL stabilization interrupt */ + RCU_INT_PLLSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 12U), /*!< PLL stabilization interrupt */ +#ifdef GD32F10X_CL + RCU_INT_PLL1STB = RCU_REGIDX_BIT(INT_REG_OFFSET, 13U), /*!< PLL1 stabilization interrupt */ + RCU_INT_PLL2STB = RCU_REGIDX_BIT(INT_REG_OFFSET, 14U), /*!< PLL2 stabilization interrupt */ +#endif /* GD32F10X_CL */ +}rcu_int_enum; + +/* oscillator types */ +typedef enum +{ + RCU_HXTAL = RCU_REGIDX_BIT(CTL_REG_OFFSET, 16U), /*!< HXTAL */ + RCU_LXTAL = RCU_REGIDX_BIT(BDCTL_REG_OFFSET, 0U), /*!< LXTAL */ + RCU_IRC8M = RCU_REGIDX_BIT(CTL_REG_OFFSET, 0U), /*!< IRC8M */ + RCU_IRC40K = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 0U), /*!< IRC40K */ + RCU_PLL_CK = RCU_REGIDX_BIT(CTL_REG_OFFSET, 24U), /*!< PLL */ +#ifdef GD32F10X_CL + RCU_PLL1_CK = RCU_REGIDX_BIT(CTL_REG_OFFSET, 26U), /*!< PLL1 */ + RCU_PLL2_CK = RCU_REGIDX_BIT(CTL_REG_OFFSET, 28U), /*!< PLL2 */ +#endif /* GD32F10X_CL */ +}rcu_osci_type_enum; + +/* rcu clock frequency */ +typedef enum +{ + CK_SYS = 0, /*!< system clock */ + CK_AHB, /*!< AHB clock */ + CK_APB1, /*!< APB1 clock */ + CK_APB2, /*!< APB2 clock */ +}rcu_clock_freq_enum; + +/* RCU_CFG0 register bit define */ +/* system clock source select */ +#define CFG0_SCS(regval) (BITS(0,1) & ((uint32_t)(regval) << 0)) +#define RCU_CKSYSSRC_IRC8M CFG0_SCS(0) /*!< system clock source select IRC8M */ +#define RCU_CKSYSSRC_HXTAL CFG0_SCS(1) /*!< system clock source select HXTAL */ +#define RCU_CKSYSSRC_PLL CFG0_SCS(2) /*!< system clock source select PLL */ + +/* system clock source select status */ +#define CFG0_SCSS(regval) (BITS(2,3) & ((uint32_t)(regval) << 2)) +#define RCU_SCSS_IRC8M CFG0_SCSS(0) /*!< system clock source select IRC8M */ +#define RCU_SCSS_HXTAL CFG0_SCSS(1) /*!< system clock source select HXTAL */ +#define RCU_SCSS_PLL CFG0_SCSS(2) /*!< system clock source select PLLP */ + +/* AHB prescaler selection */ +#define CFG0_AHBPSC(regval) (BITS(4,7) & ((uint32_t)(regval) << 4)) +#define RCU_AHB_CKSYS_DIV1 CFG0_AHBPSC(0) /*!< AHB prescaler select CK_SYS */ +#define RCU_AHB_CKSYS_DIV2 CFG0_AHBPSC(8) /*!< AHB prescaler select CK_SYS/2 */ +#define RCU_AHB_CKSYS_DIV4 CFG0_AHBPSC(9) /*!< AHB prescaler select CK_SYS/4 */ +#define RCU_AHB_CKSYS_DIV8 CFG0_AHBPSC(10) /*!< AHB prescaler select CK_SYS/8 */ +#define RCU_AHB_CKSYS_DIV16 CFG0_AHBPSC(11) /*!< AHB prescaler select CK_SYS/16 */ +#define RCU_AHB_CKSYS_DIV64 CFG0_AHBPSC(12) /*!< AHB prescaler select CK_SYS/64 */ +#define RCU_AHB_CKSYS_DIV128 CFG0_AHBPSC(13) /*!< AHB prescaler select CK_SYS/128 */ +#define RCU_AHB_CKSYS_DIV256 CFG0_AHBPSC(14) /*!< AHB prescaler select CK_SYS/256 */ +#define RCU_AHB_CKSYS_DIV512 CFG0_AHBPSC(15) /*!< AHB prescaler select CK_SYS/512 */ + +/* APB1 prescaler selection */ +#define CFG0_APB1PSC(regval) (BITS(8,10) & ((uint32_t)(regval) << 8)) +#define RCU_APB1_CKAHB_DIV1 CFG0_APB1PSC(0) /*!< APB1 prescaler select CK_AHB */ +#define RCU_APB1_CKAHB_DIV2 CFG0_APB1PSC(4) /*!< APB1 prescaler select CK_AHB/2 */ +#define RCU_APB1_CKAHB_DIV4 CFG0_APB1PSC(5) /*!< APB1 prescaler select CK_AHB/4 */ +#define RCU_APB1_CKAHB_DIV8 CFG0_APB1PSC(6) /*!< APB1 prescaler select CK_AHB/8 */ +#define RCU_APB1_CKAHB_DIV16 CFG0_APB1PSC(7) /*!< APB1 prescaler select CK_AHB/16 */ + +/* APB2 prescaler selection */ +#define CFG0_APB2PSC(regval) (BITS(11,13) & ((uint32_t)(regval) << 11)) +#define RCU_APB2_CKAHB_DIV1 CFG0_APB2PSC(0) /*!< APB2 prescaler select CK_AHB */ +#define RCU_APB2_CKAHB_DIV2 CFG0_APB2PSC(4) /*!< APB2 prescaler select CK_AHB/2 */ +#define RCU_APB2_CKAHB_DIV4 CFG0_APB2PSC(5) /*!< APB2 prescaler select CK_AHB/4 */ +#define RCU_APB2_CKAHB_DIV8 CFG0_APB2PSC(6) /*!< APB2 prescaler select CK_AHB/8 */ +#define RCU_APB2_CKAHB_DIV16 CFG0_APB2PSC(7) /*!< APB2 prescaler select CK_AHB/16 */ + +/* ADC prescaler select */ +#define RCU_CKADC_CKAPB2_DIV2 ((uint32_t)0x00000000U) /*!< ADC prescaler select CK_APB2/2 */ +#define RCU_CKADC_CKAPB2_DIV4 ((uint32_t)0x00000001U) /*!< ADC prescaler select CK_APB2/4 */ +#define RCU_CKADC_CKAPB2_DIV6 ((uint32_t)0x00000002U) /*!< ADC prescaler select CK_APB2/6 */ +#define RCU_CKADC_CKAPB2_DIV8 ((uint32_t)0x00000003U) /*!< ADC prescaler select CK_APB2/8 */ +#define RCU_CKADC_CKAPB2_DIV12 ((uint32_t)0x00000005U) /*!< ADC prescaler select CK_APB2/12 */ +#define RCU_CKADC_CKAPB2_DIV16 ((uint32_t)0x00000007U) /*!< ADC prescaler select CK_APB2/16 */ + +/* PLL clock source selection */ +#define RCU_PLLSRC_IRC8M_DIV2 ((uint32_t)0x00000000U) /*!< IRC8M/2 clock selected as source clock of PLL */ +#define RCU_PLLSRC_HXTAL RCU_CFG0_PLLSEL /*!< HXTAL clock selected as source clock of PLL */ + +/* PLL clock multiplication factor */ +#define PLLMF_4 RCU_CFG0_PLLMF_4 /* bit 4 of PLLMF */ + +#define CFG0_PLLMF(regval) (BITS(18,21) & ((uint32_t)(regval) << 18)) +#define RCU_PLL_MUL2 CFG0_PLLMF(0) /*!< PLL source clock multiply by 2 */ +#define RCU_PLL_MUL3 CFG0_PLLMF(1) /*!< PLL source clock multiply by 3 */ +#define RCU_PLL_MUL4 CFG0_PLLMF(2) /*!< PLL source clock multiply by 4 */ +#define RCU_PLL_MUL5 CFG0_PLLMF(3) /*!< PLL source clock multiply by 5 */ +#define RCU_PLL_MUL6 CFG0_PLLMF(4) /*!< PLL source clock multiply by 6 */ +#define RCU_PLL_MUL7 CFG0_PLLMF(5) /*!< PLL source clock multiply by 7 */ +#define RCU_PLL_MUL8 CFG0_PLLMF(6) /*!< PLL source clock multiply by 8 */ +#define RCU_PLL_MUL9 CFG0_PLLMF(7) /*!< PLL source clock multiply by 9 */ +#define RCU_PLL_MUL10 CFG0_PLLMF(8) /*!< PLL source clock multiply by 10 */ +#define RCU_PLL_MUL11 CFG0_PLLMF(9) /*!< PLL source clock multiply by 11 */ +#define RCU_PLL_MUL12 CFG0_PLLMF(10) /*!< PLL source clock multiply by 12 */ +#define RCU_PLL_MUL13 CFG0_PLLMF(11) /*!< PLL source clock multiply by 13 */ +#define RCU_PLL_MUL14 CFG0_PLLMF(12) /*!< PLL source clock multiply by 14 */ +#if (defined(GD32F10X_MD) || defined(GD32F10X_HD) || defined(GD32F10X_XD)) +#define RCU_PLL_MUL15 CFG0_PLLMF(13) /*!< PLL source clock multiply by 15 */ +#elif defined(GD32F10X_CL) +#define RCU_PLL_MUL6_5 CFG0_PLLMF(13) /*!< PLL source clock multiply by 6.5 */ +#endif /* GD32F10X_MD and GD32F10X_HD and GD32F10X_XD */ +#define RCU_PLL_MUL16 CFG0_PLLMF(14) /*!< PLL source clock multiply by 16 */ +#define RCU_PLL_MUL17 (PLLMF_4 | CFG0_PLLMF(0)) /*!< PLL source clock multiply by 17 */ +#define RCU_PLL_MUL18 (PLLMF_4 | CFG0_PLLMF(1)) /*!< PLL source clock multiply by 18 */ +#define RCU_PLL_MUL19 (PLLMF_4 | CFG0_PLLMF(2)) /*!< PLL source clock multiply by 19 */ +#define RCU_PLL_MUL20 (PLLMF_4 | CFG0_PLLMF(3)) /*!< PLL source clock multiply by 20 */ +#define RCU_PLL_MUL21 (PLLMF_4 | CFG0_PLLMF(4)) /*!< PLL source clock multiply by 21 */ +#define RCU_PLL_MUL22 (PLLMF_4 | CFG0_PLLMF(5)) /*!< PLL source clock multiply by 22 */ +#define RCU_PLL_MUL23 (PLLMF_4 | CFG0_PLLMF(6)) /*!< PLL source clock multiply by 23 */ +#define RCU_PLL_MUL24 (PLLMF_4 | CFG0_PLLMF(7)) /*!< PLL source clock multiply by 24 */ +#define RCU_PLL_MUL25 (PLLMF_4 | CFG0_PLLMF(8)) /*!< PLL source clock multiply by 25 */ +#define RCU_PLL_MUL26 (PLLMF_4 | CFG0_PLLMF(9)) /*!< PLL source clock multiply by 26 */ +#define RCU_PLL_MUL27 (PLLMF_4 | CFG0_PLLMF(10)) /*!< PLL source clock multiply by 27 */ +#define RCU_PLL_MUL28 (PLLMF_4 | CFG0_PLLMF(11)) /*!< PLL source clock multiply by 28 */ +#define RCU_PLL_MUL29 (PLLMF_4 | CFG0_PLLMF(12)) /*!< PLL source clock multiply by 29 */ +#define RCU_PLL_MUL30 (PLLMF_4 | CFG0_PLLMF(13)) /*!< PLL source clock multiply by 30 */ +#define RCU_PLL_MUL31 (PLLMF_4 | CFG0_PLLMF(14)) /*!< PLL source clock multiply by 31 */ +#define RCU_PLL_MUL32 (PLLMF_4 | CFG0_PLLMF(15)) /*!< PLL source clock multiply by 32 */ + +/* USBD/USBFS prescaler select */ +#define CFG0_USBPSC(regval) (BITS(22,23) & ((uint32_t)(regval) << 22)) +#define RCU_CKUSB_CKPLL_DIV1_5 CFG0_USBPSC(0) /*!< USBD/USBFS prescaler select CK_PLL/1.5 */ +#define RCU_CKUSB_CKPLL_DIV1 CFG0_USBPSC(1) /*!< USBD/USBFS prescaler select CK_PLL/1 */ +#define RCU_CKUSB_CKPLL_DIV2_5 CFG0_USBPSC(2) /*!< USBD/USBFS prescaler select CK_PLL/2.5 */ +#define RCU_CKUSB_CKPLL_DIV2 CFG0_USBPSC(3) /*!< USBD/USBFS prescaler select CK_PLL/2 */ + +/* CKOUT0 clock source selection */ +#define CFG0_CKOUT0SEL(regval) (BITS(24,27) & ((uint32_t)(regval) << 24)) +#define RCU_CKOUT0SRC_NONE CFG0_CKOUT0SEL(0) /*!< no clock selected */ +#define RCU_CKOUT0SRC_CKSYS CFG0_CKOUT0SEL(4) /*!< system clock selected */ +#define RCU_CKOUT0SRC_IRC8M CFG0_CKOUT0SEL(5) /*!< internal 8M RC oscillator clock selected */ +#define RCU_CKOUT0SRC_HXTAL CFG0_CKOUT0SEL(6) /*!< high speed crystal oscillator clock (HXTAL) selected */ +#define RCU_CKOUT0SRC_CKPLL_DIV2 CFG0_CKOUT0SEL(7) /*!< CK_PLL/2 clock selected */ +#ifdef GD32F10X_CL +#define RCU_CKOUT0SRC_CKPLL1 CFG0_CKOUT0SEL(8) /*!< CK_PLL1 clock selected */ +#define RCU_CKOUT0SRC_CKPLL2_DIV2 CFG0_CKOUT0SEL(9) /*!< CK_PLL2/2 clock selected */ +#define RCU_CKOUT0SRC_EXT1 CFG0_CKOUT0SEL(10) /*!< EXT1 selected, to provide the external clock for ENET */ +#define RCU_CKOUT0SRC_CKPLL2 CFG0_CKOUT0SEL(11) /*!< CK_PLL2 clock selected */ +#endif /* GD32F10X_CL */ + +/* RTC clock entry selection */ +#define BDCTL_RTCSRC(regval) (BITS(8,9) & ((uint32_t)(regval) << 8)) +#define RCU_RTCSRC_NONE BDCTL_RTCSRC(0) /*!< no clock selected */ +#define RCU_RTCSRC_LXTAL BDCTL_RTCSRC(1) /*!< RTC source clock select LXTAL */ +#define RCU_RTCSRC_IRC40K BDCTL_RTCSRC(2) /*!< RTC source clock select IRC40K */ +#define RCU_RTCSRC_HXTAL_DIV_128 BDCTL_RTCSRC(3) /*!< RTC source clock select HXTAL/128 */ + +/* PREDV0 division factor */ +#define CFG1_PREDV0(regval) (BITS(0,3) & ((uint32_t)(regval) << 0)) +#define RCU_PREDV0_DIV1 CFG1_PREDV0(0) /*!< PREDV0 input source clock not divided */ +#define RCU_PREDV0_DIV2 CFG1_PREDV0(1) /*!< PREDV0 input source clock divided by 2 */ +#define RCU_PREDV0_DIV3 CFG1_PREDV0(2) /*!< PREDV0 input source clock divided by 3 */ +#define RCU_PREDV0_DIV4 CFG1_PREDV0(3) /*!< PREDV0 input source clock divided by 4 */ +#define RCU_PREDV0_DIV5 CFG1_PREDV0(4) /*!< PREDV0 input source clock divided by 5 */ +#define RCU_PREDV0_DIV6 CFG1_PREDV0(5) /*!< PREDV0 input source clock divided by 6 */ +#define RCU_PREDV0_DIV7 CFG1_PREDV0(6) /*!< PREDV0 input source clock divided by 7 */ +#define RCU_PREDV0_DIV8 CFG1_PREDV0(7) /*!< PREDV0 input source clock divided by 8 */ +#define RCU_PREDV0_DIV9 CFG1_PREDV0(8) /*!< PREDV0 input source clock divided by 9 */ +#define RCU_PREDV0_DIV10 CFG1_PREDV0(9) /*!< PREDV0 input source clock divided by 10 */ +#define RCU_PREDV0_DIV11 CFG1_PREDV0(10) /*!< PREDV0 input source clock divided by 11 */ +#define RCU_PREDV0_DIV12 CFG1_PREDV0(11) /*!< PREDV0 input source clock divided by 12 */ +#define RCU_PREDV0_DIV13 CFG1_PREDV0(12) /*!< PREDV0 input source clock divided by 13 */ +#define RCU_PREDV0_DIV14 CFG1_PREDV0(13) /*!< PREDV0 input source clock divided by 14 */ +#define RCU_PREDV0_DIV15 CFG1_PREDV0(14) /*!< PREDV0 input source clock divided by 15 */ +#define RCU_PREDV0_DIV16 CFG1_PREDV0(15) /*!< PREDV0 input source clock divided by 16 */ + +/* PREDV1 division factor */ +#define CFG1_PREDV1(regval) (BITS(4,7) & ((uint32_t)(regval) << 4)) +#define RCU_PREDV1_DIV1 CFG1_PREDV1(0) /*!< PREDV1 input source clock not divided */ +#define RCU_PREDV1_DIV2 CFG1_PREDV1(1) /*!< PREDV1 input source clock divided by 2 */ +#define RCU_PREDV1_DIV3 CFG1_PREDV1(2) /*!< PREDV1 input source clock divided by 3 */ +#define RCU_PREDV1_DIV4 CFG1_PREDV1(3) /*!< PREDV1 input source clock divided by 4 */ +#define RCU_PREDV1_DIV5 CFG1_PREDV1(4) /*!< PREDV1 input source clock divided by 5 */ +#define RCU_PREDV1_DIV6 CFG1_PREDV1(5) /*!< PREDV1 input source clock divided by 6 */ +#define RCU_PREDV1_DIV7 CFG1_PREDV1(6) /*!< PREDV1 input source clock divided by 7 */ +#define RCU_PREDV1_DIV8 CFG1_PREDV1(7) /*!< PREDV1 input source clock divided by 8 */ +#define RCU_PREDV1_DIV9 CFG1_PREDV1(8) /*!< PREDV1 input source clock divided by 9 */ +#define RCU_PREDV1_DIV10 CFG1_PREDV1(9) /*!< PREDV1 input source clock divided by 10 */ +#define RCU_PREDV1_DIV11 CFG1_PREDV1(10) /*!< PREDV1 input source clock divided by 11 */ +#define RCU_PREDV1_DIV12 CFG1_PREDV1(11) /*!< PREDV1 input source clock divided by 12 */ +#define RCU_PREDV1_DIV13 CFG1_PREDV1(12) /*!< PREDV1 input source clock divided by 13 */ +#define RCU_PREDV1_DIV14 CFG1_PREDV1(13) /*!< PREDV1 input source clock divided by 14 */ +#define RCU_PREDV1_DIV15 CFG1_PREDV1(14) /*!< PREDV1 input source clock divided by 15 */ +#define RCU_PREDV1_DIV16 CFG1_PREDV1(15) /*!< PREDV1 input source clock divided by 16 */ + +/* PLL1 clock multiplication factor */ +#define CFG1_PLL1MF(regval) (BITS(8,11) & ((uint32_t)(regval) << 8)) +#define RCU_PLL1_MUL8 CFG1_PLL1MF(6) /*!< PLL1 source clock multiply by 8 */ +#define RCU_PLL1_MUL9 CFG1_PLL1MF(7) /*!< PLL1 source clock multiply by 9 */ +#define RCU_PLL1_MUL10 CFG1_PLL1MF(8) /*!< PLL1 source clock multiply by 10 */ +#define RCU_PLL1_MUL11 CFG1_PLL1MF(9) /*!< PLL1 source clock multiply by 11 */ +#define RCU_PLL1_MUL12 CFG1_PLL1MF(10) /*!< PLL1 source clock multiply by 12 */ +#define RCU_PLL1_MUL13 CFG1_PLL1MF(11) /*!< PLL1 source clock multiply by 13 */ +#define RCU_PLL1_MUL14 CFG1_PLL1MF(12) /*!< PLL1 source clock multiply by 14 */ +#define RCU_PLL1_MUL15 CFG1_PLL1MF(13) /*!< PLL1 source clock multiply by 15 */ +#define RCU_PLL1_MUL16 CFG1_PLL1MF(14) /*!< PLL1 source clock multiply by 16 */ +#define RCU_PLL1_MUL20 CFG1_PLL1MF(15) /*!< PLL1 source clock multiply by 20 */ + +/* PLL2 clock multiplication factor */ +#define CFG1_PLL2MF(regval) (BITS(12,15) & ((uint32_t)(regval) << 12)) +#define RCU_PLL2_MUL8 CFG1_PLL2MF(6) /*!< PLL2 source clock multiply by 8 */ +#define RCU_PLL2_MUL9 CFG1_PLL2MF(7) /*!< PLL2 source clock multiply by 9 */ +#define RCU_PLL2_MUL10 CFG1_PLL2MF(8) /*!< PLL2 source clock multiply by 10 */ +#define RCU_PLL2_MUL11 CFG1_PLL2MF(9) /*!< PLL2 source clock multiply by 11 */ +#define RCU_PLL2_MUL12 CFG1_PLL2MF(10) /*!< PLL2 source clock multiply by 12 */ +#define RCU_PLL2_MUL13 CFG1_PLL2MF(11) /*!< PLL2 source clock multiply by 13 */ +#define RCU_PLL2_MUL14 CFG1_PLL2MF(12) /*!< PLL2 source clock multiply by 14 */ +#define RCU_PLL2_MUL15 CFG1_PLL2MF(13) /*!< PLL2 source clock multiply by 15 */ +#define RCU_PLL2_MUL16 CFG1_PLL2MF(14) /*!< PLL2 source clock multiply by 16 */ +#define RCU_PLL2_MUL20 CFG1_PLL2MF(15) /*!< PLL2 source clock multiply by 20 */ + +#ifdef GD32F10X_CL +/* PREDV0 input clock source selection */ +#define RCU_PREDV0SRC_HXTAL ((uint32_t)0x00000000U) /*!< HXTAL selected as PREDV0 input source clock */ +#define RCU_PREDV0SRC_CKPLL1 RCU_CFG1_PREDV0SEL /*!< CK_PLL1 selected as PREDV0 input source clock */ + +/* I2S1 clock source selection */ +#define RCU_I2S1SRC_CKSYS ((uint32_t)0x00000000U) /*!< system clock selected as I2S1 source clock */ +#define RCU_I2S1SRC_CKPLL2_MUL2 RCU_CFG1_I2S1SEL /*!< (CK_PLL2 x 2) selected as I2S1 source clock */ + +/* I2S2 clock source selection */ +#define RCU_I2S2SRC_CKSYS ((uint32_t)0x00000000U) /*!< system clock selected as I2S2 source clock */ +#define RCU_I2S2SRC_CKPLL2_MUL2 RCU_CFG1_I2S2SEL /*!< (CK_PLL2 x 2) selected as I2S2 source clock */ +#endif /* GD32F10X_CL */ + +/* deep-sleep mode voltage */ +#define DSV_DSLPVS(regval) (BITS(0,2) & ((uint32_t)(regval) << 0)) +#define RCU_DEEPSLEEP_V_1_2 DSV_DSLPVS(0) /*!< core voltage is 1.2V in deep-sleep mode */ +#define RCU_DEEPSLEEP_V_1_1 DSV_DSLPVS(1) /*!< core voltage is 1.1V in deep-sleep mode */ +#define RCU_DEEPSLEEP_V_1_0 DSV_DSLPVS(2) /*!< core voltage is 1.0V in deep-sleep mode */ +#define RCU_DEEPSLEEP_V_0_9 DSV_DSLPVS(3) /*!< core voltage is 0.9V in deep-sleep mode */ + +/* function declarations */ +/* initialization, peripheral clock enable/disable functions */ +/* deinitialize the RCU */ +void rcu_deinit(void); +/* enable the peripherals clock */ +void rcu_periph_clock_enable(rcu_periph_enum periph); +/* disable the peripherals clock */ +void rcu_periph_clock_disable(rcu_periph_enum periph); +/* enable the peripherals clock when sleep mode */ +void rcu_periph_clock_sleep_enable(rcu_periph_sleep_enum periph); +/* disable the peripherals clock when sleep mode */ +void rcu_periph_clock_sleep_disable(rcu_periph_sleep_enum periph); +/* reset the peripherals */ +void rcu_periph_reset_enable(rcu_periph_reset_enum periph_reset); +/* disable reset the peripheral */ +void rcu_periph_reset_disable(rcu_periph_reset_enum periph_reset); +/* reset the BKP domain */ +void rcu_bkp_reset_enable(void); +/* disable the BKP domain reset */ +void rcu_bkp_reset_disable(void); + +/* clock configuration functions */ +/* configure the system clock source */ +void rcu_system_clock_source_config(uint32_t ck_sys); +/* get the system clock source */ +uint32_t rcu_system_clock_source_get(void); +/* configure the AHB prescaler selection */ +void rcu_ahb_clock_config(uint32_t ck_ahb); +/* configure the APB1 prescaler selection */ +void rcu_apb1_clock_config(uint32_t ck_apb1); +/* configure the APB2 prescaler selection */ +void rcu_apb2_clock_config(uint32_t ck_apb2); +/* configure the CK_OUT0 clock source and divider */ +void rcu_ckout0_config(uint32_t ckout0_src); +/* configure the PLL clock source selection and PLL multiply factor */ +void rcu_pll_config(uint32_t pll_src, uint32_t pll_mul); +#if (defined(GD32F10X_MD) || defined(GD32F10X_HD) || defined(GD32F10X_XD)) +/* configure the PREDV0 division factor and clock source */ +void rcu_predv0_config(uint32_t predv0_div); +#elif defined(GD32F10X_CL) +/* configure the PREDV0 division factor and clock source */ +void rcu_predv0_config(uint32_t predv0_source, uint32_t predv0_div); +/* configure the PREDV1 division factor */ +void rcu_predv1_config(uint32_t predv1_div); +/* configure the PLL1 clock */ +void rcu_pll1_config(uint32_t pll_mul); +/* configure the PLL2 clock */ +void rcu_pll2_config(uint32_t pll_mul); +#endif /* GD32F10X_MD and GD32F10X_HD and GD32F10X_XD */ + +/* peripheral clock configuration functions */ +/* configure the ADC division factor */ +void rcu_adc_clock_config(uint32_t adc_psc); +/* configure the USBD/USBFS prescaler factor */ +void rcu_usb_clock_config(uint32_t usb_psc); +/* configure the RTC clock source selection */ +void rcu_rtc_clock_config(uint32_t rtc_clock_source); +#ifdef GD32F10X_CL +/* configure the I2S1 clock source selection */ +void rcu_i2s1_clock_config(uint32_t i2s_clock_source); +/* configure the I2S2 clock source selection */ +void rcu_i2s2_clock_config(uint32_t i2s_clock_source); +#endif /* GD32F10X_CL */ + +/* oscillator configuration functions */ +/* wait for oscillator stabilization flags is SET or oscillator startup is timeout */ +ErrStatus rcu_osci_stab_wait(rcu_osci_type_enum osci); +/* turn on the oscillator */ +void rcu_osci_on(rcu_osci_type_enum osci); +/* turn off the oscillator */ +void rcu_osci_off(rcu_osci_type_enum osci); +/* enable the oscillator bypass mode, HXTALEN or LXTALEN must be reset before it */ +void rcu_osci_bypass_mode_enable(rcu_osci_type_enum osci); +/* disable the oscillator bypass mode, HXTALEN or LXTALEN must be reset before it */ +void rcu_osci_bypass_mode_disable(rcu_osci_type_enum osci); +/* enable the HXTAL clock monitor */ +void rcu_hxtal_clock_monitor_enable(void); +/* disable the HXTAL clock monitor */ +void rcu_hxtal_clock_monitor_disable(void); + +/* set the IRC8M adjust value */ +void rcu_irc8m_adjust_value_set(uint8_t irc8m_adjval); +/* set the deep sleep mode voltage */ +void rcu_deepsleep_voltage_set(uint32_t dsvol); +/* get the system clock, bus and peripheral clock frequency */ +uint32_t rcu_clock_freq_get(rcu_clock_freq_enum clock); + +/* interrupt & flag functions */ +/* get the clock stabilization and periphral reset flags */ +FlagStatus rcu_flag_get(rcu_flag_enum flag); +/* clear the reset flag */ +void rcu_all_reset_flag_clear(void); +/* get the clock stabilization interrupt and ckm flags */ +FlagStatus rcu_interrupt_flag_get(rcu_int_flag_enum int_flag); +/* clear the interrupt flags */ +void rcu_interrupt_flag_clear(rcu_int_flag_clear_enum int_flag_clear); +/* enable the stabilization interrupt */ +void rcu_interrupt_enable(rcu_int_enum stab_int); +/* disable the stabilization interrupt */ +void rcu_interrupt_disable(rcu_int_enum stab_int); + +#endif /* GD32F10X_RCU_H */ diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_rtc.h b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_rtc.h new file mode 100644 index 0000000..08ce561 --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_rtc.h @@ -0,0 +1,148 @@ +/*! + \file gd32f10x_rtc.h + \brief definitions for the RTC + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#ifndef GD32F10X_RTC_H +#define GD32F10X_RTC_H + +#include "gd32f10x.h" + +/* RTC definitions */ +#define RTC RTC_BASE + +/* registers definitions */ +#define RTC_INTEN REG32(RTC + 0x00U) /*!< interrupt enable register */ +#define RTC_CTL REG32(RTC + 0x04U) /*!< control register */ +#define RTC_PSCH REG32(RTC + 0x08U) /*!< prescaler high register */ +#define RTC_PSCL REG32(RTC + 0x0CU) /*!< prescaler low register */ +#define RTC_DIVH REG32(RTC + 0x10U) /*!< divider high register */ +#define RTC_DIVL REG32(RTC + 0x14U) /*!< divider low register */ +#define RTC_CNTH REG32(RTC + 0x18U) /*!< counter high register */ +#define RTC_CNTL REG32(RTC + 0x1CU) /*!< counter low register */ +#define RTC_ALRMH REG32(RTC + 0x20U) /*!< alarm high register */ +#define RTC_ALRML REG32(RTC + 0x24U) /*!< alarm low register */ + +/* bits definitions */ +/* RTC_INTEN */ +#define RTC_INTEN_SCIE BIT(0) /*!< second interrupt enable */ +#define RTC_INTEN_ALRMIE BIT(1) /*!< alarm interrupt enable */ +#define RTC_INTEN_OVIE BIT(2) /*!< overflow interrupt enable */ + +/* RTC_CTL */ +#define RTC_CTL_SCIF BIT(0) /*!< second interrupt flag */ +#define RTC_CTL_ALRMIF BIT(1) /*!< alarm interrupt flag */ +#define RTC_CTL_OVIF BIT(2) /*!< overflow interrupt flag */ +#define RTC_CTL_RSYNF BIT(3) /*!< registers synchronized flag */ +#define RTC_CTL_CMF BIT(4) /*!< configuration mode flag */ +#define RTC_CTL_LWOFF BIT(5) /*!< last write operation finished flag */ + +/* RTC_PSCH */ +#define RTC_PSCH_PSC BITS(0,3) /*!< prescaler high value */ + +/* RTC_PSCL */ +#define RTC_PSCL_PSC BITS(0,15) /*!< prescaler low value */ + +/* RTC_DIVH */ +#define RTC_DIVH_DIV BITS(0,3) /*!< divider high value */ + +/* RTC_DIVL */ +#define RTC_DIVL_DIV BITS(0,15) /*!< divider low value */ + +/* RTC_CNTH */ +#define RTC_CNTH_CNT BITS(0,15) /*!< counter high value */ + +/* RTC_CNTL */ +#define RTC_CNTL_CNT BITS(0,15) /*!< counter low value */ + +/* RTC_ALRMH */ +#define RTC_ALRMH_ALRM BITS(0,15) /*!< alarm high value */ + +/* RTC_ALRML */ +#define RTC_ALRML_ALRM BITS(0,15) /*!< alarm low value */ + +/* constants definitions */ +/* RTC interrupt enable or disable definitions */ +#define RTC_INT_SECOND RTC_INTEN_SCIE /*!< second interrupt enable */ +#define RTC_INT_ALARM RTC_INTEN_ALRMIE /*!< alarm interrupt enable */ +#define RTC_INT_OVERFLOW RTC_INTEN_OVIE /*!< overflow interrupt enable */ + +/* RTC interrupt flag definitions */ +#define RTC_INT_FLAG_SECOND RTC_CTL_SCIF /*!< second interrupt flag */ +#define RTC_INT_FLAG_ALARM RTC_CTL_ALRMIF /*!< alarm interrupt flag */ +#define RTC_INT_FLAG_OVERFLOW RTC_CTL_OVIF /*!< overflow interrupt flag */ + +/* RTC flag definitions */ +#define RTC_FLAG_SECOND RTC_CTL_SCIF /*!< second interrupt flag */ +#define RTC_FLAG_ALARM RTC_CTL_ALRMIF /*!< alarm interrupt flag */ +#define RTC_FLAG_OVERFLOW RTC_CTL_OVIF /*!< overflow interrupt flag */ +#define RTC_FLAG_RSYN RTC_CTL_RSYNF /*!< registers synchronized flag */ +#define RTC_FLAG_LWOF RTC_CTL_LWOFF /*!< last write operation finished flag */ + +/* function declarations */ +/* initialization functions */ +/* enter RTC configuration mode */ +void rtc_configuration_mode_enter(void); +/* exit RTC configuration mode */ +void rtc_configuration_mode_exit(void); +/* set RTC counter value */ +void rtc_counter_set(uint32_t cnt); +/* set RTC prescaler value */ +void rtc_prescaler_set(uint32_t psc); + +/* operation functions */ +/* wait RTC last write operation finished flag set */ +void rtc_lwoff_wait(void); +/* wait RTC registers synchronized flag set */ +void rtc_register_sync_wait(void); +/* set RTC alarm value */ +void rtc_alarm_config(uint32_t alarm); +/* get RTC counter value */ +uint32_t rtc_counter_get(void); +/* get RTC divider value */ +uint32_t rtc_divider_get(void); + +/* flag & interrupt functions */ +/* get RTC flag status */ +FlagStatus rtc_flag_get(uint32_t flag); +/* clear RTC flag status */ +void rtc_flag_clear(uint32_t flag); +/* get RTC interrupt flag status */ +FlagStatus rtc_interrupt_flag_get(uint32_t flag); +/* clear RTC interrupt flag status */ +void rtc_interrupt_flag_clear(uint32_t flag); +/* enable RTC interrupt */ +void rtc_interrupt_enable(uint32_t interrupt); +/* disable RTC interrupt */ +void rtc_interrupt_disable(uint32_t interrupt); + +#endif /* GD32F10X_RTC_H */ diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_sdio.h b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_sdio.h new file mode 100644 index 0000000..4ba9e25 --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_sdio.h @@ -0,0 +1,430 @@ +/*! + \file gd32f10x_sdio.h + \brief definitions for the SDIO + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#ifndef GD32F10X_SDIO_H +#define GD32F10X_SDIO_H + +#include "gd32f10x.h" + +/* SDIO definitions */ +#define SDIO SDIO_BASE + +/* registers definitions */ +#define SDIO_PWRCTL REG32(SDIO + 0x00U) /*!< SDIO power control register */ +#define SDIO_CLKCTL REG32(SDIO + 0x04U) /*!< SDIO clock control register */ +#define SDIO_CMDAGMT REG32(SDIO + 0x08U) /*!< SDIO command argument register */ +#define SDIO_CMDCTL REG32(SDIO + 0x0CU) /*!< SDIO command control register */ +#define SDIO_RSPCMDIDX REG32(SDIO + 0x10U) /*!< SDIO command index response register */ +#define SDIO_RESP0 REG32(SDIO + 0x14U) /*!< SDIO response register 0 */ +#define SDIO_RESP1 REG32(SDIO + 0x18U) /*!< SDIO response register 1 */ +#define SDIO_RESP2 REG32(SDIO + 0x1CU) /*!< SDIO response register 2 */ +#define SDIO_RESP3 REG32(SDIO + 0x20U) /*!< SDIO response register 3 */ +#define SDIO_DATATO REG32(SDIO + 0x24U) /*!< SDIO data timeout register */ +#define SDIO_DATALEN REG32(SDIO + 0x28U) /*!< SDIO data length register */ +#define SDIO_DATACTL REG32(SDIO + 0x2CU) /*!< SDIO data control register */ +#define SDIO_DATACNT REG32(SDIO + 0x30U) /*!< SDIO data counter register */ +#define SDIO_STAT REG32(SDIO + 0x34U) /*!< SDIO status register */ +#define SDIO_INTC REG32(SDIO + 0x38U) /*!< SDIO interrupt clear register */ +#define SDIO_INTEN REG32(SDIO + 0x3CU) /*!< SDIO interrupt enable register */ +#define SDIO_FIFOCNT REG32(SDIO + 0x48U) /*!< SDIO FIFO counter register */ +#define SDIO_FIFO REG32(SDIO + 0x80U) /*!< SDIO FIFO data register */ + +/* bits definitions */ +/* SDIO_PWRCTL */ +#define SDIO_PWRCTL_PWRCTL BITS(0,1) /*!< SDIO power control bits */ + +/* SDIO_CLKCTL */ +#define SDIO_CLKCTL_DIV BITS(0,7) /*!< clock division */ +#define SDIO_CLKCTL_CLKEN BIT(8) /*!< SDIO_CLK clock output enable bit */ +#define SDIO_CLKCTL_CLKPWRSAV BIT(9) /*!< SDIO_CLK clock dynamic switch on/off for power saving */ +#define SDIO_CLKCTL_CLKBYP BIT(10) /*!< clock bypass enable bit */ +#define SDIO_CLKCTL_BUSMODE BITS(11,12) /*!< SDIO card bus mode control bit */ +#define SDIO_CLKCTL_CLKEDGE BIT(13) /*!< SDIO_CLK clock edge selection bit */ +#define SDIO_CLKCTL_HWCLKEN BIT(14) /*!< hardware clock control enable bit */ + +/* SDIO_CMDAGMT */ +#define SDIO_CMDAGMT_CMDAGMT BITS(0,31) /*!< SDIO card command argument */ + +/* SDIO_CMDCTL */ +#define SDIO_CMDCTL_CMDIDX BITS(0,5) /*!< command index */ +#define SDIO_CMDCTL_CMDRESP BITS(6,7) /*!< command response type bits */ +#define SDIO_CMDCTL_INTWAIT BIT(8) /*!< interrupt wait instead of timeout */ +#define SDIO_CMDCTL_WAITDEND BIT(9) /*!< wait for ends of data transfer */ +#define SDIO_CMDCTL_CSMEN BIT(10) /*!< command state machine(CSM) enable bit */ +#define SDIO_CMDCTL_SUSPEND BIT(11) /*!< SD I/O suspend command(SD I/O only) */ +#define SDIO_CMDCTL_ENCMDC BIT(12) /*!< CMD completion signal enabled (CE-ATA only) */ +#define SDIO_CMDCTL_NINTEN BIT(13) /*!< no CE-ATA interrupt (CE-ATA only) */ +#define SDIO_CMDCTL_ATAEN BIT(14) /*!< CE-ATA command enable(CE-ATA only) */ + +/* SDIO_DATATO */ +#define SDIO_DATATO_DATATO BITS(0,31) /*!< data timeout period */ + +/* SDIO_DATALEN */ +#define SDIO_DATALEN_DATALEN BITS(0,24) /*!< data transfer length */ + +/* SDIO_DATACTL */ +#define SDIO_DATACTL_DATAEN BIT(0) /*!< data transfer enabled bit */ +#define SDIO_DATACTL_DATADIR BIT(1) /*!< data transfer direction */ +#define SDIO_DATACTL_TRANSMOD BIT(2) /*!< data transfer mode */ +#define SDIO_DATACTL_DMAEN BIT(3) /*!< DMA enable bit */ +#define SDIO_DATACTL_BLKSZ BITS(4,7) /*!< data block size */ +#define SDIO_DATACTL_RWEN BIT(8) /*!< read wait mode enabled(SD I/O only) */ +#define SDIO_DATACTL_RWSTOP BIT(9) /*!< read wait stop(SD I/O only) */ +#define SDIO_DATACTL_RWTYPE BIT(10) /*!< read wait type(SD I/O only) */ +#define SDIO_DATACTL_IOEN BIT(11) /*!< SD I/O specific function enable(SD I/O only) */ + +/* SDIO_STAT */ +#define SDIO_STAT_CCRCERR BIT(0) /*!< command response received (CRC check failed) */ +#define SDIO_STAT_DTCRCERR BIT(1) /*!< data block sent/received (CRC check failed) */ +#define SDIO_STAT_CMDTMOUT BIT(2) /*!< command response timeout */ +#define SDIO_STAT_DTTMOUT BIT(3) /*!< data timeout */ +#define SDIO_STAT_TXURE BIT(4) /*!< transmit FIFO underrun error occurs */ +#define SDIO_STAT_RXORE BIT(5) /*!< received FIFO overrun error occurs */ +#define SDIO_STAT_CMDRECV BIT(6) /*!< command response received (CRC check passed) */ +#define SDIO_STAT_CMDSEND BIT(7) /*!< command sent (no response required) */ +#define SDIO_STAT_DTEND BIT(8) /*!< data end (data counter, SDIO_DATACNT, is zero) */ +#define SDIO_STAT_STBITE BIT(9) /*!< start bit error in the bus */ +#define SDIO_STAT_DTBLKEND BIT(10) /*!< data block sent/received (CRC check passed) */ +#define SDIO_STAT_CMDRUN BIT(11) /*!< command transmission in progress */ +#define SDIO_STAT_TXRUN BIT(12) /*!< data transmission in progress */ +#define SDIO_STAT_RXRUN BIT(13) /*!< data reception in progress */ +#define SDIO_STAT_TFH BIT(14) /*!< transmit FIFO is half empty: at least 8 words can be written into the FIFO */ +#define SDIO_STAT_RFH BIT(15) /*!< receive FIFO is half full: at least 8 words can be read in the FIFO */ +#define SDIO_STAT_TFF BIT(16) /*!< transmit FIFO is full */ +#define SDIO_STAT_RFF BIT(17) /*!< receive FIFO is full */ +#define SDIO_STAT_TFE BIT(18) /*!< transmit FIFO is empty */ +#define SDIO_STAT_RFE BIT(19) /*!< receive FIFO is empty */ +#define SDIO_STAT_TXDTVAL BIT(20) /*!< data is valid in transmit FIFO */ +#define SDIO_STAT_RXDTVAL BIT(21) /*!< data is valid in receive FIFO */ +#define SDIO_STAT_SDIOINT BIT(22) /*!< SD I/O interrupt received */ +#define SDIO_STAT_ATAEND BIT(23) /*!< CE-ATA command completion signal received (only for CMD61) */ + +/* SDIO_INTC */ +#define SDIO_INTC_CCRCERRC BIT(0) /*!< CCRCERR flag clear bit */ +#define SDIO_INTC_DTCRCERRC BIT(1) /*!< DTCRCERR flag clear bit */ +#define SDIO_INTC_CMDTMOUTC BIT(2) /*!< CMDTMOUT flag clear bit */ +#define SDIO_INTC_DTTMOUTC BIT(3) /*!< DTTMOUT flag clear bit */ +#define SDIO_INTC_TXUREC BIT(4) /*!< TXURE flag clear bit */ +#define SDIO_INTC_RXOREC BIT(5) /*!< RXORE flag clear bit */ +#define SDIO_INTC_CMDRECVC BIT(6) /*!< CMDRECV flag clear bit */ +#define SDIO_INTC_CMDSENDC BIT(7) /*!< CMDSEND flag clear bit */ +#define SDIO_INTC_DTENDC BIT(8) /*!< DTEND flag clear bit */ +#define SDIO_INTC_STBITEC BIT(9) /*!< STBITE flag clear bit */ +#define SDIO_INTC_DTBLKENDC BIT(10) /*!< DTBLKEND flag clear bit */ +#define SDIO_INTC_SDIOINTC BIT(22) /*!< SDIOINT flag clear bit */ +#define SDIO_INTC_ATAENDC BIT(23) /*!< ATAEND flag clear bit */ + +/* SDIO_INTEN */ +#define SDIO_INTEN_CCRCERRIE BIT(0) /*!< command response CRC fail interrupt enable */ +#define SDIO_INTEN_DTCRCERRIE BIT(1) /*!< data CRC fail interrupt enable */ +#define SDIO_INTEN_CMDTMOUTIE BIT(2) /*!< command response timeout interrupt enable */ +#define SDIO_INTEN_DTTMOUTIE BIT(3) /*!< data timeout interrupt enable */ +#define SDIO_INTEN_TXUREIE BIT(4) /*!< transmit FIFO underrun error interrupt enable */ +#define SDIO_INTEN_RXOREIE BIT(5) /*!< received FIFO overrun error interrupt enable */ +#define SDIO_INTEN_CMDRECVIE BIT(6) /*!< command response received interrupt enable */ +#define SDIO_INTEN_CMDSENDIE BIT(7) /*!< command sent interrupt enable */ +#define SDIO_INTEN_DTENDIE BIT(8) /*!< data end interrupt enable */ +#define SDIO_INTEN_STBITEIE BIT(9) /*!< start bit error interrupt enable */ +#define SDIO_INTEN_DTBLKENDIE BIT(10) /*!< data block end interrupt enable */ +#define SDIO_INTEN_CMDRUNIE BIT(11) /*!< command transmission interrupt enable */ +#define SDIO_INTEN_TXRUNIE BIT(12) /*!< data transmission interrupt enable */ +#define SDIO_INTEN_RXRUNIE BIT(13) /*!< data reception interrupt enable */ +#define SDIO_INTEN_TFHIE BIT(14) /*!< transmit FIFO half empty interrupt enable */ +#define SDIO_INTEN_RFHIE BIT(15) /*!< receive FIFO half full interrupt enable */ +#define SDIO_INTEN_TFFIE BIT(16) /*!< transmit FIFO full interrupt enable */ +#define SDIO_INTEN_RFFIE BIT(17) /*!< receive FIFO full interrupt enable */ +#define SDIO_INTEN_TFEIE BIT(18) /*!< transmit FIFO empty interrupt enable */ +#define SDIO_INTEN_RFEIE BIT(19) /*!< receive FIFO empty interrupt enable */ +#define SDIO_INTEN_TXDTVALIE BIT(20) /*!< data valid in transmit FIFO interrupt enable */ +#define SDIO_INTEN_RXDTVALIE BIT(21) /*!< data valid in receive FIFO interrupt enable */ +#define SDIO_INTEN_SDIOINTIE BIT(22) /*!< SD I/O interrupt received interrupt enable */ +#define SDIO_INTEN_ATAENDIE BIT(23) /*!< CE-ATA command completion signal received interrupt enable */ + +/* SDIO_FIFO */ +#define SDIO_FIFO_FIFODT BITS(0,31) /*!< receive FIFO data or transmit FIFO data */ + +/* constants definitions */ +/* SDIO flags */ +#define SDIO_FLAG_CCRCERR BIT(0) /*!< command response received (CRC check failed) flag */ +#define SDIO_FLAG_DTCRCERR BIT(1) /*!< data block sent/received (CRC check failed) flag */ +#define SDIO_FLAG_CMDTMOUT BIT(2) /*!< command response timeout flag */ +#define SDIO_FLAG_DTTMOUT BIT(3) /*!< data timeout flag */ +#define SDIO_FLAG_TXURE BIT(4) /*!< transmit FIFO underrun error occurs flag */ +#define SDIO_FLAG_RXORE BIT(5) /*!< received FIFO overrun error occurs flag */ +#define SDIO_FLAG_CMDRECV BIT(6) /*!< command response received (CRC check passed) flag */ +#define SDIO_FLAG_CMDSEND BIT(7) /*!< command sent (no response required) flag */ +#define SDIO_FLAG_DTEND BIT(8) /*!< data end (data counter, SDIO_DATACNT, is zero) flag */ +#define SDIO_FLAG_STBITE BIT(9) /*!< start bit error in the bus flag */ +#define SDIO_FLAG_DTBLKEND BIT(10) /*!< data block sent/received (CRC check passed) flag */ +#define SDIO_FLAG_CMDRUN BIT(11) /*!< command transmission in progress flag */ +#define SDIO_FLAG_TXRUN BIT(12) /*!< data transmission in progress flag */ +#define SDIO_FLAG_RXRUN BIT(13) /*!< data reception in progress flag */ +#define SDIO_FLAG_TFH BIT(14) /*!< transmit FIFO is half empty flag: at least 8 words can be written into the FIFO */ +#define SDIO_FLAG_RFH BIT(15) /*!< receive FIFO is half full flag: at least 8 words can be read in the FIFO */ +#define SDIO_FLAG_TFF BIT(16) /*!< transmit FIFO is full flag */ +#define SDIO_FLAG_RFF BIT(17) /*!< receive FIFO is full flag */ +#define SDIO_FLAG_TFE BIT(18) /*!< transmit FIFO is empty flag */ +#define SDIO_FLAG_RFE BIT(19) /*!< receive FIFO is empty flag */ +#define SDIO_FLAG_TXDTVAL BIT(20) /*!< data is valid in transmit FIFO flag */ +#define SDIO_FLAG_RXDTVAL BIT(21) /*!< data is valid in receive FIFO flag */ +#define SDIO_FLAG_SDIOINT BIT(22) /*!< SD I/O interrupt received flag */ +#define SDIO_FLAG_ATAEND BIT(23) /*!< CE-ATA command completion signal received (only for CMD61) flag */ + +/* SDIO interrupt enable or disable */ +#define SDIO_INT_CCRCERR BIT(0) /*!< SDIO CCRCERR interrupt */ +#define SDIO_INT_DTCRCERR BIT(1) /*!< SDIO DTCRCERR interrupt */ +#define SDIO_INT_CMDTMOUT BIT(2) /*!< SDIO CMDTMOUT interrupt */ +#define SDIO_INT_DTTMOUT BIT(3) /*!< SDIO DTTMOUT interrupt */ +#define SDIO_INT_TXURE BIT(4) /*!< SDIO TXURE interrupt */ +#define SDIO_INT_RXORE BIT(5) /*!< SDIO RXORE interrupt */ +#define SDIO_INT_CMDRECV BIT(6) /*!< SDIO CMDRECV interrupt */ +#define SDIO_INT_CMDSEND BIT(7) /*!< SDIO CMDSEND interrupt */ +#define SDIO_INT_DTEND BIT(8) /*!< SDIO DTEND interrupt */ +#define SDIO_INT_STBITE BIT(9) /*!< SDIO STBITE interrupt */ +#define SDIO_INT_DTBLKEND BIT(10) /*!< SDIO DTBLKEND interrupt */ +#define SDIO_INT_CMDRUN BIT(11) /*!< SDIO CMDRUN interrupt */ +#define SDIO_INT_TXRUN BIT(12) /*!< SDIO TXRUN interrupt */ +#define SDIO_INT_RXRUN BIT(13) /*!< SDIO RXRUN interrupt */ +#define SDIO_INT_TFH BIT(14) /*!< SDIO TFH interrupt */ +#define SDIO_INT_RFH BIT(15) /*!< SDIO RFH interrupt */ +#define SDIO_INT_TFF BIT(16) /*!< SDIO TFF interrupt */ +#define SDIO_INT_RFF BIT(17) /*!< SDIO RFF interrupt */ +#define SDIO_INT_TFE BIT(18) /*!< SDIO TFE interrupt */ +#define SDIO_INT_RFE BIT(19) /*!< SDIO RFE interrupt */ +#define SDIO_INT_TXDTVAL BIT(20) /*!< SDIO TXDTVAL interrupt */ +#define SDIO_INT_RXDTVAL BIT(21) /*!< SDIO RXDTVAL interrupt */ +#define SDIO_INT_SDIOINT BIT(22) /*!< SDIO SDIOINT interrupt */ +#define SDIO_INT_ATAEND BIT(23) /*!< SDIO ATAEND interrupt */ + +/* SDIO interrupt flags */ +#define SDIO_INT_FLAG_CCRCERR BIT(0) /*!< SDIO CCRCERR interrupt flag */ +#define SDIO_INT_FLAG_DTCRCERR BIT(1) /*!< SDIO DTCRCERR interrupt flag */ +#define SDIO_INT_FLAG_CMDTMOUT BIT(2) /*!< SDIO CMDTMOUT interrupt flag */ +#define SDIO_INT_FLAG_DTTMOUT BIT(3) /*!< SDIO DTTMOUT interrupt flag */ +#define SDIO_INT_FLAG_TXURE BIT(4) /*!< SDIO TXURE interrupt flag */ +#define SDIO_INT_FLAG_RXORE BIT(5) /*!< SDIO RXORE interrupt flag */ +#define SDIO_INT_FLAG_CMDRECV BIT(6) /*!< SDIO CMDRECV interrupt flag */ +#define SDIO_INT_FLAG_CMDSEND BIT(7) /*!< SDIO CMDSEND interrupt flag */ +#define SDIO_INT_FLAG_DTEND BIT(8) /*!< SDIO DTEND interrupt flag */ +#define SDIO_INT_FLAG_STBITE BIT(9) /*!< SDIO STBITE interrupt flag */ +#define SDIO_INT_FLAG_DTBLKEND BIT(10) /*!< SDIO DTBLKEND interrupt flag */ +#define SDIO_INT_FLAG_CMDRUN BIT(11) /*!< SDIO CMDRUN interrupt flag */ +#define SDIO_INT_FLAG_TXRUN BIT(12) /*!< SDIO TXRUN interrupt flag */ +#define SDIO_INT_FLAG_RXRUN BIT(13) /*!< SDIO RXRUN interrupt flag */ +#define SDIO_INT_FLAG_TFH BIT(14) /*!< SDIO TFH interrupt flag */ +#define SDIO_INT_FLAG_RFH BIT(15) /*!< SDIO RFH interrupt flag */ +#define SDIO_INT_FLAG_TFF BIT(16) /*!< SDIO TFF interrupt flag */ +#define SDIO_INT_FLAG_RFF BIT(17) /*!< SDIO RFF interrupt flag */ +#define SDIO_INT_FLAG_TFE BIT(18) /*!< SDIO TFE interrupt flag */ +#define SDIO_INT_FLAG_RFE BIT(19) /*!< SDIO RFE interrupt flag */ +#define SDIO_INT_FLAG_TXDTVAL BIT(20) /*!< SDIO TXDTVAL interrupt flag */ +#define SDIO_INT_FLAG_RXDTVAL BIT(21) /*!< SDIO RXDTVAL interrupt flag */ +#define SDIO_INT_FLAG_SDIOINT BIT(22) /*!< SDIO SDIOINT interrupt flag */ +#define SDIO_INT_FLAG_ATAEND BIT(23) /*!< SDIO ATAEND interrupt flag */ + +/* SDIO power control */ +#define PWRCTL_PWRCTL(regval) (BITS(0,1) & ((uint32_t)(regval) << 0)) +#define SDIO_POWER_OFF PWRCTL_PWRCTL(0) /*!< SDIO power off */ +#define SDIO_POWER_ON PWRCTL_PWRCTL(3) /*!< SDIO power on */ + +/* SDIO card bus mode control */ +#define CLKCTL_BUSMODE(regval) (BITS(11,12) & ((uint32_t)(regval) << 11)) +#define SDIO_BUSMODE_1BIT CLKCTL_BUSMODE(0) /*!< 1-bit SDIO card bus mode */ +#define SDIO_BUSMODE_4BIT CLKCTL_BUSMODE(1) /*!< 4-bit SDIO card bus mode */ +#define SDIO_BUSMODE_8BIT CLKCTL_BUSMODE(2) /*!< 8-bit SDIO card bus mode */ + +/* SDIO_CLK clock edge selection */ +#define SDIO_SDIOCLKEDGE_RISING ((uint32_t)0x00000000U)/*!< select the rising edge of the SDIOCLK to generate SDIO_CLK */ +#define SDIO_SDIOCLKEDGE_FALLING SDIO_CLKCTL_CLKEDGE /*!< select the falling edge of the SDIOCLK to generate SDIO_CLK */ + +/* clock bypass enable or disable */ +#define SDIO_CLOCKBYPASS_DISABLE ((uint32_t)0x00000000U)/*!< no bypass */ +#define SDIO_CLOCKBYPASS_ENABLE SDIO_CLKCTL_CLKBYP /*!< clock bypass */ + +/* SDIO_CLK clock dynamic switch on/off for power saving */ +#define SDIO_CLOCKPWRSAVE_DISABLE ((uint32_t)0x00000000U)/*!< SDIO_CLK clock is always on */ +#define SDIO_CLOCKPWRSAVE_ENABLE SDIO_CLKCTL_CLKPWRSAV /*!< SDIO_CLK closed when bus is idle */ + +/* SDIO command response type */ +#define CMDCTL_CMDRESP(regval) (BITS(6,7) & ((uint32_t)(regval) << 6)) +#define SDIO_RESPONSETYPE_NO CMDCTL_CMDRESP(0) /*!< no response */ +#define SDIO_RESPONSETYPE_SHORT CMDCTL_CMDRESP(1) /*!< short response */ +#define SDIO_RESPONSETYPE_LONG CMDCTL_CMDRESP(3) /*!< long response */ + +/* command state machine wait type */ +#define SDIO_WAITTYPE_NO ((uint32_t)0x00000000U)/*!< not wait interrupt */ +#define SDIO_WAITTYPE_INTERRUPT SDIO_CMDCTL_INTWAIT /*!< wait interrupt */ +#define SDIO_WAITTYPE_DATAEND SDIO_CMDCTL_WAITDEND /*!< wait the end of data transfer */ + +#define SDIO_RESPONSE0 ((uint32_t)0x00000000U)/*!< card response[31:0]/card response[127:96] */ +#define SDIO_RESPONSE1 ((uint32_t)0x00000001U)/*!< card response[95:64] */ +#define SDIO_RESPONSE2 ((uint32_t)0x00000002U)/*!< card response[63:32] */ +#define SDIO_RESPONSE3 ((uint32_t)0x00000003U)/*!< card response[31:1], plus bit 0 */ + +/* SDIO data block size */ +#define DATACTL_BLKSZ(regval) (BITS(4,7) & ((uint32_t)(regval) << 4)) +#define SDIO_DATABLOCKSIZE_1BYTE DATACTL_BLKSZ(0) /*!< block size = 1 byte */ +#define SDIO_DATABLOCKSIZE_2BYTES DATACTL_BLKSZ(1) /*!< block size = 2 bytes */ +#define SDIO_DATABLOCKSIZE_4BYTES DATACTL_BLKSZ(2) /*!< block size = 4 bytes */ +#define SDIO_DATABLOCKSIZE_8BYTES DATACTL_BLKSZ(3) /*!< block size = 8 bytes */ +#define SDIO_DATABLOCKSIZE_16BYTES DATACTL_BLKSZ(4) /*!< block size = 16 bytes */ +#define SDIO_DATABLOCKSIZE_32BYTES DATACTL_BLKSZ(5) /*!< block size = 32 bytes */ +#define SDIO_DATABLOCKSIZE_64BYTES DATACTL_BLKSZ(6) /*!< block size = 64 bytes */ +#define SDIO_DATABLOCKSIZE_128BYTES DATACTL_BLKSZ(7) /*!< block size = 128 bytes */ +#define SDIO_DATABLOCKSIZE_256BYTES DATACTL_BLKSZ(8) /*!< block size = 256 bytes */ +#define SDIO_DATABLOCKSIZE_512BYTES DATACTL_BLKSZ(9) /*!< block size = 512 bytes */ +#define SDIO_DATABLOCKSIZE_1024BYTES DATACTL_BLKSZ(10) /*!< block size = 1024 bytes */ +#define SDIO_DATABLOCKSIZE_2048BYTES DATACTL_BLKSZ(11) /*!< block size = 2048 bytes */ +#define SDIO_DATABLOCKSIZE_4096BYTES DATACTL_BLKSZ(12) /*!< block size = 4096 bytes */ +#define SDIO_DATABLOCKSIZE_8192BYTES DATACTL_BLKSZ(13) /*!< block size = 8192 bytes */ +#define SDIO_DATABLOCKSIZE_16384BYTES DATACTL_BLKSZ(14) /*!< block size = 16384 bytes */ + +/* SDIO data transfer mode */ +#define SDIO_TRANSMODE_BLOCK ((uint32_t)0x00000000U)/*!< block transfer */ +#define SDIO_TRANSMODE_STREAM SDIO_DATACTL_TRANSMOD /*!< stream transfer or SDIO multibyte transfer */ + +/* SDIO data transfer direction */ +#define SDIO_TRANSDIRECTION_TOCARD ((uint32_t)0x00000000U)/*!< write data to card */ +#define SDIO_TRANSDIRECTION_TOSDIO SDIO_DATACTL_DATADIR /*!< read data from card */ + +/* SDIO read wait type */ +#define SDIO_READWAITTYPE_DAT2 ((uint32_t)0x00000000U)/*!< read wait control using SDIO_DAT[2] */ +#define SDIO_READWAITTYPE_CLK SDIO_DATACTL_RWTYPE /*!< read wait control by stopping SDIO_CLK */ + +/* function declarations */ +/* de/initialization functions, hardware clock, bus mode, power_state and SDIO clock configuration */ +/* deinitialize the SDIO */ +void sdio_deinit(void); +/* configure the SDIO clock */ +void sdio_clock_config(uint32_t clock_edge, uint32_t clock_bypass, uint32_t clock_powersave, uint16_t clock_division); +/* enable hardware clock control */ +void sdio_hardware_clock_enable(void); +/* disable hardware clock control */ +void sdio_hardware_clock_disable(void); +/* set different SDIO card bus mode */ +void sdio_bus_mode_set(uint32_t bus_mode); +/* set the SDIO power state */ +void sdio_power_state_set(uint32_t power_state); +/* get the SDIO power state */ +uint32_t sdio_power_state_get(void); +/* enable SDIO_CLK clock output */ +void sdio_clock_enable(void); +/* disable SDIO_CLK clock output */ +void sdio_clock_disable(void); + +/* configure the command index, argument, response type, wait type and CSM to send command functions */ +/* configure the command and response */ +void sdio_command_response_config(uint32_t cmd_index, uint32_t cmd_argument, uint32_t response_type); +/* set the command state machine wait type */ +void sdio_wait_type_set(uint32_t wait_type); +/* enable the CSM(command state machine) */ +void sdio_csm_enable(void); +/* disable the CSM(command state machine) */ +void sdio_csm_disable(void); +/* get the last response command index */ +uint8_t sdio_command_index_get(void); +/* get the response for the last received command */ +uint32_t sdio_response_get(uint32_t responsex); + +/* configure the data timeout, length, block size, transfer mode, direction and DSM for data transfer functions */ +/* configure the data timeout, data length and data block size */ +void sdio_data_config(uint32_t data_timeout, uint32_t data_length, uint32_t data_blocksize); +/* configure the data transfer mode and direction */ +void sdio_data_transfer_config(uint32_t transfer_mode, uint32_t transfer_direction); +/* enable the DSM(data state machine) for data transfer */ +void sdio_dsm_enable(void); +/* disable the DSM(data state machine) */ +void sdio_dsm_disable(void); +/* write data(one word) to the transmit FIFO */ +void sdio_data_write(uint32_t data); +/* read data(one word) from the receive FIFO */ +uint32_t sdio_data_read(void); +/* get the number of remaining data bytes to be transferred to card */ +uint32_t sdio_data_counter_get(void); +/* get the number of words remaining to be written or read from FIFO */ +uint32_t sdio_fifo_counter_get(void); +/* enable the DMA request for SDIO */ +void sdio_dma_enable(void); +/* disable the DMA request for SDIO */ +void sdio_dma_disable(void); + +/* flag and interrupt functions */ +/* get the flags state of SDIO */ +FlagStatus sdio_flag_get(uint32_t flag); +/* clear the pending flags of SDIO */ +void sdio_flag_clear(uint32_t flag); +/* enable the SDIO interrupt */ +void sdio_interrupt_enable(uint32_t int_flag); +/* disable the SDIO interrupt */ +void sdio_interrupt_disable(uint32_t int_flag); +/* get the interrupt flags state of SDIO */ +FlagStatus sdio_interrupt_flag_get(uint32_t int_flag); +/* clear the interrupt pending flags of SDIO */ +void sdio_interrupt_flag_clear(uint32_t int_flag); + +/* SD I/O card functions */ +/* enable the read wait mode(SD I/O only) */ +void sdio_readwait_enable(void); +/* disable the read wait mode(SD I/O only) */ +void sdio_readwait_disable(void); +/* enable the function that stop the read wait process(SD I/O only) */ +void sdio_stop_readwait_enable(void); +/* disable the function that stop the read wait process(SD I/O only) */ +void sdio_stop_readwait_disable(void); +/* set the read wait type(SD I/O only) */ +void sdio_readwait_type_set(uint32_t readwait_type); +/* enable the SD I/O mode specific operation(SD I/O only) */ +void sdio_operation_enable(void); +/* disable the SD I/O mode specific operation(SD I/O only) */ +void sdio_operation_disable(void); +/* enable the SD I/O suspend operation(SD I/O only) */ +void sdio_suspend_enable(void); +/* disable the SD I/O suspend operation(SD I/O only) */ +void sdio_suspend_disable(void); + +/* CE-ATA functions */ +/* enable the CE-ATA command(CE-ATA only) */ +void sdio_ceata_command_enable(void); +/* disable the CE-ATA command(CE-ATA only) */ +void sdio_ceata_command_disable(void); +/* enable the CE-ATA interrupt(CE-ATA only) */ +void sdio_ceata_interrupt_enable(void); +/* disable the CE-ATA interrupt(CE-ATA only) */ +void sdio_ceata_interrupt_disable(void); +/* enable the CE-ATA command completion signal(CE-ATA only) */ +void sdio_ceata_command_completion_enable(void); +/* disable the CE-ATA command completion signal(CE-ATA only) */ +void sdio_ceata_command_completion_disable(void); + +#endif /* GD32F10X_SDIO_H */ diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_spi.h b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_spi.h new file mode 100644 index 0000000..e7a86bf --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_spi.h @@ -0,0 +1,324 @@ +/*! + \file gd32f10x_spi.h + \brief definitions for the SPI + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#ifndef GD32F10X_SPI_H +#define GD32F10X_SPI_H + +#include "gd32f10x.h" + +/* SPIx(x=0,1,2) definitions */ +#define SPI0 (SPI_BASE + 0x0000F800U) +#define SPI1 SPI_BASE +#define SPI2 (SPI_BASE + 0x00000400U) + +/* registers definitions */ +#define SPI_CTL0(spix) REG32((spix) + 0x00000000U) /*!< SPI control register 0 */ +#define SPI_CTL1(spix) REG32((spix) + 0x00000004U) /*!< SPI control register 1*/ +#define SPI_STAT(spix) REG32((spix) + 0x00000008U) /*!< SPI status register */ +#define SPI_DATA(spix) REG32((spix) + 0x0000000CU) /*!< SPI data register */ +#define SPI_CRCPOLY(spix) REG32((spix) + 0x00000010U) /*!< SPI CRC polynomial register */ +#define SPI_RCRC(spix) REG32((spix) + 0x00000014U) /*!< SPI receive CRC register */ +#define SPI_TCRC(spix) REG32((spix) + 0x00000018U) /*!< SPI transmit CRC register */ +#define SPI_I2SCTL(spix) REG32((spix) + 0x0000001CU) /*!< SPI I2S control register */ +#define SPI_I2SPSC(spix) REG32((spix) + 0x00000020U) /*!< SPI I2S clock prescaler register */ + +/* bits definitions */ +/* SPI_CTL0 */ +#define SPI_CTL0_CKPH BIT(0) /*!< clock phase selection*/ +#define SPI_CTL0_CKPL BIT(1) /*!< clock polarity selection */ +#define SPI_CTL0_MSTMOD BIT(2) /*!< master mode enable */ +#define SPI_CTL0_PSC BITS(3,5) /*!< master clock prescaler selection */ +#define SPI_CTL0_SPIEN BIT(6) /*!< SPI enable*/ +#define SPI_CTL0_LF BIT(7) /*!< LSB first mode */ +#define SPI_CTL0_SWNSS BIT(8) /*!< NSS pin selection in NSS software mode */ +#define SPI_CTL0_SWNSSEN BIT(9) /*!< NSS software mode selection */ +#define SPI_CTL0_RO BIT(10) /*!< receive only */ +#define SPI_CTL0_FF16 BIT(11) /*!< data frame size */ +#define SPI_CTL0_CRCNT BIT(12) /*!< CRC next transfer */ +#define SPI_CTL0_CRCEN BIT(13) /*!< CRC calculation enable */ +#define SPI_CTL0_BDOEN BIT(14) /*!< bidirectional transmit output enable*/ +#define SPI_CTL0_BDEN BIT(15) /*!< bidirectional enable */ + +/* SPI_CTL1 */ +#define SPI_CTL1_DMAREN BIT(0) /*!< receive buffer DMA enable */ +#define SPI_CTL1_DMATEN BIT(1) /*!< transmit buffer DMA enable */ +#define SPI_CTL1_NSSDRV BIT(2) /*!< drive NSS output */ +#define SPI_CTL1_ERRIE BIT(5) /*!< errors interrupt enable */ +#define SPI_CTL1_RBNEIE BIT(6) /*!< receive buffer not empty interrupt enable */ +#define SPI_CTL1_TBEIE BIT(7) /*!< transmit buffer empty interrupt enable */ + +/* SPI_STAT */ +#define SPI_STAT_RBNE BIT(0) /*!< receive buffer not empty */ +#define SPI_STAT_TBE BIT(1) /*!< transmit buffer empty */ +#define SPI_STAT_I2SCH BIT(2) /*!< I2S channel side */ +#define SPI_STAT_TXURERR BIT(3) /*!< I2S transmission underrun error bit */ +#define SPI_STAT_CRCERR BIT(4) /*!< SPI CRC error bit */ +#define SPI_STAT_CONFERR BIT(5) /*!< SPI configuration error bit */ +#define SPI_STAT_RXORERR BIT(6) /*!< SPI reception overrun error bit */ +#define SPI_STAT_TRANS BIT(7) /*!< transmitting on-going bit */ + +/* SPI_DATA */ +#define SPI_DATA_DATA BITS(0,15) /*!< data transfer register */ + +/* SPI_CRCPOLY */ +#define SPI_CRCPOLY_CRCPOLY BITS(0,15) /*!< CRC polynomial value */ + +/* SPI_RCRC */ +#define SPI_RCRC_RCRC BITS(0,15) /*!< RX CRC value */ + +/* SPI_TCRC */ +#define SPI_TCRC_TCRC BITS(0,15) /*!< TX CRC value */ + +/* SPI_I2SCTL */ +#define SPI_I2SCTL_CHLEN BIT(0) /*!< channel length */ +#define SPI_I2SCTL_DTLEN BITS(1,2) /*!< data length */ +#define SPI_I2SCTL_CKPL BIT(3) /*!< idle state clock polarity */ +#define SPI_I2SCTL_I2SSTD BITS(4,5) /*!< I2S standard selection */ +#define SPI_I2SCTL_PCMSMOD BIT(7) /*!< PCM frame synchronization mode */ +#define SPI_I2SCTL_I2SOPMOD BITS(8,9) /*!< I2S operation mode */ +#define SPI_I2SCTL_I2SEN BIT(10) /*!< I2S enable */ +#define SPI_I2SCTL_I2SSEL BIT(11) /*!< I2S mode selection */ + +/* SPI_I2SPSC */ +#define SPI_I2SPSC_DIV BITS(0,7) /*!< dividing factor for the prescaler */ +#define SPI_I2SPSC_OF BIT(8) /*!< odd factor for the prescaler */ +#define SPI_I2SPSC_MCKOEN BIT(9) /*!< I2S MCK output enable */ + +/* constants definitions */ +/* SPI and I2S parameter struct definitions */ +typedef struct { + uint32_t device_mode; /*!< SPI master or slave */ + uint32_t trans_mode; /*!< SPI transfer type */ + uint32_t frame_size; /*!< SPI frame size */ + uint32_t nss; /*!< SPI NSS control by handware or software */ + uint32_t endian; /*!< SPI big endian or little endian */ + uint32_t clock_polarity_phase; /*!< SPI clock phase and polarity */ + uint32_t prescale; /*!< SPI prescaler factor */ +} spi_parameter_struct; + +/* SPI mode definitions */ +#define SPI_MASTER (SPI_CTL0_MSTMOD | SPI_CTL0_SWNSS) /*!< SPI as master */ +#define SPI_SLAVE ((uint32_t)0x00000000U) /*!< SPI as slave */ + +/* SPI bidirectional transfer direction */ +#define SPI_BIDIRECTIONAL_TRANSMIT SPI_CTL0_BDOEN /*!< SPI work in transmit-only mode */ +#define SPI_BIDIRECTIONAL_RECEIVE (~SPI_CTL0_BDOEN) /*!< SPI work in receive-only mode */ + +/* SPI transmit type */ +#define SPI_TRANSMODE_FULLDUPLEX ((uint32_t)0x00000000U) /*!< SPI receive and send data at fullduplex communication */ +#define SPI_TRANSMODE_RECEIVEONLY SPI_CTL0_RO /*!< SPI only receive data */ +#define SPI_TRANSMODE_BDRECEIVE SPI_CTL0_BDEN /*!< bidirectional receive data */ +#define SPI_TRANSMODE_BDTRANSMIT (SPI_CTL0_BDEN | SPI_CTL0_BDOEN) /*!< bidirectional transmit data*/ + +/* SPI frame size */ +#define SPI_FRAMESIZE_16BIT SPI_CTL0_FF16 /*!< SPI frame size is 16 bits */ +#define SPI_FRAMESIZE_8BIT ((uint32_t)0x00000000U) /*!< SPI frame size is 8 bits */ + +/* SPI NSS control mode */ +#define SPI_NSS_SOFT SPI_CTL0_SWNSSEN /*!< SPI NSS control by sofrware */ +#define SPI_NSS_HARD ((uint32_t)0x00000000U) /*!< SPI NSS control by hardware */ + +/* SPI transmit way */ +#define SPI_ENDIAN_MSB ((uint32_t)0x00000000U) /*!< SPI transmit way is big endian: transmit MSB first */ +#define SPI_ENDIAN_LSB SPI_CTL0_LF /*!< SPI transmit way is little endian: transmit LSB first */ + +/* SPI clock phase and polarity */ +#define SPI_CK_PL_LOW_PH_1EDGE ((uint32_t)0x00000000U) /*!< SPI clock polarity is low level and phase is first edge */ +#define SPI_CK_PL_HIGH_PH_1EDGE SPI_CTL0_CKPL /*!< SPI clock polarity is high level and phase is first edge */ +#define SPI_CK_PL_LOW_PH_2EDGE SPI_CTL0_CKPH /*!< SPI clock polarity is low level and phase is second edge */ +#define SPI_CK_PL_HIGH_PH_2EDGE (SPI_CTL0_CKPL | SPI_CTL0_CKPH) /*!< SPI clock polarity is high level and phase is second edge */ + +/* SPI clock prescaler factor */ +#define CTL0_PSC(regval) (BITS(3,5) & ((uint32_t)(regval) << 3)) +#define SPI_PSC_2 CTL0_PSC(0) /*!< SPI clock prescaler factor is 2 */ +#define SPI_PSC_4 CTL0_PSC(1) /*!< SPI clock prescaler factor is 4 */ +#define SPI_PSC_8 CTL0_PSC(2) /*!< SPI clock prescaler factor is 8 */ +#define SPI_PSC_16 CTL0_PSC(3) /*!< SPI clock prescaler factor is 16 */ +#define SPI_PSC_32 CTL0_PSC(4) /*!< SPI clock prescaler factor is 32 */ +#define SPI_PSC_64 CTL0_PSC(5) /*!< SPI clock prescaler factor is 64 */ +#define SPI_PSC_128 CTL0_PSC(6) /*!< SPI clock prescaler factor is 128 */ +#define SPI_PSC_256 CTL0_PSC(7) /*!< SPI clock prescaler factor is 256 */ + +/* I2S audio sample rate */ +#define I2S_AUDIOSAMPLE_8K ((uint32_t)8000U) /*!< I2S audio sample rate is 8KHz */ +#define I2S_AUDIOSAMPLE_11K ((uint32_t)11025U) /*!< I2S audio sample rate is 11KHz */ +#define I2S_AUDIOSAMPLE_16K ((uint32_t)16000U) /*!< I2S audio sample rate is 16KHz */ +#define I2S_AUDIOSAMPLE_22K ((uint32_t)22050U) /*!< I2S audio sample rate is 22KHz */ +#define I2S_AUDIOSAMPLE_32K ((uint32_t)32000U) /*!< I2S audio sample rate is 32KHz */ +#define I2S_AUDIOSAMPLE_44K ((uint32_t)44100U) /*!< I2S audio sample rate is 44KHz */ +#define I2S_AUDIOSAMPLE_48K ((uint32_t)48000U) /*!< I2S audio sample rate is 48KHz */ +#define I2S_AUDIOSAMPLE_96K ((uint32_t)96000U) /*!< I2S audio sample rate is 96KHz */ +#define I2S_AUDIOSAMPLE_192K ((uint32_t)192000U) /*!< I2S audio sample rate is 192KHz */ + +/* I2S frame format */ +#define I2SCTL_DTLEN(regval) (BITS(1,2) & ((uint32_t)(regval) << 1)) +#define I2S_FRAMEFORMAT_DT16B_CH16B I2SCTL_DTLEN(0) /*!< I2S data length is 16 bit and channel length is 16 bit */ +#define I2S_FRAMEFORMAT_DT16B_CH32B (I2SCTL_DTLEN(0) | SPI_I2SCTL_CHLEN) /*!< I2S data length is 16 bit and channel length is 32 bit */ +#define I2S_FRAMEFORMAT_DT24B_CH32B (I2SCTL_DTLEN(1) | SPI_I2SCTL_CHLEN) /*!< I2S data length is 24 bit and channel length is 32 bit */ +#define I2S_FRAMEFORMAT_DT32B_CH32B (I2SCTL_DTLEN(2) | SPI_I2SCTL_CHLEN) /*!< I2S data length is 32 bit and channel length is 32 bit */ + +/* I2S master clock output */ +#define I2S_MCKOUT_DISABLE ((uint32_t)0x00000000U) /*!< I2S master clock output disable */ +#define I2S_MCKOUT_ENABLE SPI_I2SPSC_MCKOEN /*!< I2S master clock output enable */ + +/* I2S operation mode */ +#define I2SCTL_I2SOPMOD(regval) (BITS(8,9) & ((uint32_t)(regval) << 8)) +#define I2S_MODE_SLAVETX I2SCTL_I2SOPMOD(0) /*!< I2S slave transmit mode */ +#define I2S_MODE_SLAVERX I2SCTL_I2SOPMOD(1) /*!< I2S slave receive mode */ +#define I2S_MODE_MASTERTX I2SCTL_I2SOPMOD(2) /*!< I2S master transmit mode */ +#define I2S_MODE_MASTERRX I2SCTL_I2SOPMOD(3) /*!< I2S master receive mode */ + +/* I2S standard */ +#define I2SCTL_I2SSTD(regval) (BITS(4,5) & ((uint32_t)(regval) << 4)) +#define I2S_STD_PHILLIPS I2SCTL_I2SSTD(0) /*!< I2S phillips standard */ +#define I2S_STD_MSB I2SCTL_I2SSTD(1) /*!< I2S MSB standard */ +#define I2S_STD_LSB I2SCTL_I2SSTD(2) /*!< I2S LSB standard */ +#define I2S_STD_PCMSHORT I2SCTL_I2SSTD(3) /*!< I2S PCM short standard */ +#define I2S_STD_PCMLONG (I2SCTL_I2SSTD(3) | SPI_I2SCTL_PCMSMOD) /*!< I2S PCM long standard */ + +/* I2S clock polarity */ +#define I2S_CKPL_LOW ((uint32_t)0x00000000U) /*!< I2S clock polarity low level */ +#define I2S_CKPL_HIGH SPI_I2SCTL_CKPL /*!< I2S clock polarity high level */ + +/* SPI DMA constants definitions */ +#define SPI_DMA_TRANSMIT ((uint8_t)0x00U) /*!< SPI transmit data use DMA */ +#define SPI_DMA_RECEIVE ((uint8_t)0x01U) /*!< SPI receive data use DMA */ + +/* SPI CRC constants definitions */ +#define SPI_CRC_TX ((uint8_t)0x00U) /*!< SPI transmit CRC value */ +#define SPI_CRC_RX ((uint8_t)0x01U) /*!< SPI receive CRC value */ + +/* SPI/I2S interrupt enable/disable constants definitions */ +#define SPI_I2S_INT_TBE SPI_CTL1_TBEIE /*!< transmit buffer empty interrupt */ +#define SPI_I2S_INT_RBNE SPI_CTL1_RBNEIE /*!< receive buffer not empty interrupt */ +#define SPI_I2S_INT_ERR SPI_CTL1_ERRIE /*!< error interrupt */ + +/* SPI/I2S interrupt flag constants definitions */ +#define SPI_I2S_INT_FLAG_TBE ((uint8_t)0x00U) /*!< transmit buffer empty interrupt flag */ +#define SPI_I2S_INT_FLAG_RBNE ((uint8_t)0x01U) /*!< receive buffer not empty interrupt flag */ +#define SPI_I2S_INT_FLAG_RXORERR ((uint8_t)0x02U) /*!< overrun interrupt flag */ +#define SPI_INT_FLAG_CONFERR ((uint8_t)0x03U) /*!< config error interrupt flag */ +#define SPI_INT_FLAG_CRCERR ((uint8_t)0x04U) /*!< CRC error interrupt flag */ +#define I2S_INT_FLAG_TXURERR ((uint8_t)0x05U) /*!< underrun error interrupt flag */ + +/* SPI/I2S flag definitions */ +#define SPI_FLAG_RBNE SPI_STAT_RBNE /*!< receive buffer not empty flag */ +#define SPI_FLAG_TBE SPI_STAT_TBE /*!< transmit buffer empty flag */ +#define SPI_FLAG_CRCERR SPI_STAT_CRCERR /*!< CRC error flag */ +#define SPI_FLAG_CONFERR SPI_STAT_CONFERR /*!< mode config error flag */ +#define SPI_FLAG_RXORERR SPI_STAT_RXORERR /*!< receive overrun error flag */ +#define SPI_FLAG_TRANS SPI_STAT_TRANS /*!< transmit on-going flag */ +#define I2S_FLAG_RBNE SPI_STAT_RBNE /*!< receive buffer not empty flag */ +#define I2S_FLAG_TBE SPI_STAT_TBE /*!< transmit buffer empty flag */ +#define I2S_FLAG_CH SPI_STAT_I2SCH /*!< channel side flag */ +#define I2S_FLAG_TXURERR SPI_STAT_TXURERR /*!< underrun error flag */ +#define I2S_FLAG_RXORERR SPI_STAT_RXORERR /*!< overrun error flag */ +#define I2S_FLAG_TRANS SPI_STAT_TRANS /*!< transmit on-going flag */ + +/* function declarations */ +/* SPI deinitialization and initialization functions */ +/* reset SPI and I2S */ +void spi_i2s_deinit(uint32_t spi_periph); +/* initialize the parameters of SPI structure with the default values */ +void spi_struct_para_init(spi_parameter_struct *spi_struct); +/* initialize SPI parameters */ +void spi_init(uint32_t spi_periph, spi_parameter_struct *spi_struct); +/* enable SPI */ +void spi_enable(uint32_t spi_periph); +/* disable SPI */ +void spi_disable(uint32_t spi_periph); + +/* I2S initialization functions */ +/* initialize I2S parameters */ +void i2s_init(uint32_t spi_periph, uint32_t mode, uint32_t standard, uint32_t ckpl); +/* configure I2S prescaler */ +void i2s_psc_config(uint32_t spi_periph, uint32_t audiosample, uint32_t frameformat, uint32_t mckout); +/* enable I2S */ +void i2s_enable(uint32_t spi_periph); +/* disable I2S */ +void i2s_disable(uint32_t spi_periph); + +/* NSS functions */ +/* enable SPI NSS output */ +void spi_nss_output_enable(uint32_t spi_periph); +/* disable SPI NSS output */ +void spi_nss_output_disable(uint32_t spi_periph); +/* SPI NSS pin high level in software mode */ +void spi_nss_internal_high(uint32_t spi_periph); +/* SPI NSS pin low level in software mode */ +void spi_nss_internal_low(uint32_t spi_periph); + +/* DMA functions */ +/* enable SPI DMA send or receive */ +void spi_dma_enable(uint32_t spi_periph, uint8_t dma); +/* disable SPI DMA send or receive */ +void spi_dma_disable(uint32_t spi_periph, uint8_t dma); + +/* communication functions */ +/* configure SPI data frame format */ +void spi_i2s_data_frame_format_config(uint32_t spi_periph, uint16_t frame_format); +/* configure SPI bidirectional transfer direction */ +void spi_bidirectional_transfer_config(uint32_t spi_periph, uint32_t transfer_direction); +/* SPI transmit data */ +void spi_i2s_data_transmit(uint32_t spi_periph, uint16_t data); +/* SPI receive data */ +uint16_t spi_i2s_data_receive(uint32_t spi_periph); + +/* SPI CRC functions */ +/* set SPI CRC polynomial */ +void spi_crc_polynomial_set(uint32_t spi_periph, uint16_t crc_poly); +/* get SPI CRC polynomial */ +uint16_t spi_crc_polynomial_get(uint32_t spi_periph); +/* turn on SPI CRC function */ +void spi_crc_on(uint32_t spi_periph); +/* turn off SPI CRC function */ +void spi_crc_off(uint32_t spi_periph); +/* SPI next data is CRC value */ +void spi_crc_next(uint32_t spi_periph); +/* get SPI CRC send value or receive value */ +uint16_t spi_crc_get(uint32_t spi_periph, uint8_t crc); +/* clear SPI CRC error flag status */ +void spi_crc_error_clear(uint32_t spi_periph); + +/* flag and interrupt functions */ +/* get SPI and I2S flag status */ +FlagStatus spi_i2s_flag_get(uint32_t spi_periph, uint32_t flag); +/* enable SPI and I2S interrupt */ +void spi_i2s_interrupt_enable(uint32_t spi_periph, uint8_t interrupt); +/* disable SPI and I2S interrupt */ +void spi_i2s_interrupt_disable(uint32_t spi_periph, uint8_t interrupt); +/* get SPI and I2S interrupt status */ +FlagStatus spi_i2s_interrupt_flag_get(uint32_t spi_periph, uint8_t interrupt); + +#endif /* GD32F10X_SPI_H */ diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_timer.h b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_timer.h new file mode 100644 index 0000000..561858b --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_timer.h @@ -0,0 +1,725 @@ +/*! + \file gd32f10x_timer.h + \brief definitions for the TIMER + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#ifndef GD32F10X_TIMER_H +#define GD32F10X_TIMER_H + +#include "gd32f10x.h" + +/* TIMERx(x=0..13) definitions */ +#define TIMER0 (TIMER_BASE + 0x00012C00U) +#define TIMER1 (TIMER_BASE + 0x00000000U) +#define TIMER2 (TIMER_BASE + 0x00000400U) +#define TIMER3 (TIMER_BASE + 0x00000800U) +#define TIMER4 (TIMER_BASE + 0x00000C00U) +#define TIMER5 (TIMER_BASE + 0x00001000U) +#define TIMER6 (TIMER_BASE + 0x00001400U) +#define TIMER7 (TIMER_BASE + 0x00013400U) +#define TIMER8 (TIMER_BASE + 0x00014C00U) +#define TIMER9 (TIMER_BASE + 0x00015000U) +#define TIMER10 (TIMER_BASE + 0x00015400U) +#define TIMER11 (TIMER_BASE + 0x00001800U) +#define TIMER12 (TIMER_BASE + 0x00001C00U) +#define TIMER13 (TIMER_BASE + 0x00002000U) + +/* registers definitions */ +#define TIMER_CTL0(timerx) REG32((timerx) + 0x00U) /*!< TIMER control register 0 */ +#define TIMER_CTL1(timerx) REG32((timerx) + 0x04U) /*!< TIMER control register 1 */ +#define TIMER_SMCFG(timerx) REG32((timerx) + 0x08U) /*!< TIMER slave mode configuration register */ +#define TIMER_DMAINTEN(timerx) REG32((timerx) + 0x0CU) /*!< TIMER DMA and interrupt enable register */ +#define TIMER_INTF(timerx) REG32((timerx) + 0x10U) /*!< TIMER interrupt flag register */ +#define TIMER_SWEVG(timerx) REG32((timerx) + 0x14U) /*!< TIMER software event generation register */ +#define TIMER_CHCTL0(timerx) REG32((timerx) + 0x18U) /*!< TIMER channel control register 0 */ +#define TIMER_CHCTL1(timerx) REG32((timerx) + 0x1CU) /*!< TIMER channel control register 1 */ +#define TIMER_CHCTL2(timerx) REG32((timerx) + 0x20U) /*!< TIMER channel control register 2 */ +#define TIMER_CNT(timerx) REG32((timerx) + 0x24U) /*!< TIMER counter register */ +#define TIMER_PSC(timerx) REG32((timerx) + 0x28U) /*!< TIMER prescaler register */ +#define TIMER_CAR(timerx) REG32((timerx) + 0x2CU) /*!< TIMER counter auto reload register */ +#define TIMER_CREP(timerx) REG32((timerx) + 0x30U) /*!< TIMER counter repetition register */ +#define TIMER_CH0CV(timerx) REG32((timerx) + 0x34U) /*!< TIMER channel 0 capture/compare value register */ +#define TIMER_CH1CV(timerx) REG32((timerx) + 0x38U) /*!< TIMER channel 1 capture/compare value register */ +#define TIMER_CH2CV(timerx) REG32((timerx) + 0x3CU) /*!< TIMER channel 2 capture/compare value register */ +#define TIMER_CH3CV(timerx) REG32((timerx) + 0x40U) /*!< TIMER channel 3 capture/compare value register */ +#define TIMER_CCHP(timerx) REG32((timerx) + 0x44U) /*!< TIMER channel complementary protection register */ +#define TIMER_DMACFG(timerx) REG32((timerx) + 0x48U) /*!< TIMER DMA configuration register */ +#define TIMER_DMATB(timerx) REG32((timerx) + 0x4CU) /*!< TIMER DMA transfer buffer register */ + +/* bits definitions */ +/* TIMER_CTL0 */ +#define TIMER_CTL0_CEN BIT(0) /*!< TIMER counter enable */ +#define TIMER_CTL0_UPDIS BIT(1) /*!< update disable */ +#define TIMER_CTL0_UPS BIT(2) /*!< update source */ +#define TIMER_CTL0_SPM BIT(3) /*!< single pulse mode */ +#define TIMER_CTL0_DIR BIT(4) /*!< timer counter direction */ +#define TIMER_CTL0_CAM BITS(5,6) /*!< center-aligned mode selection */ +#define TIMER_CTL0_ARSE BIT(7) /*!< auto-reload shadow enable */ +#define TIMER_CTL0_CKDIV BITS(8,9) /*!< clock division */ + +/* TIMER_CTL1 */ +#define TIMER_CTL1_CCSE BIT(0) /*!< commutation control shadow enable */ +#define TIMER_CTL1_CCUC BIT(2) /*!< commutation control shadow register update control */ +#define TIMER_CTL1_DMAS BIT(3) /*!< DMA request source selection */ +#define TIMER_CTL1_MMC BITS(4,6) /*!< master mode control */ +#define TIMER_CTL1_TI0S BIT(7) /*!< channel 0 trigger input selection(hall mode selection) */ +#define TIMER_CTL1_ISO0 BIT(8) /*!< idle state of channel 0 output */ +#define TIMER_CTL1_ISO0N BIT(9) /*!< idle state of channel 0 complementary output */ +#define TIMER_CTL1_ISO1 BIT(10) /*!< idle state of channel 1 output */ +#define TIMER_CTL1_ISO1N BIT(11) /*!< idle state of channel 1 complementary output */ +#define TIMER_CTL1_ISO2 BIT(12) /*!< idle state of channel 2 output */ +#define TIMER_CTL1_ISO2N BIT(13) /*!< idle state of channel 2 complementary output */ +#define TIMER_CTL1_ISO3 BIT(14) /*!< idle state of channel 3 output */ + +/* TIMER_SMCFG */ +#define TIMER_SMCFG_SMC BITS(0,2) /*!< slave mode control */ +#define TIMER_SMCFG_TRGS BITS(4,6) /*!< trigger selection */ +#define TIMER_SMCFG_MSM BIT(7) /*!< master-slave mode */ +#define TIMER_SMCFG_ETFC BITS(8,11) /*!< external trigger filter control */ +#define TIMER_SMCFG_ETPSC BITS(12,13) /*!< external trigger prescaler */ +#define TIMER_SMCFG_SMC1 BIT(14) /*!< part of SMC for enable external clock mode 1 */ +#define TIMER_SMCFG_ETP BIT(15) /*!< external trigger polarity */ + +/* TIMER_DMAINTEN */ +#define TIMER_DMAINTEN_UPIE BIT(0) /*!< update interrupt enable */ +#define TIMER_DMAINTEN_CH0IE BIT(1) /*!< channel 0 capture/compare interrupt enable */ +#define TIMER_DMAINTEN_CH1IE BIT(2) /*!< channel 1 capture/compare interrupt enable */ +#define TIMER_DMAINTEN_CH2IE BIT(3) /*!< channel 2 capture/compare interrupt enable */ +#define TIMER_DMAINTEN_CH3IE BIT(4) /*!< channel 3 capture/compare interrupt enable */ +#define TIMER_DMAINTEN_CMTIE BIT(5) /*!< commutation interrupt request enable */ +#define TIMER_DMAINTEN_TRGIE BIT(6) /*!< trigger interrupt enable */ +#define TIMER_DMAINTEN_BRKIE BIT(7) /*!< break interrupt enable */ +#define TIMER_DMAINTEN_UPDEN BIT(8) /*!< update DMA request enable */ +#define TIMER_DMAINTEN_CH0DEN BIT(9) /*!< channel 0 capture/compare DMA request enable */ +#define TIMER_DMAINTEN_CH1DEN BIT(10) /*!< channel 1 capture/compare DMA request enable */ +#define TIMER_DMAINTEN_CH2DEN BIT(11) /*!< channel 2 capture/compare DMA request enable */ +#define TIMER_DMAINTEN_CH3DEN BIT(12) /*!< channel 3 capture/compare DMA request enable */ +#define TIMER_DMAINTEN_CMTDEN BIT(13) /*!< commutation DMA request enable */ +#define TIMER_DMAINTEN_TRGDEN BIT(14) /*!< trigger DMA request enable */ + +/* TIMER_INTF */ +#define TIMER_INTF_UPIF BIT(0) /*!< update interrupt flag */ +#define TIMER_INTF_CH0IF BIT(1) /*!< channel 0 capture/compare interrupt flag */ +#define TIMER_INTF_CH1IF BIT(2) /*!< channel 1 capture/compare interrupt flag */ +#define TIMER_INTF_CH2IF BIT(3) /*!< channel 2 capture/compare interrupt flag */ +#define TIMER_INTF_CH3IF BIT(4) /*!< channel 3 capture/compare interrupt flag */ +#define TIMER_INTF_CMTIF BIT(5) /*!< channel commutation interrupt flag */ +#define TIMER_INTF_TRGIF BIT(6) /*!< trigger interrupt flag */ +#define TIMER_INTF_BRKIF BIT(7) /*!< break interrupt flag */ +#define TIMER_INTF_CH0OF BIT(9) /*!< channel 0 over capture flag */ +#define TIMER_INTF_CH1OF BIT(10) /*!< channel 1 over capture flag */ +#define TIMER_INTF_CH2OF BIT(11) /*!< channel 2 over capture flag */ +#define TIMER_INTF_CH3OF BIT(12) /*!< channel 3 over capture flag */ + +/* TIMER_SWEVG */ +#define TIMER_SWEVG_UPG BIT(0) /*!< update event generate */ +#define TIMER_SWEVG_CH0G BIT(1) /*!< channel 0 capture or compare event generation */ +#define TIMER_SWEVG_CH1G BIT(2) /*!< channel 1 capture or compare event generation */ +#define TIMER_SWEVG_CH2G BIT(3) /*!< channel 2 capture or compare event generation */ +#define TIMER_SWEVG_CH3G BIT(4) /*!< channel 3 capture or compare event generation */ +#define TIMER_SWEVG_CMTG BIT(5) /*!< channel commutation event generation */ +#define TIMER_SWEVG_TRGG BIT(6) /*!< trigger event generation */ +#define TIMER_SWEVG_BRKG BIT(7) /*!< break event generation */ + +/* TIMER_CHCTL0 */ +/* output compare mode */ +#define TIMER_CHCTL0_CH0MS BITS(0,1) /*!< channel 0 mode selection */ +#define TIMER_CHCTL0_CH0COMFEN BIT(2) /*!< channel 0 output compare fast enable */ +#define TIMER_CHCTL0_CH0COMSEN BIT(3) /*!< channel 0 output compare shadow enable */ +#define TIMER_CHCTL0_CH0COMCTL BITS(4,6) /*!< channel 0 output compare control */ +#define TIMER_CHCTL0_CH0COMCEN BIT(7) /*!< channel 0 output compare clear enable */ +#define TIMER_CHCTL0_CH1MS BITS(8,9) /*!< channel 1 mode selection */ +#define TIMER_CHCTL0_CH1COMFEN BIT(10) /*!< channel 1 output compare fast enable */ +#define TIMER_CHCTL0_CH1COMSEN BIT(11) /*!< channel 1 output compare shadow enable */ +#define TIMER_CHCTL0_CH1COMCTL BITS(12,14) /*!< channel 1 output compare control */ +#define TIMER_CHCTL0_CH1COMCEN BIT(15) /*!< channel 1 output compare clear enable */ +/* input capture mode */ +#define TIMER_CHCTL0_CH0CAPPSC BITS(2,3) /*!< channel 0 input capture prescaler */ +#define TIMER_CHCTL0_CH0CAPFLT BITS(4,7) /*!< channel 0 input capture filter control */ +#define TIMER_CHCTL0_CH1CAPPSC BITS(10,11) /*!< channel 1 input capture prescaler */ +#define TIMER_CHCTL0_CH1CAPFLT BITS(12,15) /*!< channel 1 input capture filter control */ + +/* TIMER_CHCTL1 */ +/* output compare mode */ +#define TIMER_CHCTL1_CH2MS BITS(0,1) /*!< channel 2 mode selection */ +#define TIMER_CHCTL1_CH2COMFEN BIT(2) /*!< channel 2 output compare fast enable */ +#define TIMER_CHCTL1_CH2COMSEN BIT(3) /*!< channel 2 output compare shadow enable */ +#define TIMER_CHCTL1_CH2COMCTL BITS(4,6) /*!< channel 2 output compare control */ +#define TIMER_CHCTL1_CH2COMCEN BIT(7) /*!< channel 2 output compare clear enable */ +#define TIMER_CHCTL1_CH3MS BITS(8,9) /*!< channel 3 mode selection */ +#define TIMER_CHCTL1_CH3COMFEN BIT(10) /*!< channel 3 output compare fast enable */ +#define TIMER_CHCTL1_CH3COMSEN BIT(11) /*!< channel 3 output compare shadow enable */ +#define TIMER_CHCTL1_CH3COMCTL BITS(12,14) /*!< channel 3 output compare control */ +#define TIMER_CHCTL1_CH3COMCEN BIT(15) /*!< channel 3 output compare clear enable */ +/* input capture mode */ +#define TIMER_CHCTL1_CH2CAPPSC BITS(2,3) /*!< channel 2 input capture prescaler */ +#define TIMER_CHCTL1_CH2CAPFLT BITS(4,7) /*!< channel 2 input capture filter control */ +#define TIMER_CHCTL1_CH3CAPPSC BITS(10,11) /*!< channel 3 input capture prescaler */ +#define TIMER_CHCTL1_CH3CAPFLT BITS(12,15) /*!< channel 3 input capture filter control */ + +/* TIMER_CHCTL2 */ +#define TIMER_CHCTL2_CH0EN BIT(0) /*!< channel 0 capture/compare function enable */ +#define TIMER_CHCTL2_CH0P BIT(1) /*!< channel 0 capture/compare function polarity */ +#define TIMER_CHCTL2_CH0NEN BIT(2) /*!< channel 0 complementary output enable */ +#define TIMER_CHCTL2_CH0NP BIT(3) /*!< channel 0 complementary output polarity */ +#define TIMER_CHCTL2_CH1EN BIT(4) /*!< channel 1 capture/compare function enable */ +#define TIMER_CHCTL2_CH1P BIT(5) /*!< channel 1 capture/compare function polarity */ +#define TIMER_CHCTL2_CH1NEN BIT(6) /*!< channel 1 complementary output enable */ +#define TIMER_CHCTL2_CH1NP BIT(7) /*!< channel 1 complementary output polarity */ +#define TIMER_CHCTL2_CH2EN BIT(8) /*!< channel 2 capture/compare function enable */ +#define TIMER_CHCTL2_CH2P BIT(9) /*!< channel 2 capture/compare function polarity */ +#define TIMER_CHCTL2_CH2NEN BIT(10) /*!< channel 2 complementary output enable */ +#define TIMER_CHCTL2_CH2NP BIT(11) /*!< channel 2 complementary output polarity */ +#define TIMER_CHCTL2_CH3EN BIT(12) /*!< channel 3 capture/compare function enable */ +#define TIMER_CHCTL2_CH3P BIT(13) /*!< channel 3 capture/compare function polarity */ + +/* TIMER_CNT */ +#define TIMER_CNT_CNT BITS(0,15) /*!< 16 bit timer counter */ + +/* TIMER_PSC */ +#define TIMER_PSC_PSC BITS(0,15) /*!< prescaler value of the counter clock */ + +/* TIMER_CAR */ +#define TIMER_CAR_CARL BITS(0,15) /*!< 16 bit counter auto reload value */ + +/* TIMER_CREP */ +#define TIMER_CREP_CREP BITS(0,7) /*!< counter repetition value */ + +/* TIMER_CH0CV */ +#define TIMER_CH0CV_CH0VAL BITS(0,15) /*!< 16 bit capture/compare value of channel 0 */ + +/* TIMER_CH1CV */ +#define TIMER_CH1CV_CH1VAL BITS(0,15) /*!< 16 bit capture/compare value of channel 1 */ + +/* TIMER_CH2CV */ +#define TIMER_CH2CV_CH2VAL BITS(0,15) /*!< 16 bit capture/compare value of channel 2 */ + +/* TIMER_CH3CV */ +#define TIMER_CH3CV_CH3VAL BITS(0,15) /*!< 16 bit capture/compare value of channel 3 */ + +/* TIMER_CCHP */ +#define TIMER_CCHP_DTCFG BITS(0,7) /*!< dead time configure */ +#define TIMER_CCHP_PROT BITS(8,9) /*!< complementary register protect control */ +#define TIMER_CCHP_IOS BIT(10) /*!< idle mode off-state configure */ +#define TIMER_CCHP_ROS BIT(11) /*!< run mode off-state configure */ +#define TIMER_CCHP_BRKEN BIT(12) /*!< break enable */ +#define TIMER_CCHP_BRKP BIT(13) /*!< break polarity */ +#define TIMER_CCHP_OAEN BIT(14) /*!< output automatic enable */ +#define TIMER_CCHP_POEN BIT(15) /*!< primary output enable */ + +/* TIMER_DMACFG */ +#define TIMER_DMACFG_DMATA BITS(0,4) /*!< DMA transfer access start address */ +#define TIMER_DMACFG_DMATC BITS(8,12) /*!< DMA transfer count */ + +/* TIMER_DMATB */ +#define TIMER_DMATB_DMATB BITS(0,15) /*!< DMA transfer buffer address */ + +/* constants definitions */ +/* TIMER init parameter struct definitions */ +typedef struct +{ + uint16_t prescaler; /*!< prescaler value */ + uint16_t alignedmode; /*!< aligned mode */ + uint16_t counterdirection; /*!< counter direction */ + uint32_t period; /*!< period value */ + uint16_t clockdivision; /*!< clock division value */ + uint8_t repetitioncounter; /*!< the counter repetition value */ +}timer_parameter_struct; + +/* break parameter struct definitions*/ +typedef struct +{ + uint16_t runoffstate; /*!< run mode off-state */ + uint16_t ideloffstate; /*!< idle mode off-state */ + uint16_t deadtime; /*!< dead time */ + uint16_t breakpolarity; /*!< break polarity */ + uint16_t outputautostate; /*!< output automatic enable */ + uint16_t protectmode; /*!< complementary register protect control */ + uint16_t breakstate; /*!< break enable */ +}timer_break_parameter_struct; + +/* channel output parameter struct definitions */ +typedef struct +{ + uint16_t outputstate; /*!< channel output state */ + uint16_t outputnstate; /*!< channel complementary output state */ + uint16_t ocpolarity; /*!< channel output polarity */ + uint16_t ocnpolarity; /*!< channel complementary output polarity */ + uint16_t ocidlestate; /*!< idle state of channel output */ + uint16_t ocnidlestate; /*!< idle state of channel complementary output */ +}timer_oc_parameter_struct; + +/* channel input parameter struct definitions */ +typedef struct +{ + uint16_t icpolarity; /*!< channel input polarity */ + uint16_t icselection; /*!< channel input mode selection */ + uint16_t icprescaler; /*!< channel input capture prescaler */ + uint16_t icfilter; /*!< channel input capture filter control */ +}timer_ic_parameter_struct; + +/* TIMER interrupt enable or disable */ +#define TIMER_INT_UP TIMER_DMAINTEN_UPIE /*!< update interrupt */ +#define TIMER_INT_CH0 TIMER_DMAINTEN_CH0IE /*!< channel 0 interrupt */ +#define TIMER_INT_CH1 TIMER_DMAINTEN_CH1IE /*!< channel 1 interrupt */ +#define TIMER_INT_CH2 TIMER_DMAINTEN_CH2IE /*!< channel 2 interrupt */ +#define TIMER_INT_CH3 TIMER_DMAINTEN_CH3IE /*!< channel 3 interrupt */ +#define TIMER_INT_CMT TIMER_DMAINTEN_CMTIE /*!< channel commutation interrupt flag */ +#define TIMER_INT_TRG TIMER_DMAINTEN_TRGIE /*!< trigger interrupt */ +#define TIMER_INT_BRK TIMER_DMAINTEN_BRKIE /*!< break interrupt */ + +/* TIMER interrupt flag */ +#define TIMER_INT_FLAG_UP TIMER_INT_UP /*!< update interrupt */ +#define TIMER_INT_FLAG_CH0 TIMER_INT_CH0 /*!< channel 0 interrupt */ +#define TIMER_INT_FLAG_CH1 TIMER_INT_CH1 /*!< channel 1 interrupt */ +#define TIMER_INT_FLAG_CH2 TIMER_INT_CH2 /*!< channel 2 interrupt */ +#define TIMER_INT_FLAG_CH3 TIMER_INT_CH3 /*!< channel 3 interrupt */ +#define TIMER_INT_FLAG_CMT TIMER_INT_CMT /*!< channel commutation interrupt flag */ +#define TIMER_INT_FLAG_TRG TIMER_INT_TRG /*!< trigger interrupt */ +#define TIMER_INT_FLAG_BRK TIMER_INT_BRK + +/* TIMER flag */ +#define TIMER_FLAG_UP TIMER_INTF_UPIF /*!< update flag */ +#define TIMER_FLAG_CH0 TIMER_INTF_CH0IF /*!< channel 0 flag */ +#define TIMER_FLAG_CH1 TIMER_INTF_CH1IF /*!< channel 1 flag */ +#define TIMER_FLAG_CH2 TIMER_INTF_CH2IF /*!< channel 2 flag */ +#define TIMER_FLAG_CH3 TIMER_INTF_CH3IF /*!< channel 3 flag */ +#define TIMER_FLAG_CMT TIMER_INTF_CMTIF /*!< channel commutation flag */ +#define TIMER_FLAG_TRG TIMER_INTF_TRGIF /*!< trigger flag */ +#define TIMER_FLAG_BRK TIMER_INTF_BRKIF /*!< break flag */ +#define TIMER_FLAG_CH0O TIMER_INTF_CH0OF /*!< channel 0 overcapture flag */ +#define TIMER_FLAG_CH1O TIMER_INTF_CH1OF /*!< channel 1 overcapture flag */ +#define TIMER_FLAG_CH2O TIMER_INTF_CH2OF /*!< channel 2 overcapture flag */ +#define TIMER_FLAG_CH3O TIMER_INTF_CH3OF /*!< channel 3 overcapture flag */ +/* TIMER DMA source enable */ +#define TIMER_DMA_UPD ((uint16_t)TIMER_DMAINTEN_UPDEN) /*!< update DMA enable */ +#define TIMER_DMA_CH0D ((uint16_t)TIMER_DMAINTEN_CH0DEN) /*!< channel 0 DMA enable */ +#define TIMER_DMA_CH1D ((uint16_t)TIMER_DMAINTEN_CH1DEN) /*!< channel 1 DMA enable */ +#define TIMER_DMA_CH2D ((uint16_t)TIMER_DMAINTEN_CH2DEN) /*!< channel 2 DMA enable */ +#define TIMER_DMA_CH3D ((uint16_t)TIMER_DMAINTEN_CH3DEN) /*!< channel 3 DMA enable */ +#define TIMER_DMA_CMTD ((uint16_t)TIMER_DMAINTEN_CMTDEN) /*!< commutation DMA request enable */ +#define TIMER_DMA_TRGD ((uint16_t)TIMER_DMAINTEN_TRGDEN) /*!< trigger DMA enable */ + +/* channel DMA request source selection */ +#define TIMER_DMAREQUEST_UPDATEEVENT TIMER_CTL1_DMAS /*!< DMA request of channel n is sent when update event occurs */ +#define TIMER_DMAREQUEST_CHANNELEVENT ((uint32_t)0x00000000U) /*!< DMA request of channel n is sent when channel n event occurs */ + +/* DMA access base address */ +#define DMACFG_DMATA(regval) (BITS(0, 4) & ((uint32_t)(regval) << 0U)) +#define TIMER_DMACFG_DMATA_CTL0 DMACFG_DMATA(0) /*!< DMA transfer address is TIMER_CTL0 */ +#define TIMER_DMACFG_DMATA_CTL1 DMACFG_DMATA(1) /*!< DMA transfer address is TIMER_CTL1 */ +#define TIMER_DMACFG_DMATA_SMCFG DMACFG_DMATA(2) /*!< DMA transfer address is TIMER_SMCFG */ +#define TIMER_DMACFG_DMATA_DMAINTEN DMACFG_DMATA(3) /*!< DMA transfer address is TIMER_DMAINTEN */ +#define TIMER_DMACFG_DMATA_INTF DMACFG_DMATA(4) /*!< DMA transfer address is TIMER_INTF */ +#define TIMER_DMACFG_DMATA_SWEVG DMACFG_DMATA(5) /*!< DMA transfer address is TIMER_SWEVG */ +#define TIMER_DMACFG_DMATA_CHCTL0 DMACFG_DMATA(6) /*!< DMA transfer address is TIMER_CHCTL0 */ +#define TIMER_DMACFG_DMATA_CHCTL1 DMACFG_DMATA(7) /*!< DMA transfer address is TIMER_CHCTL1 */ +#define TIMER_DMACFG_DMATA_CHCTL2 DMACFG_DMATA(8) /*!< DMA transfer address is TIMER_CHCTL2 */ +#define TIMER_DMACFG_DMATA_CNT DMACFG_DMATA(9) /*!< DMA transfer address is TIMER_CNT */ +#define TIMER_DMACFG_DMATA_PSC DMACFG_DMATA(10) /*!< DMA transfer address is TIMER_PSC */ +#define TIMER_DMACFG_DMATA_CAR DMACFG_DMATA(11) /*!< DMA transfer address is TIMER_CAR */ +#define TIMER_DMACFG_DMATA_CREP DMACFG_DMATA(12) /*!< DMA transfer address is TIMER_CREP */ +#define TIMER_DMACFG_DMATA_CH0CV DMACFG_DMATA(13) /*!< DMA transfer address is TIMER_CH0CV */ +#define TIMER_DMACFG_DMATA_CH1CV DMACFG_DMATA(14) /*!< DMA transfer address is TIMER_CH1CV */ +#define TIMER_DMACFG_DMATA_CH2CV DMACFG_DMATA(15) /*!< DMA transfer address is TIMER_CH2CV */ +#define TIMER_DMACFG_DMATA_CH3CV DMACFG_DMATA(16) /*!< DMA transfer address is TIMER_CH3CV */ +#define TIMER_DMACFG_DMATA_CCHP DMACFG_DMATA(17) /*!< DMA transfer address is TIMER_CCHP */ +#define TIMER_DMACFG_DMATA_DMACFG DMACFG_DMATA(18) /*!< DMA transfer address is TIMER_DMACFG */ + +/* DMA access burst length */ +#define DMACFG_DMATC(regval) (BITS(8, 12) & ((uint32_t)(regval) << 8U)) +#define TIMER_DMACFG_DMATC_1TRANSFER DMACFG_DMATC(0) /*!< DMA transfer 1 time */ +#define TIMER_DMACFG_DMATC_2TRANSFER DMACFG_DMATC(1) /*!< DMA transfer 2 times */ +#define TIMER_DMACFG_DMATC_3TRANSFER DMACFG_DMATC(2) /*!< DMA transfer 3 times */ +#define TIMER_DMACFG_DMATC_4TRANSFER DMACFG_DMATC(3) /*!< DMA transfer 4 times */ +#define TIMER_DMACFG_DMATC_5TRANSFER DMACFG_DMATC(4) /*!< DMA transfer 5 times */ +#define TIMER_DMACFG_DMATC_6TRANSFER DMACFG_DMATC(5) /*!< DMA transfer 6 times */ +#define TIMER_DMACFG_DMATC_7TRANSFER DMACFG_DMATC(6) /*!< DMA transfer 7 times */ +#define TIMER_DMACFG_DMATC_8TRANSFER DMACFG_DMATC(7) /*!< DMA transfer 8 times */ +#define TIMER_DMACFG_DMATC_9TRANSFER DMACFG_DMATC(8) /*!< DMA transfer 9 times */ +#define TIMER_DMACFG_DMATC_10TRANSFER DMACFG_DMATC(9) /*!< DMA transfer 10 times */ +#define TIMER_DMACFG_DMATC_11TRANSFER DMACFG_DMATC(10) /*!< DMA transfer 11 times */ +#define TIMER_DMACFG_DMATC_12TRANSFER DMACFG_DMATC(11) /*!< DMA transfer 12 times */ +#define TIMER_DMACFG_DMATC_13TRANSFER DMACFG_DMATC(12) /*!< DMA transfer 13 times */ +#define TIMER_DMACFG_DMATC_14TRANSFER DMACFG_DMATC(13) /*!< DMA transfer 14 times */ +#define TIMER_DMACFG_DMATC_15TRANSFER DMACFG_DMATC(14) /*!< DMA transfer 15 times */ +#define TIMER_DMACFG_DMATC_16TRANSFER DMACFG_DMATC(15) /*!< DMA transfer 16 times */ +#define TIMER_DMACFG_DMATC_17TRANSFER DMACFG_DMATC(16) /*!< DMA transfer 17 times */ +#define TIMER_DMACFG_DMATC_18TRANSFER DMACFG_DMATC(17) /*!< DMA transfer 18 times */ + +/* TIMER software event generation source */ +#define TIMER_EVENT_SRC_UPG ((uint16_t)0x0001U) /*!< update event generation */ +#define TIMER_EVENT_SRC_CH0G ((uint16_t)0x0002U) /*!< channel 0 capture or compare event generation */ +#define TIMER_EVENT_SRC_CH1G ((uint16_t)0x0004U) /*!< channel 1 capture or compare event generation */ +#define TIMER_EVENT_SRC_CH2G ((uint16_t)0x0008U) /*!< channel 2 capture or compare event generation */ +#define TIMER_EVENT_SRC_CH3G ((uint16_t)0x0010U) /*!< channel 3 capture or compare event generation */ +#define TIMER_EVENT_SRC_CMTG ((uint16_t)0x0020U) /*!< channel commutation event generation */ +#define TIMER_EVENT_SRC_TRGG ((uint16_t)0x0040U) /*!< trigger event generation */ +#define TIMER_EVENT_SRC_BRKG ((uint16_t)0x0080U) /*!< break event generation */ + +/* center-aligned mode selection */ +#define CTL0_CAM(regval) ((uint16_t)(BITS(5, 6) & ((uint32_t)(regval) << 5U))) +#define TIMER_COUNTER_EDGE CTL0_CAM(0) /*!< edge-aligned mode */ +#define TIMER_COUNTER_CENTER_DOWN CTL0_CAM(1) /*!< center-aligned and counting down assert mode */ +#define TIMER_COUNTER_CENTER_UP CTL0_CAM(2) /*!< center-aligned and counting up assert mode */ +#define TIMER_COUNTER_CENTER_BOTH CTL0_CAM(3) /*!< center-aligned and counting up/down assert mode */ + +/* TIMER prescaler reload mode */ +#define TIMER_PSC_RELOAD_NOW TIMER_SWEVG_UPG /*!< the prescaler is loaded right now */ +#define TIMER_PSC_RELOAD_UPDATE ((uint32_t)0x00000000U) /*!< the prescaler is loaded at the next update event */ + +/* count direction */ +#define TIMER_COUNTER_UP ((uint16_t)0x0000U) /*!< counter up direction */ +#define TIMER_COUNTER_DOWN ((uint16_t)TIMER_CTL0_DIR) /*!< counter down direction */ + +/* specify division ratio between TIMER clock and dead-time and sampling clock */ +#define CTL0_CKDIV(regval) ((uint16_t)(BITS(8, 9) & ((uint32_t)(regval) << 8U))) +#define TIMER_CKDIV_DIV1 CTL0_CKDIV(0) /*!< clock division value is 1,fDTS=fTIMER_CK */ +#define TIMER_CKDIV_DIV2 CTL0_CKDIV(1) /*!< clock division value is 2,fDTS= fTIMER_CK/2 */ +#define TIMER_CKDIV_DIV4 CTL0_CKDIV(2) /*!< clock division value is 4, fDTS= fTIMER_CK/4 */ + +/* single pulse mode */ +#define TIMER_SP_MODE_SINGLE TIMER_CTL0_SPM /*!< single pulse mode */ +#define TIMER_SP_MODE_REPETITIVE ((uint32_t)0x00000000U) /*!< repetitive pulse mode */ + +/* update source */ +#define TIMER_UPDATE_SRC_REGULAR TIMER_CTL0_UPS /*!< update generate only by counter overflow/underflow */ +#define TIMER_UPDATE_SRC_GLOBAL ((uint32_t)0x00000000U) /*!< update generate by setting of UPG bit or the counter overflow/underflow,or the slave mode controller trigger */ + +/* run mode off-state configure */ +#define TIMER_ROS_STATE_ENABLE ((uint16_t)TIMER_CCHP_ROS) /*!< when POEN bit is set, the channel output signals(CHx_O/CHx_ON) are enabled, with relationship to CHxEN/CHxNEN bits */ +#define TIMER_ROS_STATE_DISABLE ((uint16_t)0x0000U) /*!< when POEN bit is set, the channel output signals(CHx_O/CHx_ON) are disabled */ + +/* idle mode off-state configure */ +#define TIMER_IOS_STATE_ENABLE ((uint16_t)TIMER_CCHP_IOS) /*!< when POEN bit is reset, he channel output signals(CHx_O/CHx_ON) are enabled, with relationship to CHxEN/CHxNEN bits */ +#define TIMER_IOS_STATE_DISABLE ((uint16_t)0x0000U) /*!< when POEN bit is reset, the channel output signals(CHx_O/CHx_ON) are disabled */ + +/* break input polarity */ +#define TIMER_BREAK_POLARITY_LOW ((uint16_t)0x0000U) /*!< break input polarity is low */ +#define TIMER_BREAK_POLARITY_HIGH ((uint16_t)TIMER_CCHP_BRKP) /*!< break input polarity is high */ + +/* output automatic enable */ +#define TIMER_OUTAUTO_ENABLE ((uint16_t)TIMER_CCHP_OAEN) /*!< output automatic enable */ +#define TIMER_OUTAUTO_DISABLE ((uint16_t)0x0000U) /*!< output automatic disable */ + +/* complementary register protect control */ +#define CCHP_PROT(regval) ((uint16_t)(BITS(8, 9) & ((uint32_t)(regval) << 8U))) +#define TIMER_CCHP_PROT_OFF CCHP_PROT(0) /*!< protect disable */ +#define TIMER_CCHP_PROT_0 CCHP_PROT(1) /*!< PROT mode 0 */ +#define TIMER_CCHP_PROT_1 CCHP_PROT(2) /*!< PROT mode 1 */ +#define TIMER_CCHP_PROT_2 CCHP_PROT(3) /*!< PROT mode 2 */ + +/* break input enable */ +#define TIMER_BREAK_ENABLE ((uint16_t)TIMER_CCHP_BRKEN) /*!< break input enable */ +#define TIMER_BREAK_DISABLE ((uint16_t)0x0000U) /*!< break input disable */ + +/* TIMER channel n(n=0,1,2,3) */ +#define TIMER_CH_0 ((uint16_t)0x0000U) /*!< TIMER channel 0(TIMERx(x=0..4,7..13)) */ +#define TIMER_CH_1 ((uint16_t)0x0001U) /*!< TIMER channel 1(TIMERx(x=0..4,7,8,11)) */ +#define TIMER_CH_2 ((uint16_t)0x0002U) /*!< TIMER channel 2(TIMERx(x=0..4,7)) */ +#define TIMER_CH_3 ((uint16_t)0x0003U) /*!< TIMER channel 3(TIMERx(x=0..4,7)) */ + +/* channel enable state */ +#define TIMER_CCX_ENABLE ((uint16_t)0x0001U) /*!< channel enable */ +#define TIMER_CCX_DISABLE ((uint16_t)0x0000U) /*!< channel disable */ + +/* channel complementary output enable state */ +#define TIMER_CCXN_ENABLE ((uint16_t)0x0004U) /*!< channel complementary enable */ +#define TIMER_CCXN_DISABLE ((uint16_t)0x0000U) /*!< channel complementary disable */ + +/* channel output polarity */ +#define TIMER_OC_POLARITY_HIGH ((uint16_t)0x0000U) /*!< channel output polarity is high */ +#define TIMER_OC_POLARITY_LOW ((uint16_t)0x0002U) /*!< channel output polarity is low */ + +/* channel complementary output polarity */ +#define TIMER_OCN_POLARITY_HIGH ((uint16_t)0x0000U) /*!< channel complementary output polarity is high */ +#define TIMER_OCN_POLARITY_LOW ((uint16_t)0x0008U) /*!< channel complementary output polarity is low */ + +/* idle state of channel output */ +#define TIMER_OC_IDLE_STATE_HIGH ((uint16_t)0x0100) /*!< idle state of channel output is high */ +#define TIMER_OC_IDLE_STATE_LOW ((uint16_t)0x0000) /*!< idle state of channel output is low */ + +/* idle state of channel complementary output */ +#define TIMER_OCN_IDLE_STATE_HIGH ((uint16_t)0x0200U) /*!< idle state of channel complementary output is high */ +#define TIMER_OCN_IDLE_STATE_LOW ((uint16_t)0x0000U) /*!< idle state of channel complementary output is low */ + +/* channel output compare mode */ +#define TIMER_OC_MODE_TIMING ((uint16_t)0x0000U) /*!< frozen mode */ +#define TIMER_OC_MODE_ACTIVE ((uint16_t)0x0010U) /*!< set the channel output */ +#define TIMER_OC_MODE_INACTIVE ((uint16_t)0x0020U) /*!< clear the channel output */ +#define TIMER_OC_MODE_TOGGLE ((uint16_t)0x0030U) /*!< toggle on match */ +#define TIMER_OC_MODE_LOW ((uint16_t)0x0040U) /*!< force low mode */ +#define TIMER_OC_MODE_HIGH ((uint16_t)0x0050U) /*!< force high mode */ +#define TIMER_OC_MODE_PWM0 ((uint16_t)0x0060U) /*!< PWM0 mode */ +#define TIMER_OC_MODE_PWM1 ((uint16_t)0x0070U) /*!< PWM1 mode*/ + +/* channel output compare shadow enable */ +#define TIMER_OC_SHADOW_ENABLE ((uint16_t)0x0008U) /*!< channel output shadow state enable */ +#define TIMER_OC_SHADOW_DISABLE ((uint16_t)0x0000U) /*!< channel output shadow state disable */ + +/* channel output compare fast enable */ +#define TIMER_OC_FAST_ENABLE ((uint16_t)0x0004) /*!< channel output fast function enable */ +#define TIMER_OC_FAST_DISABLE ((uint16_t)0x0000) /*!< channel output fast function disable */ + +/* channel output compare clear enable */ +#define TIMER_OC_CLEAR_ENABLE ((uint16_t)0x0080U) /*!< channel output clear function enable */ +#define TIMER_OC_CLEAR_DISABLE ((uint16_t)0x0000U) /*!< channel output clear function disable */ + +/* channel control shadow register update control */ +#define TIMER_UPDATECTL_CCU ((uint32_t)0x00000000U) /*!< the shadow registers update by when CMTG bit is set */ +#define TIMER_UPDATECTL_CCUTRI TIMER_CTL1_CCUC /*!< the shadow registers update by when CMTG bit is set or an rising edge of TRGI occurs */ + +/* channel input capture polarity */ +#define TIMER_IC_POLARITY_RISING ((uint16_t)0x0000U) /*!< input capture rising edge */ +#define TIMER_IC_POLARITY_FALLING ((uint16_t)0x0002U) /*!< input capture falling edge */ + +/* timer input capture selection */ +#define TIMER_IC_SELECTION_DIRECTTI ((uint16_t)0x0001U) /*!< channel y is configured as input and icy is mapped on CIy */ +#define TIMER_IC_SELECTION_INDIRECTTI ((uint16_t)0x0002U) /*!< channel y is configured as input and icy is mapped on opposite input */ +#define TIMER_IC_SELECTION_ITS ((uint16_t)0x0003U) /*!< channel y is configured as input and icy is mapped on ITS */ + +/* channel input capture prescaler */ +#define TIMER_IC_PSC_DIV1 ((uint16_t)0x0000U) /*!< no prescaler */ +#define TIMER_IC_PSC_DIV2 ((uint16_t)0x0004U) /*!< divided by 2 */ +#define TIMER_IC_PSC_DIV4 ((uint16_t)0x0008U) /*!< divided by 4 */ +#define TIMER_IC_PSC_DIV8 ((uint16_t)0x000CU) /*!< divided by 8 */ + +/* trigger selection */ +#define SMCFG_TRGSEL(regval) (BITS(4, 6) & ((uint32_t)(regval) << 4U)) +#define TIMER_SMCFG_TRGSEL_ITI0 SMCFG_TRGSEL(0) /*!< internal trigger 0 */ +#define TIMER_SMCFG_TRGSEL_ITI1 SMCFG_TRGSEL(1) /*!< internal trigger 1 */ +#define TIMER_SMCFG_TRGSEL_ITI2 SMCFG_TRGSEL(2) /*!< internal trigger 2 */ +#define TIMER_SMCFG_TRGSEL_ITI3 SMCFG_TRGSEL(3) /*!< internal trigger 3 */ +#define TIMER_SMCFG_TRGSEL_CI0F_ED SMCFG_TRGSEL(4) /*!< TI0 Edge Detector */ +#define TIMER_SMCFG_TRGSEL_CI0FE0 SMCFG_TRGSEL(5) /*!< filtered TIMER input 0 */ +#define TIMER_SMCFG_TRGSEL_CI1FE1 SMCFG_TRGSEL(6) /*!< filtered TIMER input 1 */ +#define TIMER_SMCFG_TRGSEL_ETIFP SMCFG_TRGSEL(7) /*!< external trigger */ + +/* master mode control */ +#define CTL1_MMC(regval) (BITS(4, 6) & ((uint32_t)(regval) << 4U)) +#define TIMER_TRI_OUT_SRC_RESET CTL1_MMC(0) /*!< the UPG bit as trigger output */ +#define TIMER_TRI_OUT_SRC_ENABLE CTL1_MMC(1) /*!< the counter enable signal TIMER_CTL0_CEN as trigger output */ +#define TIMER_TRI_OUT_SRC_UPDATE CTL1_MMC(2) /*!< update event as trigger output */ +#define TIMER_TRI_OUT_SRC_CH0 CTL1_MMC(3) /*!< a capture or a compare match occurred in channel 0 as trigger output TRGO */ +#define TIMER_TRI_OUT_SRC_O0CPRE CTL1_MMC(4) /*!< O0CPRE as trigger output */ +#define TIMER_TRI_OUT_SRC_O1CPRE CTL1_MMC(5) /*!< O1CPRE as trigger output */ +#define TIMER_TRI_OUT_SRC_O2CPRE CTL1_MMC(6) /*!< O2CPRE as trigger output */ +#define TIMER_TRI_OUT_SRC_O3CPRE CTL1_MMC(7) /*!< O3CPRE as trigger output */ + +/* slave mode control */ +#define SMCFG_SMC(regval) (BITS(0, 2) & ((uint32_t)(regval) << 0U)) +#define TIMER_SLAVE_MODE_DISABLE SMCFG_SMC(0) /*!< slave mode disable */ +#define TIMER_QUAD_DECODER_MODE0 SMCFG_SMC(1) /*!< quadrature decoder mode 0 */ +#define TIMER_QUAD_DECODER_MODE1 SMCFG_SMC(2) /*!< quadrature decoder mode 1 */ +#define TIMER_QUAD_DECODER_MODE2 SMCFG_SMC(3) /*!< quadrature decoder mode 2 */ +#define TIMER_SLAVE_MODE_RESTART SMCFG_SMC(4) /*!< restart mode */ +#define TIMER_SLAVE_MODE_PAUSE SMCFG_SMC(5) /*!< pause mode */ +#define TIMER_SLAVE_MODE_EVENT SMCFG_SMC(6) /*!< event mode */ +#define TIMER_SLAVE_MODE_EXTERNAL0 SMCFG_SMC(7) /*!< external clock mode 0 */ + +/* master slave mode selection */ +#define TIMER_MASTER_SLAVE_MODE_ENABLE TIMER_SMCFG_MSM /*!< master slave mode enable */ +#define TIMER_MASTER_SLAVE_MODE_DISABLE ((uint32_t)0x00000000U) /*!< master slave mode disable */ + +/* external trigger prescaler */ +#define SMCFG_ETPSC(regval) (BITS(12, 13) & ((uint32_t)(regval) << 12U)) +#define TIMER_EXT_TRI_PSC_OFF SMCFG_ETPSC(0) /*!< no divided */ +#define TIMER_EXT_TRI_PSC_DIV2 SMCFG_ETPSC(1) /*!< divided by 2 */ +#define TIMER_EXT_TRI_PSC_DIV4 SMCFG_ETPSC(2) /*!< divided by 4 */ +#define TIMER_EXT_TRI_PSC_DIV8 SMCFG_ETPSC(3) /*!< divided by 8 */ + +/* external trigger polarity */ +#define TIMER_ETP_FALLING TIMER_SMCFG_ETP /*!< active low or falling edge active */ +#define TIMER_ETP_RISING ((uint32_t)0x00000000U) /*!< active high or rising edge active */ + +/* channel 0 trigger input selection */ +#define TIMER_HALLINTERFACE_ENABLE TIMER_CTL1_TI0S /*!< TIMER hall sensor mode enable */ +#define TIMER_HALLINTERFACE_DISABLE ((uint32_t)0x00000000U) /*!< TIMER hall sensor mode disable */ + +/* TIMERx(x=0..4,7..13) write CHxVAL register selection */ +#define TIMER_CHVSEL_ENABLE ((uint16_t)TIMER_CFG_OUTSEL) /*!< write CHxVAL register selection enable */ +#define TIMER_CHVSEL_DISABLE ((uint16_t)0x0000U) /*!< write CHxVAL register selection disable */ + +/* function declarations */ +/* TIMER timebase */ +/* deinit a TIMER */ +void timer_deinit(uint32_t timer_periph); +/* initialize TIMER init parameter struct */ +void timer_struct_para_init(timer_parameter_struct* initpara); +/* initialize TIMER counter */ +void timer_init(uint32_t timer_periph, timer_parameter_struct* initpara); +/* enable a TIMER */ +void timer_enable(uint32_t timer_periph); +/* disable a TIMER */ +void timer_disable(uint32_t timer_periph); +/* enable the auto reload shadow function */ +void timer_auto_reload_shadow_enable(uint32_t timer_periph); +/* disable the auto reload shadow function */ +void timer_auto_reload_shadow_disable(uint32_t timer_periph); +/* enable the update event */ +void timer_update_event_enable(uint32_t timer_periph); +/* disable the update event */ +void timer_update_event_disable(uint32_t timer_periph); +/* set TIMER counter alignment mode */ +void timer_counter_alignment(uint32_t timer_periph, uint16_t aligned); +/* set TIMER counter up direction */ +void timer_counter_up_direction(uint32_t timer_periph); +/* set TIMER counter down direction */ +void timer_counter_down_direction(uint32_t timer_periph); +/* configure TIMER prescaler */ +void timer_prescaler_config(uint32_t timer_periph, uint16_t prescaler, uint32_t pscreload); +/* configure TIMER repetition register value */ +void timer_repetition_value_config(uint32_t timer_periph, uint8_t repetition); +/* configure TIMER autoreload register value */ +void timer_autoreload_value_config(uint32_t timer_periph, uint32_t autoreload); +/* configure TIMER counter register value */ +void timer_counter_value_config(uint32_t timer_periph, uint32_t counter); +/* read TIMER counter value */ +uint32_t timer_counter_read(uint32_t timer_periph); +/* read TIMER prescaler value */ +uint16_t timer_prescaler_read(uint32_t timer_periph); +/* configure TIMER single pulse mode */ +void timer_single_pulse_mode_config(uint32_t timer_periph, uint32_t spmode); +/* configure TIMER update source */ +void timer_update_source_config(uint32_t timer_periph, uint32_t update); + +/* timer DMA and event */ +/* enable the TIMER DMA */ +void timer_dma_enable(uint32_t timer_periph, uint16_t dma); +/* disable the TIMER DMA */ +void timer_dma_disable(uint32_t timer_periph, uint16_t dma); +/* channel DMA request source selection */ +void timer_channel_dma_request_source_select(uint32_t timer_periph, uint32_t dma_request); +/* configure the TIMER DMA transfer */ +void timer_dma_transfer_config(uint32_t timer_periph, uint32_t dma_baseaddr, uint32_t dma_lenth); +/* software generate events */ +void timer_event_software_generate(uint32_t timer_periph, uint16_t event); + +/* TIMER channel complementary protection */ +/* initialize TIMER break parameter struct */ +void timer_break_struct_para_init(timer_break_parameter_struct* breakpara); +/* configure TIMER break function */ +void timer_break_config(uint32_t timer_periph, timer_break_parameter_struct* breakpara); +/* enable TIMER break function */ +void timer_break_enable(uint32_t timer_periph); +/* disable TIMER break function */ +void timer_break_disable(uint32_t timer_periph); +/* enable TIMER output automatic function */ +void timer_automatic_output_enable(uint32_t timer_periph); +/* disable TIMER output automatic function */ +void timer_automatic_output_disable(uint32_t timer_periph); +/* enable or disable TIMER primary output function */ +void timer_primary_output_config(uint32_t timer_periph, ControlStatus newvalue); +/* enable or disable channel capture/compare control shadow register */ +void timer_channel_control_shadow_config(uint32_t timer_periph, ControlStatus newvalue); +/* configure TIMER channel control shadow register update control */ +void timer_channel_control_shadow_update_config(uint32_t timer_periph, uint32_t ccuctl); + +/* TIMER channel output */ +/* initialize TIMER channel output parameter struct */ +void timer_channel_output_struct_para_init(timer_oc_parameter_struct* ocpara); +/* configure TIMER channel output function */ +void timer_channel_output_config(uint32_t timer_periph, uint16_t channel, timer_oc_parameter_struct* ocpara); +/* configure TIMER channel output compare mode */ +void timer_channel_output_mode_config(uint32_t timer_periph, uint16_t channel, uint16_t ocmode); +/* configure TIMER channel output pulse value */ +void timer_channel_output_pulse_value_config(uint32_t timer_periph, uint16_t channel, uint16_t pulse); +/* configure TIMER channel output shadow function */ +void timer_channel_output_shadow_config(uint32_t timer_periph, uint16_t channel, uint16_t ocshadow); +/* configure TIMER channel output fast function */ +void timer_channel_output_fast_config(uint32_t timer_periph, uint16_t channel, uint16_t ocfast); +/* configure TIMER channel output clear function */ +void timer_channel_output_clear_config(uint32_t timer_periph, uint16_t channel, uint16_t occlear); +/* configure TIMER channel output polarity */ +void timer_channel_output_polarity_config(uint32_t timer_periph, uint16_t channel, uint16_t ocpolarity); +/* configure TIMER channel complementary output polarity */ +void timer_channel_complementary_output_polarity_config(uint32_t timer_periph, uint16_t channel, uint16_t ocnpolarity); +/* configure TIMER channel enable state */ +void timer_channel_output_state_config(uint32_t timer_periph, uint16_t channel, uint32_t state); +/* configure TIMER channel complementary output enable state */ +void timer_channel_complementary_output_state_config(uint32_t timer_periph, uint16_t channel, uint16_t ocnstate); + +/* TIMER channel input */ +/* initialize TIMER channel input parameter struct */ +void timer_channel_input_struct_para_init(timer_ic_parameter_struct* icpara); +/* configure TIMER input capture parameter */ +void timer_input_capture_config(uint32_t timer_periph, uint16_t channel, timer_ic_parameter_struct* icpara); +/* configure TIMER channel input capture prescaler value */ +void timer_channel_input_capture_prescaler_config(uint32_t timer_periph, uint16_t channel, uint16_t prescaler); +/* read TIMER channel capture compare register value */ +uint32_t timer_channel_capture_value_register_read(uint32_t timer_periph, uint16_t channel); +/* configure TIMER input pwm capture function */ +void timer_input_pwm_capture_config(uint32_t timer_periph, uint16_t channel, timer_ic_parameter_struct* icpwm); +/* configure TIMER hall sensor mode */ +void timer_hall_mode_config(uint32_t timer_periph, uint32_t hallmode); + +/* TIMER master and slave */ +/* select TIMER input trigger source */ +void timer_input_trigger_source_select(uint32_t timer_periph, uint32_t intrigger); +/* select TIMER master mode output trigger source */ +void timer_master_output_trigger_source_select(uint32_t timer_periph, uint32_t outrigger); +/* select TIMER slave mode */ +void timer_slave_mode_select(uint32_t timer_periph, uint32_t slavemode); +/* configure TIMER master slave mode */ +void timer_master_slave_mode_config(uint32_t timer_periph, uint32_t masterslave); +/* configure TIMER external trigger input */ +void timer_external_trigger_config(uint32_t timer_periph, uint32_t extprescaler, uint32_t extpolarity, uint8_t extfilter); +/* configure TIMER quadrature decoder mode */ +void timer_quadrature_decoder_mode_config(uint32_t timer_periph, uint32_t decomode, uint16_t ic0polarity, uint16_t ic1polarity); +/* configure TIMER internal clock mode */ +void timer_internal_clock_config(uint32_t timer_periph); +/* configure TIMER the internal trigger as external clock input */ +void timer_internal_trigger_as_external_clock_config(uint32_t timer_periph, uint32_t intrigger); +/* configure TIMER the external trigger as external clock input */ +void timer_external_trigger_as_external_clock_config(uint32_t timer_periph, uint32_t extrigger, uint16_t extpolarity, uint8_t extfilter); +/* configure TIMER the external clock mode 0 */ +void timer_external_clock_mode0_config(uint32_t timer_periph, uint32_t extprescaler, uint32_t extpolarity, uint8_t extfilter); +/* configure TIMER the external clock mode 1 */ +void timer_external_clock_mode1_config(uint32_t timer_periph, uint32_t extprescaler, uint32_t extpolarity, uint8_t extfilter); +/* disable TIMER the external clock mode 1 */ +void timer_external_clock_mode1_disable(uint32_t timer_periph); + +/* TIMER interrupt and flag */ +/* enable the TIMER interrupt */ +void timer_interrupt_enable(uint32_t timer_periph, uint32_t interrupt); +/* disable the TIMER interrupt */ +void timer_interrupt_disable(uint32_t timer_periph, uint32_t interrupt); +/* get TIMER interrupt flag */ +FlagStatus timer_interrupt_flag_get(uint32_t timer_periph, uint32_t interrupt); +/* clear TIMER interrupt flag */ +void timer_interrupt_flag_clear(uint32_t timer_periph, uint32_t interrupt); +/* get TIMER flag */ +FlagStatus timer_flag_get(uint32_t timer_periph, uint32_t flag); +/* clear TIMER flag */ +void timer_flag_clear(uint32_t timer_periph, uint32_t flag); + +#endif /* GD32E10X_TIMER_H */ diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_usart.h b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_usart.h new file mode 100644 index 0000000..206dab1 --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_usart.h @@ -0,0 +1,373 @@ +/*! + \file gd32f10x_usart.h + \brief definitions for the USART + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#ifndef GD32F10X_USART_H +#define GD32F10X_USART_H + +#include "gd32f10x.h" + +/* USARTx(x=0,1,2)/UARTx(x=3,4) definitions */ +#define USART1 USART_BASE /*!< USART1 base address */ +#define USART2 (USART_BASE+(0x00000400U)) /*!< USART2 base address */ +#define UART3 (USART_BASE+(0x00000800U)) /*!< UART3 base address */ +#define UART4 (USART_BASE+(0x00000C00U)) /*!< UART4 base address */ +#define USART0 (USART_BASE+(0x0000F400U)) /*!< USART0 base address */ + +/* registers definitions */ +#define USART_STAT(usartx) REG32((usartx) + (0x00000000U)) /*!< USART status register */ +#define USART_DATA(usartx) REG32((usartx) + (0x00000004U)) /*!< USART data register */ +#define USART_BAUD(usartx) REG32((usartx) + (0x00000008U)) /*!< USART baud rate register */ +#define USART_CTL0(usartx) REG32((usartx) + (0x0000000CU)) /*!< USART control register 0 */ +#define USART_CTL1(usartx) REG32((usartx) + (0x00000010U)) /*!< USART control register 1 */ +#define USART_CTL2(usartx) REG32((usartx) + (0x00000014U)) /*!< USART control register 2 */ +#define USART_GP(usartx) REG32((usartx) + (0x00000018U)) /*!< USART guard time and prescaler register */ + +/* bits definitions */ +/* USARTx_STAT */ +#define USART_STAT_PERR BIT(0) /*!< parity error flag */ +#define USART_STAT_FERR BIT(1) /*!< frame error flag */ +#define USART_STAT_NERR BIT(2) /*!< noise error flag */ +#define USART_STAT_ORERR BIT(3) /*!< overrun error */ +#define USART_STAT_IDLEF BIT(4) /*!< IDLE frame detected flag */ +#define USART_STAT_RBNE BIT(5) /*!< read data buffer not empty */ +#define USART_STAT_TC BIT(6) /*!< transmission complete */ +#define USART_STAT_TBE BIT(7) /*!< transmit data buffer empty */ +#define USART_STAT_LBDF BIT(8) /*!< LIN break detected flag */ +#define USART_STAT_CTSF BIT(9) /*!< CTS change flag */ + +/* USARTx_DATA */ +#define USART_DATA_DATA BITS(0,8) /*!< transmit or read data value */ + +/* USARTx_BAUD */ +#define USART_BAUD_FRADIV BITS(0,3) /*!< fraction part of baud-rate divider */ +#define USART_BAUD_INTDIV BITS(4,15) /*!< integer part of baud-rate divider */ + +/* USARTx_CTL0 */ +#define USART_CTL0_SBKCMD BIT(0) /*!< send break command */ +#define USART_CTL0_RWU BIT(1) /*!< receiver wakeup from mute mode */ +#define USART_CTL0_REN BIT(2) /*!< enable receiver */ +#define USART_CTL0_TEN BIT(3) /*!< enable transmitter */ +#define USART_CTL0_IDLEIE BIT(4) /*!< enable idle line detected interrupt */ +#define USART_CTL0_RBNEIE BIT(5) /*!< enable read data buffer not empty interrupt and overrun error interrupt */ +#define USART_CTL0_TCIE BIT(6) /*!< enable transmission complete interrupt */ +#define USART_CTL0_TBEIE BIT(7) /*!< enable transmitter buffer empty interrupt */ +#define USART_CTL0_PERRIE BIT(8) /*!< enable parity error interrupt */ +#define USART_CTL0_PM BIT(9) /*!< parity mode */ +#define USART_CTL0_PCEN BIT(10) /*!< enable parity check function */ +#define USART_CTL0_WM BIT(11) /*!< wakeup method in mute mode */ +#define USART_CTL0_WL BIT(12) /*!< word length */ +#define USART_CTL0_UEN BIT(13) /*!< enable USART */ + +/* USARTx_CTL1 */ +#define USART_CTL1_ADDR BITS(0,3) /*!< address of USART */ +#define USART_CTL1_LBLEN BIT(5) /*!< LIN break frame length */ +#define USART_CTL1_LBDIE BIT(6) /*!< enable LIN break detected interrupt */ +#define USART_CTL1_CLEN BIT(8) /*!< CK length */ +#define USART_CTL1_CPH BIT(9) /*!< CK phase */ +#define USART_CTL1_CPL BIT(10) /*!< CK polarity */ +#define USART_CTL1_CKEN BIT(11) /*!< CK pin enable */ +#define USART_CTL1_STB BITS(12,13) /*!< STOP bits length */ +#define USART_CTL1_LMEN BIT(14) /*!< enable LIN mode */ + +/* USARTx_CTL2 */ +#define USART_CTL2_ERRIE BIT(0) /*!< enable error interrupt */ +#define USART_CTL2_IREN BIT(1) /*!< enable IrDA mode */ +#define USART_CTL2_IRLP BIT(2) /*!< IrDA low-power */ +#define USART_CTL2_HDEN BIT(3) /*!< half-duplex enable */ +#define USART_CTL2_NKEN BIT(4) /*!< NACK enable in smartcard mode */ +#define USART_CTL2_SCEN BIT(5) /*!< enable smartcard mode */ +#define USART_CTL2_DENR BIT(6) /*!< DMA request enable for reception */ +#define USART_CTL2_DENT BIT(7) /*!< DMA request enable for transmission */ +#define USART_CTL2_RTSEN BIT(8) /*!< enable RTS */ +#define USART_CTL2_CTSEN BIT(9) /*!< enable CTS */ +#define USART_CTL2_CTSIE BIT(10) /*!< enable CTS interrupt */ + +/* USARTx_GP */ +#define USART_GP_PSC BITS(0,7) /*!< prescaler value for dividing the system clock */ +#define USART_GP_GUAT BITS(8,15) /*!< guard time value in smartcard mode */ + +/* constants definitions */ +/* define the USART bit position and its register index offset */ +#define USART_REGIDX_BIT(regidx, bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos)) +#define USART_REG_VAL(usartx, offset) (REG32((usartx) + (((uint32_t)(offset) & (0x0000FFFFU)) >> 6))) +#define USART_BIT_POS(val) ((uint32_t)(val) & (0x0000001FU)) +#define USART_REGIDX_BIT2(regidx, bitpos, regidx2, bitpos2) (((uint32_t)(regidx2) << 22) | (uint32_t)((bitpos2) << 16)\ + | (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))) +#define USART_REG_VAL2(usartx, offset) (REG32((usartx) + ((uint32_t)(offset) >> 22))) +#define USART_BIT_POS2(val) (((uint32_t)(val) & (0x001F0000U)) >> 16) + +/* register offset */ +#define USART_STAT_REG_OFFSET (0x00000000U) /*!< STAT register offset */ +#define USART_CTL0_REG_OFFSET (0x0000000CU) /*!< CTL0 register offset */ +#define USART_CTL1_REG_OFFSET (0x00000010U) /*!< CTL1 register offset */ +#define USART_CTL2_REG_OFFSET (0x00000014U) /*!< CTL2 register offset */ + +/* USART flags */ +typedef enum +{ + /* flags in STAT register */ + USART_FLAG_CTSF = USART_REGIDX_BIT(USART_STAT_REG_OFFSET, 9U), /*!< CTS change flag */ + USART_FLAG_LBDF = USART_REGIDX_BIT(USART_STAT_REG_OFFSET, 8U), /*!< LIN break detected flag */ + USART_FLAG_TBE = USART_REGIDX_BIT(USART_STAT_REG_OFFSET, 7U), /*!< transmit data buffer empty */ + USART_FLAG_TC = USART_REGIDX_BIT(USART_STAT_REG_OFFSET, 6U), /*!< transmission complete */ + USART_FLAG_RBNE = USART_REGIDX_BIT(USART_STAT_REG_OFFSET, 5U), /*!< read data buffer not empty */ + USART_FLAG_IDLEF = USART_REGIDX_BIT(USART_STAT_REG_OFFSET, 4U), /*!< IDLE frame detected flag */ + USART_FLAG_ORERR = USART_REGIDX_BIT(USART_STAT_REG_OFFSET, 3U), /*!< overrun error */ + USART_FLAG_NERR = USART_REGIDX_BIT(USART_STAT_REG_OFFSET, 2U), /*!< noise error flag */ + USART_FLAG_FERR = USART_REGIDX_BIT(USART_STAT_REG_OFFSET, 1U), /*!< frame error flag */ + USART_FLAG_PERR = USART_REGIDX_BIT(USART_STAT_REG_OFFSET, 0U), /*!< parity error flag */ +}usart_flag_enum; + +/* USART interrupt flags */ +typedef enum +{ + /* interrupt flags in CTL0 register */ + USART_INT_FLAG_PERR = USART_REGIDX_BIT2(USART_CTL0_REG_OFFSET, 8U, USART_STAT_REG_OFFSET, 0U), /*!< parity error interrupt and flag */ + USART_INT_FLAG_TBE = USART_REGIDX_BIT2(USART_CTL0_REG_OFFSET, 7U, USART_STAT_REG_OFFSET, 7U), /*!< transmitter buffer empty interrupt and flag */ + USART_INT_FLAG_TC = USART_REGIDX_BIT2(USART_CTL0_REG_OFFSET, 6U, USART_STAT_REG_OFFSET, 6U), /*!< transmission complete interrupt and flag */ + USART_INT_FLAG_RBNE = USART_REGIDX_BIT2(USART_CTL0_REG_OFFSET, 5U, USART_STAT_REG_OFFSET, 5U), /*!< read data buffer not empty interrupt and flag */ + USART_INT_FLAG_RBNE_ORERR = USART_REGIDX_BIT2(USART_CTL0_REG_OFFSET, 5U, USART_STAT_REG_OFFSET, 3U), /*!< read data buffer not empty interrupt and overrun error flag */ + USART_INT_FLAG_IDLE = USART_REGIDX_BIT2(USART_CTL0_REG_OFFSET, 4U, USART_STAT_REG_OFFSET, 4U), /*!< IDLE line detected interrupt and flag */ + /* interrupt flags in CTL1 register */ + USART_INT_FLAG_LBD = USART_REGIDX_BIT2(USART_CTL1_REG_OFFSET, 6U, USART_STAT_REG_OFFSET, 8U), /*!< LIN break detected interrupt and flag */ + /* interrupt flags in CTL2 register */ + USART_INT_FLAG_CTS = USART_REGIDX_BIT2(USART_CTL2_REG_OFFSET, 10U, USART_STAT_REG_OFFSET, 9U), /*!< CTS interrupt and flag */ + USART_INT_FLAG_ERR_ORERR = USART_REGIDX_BIT2(USART_CTL2_REG_OFFSET, 0U, USART_STAT_REG_OFFSET, 3U), /*!< error interrupt and overrun error */ + USART_INT_FLAG_ERR_NERR = USART_REGIDX_BIT2(USART_CTL2_REG_OFFSET, 0U, USART_STAT_REG_OFFSET, 2U), /*!< error interrupt and noise error flag */ + USART_INT_FLAG_ERR_FERR = USART_REGIDX_BIT2(USART_CTL2_REG_OFFSET, 0U, USART_STAT_REG_OFFSET, 1U), /*!< error interrupt and frame error flag */ +}usart_interrupt_flag_enum; + +/* USART interrupt enable or disable */ +typedef enum +{ + /* interrupt in CTL0 register */ + USART_INT_PERR = USART_REGIDX_BIT(USART_CTL0_REG_OFFSET, 8U), /*!< parity error interrupt */ + USART_INT_TBE = USART_REGIDX_BIT(USART_CTL0_REG_OFFSET, 7U), /*!< transmitter buffer empty interrupt */ + USART_INT_TC = USART_REGIDX_BIT(USART_CTL0_REG_OFFSET, 6U), /*!< transmission complete interrupt */ + USART_INT_RBNE = USART_REGIDX_BIT(USART_CTL0_REG_OFFSET, 5U), /*!< read data buffer not empty interrupt and overrun error interrupt */ + USART_INT_IDLE = USART_REGIDX_BIT(USART_CTL0_REG_OFFSET, 4U), /*!< IDLE line detected interrupt */ + /* interrupt in CTL1 register */ + USART_INT_LBD = USART_REGIDX_BIT(USART_CTL1_REG_OFFSET, 6U), /*!< LIN break detected interrupt */ + /* interrupt in CTL2 register */ + USART_INT_CTS = USART_REGIDX_BIT(USART_CTL2_REG_OFFSET, 10U), /*!< CTS interrupt */ + USART_INT_ERR = USART_REGIDX_BIT(USART_CTL2_REG_OFFSET, 0U), /*!< error interrupt */ +}usart_interrupt_enum; + +/* configure USART receiver */ +#define CTL0_REN(regval) (BIT(2) & ((uint32_t)(regval) << 2)) +#define USART_RECEIVE_ENABLE CTL0_REN(1) /*!< enable receiver */ +#define USART_RECEIVE_DISABLE CTL0_REN(0) /*!< disable receiver */ + +/* configure USART transmitter */ +#define CTL0_TEN(regval) (BIT(3) & ((uint32_t)(regval) << 3)) +#define USART_TRANSMIT_ENABLE CTL0_TEN(1) /*!< enable transmitter */ +#define USART_TRANSMIT_DISABLE CTL0_TEN(0) /*!< disable transmitter */ + +/* USART parity bits definitions */ +#define CTL0_PM(regval) (BITS(9,10) & ((uint32_t)(regval) << 9)) +#define USART_PM_NONE CTL0_PM(0) /*!< no parity */ +#define USART_PM_EVEN CTL0_PM(2) /*!< even parity */ +#define USART_PM_ODD CTL0_PM(3) /*!< odd parity */ + +/* USART wakeup method in mute mode */ +#define CTL0_WM(regval) (BIT(11) & ((uint32_t)(regval) << 11)) +#define USART_WM_IDLE CTL0_WM(0) /*!< idle line */ +#define USART_WM_ADDR CTL0_WM(1) /*!< address match */ + +/* USART word length definitions */ +#define CTL0_WL(regval) (BIT(12) & ((uint32_t)(regval) << 12)) +#define USART_WL_8BIT CTL0_WL(0) /*!< 8 bits */ +#define USART_WL_9BIT CTL0_WL(1) /*!< 9 bits */ + +/* USART stop bits definitions */ +#define CTL1_STB(regval) (BITS(12,13) & ((uint32_t)(regval) << 12)) +#define USART_STB_1BIT CTL1_STB(0) /*!< 1 bit */ +#define USART_STB_0_5BIT CTL1_STB(1) /*!< 0.5 bit */ +#define USART_STB_2BIT CTL1_STB(2) /*!< 2 bits */ +#define USART_STB_1_5BIT CTL1_STB(3) /*!< 1.5 bits */ + +/* USART LIN break frame length */ +#define CTL1_LBLEN(regval) (BIT(5) & ((uint32_t)(regval) << 5)) +#define USART_LBLEN_10B CTL1_LBLEN(0) /*!< 10 bits */ +#define USART_LBLEN_11B CTL1_LBLEN(1) /*!< 11 bits */ + +/* USART CK length */ +#define CTL1_CLEN(regval) (BIT(8) & ((uint32_t)(regval) << 8)) +#define USART_CLEN_NONE CTL1_CLEN(0) /*!< there are 7 CK pulses for an 8 bit frame and 8 CK pulses for a 9 bit frame */ +#define USART_CLEN_EN CTL1_CLEN(1) /*!< there are 8 CK pulses for an 8 bit frame and 9 CK pulses for a 9 bit frame */ + +/* USART clock phase */ +#define CTL1_CPH(regval) (BIT(9) & ((uint32_t)(regval) << 9)) +#define USART_CPH_1CK CTL1_CPH(0) /*!< first clock transition is the first data capture edge */ +#define USART_CPH_2CK CTL1_CPH(1) /*!< second clock transition is the first data capture edge */ + +/* USART clock polarity */ +#define CTL1_CPL(regval) (BIT(10) & ((uint32_t)(regval) << 10)) +#define USART_CPL_LOW CTL1_CPL(0) /*!< steady low value on CK pin */ +#define USART_CPL_HIGH CTL1_CPL(1) /*!< steady high value on CK pin */ + +/* configure USART DMA */ +#define CLT2_RECEIVE_DMAEN(regval) (BIT(6) & ((uint32_t)(regval) << 6)) +#define CTL2_TRANSMIT_DMAEN(regval) (BIT(7) & ((uint32_t)(regval) << 7)) +#define USART_RECEIVE_DMA_ENABLE CLT2_RECEIVE_DMAEN(1) /* enable DMA request for reception */ +#define USART_RECEIVE_DMA_DISABLE CLT2_RECEIVE_DMAEN(0) /* disable DMA request for reception */ +#define USART_TRANSMIT_DMA_ENABLE CTL2_TRANSMIT_DMAEN(1) /* enable DMA request for transmission */ +#define USART_TRANSMIT_DMA_DISABLE CTL2_TRANSMIT_DMAEN(0) /* disable DMA request for transmission */ + +/* configure USART RTS */ +#define CLT2_RTSEN(regval) (BIT(8) & ((uint32_t)(regval) << 8)) +#define USART_RTS_ENABLE CLT2_RTSEN(1) /*!< enable RTS */ +#define USART_RTS_DISABLE CLT2_RTSEN(0) /*!< disable RTS */ + +/* configure USART CTS */ +#define CLT2_CTSEN(regval) (BIT(9) & ((uint32_t)(regval) << 9)) +#define USART_CTS_ENABLE CLT2_CTSEN(1) /*!< enable CTS */ +#define USART_CTS_DISABLE CLT2_CTSEN(0) /*!< disable CTS */ + +/* enable USART IrDA low-power */ +#define CTL2_IRLP(regval) (BIT(2) & ((uint32_t)(regval) << 2)) +#define USART_IRLP_LOW CTL2_IRLP(1) /*!< low-power */ +#define USART_IRLP_NORMAL CTL2_IRLP(0) /*!< normal */ + +/* function declarations */ +/* initialization functions */ +/* reset USART */ +void usart_deinit(uint32_t usart_periph); +/* configure USART baud rate value */ +void usart_baudrate_set(uint32_t usart_periph, uint32_t baudval); +/* configure USART parity function */ +void usart_parity_config(uint32_t usart_periph, uint32_t paritycfg); +/* configure USART word length */ +void usart_word_length_set(uint32_t usart_periph, uint32_t wlen); +/* configure USART stop bit length */ +void usart_stop_bit_set(uint32_t usart_periph, uint32_t stblen); + +/* USART normal mode communication */ +/* enable USART */ +void usart_enable(uint32_t usart_periph); +/* disable USART */ +void usart_disable(uint32_t usart_periph); +/* configure USART transmitter */ +void usart_transmit_config(uint32_t usart_periph, uint32_t txconfig); +/* configure USART receiver */ +void usart_receive_config(uint32_t usart_periph, uint32_t rxconfig); +/* USART transmit data function */ +void usart_data_transmit(uint32_t usart_periph, uint16_t data); +/* USART receive data function */ +uint16_t usart_data_receive(uint32_t usart_periph); + +/* multi-processor communication */ +/* configure address of the USART */ +void usart_address_config(uint32_t usart_periph, uint8_t addr); +/* enable mute mode */ +void usart_mute_mode_enable(uint32_t usart_periph); +/* disable mute mode */ +void usart_mute_mode_disable(uint32_t usart_periph); +/* configure wakeup method in mute mode */ +void usart_mute_mode_wakeup_config(uint32_t usart_periph, uint32_t wmethod); + +/* LIN mode communication */ +/* enable LIN mode */ +void usart_lin_mode_enable(uint32_t usart_periph); +/* disable LIN mode */ +void usart_lin_mode_disable(uint32_t usart_periph); +/* configure LIN break frame length */ +void usart_lin_break_detection_length_config(uint32_t usart_periph, uint32_t lblen); +/* send break frame */ +void usart_send_break(uint32_t usart_periph); + +/* half-duplex communication */ +/* enable half-duplex */ +void usart_halfduplex_enable(uint32_t usart_periph); +/* disable half-duplex */ +void usart_halfduplex_disable(uint32_t usart_periph); + +/* synchronous communication */ +/* enable CK pin in synchronous mode */ +void usart_synchronous_clock_enable(uint32_t usart_periph); +/* disable CK pin in synchronous mode */ +void usart_synchronous_clock_disable(uint32_t usart_periph); +/* configure usart synchronous mode parameters */ +void usart_synchronous_clock_config(uint32_t usart_periph, uint32_t clen, uint32_t cph, uint32_t cpl); + +/* smartcard communication */ +/* configure guard time value in smartcard mode */ +void usart_guard_time_config(uint32_t usart_periph,uint8_t gaut); +/* enable smartcard mode */ +void usart_smartcard_mode_enable(uint32_t usart_periph); +/* disable smartcard mode */ +void usart_smartcard_mode_disable(uint32_t usart_periph); +/* enable NACK in smartcard mode */ +void usart_smartcard_mode_nack_enable(uint32_t usart_periph); +/* disable NACK in smartcard mode */ +void usart_smartcard_mode_nack_disable(uint32_t usart_periph); + +/* IrDA communication */ +/* enable IrDA mode */ +void usart_irda_mode_enable(uint32_t usart_periph); +/* disable IrDA mode */ +void usart_irda_mode_disable(uint32_t usart_periph); +/* configure the peripheral clock prescaler */ +void usart_prescaler_config(uint32_t usart_periph, uint8_t psc); +/* configure IrDA low-power */ +void usart_irda_lowpower_config(uint32_t usart_periph, uint32_t irlp); + +/* hardware flow communication */ +/* configure hardware flow control RTS */ +void usart_hardware_flow_rts_config(uint32_t usart_periph, uint32_t rtsconfig); +/* configure hardware flow control CTS */ +void usart_hardware_flow_cts_config(uint32_t usart_periph, uint32_t ctsconfig); + +/* DMA communication */ +/* configure USART DMA for reception */ +void usart_dma_receive_config(uint32_t usart_periph, uint8_t dmaconfig); +/* configure USART DMA for transmission */ +void usart_dma_transmit_config(uint32_t usart_periph, uint8_t dmaconfig); + +/* flag functions */ +/* get flag in STAT register */ +FlagStatus usart_flag_get(uint32_t usart_periph, usart_flag_enum flag); +/* clear flag in STAT register */ +void usart_flag_clear(uint32_t usart_periph, usart_flag_enum flag); + +/* interrupt functions */ +/* enable USART interrupt */ +void usart_interrupt_enable(uint32_t usart_periph, uint32_t interrupt); +/* disable USART interrupt */ +void usart_interrupt_disable(uint32_t usart_periph, uint32_t interrupt); +/* get USART interrupt and flag status */ +FlagStatus usart_interrupt_flag_get(uint32_t usart_periph, uint32_t int_flag); +/* clear interrupt flag in STAT register */ +void usart_interrupt_flag_clear(uint32_t usart_periph, uint32_t int_flag); +#endif /* GD32F10X_USART_H */ diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_wwdgt.h b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_wwdgt.h new file mode 100644 index 0000000..c9e6109 --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_wwdgt.h @@ -0,0 +1,91 @@ +/*! + \file gd32f10x_wwdgt.h + \brief definitions for the WWDGT + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#ifndef GD32F10X_WWDGT_H +#define GD32F10X_WWDGT_H + +#include "gd32f10x.h" + +/* WWDGT definitions */ +#define WWDGT WWDGT_BASE /*!< WWDGT base address */ + +/* registers definitions */ +#define WWDGT_CTL REG32((WWDGT) + 0x00U) /*!< WWDGT control register */ +#define WWDGT_CFG REG32((WWDGT) + 0x04U) /*!< WWDGT configuration register */ +#define WWDGT_STAT REG32((WWDGT) + 0x08U) /*!< WWDGT status register */ + +/* bits definitions */ +/* WWDGT_CTL */ +#define WWDGT_CTL_CNT BITS(0,6) /*!< WWDGT counter value */ +#define WWDGT_CTL_WDGTEN BIT(7) /*!< WWDGT counter enable */ + +/* WWDGT_CFG */ +#define WWDGT_CFG_WIN BITS(0,6) /*!< WWDGT counter window value */ +#define WWDGT_CFG_PSC BITS(7,8) /*!< WWDGT prescaler divider value */ +#define WWDGT_CFG_EWIE BIT(9) /*!< early wakeup interrupt enable */ + +/* WWDGT_STAT */ +#define WWDGT_STAT_EWIF BIT(0) /*!< early wakeup interrupt flag */ + +/* constants definitions */ +#define CFG_PSC(regval) (BITS(7,8) & ((uint32_t)(regval) << 7)) /*!< write value to WWDGT_CFG_PSC bit field */ +#define WWDGT_CFG_PSC_DIV1 CFG_PSC(0) /*!< the time base of WWDGT = (PCLK1/4096)/1 */ +#define WWDGT_CFG_PSC_DIV2 CFG_PSC(1) /*!< the time base of WWDGT = (PCLK1/4096)/2 */ +#define WWDGT_CFG_PSC_DIV4 CFG_PSC(2) /*!< the time base of WWDGT = (PCLK1/4096)/4 */ +#define WWDGT_CFG_PSC_DIV8 CFG_PSC(3) /*!< the time base of WWDGT = (PCLK1/4096)/8 */ + +/* write value to WWDGT_CTL_CNT bit field */ +#define CTL_CNT(regval) (BITS(0,6) & ((uint32_t)(regval) << 0)) +/* write value to WWDGT_CFG_WIN bit field */ +#define CFG_WIN(regval) (BITS(0,6) & ((uint32_t)(regval) << 0)) + +/* function declarations */ +/* reset the window watchdog timer configuration */ +void wwdgt_deinit(void); +/* start the window watchdog timer counter */ +void wwdgt_enable(void); + +/* configure the window watchdog timer counter value */ +void wwdgt_counter_update(uint16_t counter_value); +/* configure counter value, window value, and prescaler divider value */ +void wwdgt_config(uint16_t counter, uint16_t window, uint32_t prescaler); + +/* check early wakeup interrupt state of WWDGT */ +FlagStatus wwdgt_flag_get(void); +/* clear early wakeup interrupt state of WWDGT */ +void wwdgt_flag_clear(void); +/* enable early wakeup interrupt of WWDGT */ +void wwdgt_interrupt_enable(void); + +#endif /* GD32F10X_WWDGT_H */ diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_adc.c b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_adc.c new file mode 100644 index 0000000..33d5bf0 --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_adc.c @@ -0,0 +1,929 @@ +/*! + \file gd32f10x_adc.c + \brief ADC driver + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#include "gd32f10x_adc.h" + +/* discontinuous mode macro*/ +#define ADC_CHANNEL_LENGTH_SUBTRACT_ONE ((uint8_t)1U) + +/* ADC regular channel macro */ +#define ADC_REGULAR_CHANNEL_RANK_SIX ((uint8_t)6U) +#define ADC_REGULAR_CHANNEL_RANK_TWELVE ((uint8_t)12U) +#define ADC_REGULAR_CHANNEL_RANK_SIXTEEN ((uint8_t)16U) +#define ADC_REGULAR_CHANNEL_RANK_LENGTH ((uint8_t)5U) + +/* ADC sampling time macro */ +#define ADC_CHANNEL_SAMPLE_TEN ((uint8_t)10U) +#define ADC_CHANNEL_SAMPLE_EIGHTEEN ((uint8_t)18U) +#define ADC_CHANNEL_SAMPLE_LENGTH ((uint8_t)3U) + +/* ADC inserted channel macro */ +#define ADC_INSERTED_CHANNEL_RANK_LENGTH ((uint8_t)5U) +#define ADC_INSERTED_CHANNEL_SHIFT_LENGTH ((uint8_t)15U) + +/* ADC inserted channel offset macro */ +#define ADC_OFFSET_LENGTH ((uint8_t)3U) +#define ADC_OFFSET_SHIFT_LENGTH ((uint8_t)4U) + +/*! + \brief reset ADC + \param[in] adc_periph: ADCx, x=0,1,2 + \param[out] none + \retval none +*/ +void adc_deinit(uint32_t adc_periph) +{ + switch(adc_periph){ + case ADC0: + /* reset ADC0 */ + rcu_periph_reset_enable(RCU_ADC0RST); + rcu_periph_reset_disable(RCU_ADC0RST); + break; + case ADC1: + /* reset ADC1 */ + rcu_periph_reset_enable(RCU_ADC1RST); + rcu_periph_reset_disable(RCU_ADC1RST); + break; +#ifndef GD32F10X_CL + case ADC2: + rcu_periph_reset_enable(RCU_ADC2RST); + rcu_periph_reset_disable(RCU_ADC2RST); + break; +#endif /* GD32F10X_CL */ + default: + break; + } +} + +/*! + \brief configure the ADC sync mode + \param[in] mode: ADC mode + only one parameter can be selected which is shown as below: + \arg ADC_MODE_FREE: all the ADCs work independently + \arg ADC_DAUL_REGULAL_PARALLEL_INSERTED_PARALLEL: ADC0 and ADC1 work in combined regular parallel + inserted parallel mode + \arg ADC_DAUL_REGULAL_PARALLEL_INSERTED_ROTATION: ADC0 and ADC1 work in combined regular parallel + trigger rotation mode + \arg ADC_DAUL_INSERTED_PARALLEL_REGULAL_FOLLOWUP_FAST: ADC0 and ADC1 work in combined inserted parallel + follow-up fast mode + \arg ADC_DAUL_INSERTED_PARALLEL_REGULAL_FOLLOWUP_SLOW: ADC0 and ADC1 work in combined inserted parallel + follow-up slow mode + \arg ADC_DAUL_INSERTED_PARALLEL: ADC0 and ADC1 work in inserted parallel mode only + \arg ADC_DAUL_REGULAL_PARALLEL: ADC0 and ADC1 work in regular parallel mode only + \arg ADC_DAUL_REGULAL_FOLLOWUP_FAST: ADC0 and ADC1 work in follow-up fast mode only + \arg ADC_DAUL_REGULAL_FOLLOWUP_SLOW: ADC0 and ADC1 work in follow-up slow mode only + \arg ADC_DAUL_INSERTED_TRIGGER_ROTATION: ADC0 and ADC1 work in trigger rotation mode only + \param[out] none + \retval none +*/ +void adc_mode_config(uint32_t mode) +{ + ADC_CTL0(ADC0) &= ~(ADC_CTL0_SYNCM); + ADC_CTL0(ADC0) |= mode; +} + +/*! + \brief enable or disable ADC special function + \param[in] adc_periph: ADCx, x=0,1,2 + \param[in] function: the function to config + only one parameter can be selected which is shown as below: + \arg ADC_SCAN_MODE: scan mode select + \arg ADC_INSERTED_CHANNEL_AUTO: inserted channel group convert automatically + \arg ADC_CONTINUOUS_MODE: continuous mode select + \param[in] newvalue: ENABLE or DISABLE + \param[out] none + \retval none +*/ +void adc_special_function_config(uint32_t adc_periph, uint32_t function, ControlStatus newvalue) +{ + if(newvalue){ + if(0U != (function & ADC_SCAN_MODE)){ + /* enable scan mode */ + ADC_CTL0(adc_periph) |= ADC_SCAN_MODE; + } + if(0U != (function & ADC_INSERTED_CHANNEL_AUTO)){ + /* enable inserted channel group convert automatically */ + ADC_CTL0(adc_periph) |= ADC_INSERTED_CHANNEL_AUTO; + } + if(0U != (function & ADC_CONTINUOUS_MODE)){ + /* enable continuous mode */ + ADC_CTL1(adc_periph) |= ADC_CONTINUOUS_MODE; + } + }else{ + if(0U != (function & ADC_SCAN_MODE)){ + /* disable scan mode */ + ADC_CTL0(adc_periph) &= ~ADC_SCAN_MODE; + } + if(0U != (function & ADC_INSERTED_CHANNEL_AUTO)){ + /* disable inserted channel group convert automatically */ + ADC_CTL0(adc_periph) &= ~ADC_INSERTED_CHANNEL_AUTO; + } + if(0U != (function & ADC_CONTINUOUS_MODE)){ + /* disable continuous mode */ + ADC_CTL1(adc_periph) &= ~ADC_CONTINUOUS_MODE; + } + } +} + +/*! + \brief configure ADC data alignment + \param[in] adc_periph: ADCx, x=0,1,2 + \param[in] data_alignment: data alignment select + only one parameter can be selected which is shown as below: + \arg ADC_DATAALIGN_RIGHT: LSB alignment + \arg ADC_DATAALIGN_LEFT: MSB alignment + \param[out] none + \retval none +*/ +void adc_data_alignment_config(uint32_t adc_periph, uint32_t data_alignment) +{ + if(ADC_DATAALIGN_RIGHT != data_alignment){ + /* MSB alignment */ + ADC_CTL1(adc_periph) |= ADC_CTL1_DAL; + }else{ + /* LSB alignment */ + ADC_CTL1(adc_periph) &= ~((uint32_t)ADC_CTL1_DAL); + } +} + +/*! + \brief enable ADC interface + \param[in] adc_periph: ADCx, x=0,1,2 + \param[out] none + \retval none +*/ +void adc_enable(uint32_t adc_periph) +{ + if(RESET == (ADC_CTL1(adc_periph) & ADC_CTL1_ADCON)){ + /* enable ADC */ + ADC_CTL1(adc_periph) |= (uint32_t)ADC_CTL1_ADCON; + } +} + +/*! + \brief disable ADC interface + \param[in] adc_periph: ADCx, x=0,1,2 + \param[out] none + \retval none +*/ +void adc_disable(uint32_t adc_periph) +{ + /* disable ADC */ + ADC_CTL1(adc_periph) &= ~((uint32_t)ADC_CTL1_ADCON); +} + +/*! + \brief ADC calibration and reset calibration(GD32F10x_MD series without this function) + \param[in] adc_periph: ADCx, x=0,1,2 + \param[out] none + \retval none +*/ +void adc_calibration_enable(uint32_t adc_periph) +{ + /* reset the selected ADC1 calibration registers */ + ADC_CTL1(adc_periph) |= (uint32_t) ADC_CTL1_RSTCLB; + /* check the RSTCLB bit state */ + while(RESET != (ADC_CTL1(adc_periph) & ADC_CTL1_RSTCLB)){ + } + /* enable ADC calibration process */ + ADC_CTL1(adc_periph) |= ADC_CTL1_CLB; + /* check the CLB bit state */ + while(RESET != (ADC_CTL1(adc_periph) & ADC_CTL1_CLB)){ + } +} + +/*! + \brief enable the temperature sensor and Vrefint channel + \param[in] none + \param[out] none + \retval none +*/ +void adc_tempsensor_vrefint_enable(void) +{ + /* enable the temperature sensor and Vrefint channel */ + ADC_CTL1(ADC0) |= ADC_CTL1_TSVREN; +} + +/*! + \brief disable the temperature sensor and Vrefint channel + \param[in] none + \param[out] none + \retval none +*/ +void adc_tempsensor_vrefint_disable(void) +{ + /* disable the temperature sensor and Vrefint channel */ + ADC_CTL1(ADC0) &= ~ADC_CTL1_TSVREN; +} + +/*! + \brief enable DMA request + \param[in] adc_periph: ADCx, x=0,1,2 + \param[out] none + \retval none +*/ +void adc_dma_mode_enable(uint32_t adc_periph) +{ + /* enable DMA request */ + ADC_CTL1(adc_periph) |= (uint32_t)(ADC_CTL1_DMA); +} + +/*! + \brief disable DMA request + \param[in] adc_periph: ADCx, x=0,1,2 + \param[out] none + \retval none +*/ +void adc_dma_mode_disable(uint32_t adc_periph) +{ + /* disable DMA request */ + ADC_CTL1(adc_periph) &= ~((uint32_t)ADC_CTL1_DMA); +} + +/*! + \brief configure ADC discontinuous mode + \param[in] adc_periph: ADCx, x=0,1,2 + \param[in] adc_channel_group: select the channel group + only one parameter can be selected which is shown as below: + \arg ADC_REGULAR_CHANNEL: regular channel group + \arg ADC_INSERTED_CHANNEL: inserted channel group + \arg ADC_CHANNEL_DISCON_DISABLE: disable discontinuous mode of regular & inserted channel + \param[in] length: number of conversions in discontinuous mode,the number can be 1..8 + for regular channel, the number has no effect for inserted channel + \param[out] none + \retval none +*/ +void adc_discontinuous_mode_config(uint32_t adc_periph, uint8_t adc_channel_group, uint8_t length) +{ + /* disable discontinuous mode of regular & inserted channel */ + ADC_CTL0(adc_periph) &= ~((uint32_t)(ADC_CTL0_DISRC | ADC_CTL0_DISIC)); + switch(adc_channel_group){ + case ADC_REGULAR_CHANNEL: + /* config the number of conversions in discontinuous mode */ + ADC_CTL0(adc_periph) &= ~((uint32_t)ADC_CTL0_DISNUM); + ADC_CTL0(adc_periph) |= CTL0_DISNUM(((uint32_t)length - ADC_CHANNEL_LENGTH_SUBTRACT_ONE)); + /* enable regular channel group discontinuous mode */ + ADC_CTL0(adc_periph) |= (uint32_t)ADC_CTL0_DISRC; + break; + case ADC_INSERTED_CHANNEL: + /* enable inserted channel group discontinuous mode */ + ADC_CTL0(adc_periph) |= (uint32_t)ADC_CTL0_DISIC; + break; + case ADC_CHANNEL_DISCON_DISABLE: + /* disable discontinuous mode of regular & inserted channel */ + default: + break; + } +} + +/*! + \brief configure the length of regular channel group or inserted channel group + \param[in] adc_periph: ADCx, x=0,1,2 + \param[in] adc_channel_group: select the channel group + only one parameter can be selected which is shown as below: + \arg ADC_REGULAR_CHANNEL: regular channel group + \arg ADC_INSERTED_CHANNEL: inserted channel group + \param[in] length: the length of the channel + regular channel 1-16 + inserted channel 1-4 + \param[out] none + \retval none +*/ +void adc_channel_length_config(uint32_t adc_periph, uint8_t adc_channel_group, uint32_t length) +{ + switch(adc_channel_group){ + case ADC_REGULAR_CHANNEL: + /* configure the length of regular channel group */ + ADC_RSQ0(adc_periph) &= ~((uint32_t)ADC_RSQ0_RL); + ADC_RSQ0(adc_periph) |= RSQ0_RL((uint32_t)(length-ADC_CHANNEL_LENGTH_SUBTRACT_ONE)); + break; + case ADC_INSERTED_CHANNEL: + /* configure the length of inserted channel group */ + ADC_ISQ(adc_periph) &= ~((uint32_t)ADC_ISQ_IL); + ADC_ISQ(adc_periph) |= ISQ_IL((uint32_t)(length-ADC_CHANNEL_LENGTH_SUBTRACT_ONE)); + break; + default: + break; + } +} + +/*! + \brief configure ADC regular channel + \param[in] adc_periph: ADCx, x=0,1,2 + \param[in] rank: the regular group sequence rank,this parameter must be between 0 to 15 + \param[in] adc_channel: the selected ADC channel + only one parameter can be selected which is shown as below: + \arg ADC_CHANNEL_x(x=0..17)(x=16 and x=17 are only for ADC0): ADC Channelx + \param[in] sample_time: the sample time value + only one parameter can be selected which is shown as below: + \arg ADC_SAMPLETIME_1POINT5: 1.5 cycles + \arg ADC_SAMPLETIME_7POINT5: 7.5 cycles + \arg ADC_SAMPLETIME_13POINT5: 13.5 cycles + \arg ADC_SAMPLETIME_28POINT5: 28.5 cycles + \arg ADC_SAMPLETIME_41POINT5: 41.5 cycles + \arg ADC_SAMPLETIME_55POINT5: 55.5 cycles + \arg ADC_SAMPLETIME_71POINT5: 71.5 cycles + \arg ADC_SAMPLETIME_239POINT5: 239.5 cycles + \param[out] none + \retval none +*/ +void adc_regular_channel_config(uint32_t adc_periph, uint8_t rank, uint8_t adc_channel, uint32_t sample_time) +{ + uint32_t rsq,sampt; + + /* ADC regular sequence config */ + if(rank < ADC_REGULAR_CHANNEL_RANK_SIX){ + /* the regular group sequence rank is smaller than six */ + rsq = ADC_RSQ2(adc_periph); + rsq &= ~((uint32_t)(ADC_RSQX_RSQN << (ADC_REGULAR_CHANNEL_RANK_LENGTH*rank))); + /* the channel number is written to these bits to select a channel as the nth conversion in the regular channel group */ + rsq |= ((uint32_t)adc_channel << (ADC_REGULAR_CHANNEL_RANK_LENGTH*rank)); + ADC_RSQ2(adc_periph) = rsq; + }else if(rank < ADC_REGULAR_CHANNEL_RANK_TWELVE){ + /* the regular group sequence rank is smaller than twelve */ + rsq = ADC_RSQ1(adc_periph); + rsq &= ~((uint32_t)(ADC_RSQX_RSQN << (ADC_REGULAR_CHANNEL_RANK_LENGTH*(rank-ADC_REGULAR_CHANNEL_RANK_SIX)))); + /* the channel number is written to these bits to select a channel as the nth conversion in the regular channel group */ + rsq |= ((uint32_t)adc_channel << (ADC_REGULAR_CHANNEL_RANK_LENGTH*(rank-ADC_REGULAR_CHANNEL_RANK_SIX))); + ADC_RSQ1(adc_periph) = rsq; + }else if(rank < ADC_REGULAR_CHANNEL_RANK_SIXTEEN){ + /* the regular group sequence rank is smaller than sixteen */ + rsq = ADC_RSQ0(adc_periph); + rsq &= ~((uint32_t)(ADC_RSQX_RSQN << (ADC_REGULAR_CHANNEL_RANK_LENGTH*(rank-ADC_REGULAR_CHANNEL_RANK_TWELVE)))); + /* the channel number is written to these bits to select a channel as the nth conversion in the regular channel group */ + rsq |= ((uint32_t)adc_channel << (ADC_REGULAR_CHANNEL_RANK_LENGTH*(rank-ADC_REGULAR_CHANNEL_RANK_TWELVE))); + ADC_RSQ0(adc_periph) = rsq; + }else{ + } + + /* ADC sampling time config */ + if(adc_channel < ADC_CHANNEL_SAMPLE_TEN){ + /* the regular group sequence rank is smaller than ten */ + sampt = ADC_SAMPT1(adc_periph); + sampt &= ~((uint32_t)(ADC_SAMPTX_SPTN << (ADC_CHANNEL_SAMPLE_LENGTH*adc_channel))); + /* channel sample time set*/ + sampt |= (uint32_t)(sample_time << (ADC_CHANNEL_SAMPLE_LENGTH*adc_channel)); + ADC_SAMPT1(adc_periph) = sampt; + }else if(adc_channel < ADC_CHANNEL_SAMPLE_EIGHTEEN){ + /* the regular group sequence rank is smaller than eighteen */ + sampt = ADC_SAMPT0(adc_periph); + sampt &= ~((uint32_t)(ADC_SAMPTX_SPTN << (ADC_CHANNEL_SAMPLE_LENGTH*(adc_channel-ADC_CHANNEL_SAMPLE_TEN)))); + /* channel sample time set*/ + sampt |= (uint32_t)(sample_time << (ADC_CHANNEL_SAMPLE_LENGTH*(adc_channel-ADC_CHANNEL_SAMPLE_TEN))); + ADC_SAMPT0(adc_periph) = sampt; + }else{ + } +} + +/*! + \brief configure ADC inserted channel + \param[in] adc_periph: ADCx, x=0,1,2 + \param[in] rank: the inserted group sequencer rank,this parameter must be between 0 to 3 + \param[in] adc_channel: the selected ADC channel + only one parameter can be selected which is shown as below: + \arg ADC_CHANNEL_x(x=0..17)(x=16 and x=17 are only for ADC0): ADC Channelx + \param[in] sample_time: The sample time value + only one parameter can be selected which is shown as below: + \arg ADC_SAMPLETIME_1POINT5: 1.5 cycles + \arg ADC_SAMPLETIME_7POINT5: 7.5 cycles + \arg ADC_SAMPLETIME_13POINT5: 13.5 cycles + \arg ADC_SAMPLETIME_28POINT5: 28.5 cycles + \arg ADC_SAMPLETIME_41POINT5: 41.5 cycles + \arg ADC_SAMPLETIME_55POINT5: 55.5 cycles + \arg ADC_SAMPLETIME_71POINT5: 71.5 cycles + \arg ADC_SAMPLETIME_239POINT5: 239.5 cycles + \param[out] none + \retval none +*/ +void adc_inserted_channel_config(uint32_t adc_periph, uint8_t rank, uint8_t adc_channel, uint32_t sample_time) +{ + uint8_t inserted_length; + uint32_t isq,sampt; + /* get inserted channel group length */ + inserted_length = (uint8_t)GET_BITS(ADC_ISQ(adc_periph) , 20U , 21U); + /* the channel number is written to these bits to select a channel as the nth conversion in the inserted channel group */ + isq = ADC_ISQ(adc_periph); + isq &= ~((uint32_t)(ADC_ISQ_ISQN << (ADC_INSERTED_CHANNEL_SHIFT_LENGTH-(inserted_length-rank)*ADC_INSERTED_CHANNEL_RANK_LENGTH))); + isq |= ((uint32_t)adc_channel << (ADC_INSERTED_CHANNEL_SHIFT_LENGTH-(inserted_length-rank)*ADC_INSERTED_CHANNEL_RANK_LENGTH)); + ADC_ISQ(adc_periph) = isq; + + /* ADC sampling time config */ + if(adc_channel < ADC_CHANNEL_SAMPLE_TEN){ + /* the inserted group sequence rank is smaller than ten */ + sampt = ADC_SAMPT1(adc_periph); + sampt &= ~((uint32_t)(ADC_SAMPTX_SPTN << (ADC_CHANNEL_SAMPLE_LENGTH*adc_channel))); + /* channel sample time set*/ + sampt |= (uint32_t) sample_time << (ADC_CHANNEL_SAMPLE_LENGTH*adc_channel); + ADC_SAMPT1(adc_periph) = sampt; + }else if(adc_channel < ADC_CHANNEL_SAMPLE_EIGHTEEN){ + /* the inserted group sequence rank is smaller than eighteen */ + sampt = ADC_SAMPT0(adc_periph); + sampt &= ~((uint32_t)(ADC_SAMPTX_SPTN << (ADC_CHANNEL_SAMPLE_LENGTH*(adc_channel-ADC_CHANNEL_SAMPLE_TEN)))); + /* channel sample time set*/ + sampt |= ((uint32_t)sample_time << (ADC_CHANNEL_SAMPLE_LENGTH*(adc_channel-ADC_CHANNEL_SAMPLE_TEN))); + ADC_SAMPT0(adc_periph) = sampt; + }else{ + } +} + +/*! + \brief configure ADC inserted channel offset + \param[in] adc_periph: ADCx, x=0,1,2 + \param[in] inserted_channel: insert channel select + only one parameter can be selected + \arg ADC_INSERTED_CHANNEL_0: inserted channel0 + \arg ADC_INSERTED_CHANNEL_1: inserted channel1 + \arg ADC_INSERTED_CHANNEL_2: inserted channel2 + \arg ADC_INSERTED_CHANNEL_3: inserted channel3 + \param[in] offset: the offset data + \param[out] none + \retval none +*/ +void adc_inserted_channel_offset_config(uint32_t adc_periph, uint8_t inserted_channel, uint16_t offset) +{ + uint8_t inserted_length; + uint32_t num = 0U; + + inserted_length = (uint8_t)GET_BITS(ADC_ISQ(adc_periph) , 20U , 21U); + num = ((uint32_t)ADC_OFFSET_LENGTH - ((uint32_t)inserted_length - (uint32_t)inserted_channel)); + + if(num <= ADC_OFFSET_LENGTH){ + /* calculate the offset of the register */ + num = num * ADC_OFFSET_SHIFT_LENGTH; + /* config the offset of the selected channels */ + REG32((adc_periph) + 0x14U + num) = IOFFX_IOFF((uint32_t)offset); + } +} + +/*! + \brief configure ADC external trigger source + \param[in] adc_periph: ADCx, x=0,1,2 + \param[in] adc_channel_group: select the channel group + only one parameter can be selected which is shown as below: + \arg ADC_REGULAR_CHANNEL: regular channel group + \arg ADC_INSERTED_CHANNEL: inserted channel group + \param[in] external_trigger_source: regular or inserted group trigger source + only one parameter can be selected + for regular channel: + \arg ADC0_1_EXTTRIG_REGULAR_T0_CH0: TIMER0 CH0 event select + \arg ADC0_1_EXTTRIG_REGULAR_T0_CH1: TIMER0 CH1 event select + \arg ADC0_1_EXTTRIG_REGULAR_T0_CH2: TIMER0 CH2 event select + \arg ADC0_1_EXTTRIG_REGULAR_T1_CH1: TIMER1 CH1 event select + \arg ADC0_1_EXTTRIG_REGULAR_T2_TRGO: TIMER2 TRGO event select + \arg ADC0_1_EXTTRIG_REGULAR_T3_CH3: TIMER3 CH3 event select + \arg ADC0_1_EXTTRIG_REGULAR_T7_TRGO: TIMER7 TRGO event select + \arg ADC0_1_EXTTRIG_REGULAR_EXTI_11: external interrupt line 11 + \arg ADC2_EXTTRIG_REGULAR_T2_CH0: TIMER2 CH0 event select + \arg ADC2_EXTTRIG_REGULAR_T1_CH2: TIMER1 CH2 event select + \arg ADC2_EXTTRIG_REGULAR_T0_CH2: TIMER0 CH2 event select + \arg ADC2_EXTTRIG_REGULAR_T7_CH0: TIMER7 CH0 event select + \arg ADC2_EXTTRIG_REGULAR_T7_TRGO: TIMER7 TRGO event select + \arg ADC2_EXTTRIG_REGULAR_T4_CH0: TIMER4 CH0 event select + \arg ADC2_EXTTRIG_REGULAR_T4_CH2: TIMER4 CH2 event select + \arg ADC0_1_2_EXTTRIG_REGULAR_NONE: software trigger + for inserted channel: + \arg ADC0_1_EXTTRIG_INSERTED_T0_TRGO: TIMER0 TRGO event select + \arg ADC0_1_EXTTRIG_INSERTED_T0_CH3: TIMER0 CH3 event select + \arg ADC0_1_EXTTRIG_INSERTED_T1_TRGO: TIMER1 TRGO event select + \arg ADC0_1_EXTTRIG_INSERTED_T1_CH0: TIMER1 CH0 event select + \arg ADC0_1_EXTTRIG_INSERTED_T2_CH3: TIMER2 CH3 event select + \arg ADC0_1_EXTTRIG_INSERTED_T3_TRGO: TIMER3 TRGO event select + \arg ADC0_1_EXTTRIG_INSERTED_EXTI_15: external interrupt line 15 + \arg ADC0_1_EXTTRIG_INSERTED_T7_CH3: TIMER7 CH3 event select + \arg ADC2_EXTTRIG_INSERTED_T0_TRGO: TIMER0 TRGO event select + \arg ADC2_EXTTRIG_INSERTED_T0_CH3: TIMER0 CH3 event select + \arg ADC2_EXTTRIG_INSERTED_T3_CH2: TIMER3 CH2 event select + \arg ADC2_EXTTRIG_INSERTED_T7_CH1: TIMER7 CH1 event select + \arg ADC2_EXTTRIG_INSERTED_T7_CH3: TIMER7 CH3 event select + \arg ADC2_EXTTRIG_INSERTED_T4_TRGO: TIMER4 TRGO event select + \arg ADC2_EXTTRIG_INSERTED_T4_CH3: TIMER4 CH3 event select + \arg ADC0_1_2_EXTTRIG_INSERTED_NONE: software trigger + \param[out] none + \retval none +*/ +void adc_external_trigger_source_config(uint32_t adc_periph, uint8_t adc_channel_group, uint32_t external_trigger_source) +{ + switch(adc_channel_group){ + case ADC_REGULAR_CHANNEL: + /* configure ADC regular group external trigger source */ + ADC_CTL1(adc_periph) &= ~((uint32_t)ADC_CTL1_ETSRC); + ADC_CTL1(adc_periph) |= (uint32_t)external_trigger_source; + break; + case ADC_INSERTED_CHANNEL: + /* configure ADC inserted group external trigger source */ + ADC_CTL1(adc_periph) &= ~((uint32_t)ADC_CTL1_ETSIC); + ADC_CTL1(adc_periph) |= (uint32_t)external_trigger_source; + break; + default: + break; + } +} + +/*! + \brief configure ADC external trigger + \param[in] adc_periph: ADCx, x=0,1,2 + \param[in] adc_channel_group: select the channel group + one or more parameters can be selected which are shown as below: + \arg ADC_REGULAR_CHANNEL: regular channel group + \arg ADC_INSERTED_CHANNEL: inserted channel group + \param[in] newvalue: ENABLE or DISABLE + \param[out] none + \retval none +*/ +void adc_external_trigger_config(uint32_t adc_periph, uint8_t adc_channel_group, ControlStatus newvalue) +{ + if(newvalue){ + if(0U != (adc_channel_group & ADC_REGULAR_CHANNEL)){ + /* enable ADC regular channel group external trigger */ + ADC_CTL1(adc_periph) |= ADC_CTL1_ETERC; + } + if(0U != (adc_channel_group & ADC_INSERTED_CHANNEL)){ + /* enable ADC inserted channel group external trigger */ + ADC_CTL1(adc_periph) |= ADC_CTL1_ETEIC; + } + }else{ + if(0U != (adc_channel_group & ADC_REGULAR_CHANNEL)){ + /* disable ADC regular channel group external trigger */ + ADC_CTL1(adc_periph) &= ~ADC_CTL1_ETERC; + } + if(0U != (adc_channel_group & ADC_INSERTED_CHANNEL)){ + /* disable ADC regular channel group external trigger */ + ADC_CTL1(adc_periph) &= ~ADC_CTL1_ETEIC; + } + } +} + +/*! + \brief enable ADC software trigger + \param[in] adc_periph: ADCx, x=0,1,2 + \param[in] adc_channel_group: select the channel group + one or more parameters can be selected which are shown as below: + \arg ADC_REGULAR_CHANNEL: regular channel group + \arg ADC_INSERTED_CHANNEL: inserted channel group + \param[out] none + \retval none +*/ +void adc_software_trigger_enable(uint32_t adc_periph, uint8_t adc_channel_group) +{ + if(0U != (adc_channel_group & ADC_REGULAR_CHANNEL)){ + /* enable ADC regular channel group software trigger */ + ADC_CTL1(adc_periph) |= ADC_CTL1_SWRCST; + } + if(0U != (adc_channel_group & ADC_INSERTED_CHANNEL)){ + /* enable ADC inserted channel group software trigger */ + ADC_CTL1(adc_periph) |= ADC_CTL1_SWICST; + } +} + +/*! + \brief read ADC regular group data register + \param[in] adc_periph: ADCx, x=0,1,2 + \param[in] none + \param[out] none + \retval the conversion value +*/ +uint16_t adc_regular_data_read(uint32_t adc_periph) +{ + return (uint16_t)(ADC_RDATA(adc_periph)); +} + +/*! + \brief read ADC inserted group data register + \param[in] adc_periph: ADCx, x=0,1,2 + \param[in] inserted_channel: insert channel select + only one parameter can be selected + \arg ADC_INSERTED_CHANNEL_0: inserted Channel0 + \arg ADC_INSERTED_CHANNEL_1: inserted channel1 + \arg ADC_INSERTED_CHANNEL_2: inserted Channel2 + \arg ADC_INSERTED_CHANNEL_3: inserted Channel3 + \param[out] none + \retval the conversion value +*/ +uint16_t adc_inserted_data_read(uint32_t adc_periph, uint8_t inserted_channel) +{ + uint32_t idata; + /* read the data of the selected channel */ + switch(inserted_channel){ + case ADC_INSERTED_CHANNEL_0: + /* read the data of channel 0 */ + idata = ADC_IDATA0(adc_periph); + break; + case ADC_INSERTED_CHANNEL_1: + /* read the data of channel 1 */ + idata = ADC_IDATA1(adc_periph); + break; + case ADC_INSERTED_CHANNEL_2: + /* read the data of channel 2 */ + idata = ADC_IDATA2(adc_periph); + break; + case ADC_INSERTED_CHANNEL_3: + /* read the data of channel 3 */ + idata = ADC_IDATA3(adc_periph); + break; + default: + idata = 0U; + break; + } + return (uint16_t)idata; +} + +/*! + \brief read the last ADC0 and ADC1 conversion result data in sync mode + \param[in] none + \param[out] none + \retval the conversion value +*/ +uint32_t adc_sync_mode_convert_value_read(void) +{ + /* return conversion value */ + return ADC_RDATA(ADC0); +} + + +/*! + \brief configure ADC analog watchdog single channel + \param[in] adc_periph: ADCx, x=0,1,2 + \param[in] adc_channel: the selected ADC channel + only one parameter can be selected which is shown as below: + \arg ADC_CHANNEL_x: ADC Channelx(x=0..17)(x=16 and x=17 are only for ADC0) + \param[out] none + \retval none +*/ +void adc_watchdog_single_channel_enable(uint32_t adc_periph, uint8_t adc_channel) +{ + ADC_CTL0(adc_periph) &= (uint32_t)~(ADC_CTL0_RWDEN | ADC_CTL0_IWDEN | ADC_CTL0_WDSC | ADC_CTL0_WDCHSEL); + /* analog watchdog channel select */ + ADC_CTL0(adc_periph) |= (uint32_t)adc_channel; + ADC_CTL0(adc_periph) |= (uint32_t)(ADC_CTL0_RWDEN | ADC_CTL0_IWDEN | ADC_CTL0_WDSC); +} + +/*! + \brief configure ADC analog watchdog group channel + \param[in] adc_periph: ADCx, x=0,1,2 + \param[in] adc_channel_group: the channel group use analog watchdog + only one parameter can be selected which is shown as below: + \arg ADC_REGULAR_CHANNEL: regular channel group + \arg ADC_INSERTED_CHANNEL: inserted channel group + \arg ADC_REGULAR_INSERTED_CHANNEL: both regular and inserted group + \param[out] none + \retval none +*/ +void adc_watchdog_group_channel_enable(uint32_t adc_periph, uint8_t adc_channel_group) +{ + ADC_CTL0(adc_periph) &= (uint32_t)~(ADC_CTL0_RWDEN | ADC_CTL0_IWDEN | ADC_CTL0_WDSC); + /* select the group */ + switch(adc_channel_group){ + case ADC_REGULAR_CHANNEL: + /* regular channel analog watchdog enable */ + ADC_CTL0(adc_periph) |= (uint32_t) ADC_CTL0_RWDEN; + break; + case ADC_INSERTED_CHANNEL: + /* inserted channel analog watchdog enable */ + ADC_CTL0(adc_periph) |= (uint32_t) ADC_CTL0_IWDEN; + break; + case ADC_REGULAR_INSERTED_CHANNEL: + /* regular and inserted channel analog watchdog enable */ + ADC_CTL0(adc_periph) |= (uint32_t)(ADC_CTL0_RWDEN | ADC_CTL0_IWDEN); + break; + default: + break; + } +} + +/*! + \brief disable ADC analog watchdog + \param[in] adc_periph: ADCx, x=0,1,2 + \param[out] none + \retval none +*/ +void adc_watchdog_disable(uint32_t adc_periph) +{ + ADC_CTL0(adc_periph) &= (uint32_t)~(ADC_CTL0_RWDEN | ADC_CTL0_IWDEN | ADC_CTL0_WDSC | ADC_CTL0_WDCHSEL); +} + +/*! + \brief configure ADC analog watchdog threshold + \param[in] adc_periph: ADCx, x=0,1,2 + \param[in] low_threshold: analog watchdog low threshold, 0..4095 + \param[in] high_threshold: analog watchdog high threshold, 0..4095 + \param[out] none + \retval none +*/ +void adc_watchdog_threshold_config(uint32_t adc_periph, uint16_t low_threshold, uint16_t high_threshold) +{ + ADC_WDLT(adc_periph) = (uint32_t)WDLT_WDLT(low_threshold); + ADC_WDHT(adc_periph) = (uint32_t)WDHT_WDHT(high_threshold); +} + +/*! + \brief get the ADC flag bits + \param[in] adc_periph: ADCx, x=0,1,2 + \param[in] adc_flag: the adc flag bits + only one parameter can be selected which is shown as below: + \arg ADC_FLAG_WDE: analog watchdog event flag + \arg ADC_FLAG_EOC: end of group conversion flag + \arg ADC_FLAG_EOIC: end of inserted group conversion flag + \arg ADC_FLAG_STIC: start flag of inserted channel group + \arg ADC_FLAG_STRC: start flag of regular channel group + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus adc_flag_get(uint32_t adc_periph, uint32_t adc_flag) +{ + FlagStatus reval = RESET; + if(ADC_STAT(adc_periph) & adc_flag){ + reval = SET; + } + return reval; +} + +/*! + \brief clear the ADC flag bits + \param[in] adc_periph: ADCx, x=0,1,2 + \param[in] adc_flag: the adc flag bits + one or more parameters can be selected which are shown as below: + \arg ADC_FLAG_WDE: analog watchdog event flag + \arg ADC_FLAG_EOC: end of group conversion flag + \arg ADC_FLAG_EOIC: end of inserted group conversion flag + \arg ADC_FLAG_STIC: start flag of inserted channel group + \arg ADC_FLAG_STRC: start flag of regular channel group + \param[out] none + \retval none +*/ +void adc_flag_clear(uint32_t adc_periph, uint32_t adc_flag) +{ + ADC_STAT(adc_periph) &= ~((uint32_t)adc_flag); +} + +/*! + \brief get the bit state of ADCx software start conversion + \param[in] adc_periph: ADCx, x=0,1,2 + \param[in] none + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus adc_regular_software_startconv_flag_get(uint32_t adc_periph) +{ + FlagStatus reval = RESET; + if((uint32_t)RESET != (ADC_CTL1(adc_periph) & ADC_CTL1_SWRCST)){ + reval = SET; + } + return reval; +} + +/*! + \brief get the bit state of ADCx software inserted channel start conversion + \param[in] adc_periph: ADCx, x=0,1,2 + \param[in] none + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus adc_inserted_software_startconv_flag_get(uint32_t adc_periph) +{ + FlagStatus reval = RESET; + if((uint32_t)RESET != (ADC_CTL1(adc_periph) & ADC_CTL1_SWICST)){ + reval = SET; + } + return reval; +} + +/*! + \brief get the ADC interrupt bits + \param[in] adc_periph: ADCx, x=0,1,2 + \param[in] adc_interrupt: the adc interrupt bits + only one parameter can be selected which is shown as below: + \arg ADC_INT_FLAG_WDE: analog watchdog interrupt + \arg ADC_INT_FLAG_EOC: end of group conversion interrupt + \arg ADC_INT_FLAG_EOIC: end of inserted group conversion interrupt + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus adc_interrupt_flag_get(uint32_t adc_periph, uint32_t adc_interrupt) +{ + FlagStatus interrupt_flag = RESET; + uint32_t state; + /* check the interrupt bits */ + switch(adc_interrupt){ + case ADC_INT_FLAG_WDE: + /* get the ADC analog watchdog interrupt bits */ + state = ADC_STAT(adc_periph) & ADC_STAT_WDE; + if((ADC_CTL0(adc_periph) & ADC_CTL0_WDEIE) && state){ + interrupt_flag = SET; + } + break; + case ADC_INT_FLAG_EOC: + /* get the ADC end of group conversion interrupt bits */ + state = ADC_STAT(adc_periph) & ADC_STAT_EOC; + if((ADC_CTL0(adc_periph) & ADC_CTL0_EOCIE) && state){ + interrupt_flag = SET; + } + break; + case ADC_INT_FLAG_EOIC: + /* get the ADC end of inserted group conversion interrupt bits */ + state = ADC_STAT(adc_periph) & ADC_STAT_EOIC; + if((ADC_CTL0(adc_periph) & ADC_CTL0_EOICIE) && state){ + interrupt_flag = SET; + } + break; + default: + break; + } + return interrupt_flag; +} + +/*! + \brief clear the ADC flag + \param[in] adc_periph: ADCx, x=0,1,2 + \param[in] adc_interrupt: the adc status flag + one or more parameters can be selected which are shown as below: + \arg ADC_INT_FLAG_WDE: analog watchdog interrupt + \arg ADC_INT_FLAG_EOC: end of group conversion interrupt + \arg ADC_INT_FLAG_EOIC: end of inserted group conversion interrupt + \param[out] none + \retval none +*/ +void adc_interrupt_flag_clear(uint32_t adc_periph, uint32_t adc_interrupt) +{ + ADC_STAT(adc_periph) &= ~((uint32_t)adc_interrupt); +} + +/*! + \brief enable ADC interrupt + \param[in] adc_periph: ADCx, x=0,1,2 + \param[in] adc_interrupt: the adc interrupt + one or more parameters can be selected which are shown as below: + \arg ADC_INT_WDE: analog watchdog interrupt flag + \arg ADC_INT_EOC: end of group conversion interrupt flag + \arg ADC_INT_EOIC: end of inserted group conversion interrupt flag + \param[out] none + \retval none +*/ +void adc_interrupt_enable(uint32_t adc_periph, uint32_t adc_interrupt) +{ + /* enable ADC analog watchdog interrupt */ + if(0U != (adc_interrupt & ADC_INT_WDE)){ + ADC_CTL0(adc_periph) |= (uint32_t) ADC_CTL0_WDEIE; + } + /* enable ADC end of group conversion interrupt */ + if(0U != (adc_interrupt & ADC_INT_EOC)){ + ADC_CTL0(adc_periph) |= (uint32_t) ADC_CTL0_EOCIE; + } + /* enable ADC end of inserted group conversion interrupt */ + if(0U != (adc_interrupt & ADC_INT_EOIC)){ + ADC_CTL0(adc_periph) |= (uint32_t) ADC_CTL0_EOICIE; + } +} + +/*! + \brief disable ADC interrupt + \param[in] adc_periph: ADCx, x=0,1,2 + \param[in] adc_interrupt: the adc interrupt flag + one or more parameters can be selected which are shown as below: + \arg ADC_INT_WDE: analog watchdog interrupt flag + \arg ADC_INT_EOC: end of group conversion interrupt flag + \arg ADC_INT_EOIC: end of inserted group conversion interrupt flag + \param[out] none + \retval none +*/ +void adc_interrupt_disable(uint32_t adc_periph, uint32_t adc_interrupt) +{ + /* disable ADC analog watchdog interrupt */ + if(0U != (adc_interrupt & ADC_INT_WDE)){ + ADC_CTL0(adc_periph) &= ~(uint32_t) ADC_CTL0_WDEIE; + } + /* disable ADC end of group conversion interrupt */ + if(0U != (adc_interrupt & ADC_INT_EOC)){ + ADC_CTL0(adc_periph) &= ~(uint32_t) ADC_CTL0_EOCIE; + } + /* disable ADC end of inserted group conversion interrupt */ + if(0U != (adc_interrupt & ADC_INT_EOIC)){ + ADC_CTL0(adc_periph) &= ~(uint32_t) ADC_CTL0_EOICIE; + } +} diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_bkp.c b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_bkp.c new file mode 100644 index 0000000..66d961d --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_bkp.c @@ -0,0 +1,292 @@ +/*! + \file gd32f10x_bkp.c + \brief BKP driver + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#include "gd32f10x_bkp.h" + +/* BKP register bits offset */ +#define BKP_TAMPER_BITS_OFFSET ((uint32_t)8U) + +/*! + \brief reset BKP registers + \param[in] none + \param[out] none + \retval none +*/ +void bkp_deinit(void) +{ + /* reset BKP domain register*/ + rcu_bkp_reset_enable(); + rcu_bkp_reset_disable(); +} + +/*! + \brief write BKP data register + \param[in] register_number: refer to bkp_data_register_enum + only one parameter can be selected which is shown as below: + \arg BKP_DATA_x(x = 0..41): bkp data register number x + \param[in] data: the data to be write in BKP data register + \param[out] none + \retval none +*/ +void bkp_data_write(bkp_data_register_enum register_number, uint16_t data) +{ + if((register_number >= BKP_DATA_10) && (register_number <= BKP_DATA_41)){ + BKP_DATA10_41(register_number - 1U) = data; + }else if((register_number >= BKP_DATA_0) && (register_number <= BKP_DATA_9)){ + BKP_DATA0_9(register_number - 1U) = data; + }else{ + /* illegal parameters */ + } +} + +/*! + \brief read BKP data register + \param[in] register_number: refer to bkp_data_register_enum + only one parameter can be selected which is shown as below: + \arg BKP_DATA_x(x = 0..41): bkp data register number x + \param[out] none + \retval data of BKP data register +*/ +uint16_t bkp_data_read(bkp_data_register_enum register_number) +{ + uint16_t data = 0U; + + /* get the data from the BKP data register */ + if((register_number >= BKP_DATA_10) && (register_number <= BKP_DATA_41)){ + data = BKP_DATA10_41(register_number - 1U); + }else if((register_number >= BKP_DATA_0) && (register_number <= BKP_DATA_9)){ + data = BKP_DATA0_9(register_number - 1U); + }else{ + /* illegal parameters */ + } + return data; +} + +/*! + \brief enable RTC clock calibration output + \param[in] none + \param[out] none + \retval none +*/ +void bkp_rtc_calibration_output_enable(void) +{ + BKP_OCTL |= (uint16_t)BKP_OCTL_COEN; +} + +/*! + \brief disable RTC clock calibration output + \param[in] none + \param[out] none + \retval none +*/ +void bkp_rtc_calibration_output_disable(void) +{ + BKP_OCTL &= (uint16_t)~BKP_OCTL_COEN; +} + +/*! + \brief enable RTC alarm or second signal output + \param[in] none + \param[out] none + \retval none +*/ +void bkp_rtc_signal_output_enable(void) +{ + BKP_OCTL |= (uint16_t)BKP_OCTL_ASOEN; +} + +/*! + \brief disable RTC alarm or second signal output + \param[in] none + \param[out] none + \retval none +*/ +void bkp_rtc_signal_output_disable(void) +{ + BKP_OCTL &= (uint16_t)~BKP_OCTL_ASOEN; +} + +/*! + \brief select RTC output + \param[in] outputsel: RTC output selection + only one parameter can be selected which is shown as below: + \arg RTC_OUTPUT_ALARM_PULSE: RTC alarm pulse is selected as the RTC output + \arg RTC_OUTPUT_SECOND_PULSE: RTC second pulse is selected as the RTC output + \param[out] none + \retval none +*/ +void bkp_rtc_output_select(uint16_t outputsel) +{ + uint16_t ctl = 0U; + + /* configure BKP_OCTL_ROSEL with outputsel */ + ctl = BKP_OCTL; + ctl &= (uint16_t)~BKP_OCTL_ROSEL; + ctl |= outputsel; + BKP_OCTL = ctl; +} + +/*! + \brief set RTC clock calibration value + \param[in] value: RTC clock calibration value + \arg 0x00 - 0x7F + \param[out] none + \retval none +*/ +void bkp_rtc_calibration_value_set(uint8_t value) +{ + uint16_t ctl; + + /* configure BKP_OCTL_RCCV with value */ + ctl = BKP_OCTL; + ctl &= (uint16_t)~BKP_OCTL_RCCV; + ctl |= (uint16_t)OCTL_RCCV(value); + BKP_OCTL = ctl; +} + +/*! + \brief enable tamper detection + \param[in] none + \param[out] none + \retval none +*/ +void bkp_tamper_detection_enable(void) +{ + BKP_TPCTL |= (uint16_t)BKP_TPCTL_TPEN; +} + +/*! + \brief disable tamper detection + \param[in] none + \param[out] none + \retval none +*/ +void bkp_tamper_detection_disable(void) +{ + BKP_TPCTL &= (uint16_t)~BKP_TPCTL_TPEN; +} + +/*! + \brief set tamper pin active level + \param[in] level: tamper active level + only one parameter can be selected which is shown as below: + \arg TAMPER_PIN_ACTIVE_HIGH: the tamper pin is active high + \arg TAMPER_PIN_ACTIVE_LOW: the tamper pin is active low + \param[out] none + \retval none +*/ +void bkp_tamper_active_level_set(uint16_t level) +{ + uint16_t ctl = 0U; + + /* configure BKP_TPCTL_TPAL with level */ + ctl = BKP_TPCTL; + ctl &= (uint16_t)~BKP_TPCTL_TPAL; + ctl |= level; + BKP_TPCTL = ctl; +} + +/*! + \brief enable tamper interrupt + \param[in] none + \param[out] none + \retval none +*/ +void bkp_interrupt_enable(void) +{ + BKP_TPCS |= (uint16_t)BKP_TPCS_TPIE; +} + +/*! + \brief disable tamper interrupt + \param[in] none + \param[out] none + \retval none +*/ +void bkp_interrupt_disable(void) +{ + BKP_TPCS &= (uint16_t)~BKP_TPCS_TPIE; +} + +/*! + \brief get tamper flag state + \param[in] none + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus bkp_flag_get(void) +{ + if(RESET != (BKP_TPCS & BKP_FLAG_TAMPER)){ + return SET; + }else{ + return RESET; + } +} + +/*! + \brief clear tamper flag state + \param[in] none + \param[out] none + \retval none +*/ +void bkp_flag_clear(void) +{ + BKP_TPCS |= (uint16_t)(BKP_FLAG_TAMPER >> BKP_TAMPER_BITS_OFFSET); +} + +/*! + \brief get tamper interrupt flag state + \param[in] none + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus bkp_interrupt_flag_get(void) +{ + if(RESET != (BKP_TPCS & BKP_INT_FLAG_TAMPER)){ + return SET; + }else{ + return RESET; + } +} + +/*! + \brief clear tamper interrupt flag state + \param[in] none + \param[out] none + \retval none +*/ +void bkp_interrupt_flag_clear(void) +{ + BKP_TPCS |= (uint16_t)(BKP_INT_FLAG_TAMPER >> BKP_TAMPER_BITS_OFFSET); +} diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_can.c b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_can.c new file mode 100644 index 0000000..eea114f --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_can.c @@ -0,0 +1,1048 @@ +/*! + \file gd32f10x_can.c + \brief CAN driver + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#include "gd32f10x_can.h" + +#define CAN_ERROR_HANDLE(s) do{}while(1) + +#define RFO1_CLEAR_VAL ((uint32_t)0x00000000U) /*!< RFO1 clear value */ +#define RFF1_CLEAR_VAL ((uint32_t)0x00000018U) /*!< RFF1 clear value */ + +/*! + \brief deinitialize CAN + \param[in] can_periph + \arg CANx(x=0,1),the CAN1 only for GD32F10x_CL + \param[out] none + \retval none +*/ +void can_deinit(uint32_t can_periph) +{ +#ifdef GD32F10x_CL + if(CAN0 == can_periph){ + rcu_periph_reset_enable(RCU_CAN0RST); + rcu_periph_reset_disable(RCU_CAN0RST); + }else{ + rcu_periph_reset_enable(RCU_CAN1RST); + rcu_periph_reset_disable(RCU_CAN1RST); + } +#else + if(CAN0 == can_periph){ + rcu_periph_reset_enable(RCU_CAN0RST); + rcu_periph_reset_disable(RCU_CAN0RST); + } +#endif +} + +/*! + \brief initialize CAN parameter struct with a default value + \param[in] type: the type of CAN parameter struct + only one parameter can be selected which is shown as below: + \arg CAN_INIT_STRUCT: the CAN initial struct + \arg CAN_FILTER_STRUCT: the CAN filter struct + \arg CAN_TX_MESSAGE_STRUCT: the CAN TX message struct + \arg CAN_RX_MESSAGE_STRUCT: the CAN RX message struct + \param[in] p_struct: the pointer of the specific struct + \param[out] none + \retval none +*/ +void can_struct_para_init(can_struct_type_enum type, void* p_struct) +{ + uint8_t i; + + /* get type of the struct */ + switch(type){ + /* used for can_init() */ + case CAN_INIT_STRUCT: + ((can_parameter_struct*)p_struct)->auto_bus_off_recovery = DISABLE; + ((can_parameter_struct*)p_struct)->auto_retrans = DISABLE; + ((can_parameter_struct*)p_struct)->auto_wake_up = DISABLE; + ((can_parameter_struct*)p_struct)->prescaler = 0x03FFU; + ((can_parameter_struct*)p_struct)->rec_fifo_overwrite = DISABLE; + ((can_parameter_struct*)p_struct)->resync_jump_width = CAN_BT_SJW_1TQ; + ((can_parameter_struct*)p_struct)->time_segment_1 = CAN_BT_BS1_3TQ; + ((can_parameter_struct*)p_struct)->time_segment_2 = CAN_BT_BS2_1TQ; + ((can_parameter_struct*)p_struct)->time_triggered = DISABLE; + ((can_parameter_struct*)p_struct)->trans_fifo_order = DISABLE; + ((can_parameter_struct*)p_struct)->working_mode = CAN_NORMAL_MODE; + + break; + /* used for can_filter_init() */ + case CAN_FILTER_STRUCT: + ((can_filter_parameter_struct*)p_struct)->filter_bits = CAN_FILTERBITS_32BIT; + ((can_filter_parameter_struct*)p_struct)->filter_enable = DISABLE; + ((can_filter_parameter_struct*)p_struct)->filter_fifo_number = CAN_FIFO0; + ((can_filter_parameter_struct*)p_struct)->filter_list_high = 0x0000U; + ((can_filter_parameter_struct*)p_struct)->filter_list_low = 0x0000U; + ((can_filter_parameter_struct*)p_struct)->filter_mask_high = 0x0000U; + ((can_filter_parameter_struct*)p_struct)->filter_mask_low = 0x0000U; + ((can_filter_parameter_struct*)p_struct)->filter_mode = CAN_FILTERMODE_MASK; + ((can_filter_parameter_struct*)p_struct)->filter_number = 0U; + + break; + /* used for can_message_transmit() */ + case CAN_TX_MESSAGE_STRUCT: + for(i = 0U; i < 8U; i++){ + ((can_trasnmit_message_struct*)p_struct)->tx_data[i] = 0U; + } + + ((can_trasnmit_message_struct*)p_struct)->tx_dlen = 0u; + ((can_trasnmit_message_struct*)p_struct)->tx_efid = 0U; + ((can_trasnmit_message_struct*)p_struct)->tx_ff = (uint8_t)CAN_FF_STANDARD; + ((can_trasnmit_message_struct*)p_struct)->tx_ft = (uint8_t)CAN_FT_DATA; + ((can_trasnmit_message_struct*)p_struct)->tx_sfid = 0U; + + break; + /* used for can_message_receive() */ + case CAN_RX_MESSAGE_STRUCT: + for(i = 0U; i < 8U; i++){ + ((can_receive_message_struct*)p_struct)->rx_data[i] = 0U; + } + + ((can_receive_message_struct*)p_struct)->rx_dlen = 0U; + ((can_receive_message_struct*)p_struct)->rx_efid = 0U; + ((can_receive_message_struct*)p_struct)->rx_ff = (uint8_t)CAN_FF_STANDARD; + ((can_receive_message_struct*)p_struct)->rx_fi = 0U; + ((can_receive_message_struct*)p_struct)->rx_ft = (uint8_t)CAN_FT_DATA; + ((can_receive_message_struct*)p_struct)->rx_sfid = 0U; + + break; + + default: + CAN_ERROR_HANDLE("parameter is invalid \r\n"); + } +} + +/*! + \brief initialize CAN + \param[in] can_periph + \arg CANx(x=0,1),the CAN1 only for GD32F10x_CL + \param[in] can_parameter_init: parameters for CAN initializtion + \arg working_mode: CAN_NORMAL_MODE, CAN_LOOPBACK_MODE, CAN_SILENT_MODE, CAN_SILENT_LOOPBACK_MODE + \arg resync_jump_width: CAN_BT_SJW_xTQ(x=1, 2, 3, 4) + \arg time_segment_1: CAN_BT_BS1_xTQ(1..16) + \arg time_segment_2: CAN_BT_BS2_xTQ(1..8) + \arg time_triggered: ENABLE or DISABLE + \arg auto_bus_off_recovery: ENABLE or DISABLE + \arg auto_wake_up: ENABLE or DISABLE + \arg auto_retrans: ENABLE or DISABLE + \arg rec_fifo_overwrite: ENABLE or DISABLE + \arg trans_fifo_order: ENABLE or DISABLE + \arg prescaler: 0x0001 - 0x0400 + \param[out] none + \retval ErrStatus: SUCCESS or ERROR +*/ +ErrStatus can_init(uint32_t can_periph, can_parameter_struct* can_parameter_init) +{ + uint32_t timeout = CAN_TIMEOUT; + ErrStatus flag = ERROR; + + /* disable sleep mode */ + CAN_CTL(can_periph) &= ~CAN_CTL_SLPWMOD; + /* enable initialize mode */ + CAN_CTL(can_periph) |= CAN_CTL_IWMOD; + /* wait ACK */ + while((CAN_STAT_IWS != (CAN_STAT(can_periph) & CAN_STAT_IWS)) && (0U != timeout)){ + timeout--; + } + /* check initialize working success */ + if(CAN_STAT_IWS != (CAN_STAT(can_periph) & CAN_STAT_IWS)){ + flag = ERROR; + }else{ + /* set the bit timing register */ + CAN_BT(can_periph) = (BT_MODE((uint32_t)can_parameter_init->working_mode) | \ + BT_SJW((uint32_t)can_parameter_init->resync_jump_width) | \ + BT_BS1((uint32_t)can_parameter_init->time_segment_1) | \ + BT_BS2((uint32_t)can_parameter_init->time_segment_2) | \ + BT_BAUDPSC(((uint32_t)(can_parameter_init->prescaler) - 1U))); + + /* time trigger communication mode */ + if(ENABLE == can_parameter_init->time_triggered){ + CAN_CTL(can_periph) |= CAN_CTL_TTC; + }else{ + CAN_CTL(can_periph) &= ~CAN_CTL_TTC; + } + /* automatic bus-off managment */ + if(ENABLE == can_parameter_init->auto_bus_off_recovery){ + CAN_CTL(can_periph) |= CAN_CTL_ABOR; + }else{ + CAN_CTL(can_periph) &= ~CAN_CTL_ABOR; + } + /* automatic wakeup mode */ + if(ENABLE == can_parameter_init->auto_wake_up){ + CAN_CTL(can_periph) |= CAN_CTL_AWU; + }else{ + CAN_CTL(can_periph) &= ~CAN_CTL_AWU; + } + /* automatic retransmission mode */ + if(ENABLE == can_parameter_init->auto_retrans){ + CAN_CTL(can_periph) &= ~CAN_CTL_ARD; + }else{ + CAN_CTL(can_periph) |= CAN_CTL_ARD; + } + /* receive fifo overwrite mode */ + if(ENABLE == can_parameter_init->rec_fifo_overwrite){ + CAN_CTL(can_periph) &= ~CAN_CTL_RFOD; + }else{ + CAN_CTL(can_periph) |= CAN_CTL_RFOD; + } + /* transmit fifo order */ + if(ENABLE == can_parameter_init->trans_fifo_order){ + CAN_CTL(can_periph) |= CAN_CTL_TFO; + }else{ + CAN_CTL(can_periph) &= ~CAN_CTL_TFO; + } + /* disable initialize mode */ + CAN_CTL(can_periph) &= ~CAN_CTL_IWMOD; + timeout = CAN_TIMEOUT; + /* wait the ACK */ + while((CAN_STAT_IWS == (CAN_STAT(can_periph) & CAN_STAT_IWS)) && (0U != timeout)){ + timeout--; + } + /* check exit initialize mode */ + if(0U != timeout){ + flag = SUCCESS; + } + } + return flag; +} + +/*! + \brief initialize CAN filter + \param[in] can_filter_parameter_init: struct for CAN filter initialization + \arg filter_list_high: 0x0000 - 0xFFFF + \arg filter_list_low: 0x0000 - 0xFFFF + \arg filter_mask_high: 0x0000 - 0xFFFF + \arg filter_mask_low: 0x0000 - 0xFFFF + \arg filter_fifo_number: CAN_FIFO0, CAN_FIFO1 + \arg filter_number: 0 - 27 + \arg filter_mode: CAN_FILTERMODE_MASK, CAN_FILTERMODE_LIST + \arg filter_bits: CAN_FILTERBITS_32BIT, CAN_FILTERBITS_16BIT + \arg filter_enable: ENABLE or DISABLE + \param[out] none + \retval none +*/ +void can_filter_init(can_filter_parameter_struct* can_filter_parameter_init) +{ + uint32_t val = 0U; + + val = ((uint32_t)1) << (can_filter_parameter_init->filter_number); + /* filter lock disable */ + CAN_FCTL(CAN0) |= CAN_FCTL_FLD; + /* disable filter */ + CAN_FW(CAN0) &= ~(uint32_t)val; + + /* filter 16 bits */ + if(CAN_FILTERBITS_16BIT == can_filter_parameter_init->filter_bits){ + /* set filter 16 bits */ + CAN_FSCFG(CAN0) &= ~(uint32_t)val; + /* first 16 bits list and first 16 bits mask or first 16 bits list and second 16 bits list */ + CAN_FDATA0(CAN0, can_filter_parameter_init->filter_number) = \ + FDATA_MASK_HIGH((can_filter_parameter_init->filter_mask_low) & CAN_FILTER_MASK_16BITS) | \ + FDATA_MASK_LOW((can_filter_parameter_init->filter_list_low) & CAN_FILTER_MASK_16BITS); + /* second 16 bits list and second 16 bits mask or third 16 bits list and fourth 16 bits list */ + CAN_FDATA1(CAN0, can_filter_parameter_init->filter_number) = \ + FDATA_MASK_HIGH((can_filter_parameter_init->filter_mask_high) & CAN_FILTER_MASK_16BITS) | \ + FDATA_MASK_LOW((can_filter_parameter_init->filter_list_high) & CAN_FILTER_MASK_16BITS); + } + /* filter 32 bits */ + if(CAN_FILTERBITS_32BIT == can_filter_parameter_init->filter_bits){ + /* set filter 32 bits */ + CAN_FSCFG(CAN0) |= (uint32_t)val; + /* 32 bits list or first 32 bits list */ + CAN_FDATA0(CAN0, can_filter_parameter_init->filter_number) = \ + FDATA_MASK_HIGH((can_filter_parameter_init->filter_list_high) & CAN_FILTER_MASK_16BITS) | + FDATA_MASK_LOW((can_filter_parameter_init->filter_list_low) & CAN_FILTER_MASK_16BITS); + /* 32 bits mask or second 32 bits list */ + CAN_FDATA1(CAN0, can_filter_parameter_init->filter_number) = \ + FDATA_MASK_HIGH((can_filter_parameter_init->filter_mask_high) & CAN_FILTER_MASK_16BITS) | + FDATA_MASK_LOW((can_filter_parameter_init->filter_mask_low) & CAN_FILTER_MASK_16BITS); + } + + /* filter mode */ + if(CAN_FILTERMODE_MASK == can_filter_parameter_init->filter_mode){ + /* mask mode */ + CAN_FMCFG(CAN0) &= ~(uint32_t)val; + }else{ + /* list mode */ + CAN_FMCFG(CAN0) |= (uint32_t)val; + } + + /* filter FIFO */ + if(CAN_FIFO0 == (can_filter_parameter_init->filter_fifo_number)){ + /* FIFO0 */ + CAN_FAFIFO(CAN0) &= ~(uint32_t)val; + }else{ + /* FIFO1 */ + CAN_FAFIFO(CAN0) |= (uint32_t)val; + } + + /* filter working */ + if(ENABLE == can_filter_parameter_init->filter_enable){ + + CAN_FW(CAN0) |= (uint32_t)val; + } + + /* filter lock enable */ + CAN_FCTL(CAN0) &= ~CAN_FCTL_FLD; +} + +/*! + \brief set CAN1 fliter start bank number + \param[in] start_bank: CAN1 start bank number + only one parameter can be selected which is shown as below: + \arg (1..27) + \param[out] none + \retval none +*/ +void can1_filter_start_bank(uint8_t start_bank) +{ + /* filter lock disable */ + CAN_FCTL(CAN0) |= CAN_FCTL_FLD; + /* set CAN1 filter start number */ + CAN_FCTL(CAN0) &= ~(uint32_t)CAN_FCTL_HBC1F; + CAN_FCTL(CAN0) |= FCTL_HBC1F(start_bank); + /* filter lock enaable */ + CAN_FCTL(CAN0) &= ~CAN_FCTL_FLD; +} + +/*! + \brief enable CAN debug freeze + \param[in] can_periph + \arg CANx(x=0,1),the CAN1 only for GD32F10x_CL + \param[out] none + \retval none +*/ +void can_debug_freeze_enable(uint32_t can_periph) +{ + /* set DFZ bit */ + CAN_CTL(can_periph) |= CAN_CTL_DFZ; +#ifdef GD32F10x_CL + if(CAN0 == can_periph){ + dbg_periph_enable(DBG_CAN0_HOLD); + }else{ + dbg_periph_enable(DBG_CAN1_HOLD); + } +#else + if(CAN0 == can_periph){ + dbg_periph_enable(DBG_CAN0_HOLD); + } +#endif +} + +/*! + \brief disable CAN debug freeze + \param[in] can_periph + \arg CANx(x=0,1),the CAN1 only for GD32F10x_CL + \param[out] none + \retval none +*/ +void can_debug_freeze_disable(uint32_t can_periph) +{ + /* set DFZ bit */ + CAN_CTL(can_periph) &= ~CAN_CTL_DFZ; +#ifdef GD32F10x_CL + if(CAN0 == can_periph){ + dbg_periph_disable(DBG_CAN0_HOLD); + }else{ + dbg_periph_disable(DBG_CAN1_HOLD); + } +#else + if(CAN0 == can_periph){ + dbg_periph_enable(DBG_CAN0_HOLD); + } +#endif +} + +/*! + \brief enable CAN time trigger mode + \param[in] can_periph + \arg CANx(x=0,1),the CAN1 only for GD32F10x_CL + \param[out] none + \retval none +*/ +void can_time_trigger_mode_enable(uint32_t can_periph) +{ + uint8_t mailbox_number; + + /* enable the tcc mode */ + CAN_CTL(can_periph) |= CAN_CTL_TTC; + /* enable time stamp */ + for(mailbox_number = 0U; mailbox_number < 3U; mailbox_number++){ + CAN_TMP(can_periph, mailbox_number) |= CAN_TMP_TSEN; + } +} + +/*! + \brief disable CAN time trigger mode + \param[in] can_periph + \arg CANx(x=0,1),the CAN1 only for GD32F10x_CL + \param[out] none + \retval none +*/ +void can_time_trigger_mode_disable(uint32_t can_periph) +{ + uint8_t mailbox_number; + + /* disable the TCC mode */ + CAN_CTL(can_periph) &= ~CAN_CTL_TTC; + /* reset TSEN bits */ + for(mailbox_number = 0U; mailbox_number < 3U; mailbox_number++){ + CAN_TMP(can_periph, mailbox_number) &= ~CAN_TMP_TSEN; + } +} + +/*! + \brief transmit CAN message + \param[in] can_periph + \arg CANx(x=0,1),the CAN1 only for GD32F10x_CL + \param[in] transmit_message: struct for CAN transmit message + \arg tx_sfid: 0x00000000 - 0x000007FF + \arg tx_efid: 0x00000000 - 0x1FFFFFFF + \arg tx_ff: CAN_FF_STANDARD, CAN_FF_EXTENDED + \arg tx_ft: CAN_FT_DATA, CAN_FT_REMOTE + \arg tx_dlen: 0 - 8 + \arg tx_data[]: 0x00 - 0xFF + \param[out] none + \retval mailbox_number +*/ +uint8_t can_message_transmit(uint32_t can_periph, can_trasnmit_message_struct* transmit_message) +{ + uint8_t mailbox_number = CAN_MAILBOX0; + + /* select one empty mailbox */ + if(CAN_TSTAT_TME0 == (CAN_TSTAT(can_periph)&CAN_TSTAT_TME0)){ + mailbox_number = CAN_MAILBOX0; + }else if(CAN_TSTAT_TME1 == (CAN_TSTAT(can_periph)&CAN_TSTAT_TME1)){ + mailbox_number = CAN_MAILBOX1; + }else if(CAN_TSTAT_TME2 == (CAN_TSTAT(can_periph)&CAN_TSTAT_TME2)){ + mailbox_number = CAN_MAILBOX2; + }else{ + mailbox_number = CAN_NOMAILBOX; + } + /* return no mailbox empty */ + if(CAN_NOMAILBOX == mailbox_number){ + return CAN_NOMAILBOX; + } + + CAN_TMI(can_periph, mailbox_number) &= CAN_TMI_TEN; + if(CAN_FF_STANDARD == transmit_message->tx_ff){ + /* set transmit mailbox standard identifier */ + CAN_TMI(can_periph, mailbox_number) |= (uint32_t)(TMI_SFID(transmit_message->tx_sfid) | \ + transmit_message->tx_ft); + }else{ + /* set transmit mailbox extended identifier */ + CAN_TMI(can_periph, mailbox_number) |= (uint32_t)(TMI_EFID(transmit_message->tx_efid) | \ + transmit_message->tx_ff | \ + transmit_message->tx_ft); + } + /* set the data length */ + CAN_TMP(can_periph, mailbox_number) &= ~CAN_TMP_DLENC; + CAN_TMP(can_periph, mailbox_number) |= transmit_message->tx_dlen; + /* set the data */ + CAN_TMDATA0(can_periph, mailbox_number) = TMDATA0_DB3(transmit_message->tx_data[3]) | \ + TMDATA0_DB2(transmit_message->tx_data[2]) | \ + TMDATA0_DB1(transmit_message->tx_data[1]) | \ + TMDATA0_DB0(transmit_message->tx_data[0]); + CAN_TMDATA1(can_periph, mailbox_number) = TMDATA1_DB7(transmit_message->tx_data[7]) | \ + TMDATA1_DB6(transmit_message->tx_data[6]) | \ + TMDATA1_DB5(transmit_message->tx_data[5]) | \ + TMDATA1_DB4(transmit_message->tx_data[4]); + /* enable transmission */ + CAN_TMI(can_periph, mailbox_number) |= CAN_TMI_TEN; + + return mailbox_number; +} + +/*! + \brief get CAN transmit state + \param[in] can_periph + \arg CANx(x=0,1),the CAN1 only for GD32F10x_CL + \param[in] mailbox_number + only one parameter can be selected which is shown as below: + \arg CAN_MAILBOX(x=0,1,2) + \param[out] none + \retval can_transmit_state_enum +*/ +can_transmit_state_enum can_transmit_states(uint32_t can_periph, uint8_t mailbox_number) +{ + can_transmit_state_enum state = CAN_TRANSMIT_FAILED; + uint32_t val = 0U; + + /* check selected mailbox state */ + switch(mailbox_number){ + /* mailbox0 */ + case CAN_MAILBOX0: + val = CAN_TSTAT(can_periph) & (CAN_TSTAT_MTF0 | CAN_TSTAT_MTFNERR0 | CAN_TSTAT_TME0); + break; + /* mailbox1 */ + case CAN_MAILBOX1: + val = CAN_TSTAT(can_periph) & (CAN_TSTAT_MTF1 | CAN_TSTAT_MTFNERR1 | CAN_TSTAT_TME1); + break; + /* mailbox2 */ + case CAN_MAILBOX2: + val = CAN_TSTAT(can_periph) & (CAN_TSTAT_MTF2 | CAN_TSTAT_MTFNERR2 | CAN_TSTAT_TME2); + break; + default: + val = CAN_TRANSMIT_FAILED; + break; + } + + switch(val){ + /* transmit pending */ + case (CAN_STATE_PENDING): + state = CAN_TRANSMIT_PENDING; + break; + /* mailbox0 transmit succeeded */ + case (CAN_TSTAT_MTF0 | CAN_TSTAT_MTFNERR0 | CAN_TSTAT_TME0): + state = CAN_TRANSMIT_OK; + break; + /* mailbox1 transmit succeeded */ + case (CAN_TSTAT_MTF1 | CAN_TSTAT_MTFNERR1 | CAN_TSTAT_TME1): + state = CAN_TRANSMIT_OK; + break; + /* mailbox2 transmit succeeded */ + case (CAN_TSTAT_MTF2 | CAN_TSTAT_MTFNERR2 | CAN_TSTAT_TME2): + state = CAN_TRANSMIT_OK; + break; + /* transmit failed */ + default: + state = CAN_TRANSMIT_FAILED; + break; + } + return state; +} + +/*! + \brief stop CAN transmission + \param[in] can_periph + \arg CANx(x=0,1),the CAN1 only for GD32F10x_CL + \param[in] mailbox_number + only one parameter can be selected which is shown as below: + \arg CAN_MAILBOXx(x=0,1,2) + \param[out] none + \retval none +*/ +void can_transmission_stop(uint32_t can_periph, uint8_t mailbox_number) +{ + if(CAN_MAILBOX0 == mailbox_number){ + CAN_TSTAT(can_periph) |= CAN_TSTAT_MST0; + while(CAN_TSTAT_MST0 == (CAN_TSTAT(can_periph) & CAN_TSTAT_MST0)){ + } + }else if(CAN_MAILBOX1 == mailbox_number){ + CAN_TSTAT(can_periph) |= CAN_TSTAT_MST1; + while(CAN_TSTAT_MST1 == (CAN_TSTAT(can_periph) & CAN_TSTAT_MST1)){ + } + }else if(CAN_MAILBOX2 == mailbox_number){ + CAN_TSTAT(can_periph) |= CAN_TSTAT_MST2; + while(CAN_TSTAT_MST2 == (CAN_TSTAT(can_periph) & CAN_TSTAT_MST2)){ + } + }else{ + /* illegal parameters */ + } +} + +/*! + \brief CAN receive message + \param[in] can_periph + \arg CANx(x=0,1),the CAN1 only for GD32F10x_CL + \param[in] fifo_number + \arg CAN_FIFOx(x=0,1) + \param[out] receive_message: struct for CAN receive message + \arg rx_sfid: 0x00000000 - 0x000007FF + \arg rx_efid: 0x00000000 - 0x1FFFFFFF + \arg rx_ff: CAN_FF_STANDARD, CAN_FF_EXTENDED + \arg rx_ft: CAN_FT_DATA, CAN_FT_REMOTE + \arg rx_dlen: 0 - 8 + \arg rx_data[]: 0x00 - 0xFF + \arg rx_fi: 0 - 27 + \retval none +*/ +void can_message_receive(uint32_t can_periph, uint8_t fifo_number, can_receive_message_struct* receive_message) +{ + /* get the frame format */ + receive_message->rx_ff = (uint8_t)(CAN_RFIFOMI_FF & CAN_RFIFOMI(can_periph, fifo_number)); + if(CAN_FF_STANDARD == receive_message->rx_ff){ + /* get standard identifier */ + receive_message->rx_sfid = (uint32_t)(GET_RFIFOMI_SFID(CAN_RFIFOMI(can_periph, fifo_number))); + }else{ + /* get extended identifier */ + receive_message->rx_efid = (uint32_t)(GET_RFIFOMI_EFID(CAN_RFIFOMI(can_periph, fifo_number))); + } + + /* get frame type */ + receive_message->rx_ft = (uint8_t)(CAN_RFIFOMI_FT & CAN_RFIFOMI(can_periph, fifo_number)); + /* filtering index */ + receive_message->rx_fi = (uint8_t)(GET_RFIFOMP_FI(CAN_RFIFOMP(can_periph, fifo_number))); + /* get recevie data length */ + receive_message->rx_dlen = (uint8_t)(GET_RFIFOMP_DLENC(CAN_RFIFOMP(can_periph, fifo_number))); + + /* receive data */ + receive_message -> rx_data[0] = (uint8_t)(GET_RFIFOMDATA0_DB0(CAN_RFIFOMDATA0(can_periph, fifo_number))); + receive_message -> rx_data[1] = (uint8_t)(GET_RFIFOMDATA0_DB1(CAN_RFIFOMDATA0(can_periph, fifo_number))); + receive_message -> rx_data[2] = (uint8_t)(GET_RFIFOMDATA0_DB2(CAN_RFIFOMDATA0(can_periph, fifo_number))); + receive_message -> rx_data[3] = (uint8_t)(GET_RFIFOMDATA0_DB3(CAN_RFIFOMDATA0(can_periph, fifo_number))); + receive_message -> rx_data[4] = (uint8_t)(GET_RFIFOMDATA1_DB4(CAN_RFIFOMDATA1(can_periph, fifo_number))); + receive_message -> rx_data[5] = (uint8_t)(GET_RFIFOMDATA1_DB5(CAN_RFIFOMDATA1(can_periph, fifo_number))); + receive_message -> rx_data[6] = (uint8_t)(GET_RFIFOMDATA1_DB6(CAN_RFIFOMDATA1(can_periph, fifo_number))); + receive_message -> rx_data[7] = (uint8_t)(GET_RFIFOMDATA1_DB7(CAN_RFIFOMDATA1(can_periph, fifo_number))); + + /* release FIFO */ + if(CAN_FIFO0 == fifo_number){ + CAN_RFIFO0(can_periph) |= CAN_RFIFO0_RFD0; + }else{ + CAN_RFIFO1(can_periph) |= CAN_RFIFO1_RFD1; + } +} + +/*! + \brief release FIFO0 + \param[in] can_periph + \arg CANx(x=0,1),the CAN1 only for GD32F10x_CL + \param[in] fifo_number + only one parameter can be selected which is shown as below: + \arg CAN_FIFOx(x=0,1) + \param[out] none + \retval none +*/ +void can_fifo_release(uint32_t can_periph, uint8_t fifo_number) +{ + if(CAN_FIFO0 == fifo_number){ + CAN_RFIFO0(can_periph) |= CAN_RFIFO0_RFD0; + }else if(CAN_FIFO1 == fifo_number){ + CAN_RFIFO1(can_periph) |= CAN_RFIFO1_RFD1; + }else{ + /* illegal parameters */ + CAN_ERROR_HANDLE("CAN FIFO NUM is invalid \r\n"); + } +} + +/*! + \brief CAN receive message length + \param[in] can_periph + \arg CANx(x=0,1),the CAN1 only for GD32F10x_CL + \param[in] fifo_number + only one parameter can be selected which is shown as below: + \arg CAN_FIFOx(x=0,1) + \param[out] none + \retval message length +*/ +uint8_t can_receive_message_length_get(uint32_t can_periph, uint8_t fifo_number) +{ + uint8_t val = 0U; + + if(CAN_FIFO0 == fifo_number){ + /* FIFO0 */ + val = (uint8_t)(CAN_RFIFO0(can_periph) & CAN_RFIF_RFL_MASK); + }else if(CAN_FIFO1 == fifo_number){ + /* FIFO1 */ + val = (uint8_t)(CAN_RFIFO1(can_periph) & CAN_RFIF_RFL_MASK); + }else{ + /* illegal parameters */ + } + return val; +} + +/*! + \brief set CAN working mode + \param[in] can_periph + \arg CANx(x=0,1),the CAN1 only for GD32F10x_CL + \param[in] can_working_mode + only one parameter can be selected which is shown as below: + \arg CAN_MODE_INITIALIZE + \arg CAN_MODE_NORMAL + \arg CAN_MODE_SLEEP + \param[out] none + \retval ErrStatus: SUCCESS or ERROR +*/ +ErrStatus can_working_mode_set(uint32_t can_periph, uint8_t working_mode) +{ + ErrStatus flag = ERROR; + /* timeout for IWS or also for SLPWS bits */ + uint32_t timeout = CAN_TIMEOUT; + + if(CAN_MODE_INITIALIZE == working_mode){ + /* disable sleep mode */ + CAN_CTL(can_periph) &= (~(uint32_t)CAN_CTL_SLPWMOD); + /* set initialize mode */ + CAN_CTL(can_periph) |= (uint8_t)CAN_CTL_IWMOD; + /* wait the acknowledge */ + while((CAN_STAT_IWS != (CAN_STAT(can_periph) & CAN_STAT_IWS)) && (0U != timeout)){ + timeout--; + } + if(CAN_STAT_IWS != (CAN_STAT(can_periph) & CAN_STAT_IWS)){ + flag = ERROR; + }else{ + flag = SUCCESS; + } + }else if(CAN_MODE_NORMAL == working_mode){ + /* enter normal mode */ + CAN_CTL(can_periph) &= ~(uint32_t)(CAN_CTL_SLPWMOD | CAN_CTL_IWMOD); + /* wait the acknowledge */ + while((0U != (CAN_STAT(can_periph) & (CAN_STAT_IWS | CAN_STAT_SLPWS))) && (0U != timeout)){ + timeout--; + } + if(0U != (CAN_STAT(can_periph) & (CAN_STAT_IWS | CAN_STAT_SLPWS))){ + flag = ERROR; + }else{ + flag = SUCCESS; + } + }else if(CAN_MODE_SLEEP == working_mode){ + /* disable initialize mode */ + CAN_CTL(can_periph) &= (~(uint32_t)CAN_CTL_IWMOD); + /* set sleep mode */ + CAN_CTL(can_periph) |= (uint8_t)CAN_CTL_SLPWMOD; + /* wait the acknowledge */ + while((CAN_STAT_SLPWS != (CAN_STAT(can_periph) & CAN_STAT_SLPWS)) && (0U != timeout)){ + timeout--; + } + if(CAN_STAT_SLPWS != (CAN_STAT(can_periph) & CAN_STAT_SLPWS)){ + flag = ERROR; + }else{ + flag = SUCCESS; + } + }else{ + flag = ERROR; + } + return flag; +} + +/*! + \brief wake up CAN + \param[in] can_periph + \arg CANx(x=0,1),the CAN1 only for GD32F10x_CL + \param[out] none + \retval ErrStatus: SUCCESS or ERROR +*/ +ErrStatus can_wakeup(uint32_t can_periph) +{ + ErrStatus flag = ERROR; + uint32_t timeout = CAN_TIMEOUT; + + /* wakeup */ + CAN_CTL(can_periph) &= ~CAN_CTL_SLPWMOD; + + while((0U != (CAN_STAT(can_periph) & CAN_STAT_SLPWS)) && (0x00U != timeout)){ + timeout--; + } + /* check state */ + if(0U != (CAN_STAT(can_periph) & CAN_STAT_SLPWS)){ + flag = ERROR; + }else{ + flag = SUCCESS; + } + return flag; +} + +/*! + \brief get CAN error type + \param[in] can_periph + \arg CANx(x=0,1),the CAN1 only for GD32F10x_CL + \param[out] none + \retval can_error_enum + \arg CAN_ERROR_NONE: no error + \arg CAN_ERROR_FILL: fill error + \arg CAN_ERROR_FORMATE: format error + \arg CAN_ERROR_ACK: ACK error + \arg CAN_ERROR_BITRECESSIVE: bit recessive + \arg CAN_ERROR_BITDOMINANTER: bit dominant error + \arg CAN_ERROR_CRC: CRC error + \arg CAN_ERROR_SOFTWARECFG: software configure +*/ +can_error_enum can_error_get(uint32_t can_periph) +{ + can_error_enum error; + error = CAN_ERROR_NONE; + + /* get error type */ + error = (can_error_enum)(GET_ERR_ERRN(CAN_ERR(can_periph))); + return error; +} + +/*! + \brief get CAN receive error number + \param[in] can_periph + \arg CANx(x=0,1),the CAN1 only for GD32F10x_CL + \param[out] none + \retval error number +*/ +uint8_t can_receive_error_number_get(uint32_t can_periph) +{ + uint8_t val; + + /* get error count */ + val = (uint8_t)(GET_ERR_RECNT(CAN_ERR(can_periph))); + return val; +} + +/*! + \brief get CAN transmit error number + \param[in] can_periph + \arg CANx(x=0,1),the CAN1 only for GD32F10x_CL + \param[out] none + \retval error number +*/ +uint8_t can_transmit_error_number_get(uint32_t can_periph) +{ + uint8_t val; + + val = (uint8_t)(GET_ERR_TECNT(CAN_ERR(can_periph))); + return val; +} + +/*! + \brief enable CAN interrupt + \param[in] can_periph + \arg CANx(x=0,1),the CAN1 only for GD32F10x_CL + \param[in] interrupt + one or more parameters can be selected which are shown as below: + \arg CAN_INT_TME: transmit mailbox empty interrupt enable + \arg CAN_INT_RFNE0: receive FIFO0 not empty interrupt enable + \arg CAN_INT_RFF0: receive FIFO0 full interrupt enable + \arg CAN_INT_RFO0: receive FIFO0 overfull interrupt enable + \arg CAN_INT_RFNE1: receive FIFO1 not empty interrupt enable + \arg CAN_INT_RFF1: receive FIFO1 full interrupt enable + \arg CAN_INT_RFO1: receive FIFO1 overfull interrupt enable + \arg CAN_INT_WERR: warning error interrupt enable + \arg CAN_INT_PERR: passive error interrupt enable + \arg CAN_INT_BO: bus-off interrupt enable + \arg CAN_INT_ERRN: error number interrupt enable + \arg CAN_INT_ERR: error interrupt enable + \arg CAN_INT_WAKEUP: wakeup interrupt enable + \arg CAN_INT_SLPW: sleep working interrupt enable + \param[out] none + \retval none +*/ +void can_interrupt_enable(uint32_t can_periph, uint32_t interrupt) +{ + CAN_INTEN(can_periph) |= interrupt; +} + +/*! + \brief disable CAN interrupt + \param[in] can_periph + \arg CANx(x=0,1),the CAN1 only for GD32F10x_CL + \param[in] interrupt + one or more parameters can be selected which are shown as below: + \arg CAN_INT_TME: transmit mailbox empty interrupt enable + \arg CAN_INT_RFNE0: receive FIFO0 not empty interrupt enable + \arg CAN_INT_RFF0: receive FIFO0 full interrupt enable + \arg CAN_INT_RFO0: receive FIFO0 overfull interrupt enable + \arg CAN_INT_RFNE1: receive FIFO1 not empty interrupt enable + \arg CAN_INT_RFF1: receive FIFO1 full interrupt enable + \arg CAN_INT_RFO1: receive FIFO1 overfull interrupt enable + \arg CAN_INT_WERR: warning error interrupt enable + \arg CAN_INT_PERR: passive error interrupt enable + \arg CAN_INT_BO: bus-off interrupt enable + \arg CAN_INT_ERRN: error number interrupt enable + \arg CAN_INT_ERR: error interrupt enable + \arg CAN_INT_WAKEUP: wakeup interrupt enable + \arg CAN_INT_SLPW: sleep working interrupt enable + \param[out] none + \retval none +*/ +void can_interrupt_disable(uint32_t can_periph, uint32_t interrupt) +{ + CAN_INTEN(can_periph) &= ~interrupt; +} + +/*! + \brief get CAN flag state + \param[in] can_periph + \arg CANx(x=0,1),the CAN1 only for GD32F10x_CL + \param[in] flag: CAN flags, refer to can_flag_enum + only one parameter can be selected which is shown as below: + \arg CAN_FLAG_RXL: RX level + \arg CAN_FLAG_LASTRX: last sample value of RX pin + \arg CAN_FLAG_RS: receiving state + \arg CAN_FLAG_TS: transmitting state + \arg CAN_FLAG_SLPIF: status change flag of entering sleep working mode + \arg CAN_FLAG_WUIF: status change flag of wakeup from sleep working mode + \arg CAN_FLAG_ERRIF: error flag + \arg CAN_FLAG_SLPWS: sleep working state + \arg CAN_FLAG_IWS: initial working state + \arg CAN_FLAG_TMLS2: transmit mailbox 2 last sending in Tx FIFO + \arg CAN_FLAG_TMLS1: transmit mailbox 1 last sending in Tx FIFO + \arg CAN_FLAG_TMLS0: transmit mailbox 0 last sending in Tx FIFO + \arg CAN_FLAG_TME2: transmit mailbox 2 empty + \arg CAN_FLAG_TME1: transmit mailbox 1 empty + \arg CAN_FLAG_TME0: transmit mailbox 0 empty + \arg CAN_FLAG_MTE2: mailbox 2 transmit error + \arg CAN_FLAG_MTE1: mailbox 1 transmit error + \arg CAN_FLAG_MTE0: mailbox 0 transmit error + \arg CAN_FLAG_MAL2: mailbox 2 arbitration lost + \arg CAN_FLAG_MAL1: mailbox 1 arbitration lost + \arg CAN_FLAG_MAL0: mailbox 0 arbitration lost + \arg CAN_FLAG_MTFNERR2: mailbox 2 transmit finished with no error + \arg CAN_FLAG_MTFNERR1: mailbox 1 transmit finished with no error + \arg CAN_FLAG_MTFNERR0: mailbox 0 transmit finished with no error + \arg CAN_FLAG_MTF2: mailbox 2 transmit finished + \arg CAN_FLAG_MTF1: mailbox 1 transmit finished + \arg CAN_FLAG_MTF0: mailbox 0 transmit finished + \arg CAN_FLAG_RFO0: receive FIFO0 overfull + \arg CAN_FLAG_RFF0: receive FIFO0 full + \arg CAN_FLAG_RFO1: receive FIFO1 overfull + \arg CAN_FLAG_RFF1: receive FIFO1 full + \arg CAN_FLAG_BOERR: bus-off error + \arg CAN_FLAG_PERR: passive error + \arg CAN_FLAG_WERR: warning error + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus can_flag_get(uint32_t can_periph, can_flag_enum flag) +{ + /* get flag and interrupt enable state */ + if(RESET != (CAN_REG_VAL(can_periph, flag) & BIT(CAN_BIT_POS(flag)))){ + return SET; + }else{ + return RESET; + } +} + +/*! + \brief clear CAN flag state + \param[in] can_periph + \arg CANx(x=0,1),the CAN1 only for GD32F10x_CL + \param[in] flag: CAN flags, refer to can_flag_enum + only one parameter can be selected which is shown as below: + \arg CAN_FLAG_SLPIF: status change flag of entering sleep working mode + \arg CAN_FLAG_WUIF: status change flag of wakeup from sleep working mode + \arg CAN_FLAG_ERRIF: error flag + \arg CAN_FLAG_MTE2: mailbox 2 transmit error + \arg CAN_FLAG_MTE1: mailbox 1 transmit error + \arg CAN_FLAG_MTE0: mailbox 0 transmit error + \arg CAN_FLAG_MAL2: mailbox 2 arbitration lost + \arg CAN_FLAG_MAL1: mailbox 1 arbitration lost + \arg CAN_FLAG_MAL0: mailbox 0 arbitration lost + \arg CAN_FLAG_MTFNERR2: mailbox 2 transmit finished with no error + \arg CAN_FLAG_MTFNERR1: mailbox 1 transmit finished with no error + \arg CAN_FLAG_MTFNERR0: mailbox 0 transmit finished with no error + \arg CAN_FLAG_MTF2: mailbox 2 transmit finished + \arg CAN_FLAG_MTF1: mailbox 1 transmit finished + \arg CAN_FLAG_MTF0: mailbox 0 transmit finished + \arg CAN_FLAG_RFO0: receive FIFO0 overfull + \arg CAN_FLAG_RFF0: receive FIFO0 full + \arg CAN_FLAG_RFO1: receive FIFO1 overfull + \arg CAN_FLAG_RFF1: receive FIFO1 full + \param[out] none + \retval none +*/ +void can_flag_clear(uint32_t can_periph, can_flag_enum flag) +{ + if (flag == CAN_FLAG_RFO1){ + CAN_REG_VAL(can_periph, flag) = RFO1_CLEAR_VAL; + } else if (flag == CAN_FLAG_RFF1){ + CAN_REG_VAL(can_periph, flag) = RFF1_CLEAR_VAL; + } else { + CAN_REG_VAL(can_periph, flag) = BIT(CAN_BIT_POS(flag)); + } +} + +/*! + \brief get CAN interrupt flag state + \param[in] can_periph + \arg CANx(x=0,1),the CAN1 only for GD32F10x_CL + \param[in] flag: CAN interrupt flags, refer to can_interrupt_flag_enum + only one parameter can be selected which is shown as below: + \arg CAN_INT_FLAG_SLPIF: status change interrupt flag of sleep working mode entering + \arg CAN_INT_FLAG_WUIF: status change interrupt flag of wakeup from sleep working mode + \arg CAN_INT_FLAG_ERRIF: error interrupt flag + \arg CAN_INT_FLAG_MTF2: mailbox 2 transmit finished interrupt flag + \arg CAN_INT_FLAG_MTF1: mailbox 1 transmit finished interrupt flag + \arg CAN_INT_FLAG_MTF0: mailbox 0 transmit finished interrupt flag + \arg CAN_INT_FLAG_RFO0: receive FIFO0 overfull interrupt flag + \arg CAN_INT_FLAG_RFF0: receive FIFO0 full interrupt flag + \arg CAN_INT_FLAG_RFL0: receive FIFO0 not empty interrupt flag + \arg CAN_INT_FLAG_RFO1: receive FIFO1 overfull interrupt flag + \arg CAN_INT_FLAG_RFF1: receive FIFO1 full interrupt flag + \arg CAN_INT_FLAG_RFL1: receive FIFO1 not empty interrupt flag + \arg CAN_INT_FLAG_ERRN: error number interrupt flag + \arg CAN_INT_FLAG_BOERR: bus-off error interrupt flag + \arg CAN_INT_FLAG_PERR: passive error interrupt flag + \arg CAN_INT_FLAG_WERR: warning error interrupt flag + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus can_interrupt_flag_get(uint32_t can_periph, can_interrupt_flag_enum flag) +{ + uint32_t ret1 = RESET; + uint32_t ret2 = RESET; + + /* get the staus of interrupt flag */ + if (flag == CAN_INT_FLAG_RFL0) { + ret1 = can_receive_message_length_get(can_periph, CAN_FIFO0); + } else if (flag == CAN_INT_FLAG_RFL1) { + ret1 = can_receive_message_length_get(can_periph, CAN_FIFO1); + } else if (flag == CAN_INT_FLAG_ERRN) { + ret1 = can_error_get(can_periph); + } else { + ret1 = CAN_REG_VALS(can_periph, flag) & BIT(CAN_BIT_POS0(flag)); + } + /* get the staus of interrupt enale bit */ + ret2 = CAN_INTEN(can_periph) & BIT(CAN_BIT_POS1(flag)); + if(ret1 && ret2){ + return SET; + }else{ + return RESET; + } +} + +/*! + \brief clear CAN interrupt flag state + \param[in] can_periph + \arg CANx(x=0,1),the CAN1 only for GD32F10x_CL + \param[in] flag: CAN interrupt flags, refer to can_interrupt_flag_enum + only one parameter can be selected which is shown as below: + \arg CAN_INT_FLAG_SLPIF: status change interrupt flag of sleep working mode entering + \arg CAN_INT_FLAG_WUIF: status change interrupt flag of wakeup from sleep working mode + \arg CAN_INT_FLAG_ERRIF: error interrupt flag + \arg CAN_INT_FLAG_MTF2: mailbox 2 transmit finished interrupt flag + \arg CAN_INT_FLAG_MTF1: mailbox 1 transmit finished interrupt flag + \arg CAN_INT_FLAG_MTF0: mailbox 0 transmit finished interrupt flag + \arg CAN_INT_FLAG_RFO0: receive FIFO0 overfull interrupt flag + \arg CAN_INT_FLAG_RFF0: receive FIFO0 full interrupt flag + \arg CAN_INT_FLAG_RFO1: receive FIFO1 overfull interrupt flag + \arg CAN_INT_FLAG_RFF1: receive FIFO1 full interrupt flag + \param[out] none + \retval none +*/ +void can_interrupt_flag_clear(uint32_t can_periph, can_interrupt_flag_enum flag) +{ + if (flag == CAN_INT_FLAG_RFO1){ + CAN_REG_VALS(can_periph, flag) = RFO1_CLEAR_VAL; + } else if (flag == CAN_INT_FLAG_RFF1){ + CAN_REG_VALS(can_periph, flag) = RFF1_CLEAR_VAL; + } else { + CAN_REG_VALS(can_periph, flag) = BIT(CAN_BIT_POS0(flag)); + } +} diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_crc.c b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_crc.c new file mode 100644 index 0000000..17fe26d --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_crc.c @@ -0,0 +1,127 @@ +/*! + \file gd32f10x_crc.c + \brief CRC driver + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#include "gd32f10x_crc.h" + +#define CRC_DATA_RESET_VALUE ((uint32_t)0xFFFFFFFFU) +#define CRC_FDATA_RESET_VALUE ((uint32_t)0x00000000U) + +/*! + \brief deinit CRC calculation unit + \param[in] none + \param[out] none + \retval none +*/ +void crc_deinit(void) +{ + CRC_DATA = CRC_DATA_RESET_VALUE; + CRC_FDATA = CRC_FDATA_RESET_VALUE; + CRC_CTL = (uint32_t)CRC_CTL_RST; +} + +/*! + \brief reset data register to the value of initializaiton data register + \param[in] none + \param[out] none + \retval none +*/ +void crc_data_register_reset(void) +{ + CRC_CTL |= (uint32_t)CRC_CTL_RST; +} + +/*! + \brief read the value of the data register + \param[in] none + \param[out] none + \retval 32-bit value of the data register +*/ +uint32_t crc_data_register_read(void) +{ + uint32_t data; + data = CRC_DATA; + return (data); +} + +/*! + \brief read the value of the free data register + \param[in] none + \param[out] none + \retval 8-bit value of the free data register +*/ +uint8_t crc_free_data_register_read(void) +{ + uint8_t fdata; + fdata = (uint8_t)CRC_FDATA; + return (fdata); +} + +/*! + \brief write data to the free data register + \param[in] free_data: specify 8-bit data + \param[out] none + \retval none +*/ +void crc_free_data_register_write(uint8_t free_data) +{ + CRC_FDATA = (uint32_t)free_data; +} + +/*! + \brief calculate the CRC value of a 32-bit data + \param[in] sdata: specified 32-bit data + \param[out] none + \retval 32-bit value calculated by CRC +*/ +uint32_t crc_single_data_calculate(uint32_t sdata) +{ + CRC_DATA = sdata; + return (CRC_DATA); +} + +/*! + \brief calculate the CRC value of an array of 32-bit values + \param[in] array: pointer to an array of 32-bit values + \param[in] size: size of the array + \param[out] none + \retval 32-bit value calculated by CRC +*/ +uint32_t crc_block_data_calculate(uint32_t array[], uint32_t size) +{ + uint32_t index; + for(index = 0U; index < size; index++){ + CRC_DATA = array[index]; + } + return (CRC_DATA); +} diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_dac.c b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_dac.c new file mode 100644 index 0000000..b636d54 --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_dac.c @@ -0,0 +1,540 @@ +/*! + \file gd32f10x_dac.c + \brief DAC driver + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#include "gd32f10x_dac.h" + +/* DAC register bit offset */ +#define OUT1_REG_OFFSET ((uint32_t)0x00000010U) +#define DH_12BIT_OFFSET ((uint32_t)0x00000010U) +#define DH_8BIT_OFFSET ((uint32_t)0x00000008U) + +/*! + \brief deinitialize DAC + \param[in] dac_periph: DACx(x=0) + \param[out] none + \retval none +*/ +void dac_deinit(uint32_t dac_periph) +{ + switch(dac_periph){ + case DAC0: + /* reset DAC0 */ + rcu_periph_reset_enable(RCU_DACRST); + rcu_periph_reset_disable(RCU_DACRST); + break; + default: + break; + } +} + +/*! + \brief enable DAC + \param[in] dac_periph: DACx(x=0) + \param[in] dac_out: DAC_OUTx(x=0,1) + \param[out] none + \retval none +*/ +void dac_enable(uint32_t dac_periph, uint8_t dac_out) +{ + if(DAC_OUT0 == dac_out){ + DAC_CTL0(dac_periph) |= (uint32_t)DAC_CTL0_DEN0; + }else if(DAC_OUT1 == dac_out){ + DAC_CTL0(dac_periph) |= (uint32_t)DAC_CTL0_DEN1; + }else{ + /* illegal parameters */ + } +} + +/*! + \brief disable DAC + \param[in] dac_periph: DACx(x=0) + \param[in] dac_out: DAC_OUTx(x=0,1) + \param[out] none + \retval none +*/ +void dac_disable(uint32_t dac_periph, uint8_t dac_out) +{ + if(DAC_OUT0 == dac_out){ + DAC_CTL0(dac_periph) &= (uint32_t)(~DAC_CTL0_DEN0); + }else if(DAC_OUT1 == dac_out){ + DAC_CTL0(dac_periph) &= (uint32_t)(~DAC_CTL0_DEN1); + }else{ + /* illegal parameters */ + } +} + +/*! + \brief enable DAC DMA function + \param[in] dac_periph: DACx(x=0) + \param[in] dac_out: DAC_OUTx(x=0,1) + \param[out] none + \retval none +*/ +void dac_dma_enable(uint32_t dac_periph, uint8_t dac_out) +{ + if(DAC_OUT0 == dac_out){ + DAC_CTL0(dac_periph) |= (uint32_t)DAC_CTL0_DDMAEN0; + }else if(DAC_OUT1 == dac_out){ + DAC_CTL0(dac_periph) |= (uint32_t)DAC_CTL0_DDMAEN1; + }else{ + /* illegal parameters */ + } +} + +/*! + \brief disable DAC DMA function + \param[in] dac_periph: DACx(x=0) + \param[in] dac_out: DAC_OUTx(x=0,1) + \param[out] none + \retval none +*/ +void dac_dma_disable(uint32_t dac_periph, uint8_t dac_out) +{ + if(DAC_OUT0 == dac_out){ + DAC_CTL0(dac_periph) &= (uint32_t)(~DAC_CTL0_DDMAEN0); + }else if(DAC_OUT1 == dac_out){ + DAC_CTL0(dac_periph) &= (uint32_t)(~DAC_CTL0_DDMAEN1); + }else{ + /* illegal parameters */ + } +} + +/*! + \brief enable DAC output buffer + \param[in] dac_periph: DACx(x=0) + \param[in] dac_out: DAC_OUTx(x=0,1) + \param[out] none + \retval none +*/ +void dac_output_buffer_enable(uint32_t dac_periph, uint8_t dac_out) +{ + if(DAC_OUT0 == dac_out){ + DAC_CTL0(dac_periph) &= (uint32_t)(~DAC_CTL0_DBOFF0); + }else if(DAC_OUT1 == dac_out){ + DAC_CTL0(dac_periph) &= (uint32_t)(~DAC_CTL0_DBOFF1); + }else{ + /* illegal parameters */ + } +} + +/*! + \brief disable DAC output buffer + \param[in] dac_periph: DACx(x=0) + \param[in] dac_out: DAC_OUTx(x=0,1) + \param[out] none + \retval none +*/ +void dac_output_buffer_disable(uint32_t dac_periph, uint8_t dac_out) +{ + if(DAC_OUT0 == dac_out){ + DAC_CTL0(dac_periph) |= (uint32_t)DAC_CTL0_DBOFF0; + }else if(DAC_OUT1 == dac_out){ + DAC_CTL0(dac_periph) |= (uint32_t)DAC_CTL0_DBOFF1; + }else{ + /* illegal parameters */ + } +} + +/*! + \brief get DAC output value + \param[in] dac_periph: DACx(x=0) + \param[in] dac_out: DAC_OUTx(x=0,1) + \param[out] none + \retval DAC output data: 0~4095 +*/ +uint16_t dac_output_value_get(uint32_t dac_periph, uint8_t dac_out) +{ + uint16_t data = 0U; + + if(DAC_OUT0 == dac_out){ + /* store the DACx_OUT0 output value */ + data = (uint16_t)DAC_OUT0_DO(dac_periph); + }else if(DAC_OUT1 == dac_out){ + /* store the DACx_OUT1 output value */ + data = (uint16_t)DAC_OUT1_DO(dac_periph); + }else{ + /* illegal parameters */ + } + + return data; +} + +/*! + \brief set DAC data holding register value + \param[in] dac_periph: DACx(x=0) + \param[in] dac_out: DAC_OUTx(x=0,1) + \param[in] dac_align: DAC data alignment mode + only one parameter can be selected which is shown as below: + \arg DAC_ALIGN_12B_R: 12-bit right-aligned data + \arg DAC_ALIGN_12B_L: 12-bit left-aligned data + \arg DAC_ALIGN_8B_R: 8-bit right-aligned data + \param[in] data: data to be loaded(0~4095) + \param[out] none + \retval none +*/ +void dac_data_set(uint32_t dac_periph, uint8_t dac_out, uint32_t dac_align, uint16_t data) +{ + /* DAC_OUT0 data alignment */ + if(DAC_OUT0 == dac_out){ + switch(dac_align){ + /* 12-bit right-aligned data */ + case DAC_ALIGN_12B_R: + DAC_OUT0_R12DH(dac_periph) = data; + break; + /* 12-bit left-aligned data */ + case DAC_ALIGN_12B_L: + DAC_OUT0_L12DH(dac_periph) = data; + break; + /* 8-bit right-aligned data */ + case DAC_ALIGN_8B_R: + DAC_OUT0_R8DH(dac_periph) = data; + break; + default: + break; + } + }else if(DAC_OUT1 == dac_out){ + /* DAC_OUT1 data alignment */ + switch(dac_align){ + /* 12-bit right-aligned data */ + case DAC_ALIGN_12B_R: + DAC_OUT1_R12DH(dac_periph) = data; + break; + /* 12-bit left-aligned data */ + case DAC_ALIGN_12B_L: + DAC_OUT1_L12DH(dac_periph) = data; + break; + /* 8-bit right-aligned data */ + case DAC_ALIGN_8B_R: + DAC_OUT1_R8DH(dac_periph) = data; + break; + default: + break; + } + }else{ + /* illegal parameters */ + } +} + +/*! + \brief enable DAC trigger + \param[in] dac_periph: DACx(x=0) + \param[in] dac_out: DAC_OUTx(x=0,1) + \param[out] none + \retval none +*/ +void dac_trigger_enable(uint32_t dac_periph, uint8_t dac_out) +{ + if(DAC_OUT0 == dac_out){ + DAC_CTL0(dac_periph) |= (uint32_t)DAC_CTL0_DTEN0; + }else if(DAC_OUT1 == dac_out){ + DAC_CTL0(dac_periph) |= (uint32_t)DAC_CTL0_DTEN1; + }else{ + /* illegal parameters */ + } +} + +/*! + \brief disable DAC trigger + \param[in] dac_periph: DACx(x=0) + \param[in] dac_out: DAC_OUTx(x=0,1) + \param[out] none + \retval none +*/ +void dac_trigger_disable(uint32_t dac_periph, uint8_t dac_out) +{ + if(DAC_OUT0 == dac_out){ + DAC_CTL0(dac_periph) &= (uint32_t)(~DAC_CTL0_DTEN0); + }else if(DAC_OUT1 == dac_out){ + DAC_CTL0(dac_periph) &= (uint32_t)(~DAC_CTL0_DTEN1); + }else{ + /* illegal parameters */ + } +} + +/*! + \brief configure DAC trigger source + \param[in] dac_periph: DACx(x=0) + \param[in] dac_out: DAC_OUTx(x=0,1) + \param[in] triggersource: external trigger of DAC + only one parameter can be selected which is shown as below: + \arg DAC_TRIGGER_T5_TRGO: TIMER5 TRGO + \arg DAC_TRIGGER_T2_TRGO: TIMER2 TRGO, only for GD32F10X_CL devices + \arg DAC_TRIGGER_T7_TRGO: TIMER7 TRGO, only for GD32F10X_MD, GD32F10X_HD, GD32F10X_XD devices + \arg DAC_TRIGGER_T6_TRGO: TIMER6 TRGO + \arg DAC_TRIGGER_T4_TRGO: TIMER4 TRGO + \arg DAC_TRIGGER_T1_TRGO: TIMER1 TRGO + \arg DAC_TRIGGER_T3_TRGO: TIMER3 TRGO + \arg DAC_TRIGGER_EXTI_9: EXTI interrupt line9 event + \arg DAC_TRIGGER_SOFTWARE: software trigger + \param[out] none + \retval none +*/ +void dac_trigger_source_config(uint32_t dac_periph, uint8_t dac_out, uint32_t triggersource) +{ + if(DAC_OUT0 == dac_out){ + /* configure DACx_OUT0 trigger source */ + DAC_CTL0(dac_periph) &= (uint32_t)(~(DAC_CTL0_DTSEL0)); + DAC_CTL0(dac_periph) |= triggersource; + }else if(DAC_OUT1 == dac_out){ + /* configure DACx_OUT1 trigger source */ + DAC_CTL0(dac_periph) &= (uint32_t)(~(DAC_CTL0_DTSEL1)); + DAC_CTL0(dac_periph) |= (triggersource << OUT1_REG_OFFSET); + }else{ + /* illegal parameters */ + } +} + +/*! + \brief enable DAC software trigger + \param[in] dac_periph: DACx(x=0) + \param[in] dac_out: DAC_OUTx(x=0,1) + \retval none +*/ +void dac_software_trigger_enable(uint32_t dac_periph, uint8_t dac_out) +{ + if(DAC_OUT0 == dac_out){ + DAC_SWT(dac_periph) |= (uint32_t)DAC_SWT_SWTR0; + }else if(DAC_OUT1 == dac_out){ + DAC_SWT(dac_periph) |= (uint32_t)DAC_SWT_SWTR1; + }else{ + /* illegal parameters */ + } +} + +/*! + \brief configure DAC wave mode + \param[in] dac_periph: DACx(x=0) + \param[in] dac_out: DAC_OUTx(x=0,1) + \param[in] wave_mode: DAC wave mode + only one parameter can be selected which is shown as below: + \arg DAC_WAVE_DISABLE: wave mode disable + \arg DAC_WAVE_MODE_LFSR: LFSR noise mode + \arg DAC_WAVE_MODE_TRIANGLE: triangle noise mode + \param[out] none + \retval none +*/ +void dac_wave_mode_config(uint32_t dac_periph, uint8_t dac_out, uint32_t wave_mode) +{ + if(DAC_OUT0 == dac_out){ + /* configure DACx_OUT0 wave mode */ + DAC_CTL0(dac_periph) &= (uint32_t)(~DAC_CTL0_DWM0); + DAC_CTL0(dac_periph) |= wave_mode; + }else if(DAC_OUT1 == dac_out){ + /* configure DACx_OUT1 wave mode */ + DAC_CTL0(dac_periph) &= (uint32_t)(~DAC_CTL0_DWM1); + DAC_CTL0(dac_periph) |= (wave_mode << OUT1_REG_OFFSET); + }else{ + /* illegal parameters */ + } +} + +/*! + \brief configure DAC LFSR noise mode + \param[in] dac_periph: DACx(x=0) + \param[in] dac_out: DAC_OUTx(x=0,1) + \param[in] unmask_bits: LFSR noise unmask bits + only one parameter can be selected which is shown as below: + \arg DAC_LFSR_BIT0: unmask the LFSR bit0 + \arg DAC_LFSR_BITS1_0: unmask the LFSR bits[1:0] + \arg DAC_LFSR_BITS2_0: unmask the LFSR bits[2:0] + \arg DAC_LFSR_BITS3_0: unmask the LFSR bits[3:0] + \arg DAC_LFSR_BITS4_0: unmask the LFSR bits[4:0] + \arg DAC_LFSR_BITS5_0: unmask the LFSR bits[5:0] + \arg DAC_LFSR_BITS6_0: unmask the LFSR bits[6:0] + \arg DAC_LFSR_BITS7_0: unmask the LFSR bits[7:0] + \arg DAC_LFSR_BITS8_0: unmask the LFSR bits[8:0] + \arg DAC_LFSR_BITS9_0: unmask the LFSR bits[9:0] + \arg DAC_LFSR_BITS10_0: unmask the LFSR bits[10:0] + \arg DAC_LFSR_BITS11_0: unmask the LFSR bits[11:0] + \param[out] none + \retval none +*/ +void dac_lfsr_noise_config(uint32_t dac_periph, uint8_t dac_out, uint32_t unmask_bits) +{ + if(DAC_OUT0 == dac_out){ + /* configure DACx_OUT0 LFSR noise mode */ + DAC_CTL0(dac_periph) &= (uint32_t)(~DAC_CTL0_DWBW0); + DAC_CTL0(dac_periph) |= unmask_bits; + }else if(DAC_OUT1 == dac_out){ + /* configure DACx_OUT1 LFSR noise mode */ + DAC_CTL0(dac_periph) &= (uint32_t)(~DAC_CTL0_DWBW1); + DAC_CTL0(dac_periph) |= (unmask_bits << OUT1_REG_OFFSET); + }else{ + /* illegal parameters */ + } +} + +/*! + \brief configure DAC triangle noise mode + \param[in] dac_periph: DACx(x=0) + \param[in] dac_out: DAC_OUTx(x=0,1) + \param[in] amplitude: the amplitude of the triangle + only one parameter can be selected which is shown as below: + \arg DAC_TRIANGLE_AMPLITUDE_1: triangle amplitude is 1 + \arg DAC_TRIANGLE_AMPLITUDE_3: triangle amplitude is 3 + \arg DAC_TRIANGLE_AMPLITUDE_7: triangle amplitude is 7 + \arg DAC_TRIANGLE_AMPLITUDE_15: triangle amplitude is 15 + \arg DAC_TRIANGLE_AMPLITUDE_31: triangle amplitude is 31 + \arg DAC_TRIANGLE_AMPLITUDE_63: triangle amplitude is 63 + \arg DAC_TRIANGLE_AMPLITUDE_127: triangle amplitude is 127 + \arg DAC_TRIANGLE_AMPLITUDE_255: triangle amplitude is 255 + \arg DAC_TRIANGLE_AMPLITUDE_511: triangle amplitude is 511 + \arg DAC_TRIANGLE_AMPLITUDE_1023: triangle amplitude is 1023 + \arg DAC_TRIANGLE_AMPLITUDE_2047: triangle amplitude is 2047 + \arg DAC_TRIANGLE_AMPLITUDE_4095: triangle amplitude is 4095 + \param[out] none + \retval none +*/ +void dac_triangle_noise_config(uint32_t dac_periph, uint8_t dac_out, uint32_t amplitude) +{ + if(DAC_OUT0 == dac_out){ + /* configure DACx_OUT0 triangle noise mode */ + DAC_CTL0(dac_periph) &= (uint32_t)(~DAC_CTL0_DWBW0); + DAC_CTL0(dac_periph) |= amplitude; + }else if(DAC_OUT1 == dac_out){ + /* configure DACx_OUT1 triangle noise mode */ + DAC_CTL0(dac_periph) &= (uint32_t)(~DAC_CTL0_DWBW1); + DAC_CTL0(dac_periph) |= (amplitude << OUT1_REG_OFFSET); + }else{ + /* illegal parameters */ + } +} + +/*! + \brief enable DAC concurrent mode + \param[in] dac_periph: DACx(x=0) + \param[out] none + \retval none +*/ +void dac_concurrent_enable(uint32_t dac_periph) +{ + uint32_t ctl = 0U; + + ctl = (uint32_t)(DAC_CTL0_DEN0 | DAC_CTL0_DEN1); + DAC_CTL0(dac_periph) |= (uint32_t)ctl; +} + +/*! + \brief disable DAC concurrent mode + \param[in] dac_periph: DACx(x=0) + \param[out] none + \retval none +*/ +void dac_concurrent_disable(uint32_t dac_periph) +{ + uint32_t ctl = 0U; + + ctl = (uint32_t)(DAC_CTL0_DEN0 | DAC_CTL0_DEN1); + DAC_CTL0(dac_periph) &= (uint32_t)(~ctl); +} + +/*! + \brief enable DAC concurrent software trigger + \param[in] dac_periph: DACx(x=0) + \param[out] none + \retval none +*/ +void dac_concurrent_software_trigger_enable(uint32_t dac_periph) +{ + uint32_t swt = 0U; + + swt = (uint32_t)(DAC_SWT_SWTR0 | DAC_SWT_SWTR1); + DAC_SWT(dac_periph) |= (uint32_t)swt; +} + +/*! + \brief enable DAC concurrent buffer function + \param[in] dac_periph: DACx(x=0) + \param[out] none + \retval none +*/ +void dac_concurrent_output_buffer_enable(uint32_t dac_periph) +{ + uint32_t ctl = 0U; + + ctl = (uint32_t)(DAC_CTL0_DBOFF0 | DAC_CTL0_DBOFF1); + DAC_CTL0(dac_periph) &= (uint32_t)(~ctl); +} + +/*! + \brief disable DAC concurrent buffer function + \param[in] dac_periph: DACx(x=0) + \param[out] none + \retval none +*/ +void dac_concurrent_output_buffer_disable(uint32_t dac_periph) +{ + uint32_t ctl = 0U; + + ctl = (uint32_t)(DAC_CTL0_DBOFF0 | DAC_CTL0_DBOFF1); + DAC_CTL0(dac_periph) |= (uint32_t)ctl; +} + +/*! + \brief set DAC concurrent mode data holding register value + \param[in] dac_periph: DACx(x=0) + \param[in] dac_align: DAC data alignment mode + only one parameter can be selected which is shown as below: + \arg DAC_ALIGN_12B_R: 12-bit right-aligned data + \arg DAC_ALIGN_12B_L: 12-bit left-aligned data + \arg DAC_ALIGN_8B_R: 8-bit right-aligned data + \param[in] data0: data to be loaded(0~4095) + \param[in] data1: data to be loaded(0~4095) + \param[out] none + \retval none +*/ +void dac_concurrent_data_set(uint32_t dac_periph, uint32_t dac_align, uint16_t data0, uint16_t data1) +{ + uint32_t data = 0U; + + switch(dac_align){ + /* 12-bit right-aligned data */ + case DAC_ALIGN_12B_R: + data = (uint32_t)(((uint32_t)data1 << DH_12BIT_OFFSET) | data0); + DACC_R12DH(dac_periph) = (uint32_t)data; + break; + /* 12-bit left-aligned data */ + case DAC_ALIGN_12B_L: + data = (uint32_t)(((uint32_t)data1 << DH_12BIT_OFFSET) | data0); + DACC_L12DH(dac_periph) = (uint32_t)data; + break; + /* 8-bit right-aligned data */ + case DAC_ALIGN_8B_R: + data = (uint32_t)(((uint32_t)data1 << DH_8BIT_OFFSET) | data0); + DACC_R8DH(dac_periph) = (uint32_t)data; + break; + default: + break; + } +} diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_dbg.c b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_dbg.c new file mode 100644 index 0000000..5b236d3 --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_dbg.c @@ -0,0 +1,149 @@ +/*! + \file gd32f10x_dbg.c + \brief DBG driver + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#include "gd32f10x_dbg.h" + +/*! + \brief read DBG_ID code register + \param[in] none + \param[out] none + \retval DBG_ID code +*/ +uint32_t dbg_id_get(void) +{ + return DBG_ID; +} + +/*! + \brief enable low power behavior when the mcu is in debug mode + \param[in] dbg_low_power: + one or more parameters can be selected which are shown as below: + \arg DBG_LOW_POWER_SLEEP: keep debugger connection during sleep mode + \arg DBG_LOW_POWER_DEEPSLEEP: keep debugger connection during deepsleep mode + \arg DBG_LOW_POWER_STANDBY: keep debugger connection during standby mode + \param[out] none + \retval none +*/ +void dbg_low_power_enable(uint32_t dbg_low_power) +{ + DBG_CTL |= dbg_low_power; +} + +/*! + \brief disable low power behavior when the mcu is in debug mode + \param[in] dbg_low_power: + one or more parameters can be selected which are shown as below: + \arg DBG_LOW_POWER_SLEEP: donot keep debugger connection during sleep mode + \arg DBG_LOW_POWER_DEEPSLEEP: donot keep debugger connection during deepsleep mode + \arg DBG_LOW_POWER_STANDBY: donot keep debugger connection during standby mode + \param[out] none + \retval none +*/ +void dbg_low_power_disable(uint32_t dbg_low_power) +{ + DBG_CTL &= ~dbg_low_power; +} + +/*! + \brief enable peripheral behavior when the mcu is in debug mode + \param[in] dbg_periph: refer to dbg_periph_enum + one or more parameters can be selected which are shown as below: + \arg DBG_FWDGT_HOLD : debug FWDGT kept when core is halted + \arg DBG_WWDGT_HOLD : debug WWDGT kept when core is halted + \arg DBG_CANx_HOLD (x=0,1,CAN1 is only available for CL series): hold CANx counter when core is halted + \arg DBG_I2Cx_HOLD (x=0,1): hold I2Cx smbus when core is halted + \arg DBG_TIMERx_HOLD (x=0,1,2,3,4,5,6,7,8,9,10,11,12,13,TIMER8..13 are not available for HD series): hold TIMERx counter when core is halted + \param[out] none + \retval none +*/ +void dbg_periph_enable(dbg_periph_enum dbg_periph) +{ + DBG_CTL |= (uint32_t)dbg_periph; +} + +/*! + \brief disable peripheral behavior when the mcu is in debug mode + \param[in] dbg_periph: refer to dbg_periph_enum + one or more parameters can be selected which are shown as below: + \arg DBG_FWDGT_HOLD : debug FWDGT kept when core is halted + \arg DBG_WWDGT_HOLD : debug WWDGT kept when core is halted + \arg DBG_CANx_HOLD (x=0,1,CAN1 is only available for CL series): hold CAN0 counter when core is halted + \arg DBG_I2Cx_HOLD (x=0,1): hold I2Cx smbus when core is halted + \arg DBG_TIMERx_HOLD (x=0,1,2,3,4,5,6,7,8,9,10,11,12,13,TIMER8..13 are only available for XD and CL series): hold TIMERx counter when core is halted + \param[out] none + \retval none +*/ +void dbg_periph_disable(dbg_periph_enum dbg_periph) +{ + DBG_CTL &= ~(uint32_t)dbg_periph; +} + +/*! + \brief enable trace pin assignment + \param[in] none + \param[out] none + \retval none +*/ +void dbg_trace_pin_enable(void) +{ + DBG_CTL |= DBG_CTL_TRACE_IOEN; +} + +/*! + \brief disable trace pin assignment + \param[in] none + \param[out] none + \retval none +*/ +void dbg_trace_pin_disable(void) +{ + DBG_CTL &= ~DBG_CTL_TRACE_IOEN; +} + +/*! + \brief trace pin mode selection + \param[in] trace_mode: + only one parameter can be selected which is shown as below: + \arg TRACE_MODE_ASYNC: trace pin used for async mode + \arg TRACE_MODE_SYNC_DATASIZE_1: trace pin used for sync mode and data size is 1 + \arg TRACE_MODE_SYNC_DATASIZE_2: trace pin used for sync mode and data size is 2 + \arg TRACE_MODE_SYNC_DATASIZE_4: trace pin used for sync mode and data size is 4 + \param[out] none + \retval none +*/ +void dbg_trace_pin_mode_set(uint32_t trace_mode) +{ + DBG_CTL &= ~DBG_CTL_TRACE_MODE; + DBG_CTL |= trace_mode; +} diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_dma.c b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_dma.c new file mode 100644 index 0000000..8219744 --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_dma.c @@ -0,0 +1,733 @@ +/*! + \file gd32f10x_dma.c + \brief DMA driver + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#include "gd32f10x_dma.h" + +#define DMA_WRONG_HANDLE while(1){} + + /* check whether peripheral matches channels or not */ +static ErrStatus dma_periph_and_channel_check(uint32_t dma_periph, dma_channel_enum channelx); + +/*! + \brief deinitialize DMA a channel registers + \param[in] dma_periph: DMAx(x=0,1) + \arg DMAx(x=0,1) + \param[in] channelx: specify which DMA channel is deinitialized + only one parameter can be selected which is shown as below: + \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4) + \param[out] none + \retval none +*/ +void dma_deinit(uint32_t dma_periph, dma_channel_enum channelx) +{ + if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){ + DMA_WRONG_HANDLE + } + + /* disable DMA a channel */ + DMA_CHCTL(dma_periph, channelx) &= ~DMA_CHXCTL_CHEN; + /* reset DMA channel registers */ + DMA_CHCTL(dma_periph, channelx) = DMA_CHCTL_RESET_VALUE; + DMA_CHCNT(dma_periph, channelx) = DMA_CHCNT_RESET_VALUE; + DMA_CHPADDR(dma_periph, channelx) = DMA_CHPADDR_RESET_VALUE; + DMA_CHMADDR(dma_periph, channelx) = DMA_CHMADDR_RESET_VALUE; + DMA_INTC(dma_periph) |= DMA_FLAG_ADD(DMA_CHINTF_RESET_VALUE, channelx); +} + +/*! + \brief initialize the parameters of DMA struct with the default values + \param[in] init_struct: the initialization data needed to initialize DMA channel + \param[out] none + \retval none +*/ +void dma_struct_para_init(dma_parameter_struct* init_struct) +{ + /* set the DMA struct with the default values */ + init_struct->periph_addr = 0U; + init_struct->periph_width = 0U; + init_struct->periph_inc = DMA_PERIPH_INCREASE_DISABLE; + init_struct->memory_addr = 0U; + init_struct->memory_width = 0U; + init_struct->memory_inc = DMA_MEMORY_INCREASE_DISABLE; + init_struct->number = 0U; + init_struct->direction = DMA_PERIPHERAL_TO_MEMORY; + init_struct->priority = DMA_PRIORITY_LOW; +} + +/*! + \brief initialize DMA channel + \param[in] dma_periph: DMAx(x=0,1) + \arg DMAx(x=0,1) + \param[in] channelx: specify which DMA channel is initialized + only one parameter can be selected which is shown as below: + \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4) + \param[in] init_struct: the data needed to initialize DMA channel + periph_addr: peripheral base address + periph_width: DMA_PERIPHERAL_WIDTH_8BIT, DMA_PERIPHERAL_WIDTH_16BIT, DMA_PERIPHERAL_WIDTH_32BIT + periph_inc: DMA_PERIPH_INCREASE_ENABLE, DMA_PERIPH_INCREASE_DISABLE + memory_addr: memory base address + memory_width: DMA_MEMORY_WIDTH_8BIT, DMA_MEMORY_WIDTH_16BIT, DMA_MEMORY_WIDTH_32BIT + memory_inc: DMA_MEMORY_INCREASE_ENABLE, DMA_MEMORY_INCREASE_DISABLE + direction: DMA_PERIPHERAL_TO_MEMORY, DMA_MEMORY_TO_PERIPHERAL + number: the number of remaining data to be transferred by the DMA + priority: DMA_PRIORITY_LOW, DMA_PRIORITY_MEDIUM, DMA_PRIORITY_HIGH, DMA_PRIORITY_ULTRA_HIGH + \param[out] none + \retval none +*/ +void dma_init(uint32_t dma_periph, dma_channel_enum channelx, dma_parameter_struct *init_struct) +{ + uint32_t ctl; + + if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){ + DMA_WRONG_HANDLE + } + + /* configure peripheral base address */ + DMA_CHPADDR(dma_periph, channelx) = init_struct->periph_addr; + + /* configure memory base address */ + DMA_CHMADDR(dma_periph, channelx) = init_struct->memory_addr; + + /* configure the number of remaining data to be transferred */ + DMA_CHCNT(dma_periph, channelx) = (init_struct->number & DMA_CHANNEL_CNT_MASK); + + /* configure peripheral transfer width,memory transfer width, */ + ctl = DMA_CHCTL(dma_periph, channelx); + ctl &= ~(DMA_CHXCTL_PWIDTH | DMA_CHXCTL_MWIDTH | DMA_CHXCTL_PRIO); + ctl |= (init_struct->periph_width | init_struct->memory_width | init_struct->priority); + DMA_CHCTL(dma_periph, channelx) = ctl; + + /* configure peripheral increasing mode */ + if(DMA_PERIPH_INCREASE_ENABLE == init_struct->periph_inc){ + DMA_CHCTL(dma_periph, channelx) |= DMA_CHXCTL_PNAGA; + }else{ + DMA_CHCTL(dma_periph, channelx) &= ~DMA_CHXCTL_PNAGA; + } + + /* configure memory increasing mode */ + if(DMA_MEMORY_INCREASE_ENABLE == init_struct->memory_inc){ + DMA_CHCTL(dma_periph, channelx) |= DMA_CHXCTL_MNAGA; + }else{ + DMA_CHCTL(dma_periph, channelx) &= ~DMA_CHXCTL_MNAGA; + } + + /* configure the direction of data transfer */ + if(DMA_PERIPHERAL_TO_MEMORY == init_struct->direction){ + DMA_CHCTL(dma_periph, channelx) &= ~DMA_CHXCTL_DIR; + }else{ + DMA_CHCTL(dma_periph, channelx) |= DMA_CHXCTL_DIR; + } +} + +/*! + \brief enable DMA circulation mode + \param[in] dma_periph: DMAx(x=0,1) + \arg DMAx(x=0,1) + \param[in] channelx: specify which DMA channel + only one parameter can be selected which is shown as below: + \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4) + \param[out] none + \retval none +*/ +void dma_circulation_enable(uint32_t dma_periph, dma_channel_enum channelx) +{ + if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){ + DMA_WRONG_HANDLE + } + + DMA_CHCTL(dma_periph, channelx) |= DMA_CHXCTL_CMEN; +} + +/*! + \brief disable DMA circulation mode + \param[in] dma_periph: DMAx(x=0,1) + \arg DMAx(x=0,1) + \param[in] channelx: specify which DMA channel + only one parameter can be selected which is shown as below: + \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4) + \param[out] none + \retval none +*/ +void dma_circulation_disable(uint32_t dma_periph, dma_channel_enum channelx) +{ + if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){ + DMA_WRONG_HANDLE + } + + DMA_CHCTL(dma_periph, channelx) &= ~DMA_CHXCTL_CMEN; +} + +/*! + \brief enable memory to memory mode + \param[in] dma_periph: DMAx(x=0,1) + \arg DMAx(x=0,1) + \param[in] channelx: specify which DMA channel + only one parameter can be selected which is shown as below: + \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4) + \param[out] none + \retval none +*/ +void dma_memory_to_memory_enable(uint32_t dma_periph, dma_channel_enum channelx) +{ + if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){ + DMA_WRONG_HANDLE + } + + DMA_CHCTL(dma_periph, channelx) |= DMA_CHXCTL_M2M; +} + +/*! + \brief disable memory to memory mode + \param[in] dma_periph: DMAx(x=0,1) + \arg DMAx(x=0,1) + \param[in] channelx: specify which DMA channel + only one parameter can be selected which is shown as below: + \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4) + \param[out] none + \retval none +*/ +void dma_memory_to_memory_disable(uint32_t dma_periph, dma_channel_enum channelx) +{ + if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){ + DMA_WRONG_HANDLE + } + + DMA_CHCTL(dma_periph, channelx) &= ~DMA_CHXCTL_M2M; +} + +/*! + \brief enable DMA channel + \param[in] dma_periph: DMAx(x=0,1) + \arg DMAx(x=0,1) + \param[in] channelx: specify which DMA channel + only one parameter can be selected which is shown as below: + \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4) + \param[out] none + \retval none +*/ +void dma_channel_enable(uint32_t dma_periph, dma_channel_enum channelx) +{ + if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){ + DMA_WRONG_HANDLE + } + + DMA_CHCTL(dma_periph, channelx) |= DMA_CHXCTL_CHEN; +} + +/*! + \brief disable DMA channel + \param[in] dma_periph: DMAx(x=0,1) + \arg DMAx(x=0,1) + \param[in] channelx: specify which DMA channel + only one parameter can be selected which is shown as below: + \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4) + \param[out] none + \retval none +*/ +void dma_channel_disable(uint32_t dma_periph, dma_channel_enum channelx) +{ + if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){ + DMA_WRONG_HANDLE + } + + DMA_CHCTL(dma_periph, channelx) &= ~DMA_CHXCTL_CHEN; +} + +/*! + \brief set DMA peripheral base address + \param[in] dma_periph: DMAx(x=0,1) + \arg DMAx(x=0,1) + \param[in] channelx: specify which DMA channel to set peripheral base address + only one parameter can be selected which is shown as below: + \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4) + \param[in] address: peripheral base address + \param[out] none + \retval none +*/ +void dma_periph_address_config(uint32_t dma_periph, dma_channel_enum channelx, uint32_t address) +{ + if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){ + DMA_WRONG_HANDLE + } + + DMA_CHPADDR(dma_periph, channelx) = address; +} + +/*! + \brief set DMA memory base address + \param[in] dma_periph: DMAx(x=0,1) + \arg DMAx(x=0,1) + \param[in] channelx: specify which DMA channel to set memory base address + only one parameter can be selected which is shown as below: + \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4) + \param[in] address: memory base address + \param[out] none + \retval none +*/ +void dma_memory_address_config(uint32_t dma_periph, dma_channel_enum channelx, uint32_t address) +{ + if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){ + DMA_WRONG_HANDLE + } + + DMA_CHMADDR(dma_periph, channelx) = address; +} + +/*! + \brief set the number of remaining data to be transferred by the DMA + \param[in] dma_periph: DMAx(x=0,1) + \arg DMAx(x=0,1) + \param[in] channelx: specify which DMA channel to set number + only one parameter can be selected which is shown as below: + \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4) + \param[in] number: the number of remaining data to be transferred by the DMA + \arg 0x0000-0xFFFF + \param[out] none + \retval none +*/ +void dma_transfer_number_config(uint32_t dma_periph, dma_channel_enum channelx, uint32_t number) +{ + if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){ + DMA_WRONG_HANDLE + } + + DMA_CHCNT(dma_periph, channelx) = (number & DMA_CHANNEL_CNT_MASK); +} + +/*! + \brief get the number of remaining data to be transferred by the DMA + \param[in] dma_periph: DMAx(x=0,1) + \arg DMAx(x=0,1) + \param[in] channelx: specify which DMA channel to set number + only one parameter can be selected which is shown as below: + \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4) + \param[out] none + \retval uint32_t: the number of remaining data to be transferred by the DMA +*/ +uint32_t dma_transfer_number_get(uint32_t dma_periph, dma_channel_enum channelx) +{ + if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){ + DMA_WRONG_HANDLE + } + + return (uint32_t)DMA_CHCNT(dma_periph, channelx); +} + +/*! + \brief configure priority level of DMA channel + \param[in] dma_periph: DMAx(x=0,1) + \arg DMAx(x=0,1) + \param[in] channelx: specify which DMA channel + only one parameter can be selected which is shown as below: + \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4) + \param[in] priority: priority Level of this channel + only one parameter can be selected which is shown as below: + \arg DMA_PRIORITY_LOW: low priority + \arg DMA_PRIORITY_MEDIUM: medium priority + \arg DMA_PRIORITY_HIGH: high priority + \arg DMA_PRIORITY_ULTRA_HIGH: ultra high priority + \param[out] none + \retval none +*/ +void dma_priority_config(uint32_t dma_periph, dma_channel_enum channelx, uint32_t priority) +{ + uint32_t ctl; + + if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){ + DMA_WRONG_HANDLE + } + + /* acquire DMA_CHxCTL register */ + ctl = DMA_CHCTL(dma_periph, channelx); + /* assign regiser */ + ctl &= ~DMA_CHXCTL_PRIO; + ctl |= priority; + DMA_CHCTL(dma_periph, channelx) = ctl; +} + +/*! + \brief configure transfer data size of memory + \param[in] dma_periph: DMAx(x=0,1) + \arg DMAx(x=0,1) + \param[in] channelx: specify which DMA channel + only one parameter can be selected which is shown as below: + \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4) + \param[in] mwidth: transfer data width of memory + only one parameter can be selected which is shown as below: + \arg DMA_MEMORY_WIDTH_8BIT: transfer data width of memory is 8-bit + \arg DMA_MEMORY_WIDTH_16BIT: transfer data width of memory is 16-bit + \arg DMA_MEMORY_WIDTH_32BIT: transfer data width of memory is 32-bit + \param[out] none + \retval none +*/ +void dma_memory_width_config(uint32_t dma_periph, dma_channel_enum channelx, uint32_t mwidth) +{ + uint32_t ctl; + + if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){ + DMA_WRONG_HANDLE + } + + /* acquire DMA_CHxCTL register */ + ctl = DMA_CHCTL(dma_periph, channelx); + /* assign regiser */ + ctl &= ~DMA_CHXCTL_MWIDTH; + ctl |= mwidth; + DMA_CHCTL(dma_periph, channelx) = ctl; +} + +/*! + \brief configure transfer data size of peripheral + \param[in] dma_periph: DMAx(x=0,1) + \arg DMAx(x=0,1) + \param[in] channelx: specify which DMA channel + only one parameter can be selected which is shown as below: + \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4) + \param[in] pwidth: transfer data width of peripheral + only one parameter can be selected which is shown as below: + \arg DMA_PERIPHERAL_WIDTH_8BIT: transfer data width of peripheral is 8-bit + \arg DMA_PERIPHERAL_WIDTH_16BIT: transfer data width of peripheral is 16-bit + \arg DMA_PERIPHERAL_WIDTH_32BIT: transfer data width of peripheral is 32-bit + \param[out] none + \retval none +*/ +void dma_periph_width_config(uint32_t dma_periph, dma_channel_enum channelx, uint32_t pwidth) +{ + uint32_t ctl; + + if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){ + DMA_WRONG_HANDLE + } + + /* acquire DMA_CHxCTL register */ + ctl = DMA_CHCTL(dma_periph, channelx); + /* assign regiser */ + ctl &= ~DMA_CHXCTL_PWIDTH; + ctl |= pwidth; + DMA_CHCTL(dma_periph, channelx) = ctl; +} + +/*! + \brief enable next address increasement algorithm of memory + \param[in] dma_periph: DMAx(x=0,1) + \arg DMAx(x=0,1) + \param[in] channelx: specify which DMA channel + only one parameter can be selected which is shown as below: + \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4) + \param[out] none + \retval none +*/ +void dma_memory_increase_enable(uint32_t dma_periph, dma_channel_enum channelx) +{ + if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){ + DMA_WRONG_HANDLE + } + + DMA_CHCTL(dma_periph, channelx) |= DMA_CHXCTL_MNAGA; +} + +/*! + \brief disable next address increasement algorithm of memory + \param[in] dma_periph: DMAx(x=0,1) + \arg DMAx(x=0,1) + \param[in] channelx: specify which DMA channel + only one parameter can be selected which is shown as below: + \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4) + \param[out] none + \retval none +*/ +void dma_memory_increase_disable(uint32_t dma_periph, dma_channel_enum channelx) +{ + if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){ + DMA_WRONG_HANDLE + } + + DMA_CHCTL(dma_periph, channelx) &= ~DMA_CHXCTL_MNAGA; +} + +/*! + \brief enable next address increasement algorithm of peripheral + \param[in] dma_periph: DMAx(x=0,1) + \arg DMAx(x=0,1) + \param[in] channelx: specify which DMA channel + only one parameter can be selected which is shown as below: + \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4) + \param[out] none + \retval none +*/ +void dma_periph_increase_enable(uint32_t dma_periph, dma_channel_enum channelx) +{ + if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){ + DMA_WRONG_HANDLE + } + + DMA_CHCTL(dma_periph, channelx) |= DMA_CHXCTL_PNAGA; +} + +/*! + \brief disable next address increasement algorithm of peripheral + \param[in] dma_periph: DMAx(x=0,1) + \arg DMAx(x=0,1) + \param[in] channelx: specify which DMA channel + only one parameter can be selected which is shown as below: + \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4) + \param[out] none + \retval none +*/ +void dma_periph_increase_disable(uint32_t dma_periph, dma_channel_enum channelx) +{ + if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){ + DMA_WRONG_HANDLE + } + + DMA_CHCTL(dma_periph, channelx) &= ~DMA_CHXCTL_PNAGA; +} + +/*! + \brief configure the direction of data transfer on the channel + \param[in] dma_periph: DMAx(x=0,1) + \arg DMAx(x=0,1) + \param[in] channelx: specify which DMA channel + only one parameter can be selected which is shown as below: + \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4) + \param[in] direction: specify the direction of data transfer + only one parameter can be selected which is shown as below: + \arg DMA_PERIPHERAL_TO_MEMORY: read from peripheral and write to memory + \arg DMA_MEMORY_TO_PERIPHERAL: read from memory and write to peripheral + \param[out] none + \retval none +*/ +void dma_transfer_direction_config(uint32_t dma_periph, dma_channel_enum channelx, uint8_t direction) +{ + if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){ + DMA_WRONG_HANDLE + } + + if(DMA_PERIPHERAL_TO_MEMORY == direction){ + DMA_CHCTL(dma_periph, channelx) &= ~DMA_CHXCTL_DIR; + } else { + DMA_CHCTL(dma_periph, channelx) |= DMA_CHXCTL_DIR; + } +} + +/*! + \brief check DMA flag is set or not + \param[in] dma_periph: DMAx(x=0,1) + \arg DMAx(x=0,1) + \param[in] channelx: specify which DMA channel to get flag + only one parameter can be selected which is shown as below: + \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4) + \param[in] flag: specify get which flag + only one parameter can be selected which is shown as below: + \arg DMA_FLAG_G: global interrupt flag of channel + \arg DMA_FLAG_FTF: full transfer finish flag of channel + \arg DMA_FLAG_HTF: half transfer finish flag of channel + \arg DMA_FLAG_ERR: error flag of channel + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus dma_flag_get(uint32_t dma_periph, dma_channel_enum channelx, uint32_t flag) +{ + FlagStatus reval; + + /* check whether the flag is set or not */ + if(RESET != (DMA_INTF(dma_periph) & DMA_FLAG_ADD(flag, channelx))){ + reval = SET; + }else{ + reval = RESET; + } + + return reval; +} + +/*! + \brief clear the flag of a DMA channel + \param[in] dma_periph: DMAx(x=0,1) + \arg DMAx(x=0,1) + \param[in] channelx: specify which DMA channel to clear flag + only one parameter can be selected which is shown as below: + \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4) + \param[in] flag: specify get which flag + only one parameter can be selected which is shown as below: + \arg DMA_FLAG_G: global interrupt flag of channel + \arg DMA_FLAG_FTF: full transfer finish flag of channel + \arg DMA_FLAG_HTF: half transfer finish flag of channel + \arg DMA_FLAG_ERR: error flag of channel + \param[out] none + \retval none +*/ +void dma_flag_clear(uint32_t dma_periph, dma_channel_enum channelx, uint32_t flag) +{ + DMA_INTC(dma_periph) |= DMA_FLAG_ADD(flag, channelx); +} + +/*! + \brief check DMA flag and interrupt enable bit is set or not + \param[in] dma_periph: DMAx(x=0,1) + \arg DMAx(x=0,1) + \param[in] channelx: specify which DMA channel to get flag + only one parameter can be selected which is shown as below: + \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4) + \param[in] flag: specify get which flag + only one parameter can be selected which is shown as below: + \arg DMA_INT_FLAG_FTF: full transfer finish interrupt flag of channel + \arg DMA_INT_FLAG_HTF: half transfer finish interrupt flag of channel + \arg DMA_INT_FLAG_ERR: error interrupt flag of channel + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus dma_interrupt_flag_get(uint32_t dma_periph, dma_channel_enum channelx, uint32_t flag) +{ + uint32_t interrupt_enable = 0U, interrupt_flag = 0U; + + switch(flag){ + case DMA_INT_FLAG_FTF: + /* check whether the full transfer finish interrupt flag is set and enabled */ + interrupt_flag = DMA_INTF(dma_periph) & DMA_FLAG_ADD(flag, channelx); + interrupt_enable = DMA_CHCTL(dma_periph, channelx) & DMA_CHXCTL_FTFIE; + break; + case DMA_INT_FLAG_HTF: + /* check whether the half transfer finish interrupt flag is set and enabled */ + interrupt_flag = DMA_INTF(dma_periph) & DMA_FLAG_ADD(flag, channelx); + interrupt_enable = DMA_CHCTL(dma_periph, channelx) & DMA_CHXCTL_HTFIE; + break; + case DMA_INT_FLAG_ERR: + /* check whether the error interrupt flag is set and enabled */ + interrupt_flag = DMA_INTF(dma_periph) & DMA_FLAG_ADD(flag, channelx); + interrupt_enable = DMA_CHCTL(dma_periph, channelx) & DMA_CHXCTL_ERRIE; + break; + default: + DMA_WRONG_HANDLE + } + + /* when the interrupt flag is set and enabled, return SET */ + if(interrupt_flag && interrupt_enable){ + return SET; + }else{ + return RESET; + } +} + +/*! + \brief clear DMA a channel flag + \param[in] dma_periph: DMAx(x=0,1) + \arg DMAx(x=0,1) + \param[in] channelx: specify which DMA channel to clear flag + only one parameter can be selected which is shown as below: + \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4) + \param[in] flag: specify get which flag + only one parameter can be selected which is shown as below: + \arg DMA_INT_FLAG_G: global interrupt flag of channel + \arg DMA_INT_FLAG_FTF: full transfer finish interrupt flag of channel + \arg DMA_INT_FLAG_HTF: half transfer finish interrupt flag of channel + \arg DMA_INT_FLAG_ERR: error interrupt flag of channel + \param[out] none + \retval none +*/ +void dma_interrupt_flag_clear(uint32_t dma_periph, dma_channel_enum channelx, uint32_t flag) +{ + DMA_INTC(dma_periph) |= DMA_FLAG_ADD(flag, channelx); +} + +/*! + \brief enable DMA interrupt + \param[in] dma_periph: DMAx(x=0,1) + \arg DMAx(x=0,1) + \param[in] channelx: specify which DMA channel + only one parameter can be selected which is shown as below: + \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4) + \param[in] source: specify which interrupt to enbale + one or more parameters can be selected which are shown as below + \arg DMA_INT_FTF: channel full transfer finish interrupt + \arg DMA_INT_HTF: channel half transfer finish interrupt + \arg DMA_INT_ERR: channel error interrupt + \param[out] none + \retval none +*/ +void dma_interrupt_enable(uint32_t dma_periph, dma_channel_enum channelx, uint32_t source) +{ + if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){ + DMA_WRONG_HANDLE + } + + DMA_CHCTL(dma_periph, channelx) |= source; +} + +/*! + \brief disable DMA interrupt + \param[in] dma_periph: DMAx(x=0,1) + \arg DMAx(x=0,1) + \param[in] channelx: specify which DMA channel + only one parameter can be selected which is shown as below: + \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4) + \param[in] source: specify which interrupt to disbale + one or more parameters can be selected which are shown as below + \arg DMA_INT_FTF: channel full transfer finish interrupt + \arg DMA_INT_HTF: channel half transfer finish interrupt + \arg DMA_INT_ERR: channel error interrupt + \param[out] none + \retval none +*/ +void dma_interrupt_disable(uint32_t dma_periph, dma_channel_enum channelx, uint32_t source) +{ + if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){ + DMA_WRONG_HANDLE + } + + DMA_CHCTL(dma_periph, channelx) &= ~source; +} + +/*! + \brief check whether peripheral and channels match + \param[in] dma_periph: DMAx(x=0,1) + \arg DMAx(x=0,1) + \param[in] channelx: specify which DMA channel + only one parameter can be selected which is shown as below: + \arg DMA_CHx(x=0..6) + \param[out] none + \retval ErrStatus: SUCCESS or ERROR +*/ +static ErrStatus dma_periph_and_channel_check(uint32_t dma_periph, dma_channel_enum channelx) +{ + ErrStatus val = SUCCESS; + + if(DMA1 == dma_periph){ + /* for DMA1, the channel is from DMA_CH0 to DMA_CH4 */ + if(channelx > DMA_CH4){ + val = ERROR; + } + } + + return val; +} diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_enet.c b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_enet.c new file mode 100644 index 0000000..c0cdc33 --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_enet.c @@ -0,0 +1,3081 @@ +/*! + \file gd32f10x_enet.c + \brief ENET driver + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#include "gd32f10x_enet.h" + +#ifdef GD32F10X_CL + +#if defined (__CC_ARM) /*!< ARM compiler */ +__align(4) +enet_descriptors_struct rxdesc_tab[ENET_RXBUF_NUM]; /*!< ENET RxDMA descriptor */ +__align(4) +enet_descriptors_struct txdesc_tab[ENET_TXBUF_NUM]; /*!< ENET TxDMA descriptor */ +__align(4) +uint8_t rx_buff[ENET_RXBUF_NUM][ENET_RXBUF_SIZE]; /*!< ENET receive buffer */ +__align(4) +uint8_t tx_buff[ENET_TXBUF_NUM][ENET_TXBUF_SIZE]; /*!< ENET transmit buffer */ + +#elif defined ( __ICCARM__ ) /*!< IAR compiler */ +#pragma data_alignment=4 +enet_descriptors_struct rxdesc_tab[ENET_RXBUF_NUM]; /*!< ENET RxDMA descriptor */ +#pragma data_alignment=4 +enet_descriptors_struct txdesc_tab[ENET_TXBUF_NUM]; /*!< ENET TxDMA descriptor */ +#pragma data_alignment=4 +uint8_t rx_buff[ENET_RXBUF_NUM][ENET_RXBUF_SIZE]; /*!< ENET receive buffer */ +#pragma data_alignment=4 +uint8_t tx_buff[ENET_TXBUF_NUM][ENET_TXBUF_SIZE]; /*!< ENET transmit buffer */ + +#elif defined (__GNUC__) /* GNU Compiler */ +enet_descriptors_struct rxdesc_tab[ENET_RXBUF_NUM] __attribute__ ((aligned (4))); /*!< ENET RxDMA descriptor */ +enet_descriptors_struct txdesc_tab[ENET_TXBUF_NUM] __attribute__ ((aligned (4))); /*!< ENET TxDMA descriptor */ +uint8_t rx_buff[ENET_RXBUF_NUM][ENET_RXBUF_SIZE] __attribute__ ((aligned (4))); /*!< ENET receive buffer */ +uint8_t tx_buff[ENET_TXBUF_NUM][ENET_TXBUF_SIZE] __attribute__ ((aligned (4))); /*!< ENET transmit buffer */ + +#endif /* __CC_ARM */ + +/* global transmit and receive descriptors pointers */ +enet_descriptors_struct *dma_current_txdesc; +enet_descriptors_struct *dma_current_rxdesc; + +/* structure pointer of ptp descriptor for normal mode */ +enet_descriptors_struct *dma_current_ptp_txdesc = NULL; +enet_descriptors_struct *dma_current_ptp_rxdesc = NULL; + +/* init structure parameters for ENET initialization */ +static enet_initpara_struct enet_initpara ={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; + +static uint32_t enet_unknow_err = 0U; + +/* array of register offset for debug information get */ +static const uint16_t enet_reg_tab[] = { +0x0000, 0x0004, 0x0008, 0x000C, 0x0010, 0x0014, 0x0018, 0x1080, 0x001C, 0x0028, 0x002C, +0x0038, 0x003C, 0x0040, 0x0044, 0x0048, 0x004C, 0x0050, 0x0054, 0x0058, 0x005C, + +0x0100, 0x0104, 0x0108, 0x010C, 0x0110, 0x014C, 0x0150, 0x0168, 0x0194, 0x0198, 0x01C4, + +0x0700, 0x0704,0x0708, 0x070C, 0x0710, 0x0714, 0x0718, 0x071C, 0x0720, + +0x1000, 0x1004, 0x1008, 0x100C, 0x1010, 0x1014, 0x1018, 0x101C, 0x1020, 0x1048, 0x104C, +0x1050, 0x1054}; + + +/*! + \brief deinitialize the ENET, and reset structure parameters for ENET initialization + \param[in] none + \param[out] none + \retval none +*/ +void enet_deinit(void) +{ + rcu_periph_reset_enable(RCU_ENETRST); + rcu_periph_reset_disable(RCU_ENETRST); + enet_initpara_reset(); +} + +/*! + \brief configure the parameters which are usually less cared for initialization + note -- this function must be called before enet_init(), otherwise + configuration will be no effect + \param[in] option: different function option, which is related to several parameters, + only one parameter can be selected which is shown as below, refer to enet_option_enum + \arg FORWARD_OPTION: choose to configure the frame forward related parameters + \arg DMABUS_OPTION: choose to configure the DMA bus mode related parameters + \arg DMA_MAXBURST_OPTION: choose to configure the DMA max burst related parameters + \arg DMA_ARBITRATION_OPTION: choose to configure the DMA arbitration related parameters + \arg STORE_OPTION: choose to configure the store forward mode related parameters + \arg DMA_OPTION: choose to configure the DMA descriptor related parameters + \arg VLAN_OPTION: choose to configure vlan related parameters + \arg FLOWCTL_OPTION: choose to configure flow control related parameters + \arg HASHH_OPTION: choose to configure hash high + \arg HASHL_OPTION: choose to configure hash low + \arg FILTER_OPTION: choose to configure frame filter related parameters + \arg HALFDUPLEX_OPTION: choose to configure halfduplex mode related parameters + \arg TIMER_OPTION: choose to configure time counter related parameters + \arg INTERFRAMEGAP_OPTION: choose to configure the inter frame gap related parameters + \param[in] para: the related parameters according to the option + all the related parameters should be configured which are shown as below + FORWARD_OPTION related parameters: + - ENET_AUTO_PADCRC_DROP_ENABLE/ ENET_AUTO_PADCRC_DROP_DISABLE ; + - ENET_FORWARD_ERRFRAMES_ENABLE/ ENET_FORWARD_ERRFRAMES_DISABLE ; + - ENET_FORWARD_UNDERSZ_GOODFRAMES_ENABLE/ ENET_FORWARD_UNDERSZ_GOODFRAMES_DISABLE . + DMABUS_OPTION related parameters: + - ENET_ADDRESS_ALIGN_ENABLE/ ENET_ADDRESS_ALIGN_DISABLE ; + - ENET_FIXED_BURST_ENABLE/ ENET_FIXED_BURST_DISABLE ; + DMA_MAXBURST_OPTION related parameters: + - ENET_RXDP_1BEAT/ ENET_RXDP_2BEAT/ ENET_RXDP_4BEAT/ + ENET_RXDP_8BEAT/ ENET_RXDP_16BEAT/ ENET_RXDP_32BEAT/ + ENET_RXDP_4xPGBL_4BEAT/ ENET_RXDP_4xPGBL_8BEAT/ + ENET_RXDP_4xPGBL_16BEAT/ ENET_RXDP_4xPGBL_32BEAT/ + ENET_RXDP_4xPGBL_64BEAT/ ENET_RXDP_4xPGBL_128BEAT ; + - ENET_PGBL_1BEAT/ ENET_PGBL_2BEAT/ ENET_PGBL_4BEAT/ + ENET_PGBL_8BEAT/ ENET_PGBL_16BEAT/ ENET_PGBL_32BEAT/ + ENET_PGBL_4xPGBL_4BEAT/ ENET_PGBL_4xPGBL_8BEAT/ + ENET_PGBL_4xPGBL_16BEAT/ ENET_PGBL_4xPGBL_32BEAT/ + ENET_PGBL_4xPGBL_64BEAT/ ENET_PGBL_4xPGBL_128BEAT ; + - ENET_RXTX_DIFFERENT_PGBL/ ENET_RXTX_SAME_PGBL ; + DMA_ARBITRATION_OPTION related parameters: + - ENET_ARBITRATION_RXPRIORTX / ENET_ARBITRATION_RXTX_1_1 + / ENET_ARBITRATION_RXTX_2_1/ ENET_ARBITRATION_RXTX_3_1 + / ENET_ARBITRATION_RXTX_4_1. + STORE_OPTION related parameters: + - ENET_RX_MODE_STOREFORWARD/ ENET_RX_MODE_CUTTHROUGH ; + - ENET_TX_MODE_STOREFORWARD/ ENET_TX_MODE_CUTTHROUGH ; + - ENET_RX_THRESHOLD_64BYTES/ ENET_RX_THRESHOLD_32BYTES/ + ENET_RX_THRESHOLD_96BYTES/ ENET_RX_THRESHOLD_128BYTES ; + - ENET_TX_THRESHOLD_64BYTES/ ENET_TX_THRESHOLD_128BYTES/ + ENET_TX_THRESHOLD_192BYTES/ ENET_TX_THRESHOLD_256BYTES/ + ENET_TX_THRESHOLD_40BYTES/ ENET_TX_THRESHOLD_32BYTES/ + ENET_TX_THRESHOLD_24BYTES/ ENET_TX_THRESHOLD_16BYTES . + DMA_OPTION related parameters: + - ENET_FLUSH_RXFRAME_ENABLE/ ENET_FLUSH_RXFRAME_DISABLE ; + - ENET_SECONDFRAME_OPT_ENABLE/ ENET_SECONDFRAME_OPT_DISABLE . + VLAN_OPTION related parameters: + - ENET_VLANTAGCOMPARISON_12BIT/ ENET_VLANTAGCOMPARISON_16BIT ; + - MAC_VLT_VLTI(regval) . + FLOWCTL_OPTION related parameters: + - MAC_FCTL_PTM(regval) ; + - ENET_ZERO_QUANTA_PAUSE_ENABLE/ ENET_ZERO_QUANTA_PAUSE_DISABLE ; + - ENET_PAUSETIME_MINUS4/ ENET_PAUSETIME_MINUS28/ + ENET_PAUSETIME_MINUS144/ENET_PAUSETIME_MINUS256 ; + - ENET_MAC0_AND_UNIQUE_ADDRESS_PAUSEDETECT/ ENET_UNIQUE_PAUSEDETECT ; + - ENET_RX_FLOWCONTROL_ENABLE/ ENET_RX_FLOWCONTROL_DISABLE ; + - ENET_TX_FLOWCONTROL_ENABLE/ ENET_TX_FLOWCONTROL_DISABLE ; + - ENET_ACTIVE_THRESHOLD_256BYTES/ ENET_ACTIVE_THRESHOLD_512BYTES ; + - ENET_ACTIVE_THRESHOLD_768BYTES/ ENET_ACTIVE_THRESHOLD_1024BYTES ; + - ENET_ACTIVE_THRESHOLD_1280BYTES/ ENET_ACTIVE_THRESHOLD_1536BYTES ; + - ENET_ACTIVE_THRESHOLD_1792BYTES ; + - ENET_DEACTIVE_THRESHOLD_256BYTES/ ENET_DEACTIVE_THRESHOLD_512BYTES ; + - ENET_DEACTIVE_THRESHOLD_768BYTES/ ENET_DEACTIVE_THRESHOLD_1024BYTES ; + - ENET_DEACTIVE_THRESHOLD_1280BYTES/ ENET_DEACTIVE_THRESHOLD_1536BYTES ; + - ENET_DEACTIVE_THRESHOLD_1792BYTES . + HASHH_OPTION related parameters: + - 0x0~0xFFFF FFFFU + HASHL_OPTION related parameters: + - 0x0~0xFFFF FFFFU + FILTER_OPTION related parameters: + - ENET_SRC_FILTER_NORMAL_ENABLE/ ENET_SRC_FILTER_INVERSE_ENABLE/ + ENET_SRC_FILTER_DISABLE ; + - ENET_DEST_FILTER_INVERSE_ENABLE/ ENET_DEST_FILTER_INVERSE_DISABLE ; + - ENET_MULTICAST_FILTER_HASH_OR_PERFECT/ ENET_MULTICAST_FILTER_HASH/ + ENET_MULTICAST_FILTER_PERFECT/ ENET_MULTICAST_FILTER_NONE ; + - ENET_UNICAST_FILTER_EITHER/ ENET_UNICAST_FILTER_HASH/ + ENET_UNICAST_FILTER_PERFECT ; + - ENET_PCFRM_PREVENT_ALL/ ENET_PCFRM_PREVENT_PAUSEFRAME/ + ENET_PCFRM_FORWARD_ALL/ ENET_PCFRM_FORWARD_FILTERED . + HALFDUPLEX_OPTION related parameters: + - ENET_CARRIERSENSE_ENABLE/ ENET_CARRIERSENSE_DISABLE ; + - ENET_RECEIVEOWN_ENABLE/ ENET_RECEIVEOWN_DISABLE ; + - ENET_RETRYTRANSMISSION_ENABLE/ ENET_RETRYTRANSMISSION_DISABLE ; + - ENET_BACKOFFLIMIT_10/ ENET_BACKOFFLIMIT_8/ + ENET_BACKOFFLIMIT_4/ ENET_BACKOFFLIMIT_1 ; + - ENET_DEFERRALCHECK_ENABLE/ ENET_DEFERRALCHECK_DISABLE . + TIMER_OPTION related parameters: + - ENET_WATCHDOG_ENABLE/ ENET_WATCHDOG_DISABLE ; + - ENET_JABBER_ENABLE/ ENET_JABBER_DISABLE ; + INTERFRAMEGAP_OPTION related parameters: + - ENET_INTERFRAMEGAP_96BIT/ ENET_INTERFRAMEGAP_88BIT/ + ENET_INTERFRAMEGAP_80BIT/ ENET_INTERFRAMEGAP_72BIT/ + ENET_INTERFRAMEGAP_64BIT/ ENET_INTERFRAMEGAP_56BIT/ + ENET_INTERFRAMEGAP_48BIT/ ENET_INTERFRAMEGAP_40BIT . + \param[out] none + \retval none +*/ +void enet_initpara_config(enet_option_enum option, uint32_t para) +{ + switch(option){ + case FORWARD_OPTION: + /* choose to configure forward_frame, and save the configuration parameters */ + enet_initpara.option_enable |= (uint32_t)FORWARD_OPTION; + enet_initpara.forward_frame = para; + break; + case DMABUS_OPTION: + /* choose to configure dmabus_mode, and save the configuration parameters */ + enet_initpara.option_enable |= (uint32_t)DMABUS_OPTION; + enet_initpara.dmabus_mode = para; + break; + case DMA_MAXBURST_OPTION: + /* choose to configure dma_maxburst, and save the configuration parameters */ + enet_initpara.option_enable |= (uint32_t)DMA_MAXBURST_OPTION; + enet_initpara.dma_maxburst = para; + break; + case DMA_ARBITRATION_OPTION: + /* choose to configure dma_arbitration, and save the configuration parameters */ + enet_initpara.option_enable |= (uint32_t)DMA_ARBITRATION_OPTION; + enet_initpara.dma_arbitration = para; + break; + case STORE_OPTION: + /* choose to configure store_forward_mode, and save the configuration parameters */ + enet_initpara.option_enable |= (uint32_t)STORE_OPTION; + enet_initpara.store_forward_mode = para; + break; + case DMA_OPTION: + /* choose to configure dma_function, and save the configuration parameters */ + enet_initpara.option_enable |= (uint32_t)DMA_OPTION; + enet_initpara.dma_function = para; + break; + case VLAN_OPTION: + /* choose to configure vlan_config, and save the configuration parameters */ + enet_initpara.option_enable |= (uint32_t)VLAN_OPTION; + enet_initpara.vlan_config = para; + break; + case FLOWCTL_OPTION: + /* choose to configure flow_control, and save the configuration parameters */ + enet_initpara.option_enable |= (uint32_t)FLOWCTL_OPTION; + enet_initpara.flow_control = para; + break; + case HASHH_OPTION: + /* choose to configure hashtable_high, and save the configuration parameters */ + enet_initpara.option_enable |= (uint32_t)HASHH_OPTION; + enet_initpara.hashtable_high = para; + break; + case HASHL_OPTION: + /* choose to configure hashtable_low, and save the configuration parameters */ + enet_initpara.option_enable |= (uint32_t)HASHL_OPTION; + enet_initpara.hashtable_low = para; + break; + case FILTER_OPTION: + /* choose to configure framesfilter_mode, and save the configuration parameters */ + enet_initpara.option_enable |= (uint32_t)FILTER_OPTION; + enet_initpara.framesfilter_mode = para; + break; + case HALFDUPLEX_OPTION: + /* choose to configure halfduplex_param, and save the configuration parameters */ + enet_initpara.option_enable |= (uint32_t)HALFDUPLEX_OPTION; + enet_initpara.halfduplex_param = para; + break; + case TIMER_OPTION: + /* choose to configure timer_config, and save the configuration parameters */ + enet_initpara.option_enable |= (uint32_t)TIMER_OPTION; + enet_initpara.timer_config = para; + break; + case INTERFRAMEGAP_OPTION: + /* choose to configure interframegap, and save the configuration parameters */ + enet_initpara.option_enable |= (uint32_t)INTERFRAMEGAP_OPTION; + enet_initpara.interframegap = para; + break; + default: + break; + } +} + +/*! + \brief initialize ENET peripheral with generally concerned parameters and the less cared + parameters + \param[in] mediamode: PHY mode and mac loopback configurations, only one parameter can be selected + which is shown as below, refer to enet_mediamode_enum + \arg ENET_AUTO_NEGOTIATION: PHY auto negotiation + \arg ENET_100M_FULLDUPLEX: 100Mbit/s, full-duplex + \arg ENET_100M_HALFDUPLEX: 100Mbit/s, half-duplex + \arg ENET_10M_FULLDUPLEX: 10Mbit/s, full-duplex + \arg ENET_10M_HALFDUPLEX: 10Mbit/s, half-duplex + \arg ENET_LOOPBACKMODE: MAC in loopback mode at the MII + \param[in] checksum: IP frame checksum offload function, only one parameter can be selected + which is shown as below, refer to enet_mediamode_enum + \arg ENET_NO_AUTOCHECKSUM: disable IP frame checksum function + \arg ENET_AUTOCHECKSUM_DROP_FAILFRAMES: enable IP frame checksum function + \arg ENET_AUTOCHECKSUM_ACCEPT_FAILFRAMES: enable IP frame checksum function, and the received frame + with only payload error but no other errors will not be dropped + \param[in] recept: frame filter function, only one parameter can be selected + which is shown as below, refer to enet_frmrecept_enum + \arg ENET_PROMISCUOUS_MODE: promiscuous mode enabled + \arg ENET_RECEIVEALL: all received frame are forwarded to application + \arg ENET_BROADCAST_FRAMES_PASS: the address filters pass all received broadcast frames + \arg ENET_BROADCAST_FRAMES_DROP: the address filters filter all incoming broadcast frames + \param[out] none + \retval ErrStatus: ERROR or SUCCESS +*/ +ErrStatus enet_init(enet_mediamode_enum mediamode, enet_chksumconf_enum checksum, enet_frmrecept_enum recept) +{ + uint32_t reg_value=0U, reg_temp = 0U, temp = 0U; + uint32_t media_temp = 0U; + uint32_t timeout = 0U; + uint16_t phy_value = 0U; + ErrStatus phy_state= ERROR, enet_state = ERROR; + + /* PHY interface configuration, configure SMI clock and reset PHY chip */ + if(ERROR == enet_phy_config()){ + _ENET_DELAY_(PHY_RESETDELAY); + if(ERROR == enet_phy_config()){ + return enet_state; + } + } + /* initialize ENET peripheral with generally concerned parameters */ + enet_default_init(); + + /* 1st, configure mediamode */ + media_temp = (uint32_t)mediamode; + /* if is PHY auto negotiation */ + if((uint32_t)ENET_AUTO_NEGOTIATION == media_temp){ + /* wait for PHY_LINKED_STATUS bit be set */ + do{ + enet_phy_write_read(ENET_PHY_READ, PHY_ADDRESS, PHY_REG_BSR, &phy_value); + phy_value &= PHY_LINKED_STATUS; + timeout++; + }while((RESET == phy_value) && (timeout < PHY_READ_TO)); + /* return ERROR due to timeout */ + if(PHY_READ_TO == timeout){ + return enet_state; + } + /* reset timeout counter */ + timeout = 0U; + + /* enable auto-negotiation */ + phy_value = PHY_AUTONEGOTIATION; + phy_state = enet_phy_write_read(ENET_PHY_WRITE, PHY_ADDRESS, PHY_REG_BCR, &phy_value); + if(!phy_state){ + /* return ERROR due to write timeout */ + return enet_state; + } + + /* wait for the PHY_AUTONEGO_COMPLETE bit be set */ + do{ + enet_phy_write_read(ENET_PHY_READ, PHY_ADDRESS, PHY_REG_BSR, &phy_value); + phy_value &= PHY_AUTONEGO_COMPLETE; + timeout++; + }while((RESET == phy_value) && (timeout < (uint32_t)PHY_READ_TO)); + /* return ERROR due to timeout */ + if(PHY_READ_TO == timeout){ + return enet_state; + } + /* reset timeout counter */ + timeout = 0U; + + /* read the result of the auto-negotiation */ + enet_phy_write_read(ENET_PHY_READ, PHY_ADDRESS, PHY_SR, &phy_value); + /* configure the duplex mode of MAC following the auto-negotiation result */ + if((uint16_t)RESET != (phy_value & PHY_DUPLEX_STATUS)){ + media_temp = ENET_MODE_FULLDUPLEX; + }else{ + media_temp = ENET_MODE_HALFDUPLEX; + } + /* configure the communication speed of MAC following the auto-negotiation result */ + if((uint16_t)RESET !=(phy_value & PHY_SPEED_STATUS)){ + media_temp |= ENET_SPEEDMODE_10M; + }else{ + media_temp |= ENET_SPEEDMODE_100M; + } + }else{ + phy_value = (uint16_t)((media_temp & ENET_MAC_CFG_DPM) >> 3); + phy_value |= (uint16_t)((media_temp & ENET_MAC_CFG_SPD) >> 1); + phy_state = enet_phy_write_read(ENET_PHY_WRITE, PHY_ADDRESS, PHY_REG_BCR, &phy_value); + if(!phy_state){ + /* return ERROR due to write timeout */ + return enet_state; + } + /* PHY configuration need some time */ + _ENET_DELAY_(PHY_CONFIGDELAY); + } + /* after configuring the PHY, use mediamode to configure registers */ + reg_value = ENET_MAC_CFG; + /* configure ENET_MAC_CFG register */ + reg_value &= (~(ENET_MAC_CFG_SPD |ENET_MAC_CFG_DPM |ENET_MAC_CFG_LBM)); + reg_value |= media_temp; + ENET_MAC_CFG = reg_value; + + + /* 2st, configure checksum */ + if(RESET != ((uint32_t)checksum & ENET_CHECKSUMOFFLOAD_ENABLE)){ + ENET_MAC_CFG |= ENET_CHECKSUMOFFLOAD_ENABLE; + + reg_value = ENET_DMA_CTL; + /* configure ENET_DMA_CTL register */ + reg_value &= ~ENET_DMA_CTL_DTCERFD; + reg_value |= ((uint32_t)checksum & ENET_DMA_CTL_DTCERFD); + ENET_DMA_CTL = reg_value; + } + + /* 3rd, configure recept */ + ENET_MAC_FRMF |= (uint32_t)recept; + + /* 4th, configure different function options */ + /* configure forward_frame related registers */ + if(RESET != (enet_initpara.option_enable & (uint32_t)FORWARD_OPTION)){ + reg_temp = enet_initpara.forward_frame; + + reg_value = ENET_MAC_CFG; + temp = reg_temp; + /* configure ENET_MAC_CFG register */ + reg_value &= (~ENET_MAC_CFG_APCD); + temp &= ENET_MAC_CFG_APCD; + reg_value |= temp; + ENET_MAC_CFG = reg_value; + + reg_value = ENET_DMA_CTL; + temp = reg_temp; + /* configure ENET_DMA_CTL register */ + reg_value &= (~(ENET_DMA_CTL_FERF |ENET_DMA_CTL_FUF)); + temp &= ((ENET_DMA_CTL_FERF | ENET_DMA_CTL_FUF) << 2); + reg_value |= (temp >> 2); + ENET_DMA_CTL = reg_value; + } + + /* configure dmabus_mode related registers */ + if(RESET != (enet_initpara.option_enable & (uint32_t)DMABUS_OPTION)){ + temp = enet_initpara.dmabus_mode; + + reg_value = ENET_DMA_BCTL; + /* configure ENET_DMA_BCTL register */ + reg_value &= ~(ENET_DMA_BCTL_AA | ENET_DMA_BCTL_FB \ + |ENET_DMA_BCTL_FPBL); + reg_value |= temp; + ENET_DMA_BCTL = reg_value; + } + + /* configure dma_maxburst related registers */ + if(RESET != (enet_initpara.option_enable & (uint32_t)DMA_MAXBURST_OPTION)){ + temp = enet_initpara.dma_maxburst; + + reg_value = ENET_DMA_BCTL; + /* configure ENET_DMA_BCTL register */ + reg_value &= ~(ENET_DMA_BCTL_RXDP| ENET_DMA_BCTL_PGBL | ENET_DMA_BCTL_UIP); + reg_value |= temp; + ENET_DMA_BCTL = reg_value; + } + + /* configure dma_arbitration related registers */ + if(RESET != (enet_initpara.option_enable & (uint32_t)DMA_ARBITRATION_OPTION)){ + temp = enet_initpara.dma_arbitration; + + reg_value = ENET_DMA_BCTL; + /* configure ENET_DMA_BCTL register */ + reg_value &= ~(ENET_DMA_BCTL_RTPR | ENET_DMA_BCTL_DAB); + reg_value |= temp; + ENET_DMA_BCTL = reg_value; + } + + /* configure store_forward_mode related registers */ + if(RESET != (enet_initpara.option_enable & (uint32_t)STORE_OPTION)){ + temp = enet_initpara.store_forward_mode; + + reg_value = ENET_DMA_CTL; + /* configure ENET_DMA_CTL register */ + reg_value &= ~(ENET_DMA_CTL_RSFD | ENET_DMA_CTL_TSFD| ENET_DMA_CTL_RTHC| ENET_DMA_CTL_TTHC); + reg_value |= temp; + ENET_DMA_CTL = reg_value; + } + + /* configure dma_function related registers */ + if(RESET != (enet_initpara.option_enable & (uint32_t)DMA_OPTION)){ + reg_temp = enet_initpara.dma_function; + + reg_value = ENET_DMA_CTL; + /* configure ENET_DMA_CTL register */ + reg_value &= (~(ENET_DMA_CTL_DAFRF |ENET_DMA_CTL_OSF)); + reg_value |= reg_temp; + ENET_DMA_CTL = reg_value; + } + + /* configure vlan_config related registers */ + if(RESET != (enet_initpara.option_enable & (uint32_t)VLAN_OPTION)){ + reg_temp = enet_initpara.vlan_config; + + reg_value = ENET_MAC_VLT; + /* configure ENET_MAC_VLT register */ + reg_value &= ~(ENET_MAC_VLT_VLTI | ENET_MAC_VLT_VLTC); + reg_value |= reg_temp; + ENET_MAC_VLT = reg_value; + } + + /* configure flow_control related registers */ + if(RESET != (enet_initpara.option_enable & (uint32_t)FLOWCTL_OPTION)){ + reg_temp = enet_initpara.flow_control; + + reg_value = ENET_MAC_FCTL; + temp = reg_temp; + /* configure ENET_MAC_FCTL register */ + reg_value &= ~(ENET_MAC_FCTL_PTM |ENET_MAC_FCTL_DZQP |ENET_MAC_FCTL_PLTS \ + | ENET_MAC_FCTL_UPFDT |ENET_MAC_FCTL_RFCEN |ENET_MAC_FCTL_TFCEN); + temp &= (ENET_MAC_FCTL_PTM |ENET_MAC_FCTL_DZQP |ENET_MAC_FCTL_PLTS \ + | ENET_MAC_FCTL_UPFDT |ENET_MAC_FCTL_RFCEN |ENET_MAC_FCTL_TFCEN); + reg_value |= temp; + ENET_MAC_FCTL = reg_value; + + reg_value = ENET_MAC_FCTH; + temp = reg_temp; + /* configure ENET_MAC_FCTH register */ + reg_value &= ~(ENET_MAC_FCTH_RFA |ENET_MAC_FCTH_RFD); + temp &= ((ENET_MAC_FCTH_RFA | ENET_MAC_FCTH_RFD )<<8); + reg_value |= (temp >> 8); + ENET_MAC_FCTH = reg_value; + } + + /* configure hashtable_high related registers */ + if(RESET != (enet_initpara.option_enable & (uint32_t)HASHH_OPTION)){ + ENET_MAC_HLH = enet_initpara.hashtable_high; + } + + /* configure hashtable_low related registers */ + if(RESET != (enet_initpara.option_enable & (uint32_t)HASHL_OPTION)){ + ENET_MAC_HLL = enet_initpara.hashtable_low; + } + + /* configure framesfilter_mode related registers */ + if(RESET != (enet_initpara.option_enable & (uint32_t)FILTER_OPTION)){ + reg_temp = enet_initpara.framesfilter_mode; + + reg_value = ENET_MAC_FRMF; + /* configure ENET_MAC_FRMF register */ + reg_value &= ~(ENET_MAC_FRMF_SAFLT | ENET_MAC_FRMF_SAIFLT | ENET_MAC_FRMF_DAIFLT \ + | ENET_MAC_FRMF_HMF | ENET_MAC_FRMF_HPFLT | ENET_MAC_FRMF_MFD \ + | ENET_MAC_FRMF_HUF | ENET_MAC_FRMF_PCFRM); + reg_value |= reg_temp; + ENET_MAC_FRMF = reg_value; + } + + /* configure halfduplex_param related registers */ + if(RESET != (enet_initpara.option_enable & (uint32_t)HALFDUPLEX_OPTION)){ + reg_temp = enet_initpara.halfduplex_param; + + reg_value = ENET_MAC_CFG; + /* configure ENET_MAC_CFG register */ + reg_value &= ~(ENET_MAC_CFG_CSD | ENET_MAC_CFG_ROD | ENET_MAC_CFG_RTD \ + | ENET_MAC_CFG_BOL | ENET_MAC_CFG_DFC); + reg_value |= reg_temp; + ENET_MAC_CFG = reg_value; + } + + /* configure timer_config related registers */ + if(RESET != (enet_initpara.option_enable & (uint32_t)TIMER_OPTION)){ + reg_temp = enet_initpara.timer_config; + + reg_value = ENET_MAC_CFG; + /* configure ENET_MAC_CFG register */ + reg_value &= ~(ENET_MAC_CFG_WDD | ENET_MAC_CFG_JBD); + reg_value |= reg_temp; + ENET_MAC_CFG = reg_value; + } + + /* configure interframegap related registers */ + if(RESET != (enet_initpara.option_enable & (uint32_t)INTERFRAMEGAP_OPTION)){ + reg_temp = enet_initpara.interframegap; + + reg_value = ENET_MAC_CFG; + /* configure ENET_MAC_CFG register */ + reg_value &= ~ENET_MAC_CFG_IGBS; + reg_value |= reg_temp; + ENET_MAC_CFG = reg_value; + } + + enet_state = SUCCESS; + return enet_state; +} + +/*! + \brief reset all core internal registers located in CLK_TX and CLK_RX + \param[in] none + \param[out] none + \retval ErrStatus: SUCCESS or ERROR +*/ +ErrStatus enet_software_reset(void) +{ + uint32_t timeout = 0U; + ErrStatus enet_state = ERROR; + uint32_t dma_flag; + + /* reset all core internal registers located in CLK_TX and CLK_RX */ + ENET_DMA_BCTL |= ENET_DMA_BCTL_SWR; + + /* wait for reset operation complete */ + do{ + dma_flag = (ENET_DMA_BCTL & ENET_DMA_BCTL_SWR); + timeout++; + }while((RESET != dma_flag) && (ENET_DELAY_TO != timeout)); + + /* reset operation complete */ + if(RESET == (ENET_DMA_BCTL & ENET_DMA_BCTL_SWR)){ + enet_state = SUCCESS; + } + + return enet_state; +} + +/*! + \brief check receive frame valid and return frame size + \param[in] none + \param[out] none + \retval size of received frame: 0x0 - 0x3FFF +*/ +uint32_t enet_rxframe_size_get(void) +{ + uint32_t size = 0U; + uint32_t status; + + /* get rdes0 information of current RxDMA descriptor */ + status = dma_current_rxdesc->status; + + /* if the desciptor is owned by DMA */ + if((uint32_t)RESET != (status & ENET_RDES0_DAV)){ + return 0U; + } + + /* if has any error, or the frame uses two or more descriptors */ + if((((uint32_t)RESET) != (status & ENET_RDES0_ERRS)) || + (((uint32_t)RESET) == (status & ENET_RDES0_LDES)) || + (((uint32_t)RESET) == (status & ENET_RDES0_FDES))){ + /* drop current receive frame */ + enet_rxframe_drop(); + + return 1U; + } + + /* if is an ethernet-type frame, and IP frame payload error occurred */ + if((((uint32_t)RESET) != (status & ENET_RDES0_FRMT)) && + (((uint32_t)RESET) != (status & ENET_RDES0_PCERR))){ + /* drop current receive frame */ + enet_rxframe_drop(); + + return 1U; + } + + /* if CPU owns current descriptor, no error occured, the frame uses only one descriptor */ + if((((uint32_t)RESET) == (status & ENET_RDES0_DAV)) && + (((uint32_t)RESET) == (status & ENET_RDES0_ERRS)) && + (((uint32_t)RESET) != (status & ENET_RDES0_LDES)) && + (((uint32_t)RESET) != (status & ENET_RDES0_FDES))){ + /* get the size of the received data including CRC */ + size = GET_RDES0_FRML(status); + /* substract the CRC size */ + size = size - 4U; + }else{ + enet_unknow_err++; + enet_rxframe_drop(); + + return 1U; + } + + /* return packet size */ + return size; +} + +/*! + \brief initialize the DMA Tx/Rx descriptors's parameters in chain mode + \param[in] direction: the descriptors which users want to init, refer to enet_dmadirection_enum, + only one parameter can be selected which is shown as below + \arg ENET_DMA_TX: DMA Tx descriptors + \arg ENET_DMA_RX: DMA Rx descriptors + \param[out] none + \retval none +*/ +void enet_descriptors_chain_init(enet_dmadirection_enum direction) +{ + uint32_t num = 0U, count = 0U, maxsize = 0U; + uint32_t desc_status = 0U, desc_bufsize = 0U; + enet_descriptors_struct *desc, *desc_tab; + uint8_t *buf; + + /* if want to initialize DMA Tx descriptors */ + if (ENET_DMA_TX == direction){ + /* save a copy of the DMA Tx descriptors */ + desc_tab = txdesc_tab; + buf = &tx_buff[0][0]; + count = ENET_TXBUF_NUM; + maxsize = ENET_TXBUF_SIZE; + + /* select chain mode */ + desc_status = ENET_TDES0_TCHM; + + /* configure DMA Tx descriptor table address register */ + ENET_DMA_TDTADDR = (uint32_t)desc_tab; + dma_current_txdesc = desc_tab; + }else{ + /* if want to initialize DMA Rx descriptors */ + /* save a copy of the DMA Rx descriptors */ + desc_tab = rxdesc_tab; + buf = &rx_buff[0][0]; + count = ENET_RXBUF_NUM; + maxsize = ENET_RXBUF_SIZE; + + /* enable receiving */ + desc_status = ENET_RDES0_DAV; + /* select receive chained mode and set buffer1 size */ + desc_bufsize = ENET_RDES1_RCHM | (uint32_t)ENET_RXBUF_SIZE; + + /* configure DMA Rx descriptor table address register */ + ENET_DMA_RDTADDR = (uint32_t)desc_tab; + dma_current_rxdesc = desc_tab; + } + dma_current_ptp_rxdesc = NULL; + dma_current_ptp_txdesc = NULL; + + /* configure each descriptor */ + for(num=0U; num < count; num++){ + /* get the pointer to the next descriptor of the descriptor table */ + desc = desc_tab + num; + + /* configure descriptors */ + desc->status = desc_status; + desc->control_buffer_size = desc_bufsize; + desc->buffer1_addr = (uint32_t)(&buf[num * maxsize]); + + /* if is not the last descriptor */ + if(num < (count - 1U)){ + /* configure the next descriptor address */ + desc->buffer2_next_desc_addr = (uint32_t)(desc_tab + num + 1U); + }else{ + /* when it is the last descriptor, the next descriptor address + equals to first descriptor address in descriptor table */ + desc->buffer2_next_desc_addr = (uint32_t) desc_tab; + } + } +} + +/*! + \brief initialize the DMA Tx/Rx descriptors's parameters in ring mode + \param[in] direction: the descriptors which users want to init, refer to enet_dmadirection_enum, + only one parameter can be selected which is shown as below + \arg ENET_DMA_TX: DMA Tx descriptors + \arg ENET_DMA_RX: DMA Rx descriptors + \param[out] none + \retval none +*/ +void enet_descriptors_ring_init(enet_dmadirection_enum direction) +{ + uint32_t num = 0U, count = 0U, maxsize = 0U; + uint32_t desc_status = 0U, desc_bufsize = 0U; + enet_descriptors_struct *desc; + enet_descriptors_struct *desc_tab; + uint8_t *buf; + + /* configure descriptor skip length */ + ENET_DMA_BCTL &= ~ENET_DMA_BCTL_DPSL; + ENET_DMA_BCTL |= DMA_BCTL_DPSL(0); + + /* if want to initialize DMA Tx descriptors */ + if (ENET_DMA_TX == direction){ + /* save a copy of the DMA Tx descriptors */ + desc_tab = txdesc_tab; + buf = &tx_buff[0][0]; + count = ENET_TXBUF_NUM; + maxsize = ENET_TXBUF_SIZE; + + /* configure DMA Tx descriptor table address register */ + ENET_DMA_TDTADDR = (uint32_t)desc_tab; + dma_current_txdesc = desc_tab; + }else{ + /* if want to initialize DMA Rx descriptors */ + /* save a copy of the DMA Rx descriptors */ + desc_tab = rxdesc_tab; + buf = &rx_buff[0][0]; + count = ENET_RXBUF_NUM; + maxsize = ENET_RXBUF_SIZE; + + /* enable receiving */ + desc_status = ENET_RDES0_DAV; + /* set buffer1 size */ + desc_bufsize = ENET_RXBUF_SIZE; + + /* configure DMA Rx descriptor table address register */ + ENET_DMA_RDTADDR = (uint32_t)desc_tab; + dma_current_rxdesc = desc_tab; + } + dma_current_ptp_rxdesc = NULL; + dma_current_ptp_txdesc = NULL; + + /* configure each descriptor */ + for(num=0U; num < count; num++){ + /* get the pointer to the next descriptor of the descriptor table */ + desc = desc_tab + num; + + /* configure descriptors */ + desc->status = desc_status; + desc->control_buffer_size = desc_bufsize; + desc->buffer1_addr = (uint32_t)(&buf[num * maxsize]); + + /* when it is the last descriptor */ + if(num == (count - 1U)){ + if (ENET_DMA_TX == direction){ + /* configure transmit end of ring mode */ + desc->status |= ENET_TDES0_TERM; + }else{ + /* configure receive end of ring mode */ + desc->control_buffer_size |= ENET_RDES1_RERM; + } + } + } +} + +/*! + \brief handle current received frame data to application buffer + \param[in] bufsize: the size of buffer which is the parameter in function + \param[out] buffer: pointer to the received frame data + note -- if the input is NULL, user should copy data in application by himself + \retval ErrStatus: SUCCESS or ERROR +*/ +ErrStatus enet_frame_receive(uint8_t *buffer, uint32_t bufsize) +{ + uint32_t offset = 0U, size = 0U; + + /* the descriptor is busy due to own by the DMA */ + if((uint32_t)RESET != (dma_current_rxdesc->status & ENET_RDES0_DAV)){ + return ERROR; + } + + + /* if buffer pointer is null, indicates that users has copied data in application */ + if(NULL != buffer){ + /* if no error occurs, and the frame uses only one descriptor */ + if((((uint32_t)RESET) == (dma_current_rxdesc->status & ENET_RDES0_ERRS)) && + (((uint32_t)RESET) != (dma_current_rxdesc->status & ENET_RDES0_LDES)) && + (((uint32_t)RESET) != (dma_current_rxdesc->status & ENET_RDES0_FDES))){ + /* get the frame length except CRC */ + size = GET_RDES0_FRML(dma_current_rxdesc->status); + size = size - 4U; + + /* to avoid situation that the frame size exceeds the buffer length */ + if(size > bufsize){ + return ERROR; + } + + /* copy data from Rx buffer to application buffer */ + for(offset = 0U; offsetbuffer1_addr) + offset)); + } + + }else{ + /* return ERROR */ + return ERROR; + } + } + /* enable reception, descriptor is owned by DMA */ + dma_current_rxdesc->status = ENET_RDES0_DAV; + + /* check Rx buffer unavailable flag status */ + if ((uint32_t)RESET != (ENET_DMA_STAT & ENET_DMA_STAT_RBU)){ + /* clear RBU flag */ + ENET_DMA_STAT = ENET_DMA_STAT_RBU; + /* resume DMA reception by writing to the RPEN register*/ + ENET_DMA_RPEN = 0U; + } + + /* update the current RxDMA descriptor pointer to the next decriptor in RxDMA decriptor table */ + /* chained mode */ + if((uint32_t)RESET != (dma_current_rxdesc->control_buffer_size & ENET_RDES1_RCHM)){ + dma_current_rxdesc = (enet_descriptors_struct*) (dma_current_rxdesc->buffer2_next_desc_addr); + }else{ + /* ring mode */ + if((uint32_t)RESET != (dma_current_rxdesc->control_buffer_size & ENET_RDES1_RERM)){ + /* if is the last descriptor in table, the next descriptor is the table header */ + dma_current_rxdesc = (enet_descriptors_struct*) (ENET_DMA_RDTADDR); + }else{ + /* the next descriptor is the current address, add the descriptor size, and descriptor skip length */ + dma_current_rxdesc = (enet_descriptors_struct*) (uint32_t)((uint32_t)dma_current_rxdesc + ETH_DMARXDESC_SIZE + (GET_DMA_BCTL_DPSL(ENET_DMA_BCTL))); + } + } + + return SUCCESS; +} + +/*! + \brief handle application buffer data to transmit it + \param[in] buffer: pointer to the frame data to be transmitted, + note -- if the input is NULL, user should handle the data in application by himself + \param[in] length: the length of frame data to be transmitted + \param[out] none + \retval ErrStatus: SUCCESS or ERROR +*/ +ErrStatus enet_frame_transmit(uint8_t *buffer, uint32_t length) +{ + uint32_t offset = 0U; + uint32_t dma_tbu_flag, dma_tu_flag; + + /* the descriptor is busy due to own by the DMA */ + if((uint32_t)RESET != (dma_current_txdesc->status & ENET_TDES0_DAV)){ + return ERROR; + } + + /* only frame length no more than ENET_MAX_FRAME_SIZE is allowed */ + if(length > ENET_MAX_FRAME_SIZE){ + return ERROR; + } + + /* if buffer pointer is null, indicates that users has handled data in application */ + if(NULL != buffer){ + /* copy frame data from application buffer to Tx buffer */ + for(offset = 0U; offset < length; offset++){ + (*(__IO uint8_t *) (uint32_t)((dma_current_txdesc->buffer1_addr) + offset)) = (*(buffer + offset)); + } + } + + /* set the frame length */ + dma_current_txdesc->control_buffer_size = length; + /* set the segment of frame, frame is transmitted in one descriptor */ + dma_current_txdesc->status |= ENET_TDES0_LSG | ENET_TDES0_FSG; + /* enable the DMA transmission */ + dma_current_txdesc->status |= ENET_TDES0_DAV; + + /* check Tx buffer unavailable flag status */ + dma_tbu_flag = (ENET_DMA_STAT & ENET_DMA_STAT_TBU); + dma_tu_flag = (ENET_DMA_STAT & ENET_DMA_STAT_TU); + + if ((RESET != dma_tbu_flag) || (RESET != dma_tu_flag)){ + /* clear TBU and TU flag */ + ENET_DMA_STAT = (dma_tbu_flag | dma_tu_flag); + /* resume DMA transmission by writing to the TPEN register*/ + ENET_DMA_TPEN = 0U; + } + + /* update the current TxDMA descriptor pointer to the next decriptor in TxDMA decriptor table*/ + /* chained mode */ + if((uint32_t)RESET != (dma_current_txdesc->status & ENET_TDES0_TCHM)){ + dma_current_txdesc = (enet_descriptors_struct*) (dma_current_txdesc->buffer2_next_desc_addr); + }else{ + /* ring mode */ + if((uint32_t)RESET != (dma_current_txdesc->status & ENET_TDES0_TERM)){ + /* if is the last descriptor in table, the next descriptor is the table header */ + dma_current_txdesc = (enet_descriptors_struct*) (ENET_DMA_TDTADDR); + }else{ + /* the next descriptor is the current address, add the descriptor size, and descriptor skip length */ + dma_current_txdesc = (enet_descriptors_struct*) (uint32_t)((uint32_t)dma_current_txdesc + ETH_DMATXDESC_SIZE + (GET_DMA_BCTL_DPSL(ENET_DMA_BCTL))); + } + } + + return SUCCESS; +} + +/*! + \brief configure the transmit IP frame checksum offload calculation and insertion + \param[in] desc: the descriptor pointer which users want to configure + \param[in] checksum: IP frame checksum configuration + only one parameter can be selected which is shown as below + \arg ENET_CHECKSUM_DISABLE: checksum insertion disabled + \arg ENET_CHECKSUM_IPV4HEADER: only IP header checksum calculation and insertion are enabled + \arg ENET_CHECKSUM_TCPUDPICMP_SEGMENT: TCP/UDP/ICMP checksum insertion calculated but pseudo-header + \arg ENET_CHECKSUM_TCPUDPICMP_FULL: TCP/UDP/ICMP checksum insertion fully calculated + \param[out] none + \retval none +*/ +void enet_transmit_checksum_config(enet_descriptors_struct *desc, uint32_t checksum) +{ + desc->status &= ~ENET_TDES0_CM; + desc->status |= checksum; +} + +/*! + \brief ENET Tx and Rx function enable (include MAC and DMA module) + \param[in] none + \param[out] none + \retval none +*/ +void enet_enable(void) +{ + enet_tx_enable(); + enet_rx_enable(); +} + +/*! + \brief ENET Tx and Rx function disable (include MAC and DMA module) + \param[in] none + \param[out] none + \retval none +*/ +void enet_disable(void) +{ + enet_tx_disable(); + enet_rx_disable(); +} + +/*! + \brief configure MAC address + \param[in] mac_addr: select which MAC address will be set, + only one parameter can be selected which is shown as below + \arg ENET_MAC_ADDRESS0: set MAC address 0 filter + \arg ENET_MAC_ADDRESS1: set MAC address 1 filter + \arg ENET_MAC_ADDRESS2: set MAC address 2 filter + \arg ENET_MAC_ADDRESS3: set MAC address 3 filter + \param[in] paddr: the buffer pointer which stores the MAC address + (little-ending store, such as MAC address is aa:bb:cc:dd:ee:22, the buffer is {22, ee, dd, cc, bb, aa}) + \param[out] none + \retval none +*/ +void enet_mac_address_set(enet_macaddress_enum mac_addr, uint8_t paddr[]) +{ + REG32(ENET_ADDRH_BASE + (uint32_t)mac_addr) = ENET_SET_MACADDRH(paddr); + REG32(ENET_ADDRL_BASE + (uint32_t)mac_addr) = ENET_SET_MACADDRL(paddr); +} + +/*! + \brief get MAC address + \param[in] mac_addr: select which MAC address will be get, + only one parameter can be selected which is shown as below + \arg ENET_MAC_ADDRESS0: get MAC address 0 filter + \arg ENET_MAC_ADDRESS1: get MAC address 1 filter + \arg ENET_MAC_ADDRESS2: get MAC address 2 filter + \arg ENET_MAC_ADDRESS3: get MAC address 3 filter + \param[out] paddr: the buffer pointer which is stored the MAC address + (little-ending store, such as mac address is aa:bb:cc:dd:ee:22, the buffer is {22, ee, dd, cc, bb, aa}) + \retval none +*/ +void enet_mac_address_get(enet_macaddress_enum mac_addr, uint8_t paddr[]) +{ + paddr[0] = ENET_GET_MACADDR(mac_addr, 0U); + paddr[1] = ENET_GET_MACADDR(mac_addr, 1U); + paddr[2] = ENET_GET_MACADDR(mac_addr, 2U); + paddr[3] = ENET_GET_MACADDR(mac_addr, 3U); + paddr[4] = ENET_GET_MACADDR(mac_addr, 4U); + paddr[5] = ENET_GET_MACADDR(mac_addr, 5U); +} + +/*! + \brief get the ENET MAC/MSC/PTP/DMA status flag + \param[in] enet_flag: ENET status flag, refer to enet_flag_enum, + only one parameter can be selected which is shown as below + \arg ENET_MAC_FLAG_MPKR: magic packet received flag + \arg ENET_MAC_FLAG_WUFR: wakeup frame received flag + \arg ENET_MAC_FLAG_FLOWCONTROL: flow control status flag + \arg ENET_MAC_FLAG_WUM: WUM status flag + \arg ENET_MAC_FLAG_MSC: MSC status flag + \arg ENET_MAC_FLAG_MSCR: MSC receive status flag + \arg ENET_MAC_FLAG_MSCT: MSC transmit status flag + \arg ENET_MAC_FLAG_TMST: time stamp trigger status flag + \arg ENET_PTP_FLAG_TSSCO: timestamp second counter overflow flag + \arg ENET_PTP_FLAG_TTM: target time match flag + \arg ENET_MSC_FLAG_RFCE: received frames CRC error flag + \arg ENET_MSC_FLAG_RFAE: received frames alignment error flag + \arg ENET_MSC_FLAG_RGUF: received good unicast frames flag + \arg ENET_MSC_FLAG_TGFSC: transmitted good frames single collision flag + \arg ENET_MSC_FLAG_TGFMSC: transmitted good frames more single collision flag + \arg ENET_MSC_FLAG_TGF: transmitted good frames flag + \arg ENET_DMA_FLAG_TS: transmit status flag + \arg ENET_DMA_FLAG_TPS: transmit process stopped status flag + \arg ENET_DMA_FLAG_TBU: transmit buffer unavailable status flag + \arg ENET_DMA_FLAG_TJT: transmit jabber timeout status flag + \arg ENET_DMA_FLAG_RO: receive overflow status flag + \arg ENET_DMA_FLAG_TU: transmit underflow status flag + \arg ENET_DMA_FLAG_RS: receive status flag + \arg ENET_DMA_FLAG_RBU: receive buffer unavailable status flag + \arg ENET_DMA_FLAG_RPS: receive process stopped status flag + \arg ENET_DMA_FLAG_RWT: receive watchdog timeout status flag + \arg ENET_DMA_FLAG_ET: early transmit status flag + \arg ENET_DMA_FLAG_FBE: fatal bus error status flag + \arg ENET_DMA_FLAG_ER: early receive status flag + \arg ENET_DMA_FLAG_AI: abnormal interrupt summary flag + \arg ENET_DMA_FLAG_NI: normal interrupt summary flag + \arg ENET_DMA_FLAG_EB_DMA_ERROR: DMA error flag + \arg ENET_DMA_FLAG_EB_TRANSFER_ERROR: transfer error flag + \arg ENET_DMA_FLAG_EB_ACCESS_ERROR: access error flag + \arg ENET_DMA_FLAG_MSC: MSC status flag + \arg ENET_DMA_FLAG_WUM: WUM status flag + \arg ENET_DMA_FLAG_TST: timestamp trigger status flag + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus enet_flag_get(enet_flag_enum enet_flag) +{ + if(RESET != (ENET_REG_VAL(enet_flag) & BIT(ENET_BIT_POS(enet_flag)))){ + return SET; + }else{ + return RESET; + } +} + +/*! + \brief clear the ENET DMA status flag + \param[in] enet_flag: ENET DMA flag clear, refer to enet_flag_clear_enum + only one parameter can be selected which is shown as below + \arg ENET_DMA_FLAG_TS_CLR: transmit status flag clear + \arg ENET_DMA_FLAG_TPS_CLR: transmit process stopped status flag clear + \arg ENET_DMA_FLAG_TBU_CLR: transmit buffer unavailable status flag clear + \arg ENET_DMA_FLAG_TJT_CLR: transmit jabber timeout status flag clear + \arg ENET_DMA_FLAG_RO_CLR: receive overflow status flag clear + \arg ENET_DMA_FLAG_TU_CLR: transmit underflow status flag clear + \arg ENET_DMA_FLAG_RS_CLR: receive status flag clear + \arg ENET_DMA_FLAG_RBU_CLR: receive buffer unavailable status flag clear + \arg ENET_DMA_FLAG_RPS_CLR: receive process stopped status flag clear + \arg ENET_DMA_FLAG_RWT_CLR: receive watchdog timeout status flag clear + \arg ENET_DMA_FLAG_ET_CLR: early transmit status flag clear + \arg ENET_DMA_FLAG_FBE_CLR: fatal bus error status flag clear + \arg ENET_DMA_FLAG_ER_CLR: early receive status flag clear + \arg ENET_DMA_FLAG_AI_CLR: abnormal interrupt summary flag clear + \arg ENET_DMA_FLAG_NI_CLR: normal interrupt summary flag clear + \param[out] none + \retval none +*/ +void enet_flag_clear(enet_flag_clear_enum enet_flag) +{ + /* write 1 to the corresponding bit in ENET_DMA_STAT, to clear it */ + ENET_REG_VAL(enet_flag) = BIT(ENET_BIT_POS(enet_flag)); +} + +/*! + \brief enable ENET MAC/MSC/DMA interrupt + \param[in] enet_int: ENET interrupt, + only one parameter can be selected which is shown as below + \arg ENET_MAC_INT_WUMIM: WUM interrupt mask + \arg ENET_MAC_INT_TMSTIM: timestamp trigger interrupt mask + \arg ENET_MSC_INT_RFCEIM: received frame CRC error interrupt mask + \arg ENET_MSC_INT_RFAEIM: received frames alignment error interrupt mask + \arg ENET_MSC_INT_RGUFIM: received good unicast frames interrupt mask + \arg ENET_MSC_INT_TGFSCIM: transmitted good frames single collision interrupt mask + \arg ENET_MSC_INT_TGFMSCIM: transmitted good frames more single collision interrupt mask + \arg ENET_MSC_INT_TGFIM: transmitted good frames interrupt mask + \arg ENET_DMA_INT_TIE: transmit interrupt enable + \arg ENET_DMA_INT_TPSIE: transmit process stopped interrupt enable + \arg ENET_DMA_INT_TBUIE: transmit buffer unavailable interrupt enable + \arg ENET_DMA_INT_TJTIE: transmit jabber timeout interrupt enable + \arg ENET_DMA_INT_ROIE: receive overflow interrupt enable + \arg ENET_DMA_INT_TUIE: transmit underflow interrupt enable + \arg ENET_DMA_INT_RIE: receive interrupt enable + \arg ENET_DMA_INT_RBUIE: receive buffer unavailable interrupt enable + \arg ENET_DMA_INT_RPSIE: receive process stopped interrupt enable + \arg ENET_DMA_INT_RWTIE: receive watchdog timeout interrupt enable + \arg ENET_DMA_INT_ETIE: early transmit interrupt enable + \arg ENET_DMA_INT_FBEIE: fatal bus error interrupt enable + \arg ENET_DMA_INT_ERIE: early receive interrupt enable + \arg ENET_DMA_INT_AIE: abnormal interrupt summary enable + \arg ENET_DMA_INT_NIE: normal interrupt summary enable + \param[out] none + \retval none +*/ +void enet_interrupt_enable(enet_int_enum enet_int) +{ + if(DMA_INTEN_REG_OFFSET == ((uint32_t)enet_int >> 6)){ + /* ENET_DMA_INTEN register interrupt */ + ENET_REG_VAL(enet_int) |= BIT(ENET_BIT_POS(enet_int)); + }else{ + /* other INTMSK register interrupt */ + ENET_REG_VAL(enet_int) &= ~BIT(ENET_BIT_POS(enet_int)); + } +} + +/*! + \brief disable ENET MAC/MSC/DMA interrupt + \param[in] enet_int: ENET interrupt, + only one parameter can be selected which is shown as below + \arg ENET_MAC_INT_WUMIM: WUM interrupt mask + \arg ENET_MAC_INT_TMSTIM: timestamp trigger interrupt mask + \arg ENET_MSC_INT_RFCEIM: received frame CRC error interrupt mask + \arg ENET_MSC_INT_RFAEIM: received frames alignment error interrupt mask + \arg ENET_MSC_INT_RGUFIM: received good unicast frames interrupt mask + \arg ENET_MSC_INT_TGFSCIM: transmitted good frames single collision interrupt mask + \arg ENET_MSC_INT_TGFMSCIM: transmitted good frames more single collision interrupt mask + \arg ENET_MSC_INT_TGFIM: transmitted good frames interrupt mask + \arg ENET_DMA_INT_TIE: transmit interrupt enable + \arg ENET_DMA_INT_TPSIE: transmit process stopped interrupt enable + \arg ENET_DMA_INT_TBUIE: transmit buffer unavailable interrupt enable + \arg ENET_DMA_INT_TJTIE: transmit jabber timeout interrupt enable + \arg ENET_DMA_INT_ROIE: receive overflow interrupt enable + \arg ENET_DMA_INT_TUIE: transmit underflow interrupt enable + \arg ENET_DMA_INT_RIE: receive interrupt enable + \arg ENET_DMA_INT_RBUIE: receive buffer unavailable interrupt enable + \arg ENET_DMA_INT_RPSIE: receive process stopped interrupt enable + \arg ENET_DMA_INT_RWTIE: receive watchdog timeout interrupt enable + \arg ENET_DMA_INT_ETIE: early transmit interrupt enable + \arg ENET_DMA_INT_FBEIE: fatal bus error interrupt enable + \arg ENET_DMA_INT_ERIE: early receive interrupt enable + \arg ENET_DMA_INT_AIE: abnormal interrupt summary enable + \arg ENET_DMA_INT_NIE: normal interrupt summary enable + \param[out] none + \retval none +*/ +void enet_interrupt_disable(enet_int_enum enet_int) +{ + if(DMA_INTEN_REG_OFFSET == ((uint32_t)enet_int >> 6)){ + /* ENET_DMA_INTEN register interrupt */ + ENET_REG_VAL(enet_int) &= ~BIT(ENET_BIT_POS(enet_int)); + }else{ + /* other INTMSK register interrupt */ + ENET_REG_VAL(enet_int) |= BIT(ENET_BIT_POS(enet_int)); + } +} + +/*! + \brief get ENET MAC/MSC/DMA interrupt flag + \param[in] int_flag: ENET interrupt flag, + only one parameter can be selected which is shown as below + \arg ENET_MAC_INT_FLAG_WUM: WUM status flag + \arg ENET_MAC_INT_FLAG_MSC: MSC status flag + \arg ENET_MAC_INT_FLAG_MSCR: MSC receive status flag + \arg ENET_MAC_INT_FLAG_MSCT: MSC transmit status flag + \arg ENET_MAC_INT_FLAG_TMST: time stamp trigger status flag + \arg ENET_MSC_INT_FLAG_RFCE: received frames CRC error flag + \arg ENET_MSC_INT_FLAG_RFAE: received frames alignment error flag + \arg ENET_MSC_INT_FLAG_RGUF: received good unicast frames flag + \arg ENET_MSC_INT_FLAG_TGFSC: transmitted good frames single collision flag + \arg ENET_MSC_INT_FLAG_TGFMSC: transmitted good frames more single collision flag + \arg ENET_MSC_INT_FLAG_TGF: transmitted good frames flag + \arg ENET_DMA_INT_FLAG_TS: transmit status flag + \arg ENET_DMA_INT_FLAG_TPS: transmit process stopped status flag + \arg ENET_DMA_INT_FLAG_TBU: transmit buffer unavailable status flag + \arg ENET_DMA_INT_FLAG_TJT: transmit jabber timeout status flag + \arg ENET_DMA_INT_FLAG_RO: receive overflow status flag + \arg ENET_DMA_INT_FLAG_TU: transmit underflow status flag + \arg ENET_DMA_INT_FLAG_RS: receive status flag + \arg ENET_DMA_INT_FLAG_RBU: receive buffer unavailable status flag + \arg ENET_DMA_INT_FLAG_RPS: receive process stopped status flag + \arg ENET_DMA_INT_FLAG_RWT: receive watchdog timeout status flag + \arg ENET_DMA_INT_FLAG_ET: early transmit status flag + \arg ENET_DMA_INT_FLAG_FBE: fatal bus error status flag + \arg ENET_DMA_INT_FLAG_ER: early receive status flag + \arg ENET_DMA_INT_FLAG_AI: abnormal interrupt summary flag + \arg ENET_DMA_INT_FLAG_NI: normal interrupt summary flag + \arg ENET_DMA_INT_FLAG_MSC: MSC status flag + \arg ENET_DMA_INT_FLAG_WUM: WUM status flag + \arg ENET_DMA_INT_FLAG_TST: timestamp trigger status flag + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus enet_interrupt_flag_get(enet_int_flag_enum int_flag) +{ + if(RESET != (ENET_REG_VAL(int_flag) & BIT(ENET_BIT_POS(int_flag)))){ + return SET; + }else{ + return RESET; + } +} + +/*! + \brief clear ENET DMA interrupt flag + \param[in] int_flag_clear: clear ENET interrupt flag, + only one parameter can be selected which is shown as below + \arg ENET_DMA_INT_FLAG_TS_CLR: transmit status flag + \arg ENET_DMA_INT_FLAG_TPS_CLR: transmit process stopped status flag + \arg ENET_DMA_INT_FLAG_TBU_CLR: transmit buffer unavailable status flag + \arg ENET_DMA_INT_FLAG_TJT_CLR: transmit jabber timeout status flag + \arg ENET_DMA_INT_FLAG_RO_CLR: receive overflow status flag + \arg ENET_DMA_INT_FLAG_TU_CLR: transmit underflow status flag + \arg ENET_DMA_INT_FLAG_RS_CLR: receive status flag + \arg ENET_DMA_INT_FLAG_RBU_CLR: receive buffer unavailable status flag + \arg ENET_DMA_INT_FLAG_RPS_CLR: receive process stopped status flag + \arg ENET_DMA_INT_FLAG_RWT_CLR: receive watchdog timeout status flag + \arg ENET_DMA_INT_FLAG_ET_CLR: early transmit status flag + \arg ENET_DMA_INT_FLAG_FBE_CLR: fatal bus error status flag + \arg ENET_DMA_INT_FLAG_ER_CLR: early receive status flag + \arg ENET_DMA_INT_FLAG_AI_CLR: abnormal interrupt summary flag + \arg ENET_DMA_INT_FLAG_NI_CLR: normal interrupt summary flag + \param[out] none + \retval none +*/ +void enet_interrupt_flag_clear(enet_int_flag_clear_enum int_flag_clear) +{ + /* write 1 to the corresponding bit in ENET_DMA_STAT, to clear it */ + ENET_REG_VAL(int_flag_clear) = BIT(ENET_BIT_POS(int_flag_clear)); +} + +/*! + \brief ENET Tx function enable (include MAC and DMA module) + \param[in] none + \param[out] none + \retval none +*/ +void enet_tx_enable(void) +{ + ENET_MAC_CFG |= ENET_MAC_CFG_TEN; + enet_txfifo_flush(); + ENET_DMA_CTL |= ENET_DMA_CTL_STE; +} + +/*! + \brief ENET Tx function disable (include MAC and DMA module) + \param[in] none + \param[out] none + \retval none +*/ +void enet_tx_disable(void) +{ + ENET_DMA_CTL &= ~ENET_DMA_CTL_STE; + enet_txfifo_flush(); + ENET_MAC_CFG &= ~ENET_MAC_CFG_TEN; +} + +/*! + \brief ENET Rx function enable (include MAC and DMA module) + \param[in] none + \param[out] none + \retval none +*/ +void enet_rx_enable(void) +{ + ENET_MAC_CFG |= ENET_MAC_CFG_REN; + ENET_DMA_CTL |= ENET_DMA_CTL_SRE; +} + +/*! + \brief ENET Rx function disable (include MAC and DMA module) + \param[in] none + \param[out] none + \retval none +*/ +void enet_rx_disable(void) +{ + ENET_DMA_CTL &= ~ENET_DMA_CTL_SRE; + ENET_MAC_CFG &= ~ENET_MAC_CFG_REN; +} + +/*! + \brief put registers value into the application buffer + \param[in] type: register type which will be get, refer to enet_registers_type_enum, + only one parameter can be selected which is shown as below + \arg ALL_MAC_REG: get the registers within the offset scope between ENET_MAC_CFG and ENET_MAC_FCTH + \arg ALL_MSC_REG: get the registers within the offset scope between ENET_MSC_CTL and ENET_MSC_RGUFCNT + \arg ALL_PTP_REG: get the registers within the offset scope between ENET_PTP_TSCTL and ENET_PTP_PPSCTL + \arg ALL_DMA_REG: get the registers within the offset scope between ENET_DMA_BCTL and ENET_DMA_CRBADDR + \param[in] num: the number of registers that the user want to get + \param[out] preg: the application buffer pointer for storing the register value + \retval none +*/ +void enet_registers_get(enet_registers_type_enum type, uint32_t *preg, uint32_t num) +{ + uint32_t offset = 0U, max = 0U, limit = 0U; + + offset = (uint32_t)type; + max = (uint32_t)type + num; + limit = sizeof(enet_reg_tab)/sizeof(uint16_t); + + /* prevent element in this array is out of range */ + if(max > limit){ + max = limit; + } + + for(; offset < max; offset++){ + /* get value of the corresponding register */ + *preg = REG32((ENET) + enet_reg_tab[offset]); + preg++; + } +} + +/*! + \brief enable the MAC address filter + \param[in] mac_addr: select which MAC address will be enable + \arg ENET_MAC_ADDRESS1: enable MAC address 1 filter + \arg ENET_MAC_ADDRESS2: enable MAC address 2 filter + \arg ENET_MAC_ADDRESS3: enable MAC address 3 filter + \param[out] none + \retval none +*/ +void enet_address_filter_enable(enet_macaddress_enum mac_addr) +{ + REG32(ENET_ADDRH_BASE + mac_addr) |= ENET_MAC_ADDR1H_AFE; +} + +/*! + \brief disable the MAC address filter + \param[in] mac_addr: select which MAC address will be disable, + only one parameter can be selected which is shown as below + \arg ENET_MAC_ADDRESS1: disable MAC address 1 filter + \arg ENET_MAC_ADDRESS2: disable MAC address 2 filter + \arg ENET_MAC_ADDRESS3: disable MAC address 3 filter + \param[out] none + \retval none +*/ +void enet_address_filter_disable(enet_macaddress_enum mac_addr) +{ + REG32(ENET_ADDRH_BASE + mac_addr) &= ~ENET_MAC_ADDR1H_AFE; +} + +/*! + \brief configure the MAC address filter + \param[in] mac_addr: select which MAC address will be configured, + only one parameter can be selected which is shown as below + \arg ENET_MAC_ADDRESS1: configure MAC address 1 filter + \arg ENET_MAC_ADDRESS2: configure MAC address 2 filter + \arg ENET_MAC_ADDRESS3: configure MAC address 3 filter + \param[in] addr_mask: select which MAC address bytes will be mask, + one or more parameters can be selected which are shown as below + \arg ENET_ADDRESS_MASK_BYTE0: mask ENET_MAC_ADDR1L[7:0] bits + \arg ENET_ADDRESS_MASK_BYTE1: mask ENET_MAC_ADDR1L[15:8] bits + \arg ENET_ADDRESS_MASK_BYTE2: mask ENET_MAC_ADDR1L[23:16] bits + \arg ENET_ADDRESS_MASK_BYTE3: mask ENET_MAC_ADDR1L [31:24] bits + \arg ENET_ADDRESS_MASK_BYTE4: mask ENET_MAC_ADDR1H [7:0] bits + \arg ENET_ADDRESS_MASK_BYTE5: mask ENET_MAC_ADDR1H [15:8] bits + \param[in] filter_type: select which MAC address filter type will be selected, + only one parameter can be selected which is shown as below + \arg ENET_ADDRESS_FILTER_SA: The MAC address is used to compared with the SA field of the received frame + \arg ENET_ADDRESS_FILTER_DA: The MAC address is used to compared with the DA field of the received frame + \param[out] none + \retval none +*/ +void enet_address_filter_config(enet_macaddress_enum mac_addr, uint32_t addr_mask, uint32_t filter_type) +{ + uint32_t reg; + + /* get the address filter register value which is to be configured */ + reg = REG32(ENET_ADDRH_BASE + mac_addr); + + /* clear and configure the address filter register */ + reg &= ~(ENET_MAC_ADDR1H_MB | ENET_MAC_ADDR1H_SAF); + reg |= (addr_mask | filter_type); + REG32(ENET_ADDRH_BASE + mac_addr) = reg; +} + +/*! + \brief PHY interface configuration (configure SMI clock and reset PHY chip) + \param[in] none + \param[out] none + \retval ErrStatus: SUCCESS or ERROR +*/ +ErrStatus enet_phy_config(void) +{ + uint32_t ahbclk; + uint32_t reg; + uint16_t phy_value; + ErrStatus enet_state = ERROR; + + /* clear the previous MDC clock */ + reg = ENET_MAC_PHY_CTL; + reg &= ~ENET_MAC_PHY_CTL_CLR; + + /* get the HCLK frequency */ + ahbclk = rcu_clock_freq_get(CK_AHB); + + /* configure MDC clock according to HCLK frequency range */ + if(ENET_RANGE(ahbclk, 20000000U, 35000000U)){ + reg |= ENET_MDC_HCLK_DIV16; + }else if(ENET_RANGE(ahbclk, 35000000U, 60000000U)){ + reg |= ENET_MDC_HCLK_DIV26; + }else if(ENET_RANGE(ahbclk, 60000000U, 90000000U)){ + reg |= ENET_MDC_HCLK_DIV42; + }else if((ENET_RANGE(ahbclk, 90000000U, 108000000U))||(108000000U == ahbclk)){ + reg |= ENET_MDC_HCLK_DIV62; + }else{ + return enet_state; + } + ENET_MAC_PHY_CTL = reg; + + /* reset PHY */ + phy_value = PHY_RESET; + if(ERROR == (enet_phy_write_read(ENET_PHY_WRITE, PHY_ADDRESS, PHY_REG_BCR, &phy_value))){ + return enet_state; + } + /* PHY reset need some time */ + _ENET_DELAY_(ENET_DELAY_TO); + + /* check whether PHY reset is complete */ + if(ERROR == (enet_phy_write_read(ENET_PHY_READ, PHY_ADDRESS, PHY_REG_BCR, &phy_value))){ + return enet_state; + } + + /* PHY reset complete */ + if(RESET == (phy_value & PHY_RESET)){ + enet_state = SUCCESS; + } + + return enet_state; +} + +/*! + \brief write to / read from a PHY register + \param[in] direction: only one parameter can be selected which is shown as below + \arg ENET_PHY_WRITE: write data to phy register + \arg ENET_PHY_READ: read data from phy register + \param[in] phy_address: 0x0 - 0x1F + \param[in] phy_reg: 0x0 - 0x1F + \param[in] pvalue: the value will be written to the PHY register in ENET_PHY_WRITE direction + \param[out] pvalue: the value will be read from the PHY register in ENET_PHY_READ direction + \retval ErrStatus: SUCCESS or ERROR +*/ +ErrStatus enet_phy_write_read(enet_phydirection_enum direction, uint16_t phy_address, uint16_t phy_reg, uint16_t *pvalue) +{ + uint32_t reg, phy_flag; + uint32_t timeout = 0U; + ErrStatus enet_state = ERROR; + + /* configure ENET_MAC_PHY_CTL with write/read operation */ + reg = ENET_MAC_PHY_CTL; + reg &= ~(ENET_MAC_PHY_CTL_PB | ENET_MAC_PHY_CTL_PW | ENET_MAC_PHY_CTL_PR | ENET_MAC_PHY_CTL_PA); + reg |= (direction | MAC_PHY_CTL_PR(phy_reg) | MAC_PHY_CTL_PA(phy_address) | ENET_MAC_PHY_CTL_PB); + + /* if do the write operation, write value to the register */ + if(ENET_PHY_WRITE == direction){ + ENET_MAC_PHY_DATA = *pvalue; + } + + /* do PHY write/read operation, and wait the operation complete */ + ENET_MAC_PHY_CTL = reg; + do{ + phy_flag = (ENET_MAC_PHY_CTL & ENET_MAC_PHY_CTL_PB); + timeout++; + } + while((RESET != phy_flag) && (ENET_DELAY_TO != timeout)); + + /* write/read operation complete */ + if(RESET == (ENET_MAC_PHY_CTL & ENET_MAC_PHY_CTL_PB)){ + enet_state = SUCCESS; + } + + /* if do the read operation, get value from the register */ + if(ENET_PHY_READ == direction){ + *pvalue = (uint16_t)ENET_MAC_PHY_DATA; + } + + return enet_state; +} + +/*! + \brief enable the loopback function of PHY chip + \param[in] none + \param[out] none + \retval ErrStatus: ERROR or SUCCESS +*/ +ErrStatus enet_phyloopback_enable(void) +{ + uint16_t temp_phy = 0U; + ErrStatus phy_state = ERROR; + + /* get the PHY configuration to update it */ + enet_phy_write_read(ENET_PHY_READ, PHY_ADDRESS, PHY_REG_BCR, &temp_phy); + + /* enable the PHY loopback mode */ + temp_phy |= PHY_LOOPBACK; + + /* update the PHY control register with the new configuration */ + phy_state = enet_phy_write_read(ENET_PHY_WRITE, PHY_ADDRESS, PHY_REG_BCR, &temp_phy); + + return phy_state; +} + +/*! + \brief disable the loopback function of PHY chip + \param[in] none + \param[out] none + \retval ErrStatus: ERROR or SUCCESS +*/ +ErrStatus enet_phyloopback_disable(void) +{ + uint16_t temp_phy = 0U; + ErrStatus phy_state = ERROR; + + /* get the PHY configuration to update it */ + enet_phy_write_read(ENET_PHY_READ, PHY_ADDRESS, PHY_REG_BCR, &temp_phy); + + /* disable the PHY loopback mode */ + temp_phy &= (uint16_t)~PHY_LOOPBACK; + + /* update the PHY control register with the new configuration */ + phy_state = enet_phy_write_read(ENET_PHY_WRITE, PHY_ADDRESS, PHY_REG_BCR, &temp_phy); + + return phy_state; +} + +/*! + \brief enable ENET forward feature + \param[in] feature: the feature of ENET forward mode, + one or more parameters can be selected which are shown as below + \arg ENET_AUTO_PADCRC_DROP: the function of the MAC strips the Pad/FCS field on received frames + \arg ENET_FORWARD_ERRFRAMES: the function that all frame received with error except runt error are forwarded to memory + \arg ENET_FORWARD_UNDERSZ_GOODFRAMES: the function that forwarding undersized good frames + \param[out] none + \retval none +*/ +void enet_forward_feature_enable(uint32_t feature) +{ + uint32_t mask; + + mask = (feature & (~(ENET_FORWARD_ERRFRAMES | ENET_FORWARD_UNDERSZ_GOODFRAMES))); + ENET_MAC_CFG |= mask; + + mask = (feature & (~(ENET_AUTO_PADCRC_DROP))); + ENET_DMA_CTL |= (mask >> 2); +} + +/*! + \brief disable ENET forward feature + \param[in] feature: the feature of ENET forward mode, + one or more parameters can be selected which are shown as below + \arg ENET_AUTO_PADCRC_DROP: the function of the MAC strips the Pad/FCS field on received frames + \arg ENET_FORWARD_ERRFRAMES: the function that all frame received with error except runt error are forwarded to memory + \arg ENET_FORWARD_UNDERSZ_GOODFRAMES: the function that forwarding undersized good frames + \param[out] none + \retval none +*/ +void enet_forward_feature_disable(uint32_t feature) +{ + uint32_t mask; + + mask = (feature & (~(ENET_FORWARD_ERRFRAMES | ENET_FORWARD_UNDERSZ_GOODFRAMES))); + ENET_MAC_CFG &= ~mask; + + mask = (feature & (~(ENET_AUTO_PADCRC_DROP))); + ENET_DMA_CTL &= ~(mask >> 2); +} + +/*! + \brief enable ENET filter feature + \param[in] feature: the feature of ENET filter mode, + one or more parameters can be selected which are shown as below + \arg ENET_SRC_FILTER: filter source address function + \arg ENET_SRC_FILTER_INVERSE: inverse source address filtering result function + \arg ENET_DEST_FILTER_INVERSE: inverse DA filtering result function + \arg ENET_MULTICAST_FILTER_PASS: pass all multicast frames function + \arg ENET_MULTICAST_FILTER_HASH_MODE: HASH multicast filter function + \arg ENET_UNICAST_FILTER_HASH_MODE: HASH unicast filter function + \arg ENET_FILTER_MODE_EITHER: HASH or perfect filter function + \param[out] none + \retval none +*/ +void enet_filter_feature_enable(uint32_t feature) +{ + ENET_MAC_FRMF |= feature; +} + +/*! + \brief disable ENET filter feature + \param[in] feature: the feature of ENET filter mode, + one or more parameters can be selected which are shown as below + \arg ENET_SRC_FILTER: filter source address function + \arg ENET_SRC_FILTER_INVERSE: inverse source address filtering result function + \arg ENET_DEST_FILTER_INVERSE: inverse DA filtering result function + \arg ENET_MULTICAST_FILTER_PASS: pass all multicast frames function + \arg ENET_MULTICAST_FILTER_HASH_MODE: HASH multicast filter function + \arg ENET_UNICAST_FILTER_HASH_MODE: HASH unicast filter function + \arg ENET_FILTER_MODE_EITHER: HASH or perfect filter function + \param[out] none + \retval none +*/ +void enet_filter_feature_disable(uint32_t feature) +{ + ENET_MAC_FRMF &= ~feature; +} + +/*! + \brief generate the pause frame, ENET will send pause frame after enable transmit flow control + this function only use in full-dulex mode + \param[in] none + \param[out] none + \retval ErrStatus: ERROR or SUCCESS +*/ +ErrStatus enet_pauseframe_generate(void) +{ + ErrStatus enet_state =ERROR; + uint32_t temp = 0U; + + /* in full-duplex mode, must make sure this bit is 0 before writing register */ + temp = ENET_MAC_FCTL & ENET_MAC_FCTL_FLCBBKPA; + if(RESET == temp){ + ENET_MAC_FCTL |= ENET_MAC_FCTL_FLCBBKPA; + enet_state = SUCCESS; + } + return enet_state; +} + +/*! + \brief configure the pause frame detect type + \param[in] detect: pause frame detect type, + only one parameter can be selected which is shown as below + \arg ENET_MAC0_AND_UNIQUE_ADDRESS_PAUSEDETECT: besides the unique multicast address, MAC can also + use the MAC0 address to detecting pause frame + \arg ENET_UNIQUE_PAUSEDETECT: only the unique multicast address for pause frame which is specified + in IEEE802.3 can be detected + \param[out] none + \retval none +*/ +void enet_pauseframe_detect_config(uint32_t detect) +{ + ENET_MAC_FCTL &= ~ENET_MAC_FCTL_UPFDT; + ENET_MAC_FCTL |= detect; +} + +/*! + \brief configure the pause frame parameters + \param[in] pausetime: pause time in transmit pause control frame + \param[in] pause_threshold: the threshold of the pause timer for retransmitting frames automatically, + this value must make sure to be less than configured pause time, only one parameter can be + selected which is shown as below + \arg ENET_PAUSETIME_MINUS4: pause time minus 4 slot times + \arg ENET_PAUSETIME_MINUS28: pause time minus 28 slot times + \arg ENET_PAUSETIME_MINUS144: pause time minus 144 slot times + \arg ENET_PAUSETIME_MINUS256: pause time minus 256 slot times + \param[out] none + \retval none +*/ +void enet_pauseframe_config(uint32_t pausetime, uint32_t pause_threshold) +{ + ENET_MAC_FCTL &= ~(ENET_MAC_FCTL_PTM | ENET_MAC_FCTL_PLTS); + ENET_MAC_FCTL |= (MAC_FCTL_PTM(pausetime) | pause_threshold); +} + +/*! + \brief configure the threshold of the flow control(deactive and active threshold) + \param[in] deactive: the threshold of the deactive flow control, this value + should always be less than active flow control value, only one + parameter can be selected which is shown as below + \arg ENET_DEACTIVE_THRESHOLD_256BYTES: threshold level is 256 bytes + \arg ENET_DEACTIVE_THRESHOLD_512BYTES: threshold level is 512 bytes + \arg ENET_DEACTIVE_THRESHOLD_768BYTES: threshold level is 768 bytes + \arg ENET_DEACTIVE_THRESHOLD_1024BYTES: threshold level is 1024 bytes + \arg ENET_DEACTIVE_THRESHOLD_1280BYTES: threshold level is 1280 bytes + \arg ENET_DEACTIVE_THRESHOLD_1536BYTES: threshold level is 1536 bytes + \arg ENET_DEACTIVE_THRESHOLD_1792BYTES: threshold level is 1792 bytes + \param[in] active: the threshold of the active flow control, only one parameter + can be selected which is shown as below + \arg ENET_ACTIVE_THRESHOLD_256BYTES: threshold level is 256 bytes + \arg ENET_ACTIVE_THRESHOLD_512BYTES: threshold level is 512 bytes + \arg ENET_ACTIVE_THRESHOLD_768BYTES: threshold level is 768 bytes + \arg ENET_ACTIVE_THRESHOLD_1024BYTES: threshold level is 1024 bytes + \arg ENET_ACTIVE_THRESHOLD_1280BYTES: threshold level is 1280 bytes + \arg ENET_ACTIVE_THRESHOLD_1536BYTES: threshold level is 1536 bytes + \arg ENET_ACTIVE_THRESHOLD_1792BYTES: threshold level is 1792 bytes + \param[out] none + \retval none +*/ +void enet_flowcontrol_threshold_config(uint32_t deactive, uint32_t active) +{ + ENET_MAC_FCTH = ((deactive | active) >> 8); +} + +/*! + \brief enable ENET flow control feature + \param[in] feature: the feature of ENET flow control mode + one or more parameters can be selected which are shown as below + \arg ENET_ZERO_QUANTA_PAUSE: the automatic zero-quanta generation function + \arg ENET_TX_FLOWCONTROL: the flow control operation in the MAC + \arg ENET_RX_FLOWCONTROL: decoding function for the received pause frame and process it + \arg ENET_BACK_PRESSURE: back pressure operation in the MAC(only use in half-dulex mode) + \param[out] none + \retval none +*/ +void enet_flowcontrol_feature_enable(uint32_t feature) +{ + if(RESET != (feature & ENET_ZERO_QUANTA_PAUSE)){ + ENET_MAC_FCTL &= ~ENET_ZERO_QUANTA_PAUSE; + } + feature &= ~ENET_ZERO_QUANTA_PAUSE; + ENET_MAC_FCTL |= feature; +} + +/*! + \brief disable ENET flow control feature + \param[in] feature: the feature of ENET flow control mode + one or more parameters can be selected which are shown as below + \arg ENET_ZERO_QUANTA_PAUSE: the automatic zero-quanta generation function + \arg ENET_TX_FLOWCONTROL: the flow control operation in the MAC + \arg ENET_RX_FLOWCONTROL: decoding function for the received pause frame and process it + \arg ENET_BACK_PRESSURE: back pressure operation in the MAC(only use in half-dulex mode) + \param[out] none + \retval none +*/ +void enet_flowcontrol_feature_disable(uint32_t feature) +{ + if(RESET != (feature & ENET_ZERO_QUANTA_PAUSE)){ + ENET_MAC_FCTL |= ENET_ZERO_QUANTA_PAUSE; + } + feature &= ~ENET_ZERO_QUANTA_PAUSE; + ENET_MAC_FCTL &= ~feature; +} + +/*! + \brief get the dma transmit/receive process state + \param[in] direction: choose the direction of dma process which users want to check, + refer to enet_dmadirection_enum, only one parameter can be selected which is shown as below + \arg ENET_DMA_TX: dma transmit process + \arg ENET_DMA_RX: dma receive process + \param[out] none + \retval state of dma process, the value range shows below: + ENET_RX_STATE_STOPPED, ENET_RX_STATE_FETCHING, ENET_RX_STATE_WAITING, + ENET_RX_STATE_SUSPENDED, ENET_RX_STATE_CLOSING, ENET_RX_STATE_QUEUING, + ENET_TX_STATE_STOPPED, ENET_TX_STATE_FETCHING, ENET_TX_STATE_WAITING, + ENET_TX_STATE_READING, ENET_TX_STATE_SUSPENDED, ENET_TX_STATE_CLOSING +*/ +uint32_t enet_dmaprocess_state_get(enet_dmadirection_enum direction) +{ + uint32_t reval; + reval = (uint32_t)(ENET_DMA_STAT & (uint32_t)direction); + return reval; +} + +/*! + \brief poll the DMA transmission/reception enable by writing any value to the + ENET_DMA_TPEN/ENET_DMA_RPEN register, this will make the DMA to resume transmission/reception + \param[in] direction: choose the direction of DMA process which users want to resume, + refer to enet_dmadirection_enum, only one parameter can be selected which is shown as below + \arg ENET_DMA_TX: DMA transmit process + \arg ENET_DMA_RX: DMA receive process + \param[out] none + \retval none +*/ +void enet_dmaprocess_resume(enet_dmadirection_enum direction) +{ + if(ENET_DMA_TX == direction){ + ENET_DMA_TPEN = 0U; + }else{ + ENET_DMA_RPEN = 0U; + } +} + +/*! + \brief check and recover the Rx process + \param[in] none + \param[out] none + \retval none +*/ +void enet_rxprocess_check_recovery(void) +{ + uint32_t status; + + /* get DAV information of current RxDMA descriptor */ + status = dma_current_rxdesc->status; + status &= ENET_RDES0_DAV; + + /* if current descriptor is owned by DMA, but the descriptor address mismatches with + receive descriptor address pointer updated by RxDMA controller */ + if((ENET_DMA_CRDADDR != ((uint32_t)dma_current_rxdesc)) && + (ENET_RDES0_DAV == status)){ + dma_current_rxdesc = (enet_descriptors_struct*)ENET_DMA_CRDADDR; + } +} + +/*! + \brief flush the ENET transmit FIFO, and wait until the flush operation completes + \param[in] none + \param[out] none + \retval ErrStatus: ERROR or SUCCESS +*/ +ErrStatus enet_txfifo_flush(void) +{ + uint32_t flush_state; + uint32_t timeout = 0U; + ErrStatus enet_state = ERROR; + + /* set the FTF bit for flushing transmit FIFO */ + ENET_DMA_CTL |= ENET_DMA_CTL_FTF; + /* wait until the flush operation completes */ + do{ + flush_state = ENET_DMA_CTL & ENET_DMA_CTL_FTF; + timeout++; + }while((RESET != flush_state) && (timeout < ENET_DELAY_TO)); + /* return ERROR due to timeout */ + if(RESET == flush_state){ + enet_state = SUCCESS; + } + + return enet_state; +} + +/*! + \brief get the transmit/receive address of current descriptor, or current buffer, or descriptor table + \param[in] addr_get: choose the address which users want to get, refer to enet_desc_reg_enum, + only one parameter can be selected which is shown as below + \arg ENET_RX_DESC_TABLE: the start address of the receive descriptor table + \arg ENET_RX_CURRENT_DESC: the start descriptor address of the current receive descriptor read by + the RxDMA controller + \arg ENET_RX_CURRENT_BUFFER: the current receive buffer address being read by the RxDMA controller + \arg ENET_TX_DESC_TABLE: the start address of the transmit descriptor table + \arg ENET_TX_CURRENT_DESC: the start descriptor address of the current transmit descriptor read by + the TxDMA controller + \arg ENET_TX_CURRENT_BUFFER: the current transmit buffer address being read by the TxDMA controller + \param[out] none + \retval address value +*/ +uint32_t enet_current_desc_address_get(enet_desc_reg_enum addr_get) +{ + uint32_t reval = 0U; + + reval = REG32((ENET) +(uint32_t)addr_get); + return reval; +} + +/*! + \brief get the Tx or Rx descriptor information + \param[in] desc: the descriptor pointer which users want to get information + \param[in] info_get: the descriptor information type which is selected, + only one parameter can be selected which is shown as below + \arg RXDESC_BUFFER_1_SIZE: receive buffer 1 size + \arg RXDESC_BUFFER_2_SIZE: receive buffer 2 size + \arg RXDESC_FRAME_LENGTH: the byte length of the received frame that was transferred to the buffer + \arg TXDESC_COLLISION_COUNT: the number of collisions occurred before the frame was transmitted + \arg RXDESC_BUFFER_1_ADDR: the buffer1 address of the Rx frame + \arg TXDESC_BUFFER_1_ADDR: the buffer1 address of the Tx frame + \param[out] none + \retval descriptor information, if value is 0xFFFFFFFFU, means the false input parameter +*/ +uint32_t enet_desc_information_get(enet_descriptors_struct *desc, enet_descstate_enum info_get) +{ + uint32_t reval = 0xFFFFFFFFU; + + switch(info_get){ + case RXDESC_BUFFER_1_SIZE: + reval = GET_RDES1_RB1S(desc->control_buffer_size); + break; + case RXDESC_BUFFER_2_SIZE: + reval = GET_RDES1_RB2S(desc->control_buffer_size); + break; + case RXDESC_FRAME_LENGTH: + reval = GET_RDES0_FRML(desc->status); + if(reval > 4U){ + reval = reval - 4U; + }else{ + reval = 0U; + } + break; + case RXDESC_BUFFER_1_ADDR: + reval = desc->buffer1_addr; + break; + case TXDESC_BUFFER_1_ADDR: + reval = desc->buffer1_addr; + break; + case TXDESC_COLLISION_COUNT: + reval = GET_TDES0_COCNT(desc->status); + break; + default: + break; + } + return reval; +} + +/*! + \brief get the number of missed frames during receiving + \param[in] none + \param[out] rxfifo_drop: pointer to the number of frames dropped by RxFIFO + \param[out] rxdma_drop: pointer to the number of frames missed by the RxDMA controller + \retval none +*/ +void enet_missed_frame_counter_get(uint32_t *rxfifo_drop, uint32_t *rxdma_drop) +{ + uint32_t temp_counter = 0U; + + temp_counter = ENET_DMA_MFBOCNT; + *rxfifo_drop = GET_DMA_MFBOCNT_MSFA(temp_counter); + *rxdma_drop = GET_DMA_MFBOCNT_MSFC(temp_counter); +} + +/*! + \brief get the bit flag of ENET DMA descriptor + \param[in] desc: the descriptor pointer which users want to get flag + \param[in] desc_flag: the bit flag of ENET DMA descriptor, + only one parameter can be selected which is shown as below + \arg ENET_TDES0_DB: deferred + \arg ENET_TDES0_UFE: underflow error + \arg ENET_TDES0_EXD: excessive deferral + \arg ENET_TDES0_VFRM: VLAN frame + \arg ENET_TDES0_ECO: excessive collision + \arg ENET_TDES0_LCO: late collision + \arg ENET_TDES0_NCA: no carrier + \arg ENET_TDES0_LCA: loss of carrier + \arg ENET_TDES0_IPPE: IP payload error + \arg ENET_TDES0_FRMF: frame flushed + \arg ENET_TDES0_JT: jabber timeout + \arg ENET_TDES0_ES: error summary + \arg ENET_TDES0_IPHE: IP header error + \arg ENET_TDES0_TTMSS: transmit timestamp status + \arg ENET_TDES0_TCHM: the second address chained mode + \arg ENET_TDES0_TERM: transmit end of ring mode + \arg ENET_TDES0_TTSEN: transmit timestamp function enable + \arg ENET_TDES0_DPAD: disable adding pad + \arg ENET_TDES0_DCRC: disable CRC + \arg ENET_TDES0_FSG: first segment + \arg ENET_TDES0_LSG: last segment + \arg ENET_TDES0_INTC: interrupt on completion + \arg ENET_TDES0_DAV: DAV bit + + \arg ENET_RDES0_PCERR: payload checksum error + \arg ENET_RDES0_CERR: CRC error + \arg ENET_RDES0_DBERR: dribble bit error + \arg ENET_RDES0_RERR: receive error + \arg ENET_RDES0_RWDT: receive watchdog timeout + \arg ENET_RDES0_FRMT: frame type + \arg ENET_RDES0_LCO: late collision + \arg ENET_RDES0_IPHERR: IP frame header error + \arg ENET_RDES0_LDES: last descriptor + \arg ENET_RDES0_FDES: first descriptor + \arg ENET_RDES0_VTAG: VLAN tag + \arg ENET_RDES0_OERR: overflow error + \arg ENET_RDES0_LERR: length error + \arg ENET_RDES0_SAFF: SA filter fail + \arg ENET_RDES0_DERR: descriptor error + \arg ENET_RDES0_ERRS: error summary + \arg ENET_RDES0_DAFF: destination address filter fail + \arg ENET_RDES0_DAV: descriptor available + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus enet_desc_flag_get(enet_descriptors_struct *desc, uint32_t desc_flag) +{ + FlagStatus enet_flag = RESET; + + if ((uint32_t)RESET != (desc->status & desc_flag)){ + enet_flag = SET; + } + + return enet_flag; +} + +/*! + \brief set the bit flag of ENET DMA descriptor + \param[in] desc: the descriptor pointer which users want to set flag + \param[in] desc_flag: the bit flag of ENET DMA descriptor, + only one parameter can be selected which is shown as below + \arg ENET_TDES0_VFRM: VLAN frame + \arg ENET_TDES0_FRMF: frame flushed + \arg ENET_TDES0_TCHM: the second address chained mode + \arg ENET_TDES0_TERM: transmit end of ring mode + \arg ENET_TDES0_TTSEN: transmit timestamp function enable + \arg ENET_TDES0_DPAD: disable adding pad + \arg ENET_TDES0_DCRC: disable CRC + \arg ENET_TDES0_FSG: first segment + \arg ENET_TDES0_LSG: last segment + \arg ENET_TDES0_INTC: interrupt on completion + \arg ENET_TDES0_DAV: DAV bit + \arg ENET_RDES0_DAV: descriptor available + \param[out] none + \retval none +*/ +void enet_desc_flag_set(enet_descriptors_struct *desc, uint32_t desc_flag) +{ + desc->status |= desc_flag; +} + +/*! + \brief clear the bit flag of ENET DMA descriptor + \param[in] desc: the descriptor pointer which users want to clear flag + \param[in] desc_flag: the bit flag of ENET DMA descriptor, + only one parameter can be selected which is shown as below + \arg ENET_TDES0_VFRM: VLAN frame + \arg ENET_TDES0_FRMF: frame flushed + \arg ENET_TDES0_TCHM: the second address chained mode + \arg ENET_TDES0_TERM: transmit end of ring mode + \arg ENET_TDES0_TTSEN: transmit timestamp function enable + \arg ENET_TDES0_DPAD: disable adding pad + \arg ENET_TDES0_DCRC: disable CRC + \arg ENET_TDES0_FSG: first segment + \arg ENET_TDES0_LSG: last segment + \arg ENET_TDES0_INTC: interrupt on completion + \arg ENET_TDES0_DAV: DAV bit + \arg ENET_RDES0_DAV: descriptor available + \param[out] none + \retval none +*/ +void enet_desc_flag_clear(enet_descriptors_struct *desc, uint32_t desc_flag) +{ + desc->status &= ~desc_flag; +} + +/*! + \brief when receiving completed, set RS bit in ENET_DMA_STAT register will set + \param[in] desc: the descriptor pointer which users want to configure + \param[out] none + \retval none +*/ +void enet_desc_receive_complete_bit_enable(enet_descriptors_struct *desc) +{ + desc->control_buffer_size &= ~ENET_RDES1_DINTC; +} + +/*! + \brief when receiving completed, set RS bit in ENET_DMA_STAT register will not set + \param[in] desc: the descriptor pointer which users want to configure + \param[out] none + \retval none +*/ +void enet_desc_receive_complete_bit_disable(enet_descriptors_struct *desc) +{ + desc->control_buffer_size |= ENET_RDES1_DINTC; +} + +/*! + \brief drop current receive frame + \param[in] none + \param[out] none + \retval none +*/ +void enet_rxframe_drop(void) +{ + /* enable reception, descriptor is owned by DMA */ + dma_current_rxdesc->status = ENET_RDES0_DAV; + + /* chained mode */ + if((uint32_t)RESET != (dma_current_rxdesc->control_buffer_size & ENET_RDES1_RCHM)){ + if(NULL != dma_current_ptp_rxdesc){ + dma_current_rxdesc = (enet_descriptors_struct*) (dma_current_ptp_rxdesc->buffer2_next_desc_addr); + /* if it is the last ptp descriptor */ + if(0U != dma_current_ptp_rxdesc->status){ + /* pointer back to the first ptp descriptor address in the desc_ptptab list address */ + dma_current_ptp_rxdesc = (enet_descriptors_struct*) (dma_current_ptp_rxdesc->status); + }else{ + /* ponter to the next ptp descriptor */ + dma_current_ptp_rxdesc++; + } + }else{ + dma_current_rxdesc = (enet_descriptors_struct*) (dma_current_rxdesc->buffer2_next_desc_addr); + } + + }else{ + /* ring mode */ + if((uint32_t)RESET != (dma_current_rxdesc->control_buffer_size & ENET_RDES1_RERM)){ + /* if is the last descriptor in table, the next descriptor is the table header */ + dma_current_rxdesc = (enet_descriptors_struct*) (ENET_DMA_RDTADDR); + if(NULL != dma_current_ptp_rxdesc){ + dma_current_ptp_rxdesc = (enet_descriptors_struct*) (dma_current_ptp_rxdesc->status); + } + }else{ + /* the next descriptor is the current address, add the descriptor size, and descriptor skip length */ + dma_current_rxdesc = (enet_descriptors_struct*) (uint32_t)((uint32_t)dma_current_rxdesc + ETH_DMARXDESC_SIZE + GET_DMA_BCTL_DPSL(ENET_DMA_BCTL)); + if(NULL != dma_current_ptp_rxdesc){ + dma_current_ptp_rxdesc++; + } + } + } +} + +/*! + \brief enable DMA feature + \param[in] feature: the feature of DMA mode, + one or more parameters can be selected which are shown as below + \arg ENET_NO_FLUSH_RXFRAME: RxDMA does not flushes frames function + \arg ENET_SECONDFRAME_OPT: TxDMA controller operate on second frame function + \param[out] none + \retval none +*/ +void enet_dma_feature_enable(uint32_t feature) +{ + ENET_DMA_CTL |= feature; +} + +/*! + \brief disable DMA feature + \param[in] feature: the feature of DMA mode, + one or more parameters can be selected which are shown as below + \arg ENET_NO_FLUSH_RXFRAME: RxDMA does not flushes frames function + \arg ENET_SECONDFRAME_OPT: TxDMA controller operate on second frame function + \param[out] none + \retval none +*/ +void enet_dma_feature_disable(uint32_t feature) +{ + ENET_DMA_CTL &= ~feature; +} + +/*! + \brief initialize the DMA Tx/Rx descriptors's parameters in normal chain mode with PTP function + \param[in] direction: the descriptors which users want to init, refer to enet_dmadirection_enum, + only one parameter can be selected which is shown as below + \arg ENET_DMA_TX: DMA Tx descriptors + \arg ENET_DMA_RX: DMA Rx descriptors + \param[in] desc_ptptab: pointer to the first descriptor address of PTP Rx descriptor table + \param[out] none + \retval none +*/ +void enet_ptp_normal_descriptors_chain_init(enet_dmadirection_enum direction, enet_descriptors_struct *desc_ptptab) +{ + uint32_t num = 0U, count = 0U, maxsize = 0U; + uint32_t desc_status = 0U, desc_bufsize = 0U; + enet_descriptors_struct *desc, *desc_tab; + uint8_t *buf; + + /* if want to initialize DMA Tx descriptors */ + if (ENET_DMA_TX == direction){ + /* save a copy of the DMA Tx descriptors */ + desc_tab = txdesc_tab; + buf = &tx_buff[0][0]; + count = ENET_TXBUF_NUM; + maxsize = ENET_TXBUF_SIZE; + + /* select chain mode, and enable transmit timestamp function */ + desc_status = ENET_TDES0_TCHM | ENET_TDES0_TTSEN; + + /* configure DMA Tx descriptor table address register */ + ENET_DMA_TDTADDR = (uint32_t)desc_tab; + dma_current_txdesc = desc_tab; + dma_current_ptp_txdesc = desc_ptptab; + }else{ + /* if want to initialize DMA Rx descriptors */ + /* save a copy of the DMA Rx descriptors */ + desc_tab = rxdesc_tab; + buf = &rx_buff[0][0]; + count = ENET_RXBUF_NUM; + maxsize = ENET_RXBUF_SIZE; + + /* enable receiving */ + desc_status = ENET_RDES0_DAV; + /* select receive chained mode and set buffer1 size */ + desc_bufsize = ENET_RDES1_RCHM | (uint32_t)ENET_RXBUF_SIZE; + + /* configure DMA Rx descriptor table address register */ + ENET_DMA_RDTADDR = (uint32_t)desc_tab; + dma_current_rxdesc = desc_tab; + dma_current_ptp_rxdesc = desc_ptptab; + } + + /* configure each descriptor */ + for(num = 0U; num < count; num++){ + /* get the pointer to the next descriptor of the descriptor table */ + desc = desc_tab + num; + + /* configure descriptors */ + desc->status = desc_status; + desc->control_buffer_size = desc_bufsize; + desc->buffer1_addr = (uint32_t)(&buf[num * maxsize]); + + /* if is not the last descriptor */ + if(num < (count - 1U)){ + /* configure the next descriptor address */ + desc->buffer2_next_desc_addr = (uint32_t)(desc_tab + num + 1U); + }else{ + /* when it is the last descriptor, the next descriptor address + equals to first descriptor address in descriptor table */ + desc->buffer2_next_desc_addr = (uint32_t)desc_tab; + } + /* set desc_ptptab equal to desc_tab */ + (&desc_ptptab[num])->buffer1_addr = desc->buffer1_addr; + (&desc_ptptab[num])->buffer2_next_desc_addr = desc->buffer2_next_desc_addr; + } + /* when it is the last ptp descriptor, preserve the first descriptor + address of desc_ptptab in ptp descriptor status */ + (&desc_ptptab[num-1U])->status = (uint32_t)desc_ptptab; +} + +/*! + \brief initialize the DMA Tx/Rx descriptors's parameters in normal ring mode with PTP function + \param[in] direction: the descriptors which users want to init, refer to enet_dmadirection_enum, + only one parameter can be selected which is shown as below + \arg ENET_DMA_TX: DMA Tx descriptors + \arg ENET_DMA_RX: DMA Rx descriptors + \param[in] desc_ptptab: pointer to the first descriptor address of PTP Rx descriptor table + \param[out] none + \retval none +*/ +void enet_ptp_normal_descriptors_ring_init(enet_dmadirection_enum direction, enet_descriptors_struct *desc_ptptab) +{ + uint32_t num = 0U, count = 0U, maxsize = 0U; + uint32_t desc_status = 0U, desc_bufsize = 0U; + enet_descriptors_struct *desc, *desc_tab; + uint8_t *buf; + + /* configure descriptor skip length */ + ENET_DMA_BCTL &= ~ENET_DMA_BCTL_DPSL; + ENET_DMA_BCTL |= DMA_BCTL_DPSL(0); + + /* if want to initialize DMA Tx descriptors */ + if (ENET_DMA_TX == direction){ + /* save a copy of the DMA Tx descriptors */ + desc_tab = txdesc_tab; + buf = &tx_buff[0][0]; + count = ENET_TXBUF_NUM; + maxsize = ENET_TXBUF_SIZE; + + /* select ring mode, and enable transmit timestamp function */ + desc_status = ENET_TDES0_TTSEN; + + /* configure DMA Tx descriptor table address register */ + ENET_DMA_TDTADDR = (uint32_t)desc_tab; + dma_current_txdesc = desc_tab; + dma_current_ptp_txdesc = desc_ptptab; + }else{ + /* if want to initialize DMA Rx descriptors */ + /* save a copy of the DMA Rx descriptors */ + desc_tab = rxdesc_tab; + buf = &rx_buff[0][0]; + count = ENET_RXBUF_NUM; + maxsize = ENET_RXBUF_SIZE; + + /* enable receiving */ + desc_status = ENET_RDES0_DAV; + /* select receive ring mode and set buffer1 size */ + desc_bufsize = (uint32_t)ENET_RXBUF_SIZE; + + /* configure DMA Rx descriptor table address register */ + ENET_DMA_RDTADDR = (uint32_t)desc_tab; + dma_current_rxdesc = desc_tab; + dma_current_ptp_rxdesc = desc_ptptab; + } + + /* configure each descriptor */ + for(num = 0U; num < count; num++){ + /* get the pointer to the next descriptor of the descriptor table */ + desc = desc_tab + num; + + /* configure descriptors */ + desc->status = desc_status; + desc->control_buffer_size = desc_bufsize; + desc->buffer1_addr = (uint32_t)(&buf[num * maxsize]); + + /* when it is the last descriptor */ + if(num == (count - 1U)){ + if (ENET_DMA_TX == direction){ + /* configure transmit end of ring mode */ + desc->status |= ENET_TDES0_TERM; + }else{ + /* configure receive end of ring mode */ + desc->control_buffer_size |= ENET_RDES1_RERM; + } + } + /* set desc_ptptab equal to desc_tab */ + (&desc_ptptab[num])->buffer1_addr = desc->buffer1_addr; + (&desc_ptptab[num])->buffer2_next_desc_addr = desc->buffer2_next_desc_addr; + } + /* when it is the last ptp descriptor, preserve the first descriptor + address of desc_ptptab in ptp descriptor status */ + (&desc_ptptab[num-1U])->status = (uint32_t)desc_ptptab; +} + +/*! + \brief receive a packet data with timestamp values to application buffer, when the DMA is in normal mode + \param[in] bufsize: the size of buffer which is the parameter in function + \param[out] timestamp: pointer to the table which stores the timestamp high and low + \param[out] buffer: pointer to the application buffer + note -- if the input is NULL, user should copy data in application by himself + \retval ErrStatus: SUCCESS or ERROR +*/ +ErrStatus enet_ptpframe_receive_normal_mode(uint8_t *buffer, uint32_t bufsize, uint32_t timestamp[]) +{ + uint32_t offset = 0U, size = 0U; + + /* the descriptor is busy due to own by the DMA */ + if((uint32_t)RESET != (dma_current_rxdesc->status & ENET_RDES0_DAV)){ + return ERROR; + } + + /* if buffer pointer is null, indicates that users has copied data in application */ + if(NULL != buffer){ + /* if no error occurs, and the frame uses only one descriptor */ + if(((uint32_t)RESET == (dma_current_rxdesc->status & ENET_RDES0_ERRS)) && + ((uint32_t)RESET != (dma_current_rxdesc->status & ENET_RDES0_LDES)) && + ((uint32_t)RESET != (dma_current_rxdesc->status & ENET_RDES0_FDES))){ + + /* get the frame length except CRC */ + size = GET_RDES0_FRML(dma_current_rxdesc->status) - 4U; + + /* to avoid situation that the frame size exceeds the buffer length */ + if(size > bufsize){ + return ERROR; + } + + /* copy data from Rx buffer to application buffer */ + for(offset = 0U; offset < size; offset++){ + (*(buffer + offset)) = (*(__IO uint8_t *)(uint32_t)((dma_current_ptp_rxdesc->buffer1_addr) + offset)); + } + + }else{ + return ERROR; + } + } + /* copy timestamp value from Rx descriptor to application array */ + timestamp[0] = dma_current_rxdesc->buffer1_addr; + timestamp[1] = dma_current_rxdesc->buffer2_next_desc_addr; + + dma_current_rxdesc->buffer1_addr = dma_current_ptp_rxdesc ->buffer1_addr ; + dma_current_rxdesc->buffer2_next_desc_addr = dma_current_ptp_rxdesc ->buffer2_next_desc_addr; + + /* enable reception, descriptor is owned by DMA */ + dma_current_rxdesc->status = ENET_RDES0_DAV; + + /* check Rx buffer unavailable flag status */ + if ((uint32_t)RESET != (ENET_DMA_STAT & ENET_DMA_STAT_RBU)){ + /* clear RBU flag */ + ENET_DMA_STAT = ENET_DMA_STAT_RBU; + /* resume DMA reception by writing to the RPEN register*/ + ENET_DMA_RPEN = 0U; + } + + + /* update the current RxDMA descriptor pointer to the next decriptor in RxDMA decriptor table */ + /* chained mode */ + if((uint32_t)RESET != (dma_current_rxdesc->control_buffer_size & ENET_RDES1_RCHM)){ + dma_current_rxdesc = (enet_descriptors_struct*) (dma_current_ptp_rxdesc->buffer2_next_desc_addr); + /* if it is the last ptp descriptor */ + if(0U != dma_current_ptp_rxdesc->status){ + /* pointer back to the first ptp descriptor address in the desc_ptptab list address */ + dma_current_ptp_rxdesc = (enet_descriptors_struct*) (dma_current_ptp_rxdesc->status); + }else{ + /* ponter to the next ptp descriptor */ + dma_current_ptp_rxdesc++; + } + }else{ + /* ring mode */ + if((uint32_t)RESET != (dma_current_rxdesc->control_buffer_size & ENET_RDES1_RERM)){ + /* if is the last descriptor in table, the next descriptor is the table header */ + dma_current_rxdesc = (enet_descriptors_struct*) (ENET_DMA_RDTADDR); + /* RDES2 and RDES3 will not be covered by buffer address, so do not need to preserve a new table, + use the same table with RxDMA descriptor */ + dma_current_ptp_rxdesc = (enet_descriptors_struct*) (dma_current_ptp_rxdesc->status); + }else{ + /* the next descriptor is the current address, add the descriptor size, and descriptor skip length */ + dma_current_rxdesc = (enet_descriptors_struct*) (uint32_t)((uint32_t)dma_current_rxdesc + ETH_DMARXDESC_SIZE + GET_DMA_BCTL_DPSL(ENET_DMA_BCTL)); + dma_current_ptp_rxdesc ++; + } + } + + return SUCCESS; +} + +/*! + \brief send data with timestamp values in application buffer as a transmit packet, when the DMA is in normal mode + \param[in] buffer: pointer on the application buffer + note -- if the input is NULL, user should copy data in application by himself + \param[in] length: the length of frame data to be transmitted + \param[out] timestamp: pointer to the table which stores the timestamp high and low + note -- if the input is NULL, timestamp is ignored + \retval ErrStatus: SUCCESS or ERROR +*/ +ErrStatus enet_ptpframe_transmit_normal_mode(uint8_t *buffer, uint32_t length, uint32_t timestamp[]) +{ + uint32_t offset = 0U, timeout = 0U; + uint32_t dma_tbu_flag, dma_tu_flag, tdes0_ttmss_flag; + + /* the descriptor is busy due to own by the DMA */ + if((uint32_t)RESET != (dma_current_txdesc->status & ENET_TDES0_DAV)){ + return ERROR; + } + + /* only frame length no more than ENET_MAX_FRAME_SIZE is allowed */ + if(length > ENET_MAX_FRAME_SIZE){ + return ERROR; + } + + /* if buffer pointer is null, indicates that users has handled data in application */ + if(NULL != buffer){ + /* copy frame data from application buffer to Tx buffer */ + for(offset = 0U; offset < length; offset++){ + (*(__IO uint8_t *) (uint32_t)((dma_current_ptp_txdesc->buffer1_addr) + offset)) = (*(buffer + offset)); + } + } + /* set the frame length */ + dma_current_txdesc->control_buffer_size = (length & (uint32_t)0x1FFF); + /* set the segment of frame, frame is transmitted in one descriptor */ + dma_current_txdesc->status |= ENET_TDES0_LSG | ENET_TDES0_FSG; + /* enable the DMA transmission */ + dma_current_txdesc->status |= ENET_TDES0_DAV; + + /* check Tx buffer unavailable flag status */ + dma_tbu_flag = (ENET_DMA_STAT & ENET_DMA_STAT_TBU); + dma_tu_flag = (ENET_DMA_STAT & ENET_DMA_STAT_TU); + + if((RESET != dma_tbu_flag) || (RESET != dma_tu_flag)){ + /* clear TBU and TU flag */ + ENET_DMA_STAT = (dma_tbu_flag | dma_tu_flag); + /* resume DMA transmission by writing to the TPEN register*/ + ENET_DMA_TPEN = 0U; + } + + /* if timestamp pointer is null, indicates that users don't care timestamp in application */ + if(NULL != timestamp){ + /* wait for ENET_TDES0_TTMSS flag to be set, a timestamp was captured */ + do{ + tdes0_ttmss_flag = (dma_current_txdesc->status & ENET_TDES0_TTMSS); + timeout++; + }while((RESET == tdes0_ttmss_flag) && (timeout < ENET_DELAY_TO)); + + /* return ERROR due to timeout */ + if(ENET_DELAY_TO == timeout){ + return ERROR; + } + + /* clear the ENET_TDES0_TTMSS flag */ + dma_current_txdesc->status &= ~ENET_TDES0_TTMSS; + /* get the timestamp value of the transmit frame */ + timestamp[0] = dma_current_txdesc->buffer1_addr; + timestamp[1] = dma_current_txdesc->buffer2_next_desc_addr; + } + dma_current_txdesc->buffer1_addr = dma_current_ptp_txdesc ->buffer1_addr ; + dma_current_txdesc->buffer2_next_desc_addr = dma_current_ptp_txdesc ->buffer2_next_desc_addr; + + /* update the current TxDMA descriptor pointer to the next decriptor in TxDMA decriptor table */ + /* chained mode */ + if((uint32_t)RESET != (dma_current_txdesc->status & ENET_TDES0_TCHM)){ + dma_current_txdesc = (enet_descriptors_struct*) (dma_current_ptp_txdesc->buffer2_next_desc_addr); + /* if it is the last ptp descriptor */ + if(0U != dma_current_ptp_txdesc->status){ + /* pointer back to the first ptp descriptor address in the desc_ptptab list address */ + dma_current_ptp_txdesc = (enet_descriptors_struct*) (dma_current_ptp_txdesc->status); + }else{ + /* ponter to the next ptp descriptor */ + dma_current_ptp_txdesc++; + } + }else{ + /* ring mode */ + if((uint32_t)RESET != (dma_current_txdesc->status & ENET_TDES0_TERM)){ + /* if is the last descriptor in table, the next descriptor is the table header */ + dma_current_txdesc = (enet_descriptors_struct*) (ENET_DMA_TDTADDR); + /* TDES2 and TDES3 will not be covered by buffer address, so do not need to preserve a new table, + use the same table with TxDMA descriptor */ + dma_current_ptp_txdesc = (enet_descriptors_struct*) (dma_current_ptp_txdesc->status); + }else{ + /* the next descriptor is the current address, add the descriptor size, and descriptor skip length */ + dma_current_txdesc = (enet_descriptors_struct*) (uint32_t)((uint32_t)dma_current_txdesc + ETH_DMATXDESC_SIZE + GET_DMA_BCTL_DPSL(ENET_DMA_BCTL)); + dma_current_ptp_txdesc ++; + } + } + return SUCCESS; +} + +/*! + \brief wakeup frame filter register pointer reset + \param[in] none + \param[out] none + \retval none +*/ +void enet_wum_filter_register_pointer_reset(void) +{ + ENET_MAC_WUM |= ENET_MAC_WUM_WUFFRPR; +} + +/*! + \brief set the remote wakeup frame registers + \param[in] pdata: pointer to buffer data which is written to remote wakeup frame registers (8 words total) + \param[out] none + \retval none +*/ +void enet_wum_filter_config(uint32_t pdata[]) +{ + uint32_t num = 0U; + + /* configure ENET_MAC_RWFF register */ + for(num = 0U; num < ETH_WAKEUP_REGISTER_LENGTH; num++){ + ENET_MAC_RWFF = pdata[num]; + } +} + +/*! + \brief enable wakeup management features + \param[in] feature: one or more parameters can be selected which are shown as below + \arg ENET_WUM_POWER_DOWN: power down mode + \arg ENET_WUM_MAGIC_PACKET_FRAME: enable a wakeup event due to magic packet reception + \arg ENET_WUM_WAKE_UP_FRAME: enable a wakeup event due to wakeup frame reception + \arg ENET_WUM_GLOBAL_UNICAST: any received unicast frame passed filter is considered to be a wakeup frame + \param[out] none + \retval none +*/ +void enet_wum_feature_enable(uint32_t feature) +{ + ENET_MAC_WUM |= feature; +} + +/*! + \brief disable wakeup management features + \param[in] feature: one or more parameters can be selected which are shown as below + \arg ENET_WUM_MAGIC_PACKET_FRAME: enable a wakeup event due to magic packet reception + \arg ENET_WUM_WAKE_UP_FRAME: enable a wakeup event due to wakeup frame reception + \arg ENET_WUM_GLOBAL_UNICAST: any received unicast frame passed filter is considered to be a wakeup frame + \param[out] none + \retval none +*/ +void enet_wum_feature_disable(uint32_t feature) +{ + ENET_MAC_WUM &= (~feature); +} + +/*! + \brief reset the MAC statistics counters + \param[in] none + \param[out] none + \retval none +*/ +void enet_msc_counters_reset(void) +{ + /* reset all counters */ + ENET_MSC_CTL |= ENET_MSC_CTL_CTR; +} + +/*! + \brief enable the MAC statistics counter features + \param[in] feature: one or more parameters can be selected which are shown as below + \arg ENET_MSC_COUNTER_STOP_ROLLOVER: counter stop rollover + \arg ENET_MSC_RESET_ON_READ: reset on read + \arg ENET_MSC_COUNTERS_FREEZE: MSC counter freeze + \param[out] none + \retval none +*/ +void enet_msc_feature_enable(uint32_t feature) +{ + ENET_MSC_CTL |= feature; +} + +/*! + \brief disable the MAC statistics counter features + \param[in] feature: one or more parameters can be selected which are shown as below + \arg ENET_MSC_COUNTER_STOP_ROLLOVER: counter stop rollover + \arg ENET_MSC_RESET_ON_READ: reset on read + \arg ENET_MSC_COUNTERS_FREEZE: MSC counter freeze + \param[out] none + \retval none +*/ +void enet_msc_feature_disable(uint32_t feature) +{ + ENET_MSC_CTL &= (~feature); +} + +/*! + \brief get MAC statistics counter + \param[in] counter: MSC counters which is selected, refer to enet_msc_counter_enum, + only one parameter can be selected which is shown as below + \arg ENET_MSC_TX_SCCNT: MSC transmitted good frames after a single collision counter + \arg ENET_MSC_TX_MSCCNT: MSC transmitted good frames after more than a single collision counter + \arg ENET_MSC_TX_TGFCNT: MSC transmitted good frames counter + \arg ENET_MSC_RX_RFCECNT: MSC received frames with CRC error counter + \arg ENET_MSC_RX_RFAECNT: MSC received frames with alignment error counter + \arg ENET_MSC_RX_RGUFCNT: MSC received good unicast frames counter + \param[out] none + \retval the MSC counter value +*/ +uint32_t enet_msc_counters_get(enet_msc_counter_enum counter) +{ + uint32_t reval; + + reval = REG32((ENET + (uint32_t)counter)); + + return reval; +} + +/*! + \brief change subsecond to nanosecond + \param[in] subsecond: subsecond value + \param[out] none + \retval the nanosecond value +*/ +uint32_t enet_ptp_subsecond_2_nanosecond(uint32_t subsecond) +{ + uint64_t val = subsecond * 1000000000Ull; + val >>= 31; + return (uint32_t)val; +} + +/*! + \brief change nanosecond to subsecond + \param[in] nanosecond: nanosecond value + \param[out] none + \retval the subsecond value +*/ +uint32_t enet_ptp_nanosecond_2_subsecond(uint32_t nanosecond) +{ + uint64_t val = nanosecond * 0x80000000Ull; + val /= 1000000000U; + return (uint32_t)val; +} + +/*! + \brief enable the PTP features + \param[in] feature: the feature of ENET PTP mode + one or more parameters can be selected which are shown as below + \arg ENET_RXTX_TIMESTAMP: timestamp function for transmit and receive frames + \arg ENET_PTP_TIMESTAMP_INT: timestamp interrupt trigger + \param[out] none + \retval none +*/ +void enet_ptp_feature_enable(uint32_t feature) +{ + ENET_PTP_TSCTL |= feature; +} + +/*! + \brief disable the PTP features + \param[in] feature: the feature of ENET PTP mode + one or more parameters can be selected which are shown as below + \arg ENET_RXTX_TIMESTAMP: timestamp function for transmit and receive frames + \arg ENET_PTP_TIMESTAMP_INT: timestamp interrupt trigger + \param[out] none + \retval none +*/ +void enet_ptp_feature_disable(uint32_t feature) +{ + ENET_PTP_TSCTL &= ~feature; +} + +/*! + \brief configure the PTP timestamp function + \param[in] func: only one parameter can be selected which is shown as below + \arg ENET_PTP_ADDEND_UPDATE: addend register update + \arg ENET_PTP_SYSTIME_UPDATE: timestamp update + \arg ENET_PTP_SYSTIME_INIT: timestamp initialize + \arg ENET_PTP_FINEMODE: the system timestamp uses the fine method for updating + \arg ENET_PTP_COARSEMODE: the system timestamp uses the coarse method for updating + \param[out] none + \retval ErrStatus: SUCCESS or ERROR +*/ + +ErrStatus enet_ptp_timestamp_function_config(enet_ptp_function_enum func) +{ + uint32_t temp_config = 0U, temp_state = 0U; + uint32_t timeout = 0U; + ErrStatus enet_state = SUCCESS; + + switch(func){ + case ENET_PTP_ADDEND_UPDATE: + /* this bit must be read as zero before application set it */ + do{ + temp_state = ENET_PTP_TSCTL & ENET_PTP_TSCTL_TMSARU; + timeout++; + }while((RESET != temp_state) && (timeout < ENET_DELAY_TO)); + /* return ERROR due to timeout */ + if(ENET_DELAY_TO == timeout){ + enet_state = ERROR; + }else{ + ENET_PTP_TSCTL |= ENET_PTP_TSCTL_TMSARU; + } + break; + case ENET_PTP_SYSTIME_UPDATE: + /* both the TMSSTU and TMSSTI bits must be read as zero before application set this bit */ + do{ + temp_state = ENET_PTP_TSCTL & (ENET_PTP_TSCTL_TMSSTU | ENET_PTP_TSCTL_TMSSTI); + timeout++; + }while((RESET != temp_state) && (timeout < ENET_DELAY_TO)); + /* return ERROR due to timeout */ + if(ENET_DELAY_TO == timeout){ + enet_state = ERROR; + }else{ + ENET_PTP_TSCTL |= ENET_PTP_TSCTL_TMSSTU; + } + break; + case ENET_PTP_SYSTIME_INIT: + /* this bit must be read as zero before application set it */ + do{ + temp_state = ENET_PTP_TSCTL & ENET_PTP_TSCTL_TMSSTI; + timeout++; + }while((RESET != temp_state) && (timeout < ENET_DELAY_TO)); + /* return ERROR due to timeout */ + if(ENET_DELAY_TO == timeout){ + enet_state = ERROR; + }else{ + ENET_PTP_TSCTL |= ENET_PTP_TSCTL_TMSSTI; + } + break; + default: + temp_config = (uint32_t)func & (~BIT(31)); + if(RESET != ((uint32_t)func & BIT(31))){ + ENET_PTP_TSCTL |= temp_config; + }else{ + ENET_PTP_TSCTL &= ~temp_config; + } + break; + } + + return enet_state; +} + +/*! + \brief configure system time subsecond increment value + \param[in] subsecond: the value will be added to the subsecond value of system time, + this value must be between 0 and 0xFF + \param[out] none + \retval none +*/ +void enet_ptp_subsecond_increment_config(uint32_t subsecond) +{ + ENET_PTP_SSINC = PTP_SSINC_STMSSI(subsecond); +} + +/*! + \brief adjusting the clock frequency only in fine update mode + \param[in] add: the value will be added to the accumulator register to achieve time synchronization + \param[out] none + \retval none +*/ +void enet_ptp_timestamp_addend_config(uint32_t add) +{ + ENET_PTP_TSADDEND = add; +} + +/*! + \brief initialize or add/subtract to second of the system time + \param[in] sign: timestamp update positive or negative sign, + only one parameter can be selected which is shown as below + \arg ENET_PTP_ADD_TO_TIME: timestamp update value is added to system time + \arg ENET_PTP_SUBSTRACT_FROM_TIME: timestamp update value is subtracted from system time + \param[in] second: initializing or adding/subtracting to second of the system time + \param[in] subsecond: the current subsecond of the system time + with 0.46 ns accuracy if required accuracy is 20 ns + \param[out] none + \retval none +*/ +void enet_ptp_timestamp_update_config(uint32_t sign, uint32_t second, uint32_t subsecond) +{ + ENET_PTP_TSUH = second; + ENET_PTP_TSUL = sign | PTP_TSUL_TMSUSS(subsecond); +} + +/*! + \brief configure the expected target time + \param[in] second: the expected target second time + \param[in] nanosecond: the expected target nanosecond time (signed) + \param[out] none + \retval none +*/ +void enet_ptp_expected_time_config(uint32_t second, uint32_t nanosecond) +{ + ENET_PTP_ETH = second; + ENET_PTP_ETL = nanosecond; +} + +/*! + \brief get the current system time + \param[in] none + \param[out] systime_struct: pointer to a enet_ptp_systime_struct structure which contains + parameters of PTP system time + members of the structure and the member values are shown as below: + second: 0x0 - 0xFFFF FFFF + nanosecond: 0x0 - 0x7FFF FFFF * 10^9 / 2^31 + sign: ENET_PTP_TIME_POSITIVE, ENET_PTP_TIME_NEGATIVE + \retval none +*/ +void enet_ptp_system_time_get(enet_ptp_systime_struct *systime_struct) +{ + uint32_t temp_sec = 0U, temp_subs = 0U; + + /* get the value of sysytem time registers */ + temp_sec = (uint32_t)ENET_PTP_TSH; + temp_subs = (uint32_t)ENET_PTP_TSL; + + /* get sysytem time and construct the enet_ptp_systime_struct structure */ + systime_struct->second = temp_sec; + systime_struct->nanosecond = GET_PTP_TSL_STMSS(temp_subs); + systime_struct->nanosecond = enet_ptp_subsecond_2_nanosecond(systime_struct->nanosecond); + systime_struct->sign = GET_PTP_TSL_STS(temp_subs); +} + +/*! + \brief configure and start PTP timestamp counter + \param[in] updatemethod: method for updating + \arg ENET_PTP_FINEMODE: fine correction method + \arg ENET_PTP_COARSEMODE: coarse correction method + \param[in] init_sec: second value for initializing system time + \param[in] init_subsec: subsecond value for initializing system time + \param[in] carry_cfg: the value to be added to the accumulator register (in fine method is used) + \param[in] accuracy_cfg: the value to be added to the subsecond value of system time + \param[out] none + \retval none +*/ +void enet_ptp_start(int32_t updatemethod, uint32_t init_sec, uint32_t init_subsec, uint32_t carry_cfg, uint32_t accuracy_cfg) +{ + /* mask the timestamp trigger interrupt */ + enet_interrupt_disable(ENET_MAC_INT_TMSTIM); + + /* enable timestamp */ + enet_ptp_feature_enable(ENET_RXTX_TIMESTAMP); + + /* configure system time subsecond increment based on the PTP clock frequency */ + enet_ptp_subsecond_increment_config(accuracy_cfg); + + if(ENET_PTP_FINEMODE == updatemethod){ + /* fine correction method: configure the timestamp addend, then update */ + enet_ptp_timestamp_addend_config(carry_cfg); + enet_ptp_timestamp_function_config(ENET_PTP_ADDEND_UPDATE); + /* wait until update is completed */ + while(SET == enet_ptp_flag_get((uint32_t)ENET_PTP_ADDEND_UPDATE)){ + } + } + + /* choose the fine correction method */ + enet_ptp_timestamp_function_config((enet_ptp_function_enum)updatemethod); + + /* initialize the system time */ + enet_ptp_timestamp_update_config(ENET_PTP_ADD_TO_TIME, init_sec, init_subsec); + enet_ptp_timestamp_function_config(ENET_PTP_SYSTIME_INIT); +} + +/*! + \brief adjust frequency in fine method by configure addend register + \param[in] carry_cfg: the value to be added to the accumulator register + \param[out] none + \retval none +*/ +void enet_ptp_finecorrection_adjfreq(int32_t carry_cfg) +{ + /* re-configure the timestamp addend, then update */ + enet_ptp_timestamp_addend_config((uint32_t)carry_cfg); + enet_ptp_timestamp_function_config(ENET_PTP_ADDEND_UPDATE); +} + +/*! + \brief update system time in coarse method + \param[in] systime_struct: pointer to a enet_ptp_systime_struct structure which contains + parameters of PTP system time + members of the structure and the member values are shown as below: + second: 0x0 - 0xFFFF FFFF + nanosecond: 0x0 - 0x7FFF FFFF * 10^9 / 2^31 + sign: ENET_PTP_TIME_POSITIVE, ENET_PTP_TIME_NEGATIVE + \param[out] none + \retval none +*/ +void enet_ptp_coarsecorrection_systime_update(enet_ptp_systime_struct *systime_struct) +{ + uint32_t subsecond_val; + uint32_t carry_cfg; + + subsecond_val = enet_ptp_nanosecond_2_subsecond(systime_struct->nanosecond); + + /* save the carry_cfg value */ + carry_cfg = ENET_PTP_TSADDEND_TMSA; + + /* update the system time */ + enet_ptp_timestamp_update_config(systime_struct->sign, systime_struct->second, subsecond_val); + enet_ptp_timestamp_function_config(ENET_PTP_SYSTIME_UPDATE); + + /* wait until the update is completed */ + while(SET == enet_ptp_flag_get((uint32_t)ENET_PTP_SYSTIME_UPDATE)){ + } + + /* write back the carry_cfg value, then update */ + enet_ptp_timestamp_addend_config(carry_cfg); + enet_ptp_timestamp_function_config(ENET_PTP_ADDEND_UPDATE); +} + +/*! + \brief set system time in fine method + \param[in] systime_struct: pointer to a enet_ptp_systime_struct structure which contains + parameters of PTP system time + members of the structure and the member values are shown as below: + second: 0x0 - 0xFFFF FFFF + nanosecond: 0x0 - 0x7FFF FFFF * 10^9 / 2^31 + sign: ENET_PTP_TIME_POSITIVE, ENET_PTP_TIME_NEGATIVE + \param[out] none + \retval none +*/ +void enet_ptp_finecorrection_settime(enet_ptp_systime_struct * systime_struct) +{ + uint32_t subsecond_val; + + subsecond_val = enet_ptp_nanosecond_2_subsecond(systime_struct->nanosecond); + + /* initialize the system time */ + enet_ptp_timestamp_update_config(systime_struct->sign, systime_struct->second, subsecond_val); + enet_ptp_timestamp_function_config(ENET_PTP_SYSTIME_INIT); + + /* wait until the system time initialzation finished */ + while(SET == enet_ptp_flag_get((uint32_t)ENET_PTP_SYSTIME_INIT)){ + } +} + +/*! + \brief get the ptp flag status + \param[in] flag: ptp flag status to be checked + \arg ENET_PTP_ADDEND_UPDATE: addend register update + \arg ENET_PTP_SYSTIME_UPDATE: timestamp update + \arg ENET_PTP_SYSTIME_INIT: timestamp initialize + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus enet_ptp_flag_get(uint32_t flag) +{ + FlagStatus bitstatus = RESET; + + if ((uint32_t)RESET != (ENET_PTP_TSCTL & flag)){ + bitstatus = SET; + } + + return bitstatus; +} + +/*! + \brief reset the ENET initpara struct, call it before using enet_initpara_config() + \param[in] none + \param[out] none + \retval none +*/ +void enet_initpara_reset(void) +{ + enet_initpara.option_enable = 0U; + enet_initpara.forward_frame = 0U; + enet_initpara.dmabus_mode = 0U; + enet_initpara.dma_maxburst = 0U; + enet_initpara.dma_arbitration = 0U; + enet_initpara.store_forward_mode = 0U; + enet_initpara.dma_function = 0U; + enet_initpara.vlan_config = 0U; + enet_initpara.flow_control = 0U; + enet_initpara.hashtable_high = 0U; + enet_initpara.hashtable_low = 0U; + enet_initpara.framesfilter_mode = 0U; + enet_initpara.halfduplex_param = 0U; + enet_initpara.timer_config = 0U; + enet_initpara.interframegap = 0U; +} + +/*! + \brief initialize ENET peripheral with generally concerned parameters, call it by enet_init() + \param[in] none + \param[out] none + \retval none +*/ +static void enet_default_init(void) +{ + uint32_t reg_value = 0U; + + /* MAC */ + /* configure ENET_MAC_CFG register */ + reg_value = ENET_MAC_CFG; + reg_value &= MAC_CFG_MASK; + reg_value |= ENET_WATCHDOG_ENABLE | ENET_JABBER_ENABLE | ENET_INTERFRAMEGAP_96BIT \ + | ENET_SPEEDMODE_10M |ENET_MODE_HALFDUPLEX | ENET_LOOPBACKMODE_DISABLE \ + | ENET_CARRIERSENSE_ENABLE | ENET_RECEIVEOWN_ENABLE \ + | ENET_RETRYTRANSMISSION_ENABLE | ENET_BACKOFFLIMIT_10 \ + | ENET_DEFERRALCHECK_DISABLE \ + | ENET_AUTO_PADCRC_DROP_DISABLE \ + | ENET_CHECKSUMOFFLOAD_DISABLE; + ENET_MAC_CFG = reg_value; + + /* configure ENET_MAC_FRMF register */ + ENET_MAC_FRMF = ENET_SRC_FILTER_DISABLE |ENET_DEST_FILTER_INVERSE_DISABLE \ + |ENET_MULTICAST_FILTER_PERFECT |ENET_UNICAST_FILTER_PERFECT \ + |ENET_PCFRM_PREVENT_ALL |ENET_BROADCASTFRAMES_ENABLE \ + |ENET_PROMISCUOUS_DISABLE |ENET_RX_FILTER_ENABLE; + + /* configure ENET_MAC_HLH, ENET_MAC_HLL register */ + ENET_MAC_HLH = 0x0U; + + ENET_MAC_HLL = 0x0U; + + /* configure ENET_MAC_FCTL, ENET_MAC_FCTH register */ + reg_value = ENET_MAC_FCTL; + reg_value &= MAC_FCTL_MASK; + reg_value |= MAC_FCTL_PTM(0) |ENET_ZERO_QUANTA_PAUSE_DISABLE \ + |ENET_PAUSETIME_MINUS4 |ENET_UNIQUE_PAUSEDETECT \ + |ENET_RX_FLOWCONTROL_DISABLE |ENET_TX_FLOWCONTROL_DISABLE; + ENET_MAC_FCTL = reg_value; + + /* configure ENET_MAC_VLT register */ + ENET_MAC_VLT = ENET_VLANTAGCOMPARISON_16BIT |MAC_VLT_VLTI(0); + + /* DMA */ + /* configure ENET_DMA_CTL register */ + reg_value = ENET_DMA_CTL; + reg_value &= DMA_CTL_MASK; + reg_value |= ENET_TCPIP_CKSUMERROR_DROP |ENET_RX_MODE_STOREFORWARD \ + |ENET_FLUSH_RXFRAME_ENABLE |ENET_TX_MODE_STOREFORWARD \ + |ENET_TX_THRESHOLD_64BYTES |ENET_RX_THRESHOLD_64BYTES \ + |ENET_SECONDFRAME_OPT_DISABLE; + ENET_DMA_CTL = reg_value; + + /* configure ENET_DMA_BCTL register */ + reg_value = ENET_DMA_BCTL; + reg_value &= DMA_BCTL_MASK; + reg_value = ENET_ADDRESS_ALIGN_ENABLE |ENET_ARBITRATION_RXTX_2_1 \ + |ENET_RXDP_32BEAT |ENET_PGBL_32BEAT |ENET_RXTX_DIFFERENT_PGBL \ + |ENET_FIXED_BURST_ENABLE; + ENET_DMA_BCTL = reg_value; +} + +#ifndef USE_DELAY +/*! + \brief insert a delay time + \param[in] ncount: specifies the delay time length + \param[out] none + \param[out] none +*/ +static void enet_delay(uint32_t ncount) +{ + __IO uint32_t delay_time = 0U; + + for(delay_time = ncount; delay_time != 0U; delay_time--){ + } +} +#endif /* USE_DELAY */ + +#endif /* GD32F10X_CL */ diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_exmc.c b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_exmc.c new file mode 100644 index 0000000..cbc9e8a --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_exmc.c @@ -0,0 +1,642 @@ +/*! + \file gd32f10x_exmc.c + \brief EXMC driver + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#include "gd32f10x_exmc.h" + +/* EXMC bank0 register reset value */ +#define BANK0_SNCTL0_REGION_RESET ((uint32_t)0x000030DBU) +#define BANK0_SNCTL1_2_3_REGION_RESET ((uint32_t)0x000030D2U) +#define BANK0_SNTCFG_RESET ((uint32_t)0x0FFFFFFFU) +#define BANK0_SNWTCFG_RESET ((uint32_t)0x0FFFFFFFU) + +/* EXMC bank1/2 register reset mask*/ +#define BANK1_2_NPCTL_RESET ((uint32_t)0x00000018U) +#define BANK1_2_NPINTEN_RESET ((uint32_t)0x00000040U) +#define BANK1_2_NPCTCFG_RESET ((uint32_t)0xFCFCFCFCU) +#define BANK1_2_NPATCFG_RESET ((uint32_t)0xFCFCFCFCU) + +/* EXMC bank3 register reset mask*/ +#define BANK3_NPCTL_RESET ((uint32_t)0x00000018U) +#define BANK3_NPINTEN_RESET ((uint32_t)0x00000040U) +#define BANK3_NPCTCFG_RESET ((uint32_t)0xFCFCFCFCU) +#define BANK3_NPATCFG_RESET ((uint32_t)0xFCFCFCFCU) +#define BANK3_PIOTCFG3_RESET ((uint32_t)0xFCFCFCFCU) + +/* EXMC register bit offset */ +#define SNCTL_NRMUX_OFFSET ((uint32_t)1U) +#define SNCTL_SBRSTEN_OFFSET ((uint32_t)8U) +#define SNCTL_WRAPEN_OFFSET ((uint32_t)10U) +#define SNCTL_WREN_OFFSET ((uint32_t)12U) +#define SNCTL_NRWTEN_OFFSET ((uint32_t)13U) +#define SNCTL_EXMODEN_OFFSET ((uint32_t)14U) +#define SNCTL_ASYNCWAIT_OFFSET ((uint32_t)15U) + +#define SNTCFG_AHLD_OFFSET ((uint32_t)4U) +#define SNTCFG_DSET_OFFSET ((uint32_t)8U) +#define SNTCFG_BUSLAT_OFFSET ((uint32_t)16U) + +#define SNWTCFG_WAHLD_OFFSET ((uint32_t)4U) +#define SNWTCFG_WDSET_OFFSET ((uint32_t)8U) +#define SNWTCFG_WBUSLAT_OFFSET ((uint32_t)16U) + +#define NPCTL_NDWTEN_OFFSET ((uint32_t)1U) +#define NPCTL_ECCEN_OFFSET ((uint32_t)6U) + +#define NPCTCFG_COMWAIT_OFFSET ((uint32_t)8U) +#define NPCTCFG_COMHLD_OFFSET ((uint32_t)16U) +#define NPCTCFG_COMHIZ_OFFSET ((uint32_t)24U) + +#define NPATCFG_ATTWAIT_OFFSET ((uint32_t)8U) +#define NPATCFG_ATTHLD_OFFSET ((uint32_t)16U) +#define NPATCFG_ATTHIZ_OFFSET ((uint32_t)24U) + +#define PIOTCFG_IOWAIT_OFFSET ((uint32_t)8U) +#define PIOTCFG_IOHLD_OFFSET ((uint32_t)16U) +#define PIOTCFG_IOHIZ_OFFSET ((uint32_t)24U) + +#define INTEN_INTS_OFFSET ((uint32_t)3U) + +/*! + \brief deinitialize EXMC NOR/SRAM region + \param[in] norsram_region: select the region of bank0 + \arg EXMC_BANK0_NORSRAM_REGIONx(x=0..3) + \param[out] none + \retval none +*/ +void exmc_norsram_deinit(uint32_t norsram_region) +{ + /* reset the registers */ + if(EXMC_BANK0_NORSRAM_REGION0 == norsram_region){ + EXMC_SNCTL(norsram_region) = BANK0_SNCTL0_REGION_RESET; + }else{ + EXMC_SNCTL(norsram_region) = BANK0_SNCTL1_2_3_REGION_RESET; + } + + EXMC_SNTCFG(norsram_region) = BANK0_SNTCFG_RESET; + EXMC_SNWTCFG(norsram_region) = BANK0_SNWTCFG_RESET; +} + +/*! + \brief initialize EXMC NOR/SRAM region + \param[in] exmc_norsram_parameter_struct: configure the EXMC NOR/SRAM parameter + norsram_region: EXMC_BANK0_NORSRAM_REGIONx,x=0..3 + write_mode: EXMC_ASYN_WRITE,EXMC_SYN_WRITE + extended_mode: ENABLE or DISABLE + asyn_wait: ENABLE or DISABLE + nwait_signal: ENABLE or DISABLE + memory_write: ENABLE or DISABLE + nwait_config: EXMC_NWAIT_CONFIG_BEFORE,EXMC_NWAIT_CONFIG_DURING + wrap_burst_mode: ENABLE or DISABLE + nwait_polarity: EXMC_NWAIT_POLARITY_LOW,EXMC_NWAIT_POLARITY_HIGH + burst_mode: ENABLE or DISABLE + databus_width: EXMC_NOR_DATABUS_WIDTH_8B,EXMC_NOR_DATABUS_WIDTH_16B + memory_type: EXMC_MEMORY_TYPE_SRAM,EXMC_MEMORY_TYPE_PSRAM,EXMC_MEMORY_TYPE_NOR + address_data_mux: ENABLE or DISABLE + read_write_timing: struct exmc_norsram_timing_parameter_struct set the time + write_timing: struct exmc_norsram_timing_parameter_struct set the time + \param[out] none + \retval none +*/ +void exmc_norsram_init(exmc_norsram_parameter_struct* exmc_norsram_init_struct) +{ + uint32_t snctl = 0x00000000U, sntcfg = 0x00000000U, snwtcfg = 0x00000000U; + + /* get the register value */ + snctl = EXMC_SNCTL(exmc_norsram_init_struct->norsram_region); + + /* clear relative bits */ + snctl &= ((uint32_t)~(EXMC_SNCTL_NREN | EXMC_SNCTL_NRTP | EXMC_SNCTL_NRW | EXMC_SNCTL_SBRSTEN | + EXMC_SNCTL_NRWTPOL | EXMC_SNCTL_WRAPEN | EXMC_SNCTL_NRWTCFG | EXMC_SNCTL_WREN | + EXMC_SNCTL_NRWTEN | EXMC_SNCTL_EXMODEN | EXMC_SNCTL_ASYNCWAIT | EXMC_SNCTL_SYNCWR | + EXMC_SNCTL_NRMUX )); + + snctl |= (uint32_t)(exmc_norsram_init_struct->address_data_mux << SNCTL_NRMUX_OFFSET) | + exmc_norsram_init_struct->memory_type | + exmc_norsram_init_struct->databus_width | + (exmc_norsram_init_struct->burst_mode << SNCTL_SBRSTEN_OFFSET) | + exmc_norsram_init_struct->nwait_polarity | + (exmc_norsram_init_struct->wrap_burst_mode << SNCTL_WRAPEN_OFFSET) | + exmc_norsram_init_struct->nwait_config | + (exmc_norsram_init_struct->memory_write << SNCTL_WREN_OFFSET) | + (exmc_norsram_init_struct->nwait_signal << SNCTL_NRWTEN_OFFSET) | + (exmc_norsram_init_struct->extended_mode << SNCTL_EXMODEN_OFFSET) | + (exmc_norsram_init_struct->asyn_wait << SNCTL_ASYNCWAIT_OFFSET) | + exmc_norsram_init_struct->write_mode; + + sntcfg = (uint32_t)((exmc_norsram_init_struct->read_write_timing->asyn_address_setuptime - 1U ) & EXMC_SNTCFG_ASET )| + (((exmc_norsram_init_struct->read_write_timing->asyn_address_holdtime - 1U ) << SNTCFG_AHLD_OFFSET ) & EXMC_SNTCFG_AHLD ) | + (((exmc_norsram_init_struct->read_write_timing->asyn_data_setuptime - 1U ) << SNTCFG_DSET_OFFSET ) & EXMC_SNTCFG_DSET ) | + (((exmc_norsram_init_struct->read_write_timing->bus_latency - 1U ) << SNTCFG_BUSLAT_OFFSET ) & EXMC_SNTCFG_BUSLAT )| + exmc_norsram_init_struct->read_write_timing->syn_clk_division | + exmc_norsram_init_struct->read_write_timing->syn_data_latency | + exmc_norsram_init_struct->read_write_timing->asyn_access_mode; + + /* nor flash access enable */ + if(EXMC_MEMORY_TYPE_NOR == exmc_norsram_init_struct->memory_type){ + snctl |= (uint32_t)EXMC_SNCTL_NREN; + } + + /* extended mode configure */ + if(ENABLE == exmc_norsram_init_struct->extended_mode){ + snwtcfg = (uint32_t)(((exmc_norsram_init_struct->write_timing->asyn_address_setuptime - 1U) & EXMC_SNWTCFG_WASET) | + (((exmc_norsram_init_struct->write_timing->asyn_address_holdtime - 1U) << SNTCFG_AHLD_OFFSET ) & EXMC_SNWTCFG_WAHLD)| + (((exmc_norsram_init_struct->write_timing->asyn_data_setuptime - 1U) << SNTCFG_DSET_OFFSET) & EXMC_SNWTCFG_WDSET) | + exmc_norsram_init_struct->write_timing->asyn_access_mode); + }else{ + snwtcfg = BANK0_SNWTCFG_RESET; + } + + /* configure the registers */ + EXMC_SNCTL(exmc_norsram_init_struct->norsram_region) = snctl; + EXMC_SNTCFG(exmc_norsram_init_struct->norsram_region) = sntcfg; + EXMC_SNWTCFG(exmc_norsram_init_struct->norsram_region) = snwtcfg; +} + +/*! + \brief initialize the struct exmc_norsram_parameter_struct + \param[in] none + \param[out] exmc_norsram_init_struct: the initialized struct exmc_norsram_parameter_struct pointer + \retval none +*/ +void exmc_norsram_struct_para_init(exmc_norsram_parameter_struct* exmc_norsram_init_struct) +{ + /* configure the structure with default value */ + exmc_norsram_init_struct->norsram_region = EXMC_BANK0_NORSRAM_REGION0; + exmc_norsram_init_struct->address_data_mux = ENABLE; + exmc_norsram_init_struct->memory_type = EXMC_MEMORY_TYPE_SRAM; + exmc_norsram_init_struct->databus_width = EXMC_NOR_DATABUS_WIDTH_8B; + exmc_norsram_init_struct->burst_mode = DISABLE; + exmc_norsram_init_struct->nwait_polarity = EXMC_NWAIT_POLARITY_LOW; + exmc_norsram_init_struct->wrap_burst_mode = DISABLE; + exmc_norsram_init_struct->nwait_config = EXMC_NWAIT_CONFIG_BEFORE; + exmc_norsram_init_struct->memory_write = ENABLE; + exmc_norsram_init_struct->nwait_signal = ENABLE; + exmc_norsram_init_struct->extended_mode = DISABLE; + exmc_norsram_init_struct->asyn_wait = DISABLE; + exmc_norsram_init_struct->write_mode = EXMC_ASYN_WRITE; + + /* read/write timing configure */ + exmc_norsram_init_struct->read_write_timing->asyn_address_setuptime = 0xFU; + exmc_norsram_init_struct->read_write_timing->asyn_address_holdtime = 0xFU; + exmc_norsram_init_struct->read_write_timing->asyn_data_setuptime = 0xFFU; + exmc_norsram_init_struct->read_write_timing->bus_latency = 0xFU; + exmc_norsram_init_struct->read_write_timing->syn_clk_division = EXMC_SYN_CLOCK_RATIO_16_CLK; + exmc_norsram_init_struct->read_write_timing->syn_data_latency = EXMC_DATALAT_17_CLK; + exmc_norsram_init_struct->read_write_timing->asyn_access_mode = EXMC_ACCESS_MODE_A; + + /* write timing configure, when extended mode is used */ + exmc_norsram_init_struct->write_timing->asyn_address_setuptime = 0xFU; + exmc_norsram_init_struct->write_timing->asyn_address_holdtime = 0xFU; + exmc_norsram_init_struct->write_timing->asyn_data_setuptime = 0xFFU; + exmc_norsram_init_struct->write_timing->bus_latency = 0xFU; + exmc_norsram_init_struct->write_timing->asyn_access_mode = EXMC_ACCESS_MODE_A; +} + +/*! + \brief enable EXMC NOR/PSRAM bank region + \param[in] norsram_region: specifie the region of NOR/PSRAM bank + \arg EXMC_BANK0_NORSRAM_REGIONx(x=0..3) + \param[out] none + \retval none +*/ +void exmc_norsram_enable(uint32_t norsram_region) +{ + EXMC_SNCTL(norsram_region) |= (uint32_t)EXMC_SNCTL_NRBKEN; +} + +/*! + \brief disable EXMC NOR/PSRAM bank region + \param[in] norsram_region: specifie the region of NOR/PSRAM Bank + \arg EXMC_BANK0_NORSRAM_REGIONx(x=0..3) + \param[out] none + \retval none +*/ +void exmc_norsram_disable(uint32_t norsram_region) +{ + EXMC_SNCTL(norsram_region) &= ~(uint32_t)EXMC_SNCTL_NRBKEN; +} + +/*! + \brief deinitialize EXMC NAND bank + \param[in] nand_bank: select the bank of NAND + \arg EXMC_BANKx_NAND(x=1..2) + \param[out] none + \retval none +*/ +void exmc_nand_deinit(uint32_t nand_bank) +{ + /* EXMC_BANK1_NAND or EXMC_BANK2_NAND */ + EXMC_NPCTL(nand_bank) = BANK1_2_NPCTL_RESET; + EXMC_NPINTEN(nand_bank) = BANK1_2_NPINTEN_RESET; + EXMC_NPCTCFG(nand_bank) = BANK1_2_NPCTCFG_RESET; + EXMC_NPATCFG(nand_bank) = BANK1_2_NPATCFG_RESET; +} + +/*! + \brief initialize EXMC NAND bank + \param[in] exmc_nand_parameter_struct: configure the EXMC NAND parameter + nand_bank: EXMC_BANK1_NAND,EXMC_BANK2_NAND + ecc_size: EXMC_ECC_SIZE_xBYTES,x=256,512,1024,2048,4096 + atr_latency: EXMC_ALE_RE_DELAY_x_HCLK,x=1..16 + ctr_latency: EXMC_CLE_RE_DELAY_x_HCLK,x=1..16 + ecc_logic: ENABLE or DISABLE + databus_width: EXMC_NAND_DATABUS_WIDTH_8B,EXMC_NAND_DATABUS_WIDTH_16B + wait_feature: ENABLE or DISABLE + common_space_timing: struct exmc_nand_pccard_timing_parameter_struct set the time + attribute_space_timing: struct exmc_nand_pccard_timing_parameter_struct set the time + \param[out] none + \retval none +*/ +void exmc_nand_init(exmc_nand_parameter_struct* exmc_nand_init_struct) +{ + uint32_t npctl = 0x00000000U, npctcfg = 0x00000000U, npatcfg = 0x00000000U; + + npctl = (uint32_t)(exmc_nand_init_struct->wait_feature << NPCTL_NDWTEN_OFFSET)| + EXMC_NPCTL_NDTP | + exmc_nand_init_struct->databus_width | + (exmc_nand_init_struct->ecc_logic << NPCTL_ECCEN_OFFSET)| + exmc_nand_init_struct->ecc_size | + exmc_nand_init_struct->ctr_latency | + exmc_nand_init_struct->atr_latency; + + npctcfg = (uint32_t)((exmc_nand_init_struct->common_space_timing->setuptime - 1U) & EXMC_NPCTCFG_COMSET ) | + (((exmc_nand_init_struct->common_space_timing->waittime - 1U) << NPCTCFG_COMWAIT_OFFSET) & EXMC_NPCTCFG_COMWAIT ) | + ((exmc_nand_init_struct->common_space_timing->holdtime << NPCTCFG_COMHLD_OFFSET) & EXMC_NPCTCFG_COMHLD ) | + (((exmc_nand_init_struct->common_space_timing->databus_hiztime - 1U) << NPCTCFG_COMHIZ_OFFSET) & EXMC_NPCTCFG_COMHIZ ); + + npatcfg = (uint32_t)((exmc_nand_init_struct->attribute_space_timing->setuptime - 1U) & EXMC_NPATCFG_ATTSET ) | + (((exmc_nand_init_struct->attribute_space_timing->waittime - 1U) << NPATCFG_ATTWAIT_OFFSET) & EXMC_NPATCFG_ATTWAIT ) | + ((exmc_nand_init_struct->attribute_space_timing->holdtime << NPATCFG_ATTHLD_OFFSET) & EXMC_NPATCFG_ATTHLD ) | + (((exmc_nand_init_struct->attribute_space_timing->databus_hiztime -1U) << NPATCFG_ATTHIZ_OFFSET) & EXMC_NPATCFG_ATTHIZ ); + + /* EXMC_BANK1_NAND or EXMC_BANK2_NAND initialize */ + EXMC_NPCTL(exmc_nand_init_struct->nand_bank) = npctl; + EXMC_NPCTCFG(exmc_nand_init_struct->nand_bank) = npctcfg; + EXMC_NPATCFG(exmc_nand_init_struct->nand_bank) = npatcfg; +} + +/*! + \brief initialize the struct exmc_nand_init_struct + \param[in] none + \param[out] the initialized struct exmc_nand_init_struct pointer + \retval none +*/ +void exmc_nand_struct_para_init(exmc_nand_parameter_struct* exmc_nand_init_struct) +{ + /* configure the structure with default value */ + exmc_nand_init_struct->nand_bank = EXMC_BANK1_NAND; + exmc_nand_init_struct->wait_feature = DISABLE; + exmc_nand_init_struct->databus_width = EXMC_NAND_DATABUS_WIDTH_8B; + exmc_nand_init_struct->ecc_logic = DISABLE; + exmc_nand_init_struct->ecc_size = EXMC_ECC_SIZE_256BYTES; + exmc_nand_init_struct->ctr_latency = 0x0U; + exmc_nand_init_struct->atr_latency = 0x0U; + exmc_nand_init_struct->common_space_timing->setuptime = 0xFCU; + exmc_nand_init_struct->common_space_timing->waittime = 0xFCU; + exmc_nand_init_struct->common_space_timing->holdtime = 0xFCU; + exmc_nand_init_struct->common_space_timing->databus_hiztime = 0xFCU; + exmc_nand_init_struct->attribute_space_timing->setuptime = 0xFCU; + exmc_nand_init_struct->attribute_space_timing->waittime = 0xFCU; + exmc_nand_init_struct->attribute_space_timing->holdtime = 0xFCU; + exmc_nand_init_struct->attribute_space_timing->databus_hiztime = 0xFCU; +} + +/*! + \brief enable NAND bank + \param[in] nand_bank: specifie the NAND bank + \arg EXMC_BANKx_NAND(x=1,2) + \param[out] none + \retval none +*/ +void exmc_nand_enable(uint32_t nand_bank) +{ + EXMC_NPCTL(nand_bank) |= EXMC_NPCTL_NDBKEN; +} + +/*! + \brief disable NAND bank + \param[in] nand_bank: specifie the NAND bank + \arg EXMC_BANKx_NAND(x=1,2) + \param[out] none + \retval none +*/ +void exmc_nand_disable(uint32_t nand_bank) +{ + EXMC_NPCTL(nand_bank) &= ~EXMC_NPCTL_NDBKEN; +} + +/*! + \brief enable or disable the EXMC NAND ECC function + \param[in] nand_bank: specifie the NAND bank + \arg EXMC_BANKx_NAND(x=1,2) + \param[in] newvalue: ENABLE or DISABLE + \param[out] none + \retval none +*/ +void exmc_nand_ecc_config(uint32_t nand_bank, ControlStatus newvalue) +{ + if (ENABLE == newvalue){ + /* enable the selected NAND bank ECC function */ + EXMC_NPCTL(nand_bank) |= EXMC_NPCTL_ECCEN; + }else{ + /* disable the selected NAND bank ECC function */ + EXMC_NPCTL(nand_bank) &= ~EXMC_NPCTL_ECCEN; + } +} + +/*! + \brief get the EXMC ECC value + \param[in] nand_bank: specifie the NAND bank + \arg EXMC_BANKx_NAND(x=1,2) + \param[out] none + \retval the error correction code(ECC) value +*/ +uint32_t exmc_ecc_get(uint32_t nand_bank) +{ + return (EXMC_NECC(nand_bank)); +} + +/*! + \brief deinitialize EXMC PC card bank + \param[in] none + \param[out] none + \retval none +*/ +void exmc_pccard_deinit(void) +{ + /* EXMC_BANK3_PCCARD */ + EXMC_NPCTL3 = BANK3_NPCTL_RESET; + EXMC_NPINTEN3 = BANK3_NPINTEN_RESET; + EXMC_NPCTCFG3 = BANK3_NPCTCFG_RESET; + EXMC_NPATCFG3 = BANK3_NPATCFG_RESET; + EXMC_PIOTCFG3 = BANK3_PIOTCFG3_RESET; +} + +/*! + \brief initialize EXMC PC card bank + \param[in] exmc_pccard_parameter_struct: configure the EXMC NAND parameter + atr_latency: EXMC_ALE_RE_DELAY_x_HCLK,x=1..16 + ctr_latency: EXMC_CLE_RE_DELAY_x_HCLK,x=1..16 + wait_feature: ENABLE or DISABLE + common_space_timing: struct exmc_nand_pccard_timing_parameter_struct set the time + attribute_space_timing: struct exmc_nand_pccard_timing_parameter_struct set the time + io_space_timing: exmc_nand_pccard_timing_parameter_struct set the time + \param[out] none + \retval none +*/ +void exmc_pccard_init(exmc_pccard_parameter_struct* exmc_pccard_init_struct) +{ + /* configure the EXMC bank3 PC card control register */ + EXMC_NPCTL3 = (uint32_t)(exmc_pccard_init_struct->wait_feature << NPCTL_NDWTEN_OFFSET) | + EXMC_NAND_DATABUS_WIDTH_16B | + exmc_pccard_init_struct->ctr_latency | + exmc_pccard_init_struct->atr_latency ; + + /* configure the EXMC bank3 PC card common space timing configuration register */ + EXMC_NPCTCFG3 = (uint32_t)((exmc_pccard_init_struct->common_space_timing->setuptime - 1U)& EXMC_NPCTCFG_COMSET ) | + (((exmc_pccard_init_struct->common_space_timing->waittime - 1U) << NPCTCFG_COMWAIT_OFFSET) & EXMC_NPCTCFG_COMWAIT ) | + ((exmc_pccard_init_struct->common_space_timing->holdtime << NPCTCFG_COMHLD_OFFSET) & EXMC_NPCTCFG_COMHLD ) | + (((exmc_pccard_init_struct->common_space_timing->databus_hiztime - 1U) << NPCTCFG_COMHIZ_OFFSET) & EXMC_NPCTCFG_COMHIZ ); + + /* configure the EXMC bank3 PC card attribute space timing configuration register */ + EXMC_NPATCFG3 = (uint32_t)((exmc_pccard_init_struct->attribute_space_timing->setuptime - 1U) & EXMC_NPATCFG_ATTSET ) | + (((exmc_pccard_init_struct->attribute_space_timing->waittime - 1U) << NPATCFG_ATTWAIT_OFFSET) & EXMC_NPATCFG_ATTWAIT ) | + ((exmc_pccard_init_struct->attribute_space_timing->holdtime << NPATCFG_ATTHLD_OFFSET) & EXMC_NPATCFG_ATTHLD )| + (((exmc_pccard_init_struct->attribute_space_timing->databus_hiztime -1U) << NPATCFG_ATTHIZ_OFFSET) & EXMC_NPATCFG_ATTHIZ ); + + /* configure the EXMC bank3 PC card io space timing configuration register */ + EXMC_PIOTCFG3 = (uint32_t)((exmc_pccard_init_struct->io_space_timing->setuptime - 1U) & EXMC_PIOTCFG3_IOSET ) | + (((exmc_pccard_init_struct->io_space_timing->waittime - 1U) << PIOTCFG_IOWAIT_OFFSET) & EXMC_PIOTCFG3_IOWAIT ) | + ((exmc_pccard_init_struct->io_space_timing->holdtime << PIOTCFG_IOHLD_OFFSET) & EXMC_PIOTCFG3_IOHLD )| + ((exmc_pccard_init_struct->io_space_timing->databus_hiztime << PIOTCFG_IOHIZ_OFFSET) & EXMC_PIOTCFG3_IOHIZ ); +} + +/*! + \brief initialize the struct exmc_pccard_parameter_struct + \param[in] none + \param[out] the initialized struct exmc_pccard_parameter_struct pointer + \retval none +*/ +void exmc_pccard_struct_para_init(exmc_pccard_parameter_struct* exmc_pccard_init_struct) +{ + /* configure the structure with default value */ + exmc_pccard_init_struct->wait_feature = DISABLE; + exmc_pccard_init_struct->ctr_latency = 0x0U; + exmc_pccard_init_struct->atr_latency = 0x0U; + exmc_pccard_init_struct->common_space_timing->setuptime = 0xFCU; + exmc_pccard_init_struct->common_space_timing->waittime = 0xFCU; + exmc_pccard_init_struct->common_space_timing->holdtime = 0xFCU; + exmc_pccard_init_struct->common_space_timing->databus_hiztime = 0xFCU; + exmc_pccard_init_struct->attribute_space_timing->setuptime = 0xFCU; + exmc_pccard_init_struct->attribute_space_timing->waittime = 0xFCU; + exmc_pccard_init_struct->attribute_space_timing->holdtime = 0xFCU; + exmc_pccard_init_struct->attribute_space_timing->databus_hiztime = 0xFCU; + exmc_pccard_init_struct->io_space_timing->setuptime = 0xFCU; + exmc_pccard_init_struct->io_space_timing->waittime = 0xFCU; + exmc_pccard_init_struct->io_space_timing->holdtime = 0xFCU; + exmc_pccard_init_struct->io_space_timing->databus_hiztime = 0xFCU; +} + +/*! + \brief enable PC Card Bank + \param[in] none + \param[out] none + \retval none +*/ +void exmc_pccard_enable(void) +{ + EXMC_NPCTL3 |= EXMC_NPCTL_NDBKEN; +} + +/*! + \brief disable PC Card Bank + \param[in] none + \param[out] none + \retval none +*/ +void exmc_pccard_disable(void) +{ + EXMC_NPCTL3 &= ~EXMC_NPCTL_NDBKEN; +} + +/*! + \brief enable EXMC interrupt + \param[in] bank: specifies the NAND bank, PC card bank + only one parameter can be selected which is shown as below: + \arg EXMC_BANK1_NAND: the NAND bank1 + \arg EXMC_BANK2_NAND: the NAND bank2 + \arg EXMC_BANK3_PCCARD: the PC card bank + \param[in] interrupt_source: specify get which interrupt flag + one or more parameters can be selected which is shown as below: + \arg EXMC_NAND_PCCARD_INT_RISE: interrupt source of rising edge + \arg EXMC_NAND_PCCARD_INT_LEVEL: interrupt source of high-level + \arg EXMC_NAND_PCCARD_INT_FALL: interrupt source of falling edge + \param[out] none + \retval none +*/ +void exmc_interrupt_enable(uint32_t bank, uint32_t interrupt_source) +{ + /* NAND bank1, bank2 or PC card bank3 */ + EXMC_NPINTEN(bank) |= interrupt_source; +} + +/*! + \brief disable EXMC interrupt + \param[in] bank: specifies the NAND bank, PC card bank + only one parameter can be selected which is shown as below: + \arg EXMC_BANK1_NAND: the NAND bank1 + \arg EXMC_BANK2_NAND: the NAND bank2 + \arg EXMC_BANK3_PCCARD: the PC card bank + \param[in] interrupt_source: specify get which interrupt flag + one or more parameters can be selected which is shown as below: + \arg EXMC_NAND_PCCARD_INT_RISE: interrupt source of rising edge + \arg EXMC_NAND_PCCARD_INT_LEVEL: interrupt source of high-level + \arg EXMC_NAND_PCCARD_INT_FALL: interrupt source of falling edge + \param[out] none + \retval none +*/ +void exmc_interrupt_disable(uint32_t bank, uint32_t interrupt_source) +{ + /* NAND bank1,bank2 or PC card bank3 */ + EXMC_NPINTEN(bank) &= ~interrupt_source; +} + +/*! + \brief check EXMC flag is set or not + \param[in] bank: specifies the NAND bank, PC card bank + only one parameter can be selected which is shown as below: + \arg EXMC_BANK1_NAND: the NAND bank1 + \arg EXMC_BANK2_NAND: the NAND bank2 + \arg EXMC_BANK3_PCCARD: the PC Card bank + \param[in] flag: specify get which flag + only one parameter can be selected which is shown as below: + \arg EXMC_NAND_PCCARD_FLAG_RISE: interrupt rising edge status + \arg EXMC_NAND_PCCARD_FLAG_LEVEL: interrupt high-level status + \arg EXMC_NAND_PCCARD_FLAG_FALL: interrupt falling edge status + \arg EXMC_NAND_PCCARD_FLAG_FIFOE: FIFO empty flag + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus exmc_flag_get(uint32_t bank, uint32_t flag) +{ + uint32_t status = 0x00000000U; + + /* NAND bank1,bank2 or PC card bank3 */ + status = EXMC_NPINTEN(bank); + + if ((status & flag) != (uint32_t)flag ){ + /* flag is reset */ + return RESET; + }else{ + /* flag is set */ + return SET; + } +} + +/*! + \brief clear EXMC flag + \param[in] bank: specifie the NAND bank, PCCARD bank + only one parameter can be selected which is shown as below: + \arg EXMC_BANK1_NAND: the NAND bank1 + \arg EXMC_BANK2_NAND: the NAND bank2 + \arg EXMC_BANK3_PCCARD: the PC card bank + \param[in] flag: specify get which flag + one or more parameters can be selected which is shown as below: + \arg EXMC_NAND_PCCARD_FLAG_RISE: interrupt rising edge status + \arg EXMC_NAND_PCCARD_FLAG_LEVEL: interrupt high-level status + \arg EXMC_NAND_PCCARD_FLAG_FALL: interrupt falling edge status + \arg EXMC_NAND_PCCARD_FLAG_FIFOE: FIFO empty flag + \param[out] none + \retval none +*/ +void exmc_flag_clear(uint32_t bank, uint32_t flag) +{ + /* NAND bank1,bank2 or PC card bank3 */ + EXMC_NPINTEN(bank) &= ~flag; +} + +/*! + \brief check EXMC interrupt flag is set or not + \param[in] bank: specifies the NAND bank, PC card bank + only one parameter can be selected which is shown as below: + \arg EXMC_BANK1_NAND: the NAND bank1 + \arg EXMC_BANK2_NAND: the NAND bank2 + \arg EXMC_BANK3_PCCARD: the PC card bank + \param[in] interrupt_source: specify get which interrupt flag + only one parameter can be selected which is shown as below: + \arg EXMC_NAND_PCCARD_INT_RISE: interrupt source of rising edge + \arg EXMC_NAND_PCCARD_INT_LEVEL: interrupt source of high-level + \arg EXMC_NAND_PCCARD_INT_FALL: interrupt source of falling edge + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus exmc_interrupt_flag_get(uint32_t bank, uint32_t interrupt_source) +{ + uint32_t status = 0x00000000U,interrupt_enable = 0x00000000U,interrupt_state = 0x00000000U; + + /* NAND bank1,bank2 or PC card bank3 */ + status = EXMC_NPINTEN(bank); + interrupt_state = (status & (interrupt_source >> INTEN_INTS_OFFSET)); + + interrupt_enable = (status & interrupt_source); + + if ((interrupt_enable) && (interrupt_state)){ + /* interrupt flag is set */ + return SET; + }else{ + /* interrupt flag is reset */ + return RESET; + } +} + +/*! + \brief clear EXMC interrupt flag + \param[in] bank: specifies the NAND bank, PC card bank + only one parameter can be selected which is shown as below: + \arg EXMC_BANK1_NAND: the NAND bank1 + \arg EXMC_BANK2_NAND: the NAND bank2 + \arg EXMC_BANK3_PCCARD: the PC card bank + \param[in] interrupt_source: specify get which interrupt flag + one or more parameters can be selected which is shown as below: + \arg EXMC_NAND_PCCARD_INT_RISE: interrupt source of rising edge + \arg EXMC_NAND_PCCARD_INT_LEVEL: interrupt source of high-level + \arg EXMC_NAND_PCCARD_INT_FALL: interrupt source of falling edge + \param[out] none + \retval none +*/ +void exmc_interrupt_flag_clear(uint32_t bank, uint32_t interrupt_source) +{ + /* NAND bank1, bank2 or PC card bank3 */ + EXMC_NPINTEN(bank) &= ~(interrupt_source >> INTEN_INTS_OFFSET); +} diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_exti.c b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_exti.c new file mode 100644 index 0000000..7084e96 --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_exti.c @@ -0,0 +1,249 @@ +/*! + \file gd32f10x_exti.c + \brief EXTI driver + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#include "gd32f10x_exti.h" + +#define EXTI_REG_RESET_VALUE ((uint32_t)0x00000000U) + +/*! + \brief deinitialize the EXTI + \param[in] none + \param[out] none + \retval none +*/ +void exti_deinit(void) +{ + /* reset the value of all the EXTI registers */ + EXTI_INTEN = EXTI_REG_RESET_VALUE; + EXTI_EVEN = EXTI_REG_RESET_VALUE; + EXTI_RTEN = EXTI_REG_RESET_VALUE; + EXTI_FTEN = EXTI_REG_RESET_VALUE; + EXTI_SWIEV = EXTI_REG_RESET_VALUE; +} + +/*! + \brief initialize the EXTI line x + \param[in] linex: EXTI line number, refer to exti_line_enum + only one parameter can be selected which is shown as below: + \arg EXTI_x (x=0..19): EXTI line x + \param[in] mode: interrupt or event mode, refer to exti_mode_enum + only one parameter can be selected which is shown as below: + \arg EXTI_INTERRUPT: interrupt mode + \arg EXTI_EVENT: event mode + \param[in] trig_type: interrupt trigger type, refer to exti_trig_type_enum + only one parameter can be selected which is shown as below: + \arg EXTI_TRIG_RISING: rising edge trigger + \arg EXTI_TRIG_FALLING: falling trigger + \arg EXTI_TRIG_BOTH: rising and falling trigger + \arg EXTI_TRIG_NONE: without rising edge or falling edge trigger + \param[out] none + \retval none +*/ +void exti_init(exti_line_enum linex, exti_mode_enum mode, exti_trig_type_enum trig_type) +{ + /* reset the EXTI line x */ + EXTI_INTEN &= ~(uint32_t)linex; + EXTI_EVEN &= ~(uint32_t)linex; + EXTI_RTEN &= ~(uint32_t)linex; + EXTI_FTEN &= ~(uint32_t)linex; + + /* set the EXTI mode and enable the interrupts or events from EXTI line x */ + switch(mode) { + case EXTI_INTERRUPT: + EXTI_INTEN |= (uint32_t)linex; + break; + case EXTI_EVENT: + EXTI_EVEN |= (uint32_t)linex; + break; + default: + break; + } + + /* set the EXTI trigger type */ + switch(trig_type) { + case EXTI_TRIG_RISING: + EXTI_RTEN |= (uint32_t)linex; + EXTI_FTEN &= ~(uint32_t)linex; + break; + case EXTI_TRIG_FALLING: + EXTI_RTEN &= ~(uint32_t)linex; + EXTI_FTEN |= (uint32_t)linex; + break; + case EXTI_TRIG_BOTH: + EXTI_RTEN |= (uint32_t)linex; + EXTI_FTEN |= (uint32_t)linex; + break; + case EXTI_TRIG_NONE: + default: + break; + } +} + +/*! + \brief enable the interrupts from EXTI line x + \param[in] linex: EXTI line number, refer to exti_line_enum + only one parameter can be selected which is shown as below: + \arg EXTI_x (x=0..19): EXTI line x + \param[out] none + \retval none +*/ +void exti_interrupt_enable(exti_line_enum linex) +{ + EXTI_INTEN |= (uint32_t)linex; +} + +/*! + \brief disable the interrupts from EXTI line x + \param[in] linex: EXTI line number, refer to exti_line_enum + only one parameter can be selected which is shown as below: + \arg EXTI_x (x=0..19): EXTI line x + \param[out] none + \retval none +*/ +void exti_interrupt_disable(exti_line_enum linex) +{ + EXTI_INTEN &= ~(uint32_t)linex; +} + +/*! + \brief enable the events from EXTI line x + \param[in] linex: EXTI line number, refer to exti_line_enum + only one parameter can be selected which is shown as below: + \arg EXTI_x (x=0..19): EXTI line x + \param[out] none + \retval none +*/ +void exti_event_enable(exti_line_enum linex) +{ + EXTI_EVEN |= (uint32_t)linex; +} + +/*! + \brief disable the events from EXTI line x + \param[in] linex: EXTI line number, refer to exti_line_enum + only one parameter can be selected which is shown as below: + \arg EXTI_x (x=0..19): EXTI line x + \param[out] none + \retval none +*/ +void exti_event_disable(exti_line_enum linex) +{ + EXTI_EVEN &= ~(uint32_t)linex; +} + +/*! + \brief enable the software interrupt event from EXTI line x + \param[in] linex: EXTI line number, refer to exti_line_enum + only one parameter can be selected which is shown as below: + \arg EXTI_x (x=0..19): EXTI line x + \param[out] none + \retval none +*/ +void exti_software_interrupt_enable(exti_line_enum linex) +{ + EXTI_SWIEV |= (uint32_t)linex; +} + +/*! + \brief disable the software interrupt event from EXTI line x + \param[in] linex: EXTI line number, refer to exti_line_enum + only one parameter can be selected which is shown as below: + \arg EXTI_x (x=0..19): EXTI line x + \param[out] none + \retval none +*/ +void exti_software_interrupt_disable(exti_line_enum linex) +{ + EXTI_SWIEV &= ~(uint32_t)linex; +} + +/*! + \brief get EXTI line x interrupt pending flag + \param[in] linex: EXTI line number, refer to exti_line_enum + only one parameter can be selected which is shown as below: + \arg EXTI_x (x=0..19): EXTI line x + \param[out] none + \retval FlagStatus: status of flag (RESET or SET) +*/ +FlagStatus exti_flag_get(exti_line_enum linex) +{ + if(RESET != (EXTI_PD & (uint32_t)linex)) { + return SET; + } else { + return RESET; + } +} + +/*! + \brief clear EXTI line x interrupt pending flag + \param[in] linex: EXTI line number, refer to exti_line_enum + only one parameter can be selected which is shown as below: + \arg EXTI_x (x=0..19): EXTI line x + \param[out] none + \retval none +*/ +void exti_flag_clear(exti_line_enum linex) +{ + EXTI_PD = (uint32_t)linex; +} + +/*! + \brief get EXTI line x interrupt pending flag + \param[in] linex: EXTI line number, refer to exti_line_enum + only one parameter can be selected which is shown as below: + \arg EXTI_x (x=0..19): EXTI line x + \param[out] none + \retval FlagStatus: status of flag (RESET or SET) +*/ +FlagStatus exti_interrupt_flag_get(exti_line_enum linex) +{ + if(RESET != (EXTI_PD & (uint32_t)linex)) { + return SET; + } else { + return RESET; + } +} + +/*! + \brief clear EXTI line x interrupt pending flag + \param[in] linex: EXTI line number, refer to exti_line_enum + only one parameter can be selected which is shown as below: + \arg EXTI_x (x=0..19): EXTI line x + \param[out] none + \retval none +*/ +void exti_interrupt_flag_clear(exti_line_enum linex) +{ + EXTI_PD = (uint32_t)linex; +} diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_fmc.c b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_fmc.c new file mode 100644 index 0000000..77be676 --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_fmc.c @@ -0,0 +1,967 @@ +/*! + \file gd32f10x_fmc.c + \brief FMC driver + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#include "gd32f10x_fmc.h" + +/*! + \brief set the wait state counter value + \param[in] wscnt��wait state counter value + \arg WS_WSCNT_0: FMC 0 wait state + \arg WS_WSCNT_1: FMC 1 wait state + \arg WS_WSCNT_2: FMC 2 wait state + \param[out] none + \retval none +*/ +void fmc_wscnt_set(uint32_t wscnt) +{ + uint32_t reg; + + reg = FMC_WS; + /* set the wait state counter value */ + reg &= ~FMC_WS_WSCNT; + FMC_WS = (reg | wscnt); +} + +/*! + \brief unlock the main FMC operation + \param[in] none + \param[out] none + \retval none +*/ +void fmc_unlock(void) +{ + if((RESET != (FMC_CTL0 & FMC_CTL0_LK))){ + /* write the FMC unlock key */ + FMC_KEY0 = UNLOCK_KEY0; + FMC_KEY0 = UNLOCK_KEY1; + } + + if(FMC_BANK0_SIZE < FMC_SIZE){ + /* write the FMC unlock key */ + if(RESET != (FMC_CTL1 & FMC_CTL1_LK)){ + FMC_KEY1 = UNLOCK_KEY0; + FMC_KEY1 = UNLOCK_KEY1; + } + } +} + +/*! + \brief unlock the FMC bank0 operation + this function can be used for all GD32F10x devices. + for GD32F10x_MD and GD32F10x_HD, this function unlocks bank0. + for GD32F10x_XD and GD32F10x_CL with flash no more than 512KB, it is equivalent to fmc_unlock function. + \param[in] none + \param[out] none + \retval none +*/ +void fmc_bank0_unlock(void) +{ + if((RESET != (FMC_CTL0 & FMC_CTL0_LK))){ + /* write the FMC unlock key */ + FMC_KEY0 = UNLOCK_KEY0; + FMC_KEY0 = UNLOCK_KEY1; + } +} + +/*! + \brief unlock the FMC bank1 operation + this function can be used for GD32F10x_XD and GD32F10x_CL with flash more than 512KB. + \param[in] none + \param[out] none + \retval none +*/ +void fmc_bank1_unlock(void) +{ + if((RESET != (FMC_CTL1 & FMC_CTL1_LK))){ + /* write the FMC unlock key */ + FMC_KEY1 = UNLOCK_KEY0; + FMC_KEY1 = UNLOCK_KEY1; + } +} + +/*! + \brief lock the main FMC operation + \param[in] none + \param[out] none + \retval none +*/ +void fmc_lock(void) +{ + /* set the LK bit */ + FMC_CTL0 |= FMC_CTL0_LK; + + if(FMC_BANK0_SIZE < FMC_SIZE){ + /* set the LK bit */ + FMC_CTL1 |= FMC_CTL1_LK; + } +} + +/*! + \brief lock the FMC bank0 operation + this function can be used for all GD32F10X devices. + for GD32F10x_MD and GD32F10x_HD, this function unlocks bank0. + for GD32F10x_XD and GD32F10x_CL with flash no more than 512KB, it is equivalent to fmc_unlock function. + \param[in] none + \param[out] none + \retval none +*/ +void fmc_bank0_lock(void) +{ + /* set the LK bit*/ + FMC_CTL0 |= FMC_CTL0_LK; +} + +/*! + \brief lock the FMC bank1 operation + this function can be used for GD32F10x_XD and GD32F10x_CL with flash more than 512KB. + \param[in] none + \param[out] none + \retval none +*/ +void fmc_bank1_lock(void) +{ + /* set the LK bit*/ + FMC_CTL1 |= FMC_CTL1_LK; +} + +/*! + \brief erase page + \param[in] page_address: the page address to be erased. + \param[out] none + \retval state of FMC, refer to fmc_state_enum +*/ +fmc_state_enum fmc_page_erase(uint32_t page_address) +{ + fmc_state_enum fmc_state; + + if(FMC_BANK0_SIZE < FMC_SIZE){ + if(FMC_BANK0_END_ADDRESS > page_address){ + fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + /* if the last operation is completed, start page erase */ + if(FMC_READY == fmc_state){ + FMC_CTL0 |= FMC_CTL0_PER; + FMC_ADDR0 = page_address; + FMC_CTL0 |= FMC_CTL0_START; + __nop(); + __nop(); + /* wait for the FMC ready */ + fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + /* reset the PER bit */ + FMC_CTL0 &= ~FMC_CTL0_PER; + } + }else{ + /* wait for the FMC ready */ + fmc_state = fmc_bank1_ready_wait(FMC_TIMEOUT_COUNT); + /* if the last operation is completed, start page erase */ + if(FMC_READY == fmc_state){ + FMC_CTL1 |= FMC_CTL1_PER; + FMC_ADDR1 = page_address; + if(FMC_OBSTAT & FMC_OBSTAT_SPC){ + FMC_ADDR0 = page_address; + } + FMC_CTL1 |= FMC_CTL1_START; + __nop(); + __nop(); + /* wait for the FMC ready */ + fmc_state = fmc_bank1_ready_wait(FMC_TIMEOUT_COUNT); + /* reset the PER bit */ + FMC_CTL1 &= ~FMC_CTL1_PER; + } + } + }else{ + fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + /* if the last operation is completed, start page erase */ + if(FMC_READY == fmc_state){ + FMC_CTL0 |= FMC_CTL0_PER; + FMC_ADDR0 = page_address; + FMC_CTL0 |= FMC_CTL0_START; + __nop(); + __nop(); + /* wait for the FMC ready */ + fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + /* reset the PER bit */ + FMC_CTL0 &= ~FMC_CTL0_PER; + } + } + /* return the FMC state */ + return fmc_state; +} + +/*! + \brief erase whole chip + \param[in] none + \param[out] none + \retval state of FMC, refer to fmc_state_enum +*/ +fmc_state_enum fmc_mass_erase(void) +{ + fmc_state_enum fmc_state; + if(FMC_BANK0_SIZE < FMC_SIZE){ + /* wait for the FMC ready */ + fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + if(FMC_READY == fmc_state){ + /* start whole chip erase */ + FMC_CTL0 |= FMC_CTL0_MER; + FMC_CTL0 |= FMC_CTL0_START; + /* wait for the FMC ready */ + fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + /* reset the MER bit */ + FMC_CTL0 &= ~FMC_CTL0_MER; + } + fmc_state = fmc_bank1_ready_wait(FMC_TIMEOUT_COUNT); + if(FMC_READY == fmc_state){ + /* start whole chip erase */ + FMC_CTL1 |= FMC_CTL1_MER; + FMC_CTL1 |= FMC_CTL1_START; + /* wait for the FMC ready */ + fmc_state = fmc_bank1_ready_wait(FMC_TIMEOUT_COUNT); + /* reset the MER bit */ + FMC_CTL1 &= ~FMC_CTL1_MER; + } + }else{ + fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + + if(FMC_READY == fmc_state){ + /* start whole chip erase */ + FMC_CTL0 |= FMC_CTL0_MER; + FMC_CTL0 |= FMC_CTL0_START; + /* wait for the FMC ready */ + fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + /* reset the MER bit */ + FMC_CTL0 &= ~FMC_CTL0_MER; + } + } + /* return the FMC state */ + return fmc_state; +} + +/*! + \brief erase bank0 + \param[in] none + \param[out] none + \retval state of FMC, refer to fmc_state_enum +*/ +fmc_state_enum fmc_bank0_erase(void) +{ + fmc_state_enum fmc_state = FMC_READY; + /* wait for the FMC ready */ + fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + + if(FMC_READY == fmc_state){ + /* start FMC bank0 erase */ + FMC_CTL0 |= FMC_CTL0_MER; + FMC_CTL0 |= FMC_CTL0_START; + /* wait for the FMC ready */ + fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + /* reset the MER bit */ + FMC_CTL0 &= ~FMC_CTL0_MER; + } + /* return the fmc state */ + return fmc_state; +} + +/*! + \brief erase bank1 + \param[in] none + \param[out] none + \retval state of FMC, refer to fmc_state_enum +*/ +fmc_state_enum fmc_bank1_erase(void) +{ + fmc_state_enum fmc_state = FMC_READY; + /* wait for the FMC ready */ + fmc_state = fmc_bank1_ready_wait(FMC_TIMEOUT_COUNT); + + if(FMC_READY == fmc_state){ + /* start FMC bank1 erase */ + FMC_CTL1 |= FMC_CTL1_MER; + FMC_CTL1 |= FMC_CTL1_START; + /* wait for the FMC ready */ + fmc_state = fmc_bank1_ready_wait(FMC_TIMEOUT_COUNT); + /* reset the MER bit */ + FMC_CTL1 &= ~FMC_CTL1_MER; + } + /* return the fmc state */ + return fmc_state; +} + +/*! + \brief program a word at the corresponding address + \param[in] address: address to program + \param[in] data: word to program + \param[out] none + \retval state of FMC, refer to fmc_state_enum +*/ +fmc_state_enum fmc_word_program(uint32_t address, uint32_t data) +{ + fmc_state_enum fmc_state = FMC_READY; + if(FMC_BANK0_SIZE < FMC_SIZE){ + if(FMC_BANK0_END_ADDRESS > address){ + fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + + if(FMC_READY == fmc_state){ + /* set the PG bit to start program */ + FMC_CTL0 |= FMC_CTL0_PG; + REG32(address) = data; + /* wait for the FMC ready */ + fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + /* reset the PG bit */ + FMC_CTL0 &= ~FMC_CTL0_PG; + } + }else{ + fmc_state = fmc_bank1_ready_wait(FMC_TIMEOUT_COUNT); + + if(FMC_READY == fmc_state){ + /* set the PG bit to start program */ + FMC_CTL1 |= FMC_CTL1_PG; + REG32(address) = data; + /* wait for the FMC ready */ + fmc_state = fmc_bank1_ready_wait(FMC_TIMEOUT_COUNT); + /* reset the PG bit */ + FMC_CTL1 &= ~FMC_CTL1_PG; + } + } + }else{ + fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + + if(FMC_READY == fmc_state){ + /* set the PG bit to start program */ + FMC_CTL0 |= FMC_CTL0_PG; + REG32(address) = data; + /* wait for the FMC ready */ + fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + /* reset the PG bit */ + FMC_CTL0 &= ~FMC_CTL0_PG; + } + } + /* return the FMC state */ + return fmc_state; +} + +/*! + \brief program a half word at the corresponding address + \param[in] address: address to program + \param[in] data: halfword to program + \param[out] none + \retval state of FMC, refer to fmc_state_enum +*/ +fmc_state_enum fmc_halfword_program(uint32_t address, uint16_t data) +{ + fmc_state_enum fmc_state = FMC_READY; + if(FMC_BANK0_SIZE < FMC_SIZE){ + if(FMC_BANK0_END_ADDRESS > address){ + fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + + if(FMC_READY == fmc_state){ + /* set the PG bit to start program */ + FMC_CTL0 |= FMC_CTL0_PG; + REG16(address) = data; + /* wait for the FMC ready */ + fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + /* reset the PG bit */ + FMC_CTL0 &= ~FMC_CTL0_PG; + } + }else{ + fmc_state = fmc_bank1_ready_wait(FMC_TIMEOUT_COUNT); + + if(FMC_READY == fmc_state){ + /* set the PG bit to start program */ + FMC_CTL1 |= FMC_CTL1_PG; + REG16(address) = data; + /* wait for the FMC ready */ + fmc_state = fmc_bank1_ready_wait(FMC_TIMEOUT_COUNT); + /* reset the PG bit */ + FMC_CTL1 &= ~FMC_CTL1_PG; + } + } + }else{ + fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + + if(FMC_READY == fmc_state){ + /* set the PG bit to start program */ + FMC_CTL0 |= FMC_CTL0_PG; + REG16(address) = data; + /* wait for the FMC ready */ + fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + /* reset the PG bit */ + FMC_CTL0 &= ~FMC_CTL0_PG; + } + } + /* return the FMC state */ + return fmc_state; +} + +/*! + \brief unlock the option byte operation + \param[in] none + \param[out] none + \retval none +*/ +void ob_unlock(void) +{ + if(RESET == (FMC_CTL0 & FMC_CTL0_OBWEN)){ + /* write the FMC key */ + FMC_OBKEY = UNLOCK_KEY0; + FMC_OBKEY = UNLOCK_KEY1; + } + + /* wait until OBWEN bit is set by hardware */ + while(RESET == (FMC_CTL0 & FMC_CTL0_OBWEN)){ + } +} + +/*! + \brief lock the option byte operation + \param[in] none + \param[out] none + \retval none +*/ +void ob_lock(void) +{ + /* reset the OBWEN bit */ + FMC_CTL0 &= ~FMC_CTL0_OBWEN; +} + +/*! + \brief erase the FMC option byte + unlock the FMC_CTL0 and option byte before calling this function + \param[in] none + \param[out] none + \retval state of FMC, refer to fmc_state_enum +*/ +fmc_state_enum ob_erase(void) +{ + uint16_t temp_spc = FMC_NSPC; + + fmc_state_enum fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + + /* check the option byte security protection value */ + if(RESET != ob_spc_get()){ + temp_spc = FMC_USPC; + } + + if(FMC_READY == fmc_state){ + + /* start erase the option byte */ + FMC_CTL0 |= FMC_CTL0_OBER; + FMC_CTL0 |= FMC_CTL0_START; + + /* wait for the FMC ready */ + fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + + if(FMC_READY == fmc_state){ + /* reset the OBER bit */ + FMC_CTL0 &= ~FMC_CTL0_OBER; + /* set the OBPG bit */ + FMC_CTL0 |= FMC_CTL0_OBPG; + /* no security protection */ + OB_SPC = (uint16_t)temp_spc; + /* wait for the FMC ready */ + fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + if(FMC_TOERR != fmc_state){ + /* reset the OBPG bit */ + FMC_CTL0 &= ~FMC_CTL0_OBPG; + } + }else{ + if(FMC_TOERR != fmc_state){ + /* reset the OBPG bit */ + FMC_CTL0 &= ~FMC_CTL0_OBPG; + } + } + } + /* return the FMC state */ + return fmc_state; +} + +/*! + \brief enable write protection + \param[in] ob_wp: specify sector to be write protected, set the bit to 1 if + you want to protect the corresponding pages. meanwhile, sector + macro could used to set specific sector write protected. + one or more parameters can be selected which are shown as below: + \arg OB_WPx(x = 0..31): write protect specify sector + \arg OB_WP_ALL: write protect all sector + \param[out] none + \retval state of FMC, refer to fmc_state_enum +*/ +fmc_state_enum ob_write_protection_enable(uint32_t ob_wp) +{ + uint16_t temp_wp0, temp_wp1, temp_wp2, temp_wp3; + + fmc_state_enum fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + + ob_wp = (uint32_t)(~ob_wp); + temp_wp0 = (uint16_t)(ob_wp & OB_WP0_WP0); + temp_wp1 = (uint16_t)((ob_wp & OB_WP1_WP1) >> 8U); + temp_wp2 = (uint16_t)((ob_wp & OB_WP2_WP2) >> 16U); + temp_wp3 = (uint16_t)((ob_wp & OB_WP3_WP3) >> 24U); + + if(FMC_READY == fmc_state){ + + /* set the OBPG bit*/ + FMC_CTL0 |= FMC_CTL0_OBPG; + + if(0xFFU != temp_wp0){ + OB_WP0 = temp_wp0; + + /* wait for the FMC ready */ + fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + } + if((FMC_READY == fmc_state) && (0xFFU != temp_wp1)){ + OB_WP1 = temp_wp1; + + /* wait for the FMC ready */ + fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + } + if((FMC_READY == fmc_state) && (0xFFU != temp_wp2)){ + OB_WP2 = temp_wp2; + + /* wait for the FMC ready */ + fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + } + if((FMC_READY == fmc_state) && (0xFFU != temp_wp3)){ + OB_WP3 = temp_wp3; + + /* wait for the FMC ready */ + fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + } + if(FMC_TOERR != fmc_state){ + /* reset the OBPG bit */ + FMC_CTL0 &= ~FMC_CTL0_OBPG; + } + } + /* return the FMC state */ + return fmc_state; +} + +/*! + \brief configure security protection + \param[in] ob_spc: specify security protection + only one parameter can be selected which is shown as below: + \arg FMC_NSPC: no security protection + \arg FMC_USPC: under security protection + \param[out] none + \retval state of FMC, refer to fmc_state_enum +*/ +fmc_state_enum ob_security_protection_config(uint8_t ob_spc) +{ + fmc_state_enum fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + + if(FMC_READY == fmc_state){ + FMC_CTL0 |= FMC_CTL0_OBER; + FMC_CTL0 |= FMC_CTL0_START; + + /* wait for the FMC ready */ + fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + + if(FMC_READY == fmc_state){ + /* reset the OBER bit */ + FMC_CTL0 &= ~FMC_CTL0_OBER; + + /* start the option byte program */ + FMC_CTL0 |= FMC_CTL0_OBPG; + + OB_SPC = (uint16_t)ob_spc; + + /* wait for the FMC ready */ + fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + + if(FMC_TOERR != fmc_state){ + /* reset the OBPG bit */ + FMC_CTL0 &= ~FMC_CTL0_OBPG; + } + }else{ + if(FMC_TOERR != fmc_state){ + /* reset the OBER bit */ + FMC_CTL0 &= ~FMC_CTL0_OBER; + } + } + } + /* return the FMC state */ + return fmc_state; +} + +/*! + \brief program the FMC user option byte + \param[in] ob_fwdgt: option byte watchdog value + \arg OB_FWDGT_SW: software free watchdog + \arg OB_FWDGT_HW: hardware free watchdog + \param[in] ob_deepsleep: option byte deepsleep reset value + \arg OB_DEEPSLEEP_NRST: no reset when entering deepsleep mode + \arg OB_DEEPSLEEP_RST: generate a reset instead of entering deepsleep mode + \param[in] ob_stdby:option byte standby reset value + \arg OB_STDBY_NRST: no reset when entering standby mode + \arg OB_STDBY_RST: generate a reset instead of entering standby mode + \param[in] ob_boot: specifies the option byte boot bank value + \arg OB_BOOT_B0: boot from bank0 + \arg OB_BOOT_B1: boot from bank1 or bank0 if bank1 is void + \param[out] none + \retval state of FMC, refer to fmc_state_enum +*/ +fmc_state_enum ob_user_write(uint8_t ob_fwdgt, uint8_t ob_deepsleep, uint8_t ob_stdby, uint8_t ob_boot) +{ + fmc_state_enum fmc_state = FMC_READY; + uint8_t temp; + + /* wait for the FMC ready */ + fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + + if(FMC_READY == fmc_state){ + /* set the OBPG bit*/ + FMC_CTL0 |= FMC_CTL0_OBPG; + + temp = ((uint8_t)((uint8_t)((uint8_t)(ob_boot | ob_fwdgt) | ob_deepsleep) | ob_stdby) | OB_USER_MASK); + OB_USER = (uint16_t)temp; + + /* wait for the FMC ready */ + fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + + if(FMC_TOERR != fmc_state){ + /* reset the OBPG bit */ + FMC_CTL0 &= ~FMC_CTL0_OBPG; + } + } + /* return the FMC state */ + return fmc_state; +} + +/*! + \brief program option bytes data + \param[in] address: the option bytes address to be programmed + \param[in] data: the byte to be programmed + \param[out] none + \retval state of FMC, refer to fmc_state_enum +*/ +fmc_state_enum ob_data_program(uint32_t address, uint8_t data) +{ + fmc_state_enum fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + + if(FMC_READY == fmc_state){ + /* set the OBPG bit */ + FMC_CTL0 |= FMC_CTL0_OBPG; + REG16(address) = data; + + /* wait for the FMC ready */ + fmc_state = fmc_bank0_ready_wait(FMC_TIMEOUT_COUNT); + + if(FMC_TOERR != fmc_state){ + /* reset the OBPG bit */ + FMC_CTL0 &= ~FMC_CTL0_OBPG; + } + } + /* return the FMC state */ + return fmc_state; +} + +/*! + \brief get the FMC user option byte + \param[in] none + \param[out] none + \retval the FMC user option byte values +*/ +uint8_t ob_user_get(void) +{ + /* return the FMC user option byte value */ + return (uint8_t)(FMC_OBSTAT >> 2U); +} + +/*! + \brief get OB_DATA in register FMC_OBSTAT + \param[in] none + \param[out] none + \retval ob_data +*/ +uint16_t ob_data_get(void) +{ + return (uint16_t)(FMC_OBSTAT >> 10U); +} + +/*! + \brief get the FMC option byte write protection + \param[in] none + \param[out] none + \retval the FMC write protection option byte value +*/ +uint32_t ob_write_protection_get(void) +{ + /* return the FMC write protection option byte value */ + return FMC_WP; +} + +/*! + \brief get the FMC option byte security protection + \param[in] none + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus ob_spc_get(void) +{ + FlagStatus spc_state = RESET; + + if(RESET != (FMC_OBSTAT & FMC_OBSTAT_SPC)){ + spc_state = SET; + }else{ + spc_state = RESET; + } + return spc_state; +} + +/*! + \brief enable FMC interrupt + \param[in] interrupt: the FMC interrupt source + only one parameter can be selected which is shown as below: + \arg FMC_INT_BANK0_END: enable FMC end of program interrupt + \arg FMC_INT_BANK0_ERR: enable FMC error interrupt + \arg FMC_INT_BANK1_END: enable FMC bank1 end of program interrupt + \arg FMC_INT_BANK1_ERR: enable FMC bank1 error interrupt + \param[out] none + \retval none +*/ +void fmc_interrupt_enable(uint32_t interrupt) +{ + FMC_REG_VAL(interrupt) |= BIT(FMC_BIT_POS(interrupt)); +} + +/*! + \brief disable FMC interrupt + \param[in] interrupt: the FMC interrupt source + only one parameter can be selected which is shown as below: + \arg FMC_INT_BANK0_END: enable FMC end of program interrupt + \arg FMC_INT_BANK0_ERR: enable FMC error interrupt + \arg FMC_INT_BANK1_END: enable FMC bank1 end of program interrupt + \arg FMC_INT_BANK1_ERR: enable FMC bank1 error interrupt + \param[out] none + \retval none +*/ +void fmc_interrupt_disable(uint32_t interrupt) +{ + FMC_REG_VAL(interrupt) &= ~BIT(FMC_BIT_POS(interrupt)); +} + +/*! + \brief check flag is set or not + \param[in] flag: check FMC flag + only one parameter can be selected which is shown as below: + \arg FMC_FLAG_BANK0_BUSY: FMC bank0 busy flag bit + \arg FMC_FLAG_BANK0_PGERR: FMC bank0 operation error flag bit + \arg FMC_FLAG_BANK0_WPERR: FMC bank0 erase/program protection error flag bit + \arg FMC_FLAG_BANK0_END: FMC bank0 end of operation flag bit + \arg FMC_FLAG_OBERR: FMC option bytes read error flag bit + \arg FMC_FLAG_BANK1_BUSY: FMC bank1 busy flag bit + \arg FMC_FLAG_BANK1_PGERR: FMC bank1 operation error flag bit + \arg FMC_FLAG_BANK1_WPERR: FMC bank1 erase/program protection error flag bit + \arg FMC_FLAG_BANK1_END: FMC bank1 end of operation flag bit + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus fmc_flag_get(uint32_t flag) +{ + if(RESET != (FMC_REG_VAL(flag) & BIT(FMC_BIT_POS(flag)))){ + return SET; + }else{ + return RESET; + } +} + +/*! + \brief clear the FMC flag + \param[in] flag: clear FMC flag + only one parameter can be selected which is shown as below: + \arg FMC_FLAG_BANK0_PGERR: FMC bank0 operation error flag bit + \arg FMC_FLAG_BANK0_WPERR: FMC bank0 erase/program protection error flag bit + \arg FMC_FLAG_BANK0_END: FMC bank0 end of operation flag bit + \arg FMC_FLAG_BANK1_PGERR: FMC bank1 operation error flag bit + \arg FMC_FLAG_BANK1_WPERR: FMC bank1 erase/program protection error flag bit + \arg FMC_FLAG_BANK1_END: FMC bank1 end of operation flag bit + \param[out] none + \retval none +*/ +void fmc_flag_clear(uint32_t flag) +{ + FMC_REG_VAL(flag) |= BIT(FMC_BIT_POS(flag)); +} + +/*! + \brief get FMC interrupt flag state + \param[in] flag: FMC interrupt flags, refer to fmc_interrupt_flag_enum + only one parameter can be selected which is shown as below: + \arg FMC_INT_FLAG_BANK0_PGERR: FMC bank0 operation error interrupt flag bit + \arg FMC_INT_FLAG_BANK0_WPERR: FMC bank0 erase/program protection error interrupt flag bit + \arg FMC_INT_FLAG_BANK0_END: FMC bank0 end of operation interrupt flag bit + \arg FMC_INT_FLAG_BANK1_PGERR: FMC bank1 operation error interrupt flag bit + \arg FMC_INT_FLAG_BANK1_WPERR: FMC bank1 erase/program protection error interrupt flag bit + \arg FMC_INT_FLAG_BANK1_END: FMC bank1 end of operation interrupt flag bit + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus fmc_interrupt_flag_get(fmc_interrupt_flag_enum flag) +{ + uint32_t ret1 = RESET; + uint32_t ret2 = RESET; + + if(FMC_STAT0_REG_OFFSET == FMC_REG_OFFSET_GET(flag)){ + /* get the staus of interrupt flag */ + ret1 = (uint32_t)(FMC_REG_VALS(flag) & BIT(FMC_BIT_POS0(flag))); + /* get the staus of interrupt enale bit */ + ret2 = (uint32_t)(FMC_CTL0 & BIT(FMC_BIT_POS1(flag))); + }else{ + /* get the staus of interrupt flag */ + ret1 = (uint32_t)(FMC_REG_VALS(flag) & BIT(FMC_BIT_POS0(flag))); + /* get the staus of interrupt enale bit */ + ret2 = (uint32_t)(FMC_CTL1 & BIT(FMC_BIT_POS1(flag))); + } + + if(ret1 && ret2){ + return SET; + }else{ + return RESET; + } +} + +/*! + \brief clear FMC interrupt flag state + \param[in] flag: FMC interrupt flags, refer to can_interrupt_flag_enum + only one parameter can be selected which is shown as below: + \arg FMC_INT_FLAG_BANK0_PGERR: FMC bank0 operation error interrupt flag bit + \arg FMC_INT_FLAG_BANK0_WPERR: FMC bank0 erase/program protection error interrupt flag bit + \arg FMC_INT_FLAG_BANK0_END: FMC bank0 end of operation interrupt flag bit + \arg FMC_INT_FLAG_BANK1_PGERR: FMC bank1 operation error interrupt flag bit + \arg FMC_INT_FLAG_BANK1_WPERR: FMC bank1 erase/program protection error interrupt flag bit + \arg FMC_INT_FLAG_BANK1_END: FMC bank1 end of operation interrupt flag bit + \param[out] none + \retval none +*/ +void fmc_interrupt_flag_clear(fmc_interrupt_flag_enum flag) +{ + FMC_REG_VALS(flag) |= BIT(FMC_BIT_POS0(flag)); +} + +/*! + \brief get the FMC bank0 state + \param[in] none + \param[out] none + \retval state of FMC, refer to fmc_state_enum +*/ +fmc_state_enum fmc_bank0_state_get(void) +{ + fmc_state_enum fmc_state = FMC_READY; + + if((uint32_t)0x00U != (FMC_STAT0 & FMC_STAT0_BUSY)){ + fmc_state = FMC_BUSY; + }else{ + if((uint32_t)0x00U != (FMC_STAT0 & FMC_STAT0_WPERR)){ + fmc_state = FMC_WPERR; + }else{ + if((uint32_t)0x00U != (FMC_STAT0 & (FMC_STAT0_PGERR))){ + fmc_state = FMC_PGERR; + } + } + } + /* return the FMC state */ + return fmc_state; +} + +/*! + \brief get the FMC bank1 state + \param[in] none + \param[out] none + \retval state of FMC, refer to fmc_state_enum +*/ +fmc_state_enum fmc_bank1_state_get(void) +{ + fmc_state_enum fmc_state = FMC_READY; + + if((uint32_t)0x00U != (FMC_STAT1 & FMC_STAT1_BUSY)){ + fmc_state = FMC_BUSY; + }else{ + if((uint32_t)0x00U != (FMC_STAT1 & FMC_STAT1_WPERR)){ + fmc_state = FMC_WPERR; + }else{ + if((uint32_t)0x00U != (FMC_STAT1 & FMC_STAT1_PGERR)){ + fmc_state = FMC_PGERR; + } + } + } + + /* return the FMC state */ + return fmc_state; +} + +/*! + \brief check whether FMC bank0 is ready or not + \param[in] timeout: count of loop + \param[out] none + \retval state of FMC, refer to fmc_state_enum +*/ +fmc_state_enum fmc_bank0_ready_wait(uint32_t timeout) +{ + fmc_state_enum fmc_state = FMC_BUSY; + + /* wait for FMC ready */ + do{ + /* get FMC state */ + fmc_state = fmc_bank0_state_get(); + timeout--; + }while((FMC_BUSY == fmc_state) && (0x00U != timeout)); + + if(FMC_BUSY == fmc_state){ + fmc_state = FMC_TOERR; + } + /* return the FMC state */ + return fmc_state; +} + +/*! + \brief check whether FMC bank1 is ready or not + \param[in] timeout: count of loop + \param[out] none + \retval state of FMC, refer to fmc_state_enum +*/ +fmc_state_enum fmc_bank1_ready_wait(uint32_t timeout) +{ + fmc_state_enum fmc_state = FMC_BUSY; + + /* wait for FMC ready */ + do{ + /* get FMC state */ + fmc_state = fmc_bank1_state_get(); + timeout--; + }while((FMC_BUSY == fmc_state) && (0x00U != timeout)); + + if(FMC_BUSY == fmc_state){ + fmc_state = FMC_TOERR; + } + /* return the FMC state */ + return fmc_state; +} diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_fwdgt.c b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_fwdgt.c new file mode 100644 index 0000000..1de2d06 --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_fwdgt.c @@ -0,0 +1,211 @@ +/*! + \file gd32f10x_fwdgt.c + \brief FWDGT driver + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#include "gd32f10x_fwdgt.h" + +/*! + \brief enable write access to FWDGT_PSC and FWDGT_RLD + \param[in] none + \param[out] none + \retval none +*/ +void fwdgt_write_enable(void) +{ + FWDGT_CTL = FWDGT_WRITEACCESS_ENABLE; +} + +/*! + \brief disable write access to FWDGT_PSC and FWDGT_RLD + \param[in] none + \param[out] none + \retval none +*/ +void fwdgt_write_disable(void) +{ + FWDGT_CTL = FWDGT_WRITEACCESS_DISABLE; +} + +/*! + \brief start the free watchdog timer counter + \param[in] none + \param[out] none + \retval none +*/ +void fwdgt_enable(void) +{ + FWDGT_CTL = FWDGT_KEY_ENABLE; +} + +/*! + \brief configure the free watchdog timer counter prescaler value + \param[in] prescaler_value: specify prescaler value + only one parameter can be selected which is shown as below: + \arg FWDGT_PSC_DIV4: FWDGT prescaler set to 4 + \arg FWDGT_PSC_DIV8: FWDGT prescaler set to 8 + \arg FWDGT_PSC_DIV16: FWDGT prescaler set to 16 + \arg FWDGT_PSC_DIV32: FWDGT prescaler set to 32 + \arg FWDGT_PSC_DIV64: FWDGT prescaler set to 64 + \arg FWDGT_PSC_DIV128: FWDGT prescaler set to 128 + \arg FWDGT_PSC_DIV256: FWDGT prescaler set to 256 + \param[out] none + \retval ErrStatus: ERROR or SUCCESS +*/ +ErrStatus fwdgt_prescaler_value_config(uint16_t prescaler_value) +{ + uint32_t timeout = FWDGT_PSC_TIMEOUT; + uint32_t flag_status = RESET; + + /* enable write access to FWDGT_PSC */ + FWDGT_CTL = FWDGT_WRITEACCESS_ENABLE; + + /* wait until the PUD flag to be reset */ + do{ + flag_status = FWDGT_STAT & FWDGT_STAT_PUD; + }while((--timeout > 0U) && ((uint32_t)RESET != flag_status)); + + if ((uint32_t)RESET != flag_status){ + return ERROR; + } + + /* configure FWDGT */ + FWDGT_PSC = (uint32_t)prescaler_value; + + return SUCCESS; +} + +/*! + \brief configure the free watchdog timer counter reload value + \param[in] reload_value: specify reload value(0x0000 - 0x0FFF) + \param[out] none + \retval ErrStatus: ERROR or SUCCESS +*/ +ErrStatus fwdgt_reload_value_config(uint16_t reload_value) +{ + uint32_t timeout = FWDGT_RLD_TIMEOUT; + uint32_t flag_status = RESET; + + /* enable write access to FWDGT_RLD */ + FWDGT_CTL = FWDGT_WRITEACCESS_ENABLE; + + /* wait until the RUD flag to be reset */ + do{ + flag_status = FWDGT_STAT & FWDGT_STAT_RUD; + }while((--timeout > 0U) && ((uint32_t)RESET != flag_status)); + + if ((uint32_t)RESET != flag_status){ + return ERROR; + } + + FWDGT_RLD = RLD_RLD(reload_value); + + return SUCCESS; +} + +/*! + \brief reload the counter of FWDGT + \param[in] none + \param[out] none + \retval none +*/ +void fwdgt_counter_reload(void) +{ + FWDGT_CTL = FWDGT_KEY_RELOAD; +} + +/*! + \brief configure counter reload value, and prescaler divider value + \param[in] reload_value: specify reload value(0x0000 - 0x0FFF) + \param[in] prescaler_div: FWDGT prescaler value + only one parameter can be selected which is shown as below: + \arg FWDGT_PSC_DIV4: FWDGT prescaler set to 4 + \arg FWDGT_PSC_DIV8: FWDGT prescaler set to 8 + \arg FWDGT_PSC_DIV16: FWDGT prescaler set to 16 + \arg FWDGT_PSC_DIV32: FWDGT prescaler set to 32 + \arg FWDGT_PSC_DIV64: FWDGT prescaler set to 64 + \arg FWDGT_PSC_DIV128: FWDGT prescaler set to 128 + \arg FWDGT_PSC_DIV256: FWDGT prescaler set to 256 + \param[out] none + \retval ErrStatus: ERROR or SUCCESS +*/ +ErrStatus fwdgt_config(uint16_t reload_value, uint8_t prescaler_div) +{ + uint32_t timeout = FWDGT_PSC_TIMEOUT; + uint32_t flag_status = RESET; + + /* enable write access to FWDGT_PSC,and FWDGT_RLD */ + FWDGT_CTL = FWDGT_WRITEACCESS_ENABLE; + /* wait until the PUD flag to be reset */ + do{ + flag_status = FWDGT_STAT & FWDGT_STAT_PUD; + }while((--timeout > 0U) && ((uint32_t)RESET != flag_status)); + + if((uint32_t)RESET != flag_status){ + return ERROR; + } + /* configure FWDGT */ + FWDGT_PSC = (uint32_t)prescaler_div; + + timeout = FWDGT_RLD_TIMEOUT; + /* wait until the RUD flag to be reset */ + do{ + flag_status = FWDGT_STAT & FWDGT_STAT_RUD; + }while((--timeout > 0U) && ((uint32_t)RESET != flag_status)); + + if((uint32_t)RESET != flag_status){ + return ERROR; + } + FWDGT_RLD = RLD_RLD(reload_value); + /* reload the counter */ + FWDGT_CTL = FWDGT_KEY_RELOAD; + + return SUCCESS; +} + +/*! + \brief get flag state of FWDGT + \param[in] flag: flag to get + only one parameter can be selected which is shown as below: + \arg FWDGT_FLAG_PUD: a write operation to FWDGT_PSC register is on going + \arg FWDGT_FLAG_RUD: a write operation to FWDGT_RLD register is on going + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus fwdgt_flag_get(uint16_t flag) +{ + if(FWDGT_STAT & flag){ + return SET; + } + + return RESET; +} diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_gpio.c b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_gpio.c new file mode 100644 index 0000000..db7e801 --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_gpio.c @@ -0,0 +1,533 @@ +/*! + \file gd32f10x_gpio.c + \brief GPIO driver + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#include "gd32f10x_gpio.h" + +#define AFIO_EXTI_SOURCE_MASK ((uint8_t)0x03U) /*!< AFIO exti source selection mask*/ +#define AFIO_EXTI_SOURCE_FIELDS ((uint8_t)0x04U) /*!< select AFIO exti source registers */ +#define LSB_16BIT_MASK ((uint16_t)0xFFFFU) /*!< LSB 16-bit mask */ +#define PCF_POSITION_MASK ((uint32_t)0x000F0000U) /*!< AFIO_PCF register position mask */ +#define PCF_SWJCFG_MASK ((uint32_t)0xF0FFFFFFU) /*!< AFIO_PCF register SWJCFG mask */ +#define PCF_LOCATION1_MASK ((uint32_t)0x00200000U) /*!< AFIO_PCF register location1 mask */ +#define PCF_LOCATION2_MASK ((uint32_t)0x00100000U) /*!< AFIO_PCF register location2 mask */ +#define AFIO_PCF1_FIELDS ((uint32_t)0x80000000U) /*!< select AFIO_PCF1 register */ +#define GPIO_OUTPUT_PORT_OFFSET ((uint32_t)4U) /*!< GPIO event output port offset*/ + +/*! + \brief reset GPIO port + \param[in] gpio_periph: GPIOx(x = A,B,C,D,E,F,G) + \param[out] none + \retval none +*/ +void gpio_deinit(uint32_t gpio_periph) +{ + switch(gpio_periph){ + case GPIOA: + /* reset GPIOA */ + rcu_periph_reset_enable(RCU_GPIOARST); + rcu_periph_reset_disable(RCU_GPIOARST); + break; + case GPIOB: + /* reset GPIOB */ + rcu_periph_reset_enable(RCU_GPIOBRST); + rcu_periph_reset_disable(RCU_GPIOBRST); + break; + case GPIOC: + /* reset GPIOC */ + rcu_periph_reset_enable(RCU_GPIOCRST); + rcu_periph_reset_disable(RCU_GPIOCRST); + break; + case GPIOD: + /* reset GPIOD */ + rcu_periph_reset_enable(RCU_GPIODRST); + rcu_periph_reset_disable(RCU_GPIODRST); + break; + case GPIOE: + /* reset GPIOE */ + rcu_periph_reset_enable(RCU_GPIOERST); + rcu_periph_reset_disable(RCU_GPIOERST); + break; + case GPIOF: + /* reset GPIOF */ + rcu_periph_reset_enable(RCU_GPIOFRST); + rcu_periph_reset_disable(RCU_GPIOFRST); + break; + case GPIOG: + /* reset GPIOG */ + rcu_periph_reset_enable(RCU_GPIOGRST); + rcu_periph_reset_disable(RCU_GPIOGRST); + break; + default: + break; + } +} + +/*! + \brief reset alternate function I/O(AFIO) + \param[in] none + \param[out] none + \retval none +*/ +void gpio_afio_deinit(void) +{ + rcu_periph_reset_enable(RCU_AFRST); + rcu_periph_reset_disable(RCU_AFRST); +} + +/*! + \brief GPIO parameter initialization + \param[in] gpio_periph: GPIOx(x = A,B,C,D,E,F,G) + \param[in] mode: gpio pin mode + only one parameter can be selected which is shown as below: + \arg GPIO_MODE_AIN: analog input mode + \arg GPIO_MODE_IN_FLOATING: floating input mode + \arg GPIO_MODE_IPD: pull-down input mode + \arg GPIO_MODE_IPU: pull-up input mode + \arg GPIO_MODE_OUT_OD: GPIO output with open-drain + \arg GPIO_MODE_OUT_PP: GPIO output with push-pull + \arg GPIO_MODE_AF_OD: AFIO output with open-drain + \arg GPIO_MODE_AF_PP: AFIO output with push-pull + \param[in] speed: gpio output max speed value + only one parameter can be selected which is shown as below: + \arg GPIO_OSPEED_10MHZ: output max speed 10MHz + \arg GPIO_OSPEED_2MHZ: output max speed 2MHz + \arg GPIO_OSPEED_50MHZ: output max speed 50MHz + \param[in] pin: GPIO pin + one or more parameters can be selected which are shown as below: + \arg GPIO_PIN_x(x=0..15), GPIO_PIN_ALL + + \param[out] none + \retval none +*/ +void gpio_init(uint32_t gpio_periph, uint32_t mode, uint32_t speed, uint32_t pin) +{ + uint16_t i; + uint32_t temp_mode = 0U; + uint32_t reg = 0U; + + /* GPIO mode configuration */ + temp_mode = (uint32_t)(mode & ((uint32_t)0x0FU)); + + /* GPIO speed configuration */ + if(((uint32_t)0x00U) != ((uint32_t)mode & ((uint32_t)0x10U))){ + /* output mode max speed:10MHz,2MHz,50MHz */ + temp_mode |= (uint32_t)speed; + } + + /* configure the eight low port pins with GPIO_CTL0 */ + for(i = 0U;i < 8U;i++){ + if((1U << i) & pin){ + reg = GPIO_CTL0(gpio_periph); + + /* clear the specified pin mode bits */ + reg &= ~GPIO_MODE_MASK(i); + /* set the specified pin mode bits */ + reg |= GPIO_MODE_SET(i, temp_mode); + + /* set IPD or IPU */ + if(GPIO_MODE_IPD == mode){ + /* reset the corresponding OCTL bit */ + GPIO_BC(gpio_periph) = (uint32_t)((1U << i) & pin); + }else{ + /* set the corresponding OCTL bit */ + if(GPIO_MODE_IPU == mode){ + GPIO_BOP(gpio_periph) = (uint32_t)((1U << i) & pin); + } + } + /* set GPIO_CTL0 register */ + GPIO_CTL0(gpio_periph) = reg; + } + } + /* configure the eight high port pins with GPIO_CTL1 */ + for(i = 8U;i < 16U;i++){ + if((1U << i) & pin){ + reg = GPIO_CTL1(gpio_periph); + + /* clear the specified pin mode bits */ + reg &= ~GPIO_MODE_MASK(i - 8U); + /* set the specified pin mode bits */ + reg |= GPIO_MODE_SET(i - 8U, temp_mode); + + /* set IPD or IPU */ + if(GPIO_MODE_IPD == mode){ + /* reset the corresponding OCTL bit */ + GPIO_BC(gpio_periph) = (uint32_t)((1U << i) & pin); + }else{ + /* set the corresponding OCTL bit */ + if(GPIO_MODE_IPU == mode){ + GPIO_BOP(gpio_periph) = (uint32_t)((1U << i) & pin); + } + } + /* set GPIO_CTL1 register */ + GPIO_CTL1(gpio_periph) = reg; + } + } +} + +/*! + \brief set GPIO pin + \param[in] gpio_periph: GPIOx(x = A,B,C,D,E,F,G) + \param[in] pin: GPIO pin + one or more parameters can be selected which are shown as below: + \arg GPIO_PIN_x(x=0..15), GPIO_PIN_ALL + \param[out] none + \retval none +*/ +void gpio_bit_set(uint32_t gpio_periph, uint32_t pin) +{ + GPIO_BOP(gpio_periph) = (uint32_t)pin; +} + +/*! + \brief reset GPIO pin + \param[in] gpio_periph: GPIOx(x = A,B,C,D,E,F,G) + \param[in] pin: GPIO pin + one or more parameters can be selected which are shown as below: + \arg GPIO_PIN_x(x=0..15), GPIO_PIN_ALL + \param[out] none + \retval none +*/ +void gpio_bit_reset(uint32_t gpio_periph, uint32_t pin) +{ + GPIO_BC(gpio_periph) = (uint32_t)pin; +} + +/*! + \brief write data to the specified GPIO pin + \param[in] gpio_periph: GPIOx(x = A,B,C,D,E,F,G) + \param[in] pin: GPIO pin + one or more parameters can be selected which are shown as below: + \arg GPIO_PIN_x(x=0..15), GPIO_PIN_ALL + \param[in] bit_value: SET or RESET + \arg RESET: clear the port pin + \arg SET: set the port pin + \param[out] none + \retval none +*/ +void gpio_bit_write(uint32_t gpio_periph, uint32_t pin, bit_status bit_value) +{ + if(RESET != bit_value){ + GPIO_BOP(gpio_periph) = (uint32_t)pin; + }else{ + GPIO_BC(gpio_periph) = (uint32_t)pin; + } +} + +/*! + \brief write data to the specified GPIO port + \param[in] gpio_periph: GPIOx(x = A,B,C,D,E,F,G) + \param[in] data: specify the value to be written to the port output data register + \param[out] none + \retval none +*/ +void gpio_port_write(uint32_t gpio_periph,uint16_t data) +{ + GPIO_OCTL(gpio_periph) = (uint32_t)data; +} + +/*! + \brief get GPIO pin input status + \param[in] gpio_periph: GPIOx(x = A,B,C,D,E,F,G) + \param[in] pin: GPIO pin + one or more parameters can be selected which are shown as below: + \arg GPIO_PIN_x(x=0..15), GPIO_PIN_ALL + \param[out] none + \retval input status of gpio pin: SET or RESET +*/ +FlagStatus gpio_input_bit_get(uint32_t gpio_periph,uint32_t pin) +{ + if((uint32_t)RESET != (GPIO_ISTAT(gpio_periph)&(pin))){ + return SET; + }else{ + return RESET; + } +} + +/*! + \brief get GPIO port input status + \param[in] gpio_periph: GPIOx(x = A,B,C,D,E,F,G) + \param[out] none + \retval input status of gpio all pins +*/ +uint16_t gpio_input_port_get(uint32_t gpio_periph) +{ + return (uint16_t)(GPIO_ISTAT(gpio_periph)); +} + +/*! + \brief get GPIO pin output status + \param[in] gpio_periph: GPIOx(x = A,B,C,D,E,F,G) + \param[in] pin: GPIO pin + one or more parameters can be selected which are shown as below: + \arg GPIO_PIN_x(x=0..15), GPIO_PIN_ALL + \param[out] none + \retval output status of gpio pin: SET or RESET +*/ +FlagStatus gpio_output_bit_get(uint32_t gpio_periph, uint32_t pin) +{ + if((uint32_t)RESET !=(GPIO_OCTL(gpio_periph)&(pin))){ + return SET; + }else{ + return RESET; + } +} + +/*! + \brief get GPIO port output status + \param[in] gpio_periph: GPIOx(x = A,B,C,D,E,F,G) + \param[out] none + \retval output status of gpio all pins +*/ +uint16_t gpio_output_port_get(uint32_t gpio_periph) +{ + return ((uint16_t)GPIO_OCTL(gpio_periph)); +} + +/*! + \brief configure GPIO pin remap + \param[in] gpio_remap: select the pin to remap + \arg GPIO_SPI0_REMAP: SPI0 remapping + \arg GPIO_I2C0_REMAP: I2C0 remapping + \arg GPIO_USART0_REMAP: USART0 remapping + \arg GPIO_USART1_REMAP: USART1 remapping + \arg GPIO_USART2_PARTIAL_REMAP: USART2 partial remapping + \arg GPIO_USART2_FULL_REMAP: USART2 full remapping + \arg GPIO_TIMER0_PARTIAL_REMAP: TIMER0 partial remapping + \arg GPIO_TIMER0_FULL_REMAP: TIMER0 full remapping + \arg GPIO_TIMER1_PARTIAL_REMAP1: TIMER1 partial remapping + \arg GPIO_TIMER1_PARTIAL_REMAP2: TIMER1 partial remapping + \arg GPIO_TIMER1_FULL_REMAP: TIMER1 full remapping + \arg GPIO_TIMER2_PARTIAL_REMAP: TIMER2 partial remapping + \arg GPIO_TIMER2_FULL_REMAP: TIMER2 full remapping + \arg GPIO_TIMER3_REMAP: TIMER3 remapping + \arg GPIO_CAN_PARTIAL_REMAP: CAN partial remapping(only for GD32F10X_MD, GD32F10X_HD devices and GD32F10X_XD devices) + \arg GPIO_CAN_FULL_REMAP: CAN full remapping(only for GD32F10X_MD, GD32F10X_HD devices and GD32F10X_XD devices) + \arg GPIO_CAN0_PARTIAL_REMAP: CAN0 partial remapping(only for GD32F10X_CL devices) + \arg GPIO_CAN0_FULL_REMAP: CAN0 full remapping(only for GD32F10X_CL devices) + \arg GPIO_PD01_REMAP: PD01 remapping + \arg GPIO_TIMER4CH3_IREMAP: TIMER4 channel3 internal remapping(only for GD32F10X_CL devices and GD32F10X_HD devices) + \arg GPIO_ADC0_ETRGRT_REMAP: ADC0 external trigger routine conversion remapping(only for GD32F10X_MD, GD32F10X_HD devices and GD32F10X_XD devices) + \arg GPIO_ADC1_ETRGRT_REMAP: ADC1 external trigger routine conversion remapping(only for GD32F10X_MD, GD32F10X_HD devices and GD32F10X_XD devices) + \arg GPIO_ENET_REMAP: ENET remapping(only for GD32F10X_CL devices) + \arg GPIO_CAN1_REMAP: CAN1 remapping(only for GD32F10X_CL devices) + \arg GPIO_SWJ_NONJTRST_REMAP: full SWJ(JTAG-DP + SW-DP),but without NJTRST + \arg GPIO_SWJ_SWDPENABLE_REMAP: JTAG-DP disabled and SW-DP enabled + \arg GPIO_SWJ_DISABLE_REMAP: JTAG-DP disabled and SW-DP disabled + \arg GPIO_SPI2_REMAP: SPI2 remapping(only for GD32F10X_CL, GD32F10X_HD and GD32F10X_XD devices) + \arg GPIO_TIMER1ITI1_REMAP: TIMER1 internal trigger 1 remapping(only for GD32F10X_CL devices) + \arg GPIO_PTP_PPS_REMAP: ethernet PTP PPS remapping(only for GD32F10X_CL devices) + \arg GPIO_TIMER8_REMAP: TIMER8 remapping + \arg GPIO_TIMER9_REMAP: TIMER9 remapping + \arg GPIO_TIMER10_REMAP: TIMER10 remapping + \arg GPIO_TIMER12_REMAP: TIMER12 remapping + \arg GPIO_TIMER13_REMAP: TIMER13 remapping + \arg GPIO_EXMC_NADV_REMAP: EXMC_NADV connect/disconnect + \param[in] newvalue: ENABLE or DISABLE + \param[out] none + \retval none +*/ +void gpio_pin_remap_config(uint32_t remap, ControlStatus newvalue) +{ + uint32_t remap1 = 0U, remap2 = 0U, temp_reg = 0U, temp_mask = 0U; + + if(AFIO_PCF1_FIELDS == (remap & AFIO_PCF1_FIELDS)){ + /* get AFIO_PCF1 regiter value */ + temp_reg = AFIO_PCF1; + }else{ + /* get AFIO_PCF0 regiter value */ + temp_reg = AFIO_PCF0; + } + + temp_mask = (remap & PCF_POSITION_MASK) >> 0x10U; + remap1 = remap & LSB_16BIT_MASK; + + /* judge pin remap type */ + if((PCF_LOCATION1_MASK | PCF_LOCATION2_MASK) == (remap & (PCF_LOCATION1_MASK | PCF_LOCATION2_MASK))){ + temp_reg &= PCF_SWJCFG_MASK; + AFIO_PCF0 &= PCF_SWJCFG_MASK; + }else if(PCF_LOCATION2_MASK == (remap & PCF_LOCATION2_MASK)){ + remap2 = ((uint32_t)0x03U) << temp_mask; + temp_reg &= ~remap2; + temp_reg |= ~PCF_SWJCFG_MASK; + }else{ + temp_reg &= ~(remap1 << ((remap >> 0x15U)*0x10U)); + temp_reg |= ~PCF_SWJCFG_MASK; + } + + /* set pin remap value */ + if(DISABLE != newvalue){ + temp_reg |= (remap1 << ((remap >> 0x15U)*0x10U)); + } + + if(AFIO_PCF1_FIELDS == (remap & AFIO_PCF1_FIELDS)){ + /* set AFIO_PCF1 regiter value */ + AFIO_PCF1 = temp_reg; + }else{ + /* set AFIO_PCF0 regiter value */ + AFIO_PCF0 = temp_reg; + } +} + +/*! + \brief select GPIO pin exti sources + \param[in] gpio_outputport: gpio event output port + \arg GPIO_PORT_SOURCE_GPIOA: output port source A + \arg GPIO_PORT_SOURCE_GPIOB: output port source B + \arg GPIO_PORT_SOURCE_GPIOC: output port source C + \arg GPIO_PORT_SOURCE_GPIOD: output port source D + \arg GPIO_PORT_SOURCE_GPIOE: output port source E + \arg GPIO_PORT_SOURCE_GPIOF: output port source F + \arg GPIO_PORT_SOURCE_GPIOG: output port source G + \param[in] gpio_outputpin: GPIO_PIN_SOURCE_x(x=0..15) + \param[out] none + \retval none +*/ +void gpio_exti_source_select(uint8_t output_port, uint8_t output_pin) +{ + uint32_t source = 0U; + source = ((uint32_t)0x0FU) << (AFIO_EXTI_SOURCE_FIELDS * (output_pin & AFIO_EXTI_SOURCE_MASK)); + + /* select EXTI sources */ + if(GPIO_PIN_SOURCE_4 > output_pin){ + /* select EXTI0/EXTI1/EXTI2/EXTI3 */ + AFIO_EXTISS0 &= ~source; + AFIO_EXTISS0 |= (((uint32_t)output_port) << (AFIO_EXTI_SOURCE_FIELDS * (output_pin & AFIO_EXTI_SOURCE_MASK))); + }else if(GPIO_PIN_SOURCE_8 > output_pin){ + /* select EXTI4/EXTI5/EXTI6/EXTI7 */ + AFIO_EXTISS1 &= ~source; + AFIO_EXTISS1 |= (((uint32_t)output_port) << (AFIO_EXTI_SOURCE_FIELDS * (output_pin & AFIO_EXTI_SOURCE_MASK))); + }else if(GPIO_PIN_SOURCE_12 > output_pin){ + /* select EXTI8/EXTI9/EXTI10/EXTI11 */ + AFIO_EXTISS2 &= ~source; + AFIO_EXTISS2 |= (((uint32_t)output_port) << (AFIO_EXTI_SOURCE_FIELDS * (output_pin & AFIO_EXTI_SOURCE_MASK))); + }else{ + /* select EXTI12/EXTI13/EXTI14/EXTI15 */ + AFIO_EXTISS3 &= ~source; + AFIO_EXTISS3 |= (((uint32_t)output_port) << (AFIO_EXTI_SOURCE_FIELDS * (output_pin & AFIO_EXTI_SOURCE_MASK))); + } +} + +/*! + \brief configure GPIO pin event output + \param[in] output_port: gpio event output port + only one parameter can be selected which are shown as below: + \arg GPIO_EVENT_PORT_GPIOA: event output port A + \arg GPIO_EVENT_PORT_GPIOB: event output port B + \arg GPIO_EVENT_PORT_GPIOC: event output port C + \arg GPIO_EVENT_PORT_GPIOD: event output port D + \arg GPIO_EVENT_PORT_GPIOE: event output port E + \arg GPIO_EVENT_PORT_GPIOE: event output port F + \arg GPIO_EVENT_PORT_GPIOE: event output port G + \param[in] output_pin: + only one parameter can be selected which are shown as below: + \arg GPIO_EVENT_PIN_x(x=0..15) + \param[out] none + \retval none +*/ +void gpio_event_output_config(uint8_t output_port, uint8_t output_pin) +{ + uint32_t reg = 0U; + reg = AFIO_EC; + + /* clear AFIO_EC_PORT and AFIO_EC_PIN bits */ + reg &= (uint32_t)(~(AFIO_EC_PORT|AFIO_EC_PIN)); + + reg |= (uint32_t)((uint32_t)output_port << GPIO_OUTPUT_PORT_OFFSET); + reg |= (uint32_t)output_pin; + + AFIO_EC = reg; +} + +/*! + \brief enable GPIO pin event output + \param[in] none + \param[out] none + \retval none +*/ +void gpio_event_output_enable(void) +{ + AFIO_EC |= AFIO_EC_EOE; +} + +/*! + \brief disable GPIO pin event output + \param[in] none + \param[out] none + \retval none +*/ +void gpio_event_output_disable(void) +{ + AFIO_EC &= (uint32_t)(~AFIO_EC_EOE); +} + +/*! + \brief lock GPIO pin + \param[in] gpio_periph: GPIOx(x = A,B,C,D,E,F,G) + \param[in] pin: GPIO pin + one or more parameters can be selected which are shown as below: + \arg GPIO_PIN_x(x=0..15), GPIO_PIN_ALL + \param[out] none + \retval none +*/ +void gpio_pin_lock(uint32_t gpio_periph, uint32_t pin) +{ + uint32_t lock = 0x00010000U; + lock |= pin; + + /* lock key writing sequence: write 1 -> write 0 -> write 1 -> read 0 -> read 1 */ + GPIO_LOCK(gpio_periph) = (uint32_t)lock; + GPIO_LOCK(gpio_periph) = (uint32_t)pin; + GPIO_LOCK(gpio_periph) = (uint32_t)lock; + lock = GPIO_LOCK(gpio_periph); + lock = GPIO_LOCK(gpio_periph); +} + +#ifdef GD32F10X_CL +/*! + \brief select ethernet MII or RMII PHY + \param[in] gpio_enetsel: ethernet MII or RMII PHY selection + \arg GPIO_ENET_PHY_MII: configure ethernet MAC for connection with an MII PHY + \arg GPIO_ENET_PHY_RMII: configure ethernet MAC for connection with an RMII PHY + \param[out] none + \retval none +*/ +void gpio_ethernet_phy_select(uint32_t gpio_enetsel) +{ + /* clear AFIO_PCF0_ENET_PHY_SEL bit */ + AFIO_PCF0 &= (uint32_t)(~AFIO_PCF0_ENET_PHY_SEL); + + /* select MII or RMII PHY */ + AFIO_PCF0 |= (uint32_t)gpio_enetsel; +} +#endif diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_i2c.c b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_i2c.c new file mode 100644 index 0000000..dc20fcc --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_i2c.c @@ -0,0 +1,711 @@ +/*! + \file gd32f10x_i2c.c + \brief I2C driver + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#include "gd32f10x_i2c.h" + +/* I2C register bit mask */ +#define I2CCLK_MAX ((uint32_t)0x00000036U) /*!< i2cclk maximum value */ +#define I2CCLK_MIN ((uint32_t)0x00000002U) /*!< i2cclk minimum value */ +#define I2C_FLAG_MASK ((uint32_t)0x0000FFFFU) /*!< i2c flag mask */ +#define I2C_ADDRESS_MASK ((uint32_t)0x000003FFU) /*!< i2c address mask */ +#define I2C_ADDRESS2_MASK ((uint32_t)0x000000FEU) /*!< the second i2c address mask */ + +/* I2C register bit offset */ +#define STAT1_PECV_OFFSET ((uint32_t)0x00000008U) /* bit offset of PECV in I2C_STAT1 */ + +/*! + \brief reset I2C + \param[in] i2c_periph: I2Cx(x=0,1) + \param[out] none + \retval none +*/ +void i2c_deinit(uint32_t i2c_periph) +{ + switch(i2c_periph){ + case I2C0: + /* reset I2C0 */ + rcu_periph_reset_enable(RCU_I2C0RST); + rcu_periph_reset_disable(RCU_I2C0RST); + break; + case I2C1: + /* reset I2C1 */ + rcu_periph_reset_enable(RCU_I2C1RST); + rcu_periph_reset_disable(RCU_I2C1RST); + break; + default: + break; + } +} + +/*! + \brief configure I2C clock + \param[in] i2c_periph: I2Cx(x=0,1) + \param[in] clkspeed: I2C clock speed, supports standard mode (up to 100 kHz), fast mode (up to 400 kHz) + \param[in] dutycyc: duty cycle in fast mode + only one parameter can be selected which is shown as below: + \arg I2C_DTCY_2: T_low/T_high=2 + \arg I2C_DTCY_16_9: T_low/T_high=16/9 + \param[out] none + \retval none +*/ +void i2c_clock_config(uint32_t i2c_periph, uint32_t clkspeed, uint32_t dutycyc) +{ + uint32_t pclk1, clkc, freq, risetime; + uint32_t temp; + + pclk1 = rcu_clock_freq_get(CK_APB1); + /* I2C peripheral clock frequency */ + freq = (uint32_t)(pclk1/1000000U); + if(freq >= I2CCLK_MAX){ + freq = I2CCLK_MAX; + } + temp = I2C_CTL1(i2c_periph); + temp &= ~I2C_CTL1_I2CCLK; + temp |= freq; + + I2C_CTL1(i2c_periph) = temp; + + if(100000U >= clkspeed){ + /* the maximum SCL rise time is 1000ns in standard mode */ + risetime = (uint32_t)((pclk1/1000000U)+1U); + if(risetime >= I2CCLK_MAX){ + I2C_RT(i2c_periph) = I2CCLK_MAX; + }else if(risetime <= I2CCLK_MIN){ + I2C_RT(i2c_periph) = I2CCLK_MIN; + }else{ + I2C_RT(i2c_periph) = risetime; + } + clkc = (uint32_t)(pclk1/(clkspeed*2U)); + if(clkc < 0x04U){ + /* the CLKC in standard mode minmum value is 4 */ + clkc = 0x04U; + } + I2C_CKCFG(i2c_periph) |= (I2C_CKCFG_CLKC & clkc); + + }else if(400000U >= clkspeed){ + /* the maximum SCL rise time is 300ns in fast mode */ + I2C_RT(i2c_periph) = (uint32_t)(((freq*(uint32_t)300U)/(uint32_t)1000U)+(uint32_t)1U); + if(I2C_DTCY_2 == dutycyc){ + /* I2C duty cycle is 2 */ + clkc = (uint32_t)(pclk1/(clkspeed*3U)); + I2C_CKCFG(i2c_periph) &= ~I2C_CKCFG_DTCY; + }else{ + /* I2C duty cycle is 16/9 */ + clkc = (uint32_t)(pclk1/(clkspeed*25U)); + I2C_CKCFG(i2c_periph) |= I2C_CKCFG_DTCY; + } + if(0U == (clkc & I2C_CKCFG_CLKC)){ + /* the CLKC in fast mode minmum value is 1 */ + clkc |= 0x0001U; + } + I2C_CKCFG(i2c_periph) |= I2C_CKCFG_FAST; + I2C_CKCFG(i2c_periph) |= clkc; + }else{ + } +} + +/*! + \brief configure I2C address + \param[in] i2c_periph: I2Cx(x=0,1) + \param[in] mode: + only one parameter can be selected which is shown as below: + \arg I2C_I2CMODE_ENABLE: I2C mode + \arg I2C_SMBUSMODE_ENABLE: SMBus mode + \param[in] addformat: 7bits or 10bits + only one parameter can be selected which is shown as below: + \arg I2C_ADDFORMAT_7BITS: address format is 7bits + \arg I2C_ADDFORMAT_10BITS: address format is 10bits + \param[in] addr: I2C address + \param[out] none + \retval none +*/ +void i2c_mode_addr_config(uint32_t i2c_periph, uint32_t mode, uint32_t addformat, uint32_t addr) +{ + /* SMBus/I2C mode selected */ + uint32_t ctl = 0U; + + ctl = I2C_CTL0(i2c_periph); + ctl &= ~(I2C_CTL0_SMBEN); + ctl |= mode; + I2C_CTL0(i2c_periph) = ctl; + /* configure address */ + addr = addr & I2C_ADDRESS_MASK; + I2C_SADDR0(i2c_periph) = (addformat | addr); +} + +/*! + \brief select SMBus type + \param[in] i2c_periph: I2Cx(x=0,1) + \param[in] type: + only one parameter can be selected which is shown as below: + \arg I2C_SMBUS_DEVICE: device + \arg I2C_SMBUS_HOST: host + \param[out] none + \retval none +*/ +void i2c_smbus_type_config(uint32_t i2c_periph, uint32_t type) +{ + if(I2C_SMBUS_HOST == type){ + I2C_CTL0(i2c_periph) |= I2C_CTL0_SMBSEL; + }else{ + I2C_CTL0(i2c_periph) &= ~(I2C_CTL0_SMBSEL); + } +} + +/*! + \brief whether or not to send an ACK + \param[in] i2c_periph: I2Cx(x=0,1) + \param[in] ack: + only one parameter can be selected which is shown as below: + \arg I2C_ACK_ENABLE: ACK will be sent + \arg I2C_ACK_DISABLE: ACK will not be sent + \param[out] none + \retval none +*/ +void i2c_ack_config(uint32_t i2c_periph, uint32_t ack) +{ + uint32_t ctl = 0U; + + ctl = I2C_CTL0(i2c_periph); + ctl &= ~(I2C_CTL0_ACKEN); + ctl |= ack; + I2C_CTL0(i2c_periph) = ctl; +} + +/*! + \brief configure I2C POAP position + \param[in] i2c_periph: I2Cx(x=0,1) + \param[in] pos: + only one parameter can be selected which is shown as below: + \arg I2C_ACKPOS_CURRENT: ACKEN bit decides whether or not to send ACK or not for the current byte + \arg I2C_ACKPOS_NEXT: ACKEN bit decides whether or not to send ACK for the next byte + \param[out] none + \retval none +*/ +void i2c_ackpos_config(uint32_t i2c_periph, uint32_t pos) +{ + uint32_t ctl = 0U; + /* configure I2C POAP position */ + ctl = I2C_CTL0(i2c_periph); + ctl &= ~(I2C_CTL0_POAP); + ctl |= pos; + I2C_CTL0(i2c_periph) = ctl; +} + +/*! + \brief master sends slave address + \param[in] i2c_periph: I2Cx(x=0,1) + \param[in] addr: slave address + \param[in] trandirection: transmitter or receiver + only one parameter can be selected which is shown as below: + \arg I2C_TRANSMITTER: transmitter + \arg I2C_RECEIVER: receiver + \param[out] none + \retval none +*/ +void i2c_master_addressing(uint32_t i2c_periph, uint32_t addr, uint32_t trandirection) +{ + /* master is a transmitter or a receiver */ + if(I2C_TRANSMITTER == trandirection){ + addr = addr & I2C_TRANSMITTER; + }else{ + addr = addr | I2C_RECEIVER; + } + /* send slave address */ + I2C_DATA(i2c_periph) = addr; +} + +/*! + \brief enable dual-address mode + \param[in] i2c_periph: I2Cx(x=0,1) + \param[in] addr: the second address in dual-address mode + \param[out] none + \retval none +*/ +void i2c_dualaddr_enable(uint32_t i2c_periph, uint32_t addr) +{ + /* configure address */ + addr = addr & I2C_ADDRESS2_MASK; + I2C_SADDR1(i2c_periph) = (I2C_SADDR1_DUADEN | addr); +} + +/*! + \brief disable dual-address mode + \param[in] i2c_periph: I2Cx(x=0,1) + \param[out] none + \retval none +*/ +void i2c_dualaddr_disable(uint32_t i2c_periph) +{ + I2C_SADDR1(i2c_periph) &= ~(I2C_SADDR1_DUADEN); +} + +/*! + \brief enable I2C + \param[in] i2c_periph: I2Cx(x=0,1) + \param[out] none + \retval none +*/ +void i2c_enable(uint32_t i2c_periph) +{ + I2C_CTL0(i2c_periph) |= I2C_CTL0_I2CEN; +} + +/*! + \brief disable I2C + \param[in] i2c_periph: I2Cx(x=0,1) + \param[out] none + \retval none +*/ +void i2c_disable(uint32_t i2c_periph) +{ + I2C_CTL0(i2c_periph) &= ~(I2C_CTL0_I2CEN); +} + +/*! + \brief generate a START condition on I2C bus + \param[in] i2c_periph: I2Cx(x=0,1) + \param[out] none + \retval none +*/ +void i2c_start_on_bus(uint32_t i2c_periph) +{ + I2C_CTL0(i2c_periph) |= I2C_CTL0_START; +} + +/*! + \brief generate a STOP condition on I2C bus + \param[in] i2c_periph: I2Cx(x=0,1) + \param[out] none + \retval none +*/ +void i2c_stop_on_bus(uint32_t i2c_periph) +{ + I2C_CTL0(i2c_periph) |= I2C_CTL0_STOP; +} + +/*! + \brief I2C transmit data function + \param[in] i2c_periph: I2Cx(x=0,1) + \param[in] data: data of transmission + \param[out] none + \retval none +*/ +void i2c_data_transmit(uint32_t i2c_periph, uint8_t data) +{ + I2C_DATA(i2c_periph) = DATA_TRANS(data); +} + +/*! + \brief I2C receive data function + \param[in] i2c_periph: I2Cx(x=0,1) + \param[out] none + \retval data of received +*/ +uint8_t i2c_data_receive(uint32_t i2c_periph) +{ + return (uint8_t)DATA_RECV(I2C_DATA(i2c_periph)); +} + +/*! + \brief configure I2C DMA mode + \param[in] i2c_periph: I2Cx(x=0,1) + \param[in] dmastate: + only one parameter can be selected which is shown as below: + \arg I2C_DMA_ON: enable DMA mode + \arg I2C_DMA_OFF: disable DMA mode + \param[out] none + \retval none +*/ +void i2c_dma_config(uint32_t i2c_periph, uint32_t dmastate) +{ + /* configure I2C DMA function */ + uint32_t ctl = 0U; + + ctl = I2C_CTL1(i2c_periph); + ctl &= ~(I2C_CTL1_DMAON); + ctl |= dmastate; + I2C_CTL1(i2c_periph) = ctl; +} + +/*! + \brief configure whether next DMA EOT is DMA last transfer or not + \param[in] i2c_periph: I2Cx(x=0,1) + \param[in] dmalast: + only one parameter can be selected which is shown as below: + \arg I2C_DMALST_ON: next DMA EOT is the last transfer + \arg I2C_DMALST_OFF: next DMA EOT is not the last transfer + \param[out] none + \retval none +*/ +void i2c_dma_last_transfer_config(uint32_t i2c_periph, uint32_t dmalast) +{ + /* configure DMA last transfer */ + uint32_t ctl = 0U; + + ctl = I2C_CTL1(i2c_periph); + ctl &= ~(I2C_CTL1_DMALST); + ctl |= dmalast; + I2C_CTL1(i2c_periph) = ctl; +} + +/*! + \brief whether to stretch SCL low when data is not ready in slave mode + \param[in] i2c_periph: I2Cx(x=0,1) + \param[in] stretchpara: + only one parameter can be selected which is shown as below: + \arg I2C_SCLSTRETCH_ENABLE: enable SCL stretching + \arg I2C_SCLSTRETCH_DISABLE: disable SCL stretching + \param[out] none + \retval none +*/ +void i2c_stretch_scl_low_config(uint32_t i2c_periph, uint32_t stretchpara) +{ + /* configure I2C SCL strerching */ + uint32_t ctl = 0U; + + ctl = I2C_CTL0(i2c_periph); + ctl &= ~(I2C_CTL0_SS); + ctl |= stretchpara; + I2C_CTL0(i2c_periph) = ctl; +} + +/*! + \brief whether or not to response to a general call + \param[in] i2c_periph: I2Cx(x=0,1) + \param[in] gcallpara: + only one parameter can be selected which is shown as below: + \arg I2C_GCEN_ENABLE: slave will response to a general call + \arg I2C_GCEN_DISABLE: slave will not response to a general call + \param[out] none + \retval none +*/ +void i2c_slave_response_to_gcall_config(uint32_t i2c_periph, uint32_t gcallpara) +{ + /* configure slave response to a general call enable or disable */ + uint32_t ctl = 0U; + + ctl = I2C_CTL0(i2c_periph); + ctl &= ~(I2C_CTL0_GCEN); + ctl |= gcallpara; + I2C_CTL0(i2c_periph) = ctl; +} + +/*! + \brief configure software reset of I2C + \param[in] i2c_periph: I2Cx(x=0,1) + \param[in] sreset: + only one parameter can be selected which is shown as below: + \arg I2C_SRESET_SET: I2C is under reset + \arg I2C_SRESET_RESET: I2C is not under reset + \param[out] none + \retval none +*/ +void i2c_software_reset_config(uint32_t i2c_periph, uint32_t sreset) +{ + /* modify CTL0 and configure software reset I2C state */ + uint32_t ctl = 0U; + + ctl = I2C_CTL0(i2c_periph); + ctl &= ~(I2C_CTL0_SRESET); + ctl |= sreset; + I2C_CTL0(i2c_periph) = ctl; +} + +/*! + \brief configure I2C PEC calculation + \param[in] i2c_periph: I2Cx(x=0,1) + \param[in] pecstate: + only one parameter can be selected which is shown as below: + \arg I2C_PEC_ENABLE: PEC calculation on + \arg I2C_PEC_DISABLE: PEC calculation off + \param[out] none + \retval none +*/ +void i2c_pec_config(uint32_t i2c_periph, uint32_t pecstate) +{ + /* on/off PEC calculation */ + uint32_t ctl = 0U; + + ctl = I2C_CTL0(i2c_periph); + ctl &= ~(I2C_CTL0_PECEN); + ctl |= pecstate; + I2C_CTL0(i2c_periph) = ctl; +} + +/*! + \brief configure whether to transfer PEC value + \param[in] i2c_periph: I2Cx(x=0,1) + \param[in] pecpara: + only one parameter can be selected which is shown as below: + \arg I2C_PECTRANS_ENABLE: transfer PEC + \arg I2C_PECTRANS_DISABLE: not transfer PEC + \param[out] none + \retval none +*/ +void i2c_pec_transfer_config(uint32_t i2c_periph, uint32_t pecpara) +{ + /* whether to transfer PEC */ + uint32_t ctl = 0U; + + ctl = I2C_CTL0(i2c_periph); + ctl &= ~(I2C_CTL0_PECTRANS); + ctl |= pecpara; + I2C_CTL0(i2c_periph) = ctl; +} + +/*! + \brief get packet error checking value + \param[in] i2c_periph: I2Cx(x=0,1) + \param[out] none + \retval PEC value +*/ +uint8_t i2c_pec_value_get(uint32_t i2c_periph) +{ + return (uint8_t)((I2C_STAT1(i2c_periph) & I2C_STAT1_PECV)>>STAT1_PECV_OFFSET); +} + +/*! + \brief configure I2C alert through SMBA pin + \param[in] i2c_periph: I2Cx(x=0,1) + \param[in] smbuspara: + only one parameter can be selected which is shown as below: + \arg I2C_SALTSEND_ENABLE: issue alert through SMBA pin + \arg I2C_SALTSEND_DISABLE: not issue alert through SMBA pin + \param[out] none + \retval none +*/ +void i2c_smbus_alert_config(uint32_t i2c_periph, uint32_t smbuspara) +{ + /* issue alert through SMBA pin configure*/ + uint32_t ctl = 0U; + + ctl = I2C_CTL0(i2c_periph); + ctl &= ~(I2C_CTL0_SALT); + ctl |= smbuspara; + I2C_CTL0(i2c_periph) = ctl; +} + +/*! + \brief configure I2C ARP protocol in SMBus + \param[in] i2c_periph: I2Cx(x=0,1) + \param[in] arpstate: + only one parameter can be selected which is shown as below: + \arg I2C_ARP_ENABLE: enable ARP + \arg I2C_ARP_DISABLE: disable ARP + \param[out] none + \retval none +*/ +void i2c_smbus_arp_config(uint32_t i2c_periph, uint32_t arpstate) +{ + /* enable or disable I2C ARP protocol*/ + uint32_t ctl = 0U; + + ctl = I2C_CTL0(i2c_periph); + ctl &= ~(I2C_CTL0_ARPEN); + ctl |= arpstate; + I2C_CTL0(i2c_periph) = ctl; +} + +/*! + \brief get I2C flag status + \param[in] i2c_periph: I2Cx(x=0,1) + \param[in] flag: I2C flags, refer to i2c_flag_enum + only one parameter can be selected which is shown as below: + \arg I2C_FLAG_SBSEND: start condition sent out in master mode + \arg I2C_FLAG_ADDSEND: address is sent in master mode or received and matches in slave mode + \arg I2C_FLAG_BTC: byte transmission finishes + \arg I2C_FLAG_ADD10SEND: header of 10-bit address is sent in master mode + \arg I2C_FLAG_STPDET: stop condition detected in slave mode + \arg I2C_FLAG_RBNE: I2C_DATA is not empty during receiving + \arg I2C_FLAG_TBE: I2C_DATA is empty during transmitting + \arg I2C_FLAG_BERR: a bus error occurs indication a unexpected start or stop condition on I2C bus + \arg I2C_FLAG_LOSTARB: arbitration lost in master mode + \arg I2C_FLAG_AERR: acknowledge error + \arg I2C_FLAG_OUERR: over-run or underrun situation occurs in slave mode + \arg I2C_FLAG_PECERR: PEC error when receiving data + \arg I2C_FLAG_SMBTO: timeout signal in SMBus mode + \arg I2C_FLAG_SMBALT: SMBus alert status + \arg I2C_FLAG_MASTER: a flag indicating whether I2C block is in master or slave mode + \arg I2C_FLAG_I2CBSY: busy flag + \arg I2C_FLAG_TRS: whether the I2C is a transmitter or a receiver + \arg I2C_FLAG_RXGC: general call address (00h) received + \arg I2C_FLAG_DEFSMB: default address of SMBus device + \arg I2C_FLAG_HSTSMB: SMBus host header detected in slave mode + \arg I2C_FLAG_DUMOD: dual flag in slave mode indicating which address is matched in dual-address mode + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus i2c_flag_get(uint32_t i2c_periph, i2c_flag_enum flag) +{ + if(RESET != (I2C_REG_VAL(i2c_periph, flag) & BIT(I2C_BIT_POS(flag)))){ + return SET; + }else{ + return RESET; + } +} + +/*! + \brief clear I2C flag status + \param[in] i2c_periph: I2Cx(x=0,1) + \param[in] flag: I2C flags, refer to i2c_flag_enum + only one parameter can be selected which is shown as below: + \arg I2C_FLAG_SMBALT: SMBus alert status + \arg I2C_FLAG_SMBTO: timeout signal in SMBus mode + \arg I2C_FLAG_PECERR: PEC error when receiving data + \arg I2C_FLAG_OUERR: over-run or under-run situation occurs in slave mode + \arg I2C_FLAG_AERR: acknowledge error + \arg I2C_FLAG_LOSTARB: arbitration lost in master mode + \arg I2C_FLAG_BERR: a bus error occurs indication a unexpected start or stop condition on I2C bus + \arg I2C_FLAG_ADDSEND: address is sent in master mode or received and matches in slave mode + \param[out] none + \retval none +*/ +void i2c_flag_clear(uint32_t i2c_periph, i2c_flag_enum flag) +{ + if(I2C_FLAG_ADDSEND == flag){ + /* read I2C_STAT0 and then read I2C_STAT1 to clear ADDSEND */ + I2C_STAT0(i2c_periph); + I2C_STAT1(i2c_periph); + }else{ + I2C_REG_VAL(i2c_periph, flag) &= ~BIT(I2C_BIT_POS(flag)); + } +} + +/*! + \brief enable I2C interrupt + \param[in] i2c_periph: I2Cx(x=0,1) + \param[in] interrupt: I2C interrupts, refer to i2c_interrupt_enum + only one parameter can be selected which is shown as below: + \arg I2C_INT_ERR: error interrupt + \arg I2C_INT_EV: event interrupt + \arg I2C_INT_BUF: buffer interrupt + \param[out] none + \retval none +*/ +void i2c_interrupt_enable(uint32_t i2c_periph, i2c_interrupt_enum interrupt) +{ + I2C_REG_VAL(i2c_periph, interrupt) |= BIT(I2C_BIT_POS(interrupt)); +} + +/*! + \brief disable I2C interrupt + \param[in] i2c_periph: I2Cx(x=0,1) + \param[in] interrupt: I2C interrupts, refer to i2c_flag_enum + only one parameter can be selected which is shown as below: + \arg I2C_INT_ERR: error interrupt enable + \arg I2C_INT_EV: event interrupt enable + \arg I2C_INT_BUF: buffer interrupt enable + \param[out] none + \retval none +*/ +void i2c_interrupt_disable(uint32_t i2c_periph, i2c_interrupt_enum interrupt) +{ + I2C_REG_VAL(i2c_periph, interrupt) &= ~BIT(I2C_BIT_POS(interrupt)); +} + +/*! + \brief get I2C interrupt flag status + \param[in] i2c_periph: I2Cx(x=0,1) + \param[in] int_flag: I2C interrupt flags, refer to i2c_interrupt_flag_enum + only one parameter can be selected which is shown as below: + \arg I2C_INT_FLAG_SBSEND: start condition sent out in master mode interrupt flag + \arg I2C_INT_FLAG_ADDSEND: address is sent in master mode or received and matches in slave mode interrupt flag + \arg I2C_INT_FLAG_BTC: byte transmission finishes + \arg I2C_INT_FLAG_ADD10SEND: header of 10-bit address is sent in master mode interrupt flag + \arg I2C_INT_FLAG_STPDET: etop condition detected in slave mode interrupt flag + \arg I2C_INT_FLAG_RBNE: I2C_DATA is not Empty during receiving interrupt flag + \arg I2C_INT_FLAG_TBE: I2C_DATA is empty during transmitting interrupt flag + \arg I2C_INT_FLAG_BERR: a bus error occurs indication a unexpected start or stop condition on I2C bus interrupt flag + \arg I2C_INT_FLAG_LOSTARB: arbitration lost in master mode interrupt flag + \arg I2C_INT_FLAG_AERR: acknowledge error interrupt flag + \arg I2C_INT_FLAG_OUERR: over-run or under-run situation occurs in slave mode interrupt flag + \arg I2C_INT_FLAG_PECERR: PEC error when receiving data interrupt flag + \arg I2C_INT_FLAG_SMBTO: timeout signal in SMBus mode interrupt flag + \arg I2C_INT_FLAG_SMBALT: SMBus alert status interrupt flag + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus i2c_interrupt_flag_get(uint32_t i2c_periph, i2c_interrupt_flag_enum int_flag) +{ + uint32_t intenable = 0U, flagstatus = 0U, bufie; + + /* check BUFIE */ + bufie = I2C_CTL1(i2c_periph)&I2C_CTL1_BUFIE; + + /* get the interrupt enable bit status */ + intenable = (I2C_REG_VAL(i2c_periph, int_flag) & BIT(I2C_BIT_POS(int_flag))); + /* get the corresponding flag bit status */ + flagstatus = (I2C_REG_VAL2(i2c_periph, int_flag) & BIT(I2C_BIT_POS2(int_flag))); + + if((I2C_INT_FLAG_RBNE == int_flag) || (I2C_INT_FLAG_TBE == int_flag)){ + if(intenable && bufie){ + intenable = 1U; + }else{ + intenable = 0U; + } + } + if((0U != flagstatus) && (0U != intenable)){ + return SET; + }else{ + return RESET; + } +} + +/*! + \brief clear I2C interrupt flag status + \param[in] i2c_periph: I2Cx(x=0,1) + \param[in] int_flag: I2C interrupt flags, refer to i2c_interrupt_flag_enum + only one parameter can be selected which is shown as below: + \arg I2C_INT_FLAG_ADDSEND: address is sent in master mode or received and matches in slave mode interrupt flag + \arg I2C_INT_FLAG_BERR: a bus error occurs indication a unexpected start or stop condition on I2C bus interrupt flag + \arg I2C_INT_FLAG_LOSTARB: arbitration lost in master mode interrupt flag + \arg I2C_INT_FLAG_AERR: acknowledge error interrupt flag + \arg I2C_INT_FLAG_OUERR: over-run or under-run situation occurs in slave mode interrupt flag + \arg I2C_INT_FLAG_PECERR: PEC error when receiving data interrupt flag + \arg I2C_INT_FLAG_SMBTO: timeout signal in SMBus mode interrupt flag + \arg I2C_INT_FLAG_SMBALT: SMBus alert status interrupt flag + \param[out] none + \retval none +*/ +void i2c_interrupt_flag_clear(uint32_t i2c_periph, i2c_interrupt_flag_enum int_flag) +{ + if(I2C_INT_FLAG_ADDSEND == int_flag){ + /* read I2C_STAT0 and then read I2C_STAT1 to clear ADDSEND */ + I2C_STAT0(i2c_periph); + I2C_STAT1(i2c_periph); + }else{ + I2C_REG_VAL2(i2c_periph, int_flag) &= ~BIT(I2C_BIT_POS2(int_flag)); + } +} diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_misc.c b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_misc.c new file mode 100644 index 0000000..5f0d7f4 --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_misc.c @@ -0,0 +1,184 @@ +/*! + \file gd32f10x_misc.c + \brief MISC driver + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#include "gd32f10x_misc.h" + +/*! + \brief set the priority group + \param[in] nvic_prigroup: the NVIC priority group + \arg NVIC_PRIGROUP_PRE0_SUB4: 0 bits for pre-emption priority, 4 bits for subpriority + \arg NVIC_PRIGROUP_PRE1_SUB3: 1 bits for pre-emption priority, 3 bits for subpriority + \arg NVIC_PRIGROUP_PRE2_SUB2: 2 bits for pre-emption priority, 2 bits for subpriority + \arg NVIC_PRIGROUP_PRE3_SUB1: 3 bits for pre-emption priority, 1 bits for subpriority + \arg NVIC_PRIGROUP_PRE4_SUB0: 4 bits for pre-emption priority, 0 bits for subpriority + \param[out] none + \retval none +*/ +void nvic_priority_group_set(uint32_t nvic_prigroup) +{ + /* set the priority group value */ + SCB->AIRCR = NVIC_AIRCR_VECTKEY_MASK | nvic_prigroup; +} + +/*! + \brief enable NVIC interrupt request + \param[in] nvic_irq: the NVIC interrupt request, detailed in IRQn_Type + \param[in] nvic_irq_pre_priority: the pre-emption priority needed to set + \param[in] nvic_irq_sub_priority: the subpriority needed to set + \param[out] none + \retval none +*/ +void nvic_irq_enable(uint8_t nvic_irq, + uint8_t nvic_irq_pre_priority, + uint8_t nvic_irq_sub_priority) +{ + uint32_t temp_priority = 0x00U, temp_pre = 0x00U, temp_sub = 0x00U; + + /* use the priority group value to get the temp_pre and the temp_sub */ + switch((SCB->AIRCR) & (uint32_t)0x700U) { + case NVIC_PRIGROUP_PRE0_SUB4: + temp_pre = 0U; + temp_sub = 0x4U; + break; + case NVIC_PRIGROUP_PRE1_SUB3: + temp_pre = 1U; + temp_sub = 0x3U; + break; + case NVIC_PRIGROUP_PRE2_SUB2: + temp_pre = 2U; + temp_sub = 0x2U; + break; + case NVIC_PRIGROUP_PRE3_SUB1: + temp_pre = 3U; + temp_sub = 0x1U; + break; + case NVIC_PRIGROUP_PRE4_SUB0: + temp_pre = 4U; + temp_sub = 0x0U; + break; + default: + nvic_priority_group_set(NVIC_PRIGROUP_PRE2_SUB2); + temp_pre = 2U; + temp_sub = 0x2U; + break; + } + + /* get the temp_priority to fill the NVIC->IP register */ + temp_priority = (uint32_t)nvic_irq_pre_priority << (0x4U - temp_pre); + temp_priority |= nvic_irq_sub_priority & (0x0FU >> (0x4U - temp_sub)); + temp_priority = temp_priority << 0x04U; + NVIC->IP[nvic_irq] = (uint8_t)temp_priority; + + /* enable the selected IRQ */ + NVIC->ISER[nvic_irq >> 0x05U] = (uint32_t)0x01U << (nvic_irq & (uint8_t)0x1FU); +} + +/*! + \brief disable NVIC interrupt request + \param[in] nvic_irq: the NVIC interrupt request, detailed in IRQn_Type + \param[out] none + \retval none +*/ +void nvic_irq_disable(uint8_t nvic_irq) +{ + /* disable the selected IRQ.*/ + NVIC->ICER[nvic_irq >> 0x05U] = (uint32_t)0x01U << (nvic_irq & (uint8_t)0x1FU); +} + +/*! + \brief set the NVIC vector table base address + \param[in] nvic_vict_tab: the RAM or FLASH base address + \arg NVIC_VECTTAB_RAM: RAM base address + \are NVIC_VECTTAB_FLASH: Flash base address + \param[in] offset: vector table offset + \param[out] none + \retval none +*/ +void nvic_vector_table_set(uint32_t nvic_vict_tab, uint32_t offset) +{ + SCB->VTOR = nvic_vict_tab | (offset & NVIC_VECTTAB_OFFSET_MASK); + __DSB(); +} + +/*! + \brief set the state of the low power mode + \param[in] lowpower_mode: the low power mode state + \arg SCB_LPM_SLEEP_EXIT_ISR: if chose this para, the system always enter low power + mode by exiting from ISR + \arg SCB_LPM_DEEPSLEEP: if chose this para, the system will enter the DEEPSLEEP mode + \arg SCB_LPM_WAKE_BY_ALL_INT: if chose this para, the low power mode can be woke up + by all the enable and disable interrupts + \param[out] none + \retval none +*/ +void system_lowpower_set(uint8_t lowpower_mode) +{ + SCB->SCR |= (uint32_t)lowpower_mode; +} + +/*! + \brief reset the state of the low power mode + \param[in] lowpower_mode: the low power mode state + \arg SCB_LPM_SLEEP_EXIT_ISR: if chose this para, the system will exit low power + mode by exiting from ISR + \arg SCB_LPM_DEEPSLEEP: if chose this para, the system will enter the SLEEP mode + \arg SCB_LPM_WAKE_BY_ALL_INT: if chose this para, the low power mode only can be + woke up by the enable interrupts + \param[out] none + \retval none +*/ +void system_lowpower_reset(uint8_t lowpower_mode) +{ + SCB->SCR &= (~(uint32_t)lowpower_mode); +} + +/*! + \brief set the systick clock source + \param[in] systick_clksource: the systick clock source needed to choose + \arg SYSTICK_CLKSOURCE_HCLK: systick clock source is from HCLK + \arg SYSTICK_CLKSOURCE_HCLK_DIV8: systick clock source is from HCLK/8 + \param[out] none + \retval none +*/ + +void systick_clksource_set(uint32_t systick_clksource) +{ + if(SYSTICK_CLKSOURCE_HCLK == systick_clksource) { + /* set the systick clock source from HCLK */ + SysTick->CTRL |= SYSTICK_CLKSOURCE_HCLK; + } else { + /* set the systick clock source from HCLK/8 */ + SysTick->CTRL &= SYSTICK_CLKSOURCE_HCLK_DIV8; + } +} diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_pmu.c b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_pmu.c new file mode 100644 index 0000000..0039ff3 --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_pmu.c @@ -0,0 +1,276 @@ +/*! + \file gd32f10x_pmu.c + \brief PMU driver + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#include "gd32f10x_pmu.h" + +/*! + \brief reset PMU register + \param[in] none + \param[out] none + \retval none +*/ +void pmu_deinit(void) +{ + /* reset PMU */ + rcu_periph_reset_enable(RCU_PMURST); + rcu_periph_reset_disable(RCU_PMURST); +} + +/*! + \brief select low voltage detector threshold + \param[in] lvdt_n: + only one parameter can be selected which is shown as below: + \arg PMU_LVDT_0: voltage threshold is 2.2V + \arg PMU_LVDT_1: voltage threshold is 2.3V + \arg PMU_LVDT_2: voltage threshold is 2.4V + \arg PMU_LVDT_3: voltage threshold is 2.5V + \arg PMU_LVDT_4: voltage threshold is 2.6V + \arg PMU_LVDT_5: voltage threshold is 2.7V + \arg PMU_LVDT_6: voltage threshold is 2.8V + \arg PMU_LVDT_7: voltage threshold is 2.9V + \param[out] none + \retval none +*/ +void pmu_lvd_select(uint32_t lvdt_n) +{ + /* disable LVD */ + PMU_CTL &= ~PMU_CTL_LVDEN; + /* clear LVDT bits */ + PMU_CTL &= ~PMU_CTL_LVDT; + /* set LVDT bits according to lvdt_n */ + PMU_CTL |= lvdt_n; + /* enable LVD */ + PMU_CTL |= PMU_CTL_LVDEN; +} + +/*! + \brief disable PMU lvd + \param[in] none + \param[out] none + \retval none +*/ +void pmu_lvd_disable(void) +{ + /* disable LVD */ + PMU_CTL &= ~PMU_CTL_LVDEN; +} + +/*! + \brief PMU work in sleep mode + \param[in] sleepmodecmd: + only one parameter can be selected which is shown as below: + \arg WFI_CMD: use WFI command + \arg WFE_CMD: use WFE command + \param[out] none + \retval none +*/ +void pmu_to_sleepmode(uint8_t sleepmodecmd) +{ + /* clear sleepdeep bit of Cortex-M3 system control register */ + SCB->SCR &= ~((uint32_t)SCB_SCR_SLEEPDEEP_Msk); + + /* select WFI or WFE command to enter sleep mode */ + if(WFI_CMD == sleepmodecmd){ + __WFI(); + }else{ + __WFE(); + } +} + +/*! + \brief PMU work in deepsleep mode + \param[in] ldo: + only one parameter can be selected which is shown as below: + \arg PMU_LDO_NORMAL: LDO work in normal power mode when pmu enter deepsleep mode + \arg PMU_LDO_LOWPOWER: LDO work in low power mode when pmu enter deepsleep mode + \param[in] deepsleepmodecmd: + only one parameter can be selected which is shown as below: + \arg WFI_CMD: use WFI command + \arg WFE_CMD: use WFE command + \param[out] none + \retval none +*/ +void pmu_to_deepsleepmode(uint32_t ldo,uint8_t deepsleepmodecmd) +{ + static uint32_t reg_snap[ 4 ]; + /* clear stbmod and ldolp bits */ + PMU_CTL &= ~((uint32_t)(PMU_CTL_STBMOD | PMU_CTL_LDOLP)); + + /* set ldolp bit according to pmu_ldo */ + PMU_CTL |= ldo; + + /* set sleepdeep bit of Cortex-M3 system control register */ + SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk; + + reg_snap[0] = REG32(0xE000E010U); + reg_snap[1] = REG32(0xE000E100U); + reg_snap[2] = REG32(0xE000E104U); + reg_snap[3] = REG32(0xE000E108U); + + REG32(0xE000E010U) &= 0x00010004U; + REG32(0xE000E180U) = 0XFF7FF83DU; + REG32(0xE000E184U) = 0XBFFFF8FFU; + REG32(0xE000E188U) = 0xFFFFFFFFU; + + /* select WFI or WFE command to enter deepsleep mode */ + if(WFI_CMD == deepsleepmodecmd){ + __WFI(); + }else{ + __SEV(); + __WFE(); + __WFE(); + } + + REG32(0xE000E010U) = reg_snap[0] ; + REG32(0xE000E100U) = reg_snap[1] ; + REG32(0xE000E104U) = reg_snap[2] ; + REG32(0xE000E108U) = reg_snap[3] ; + + /* reset sleepdeep bit of Cortex-M3 system control register */ + SCB->SCR &= ~((uint32_t)SCB_SCR_SLEEPDEEP_Msk); +} + +/*! + \brief pmu work in standby mode + \param[in] none + \param[out] none + \retval none +*/ +void pmu_to_standbymode(void) +{ + /* set stbmod bit */ + PMU_CTL |= PMU_CTL_STBMOD; + + /* reset wakeup flag */ + PMU_CTL |= PMU_CTL_WURST; + + /* set sleepdeep bit of Cortex-M3 system control register */ + SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk; + + REG32(0xE000E010U) &= 0x00010004U; + REG32(0xE000E180U) = 0XFFFFFFF7U; + REG32(0xE000E184U) = 0XFFFFFDFFU; + REG32(0xE000E188U) = 0xFFFFFFFFU; + + /* select WFI command to enter standby mode */ + __WFI(); +} + +/*! + \brief enable wakeup pin + \param[in] none + \param[out] none + \retval none +*/ +void pmu_wakeup_pin_enable(void) +{ + PMU_CS |= PMU_CS_WUPEN; +} + +/*! + \brief disable wakeup pin + \param[in] none + \param[out] none + \retval none +*/ +void pmu_wakeup_pin_disable(void) +{ + PMU_CS &= ~PMU_CS_WUPEN; +} + +/*! + \brief enable write access to the registers in backup domain + \param[in] none + \param[out] none + \retval none +*/ +void pmu_backup_write_enable(void) +{ + PMU_CTL |= PMU_CTL_BKPWEN; +} + +/*! + \brief disable write access to the registers in backup domain + \param[in] none + \param[out] none + \retval none +*/ +void pmu_backup_write_disable(void) +{ + PMU_CTL &= ~PMU_CTL_BKPWEN; +} + +/*! + \brief get flag state + \param[in] flag: + only one parameter can be selected which is shown as below: + \arg PMU_FLAG_WAKEUP: wakeup flag + \arg PMU_FLAG_STANDBY: standby flag + \arg PMU_FLAG_LVD: lvd flag + \param[out] none + \retval FlagStatus SET or RESET +*/ +FlagStatus pmu_flag_get(uint32_t flag) +{ + if(PMU_CS & flag){ + return SET; + }else{ + return RESET; + } +} + +/*! + \brief clear flag bit + \param[in] flag: + only one parameter can be selected which is shown as below: + \arg PMU_FLAG_RESET_WAKEUP: reset wakeup flag + \arg PMU_FLAG_RESET_STANDBY: reset standby flag + \param[out] none + \retval none +*/ +void pmu_flag_clear(uint32_t flag) +{ + switch(flag){ + case PMU_FLAG_RESET_WAKEUP: + /* reset wakeup flag */ + PMU_CTL |= PMU_CTL_WURST; + break; + case PMU_FLAG_RESET_STANDBY: + /* reset standby flag */ + PMU_CTL |= PMU_CTL_STBRST; + break; + default : + break; + } +} diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_rcu.c b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_rcu.c new file mode 100644 index 0000000..62fcc80 --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_rcu.c @@ -0,0 +1,1192 @@ +/*! + \file gd32f10x_rcu.c + \brief RCU driver + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#include "gd32f10x_rcu.h" + +/* define clock source */ +#define SEL_IRC8M ((uint16_t)0U) +#define SEL_HXTAL ((uint16_t)1U) +#define SEL_PLL ((uint16_t)2U) + +/* define startup timeout count */ +#define OSC_STARTUP_TIMEOUT ((uint32_t)0xFFFFFU) +#define LXTAL_STARTUP_TIMEOUT ((uint32_t)0x3FFFFFFU) + +/*! + \brief deinitialize the RCU + \param[in] none + \param[out] none + \retval none +*/ +void rcu_deinit(void) +{ + /* enable IRC8M */ + RCU_CTL |= RCU_CTL_IRC8MEN; + rcu_osci_stab_wait(RCU_IRC8M); + + RCU_CFG0 &= ~RCU_CFG0_SCS; + + /* reset CTL register */ + RCU_CTL &= ~(RCU_CTL_HXTALEN | RCU_CTL_CKMEN | RCU_CTL_PLLEN); + RCU_CTL &= ~RCU_CTL_HXTALBPS; +#ifdef GD32F10X_CL + RCU_CTL &= ~(RCU_CTL_PLL1EN | RCU_CTL_PLL2EN); +#endif /* GD32F10X_CL */ + + /* reset CFG0 register */ +#if (defined(GD32F10X_MD) || defined(GD32F10X_HD) || defined(GD32F10X_XD)) + RCU_CFG0 &= ~(RCU_CFG0_SCS | RCU_CFG0_AHBPSC | RCU_CFG0_APB1PSC | RCU_CFG0_APB2PSC | + RCU_CFG0_ADCPSC | RCU_CFG0_PLLSEL | RCU_CFG0_PREDV0 | RCU_CFG0_PLLMF | + RCU_CFG0_USBDPSC | RCU_CFG0_CKOUT0SEL | RCU_CFG0_PLLMF_4 | RCU_CFG0_ADCPSC_2); +#elif defined(GD32F10X_CL) + RCU_CFG0 &= ~(RCU_CFG0_SCS | RCU_CFG0_AHBPSC | RCU_CFG0_APB1PSC | RCU_CFG0_APB2PSC | + RCU_CFG0_ADCPSC | RCU_CFG0_PLLSEL | RCU_CFG0_PREDV0_LSB | RCU_CFG0_PLLMF | + RCU_CFG0_USBFSPSC | RCU_CFG0_CKOUT0SEL | RCU_CFG0_ADCPSC_2 | RCU_CFG0_PLLMF_4); +#endif /* GD32F10X_MD and GD32F10X_HD and GD32F10X_XD */ + + /* reset INT and CFG1 register */ +#if (defined(GD32F10X_MD) || defined(GD32F10X_HD) || defined(GD32F10X_XD)) + RCU_INT = 0x009f0000U; +#elif defined(GD32F10X_CL) + RCU_INT = 0x00ff0000U; + RCU_CFG1 &= ~(RCU_CFG1_PREDV0 | RCU_CFG1_PREDV1 | RCU_CFG1_PLL1MF | RCU_CFG1_PLL2MF | + RCU_CFG1_PREDV0SEL | RCU_CFG1_I2S1SEL | RCU_CFG1_I2S2SEL); +#endif /* GD32F10X_MD and GD32F10X_HD and GD32F10X_XD */ +} + +/*! + \brief enable the peripherals clock + \param[in] periph: RCU peripherals, refer to rcu_periph_enum + only one parameter can be selected which is shown as below: + \arg RCU_GPIOx (x=A,B,C,D,E,F,G): GPIO ports clock + \arg RCU_AF : alternate function clock + \arg RCU_CRC: CRC clock + \arg RCU_DMAx (x=0,1): DMA clock + \arg RCU_ENET: ENET clock(CL series available) + \arg RCU_ENETTX: ENETTX clock(CL series available) + \arg RCU_ENETRX: ENETRX clock(CL series available) + \arg RCU_USBD: USBD clock(HD,XD series available) + \arg RCU_USBFS: USBFS clock(CL series available) + \arg RCU_EXMC: EXMC clock + \arg RCU_TIMERx (x=0,1,2,3,4,5,6,7,8,9,10,11,12,13,TIMER8..13 are only available for XD series): TIMER clock + \arg RCU_WWDGT: WWDGT clock + \arg RCU_SPIx (x=0,1,2): SPI clock + \arg RCU_USARTx (x=0,1,2): USART clock + \arg RCU_UARTx (x=3,4): UART clock + \arg RCU_I2Cx (x=0,1): I2C clock + \arg RCU_CANx (x=0,1,CAN1 is only available for CL series): CAN clock + \arg RCU_PMU: PMU clock + \arg RCU_DAC: DAC clock + \arg RCU_RTC: RTC clock + \arg RCU_ADCx (x=0,1,2,ADC2 is not available for CL series): ADC clock + \arg RCU_SDIO: SDIO clock(not available for CL series) + \arg RCU_BKPI: BKP interface clock + \param[out] none + \retval none +*/ +void rcu_periph_clock_enable(rcu_periph_enum periph) +{ + RCU_REG_VAL(periph) |= BIT(RCU_BIT_POS(periph)); +} + +/*! + \brief disable the peripherals clock + \param[in] periph: RCU peripherals, refer to rcu_periph_enum + only one parameter can be selected which is shown as below: + \arg RCU_GPIOx (x=A,B,C,D,E,F,G): GPIO ports clock + \arg RCU_AF: alternate function clock + \arg RCU_CRC: CRC clock + \arg RCU_DMAx (x=0,1): DMA clock + \arg RCU_ENET: ENET clock(CL series available) + \arg RCU_ENETTX: ENETTX clock(CL series available) + \arg RCU_ENETRX: ENETRX clock(CL series available) + \arg RCU_USBD: USBD clock(HD,XD series available) + \arg RCU_USBFS: USBFS clock(CL series available) + \arg RCU_EXMC: EXMC clock + \arg RCU_TIMERx (x=0,1,2,3,4,5,6,7,8,9,10,11,12,13,TIMER8..13 are only available for XD series): TIMER clock + \arg RCU_WWDGT: WWDGT clock + \arg RCU_SPIx (x=0,1,2): SPI clock + \arg RCU_USARTx (x=0,1,2): USART clock + \arg RCU_UARTx (x=3,4): UART clock + \arg RCU_I2Cx (x=0,1): I2C clock + \arg RCU_CANx (x=0,1,CAN1 is only available for CL series): CAN clock + \arg RCU_PMU: PMU clock + \arg RCU_DAC: DAC clock + \arg RCU_RTC: RTC clock + \arg RCU_ADCx (x=0,1,2,ADC2 is not available for CL series): ADC clock + \arg RCU_SDIO: SDIO clock(not available for CL series) + \arg RCU_BKPI: BKP interface clock + \param[out] none + \retval none +*/ +void rcu_periph_clock_disable(rcu_periph_enum periph) +{ + RCU_REG_VAL(periph) &= ~BIT(RCU_BIT_POS(periph)); +} + +/*! + \brief enable the peripherals clock when sleep mode + \param[in] periph: RCU peripherals, refer to rcu_periph_sleep_enum + only one parameter can be selected which is shown as below: + \arg RCU_FMC_SLP: FMC clock + \arg RCU_SRAM_SLP: SRAM clock + \param[out] none + \retval none +*/ +void rcu_periph_clock_sleep_enable(rcu_periph_sleep_enum periph) +{ + RCU_REG_VAL(periph) |= BIT(RCU_BIT_POS(periph)); +} + +/*! + \brief disable the peripherals clock when sleep mode + \param[in] periph: RCU peripherals, refer to rcu_periph_sleep_enum + only one parameter can be selected which is shown as below: + \arg RCU_FMC_SLP: FMC clock + \arg RCU_SRAM_SLP: SRAM clock + \param[out] none + \retval none +*/ +void rcu_periph_clock_sleep_disable(rcu_periph_sleep_enum periph) +{ + RCU_REG_VAL(periph) &= ~BIT(RCU_BIT_POS(periph)); +} + +/*! + \brief reset the peripherals + \param[in] periph_reset: RCU peripherals reset, refer to rcu_periph_reset_enum + only one parameter can be selected which is shown as below: + \arg RCU_GPIOxRST (x=A,B,C,D,E,F,G): reset GPIO ports + \arg RCU_AFRST : reset alternate function clock + \arg RCU_ENETRST: reset ENET(CL series available) + \arg RCU_USBDRST: reset USBD(HD,XD series available) + \arg RCU_USBFSRST: reset USBFS(CL series available) + \arg RCU_TIMERxRST (x=0,1,2,3,4,5,6,7,8,9,10,11,12,13,TIMER8..13 are only available for XD series): reset TIMER + \arg RCU_WWDGTRST: reset WWDGT + \arg RCU_SPIxRST (x=0,1,2): reset SPI + \arg RCU_USARTxRST (x=0,1,2): reset USART + \arg RCU_UARTxRST (x=3,4): reset UART + \arg RCU_I2CxRST (x=0,1): reset I2C + \arg RCU_CANxRST (x=0,1,CAN1 is only available for CL series): reset CAN + \arg RCU_PMURST: reset PMU + \arg RCU_DACRST: reset DAC + \arg RCU_ADCxRST (x=0,1,2, ADC2 is not available for CL series): reset ADC + \arg RCU_BKPIRST: reset BKPI + \param[out] none + \retval none +*/ +void rcu_periph_reset_enable(rcu_periph_reset_enum periph_reset) +{ + RCU_REG_VAL(periph_reset) |= BIT(RCU_BIT_POS(periph_reset)); +} + +/*! + \brief disable reset the peripheral + \param[in] periph_reset: RCU peripherals reset, refer to rcu_periph_reset_enum + only one parameter can be selected which is shown as below: + \arg RCU_GPIOxRST (x=A,B,C,D,E,F,G): reset GPIO ports + \arg RCU_AFRST : reset alternate function clock + \arg RCU_ENETRST: reset ENET(CL series available) + \arg RCU_USBDRST: reset USBD(HD,XD series available) + \arg RCU_USBFSRST: reset USBFS(CL series available) + \arg RCU_TIMERxRST (x=0,1,2,3,4,5,6,7,8,9,10,11,12,13,TIMER8..13 are only available for XD series): reset TIMER + \arg RCU_WWDGTRST: reset WWDGT + \arg RCU_SPIxRST (x=0,1,2): reset SPI + \arg RCU_USARTxRST (x=0,1,2): reset USART + \arg RCU_UARTxRST (x=3,4): reset UART + \arg RCU_I2CxRST (x=0,1): reset I2C + \arg RCU_CANxRST (x=0,1,CAN1 is only available for CL series): reset CAN + \arg RCU_PMURST: reset PMU + \arg RCU_DACRST: reset DAC + \arg RCU_ADCxRST (x=0,1,2, ADC2 is not available for CL series): reset ADC + \arg RCU_BKPIRST: reset BKPI + \param[out] none + \retval none +*/ +void rcu_periph_reset_disable(rcu_periph_reset_enum periph_reset) +{ + RCU_REG_VAL(periph_reset) &= ~BIT(RCU_BIT_POS(periph_reset)); +} + +/*! + \brief reset the BKP domain + \param[in] none + \param[out] none + \retval none +*/ +void rcu_bkp_reset_enable(void) +{ + RCU_BDCTL |= RCU_BDCTL_BKPRST; +} + +/*! + \brief disable the BKP domain reset + \param[in] none + \param[out] none + \retval none +*/ +void rcu_bkp_reset_disable(void) +{ + RCU_BDCTL &= ~RCU_BDCTL_BKPRST; +} + +/*! + \brief configure the system clock source + \param[in] ck_sys: system clock source select + only one parameter can be selected which is shown as below: + \arg RCU_CKSYSSRC_IRC8M: select CK_IRC8M as the CK_SYS source + \arg RCU_CKSYSSRC_HXTAL: select CK_HXTAL as the CK_SYS source + \arg RCU_CKSYSSRC_PLL: select CK_PLL as the CK_SYS source + \param[out] none + \retval none +*/ +void rcu_system_clock_source_config(uint32_t ck_sys) +{ + uint32_t reg; + + reg = RCU_CFG0; + /* reset the SCS bits and set according to ck_sys */ + reg &= ~RCU_CFG0_SCS; + RCU_CFG0 = (reg | ck_sys); +} + +/*! + \brief get the system clock source + \param[in] none + \param[out] none + \retval which clock is selected as CK_SYS source + \arg RCU_SCSS_IRC8M: CK_IRC8M is selected as the CK_SYS source + \arg RCU_SCSS_HXTAL: CK_HXTAL is selected as the CK_SYS source + \arg RCU_SCSS_PLL: CK_PLL is selected as the CK_SYS source +*/ +uint32_t rcu_system_clock_source_get(void) +{ + return (RCU_CFG0 & RCU_CFG0_SCSS); +} + +/*! + \brief configure the AHB clock prescaler selection + \param[in] ck_ahb: AHB clock prescaler selection + only one parameter can be selected which is shown as below: + \arg RCU_AHB_CKSYS_DIVx, x=1, 2, 4, 8, 16, 64, 128, 256, 512 + \param[out] none + \retval none +*/ +void rcu_ahb_clock_config(uint32_t ck_ahb) +{ + uint32_t reg; + + reg = RCU_CFG0; + + /* reset the AHBPSC bits and set according to ck_ahb */ + reg &= ~RCU_CFG0_AHBPSC; + RCU_CFG0 = (reg | ck_ahb); +} + +/*! + \brief configure the APB1 clock prescaler selection + \param[in] ck_apb1: APB1 clock prescaler selection + only one parameter can be selected which is shown as below: + \arg RCU_APB1_CKAHB_DIV1: select CK_AHB as CK_APB1 + \arg RCU_APB1_CKAHB_DIV2: select CK_AHB/2 as CK_APB1 + \arg RCU_APB1_CKAHB_DIV4: select CK_AHB/4 as CK_APB1 + \arg RCU_APB1_CKAHB_DIV8: select CK_AHB/8 as CK_APB1 + \arg RCU_APB1_CKAHB_DIV16: select CK_AHB/16 as CK_APB1 + \param[out] none + \retval none +*/ +void rcu_apb1_clock_config(uint32_t ck_apb1) +{ + uint32_t reg; + + reg = RCU_CFG0; + + /* reset the APB1PSC and set according to ck_apb1 */ + reg &= ~RCU_CFG0_APB1PSC; + RCU_CFG0 = (reg | ck_apb1); +} + +/*! + \brief configure the APB2 clock prescaler selection + \param[in] ck_apb2: APB2 clock prescaler selection + only one parameter can be selected which is shown as below: + \arg RCU_APB2_CKAHB_DIV1: select CK_AHB as CK_APB2 + \arg RCU_APB2_CKAHB_DIV2: select CK_AHB/2 as CK_APB2 + \arg RCU_APB2_CKAHB_DIV4: select CK_AHB/4 as CK_APB2 + \arg RCU_APB2_CKAHB_DIV8: select CK_AHB/8 as CK_APB2 + \arg RCU_APB2_CKAHB_DIV16: select CK_AHB/16 as CK_APB2 + \param[out] none + \retval none +*/ +void rcu_apb2_clock_config(uint32_t ck_apb2) +{ + uint32_t reg; + + reg = RCU_CFG0; + + /* reset the APB2PSC and set according to ck_apb2 */ + reg &= ~RCU_CFG0_APB2PSC; + RCU_CFG0 = (reg | ck_apb2); +} + +/*! + \brief configure the CK_OUT0 clock source + \param[in] ckout0_src: CK_OUT0 clock source selection + only one parameter can be selected which is shown as below: + \arg RCU_CKOUT0SRC_NONE: no clock selected + \arg RCU_CKOUT0SRC_CKSYS: system clock selected + \arg RCU_CKOUT0SRC_IRC8M: high speed 8M internal oscillator clock selected + \arg RCU_CKOUT0SRC_HXTAL: HXTAL selected + \arg RCU_CKOUT0SRC_CKPLL_DIV2: CK_PLL/2 selected + \arg RCU_CKOUT0SRC_CKPLL1: CK_PLL1 selected + \arg RCU_CKOUT0SRC_CKPLL2_DIV2: CK_PLL2/2 selected + \arg RCU_CKOUT0SRC_EXT1: EXT1 selected + \arg RCU_CKOUT0SRC_CKPLL2: PLL2 selected + \param[out] none + \retval none +*/ +void rcu_ckout0_config(uint32_t ckout0_src) +{ + uint32_t reg; + + reg = RCU_CFG0; + + /* reset the CKOUT0SRC, set according to ckout0_src */ + reg &= ~RCU_CFG0_CKOUT0SEL; + RCU_CFG0 = (reg | ckout0_src); +} + +/*! + \brief configure the main PLL clock + \param[in] pll_src: PLL clock source selection + only one parameter can be selected which is shown as below: + \arg RCU_PLLSRC_IRC8M_DIV2: IRC8M/2 clock selected as source clock of PLL + \arg RCU_PLLSRC_HXTAL: HXTAL selected as source clock of PLL + \param[in] pll_mul: PLL clock multiplication factor + only one parameter can be selected which is shown as below: + \arg RCU_PLL_MULx (XD series x = 2..32, CL series x = 2..14, 6.5, 16..32) + \param[out] none + \retval none +*/ +void rcu_pll_config(uint32_t pll_src, uint32_t pll_mul) +{ + uint32_t reg = 0U; + + reg = RCU_CFG0; + + /* PLL clock source and multiplication factor configuration */ + reg &= ~(RCU_CFG0_PLLSEL | RCU_CFG0_PLLMF | RCU_CFG0_PLLMF_4); + reg |= (pll_src | pll_mul); + + RCU_CFG0 = reg; +} + +#if (defined(GD32F10X_MD) || defined(GD32F10X_HD) || defined(GD32F10X_XD)) +/*! + \brief configure the PREDV0 division factor + \param[in] predv0_div: PREDV0 division factor + only one parameter can be selected which is shown as below: + \arg RCU_PREDV0_DIVx, x = 1,2 + \param[out] none + \retval none +*/ +void rcu_predv0_config(uint32_t predv0_div) +{ + uint32_t reg = 0U; + + reg = RCU_CFG0; + /* reset PREDV0 bit */ + reg &= ~RCU_CFG0_PREDV0; + if(RCU_PREDV0_DIV2 == predv0_div){ + /* set the PREDV0 bit */ + reg |= RCU_CFG0_PREDV0; + } + + RCU_CFG0 = reg; +} +#elif defined(GD32F10X_CL) +/*! + \brief configure the PREDV0 division factor and clock source + \param[in] predv0_source: PREDV0 input clock source selection + only one parameter can be selected which is shown as below: + \arg RCU_PREDV0SRC_HXTAL: HXTAL selected as PREDV0 input source clock + \arg RCU_PREDV0SRC_CKPLL1: CK_PLL1 selected as PREDV0 input source clock + \param[in] predv0_div: PREDV0 division factor + only one parameter can be selected which is shown as below: + \arg RCU_PREDV0_DIVx, x = 1..16 + \param[out] none + \retval none +*/ +void rcu_predv0_config(uint32_t predv0_source, uint32_t predv0_div) +{ + uint32_t reg = 0U; + + reg = RCU_CFG1; + /* reset PREDV0SEL and PREDV0 bits */ + reg &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PREDV0); + /* set the PREDV0SEL and PREDV0 division factor */ + reg |= (predv0_source | predv0_div); + + RCU_CFG1 = reg; +} + +/*! + \brief configure the PREDV1 division factor + \param[in] predv1_div: PREDV1 division factor + only one parameter can be selected which is shown as below: + \arg RCU_PREDV1_DIVx, x = 1..16 + \param[out] none + \retval none +*/ +void rcu_predv1_config(uint32_t predv1_div) +{ + uint32_t reg = 0U; + + reg = RCU_CFG1; + /* reset the PREDV1 bits */ + reg &= ~RCU_CFG1_PREDV1; + /* set the PREDV1 division factor */ + reg |= predv1_div; + + RCU_CFG1 = reg; +} + +/*! + \brief configure the PLL1 clock + \param[in] pll_mul: PLL clock multiplication factor + only one parameter can be selected which is shown as below: + \arg RCU_PLL1_MULx (x = 8..16, 20) + \param[out] none + \retval none +*/ +void rcu_pll1_config(uint32_t pll_mul) +{ + RCU_CFG1 &= ~RCU_CFG1_PLL1MF; + RCU_CFG1 |= pll_mul; +} + +/*! + \brief configure the PLL2 clock + \param[in] pll_mul: PLL clock multiplication factor + only one parameter can be selected which is shown as below: + \arg RCU_PLL2_MULx (x = 8..16, 20) + \param[out] none + \retval none +*/ +void rcu_pll2_config(uint32_t pll_mul) +{ + RCU_CFG1 &= ~RCU_CFG1_PLL2MF; + RCU_CFG1 |= pll_mul; +} +#endif /* GD32F10X_MD and GD32F10X_HD and GD32F10X_XD */ + +/*! + \brief configure the ADC prescaler factor + \param[in] adc_psc: ADC prescaler factor + only one parameter can be selected which is shown as below: + \arg RCU_CKADC_CKAPB2_DIV2: ADC prescaler select CK_APB2/2 + \arg RCU_CKADC_CKAPB2_DIV4: ADC prescaler select CK_APB2/4 + \arg RCU_CKADC_CKAPB2_DIV6: ADC prescaler select CK_APB2/6 + \arg RCU_CKADC_CKAPB2_DIV8: ADC prescaler select CK_APB2/8 + \arg RCU_CKADC_CKAPB2_DIV12: ADC prescaler select CK_APB2/12 + \arg RCU_CKADC_CKAPB2_DIV16: ADC prescaler select CK_APB2/16 + \param[out] none + \retval none +*/ +void rcu_adc_clock_config(uint32_t adc_psc) +{ + uint32_t reg0; + + /* reset the ADCPSC bits */ + reg0 = RCU_CFG0; + reg0 &= ~(RCU_CFG0_ADCPSC_2 | RCU_CFG0_ADCPSC); + + /* set the ADC prescaler factor */ + switch(adc_psc){ + case RCU_CKADC_CKAPB2_DIV2: + case RCU_CKADC_CKAPB2_DIV4: + case RCU_CKADC_CKAPB2_DIV6: + case RCU_CKADC_CKAPB2_DIV8: + reg0 |= (adc_psc << 14); + break; + + case RCU_CKADC_CKAPB2_DIV12: + case RCU_CKADC_CKAPB2_DIV16: + adc_psc &= ~BIT(2); + reg0 |= (adc_psc << 14 | RCU_CFG0_ADCPSC_2); + break; + + default: + break; + } + + /* set the register */ + RCU_CFG0 = reg0; +} + +/*! + \brief configure the USBD/USBFS prescaler factor + \param[in] usb_psc: USB prescaler factor + only one parameter can be selected which is shown as below: + \arg RCU_CKUSB_CKPLL_DIV1_5: USBD/USBFS prescaler select CK_PLL/1.5 + \arg RCU_CKUSB_CKPLL_DIV1: USBD/USBFS prescaler select CK_PLL/1 + \arg RCU_CKUSB_CKPLL_DIV2_5: USBD/USBFS prescaler select CK_PLL/2.5 + \arg RCU_CKUSB_CKPLL_DIV2: USBD/USBFS prescaler select CK_PLL/2 + \param[out] none + \retval none +*/ +void rcu_usb_clock_config(uint32_t usb_psc) +{ + uint32_t reg; + + reg = RCU_CFG0; + + /* configure the USBD/USBFS prescaler factor */ +#if (defined(GD32F10X_MD) || defined(GD32F10X_HD) || defined(GD32F10X_XD)) + reg &= ~RCU_CFG0_USBDPSC; +#elif defined(GD32F10X_CL) + reg &= ~RCU_CFG0_USBFSPSC; +#endif /* GD32F10X_MD and GD32F10X_HD and GD32F10X_XD */ + + RCU_CFG0 = (reg | usb_psc); +} + +/*! + \brief configure the RTC clock source selection + \param[in] rtc_clock_source: RTC clock source selection + only one parameter can be selected which is shown as below: + \arg RCU_RTCSRC_NONE: no clock selected + \arg RCU_RTCSRC_LXTAL: CK_LXTAL selected as RTC source clock + \arg RCU_RTCSRC_IRC40K: CK_IRC40K selected as RTC source clock + \arg RCU_RTCSRC_HXTAL_DIV_128: CK_HXTAL/128 selected as RTC source clock + \param[out] none + \retval none +*/ +void rcu_rtc_clock_config(uint32_t rtc_clock_source) +{ + uint32_t reg; + + reg = RCU_BDCTL; + /* reset the RTCSRC bits and set according to rtc_clock_source */ + reg &= ~RCU_BDCTL_RTCSRC; + RCU_BDCTL = (reg | rtc_clock_source); +} + +#ifdef GD32F10X_CL +/*! + \brief configure the I2S1 clock source selection + \param[in] i2s_clock_source: I2S1 clock source selection + only one parameter can be selected which is shown as below: + \arg RCU_I2S1SRC_CKSYS: System clock selected as I2S1 source clock + \arg RCU_I2S1SRC_CKPLL2_MUL2: CK_PLL2x2 selected as I2S1 source clock + \param[out] none + \retval none +*/ +void rcu_i2s1_clock_config(uint32_t i2s_clock_source) +{ + uint32_t reg; + + reg = RCU_CFG1; + /* reset the I2S1SEL bit and set according to i2s_clock_source */ + reg &= ~RCU_CFG1_I2S1SEL; + RCU_CFG1 = (reg | i2s_clock_source); +} + +/*! + \brief configure the I2S2 clock source selection + \param[in] i2s_clock_source: I2S2 clock source selection + only one parameter can be selected which is shown as below: + \arg RCU_I2S2SRC_CKSYS: system clock selected as I2S2 source clock + \arg RCU_I2S2SRC_CKPLL2_MUL2: CK_PLL2x2 selected as I2S2 source clock + \param[out] none + \retval none +*/ +void rcu_i2s2_clock_config(uint32_t i2s_clock_source) +{ + uint32_t reg; + + reg = RCU_CFG1; + /* reset the I2S2SEL bit and set according to i2s_clock_source */ + reg &= ~RCU_CFG1_I2S2SEL; + RCU_CFG1 = (reg | i2s_clock_source); +} +#endif /* GD32F10X_CL */ + +/*! + \brief get the clock stabilization and periphral reset flags + \param[in] flag: the clock stabilization and periphral reset flags, refer to rcu_flag_enum + only one parameter can be selected which is shown as below: + \arg RCU_FLAG_IRC8MSTB: IRC8M stabilization flag + \arg RCU_FLAG_HXTALSTB: HXTAL stabilization flag + \arg RCU_FLAG_PLLSTB: PLL stabilization flag + \arg RCU_FLAG_PLL1STB: PLL1 stabilization flag(CL series only) + \arg RCU_FLAG_PLL2STB: PLL2 stabilization flag(CL series only) + \arg RCU_FLAG_LXTALSTB: LXTAL stabilization flag + \arg RCU_FLAG_IRC40KSTB: IRC40K stabilization flag + \arg RCU_FLAG_EPRST: external PIN reset flag + \arg RCU_FLAG_PORRST: power reset flag + \arg RCU_FLAG_SWRST: software reset flag + \arg RCU_FLAG_FWDGTRST: free watchdog timer reset flag + \arg RCU_FLAG_WWDGTRST: window watchdog timer reset flag + \arg RCU_FLAG_LPRST: low-power reset flag + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus rcu_flag_get(rcu_flag_enum flag) +{ + /* get the rcu flag */ + if(RESET != (RCU_REG_VAL(flag) & BIT(RCU_BIT_POS(flag)))){ + return SET; + }else{ + return RESET; + } +} + +/*! + \brief clear all the reset flag + \param[in] none + \param[out] none + \retval none +*/ +void rcu_all_reset_flag_clear(void) +{ + RCU_RSTSCK |= RCU_RSTSCK_RSTFC; +} + +/*! + \brief get the clock stabilization interrupt and ckm flags + \param[in] int_flag: interrupt and ckm flags, refer to rcu_int_flag_enum + only one parameter can be selected which is shown as below: + \arg RCU_INT_FLAG_IRC40KSTB: IRC40K stabilization interrupt flag + \arg RCU_INT_FLAG_LXTALSTB: LXTAL stabilization interrupt flag + \arg RCU_INT_FLAG_IRC8MSTB: IRC8M stabilization interrupt flag + \arg RCU_INT_FLAG_HXTALSTB: HXTAL stabilization interrupt flag + \arg RCU_INT_FLAG_PLLSTB: PLL stabilization interrupt flag + \arg RCU_INT_FLAG_PLL1STB: PLL1 stabilization interrupt flag(CL series only) + \arg RCU_INT_FLAG_PLL2STB: PLL2 stabilization interrupt flag(CL series only) + \arg RCU_INT_FLAG_CKM: HXTAL clock stuck interrupt flag + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus rcu_interrupt_flag_get(rcu_int_flag_enum int_flag) +{ + /* get the rcu interrupt flag */ + if(RESET != (RCU_REG_VAL(int_flag) & BIT(RCU_BIT_POS(int_flag)))){ + return SET; + }else{ + return RESET; + } +} + +/*! + \brief clear the interrupt flags + \param[in] int_flag_clear: clock stabilization and stuck interrupt flags clear, refer to rcu_int_flag_clear_enum + only one parameter can be selected which is shown as below: + \arg RCU_INT_FLAG_IRC40KSTB_CLR: IRC40K stabilization interrupt flag clear + \arg RCU_INT_FLAG_LXTALSTB_CLR: LXTAL stabilization interrupt flag clear + \arg RCU_INT_FLAG_IRC8MSTB_CLR: IRC8M stabilization interrupt flag clear + \arg RCU_INT_FLAG_HXTALSTB_CLR: HXTAL stabilization interrupt flag clear + \arg RCU_INT_FLAG_PLLSTB_CLR: PLL stabilization interrupt flag clear + \arg RCU_INT_FLAG_PLL1STB_CLR: PLL1 stabilization interrupt flag clear(CL series only) + \arg RCU_INT_FLAG_PLL2STB_CLR: PLL2 stabilization interrupt flag clear(CL series only) + \arg RCU_INT_FLAG_CKM_CLR: clock stuck interrupt flag clear + \param[out] none + \retval none +*/ +void rcu_interrupt_flag_clear(rcu_int_flag_clear_enum int_flag_clear) +{ + RCU_REG_VAL(int_flag_clear) |= BIT(RCU_BIT_POS(int_flag_clear)); +} + +/*! + \brief enable the stabilization interrupt + \param[in] stab_int: clock stabilization interrupt, refer to rcu_int_enum + Only one parameter can be selected which is shown as below: + \arg RCU_INT_IRC40KSTB: IRC40K stabilization interrupt enable + \arg RCU_INT_LXTALSTB: LXTAL stabilization interrupt enable + \arg RCU_INT_IRC8MSTB: IRC8M stabilization interrupt enable + \arg RCU_INT_HXTALSTB: HXTAL stabilization interrupt enable + \arg RCU_INT_PLLSTB: PLL stabilization interrupt enable + \arg RCU_INT_PLL1STB: PLL1 stabilization interrupt enable(CL series only) + \arg RCU_INT_PLL2STB: PLL2 stabilization interrupt enable(CL series only) + \param[out] none + \retval none +*/ +void rcu_interrupt_enable(rcu_int_enum stab_int) +{ + RCU_REG_VAL(stab_int) |= BIT(RCU_BIT_POS(stab_int)); +} + +/*! + \brief disable the stabilization interrupt + \param[in] stab_int: clock stabilization interrupt, refer to rcu_int_enum + only one parameter can be selected which is shown as below: + \arg RCU_INT_IRC40KSTB: IRC40K stabilization interrupt enable + \arg RCU_INT_LXTALSTB: LXTAL stabilization interrupt enable + \arg RCU_INT_IRC8MSTB: IRC8M stabilization interrupt enable + \arg RCU_INT_HXTALSTB: HXTAL stabilization interrupt enable + \arg RCU_INT_PLLSTB: PLL stabilization interrupt enable + \arg RCU_INT_PLL1STB: PLL1 stabilization interrupt enable(CL series only) + \arg RCU_INT_PLL2STB: PLL2 stabilization interrupt enable(CL series only) + \param[out] none + \retval none +*/ +void rcu_interrupt_disable(rcu_int_enum stab_int) +{ + RCU_REG_VAL(stab_int) &= ~BIT(RCU_BIT_POS(stab_int)); +} + +/*! + \brief wait for oscillator stabilization flags is SET or oscillator startup is timeout + \param[in] osci: oscillator types, refer to rcu_osci_type_enum + only one parameter can be selected which is shown as below: + \arg RCU_HXTAL: high speed crystal oscillator(HXTAL) + \arg RCU_LXTAL: low speed crystal oscillator(LXTAL) + \arg RCU_IRC8M: internal 8M RC oscillators(IRC8M) + \arg RCU_IRC40K: internal 40K RC oscillator(IRC40K) + \arg RCU_PLL_CK: phase locked loop(PLL) + \arg RCU_PLL1_CK: phase locked loop 1(CL series only) + \arg RCU_PLL2_CK: phase locked loop 2(CL series only) + \param[out] none + \retval ErrStatus: SUCCESS or ERROR +*/ +ErrStatus rcu_osci_stab_wait(rcu_osci_type_enum osci) +{ + uint32_t stb_cnt = 0U; + ErrStatus reval = ERROR; + FlagStatus osci_stat = RESET; + + switch(osci){ + /* wait HXTAL stable */ + case RCU_HXTAL: + while((RESET == osci_stat) && (HXTAL_STARTUP_TIMEOUT != stb_cnt)){ + osci_stat = rcu_flag_get(RCU_FLAG_HXTALSTB); + stb_cnt++; + } + + /* check whether flag is set or not */ + if(RESET != rcu_flag_get(RCU_FLAG_HXTALSTB)){ + reval = SUCCESS; + } + break; + + /* wait LXTAL stable */ + case RCU_LXTAL: + while((RESET == osci_stat) && (LXTAL_STARTUP_TIMEOUT != stb_cnt)){ + osci_stat = rcu_flag_get(RCU_FLAG_LXTALSTB); + stb_cnt++; + } + + /* check whether flag is set or not */ + if(RESET != rcu_flag_get(RCU_FLAG_LXTALSTB)){ + reval = SUCCESS; + } + break; + + /* wait IRC8M stable */ + case RCU_IRC8M: + while((RESET == osci_stat) && (IRC8M_STARTUP_TIMEOUT != stb_cnt)){ + osci_stat = rcu_flag_get(RCU_FLAG_IRC8MSTB); + stb_cnt++; + } + + /* check whether flag is set or not */ + if(RESET != rcu_flag_get(RCU_FLAG_IRC8MSTB)){ + reval = SUCCESS; + } + break; + + /* wait IRC40K stable */ + case RCU_IRC40K: + while((RESET == osci_stat) && (OSC_STARTUP_TIMEOUT != stb_cnt)){ + osci_stat = rcu_flag_get(RCU_FLAG_IRC40KSTB); + stb_cnt++; + } + + /* check whether flag is set or not */ + if(RESET != rcu_flag_get(RCU_FLAG_IRC40KSTB)){ + reval = SUCCESS; + } + break; + + /* wait PLL stable */ + case RCU_PLL_CK: + while((RESET == osci_stat) && (OSC_STARTUP_TIMEOUT != stb_cnt)){ + osci_stat = rcu_flag_get(RCU_FLAG_PLLSTB); + stb_cnt++; + } + + /* check whether flag is set or not */ + if(RESET != rcu_flag_get(RCU_FLAG_PLLSTB)){ + reval = SUCCESS; + } + break; + +#ifdef GD32F10X_CL + /* wait PLL1 stable */ + case RCU_PLL1_CK: + while((RESET == osci_stat) && (OSC_STARTUP_TIMEOUT != stb_cnt)){ + osci_stat = rcu_flag_get(RCU_FLAG_PLL1STB); + stb_cnt++; + } + + /* check whether flag is set or not */ + if(RESET != rcu_flag_get(RCU_FLAG_PLL1STB)){ + reval = SUCCESS; + } + break; + /* wait PLL2 stable */ + case RCU_PLL2_CK: + while((RESET == osci_stat) && (OSC_STARTUP_TIMEOUT != stb_cnt)){ + osci_stat = rcu_flag_get(RCU_FLAG_PLL2STB); + stb_cnt++; + } + + /* check whether flag is set or not */ + if(RESET != rcu_flag_get(RCU_FLAG_PLL2STB)){ + reval = SUCCESS; + } + break; +#endif /* GD32F10X_CL */ + + default: + break; + } + + /* return value */ + return reval; +} + +/*! + \brief turn on the oscillator + \param[in] osci: oscillator types, refer to rcu_osci_type_enum + only one parameter can be selected which is shown as below: + \arg RCU_HXTAL: high speed crystal oscillator(HXTAL) + \arg RCU_LXTAL: low speed crystal oscillator(LXTAL) + \arg RCU_IRC8M: internal 8M RC oscillators(IRC8M) + \arg RCU_IRC40K: internal 40K RC oscillator(IRC40K) + \arg RCU_PLL_CK: phase locked loop(PLL) + \arg RCU_PLL1_CK: phase locked loop 1(CL series only) + \arg RCU_PLL2_CK: phase locked loop 2(CL series only) + \param[out] none + \retval none +*/ +void rcu_osci_on(rcu_osci_type_enum osci) +{ + RCU_REG_VAL(osci) |= BIT(RCU_BIT_POS(osci)); +} + +/*! + \brief turn off the oscillator + \param[in] osci: oscillator types, refer to rcu_osci_type_enum + only one parameter can be selected which is shown as below: + \arg RCU_HXTAL: high speed crystal oscillator(HXTAL) + \arg RCU_LXTAL: low speed crystal oscillator(LXTAL) + \arg RCU_IRC8M: internal 8M RC oscillators(IRC8M) + \arg RCU_IRC40K: internal 40K RC oscillator(IRC40K) + \arg RCU_PLL_CK: phase locked loop(PLL) + \arg RCU_PLL1_CK: phase locked loop 1(CL series only) + \arg RCU_PLL2_CK: phase locked loop 2(CL series only) + \param[out] none + \retval none +*/ +void rcu_osci_off(rcu_osci_type_enum osci) +{ + RCU_REG_VAL(osci) &= ~BIT(RCU_BIT_POS(osci)); +} + +/*! + \brief enable the oscillator bypass mode, HXTALEN or LXTALEN must be reset before it + \param[in] osci: oscillator types, refer to rcu_osci_type_enum + only one parameter can be selected which is shown as below: + \arg RCU_HXTAL: high speed crystal oscillator(HXTAL) + \arg RCU_LXTAL: low speed crystal oscillator(LXTAL) + \param[out] none + \retval none +*/ +void rcu_osci_bypass_mode_enable(rcu_osci_type_enum osci) +{ + uint32_t reg; + + switch(osci){ + /* enable HXTAL to bypass mode */ + case RCU_HXTAL: + reg = RCU_CTL; + RCU_CTL &= ~RCU_CTL_HXTALEN; + RCU_CTL = (reg | RCU_CTL_HXTALBPS); + break; + /* enable LXTAL to bypass mode */ + case RCU_LXTAL: + reg = RCU_BDCTL; + RCU_BDCTL &= ~RCU_BDCTL_LXTALEN; + RCU_BDCTL = (reg | RCU_BDCTL_LXTALBPS); + break; + case RCU_IRC8M: + case RCU_IRC40K: + case RCU_PLL_CK: +#ifdef GD32F10X_CL + case RCU_PLL1_CK: + case RCU_PLL2_CK: +#endif /* GD32F10X_CL */ + break; + default: + break; + } +} + +/*! + \brief disable the oscillator bypass mode, HXTALEN or LXTALEN must be reset before it + \param[in] osci: oscillator types, refer to rcu_osci_type_enum + only one parameter can be selected which is shown as below: + \arg RCU_HXTAL: high speed crystal oscillator(HXTAL) + \arg RCU_LXTAL: low speed crystal oscillator(LXTAL) + \param[out] none + \retval none +*/ +void rcu_osci_bypass_mode_disable(rcu_osci_type_enum osci) +{ + uint32_t reg; + + switch(osci){ + /* disable HXTAL to bypass mode */ + case RCU_HXTAL: + reg = RCU_CTL; + RCU_CTL &= ~RCU_CTL_HXTALEN; + RCU_CTL = (reg & ~RCU_CTL_HXTALBPS); + break; + /* disable LXTAL to bypass mode */ + case RCU_LXTAL: + reg = RCU_BDCTL; + RCU_BDCTL &= ~RCU_BDCTL_LXTALEN; + RCU_BDCTL = (reg & ~RCU_BDCTL_LXTALBPS); + break; + case RCU_IRC8M: + case RCU_IRC40K: + case RCU_PLL_CK: +#ifdef GD32F10X_CL + case RCU_PLL1_CK: + case RCU_PLL2_CK: +#endif /* GD32F10X_CL */ + break; + default: + break; + } +} + +/*! + \brief enable the HXTAL clock monitor + \param[in] none + \param[out] none + \retval none +*/ + +void rcu_hxtal_clock_monitor_enable(void) +{ + RCU_CTL |= RCU_CTL_CKMEN; +} + +/*! + \brief disable the HXTAL clock monitor + \param[in] none + \param[out] none + \retval none +*/ +void rcu_hxtal_clock_monitor_disable(void) +{ + RCU_CTL &= ~RCU_CTL_CKMEN; +} + +/*! + \brief set the IRC8M adjust value + \param[in] irc8m_adjval: IRC8M adjust value, must be between 0 and 0x1F + \param[out] none + \retval none +*/ +void rcu_irc8m_adjust_value_set(uint8_t irc8m_adjval) +{ + uint32_t reg; + + reg = RCU_CTL; + /* reset the IRC8MADJ bits and set according to irc8m_adjval */ + reg &= ~RCU_CTL_IRC8MADJ; + RCU_CTL = (reg | ((irc8m_adjval & 0x1FU) << 3)); +} + +/*! + \brief deep-sleep mode voltage select + \param[in] dsvol: deep sleep mode voltage + only one parameter can be selected which is shown as below: + \arg RCU_DEEPSLEEP_V_1_2: the core voltage is 1.2V + \arg RCU_DEEPSLEEP_V_1_1: the core voltage is 1.1V + \arg RCU_DEEPSLEEP_V_1_0: the core voltage is 1.0V + \arg RCU_DEEPSLEEP_V_0_9: the core voltage is 0.9V + \param[out] none + \retval none +*/ +void rcu_deepsleep_voltage_set(uint32_t dsvol) +{ + dsvol &= RCU_DSV_DSLPVS; + RCU_DSV = dsvol; +} + +/*! + \brief get the system clock, bus and peripheral clock frequency + \param[in] clock: the clock frequency which to get + only one parameter can be selected which is shown as below: + \arg CK_SYS: system clock frequency + \arg CK_AHB: AHB clock frequency + \arg CK_APB1: APB1 clock frequency + \arg CK_APB2: APB2 clock frequency + \param[out] none + \retval clock frequency of system, AHB, APB1, APB2 +*/ +uint32_t rcu_clock_freq_get(rcu_clock_freq_enum clock) +{ + uint32_t sws, ck_freq = 0U; + uint32_t cksys_freq, ahb_freq, apb1_freq, apb2_freq; + uint32_t pllsel, predv0sel, pllmf,ck_src, idx, clk_exp; +#ifdef GD32F10X_CL + uint32_t predv0, predv1, pll1mf; +#endif /* GD32F10X_CL */ + + /* exponent of AHB, APB1 and APB2 clock divider */ + uint8_t ahb_exp[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}; + uint8_t apb1_exp[8] = {0, 0, 0, 0, 1, 2, 3, 4}; + uint8_t apb2_exp[8] = {0, 0, 0, 0, 1, 2, 3, 4}; + + sws = GET_BITS(RCU_CFG0, 2, 3); + switch(sws){ + /* IRC8M is selected as CK_SYS */ + case SEL_IRC8M: + cksys_freq = IRC8M_VALUE; + break; + /* HXTAL is selected as CK_SYS */ + case SEL_HXTAL: + cksys_freq = HXTAL_VALUE; + break; + /* PLL is selected as CK_SYS */ + case SEL_PLL: + /* PLL clock source selection, HXTAL or IRC8M/2 */ + pllsel = (RCU_CFG0 & RCU_CFG0_PLLSEL); + + if(RCU_PLLSRC_HXTAL == pllsel) { + /* PLL clock source is HXTAL */ + ck_src = HXTAL_VALUE; + +#if (defined(GD32F10X_MD) || defined(GD32F10X_HD) || defined(GD32F10X_XD)) + predv0sel = (RCU_CFG0 & RCU_CFG0_PREDV0); + /* PREDV0 input source clock divided by 2 */ + if(RCU_CFG0_PREDV0 == predv0sel){ + ck_src = HXTAL_VALUE/2U; + } +#elif defined(GD32F10X_CL) + predv0sel = (RCU_CFG1 & RCU_CFG1_PREDV0SEL); + /* source clock use PLL1 */ + if(RCU_PREDV0SRC_CKPLL1 == predv0sel){ + predv1 = (uint32_t)((RCU_CFG1 & RCU_CFG1_PREDV1) >> 4) + 1U; + pll1mf = (uint32_t)((RCU_CFG1 & RCU_CFG1_PLL1MF) >> 8) + 2U; + if(17U == pll1mf){ + pll1mf = 20U; + } + ck_src = (ck_src / predv1) * pll1mf; + } + predv0 = (RCU_CFG1 & RCU_CFG1_PREDV0) + 1U; + ck_src /= predv0; +#endif /* GD32F10X_HD and GD32F10X_XD */ + }else{ + /* PLL clock source is IRC8M/2 */ + ck_src = IRC8M_VALUE/2U; + } + + /* PLL multiplication factor */ + pllmf = GET_BITS(RCU_CFG0, 18, 21); + if((RCU_CFG0 & RCU_CFG0_PLLMF_4)){ + pllmf |= 0x10U; + } + if(pllmf < 15U){ + pllmf += 2U; + }else{ + pllmf += 1U; + } + + cksys_freq = ck_src * pllmf; + + #ifdef GD32F10X_CL + if(15U == pllmf){ + /* PLL source clock multiply by 6.5 */ + cksys_freq = ck_src * 6U + ck_src / 2U; + } + #endif /* GD32F10X_CL */ + + break; + /* IRC8M is selected as CK_SYS */ + default: + cksys_freq = IRC8M_VALUE; + break; + } + + /* calculate AHB clock frequency */ + idx = GET_BITS(RCU_CFG0, 4, 7); + clk_exp = ahb_exp[idx]; + ahb_freq = cksys_freq >> clk_exp; + + /* calculate APB1 clock frequency */ + idx = GET_BITS(RCU_CFG0, 8, 10); + clk_exp = apb1_exp[idx]; + apb1_freq = ahb_freq >> clk_exp; + + /* calculate APB2 clock frequency */ + idx = GET_BITS(RCU_CFG0, 11, 13); + clk_exp = apb2_exp[idx]; + apb2_freq = ahb_freq >> clk_exp; + + /* return the clocks frequency */ + switch(clock){ + case CK_SYS: + ck_freq = cksys_freq; + break; + case CK_AHB: + ck_freq = ahb_freq; + break; + case CK_APB1: + ck_freq = apb1_freq; + break; + case CK_APB2: + ck_freq = apb2_freq; + break; + default: + break; + } + return ck_freq; +} diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_rtc.c b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_rtc.c new file mode 100644 index 0000000..950656d --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_rtc.c @@ -0,0 +1,273 @@ +/*! + \file gd32f10x_rtc.c + \brief RTC driver + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#include "gd32f10x_rtc.h" + +/* RTC register high / low bits mask */ +#define RTC_HIGH_BITS_MASK ((uint32_t)0x000F0000U) /* RTC high bits mask */ +#define RTC_LOW_BITS_MASK ((uint32_t)0x0000FFFFU) /* RTC low bits mask */ + +/* RTC register high bits offset */ +#define RTC_HIGH_BITS_OFFSET ((uint32_t)16U) + +/*! + \brief enter RTC configuration mode + \param[in] none + \param[out] none + \retval none +*/ +void rtc_configuration_mode_enter(void) +{ + RTC_CTL |= RTC_CTL_CMF; +} + +/*! + \brief exit RTC configuration mode + \param[in] none + \param[out] none + \retval none +*/ +void rtc_configuration_mode_exit(void) +{ + RTC_CTL &= ~RTC_CTL_CMF; +} + +/*! + \brief set RTC counter value + \param[in] cnt: RTC counter value + \param[out] none + \retval none +*/ +void rtc_counter_set(uint32_t cnt) +{ + rtc_configuration_mode_enter(); + /* set the RTC counter high bits */ + RTC_CNTH = (cnt >> RTC_HIGH_BITS_OFFSET); + /* set the RTC counter low bits */ + RTC_CNTL = (cnt & RTC_LOW_BITS_MASK); + rtc_configuration_mode_exit(); +} + +/*! + \brief set RTC prescaler value + \param[in] psc: RTC prescaler value + \param[out] none + \retval none +*/ +void rtc_prescaler_set(uint32_t psc) +{ + rtc_configuration_mode_enter(); + /* set the RTC prescaler high bits */ + RTC_PSCH = ((psc & RTC_HIGH_BITS_MASK) >> RTC_HIGH_BITS_OFFSET); + /* set the RTC prescaler low bits */ + RTC_PSCL = (psc & RTC_LOW_BITS_MASK); + rtc_configuration_mode_exit(); +} + +/*! + \brief wait RTC last write operation finished flag set + \param[in] none + \param[out] none + \retval none +*/ +void rtc_lwoff_wait(void) +{ + /* loop until LWOFF flag is set */ + while(RESET == (RTC_CTL & RTC_CTL_LWOFF)){ + } +} + +/*! + \brief wait RTC registers synchronized flag set + \param[in] none + \param[out] none + \retval none +*/ +void rtc_register_sync_wait(void) +{ + /* clear RSYNF flag */ + RTC_CTL &= ~RTC_CTL_RSYNF; + /* loop until RSYNF flag is set */ + while(RESET == (RTC_CTL & RTC_CTL_RSYNF)){ + } +} + +/*! + \brief set RTC alarm value + \param[in] alarm: RTC alarm value + \param[out] none + \retval none +*/ +void rtc_alarm_config(uint32_t alarm) +{ + rtc_configuration_mode_enter(); + /* set the alarm high bits */ + RTC_ALRMH = (alarm >> RTC_HIGH_BITS_OFFSET); + /* set the alarm low bits */ + RTC_ALRML = (alarm & RTC_LOW_BITS_MASK); + rtc_configuration_mode_exit(); +} + +/*! + \brief get RTC counter value + \param[in] none + \param[out] none + \retval RTC counter value +*/ +uint32_t rtc_counter_get(void) +{ + uint32_t temp = 0x0U; + + temp = RTC_CNTL; + temp |= (RTC_CNTH << RTC_HIGH_BITS_OFFSET); + return temp; +} + +/*! + \brief get RTC divider value + \param[in] none + \param[out] none + \retval RTC divider value +*/ +uint32_t rtc_divider_get(void) +{ + uint32_t temp = 0x00U; + + temp = ((RTC_DIVH & RTC_DIVH_DIV) << RTC_HIGH_BITS_OFFSET); + temp |= RTC_DIVL; + return temp; +} + +/*! + \brief get RTC flag status + \param[in] flag: specify which flag status to get + only one parameter can be selected which is shown as below: + \arg RTC_FLAG_SECOND: second interrupt flag + \arg RTC_FLAG_ALARM: alarm interrupt flag + \arg RTC_FLAG_OVERFLOW: overflow interrupt flag + \arg RTC_FLAG_RSYN: registers synchronized flag + \arg RTC_FLAG_LWOF: last write operation finished flag + \param[out] none + \retval SET or RESET +*/ +FlagStatus rtc_flag_get(uint32_t flag) +{ + if(RESET != (RTC_CTL & flag)){ + return SET; + }else{ + return RESET; + } +} + +/*! + \brief clear RTC flag status + \param[in] flag: specify which flag status to clear + one or more parameters can be selected which are shown as below: + \arg RTC_FLAG_SECOND: second interrupt flag + \arg RTC_FLAG_ALARM: alarm interrupt flag + \arg RTC_FLAG_OVERFLOW: overflow interrupt flag + \arg RTC_FLAG_RSYN: registers synchronized flag + \param[out] none + \retval none +*/ +void rtc_flag_clear(uint32_t flag) +{ + /* clear RTC flag */ + RTC_CTL &= ~flag; +} + +/*! + \brief get RTC interrupt flag status + \param[in] flag: specify which flag status to get + only one parameter can be selected which is shown as below: + \arg RTC_INT_FLAG_SECOND: second interrupt flag + \arg RTC_INT_FLAG_ALARM: alarm interrupt flag + \arg RTC_INT_FLAG_OVERFLOW: overflow interrupt flag + \param[out] none + \retval SET or RESET +*/ +FlagStatus rtc_interrupt_flag_get(uint32_t flag) +{ + if(RESET != (RTC_CTL & flag)){ + return SET; + }else{ + return RESET; + } +} + +/*! + \brief clear RTC interrupt flag status + \param[in] flag: specify which flag status to clear + one or more parameters can be selected which are shown as below: + \arg RTC_INT_FLAG_SECOND: second interrupt flag + \arg RTC_INT_FLAG_ALARM: alarm interrupt flag + \arg RTC_INT_FLAG_OVERFLOW: overflow interrupt flag + \param[out] none + \retval none +*/ +void rtc_interrupt_flag_clear(uint32_t flag) +{ + /* clear RTC interrupt flag */ + RTC_CTL &= ~flag; +} + +/*! + \brief enable RTC interrupt + \param[in] interrupt: specify which interrupt to enbale + one or more parameters can be selected which are shown as below: + \arg RTC_INT_SECOND: second interrupt + \arg RTC_INT_ALARM: alarm interrupt + \arg RTC_INT_OVERFLOW: overflow interrupt + \param[out] none + \retval none +*/ +void rtc_interrupt_enable(uint32_t interrupt) +{ + RTC_INTEN |= interrupt; +} + +/*! + \brief disable RTC interrupt + \param[in] interrupt: specify which interrupt to disbale + one or more parameters can be selected which are shown as below: + \arg RTC_INT_SECOND: second interrupt + \arg RTC_INT_ALARM: alarm interrupt + \arg RTC_INT_OVERFLOW: overflow interrupt + \param[out] none + \retval none +*/ +void rtc_interrupt_disable(uint32_t interrupt) +{ + RTC_INTEN &= ~interrupt; +} diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_sdio.c b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_sdio.c new file mode 100644 index 0000000..f047c41 --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_sdio.c @@ -0,0 +1,804 @@ +/*! + \file gd32f10x_sdio.c + \brief SDIO driver + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#include "gd32f10x_sdio.h" + +#define DEFAULT_RESET_VALUE 0x00000000U + +/*! + \brief deinitialize the SDIO + \param[in] none + \param[out] none + \retval none +*/ +void sdio_deinit(void) +{ + SDIO_PWRCTL = DEFAULT_RESET_VALUE; + SDIO_CLKCTL = DEFAULT_RESET_VALUE; + SDIO_CMDAGMT = DEFAULT_RESET_VALUE; + SDIO_CMDCTL = DEFAULT_RESET_VALUE; + SDIO_DATATO = DEFAULT_RESET_VALUE; + SDIO_DATALEN = DEFAULT_RESET_VALUE; + SDIO_DATACTL = DEFAULT_RESET_VALUE; + SDIO_INTC = DEFAULT_RESET_VALUE; + SDIO_INTEN = DEFAULT_RESET_VALUE; +} + +/*! + \brief configure the SDIO clock + \param[in] clock_edge: SDIO_CLK clock edge + only one parameter can be selected which is shown as below: + \arg SDIO_SDIOCLKEDGE_RISING: select the rising edge of the SDIOCLK to generate SDIO_CLK + \arg SDIO_SDIOCLKEDGE_FALLING: select the falling edge of the SDIOCLK to generate SDIO_CLK + \param[in] clock_bypass: clock bypass + only one parameter can be selected which is shown as below: + \arg SDIO_CLOCKBYPASS_ENABLE: clock bypass + \arg SDIO_CLOCKBYPASS_DISABLE: no bypass + \param[in] clock_powersave: SDIO_CLK clock dynamic switch on/off for power saving + only one parameter can be selected which is shown as below: + \arg SDIO_CLOCKPWRSAVE_ENABLE: SDIO_CLK closed when bus is idle + \arg SDIO_CLOCKPWRSAVE_DISABLE: SDIO_CLK clock is always on + \param[in] clock_division: clock division, less than 256 + \param[out] none + \retval none +*/ +void sdio_clock_config(uint32_t clock_edge, uint32_t clock_bypass, uint32_t clock_powersave, uint16_t clock_division) +{ + uint32_t clock_config = 0U; + clock_config = SDIO_CLKCTL; + /* reset the CLKEDGE, CLKBYP, CLKPWRSAV, DIV */ + clock_config &= ~(SDIO_CLKCTL_CLKEDGE | SDIO_CLKCTL_CLKBYP | SDIO_CLKCTL_CLKPWRSAV | SDIO_CLKCTL_DIV); + + /* configure the SDIO_CLKCTL according to the parameters */ + clock_config |= (clock_edge | clock_bypass | clock_powersave | clock_division); + SDIO_CLKCTL = clock_config; +} + +/*! + \brief enable hardware clock control + \param[in] none + \param[out] none + \retval none +*/ +void sdio_hardware_clock_enable(void) +{ + SDIO_CLKCTL |= SDIO_CLKCTL_HWCLKEN; +} + +/*! + \brief disable hardware clock control + \param[in] none + \param[out] none + \retval none +*/ +void sdio_hardware_clock_disable(void) +{ + SDIO_CLKCTL &= ~SDIO_CLKCTL_HWCLKEN; +} + +/*! + \brief set different SDIO card bus mode + \param[in] bus_mode: SDIO card bus mode + only one parameter can be selected which is shown as below: + \arg SDIO_BUSMODE_1BIT: 1-bit SDIO card bus mode + \arg SDIO_BUSMODE_4BIT: 4-bit SDIO card bus mode + \arg SDIO_BUSMODE_8BIT: 8-bit SDIO card bus mode + \param[out] none + \retval none +*/ +void sdio_bus_mode_set(uint32_t bus_mode) +{ + /* reset the SDIO card bus mode bits and set according to bus_mode */ + SDIO_CLKCTL &= ~SDIO_CLKCTL_BUSMODE; + SDIO_CLKCTL |= bus_mode; +} + +/*! + \brief set the SDIO power state + \param[in] power_state: SDIO power state + only one parameter can be selected which is shown as below: + \arg SDIO_POWER_ON: SDIO power on + \arg SDIO_POWER_OFF: SDIO power off + \param[out] none + \retval none +*/ +void sdio_power_state_set(uint32_t power_state) +{ + SDIO_PWRCTL = power_state; +} + +/*! + \brief get the SDIO power state + \param[in] none + \param[out] none + \retval SDIO power state + only one parameter can be selected which is shown as below: + \arg SDIO_POWER_ON: SDIO power on + \arg SDIO_POWER_OFF: SDIO power off +*/ +uint32_t sdio_power_state_get(void) +{ + return SDIO_PWRCTL; +} + +/*! + \brief enable SDIO_CLK clock output + \param[in] none + \param[out] none + \retval none +*/ +void sdio_clock_enable(void) +{ + SDIO_CLKCTL |= SDIO_CLKCTL_CLKEN; +} + +/*! + \brief disable SDIO_CLK clock output + \param[in] none + \param[out] none + \retval none +*/ +void sdio_clock_disable(void) +{ + SDIO_CLKCTL &= ~SDIO_CLKCTL_CLKEN; +} + +/*! + \brief configure the command and response + \param[in] cmd_index: command index, refer to the related specifications + \param[in] cmd_argument: command argument, refer to the related specifications + \param[in] response_type: response type + only one parameter can be selected which is shown as below: + \arg SDIO_RESPONSETYPE_NO: no response + \arg SDIO_RESPONSETYPE_SHORT: short response + \arg SDIO_RESPONSETYPE_LONG: long response + \param[out] none + \retval none +*/ +void sdio_command_response_config(uint32_t cmd_index, uint32_t cmd_argument, uint32_t response_type) +{ + uint32_t cmd_config = 0U; + /* reset the command index, command argument and response type */ + SDIO_CMDAGMT &= ~SDIO_CMDAGMT_CMDAGMT; + SDIO_CMDAGMT = cmd_argument; + cmd_config = SDIO_CMDCTL; + cmd_config &= ~(SDIO_CMDCTL_CMDIDX | SDIO_CMDCTL_CMDRESP); + /* configure SDIO_CMDCTL and SDIO_CMDAGMT according to the parameters */ + cmd_config |= (cmd_index | response_type); + SDIO_CMDCTL = cmd_config; +} + +/*! + \brief set the command state machine wait type + \param[in] wait_type: wait type + only one parameter can be selected which is shown as below: + \arg SDIO_WAITTYPE_NO: not wait interrupt + \arg SDIO_WAITTYPE_INTERRUPT: wait interrupt + \arg SDIO_WAITTYPE_DATAEND: wait the end of data transfer + \param[out] none + \retval none +*/ +void sdio_wait_type_set(uint32_t wait_type) +{ + /* reset INTWAIT and WAITDEND */ + SDIO_CMDCTL &= ~(SDIO_CMDCTL_INTWAIT | SDIO_CMDCTL_WAITDEND); + /* set the wait type according to wait_type */ + SDIO_CMDCTL |= wait_type; +} + +/*! + \brief enable the CSM(command state machine) + \param[in] none + \param[out] none + \retval none +*/ +void sdio_csm_enable(void) +{ + SDIO_CMDCTL |= SDIO_CMDCTL_CSMEN; +} + +/*! + \brief disable the CSM(command state machine) + \param[in] none + \param[out] none + \retval none +*/ +void sdio_csm_disable(void) +{ + SDIO_CMDCTL &= ~SDIO_CMDCTL_CSMEN; +} + +/*! + \brief get the last response command index + \param[in] none + \param[out] none + \retval last response command index +*/ +uint8_t sdio_command_index_get(void) +{ + return (uint8_t)SDIO_RSPCMDIDX; +} + +/*! + \brief get the response for the last received command + \param[in] responsex: SDIO response + only one parameter can be selected which is shown as below: + \arg SDIO_RESPONSE0: card response[31:0]/card response[127:96] + \arg SDIO_RESPONSE1: card response[95:64] + \arg SDIO_RESPONSE2: card response[63:32] + \arg SDIO_RESPONSE3: card response[31:1], plus bit 0 + \param[out] none + \retval response for the last received command +*/ +uint32_t sdio_response_get(uint32_t responsex) +{ + uint32_t resp_content = 0U; + switch(responsex){ + case SDIO_RESPONSE0: + resp_content = SDIO_RESP0; + break; + case SDIO_RESPONSE1: + resp_content = SDIO_RESP1; + break; + case SDIO_RESPONSE2: + resp_content = SDIO_RESP2; + break; + case SDIO_RESPONSE3: + resp_content = SDIO_RESP3; + break; + default: + break; + } + return resp_content; +} + +/*! + \brief configure the data timeout, data length and data block size + \param[in] data_timeout: data timeout period in card bus clock periods + \param[in] data_length: number of data bytes to be transferred + \param[in] data_blocksize: size of data block for block transfer + only one parameter can be selected which is shown as below: + \arg SDIO_DATABLOCKSIZE_1BYTE: block size = 1 byte + \arg SDIO_DATABLOCKSIZE_2BYTES: block size = 2 bytes + \arg SDIO_DATABLOCKSIZE_4BYTES: block size = 4 bytes + \arg SDIO_DATABLOCKSIZE_8BYTES: block size = 8 bytes + \arg SDIO_DATABLOCKSIZE_16BYTES: block size = 16 bytes + \arg SDIO_DATABLOCKSIZE_32BYTES: block size = 32 bytes + \arg SDIO_DATABLOCKSIZE_64BYTES: block size = 64 bytes + \arg SDIO_DATABLOCKSIZE_128BYTES: block size = 128 bytes + \arg SDIO_DATABLOCKSIZE_256BYTES: block size = 256 bytes + \arg SDIO_DATABLOCKSIZE_512BYTES: block size = 512 bytes + \arg SDIO_DATABLOCKSIZE_1024BYTES: block size = 1024 bytes + \arg SDIO_DATABLOCKSIZE_2048BYTES: block size = 2048 bytes + \arg SDIO_DATABLOCKSIZE_4096BYTES: block size = 4096 bytes + \arg SDIO_DATABLOCKSIZE_8192BYTES: block size = 8192 bytes + \arg SDIO_DATABLOCKSIZE_16384BYTES: block size = 16384 bytes + \param[out] none + \retval none +*/ +void sdio_data_config(uint32_t data_timeout, uint32_t data_length, uint32_t data_blocksize) +{ + /* reset data timeout, data length and data block size */ + SDIO_DATATO &= ~SDIO_DATATO_DATATO; + SDIO_DATALEN &= ~SDIO_DATALEN_DATALEN; + SDIO_DATACTL &= ~SDIO_DATACTL_BLKSZ; + /* configure the related parameters of data */ + SDIO_DATATO = data_timeout; + SDIO_DATALEN = data_length; + SDIO_DATACTL |= data_blocksize; +} + +/*! + \brief configure the data transfer mode and direction + \param[in] transfer_mode: mode of data transfer + only one parameter can be selected which is shown as below: + \arg SDIO_TRANSMODE_BLOCK: block transfer + \arg SDIO_TRANSMODE_STREAM: stream transfer or SDIO multibyte transfer + \param[in] transfer_direction: data transfer direction, read or write + only one parameter can be selected which is shown as below: + \arg SDIO_TRANSDIRECTION_TOCARD: write data to card + \arg SDIO_TRANSDIRECTION_TOSDIO: read data from card + \param[out] none + \retval none +*/ +void sdio_data_transfer_config(uint32_t transfer_mode, uint32_t transfer_direction) +{ + uint32_t data_trans = 0U; + /* reset the data transfer mode, transfer direction and set according to the parameters */ + data_trans = SDIO_DATACTL; + data_trans &= ~(SDIO_DATACTL_TRANSMOD | SDIO_DATACTL_DATADIR); + data_trans |= (transfer_mode | transfer_direction); + SDIO_DATACTL = data_trans; +} + +/*! + \brief enable the DSM(data state machine) for data transfer + \param[in] none + \param[out] none + \retval none +*/ +void sdio_dsm_enable(void) +{ + SDIO_DATACTL |= SDIO_DATACTL_DATAEN; +} + +/*! + \brief disable the DSM(data state machine) + \param[in] none + \param[out] none + \retval none +*/ +void sdio_dsm_disable(void) +{ + SDIO_DATACTL &= ~SDIO_DATACTL_DATAEN; +} + +/*! + \brief write data(one word) to the transmit FIFO + \param[in] data: 32-bit data write to card + \param[out] none + \retval none +*/ +void sdio_data_write(uint32_t data) +{ + SDIO_FIFO = data; +} + +/*! + \brief read data(one word) from the receive FIFO + \param[in] none + \param[out] none + \retval received data +*/ +uint32_t sdio_data_read(void) +{ + return SDIO_FIFO; +} + +/*! + \brief get the number of remaining data bytes to be transferred to card + \param[in] none + \param[out] none + \retval number of remaining data bytes to be transferred +*/ +uint32_t sdio_data_counter_get(void) +{ + return SDIO_DATACNT; +} + +/*! + \brief get the number of words remaining to be written or read from FIFO + \param[in] none + \param[out] none + \retval remaining number of words +*/ +uint32_t sdio_fifo_counter_get(void) +{ + return SDIO_FIFOCNT; +} + +/*! + \brief enable the DMA request for SDIO + \param[in] none + \param[out] none + \retval none +*/ +void sdio_dma_enable(void) +{ + SDIO_DATACTL |= SDIO_DATACTL_DMAEN; +} + +/*! + \brief disable the DMA request for SDIO + \param[in] none + \param[out] none + \retval none +*/ +void sdio_dma_disable(void) +{ + SDIO_DATACTL &= ~SDIO_DATACTL_DMAEN; +} + +/*! + \brief get the flags state of SDIO + \param[in] flag: flags state of SDIO + one or more parameters can be selected which are shown as below: + \arg SDIO_FLAG_CCRCERR: command response received (CRC check failed) flag + \arg SDIO_FLAG_DTCRCERR: data block sent/received (CRC check failed) flag + \arg SDIO_FLAG_CMDTMOUT: command response timeout flag + \arg SDIO_FLAG_DTTMOUT: data timeout flag + \arg SDIO_FLAG_TXURE: transmit FIFO underrun error occurs flag + \arg SDIO_FLAG_RXORE: received FIFO overrun error occurs flag + \arg SDIO_FLAG_CMDRECV: command response received (CRC check passed) flag + \arg SDIO_FLAG_CMDSEND: command sent (no response required) flag + \arg SDIO_FLAG_DTEND: data end (data counter, SDIO_DATACNT, is zero) flag + \arg SDIO_FLAG_STBITE: start bit error in the bus flag + \arg SDIO_FLAG_DTBLKEND: data block sent/received (CRC check passed) flag + \arg SDIO_FLAG_CMDRUN: command transmission in progress flag + \arg SDIO_FLAG_TXRUN: data transmission in progress flag + \arg SDIO_FLAG_RXRUN: data reception in progress flag + \arg SDIO_FLAG_TFH: transmit FIFO is half empty flag: at least 8 words can be written into the FIFO + \arg SDIO_FLAG_RFH: receive FIFO is half full flag: at least 8 words can be read in the FIFO + \arg SDIO_FLAG_TFF: transmit FIFO is full flag + \arg SDIO_FLAG_RFF: receive FIFO is full flag + \arg SDIO_FLAG_TFE: transmit FIFO is empty flag + \arg SDIO_FLAG_RFE: receive FIFO is empty flag + \arg SDIO_FLAG_TXDTVAL: data is valid in transmit FIFO flag + \arg SDIO_FLAG_RXDTVAL: data is valid in receive FIFO flag + \arg SDIO_FLAG_SDIOINT: SD I/O interrupt received flag + \arg SDIO_FLAG_ATAEND: CE-ATA command completion signal received (only for CMD61) flag + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus sdio_flag_get(uint32_t flag) +{ + FlagStatus temp_flag = RESET; + if(RESET != (SDIO_STAT & flag)){ + temp_flag = SET; + } + return temp_flag; +} + +/*! + \brief clear the pending flags of SDIO + \param[in] flag: flags state of SDIO + one or more parameters can be selected which are shown as below: + \arg SDIO_FLAG_CCRCERR: command response received (CRC check failed) flag + \arg SDIO_FLAG_DTCRCERR: data block sent/received (CRC check failed) flag + \arg SDIO_FLAG_CMDTMOUT: command response timeout flag + \arg SDIO_FLAG_DTTMOUT: data timeout flag + \arg SDIO_FLAG_TXURE: transmit FIFO underrun error occurs flag + \arg SDIO_FLAG_RXORE: received FIFO overrun error occurs flag + \arg SDIO_FLAG_CMDRECV: command response received (CRC check passed) flag + \arg SDIO_FLAG_CMDSEND: command sent (no response required) flag + \arg SDIO_FLAG_DTEND: data end (data counter, SDIO_DATACNT, is zero) flag + \arg SDIO_FLAG_STBITE: start bit error in the bus flag + \arg SDIO_FLAG_DTBLKEND: data block sent/received (CRC check passed) flag + \arg SDIO_FLAG_SDIOINT: SD I/O interrupt received flag + \arg SDIO_FLAG_ATAEND: CE-ATA command completion signal received (only for CMD61) flag + \param[out] none + \retval none +*/ +void sdio_flag_clear(uint32_t flag) +{ + SDIO_INTC = flag; +} + +/*! + \brief enable the SDIO interrupt + \param[in] int_flag: interrupt flags state of SDIO + one or more parameters can be selected which are shown as below: + \arg SDIO_INT_CCRCERR: SDIO CCRCERR interrupt + \arg SDIO_INT_DTCRCERR: SDIO DTCRCERR interrupt + \arg SDIO_INT_CMDTMOUT: SDIO CMDTMOUT interrupt + \arg SDIO_INT_DTTMOUT: SDIO DTTMOUT interrupt + \arg SDIO_INT_TXURE: SDIO TXURE interrupt + \arg SDIO_INT_RXORE: SDIO RXORE interrupt + \arg SDIO_INT_CMDRECV: SDIO CMDRECV interrupt + \arg SDIO_INT_CMDSEND: SDIO CMDSEND interrupt + \arg SDIO_INT_DTEND: SDIO DTEND interrupt + \arg SDIO_INT_STBITE: SDIO STBITE interrupt + \arg SDIO_INT_DTBLKEND: SDIO DTBLKEND interrupt + \arg SDIO_INT_CMDRUN: SDIO CMDRUN interrupt + \arg SDIO_INT_TXRUN: SDIO TXRUN interrupt + \arg SDIO_INT_RXRUN: SDIO RXRUN interrupt + \arg SDIO_INT_TFH: SDIO TFH interrupt + \arg SDIO_INT_RFH: SDIO RFH interrupt + \arg SDIO_INT_TFF: SDIO TFF interrupt + \arg SDIO_INT_RFF: SDIO RFF interrupt + \arg SDIO_INT_TFE: SDIO TFE interrupt + \arg SDIO_INT_RFE: SDIO RFE interrupt + \arg SDIO_INT_TXDTVAL: SDIO TXDTVAL interrupt + \arg SDIO_INT_RXDTVAL: SDIO RXDTVAL interrupt + \arg SDIO_INT_SDIOINT: SDIO SDIOINT interrupt + \arg SDIO_INT_ATAEND: SDIO ATAEND interrupt + \param[out] none + \retval none +*/ +void sdio_interrupt_enable(uint32_t int_flag) +{ + SDIO_INTEN |= int_flag; +} + +/*! + \brief disable the SDIO interrupt + \param[in] int_flag: interrupt flags state of SDIO + one or more parameters can be selected which are shown as below: + \arg SDIO_INT_CCRCERR: SDIO CCRCERR interrupt + \arg SDIO_INT_DTCRCERR: SDIO DTCRCERR interrupt + \arg SDIO_INT_CMDTMOUT: SDIO CMDTMOUT interrupt + \arg SDIO_INT_DTTMOUT: SDIO DTTMOUT interrupt + \arg SDIO_INT_TXURE: SDIO TXURE interrupt + \arg SDIO_INT_RXORE: SDIO RXORE interrupt + \arg SDIO_INT_CMDRECV: SDIO CMDRECV interrupt + \arg SDIO_INT_CMDSEND: SDIO CMDSEND interrupt + \arg SDIO_INT_DTEND: SDIO DTEND interrupt + \arg SDIO_INT_STBITE: SDIO STBITE interrupt + \arg SDIO_INT_DTBLKEND: SDIO DTBLKEND interrupt + \arg SDIO_INT_CMDRUN: SDIO CMDRUN interrupt + \arg SDIO_INT_TXRUN: SDIO TXRUN interrupt + \arg SDIO_INT_RXRUN: SDIO RXRUN interrupt + \arg SDIO_INT_TFH: SDIO TFH interrupt + \arg SDIO_INT_RFH: SDIO RFH interrupt + \arg SDIO_INT_TFF: SDIO TFF interrupt + \arg SDIO_INT_RFF: SDIO RFF interrupt + \arg SDIO_INT_TFE: SDIO TFE interrupt + \arg SDIO_INT_RFE: SDIO RFE interrupt + \arg SDIO_INT_TXDTVAL: SDIO TXDTVAL interrupt + \arg SDIO_INT_RXDTVAL: SDIO RXDTVAL interrupt + \arg SDIO_INT_SDIOINT: SDIO SDIOINT interrupt + \arg SDIO_INT_ATAEND: SDIO ATAEND interrupt + \param[out] none + \retval none +*/ +void sdio_interrupt_disable(uint32_t int_flag) +{ + SDIO_INTEN &= ~int_flag; +} + +/*! + \brief get the interrupt flags state of SDIO + \param[in] int_flag: interrupt flags state of SDIO + one or more parameters can be selected which are shown as below: + \arg SDIO_INT_FLAG_CCRCERR: SDIO CCRCERR interrupt flag + \arg SDIO_INT_FLAG_DTCRCERR: SDIO DTCRCERR interrupt flag + \arg SDIO_INT_FLAG_CMDTMOUT: SDIO CMDTMOUT interrupt flag + \arg SDIO_INT_FLAG_DTTMOUT: SDIO DTTMOUT interrupt flag + \arg SDIO_INT_FLAG_TXURE: SDIO TXURE interrupt flag + \arg SDIO_INT_FLAG_RXORE: SDIO RXORE interrupt flag + \arg SDIO_INT_FLAG_CMDRECV: SDIO CMDRECV interrupt flag + \arg SDIO_INT_FLAG_CMDSEND: SDIO CMDSEND interrupt flag + \arg SDIO_INT_FLAG_DTEND: SDIO DTEND interrupt flag + \arg SDIO_INT_FLAG_STBITE: SDIO STBITE interrupt flag + \arg SDIO_INT_FLAG_DTBLKEND: SDIO DTBLKEND interrupt flag + \arg SDIO_INT_FLAG_CMDRUN: SDIO CMDRUN interrupt flag + \arg SDIO_INT_FLAG_TXRUN: SDIO TXRUN interrupt flag + \arg SDIO_INT_FLAG_RXRUN: SDIO RXRUN interrupt flag + \arg SDIO_INT_FLAG_TFH: SDIO TFH interrupt flag + \arg SDIO_INT_FLAG_RFH: SDIO RFH interrupt flag + \arg SDIO_INT_FLAG_TFF: SDIO TFF interrupt flag + \arg SDIO_INT_FLAG_RFF: SDIO RFF interrupt flag + \arg SDIO_INT_FLAG_TFE: SDIO TFE interrupt flag + \arg SDIO_INT_FLAG_RFE: SDIO RFE interrupt flag + \arg SDIO_INT_FLAG_TXDTVAL: SDIO TXDTVAL interrupt flag + \arg SDIO_INT_FLAG_RXDTVAL: SDIO RXDTVAL interrupt flag + \arg SDIO_INT_FLAG_SDIOINT: SDIO SDIOINT interrupt flag + \arg SDIO_INT_FLAG_ATAEND: SDIO ATAEND interrupt flag + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus sdio_interrupt_flag_get(uint32_t int_flag) +{ + if(RESET != (SDIO_STAT & int_flag)){ + return SET; + } + return RESET; +} + +/*! + \brief clear the interrupt pending flags of SDIO + \param[in] int_flag: interrupt flags state of SDIO + one or more parameters can be selected which are shown as below: + \arg SDIO_INT_FLAG_CCRCERR: command response received (CRC check failed) flag + \arg SDIO_INT_FLAG_DTCRCERR: data block sent/received (CRC check failed) flag + \arg SDIO_INT_FLAG_CMDTMOUT: command response timeout flag + \arg SDIO_INT_FLAG_DTTMOUT: data timeout flag + \arg SDIO_INT_FLAG_TXURE: transmit FIFO underrun error occurs flag + \arg SDIO_INT_FLAG_RXORE: received FIFO overrun error occurs flag + \arg SDIO_INT_FLAG_CMDRECV: command response received (CRC check passed) flag + \arg SDIO_INT_FLAG_CMDSEND: command sent (no response required) flag + \arg SDIO_INT_FLAG_DTEND: data end (data counter, SDIO_DATACNT, is zero) flag + \arg SDIO_INT_FLAG_STBITE: start bit error in the bus flag + \arg SDIO_INT_FLAG_DTBLKEND: data block sent/received (CRC check passed) flag + \arg SDIO_INT_FLAG_SDIOINT: SD I/O interrupt received flag + \arg SDIO_INT_FLAG_ATAEND: CE-ATA command completion signal received (only for CMD61) flag + \param[out] none + \retval none +*/ +void sdio_interrupt_flag_clear(uint32_t int_flag) +{ + SDIO_INTC = int_flag; +} + +/*! + \brief enable the read wait mode(SD I/O only) + \param[in] none + \param[out] none + \retval none +*/ +void sdio_readwait_enable(void) +{ + SDIO_DATACTL |= SDIO_DATACTL_RWEN; +} + +/*! + \brief disable the read wait mode(SD I/O only) + \param[in] none + \param[out] none + \retval none +*/ +void sdio_readwait_disable(void) +{ + SDIO_DATACTL &= ~SDIO_DATACTL_RWEN; +} + +/*! + \brief enable the function that stop the read wait process(SD I/O only) + \param[in] none + \param[out] none + \retval none +*/ +void sdio_stop_readwait_enable(void) +{ + SDIO_DATACTL |= SDIO_DATACTL_RWSTOP; +} + +/*! + \brief disable the function that stop the read wait process(SD I/O only) + \param[in] none + \param[out] none + \retval none +*/ +void sdio_stop_readwait_disable(void) +{ + SDIO_DATACTL &= ~SDIO_DATACTL_RWSTOP; +} + +/*! + \brief set the read wait type(SD I/O only) + \param[in] readwait_type: SD I/O read wait type + only one parameter can be selected which is shown as below: + \arg SDIO_READWAITTYPE_CLK: read wait control by stopping SDIO_CLK + \arg SDIO_READWAITTYPE_DAT2: read wait control using SDIO_DAT[2] + \param[out] none + \retval none +*/ +void sdio_readwait_type_set(uint32_t readwait_type) +{ + if(SDIO_READWAITTYPE_CLK == readwait_type){ + SDIO_DATACTL |= SDIO_DATACTL_RWTYPE; + }else{ + SDIO_DATACTL &= ~SDIO_DATACTL_RWTYPE; + } +} + +/*! + \brief enable the SD I/O mode specific operation(SD I/O only) + \param[in] none + \param[out] none + \retval none +*/ +void sdio_operation_enable(void) +{ + SDIO_DATACTL |= SDIO_DATACTL_IOEN; +} + +/*! + \brief disable the SD I/O mode specific operation(SD I/O only) + \param[in] none + \param[out] none + \retval none +*/ +void sdio_operation_disable(void) +{ + SDIO_DATACTL &= ~SDIO_DATACTL_IOEN; +} + +/*! + \brief enable the SD I/O suspend operation(SD I/O only) + \param[in] none + \param[out] none + \retval none +*/ +void sdio_suspend_enable(void) +{ + SDIO_CMDCTL |= SDIO_CMDCTL_SUSPEND; +} + +/*! + \brief disable the SD I/O suspend operation(SD I/O only) + \param[in] none + \param[out] none + \retval none +*/ +void sdio_suspend_disable(void) +{ + SDIO_CMDCTL &= ~SDIO_CMDCTL_SUSPEND; +} + +/*! + \brief enable the CE-ATA command(CE-ATA only) + \param[in] none + \param[out] none + \retval none +*/ +void sdio_ceata_command_enable(void) +{ + SDIO_CMDCTL |= SDIO_CMDCTL_ATAEN; +} + +/*! + \brief disable the CE-ATA command(CE-ATA only) + \param[in] none + \param[out] none + \retval none +*/ +void sdio_ceata_command_disable(void) +{ + SDIO_CMDCTL &= ~SDIO_CMDCTL_ATAEN; +} + +/*! + \brief enable the CE-ATA interrupt(CE-ATA only) + \param[in] none + \param[out] none + \retval none +*/ +void sdio_ceata_interrupt_enable(void) +{ + SDIO_CMDCTL &= ~SDIO_CMDCTL_NINTEN; +} + +/*! + \brief disable the CE-ATA interrupt(CE-ATA only) + \param[in] none + \param[out] none + \retval none +*/ +void sdio_ceata_interrupt_disable(void) +{ + SDIO_CMDCTL |= SDIO_CMDCTL_NINTEN; +} + +/*! + \brief enable the CE-ATA command completion signal(CE-ATA only) + \param[in] none + \param[out] none + \retval none +*/ +void sdio_ceata_command_completion_enable(void) +{ + SDIO_CMDCTL |= SDIO_CMDCTL_ENCMDC; +} + +/*! + \brief disable the CE-ATA command completion signal(CE-ATA only) + \param[in] none + \param[out] none + \retval none +*/ +void sdio_ceata_command_completion_disable(void) +{ + SDIO_CMDCTL &= ~SDIO_CMDCTL_ENCMDC; +} diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_spi.c b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_spi.c new file mode 100644 index 0000000..fbb63a6 --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_spi.c @@ -0,0 +1,687 @@ +/*! + \file gd32f10x_spi.c + \brief SPI driver + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#include "gd32f10x_spi.h" + +/* SPI/I2S parameter initialization mask */ +#define SPI_INIT_MASK ((uint32_t)0x00003040U) /*!< SPI parameter initialization mask */ +#define I2S_INIT_MASK ((uint32_t)0x0000F047U) /*!< I2S parameter initialization mask */ + +/* I2S clock source selection, multiplication and division mask */ +#define I2S1_CLOCK_SEL ((uint32_t)0x00020000U) /* I2S1 clock source selection */ +#define I2S2_CLOCK_SEL ((uint32_t)0x00040000U) /* I2S2 clock source selection */ +#define I2S_CLOCK_MUL_MASK ((uint32_t)0x0000F000U) /* I2S clock multiplication mask */ +#define I2S_CLOCK_DIV_MASK ((uint32_t)0x000000F0U) /* I2S clock division mask */ + +/* reset value and offset */ +#define SPI_I2SPSC_RESET ((uint32_t)0x00000002U) /*!< I2S clock prescaler register reset value */ +#define RCU_CFG1_PREDV1_OFFSET 4U /* PREDV1 offset in RCU_CFG1 */ +#define RCU_CFG1_PLL2MF_OFFSET 12U /* PLL2MF offset in RCU_CFG1 */ + +/*! + \brief reset SPI and I2S + \param[in] spi_periph: SPIx(x=0,1,2) + \param[out] none + \retval none +*/ +void spi_i2s_deinit(uint32_t spi_periph) +{ + switch(spi_periph) { + case SPI0: + /* reset SPI0 */ + rcu_periph_reset_enable(RCU_SPI0RST); + rcu_periph_reset_disable(RCU_SPI0RST); + break; + case SPI1: + /* reset SPI1 and I2S1 */ + rcu_periph_reset_enable(RCU_SPI1RST); + rcu_periph_reset_disable(RCU_SPI1RST); + break; + case SPI2: + /* reset SPI2 and I2S2 */ + rcu_periph_reset_enable(RCU_SPI2RST); + rcu_periph_reset_disable(RCU_SPI2RST); + break; + default : + break; + } +} + +/*! + \brief initialize the parameters of SPI structure with the default values + \param[in] none + \param[out] spi_parameter_struct: the initialized structure spi_parameter_struct pointer + \retval none +*/ +void spi_struct_para_init(spi_parameter_struct *spi_struct) +{ + /* configure the SPI structure with the default values */ + spi_struct->device_mode = SPI_SLAVE; + spi_struct->trans_mode = SPI_TRANSMODE_FULLDUPLEX; + spi_struct->frame_size = SPI_FRAMESIZE_8BIT; + spi_struct->nss = SPI_NSS_HARD; + spi_struct->endian = SPI_ENDIAN_MSB; + spi_struct->clock_polarity_phase = SPI_CK_PL_LOW_PH_1EDGE; + spi_struct->prescale = SPI_PSC_2; +} + +/*! + \brief initialize SPI parameters + \param[in] spi_periph: SPIx(x=0,1,2) + \param[in] spi_struct: SPI parameter initialization stuct members of the structure + and the member values are shown as below: + device_mode: SPI_MASTER, SPI_SLAVE + trans_mode: SPI_TRANSMODE_FULLDUPLEX, SPI_TRANSMODE_RECEIVEONLY, + SPI_TRANSMODE_BDRECEIVE, SPI_TRANSMODE_BDTRANSMIT + frame_size: SPI_FRAMESIZE_16BIT, SPI_FRAMESIZE_8BIT + nss: SPI_NSS_SOFT, SPI_NSS_HARD + endian: SPI_ENDIAN_MSB, SPI_ENDIAN_LSB + clock_polarity_phase: SPI_CK_PL_LOW_PH_1EDGE, SPI_CK_PL_HIGH_PH_1EDGE + SPI_CK_PL_LOW_PH_2EDGE, SPI_CK_PL_HIGH_PH_2EDGE + prescale: SPI_PSC_n (n=2,4,8,16,32,64,128,256) + \param[out] none + \retval none +*/ +void spi_init(uint32_t spi_periph, spi_parameter_struct *spi_struct) +{ + uint32_t reg = 0U; + reg = SPI_CTL0(spi_periph); + reg &= SPI_INIT_MASK; + + /* select SPI as master or slave */ + reg |= spi_struct->device_mode; + /* select SPI transfer mode */ + reg |= spi_struct->trans_mode; + /* select SPI frame size */ + reg |= spi_struct->frame_size; + /* select SPI NSS use hardware or software */ + reg |= spi_struct->nss; + /* select SPI LSB or MSB */ + reg |= spi_struct->endian; + /* select SPI polarity and phase */ + reg |= spi_struct->clock_polarity_phase; + /* select SPI prescale to adjust transmit speed */ + reg |= spi_struct->prescale; + + /* write to SPI_CTL0 register */ + SPI_CTL0(spi_periph) = (uint32_t)reg; + + /* select SPI mode */ + SPI_I2SCTL(spi_periph) &= (uint32_t)(~SPI_I2SCTL_I2SSEL); +} + +/*! + \brief enable SPI + \param[in] spi_periph: SPIx(x=0,1,2) + \param[out] none + \retval none +*/ +void spi_enable(uint32_t spi_periph) +{ + SPI_CTL0(spi_periph) |= (uint32_t)SPI_CTL0_SPIEN; +} + +/*! + \brief disable SPI + \param[in] spi_periph: SPIx(x=0,1,2) + \param[out] none + \retval none +*/ +void spi_disable(uint32_t spi_periph) +{ + SPI_CTL0(spi_periph) &= (uint32_t)(~SPI_CTL0_SPIEN); +} + +/*! + \brief initialize I2S parameter + \param[in] spi_periph: SPIx(x=1,2) + \param[in] mode: I2S operation mode + only one parameter can be selected which is shown as below: + \arg I2S_MODE_SLAVETX: I2S slave transmit mode + \arg I2S_MODE_SLAVERX: I2S slave receive mode + \arg I2S_MODE_MASTERTX: I2S master transmit mode + \arg I2S_MODE_MASTERRX: I2S master receive mode + \param[in] standard: I2S standard + only one parameter can be selected which is shown as below: + \arg I2S_STD_PHILLIPS: I2S phillips standard + \arg I2S_STD_MSB: I2S MSB standard + \arg I2S_STD_LSB: I2S LSB standard + \arg I2S_STD_PCMSHORT: I2S PCM short standard + \arg I2S_STD_PCMLONG: I2S PCM long standard + \param[in] ckpl: I2S idle state clock polarity + only one parameter can be selected which is shown as below: + \arg I2S_CKPL_LOW: I2S clock polarity low level + \arg I2S_CKPL_HIGH: I2S clock polarity high level + \param[out] none + \retval none +*/ +void i2s_init(uint32_t spi_periph, uint32_t mode, uint32_t standard, uint32_t ckpl) +{ + uint32_t reg = 0U; + reg = SPI_I2SCTL(spi_periph); + reg &= I2S_INIT_MASK; + + /* enable I2S mode */ + reg |= (uint32_t)SPI_I2SCTL_I2SSEL; + /* select I2S mode */ + reg |= (uint32_t)mode; + /* select I2S standard */ + reg |= (uint32_t)standard; + /* select I2S polarity */ + reg |= (uint32_t)ckpl; + + /* write to SPI_I2SCTL register */ + SPI_I2SCTL(spi_periph) = (uint32_t)reg; +} + +/*! + \brief configure I2S prescaler + \param[in] spi_periph: SPIx(x=1,2) + \param[in] audiosample: I2S audio sample rate + only one parameter can be selected which is shown as below: + \arg I2S_AUDIOSAMPLE_8K: audio sample rate is 8KHz + \arg I2S_AUDIOSAMPLE_11K: audio sample rate is 11KHz + \arg I2S_AUDIOSAMPLE_16K: audio sample rate is 16KHz + \arg I2S_AUDIOSAMPLE_22K: audio sample rate is 22KHz + \arg I2S_AUDIOSAMPLE_32K: audio sample rate is 32KHz + \arg I2S_AUDIOSAMPLE_44K: audio sample rate is 44KHz + \arg I2S_AUDIOSAMPLE_48K: audio sample rate is 48KHz + \arg I2S_AUDIOSAMPLE_96K: audio sample rate is 96KHz + \arg I2S_AUDIOSAMPLE_192K: audio sample rate is 192KHz + \param[in] frameformat: I2S data length and channel length + only one parameter can be selected which is shown as below: + \arg I2S_FRAMEFORMAT_DT16B_CH16B: I2S data length is 16 bit and channel length is 16 bit + \arg I2S_FRAMEFORMAT_DT16B_CH32B: I2S data length is 16 bit and channel length is 32 bit + \arg I2S_FRAMEFORMAT_DT24B_CH32B: I2S data length is 24 bit and channel length is 32 bit + \arg I2S_FRAMEFORMAT_DT32B_CH32B: I2S data length is 32 bit and channel length is 32 bit + \param[in] mckout: I2S master clock output + only one parameter can be selected which is shown as below: + \arg I2S_MCKOUT_ENABLE: enable I2S master clock output + \arg I2S_MCKOUT_DISABLE: disable 2S master clock output + \param[out] none + \retval none +*/ +void i2s_psc_config(uint32_t spi_periph, uint32_t audiosample, uint32_t frameformat, uint32_t mckout) +{ + uint32_t i2sdiv = 2U, i2sof = 0U; + uint32_t clks = 0U; + uint32_t i2sclock = 0U; + + /* deinitialize SPI_I2SPSC register */ + SPI_I2SPSC(spi_periph) = SPI_I2SPSC_RESET; + +#ifdef GD32F10X_CL + /* get the I2S clock source */ + if(SPI1 == ((uint32_t)spi_periph)) { + /* I2S1 clock source selection */ + clks = I2S1_CLOCK_SEL; + } else { + /* I2S2 clock source selection */ + clks = I2S2_CLOCK_SEL; + } + + if(0U != (RCU_CFG1 & clks)) { + /* get RCU PLL2 clock multiplication factor */ + clks = (uint32_t)((RCU_CFG1 & I2S_CLOCK_MUL_MASK) >> RCU_CFG1_PLL2MF_OFFSET); + + if((clks > 5U) && (clks < 15U)) { + /* multiplier is between 8 and 14 */ + clks += 2U; + } else { + if(15U == clks) { + /* multiplier is 20 */ + clks = 20U; + } + } + + /* get the PREDV1 value */ + i2sclock = (uint32_t)(((RCU_CFG1 & I2S_CLOCK_DIV_MASK) >> RCU_CFG1_PREDV1_OFFSET) + 1U); + /* calculate I2S clock based on PLL2 and PREDV1 */ + i2sclock = (uint32_t)((HXTAL_VALUE / i2sclock) * clks * 2U); + } else { + /* get system clock */ + i2sclock = rcu_clock_freq_get(CK_SYS); + } +#else + /* get system clock */ + i2sclock = rcu_clock_freq_get(CK_SYS); +#endif /* GD32F10X_CL */ + + /* configure the prescaler depending on the mclk output state, the frame format and audio sample rate */ + if(I2S_MCKOUT_ENABLE == mckout) { + clks = (uint32_t)(((i2sclock / 256U) * 10U) / audiosample); + } else { + if(I2S_FRAMEFORMAT_DT16B_CH16B == frameformat) { + clks = (uint32_t)(((i2sclock / 32U) * 10U) / audiosample); + } else { + clks = (uint32_t)(((i2sclock / 64U) * 10U) / audiosample); + } + } + + /* remove the floating point */ + clks = (clks + 5U) / 10U; + i2sof = (clks & 0x00000001U); + i2sdiv = ((clks - i2sof) / 2U); + i2sof = (i2sof << 8U); + + /* set the default values */ + if((i2sdiv < 2U) || (i2sdiv > 255U)) { + i2sdiv = 2U; + i2sof = 0U; + } + + /* configure SPI_I2SPSC */ + SPI_I2SPSC(spi_periph) = (uint32_t)(i2sdiv | i2sof | mckout); + + /* clear SPI_I2SCTL_DTLEN and SPI_I2SCTL_CHLEN bits */ + SPI_I2SCTL(spi_periph) &= (uint32_t)(~(SPI_I2SCTL_DTLEN | SPI_I2SCTL_CHLEN)); + /* configure data frame format */ + SPI_I2SCTL(spi_periph) |= (uint32_t)frameformat; +} + +/*! + \brief enable I2S + \param[in] spi_periph: SPIx(x=1,2) + \param[out] none + \retval none +*/ +void i2s_enable(uint32_t spi_periph) +{ + SPI_I2SCTL(spi_periph) |= (uint32_t)SPI_I2SCTL_I2SEN; +} + +/*! + \brief disable I2S + \param[in] spi_periph: SPIx(x=1,2) + \param[out] none + \retval none +*/ +void i2s_disable(uint32_t spi_periph) +{ + SPI_I2SCTL(spi_periph) &= (uint32_t)(~SPI_I2SCTL_I2SEN); +} + +/*! + \brief enable SPI NSS output + \param[in] spi_periph: SPIx(x=0,1,2) + \param[out] none + \retval none +*/ +void spi_nss_output_enable(uint32_t spi_periph) +{ + SPI_CTL1(spi_periph) |= (uint32_t)SPI_CTL1_NSSDRV; +} + +/*! + \brief disable SPI NSS output + \param[in] spi_periph: SPIx(x=0,1,2) + \param[out] none + \retval none +*/ +void spi_nss_output_disable(uint32_t spi_periph) +{ + SPI_CTL1(spi_periph) &= (uint32_t)(~SPI_CTL1_NSSDRV); +} + +/*! + \brief SPI NSS pin high level in software mode + \param[in] spi_periph: SPIx(x=0,1,2) + \param[out] none + \retval none +*/ +void spi_nss_internal_high(uint32_t spi_periph) +{ + SPI_CTL0(spi_periph) |= (uint32_t)SPI_CTL0_SWNSS; +} + +/*! + \brief SPI NSS pin low level in software mode + \param[in] spi_periph: SPIx(x=0,1,2) + \param[out] none + \retval none +*/ +void spi_nss_internal_low(uint32_t spi_periph) +{ + SPI_CTL0(spi_periph) &= (uint32_t)(~SPI_CTL0_SWNSS); +} + +/*! + \brief enable SPI DMA send or receive + \param[in] spi_periph: SPIx(x=0,1,2) + \param[in] dma: SPI DMA mode + only one parameter can be selected which is shown as below: + \arg SPI_DMA_TRANSMIT: SPI transmit data using DMA + \arg SPI_DMA_RECEIVE: SPI receive data using DMA + \param[out] none + \retval none +*/ +void spi_dma_enable(uint32_t spi_periph, uint8_t dma) +{ + if(SPI_DMA_TRANSMIT == dma) { + SPI_CTL1(spi_periph) |= (uint32_t)SPI_CTL1_DMATEN; + } else { + SPI_CTL1(spi_periph) |= (uint32_t)SPI_CTL1_DMAREN; + } +} + +/*! + \brief disable SPI DMA send or receive + \param[in] spi_periph: SPIx(x=0,1,2) + \param[in] dma: SPI DMA mode + only one parameter can be selected which is shown as below: + \arg SPI_DMA_TRANSMIT: SPI transmit data using DMA + \arg SPI_DMA_RECEIVE: SPI receive data using DMA + \param[out] none + \retval none +*/ +void spi_dma_disable(uint32_t spi_periph, uint8_t dma) +{ + if(SPI_DMA_TRANSMIT == dma) { + SPI_CTL1(spi_periph) &= (uint32_t)(~SPI_CTL1_DMATEN); + } else { + SPI_CTL1(spi_periph) &= (uint32_t)(~SPI_CTL1_DMAREN); + } +} + +/*! + \brief configure SPI data frame format + \param[in] spi_periph: SPIx(x=0,1,2) + \param[in] frame_format: SPI frame size + only one parameter can be selected which is shown as below: + \arg SPI_FRAMESIZE_16BIT: SPI frame size is 16 bits + \arg SPI_FRAMESIZE_8BIT: SPI frame size is 8 bits + \param[out] none + \retval none +*/ +void spi_i2s_data_frame_format_config(uint32_t spi_periph, uint16_t frame_format) +{ + /* clear SPI_CTL0_FF16 bit */ + SPI_CTL0(spi_periph) &= (uint32_t)(~SPI_CTL0_FF16); + /* configure SPI_CTL0_FF16 bit */ + SPI_CTL0(spi_periph) |= (uint32_t)frame_format; +} + +/*! + \brief configure SPI bidirectional transfer direction + \param[in] spi_periph: SPIx(x=0,1,2) + \param[in] transfer_direction: SPI transfer direction + only one parameter can be selected which is shown as below: + \arg SPI_BIDIRECTIONAL_TRANSMIT: SPI work in transmit-only mode + \arg SPI_BIDIRECTIONAL_RECEIVE: SPI work in receive-only mode + \param[out] none + \retval none +*/ +void spi_bidirectional_transfer_config(uint32_t spi_periph, uint32_t transfer_direction) +{ + if(SPI_BIDIRECTIONAL_TRANSMIT == transfer_direction) { + /* set the transmit only mode */ + SPI_CTL0(spi_periph) |= (uint32_t)SPI_BIDIRECTIONAL_TRANSMIT; + } else { + /* set the receive only mode */ + SPI_CTL0(spi_periph) &= SPI_BIDIRECTIONAL_RECEIVE; + } +} + +/*! + \brief SPI transmit data + \param[in] spi_periph: SPIx(x=0,1,2) + \param[in] data: 16-bit data + \param[out] none + \retval none +*/ +void spi_i2s_data_transmit(uint32_t spi_periph, uint16_t data) +{ + SPI_DATA(spi_periph) = (uint32_t)data; +} + +/*! + \brief SPI receive data + \param[in] spi_periph: SPIx(x=0,1,2) + \param[out] none + \retval 16-bit data +*/ +uint16_t spi_i2s_data_receive(uint32_t spi_periph) +{ + return ((uint16_t)SPI_DATA(spi_periph)); +} + +/*! + \brief set SPI CRC polynomial + \param[in] spi_periph: SPIx(x=0,1,2) + \param[in] crc_poly: CRC polynomial value + \param[out] none + \retval none +*/ +void spi_crc_polynomial_set(uint32_t spi_periph, uint16_t crc_poly) +{ + /* enable SPI CRC */ + SPI_CTL0(spi_periph) |= (uint32_t)SPI_CTL0_CRCEN; + /* set SPI CRC polynomial */ + SPI_CRCPOLY(spi_periph) = (uint32_t)crc_poly; +} + +/*! + \brief get SPI CRC polynomial + \param[in] spi_periph: SPIx(x=0,1,2) + \param[out] none + \retval 16-bit CRC polynomial +*/ +uint16_t spi_crc_polynomial_get(uint32_t spi_periph) +{ + return ((uint16_t)SPI_CRCPOLY(spi_periph)); +} + +/*! + \brief turn on SPI CRC function + \param[in] spi_periph: SPIx(x=0,1,2) + \param[out] none + \retval none +*/ +void spi_crc_on(uint32_t spi_periph) +{ + SPI_CTL0(spi_periph) |= (uint32_t)SPI_CTL0_CRCEN; +} + +/*! + \brief turn off SPI CRC function + \param[in] spi_periph: SPIx(x=0,1,2) + \param[out] none + \retval none +*/ +void spi_crc_off(uint32_t spi_periph) +{ + SPI_CTL0(spi_periph) &= (uint32_t)(~SPI_CTL0_CRCEN); +} + +/*! + \brief SPI next data is CRC value + \param[in] spi_periph: SPIx(x=0,1,2) + \param[out] none + \retval none +*/ +void spi_crc_next(uint32_t spi_periph) +{ + SPI_CTL0(spi_periph) |= (uint32_t)SPI_CTL0_CRCNT; +} + +/*! + \brief get SPI CRC send value or receive value + \param[in] spi_periph: SPIx(x=0,1,2) + \param[in] crc: SPI crc value + only one parameter can be selected which is shown as below: + \arg SPI_CRC_TX: get transmit crc value + \arg SPI_CRC_RX: get receive crc value + \param[out] none + \retval 16-bit CRC value +*/ +uint16_t spi_crc_get(uint32_t spi_periph, uint8_t crc) +{ + if(SPI_CRC_TX == crc) { + return ((uint16_t)(SPI_TCRC(spi_periph))); + } else { + return ((uint16_t)(SPI_RCRC(spi_periph))); + } +} + +/*! + \brief clear SPI CRC error flag status + \param[in] spi_periph: SPIx(x=0,1,2) + \param[out] none + \retval none +*/ +void spi_crc_error_clear(uint32_t spi_periph) +{ + SPI_STAT(spi_periph) = (uint32_t)(~SPI_FLAG_CRCERR); +} + +/*! + \brief get SPI and I2S flag status + \param[in] spi_periph: SPIx(x=0,1,2) + \param[in] flag: SPI/I2S flag status + one or more parameters can be selected which are shown as below: + \arg SPI_FLAG_TBE: transmit buffer empty flag + \arg SPI_FLAG_RBNE: receive buffer not empty flag + \arg SPI_FLAG_TRANS: transmit on-going flag + \arg SPI_FLAG_RXORERR: receive overrun error flag + \arg SPI_FLAG_CONFERR: mode config error flag + \arg SPI_FLAG_CRCERR: CRC error flag + \arg I2S_FLAG_RXORERR: overrun error flag + \arg I2S_FLAG_TXURERR: underrun error flag + \arg I2S_FLAG_CH: channel side flag + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus spi_i2s_flag_get(uint32_t spi_periph, uint32_t flag) +{ + if(RESET != (SPI_STAT(spi_periph) & flag)) { + return SET; + } else { + return RESET; + } +} + +/*! + \brief enable SPI and I2S interrupt + \param[in] spi_periph: SPIx(x=0,1,2) + \param[in] interrupt: SPI/I2S interrupt + only one parameter can be selected which is shown as below: + \arg SPI_I2S_INT_TBE: transmit buffer empty interrupt + \arg SPI_I2S_INT_RBNE: receive buffer not empty interrupt + \arg SPI_I2S_INT_ERR: CRC error, configuration error, reception overrun error, + transmission underrun error and format error interrupt + \param[out] none + \retval none +*/ +void spi_i2s_interrupt_enable(uint32_t spi_periph, uint8_t interrupt) +{ + SPI_CTL1(spi_periph) |= (uint32_t)interrupt; +} + +/*! + \brief disable SPI and I2S interrupt + \param[in] spi_periph: SPIx(x=0,1,2) + \param[in] interrupt: SPI/I2S interrupt + only one parameter can be selected which is shown as below: + \arg SPI_I2S_INT_TBE: transmit buffer empty interrupt + \arg SPI_I2S_INT_RBNE: receive buffer not empty interrupt + \arg SPI_I2S_INT_ERR: CRC error, configuration error, reception overrun error, + transmission underrun error and format error interrupt + \param[out] none + \retval none +*/ +void spi_i2s_interrupt_disable(uint32_t spi_periph, uint8_t interrupt) +{ + SPI_CTL1(spi_periph) &= ~(uint32_t)interrupt; +} + +/*! + \brief get SPI and I2S interrupt flag status + \param[in] spi_periph: SPIx(x=0,1,2) + \param[in] interrupt: SPI/I2S interrupt flag status + only one parameter can be selected which is shown as below: + \arg SPI_I2S_INT_FLAG_TBE: transmit buffer empty interrupt flag + \arg SPI_I2S_INT_FLAG_RBNE: receive buffer not empty interrupt flag + \arg SPI_I2S_INT_FLAG_RXORERR: overrun interrupt flag + \arg SPI_INT_FLAG_CONFERR: config error interrupt flag + \arg SPI_INT_FLAG_CRCERR: CRC error interrupt flag + \arg I2S_INT_FLAG_TXURERR: underrun error interrupt flag + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus spi_i2s_interrupt_flag_get(uint32_t spi_periph, uint8_t interrupt) +{ + uint32_t reg1 = SPI_STAT(spi_periph); + uint32_t reg2 = SPI_CTL1(spi_periph); + + switch(interrupt) { + /* SPI/I2S transmit buffer empty interrupt */ + case SPI_I2S_INT_FLAG_TBE: + reg1 = reg1 & SPI_STAT_TBE; + reg2 = reg2 & SPI_CTL1_TBEIE; + break; + /* SPI/I2S receive buffer not empty interrupt */ + case SPI_I2S_INT_FLAG_RBNE: + reg1 = reg1 & SPI_STAT_RBNE; + reg2 = reg2 & SPI_CTL1_RBNEIE; + break; + /* SPI/I2S overrun interrupt */ + case SPI_I2S_INT_FLAG_RXORERR: + reg1 = reg1 & SPI_STAT_RXORERR; + reg2 = reg2 & SPI_CTL1_ERRIE; + break; + /* SPI config error interrupt */ + case SPI_INT_FLAG_CONFERR: + reg1 = reg1 & SPI_STAT_CONFERR; + reg2 = reg2 & SPI_CTL1_ERRIE; + break; + /* SPI CRC error interrupt */ + case SPI_INT_FLAG_CRCERR: + reg1 = reg1 & SPI_STAT_CRCERR; + reg2 = reg2 & SPI_CTL1_ERRIE; + break; + /* I2S underrun error interrupt */ + case I2S_INT_FLAG_TXURERR: + reg1 = reg1 & SPI_STAT_TXURERR; + reg2 = reg2 & SPI_CTL1_ERRIE; + break; + default : + break; + } + /*get SPI/I2S interrupt flag status */ + if((0U != reg1) && (0U != reg2)) { + return SET; + } else { + return RESET; + } +} diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_timer.c b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_timer.c new file mode 100644 index 0000000..6456a6a --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_timer.c @@ -0,0 +1,1999 @@ +/*! + \file gd32f10x_timer.c + \brief TIMER driver + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#include "gd32f10x_timer.h" + +/* TIMER init parameter mask */ +#define ALIGNEDMODE_MASK ((uint32_t)0x00000060U) /*!< TIMER init parameter aligne dmode mask */ +#define COUNTERDIRECTION_MASK ((uint32_t)0x00000010U) /*!< TIMER init parameter counter direction mask */ +#define CLOCKDIVISION_MASK ((uint32_t)0x00000300U) /*!< TIMER init parameter clock division value mask */ + +/*! + \brief deinit a TIMER + \param[in] timer_periph: TIMERx(x=0..13) + \param[out] none + \retval none +*/ +void timer_deinit(uint32_t timer_periph) +{ + switch(timer_periph){ + case TIMER0: + /* reset TIMER0 */ + rcu_periph_reset_enable(RCU_TIMER0RST); + rcu_periph_reset_disable(RCU_TIMER0RST); + break; + case TIMER1: + /* reset TIMER1 */ + rcu_periph_reset_enable(RCU_TIMER1RST); + rcu_periph_reset_disable(RCU_TIMER1RST); + break; + case TIMER2: + /* reset TIMER2 */ + rcu_periph_reset_enable(RCU_TIMER2RST); + rcu_periph_reset_disable(RCU_TIMER2RST); + break; + case TIMER3: + /* reset TIMER3 */ + rcu_periph_reset_enable(RCU_TIMER3RST); + rcu_periph_reset_disable(RCU_TIMER3RST); + break; + case TIMER4: + /* reset TIMER4 */ + rcu_periph_reset_enable(RCU_TIMER4RST); + rcu_periph_reset_disable(RCU_TIMER4RST); + break; + case TIMER5: + /* reset TIMER5 */ + rcu_periph_reset_enable(RCU_TIMER5RST); + rcu_periph_reset_disable(RCU_TIMER5RST); + break; + case TIMER6: + /* reset TIMER6 */ + rcu_periph_reset_enable(RCU_TIMER6RST); + rcu_periph_reset_disable(RCU_TIMER6RST); + break; + case TIMER7: + /* reset TIMER7 */ + rcu_periph_reset_enable(RCU_TIMER7RST); + rcu_periph_reset_disable(RCU_TIMER7RST); + break; +#ifdef GD32F10X_XD + case TIMER8: + /* reset TIMER8 */ + rcu_periph_reset_enable(RCU_TIMER8RST); + rcu_periph_reset_disable(RCU_TIMER8RST); + break; + case TIMER9: + /* reset TIMER9 */ + rcu_periph_reset_enable(RCU_TIMER9RST); + rcu_periph_reset_disable(RCU_TIMER9RST); + break; + case TIMER10: + /* reset TIMER10 */ + rcu_periph_reset_enable(RCU_TIMER10RST); + rcu_periph_reset_disable(RCU_TIMER10RST); + break; + case TIMER11: + /* reset TIMER11 */ + rcu_periph_reset_enable(RCU_TIMER11RST); + rcu_periph_reset_disable(RCU_TIMER11RST); + break; + case TIMER12: + /* reset TIMER12 */ + rcu_periph_reset_enable(RCU_TIMER12RST); + rcu_periph_reset_disable(RCU_TIMER12RST); + break; + case TIMER13: + /* reset TIMER13 */ + rcu_periph_reset_enable(RCU_TIMER13RST); + rcu_periph_reset_disable(RCU_TIMER13RST); + break; +#endif /* GD32F10X_XD */ + default: + break; + } +} + +/*! + \brief initialize TIMER init parameter struct with a default value + \param[in] initpara: init parameter struct + \param[out] none + \retval none +*/ +void timer_struct_para_init(timer_parameter_struct* initpara) +{ + /* initialize the init parameter struct member with the default value */ + initpara->prescaler = 0U; + initpara->alignedmode = TIMER_COUNTER_EDGE; + initpara->counterdirection = TIMER_COUNTER_UP; + initpara->period = 65535U; + initpara->clockdivision = TIMER_CKDIV_DIV1; + initpara->repetitioncounter = 0U; +} + +/*! + \brief initialize TIMER counter + \param[in] timer_periph: TIMERx(x=0..13) + \param[in] initpara: init parameter struct + prescaler: prescaler value of the counter clock,0~65535 + alignedmode: TIMER_COUNTER_EDGE,TIMER_COUNTER_CENTER_DOWN,TIMER_COUNTER_CENTER_UP, + TIMER_COUNTER_CENTER_BOTH + counterdirection: TIMER_COUNTER_UP,TIMER_COUNTER_DOWN + period: counter auto reload value,0~65535 + clockdivision: TIMER_CKDIV_DIV1,TIMER_CKDIV_DIV2,TIMER_CKDIV_DIV4 + repetitioncounter: counter repetition value,0~255 + \param[out] none + \retval none +*/ +void timer_init(uint32_t timer_periph, timer_parameter_struct* initpara) +{ + /* configure the counter prescaler value */ + TIMER_PSC(timer_periph) = (uint16_t)initpara->prescaler; + + /* configure the counter direction and aligned mode */ + if((TIMER0 == timer_periph) || (TIMER1 == timer_periph) || (TIMER2 == timer_periph) || (TIMER3 == timer_periph) || + (TIMER4 == timer_periph) || (TIMER7 == timer_periph) || (TIMER8 == timer_periph) || (TIMER9 == timer_periph) || + (TIMER10 == timer_periph) || (TIMER11 == timer_periph) || (TIMER12 == timer_periph) || (TIMER13 == timer_periph)){ + TIMER_CTL0(timer_periph) &= (~(uint32_t)(TIMER_CTL0_DIR | TIMER_CTL0_CAM)); + TIMER_CTL0(timer_periph) |= (uint32_t)(initpara->alignedmode & ALIGNEDMODE_MASK); + TIMER_CTL0(timer_periph) |= (uint32_t)(initpara->counterdirection & COUNTERDIRECTION_MASK); + } + + /* configure the autoreload value */ + TIMER_CAR(timer_periph) = (uint32_t)initpara->period; + + if((TIMER5 != timer_periph) && (TIMER6 != timer_periph)){ + /* reset the CKDIV bit */ + TIMER_CTL0(timer_periph) &= (~(uint32_t)TIMER_CTL0_CKDIV); + TIMER_CTL0(timer_periph) |= (uint32_t)(initpara->clockdivision & CLOCKDIVISION_MASK); + } + + if((TIMER0 == timer_periph) || (TIMER7 == timer_periph)){ + /* configure the repetition counter value */ + TIMER_CREP(timer_periph) = (uint32_t)initpara->repetitioncounter; + } + + /* generate an update event */ + TIMER_SWEVG(timer_periph) |= (uint32_t)TIMER_SWEVG_UPG; +} + +/*! + \brief enable a TIMER + \param[in] timer_periph: TIMERx(x=0..13) + \param[out] none + \retval none +*/ +void timer_enable(uint32_t timer_periph) +{ + TIMER_CTL0(timer_periph) |= (uint32_t)TIMER_CTL0_CEN; +} + +/*! + \brief disable a TIMER + \param[in] timer_periph: TIMERx(x=0..13) + \param[out] none + \retval none +*/ +void timer_disable(uint32_t timer_periph) +{ + TIMER_CTL0(timer_periph) &= ~(uint32_t)TIMER_CTL0_CEN; +} + +/*! + \brief enable the auto reload shadow function + \param[in] timer_periph: TIMERx(x=0..13) + \param[out] none + \retval none +*/ +void timer_auto_reload_shadow_enable(uint32_t timer_periph) +{ + TIMER_CTL0(timer_periph) |= (uint32_t)TIMER_CTL0_ARSE; +} + +/*! + \brief disable the auto reload shadow function + \param[in] timer_periph: TIMERx(x=0..13) + \param[out] none + \retval none +*/ +void timer_auto_reload_shadow_disable(uint32_t timer_periph) +{ + TIMER_CTL0(timer_periph) &= ~(uint32_t)TIMER_CTL0_ARSE; +} + +/*! + \brief enable the update event + \param[in] timer_periph: TIMERx(x=0..13) + \param[out] none + \retval none +*/ +void timer_update_event_enable(uint32_t timer_periph) +{ + TIMER_CTL0(timer_periph) &= ~(uint32_t)TIMER_CTL0_UPDIS; +} + +/*! + \brief disable the update event + \param[in] timer_periph: TIMERx(x=0..13) + \param[out] none + \retval none +*/ +void timer_update_event_disable(uint32_t timer_periph) +{ + TIMER_CTL0(timer_periph) |= (uint32_t) TIMER_CTL0_UPDIS; +} + +/*! + \brief set TIMER counter alignment mode + \param[in] timer_periph: TIMERx(x=0..4,7..13) + \param[in] aligned: + only one parameter can be selected which is shown as below: + \arg TIMER_COUNTER_EDGE: edge-aligned mode + \arg TIMER_COUNTER_CENTER_DOWN: center-aligned and counting down assert mode + \arg TIMER_COUNTER_CENTER_UP: center-aligned and counting up assert mode + \arg TIMER_COUNTER_CENTER_BOTH: center-aligned and counting up/down assert mode + \param[out] none + \retval none +*/ +void timer_counter_alignment(uint32_t timer_periph, uint16_t aligned) +{ + TIMER_CTL0(timer_periph) &= ~(uint32_t)TIMER_CTL0_CAM; + TIMER_CTL0(timer_periph) |= (uint32_t)aligned; +} + +/*! + \brief set TIMER counter up direction + \param[in] timer_periph: TIMERx(x=0..4,7..13) + \param[out] none + \retval none +*/ +void timer_counter_up_direction(uint32_t timer_periph) +{ + TIMER_CTL0(timer_periph) &= ~(uint32_t)TIMER_CTL0_DIR; +} + +/*! + \brief set TIMER counter down direction + \param[in] timer_periph: TIMERx(x=0..4,7..13) + \param[out] none + \retval none +*/ +void timer_counter_down_direction(uint32_t timer_periph) +{ + TIMER_CTL0(timer_periph) |= (uint32_t)TIMER_CTL0_DIR; +} + +/*! + \brief configure TIMER prescaler + \param[in] timer_periph: TIMERx(x=0..13) + \param[in] prescaler: prescaler value + \param[in] pscreload: prescaler reload mode + only one parameter can be selected which is shown as below: + \arg TIMER_PSC_RELOAD_NOW: the prescaler is loaded right now + \arg TIMER_PSC_RELOAD_UPDATE: the prescaler is loaded at the next update event + \param[out] none + \retval none +*/ +void timer_prescaler_config(uint32_t timer_periph, uint16_t prescaler, uint32_t pscreload) +{ + TIMER_PSC(timer_periph) = (uint32_t)prescaler; + + if(TIMER_PSC_RELOAD_NOW == pscreload){ + TIMER_SWEVG(timer_periph) |= (uint32_t)TIMER_SWEVG_UPG; + } +} + +/*! + \brief configure TIMER repetition register value + \param[in] timer_periph: TIMERx(x=0,7) + \param[in] repetition: the counter repetition value,0~255 + \param[out] none + \retval none +*/ +void timer_repetition_value_config(uint32_t timer_periph, uint8_t repetition) +{ + TIMER_CREP(timer_periph) = (uint32_t)repetition; +} + +/*! + \brief configure TIMER autoreload register value + \param[in] timer_periph: TIMERx(x=0..13) + \param[in] autoreload: the counter auto-reload value + \param[out] none + \retval none +*/ +void timer_autoreload_value_config(uint32_t timer_periph, uint32_t autoreload) +{ + TIMER_CAR(timer_periph) = (uint32_t)autoreload; +} + +/*! + \brief configure TIMER counter register value + \param[in] timer_periph: TIMERx(x=0..13) + \param[in] counter: the counter value + \param[out] none + \retval none +*/ +void timer_counter_value_config(uint32_t timer_periph, uint32_t counter) +{ + TIMER_CNT(timer_periph) = (uint32_t)counter; +} + +/*! + \brief read TIMER counter value + \param[in] timer_periph: TIMERx(x=0..13) + \param[out] none + \retval counter value +*/ +uint32_t timer_counter_read(uint32_t timer_periph) +{ + uint32_t count_value = 0U; + count_value = TIMER_CNT(timer_periph); + return (count_value); +} + +/*! + \brief read TIMER prescaler value + \param[in] timer_periph: TIMERx(x=0..13) + \param[out] none + \retval prescaler register value +*/ +uint16_t timer_prescaler_read(uint32_t timer_periph) +{ + uint16_t prescaler_value = 0U; + prescaler_value = (uint16_t)(TIMER_PSC(timer_periph)); + return (prescaler_value); +} + +/*! + \brief configure TIMER single pulse mode + \param[in] timer_periph: TIMERx(x=0..8,11) + \param[in] spmode: + only one parameter can be selected which is shown as below: + \arg TIMER_SP_MODE_SINGLE: single pulse mode + \arg TIMER_SP_MODE_REPETITIVE: repetitive pulse mode + \param[out] none + \retval none +*/ +void timer_single_pulse_mode_config(uint32_t timer_periph, uint32_t spmode) +{ + if(TIMER_SP_MODE_SINGLE == spmode){ + TIMER_CTL0(timer_periph) |= (uint32_t)TIMER_CTL0_SPM; + }else if(TIMER_SP_MODE_REPETITIVE == spmode){ + TIMER_CTL0(timer_periph) &= ~((uint32_t)TIMER_CTL0_SPM); + }else{ + /* illegal parameters */ + } +} + +/*! + \brief configure TIMER update source + \param[in] timer_periph: TIMERx(x=0..13) + \param[in] update: + only one parameter can be selected which is shown as below: + \arg TIMER_UPDATE_SRC_GLOBAL: update generate by setting of UPG bit or the counter overflow/underflow, + or the slave mode controller trigger + \arg TIMER_UPDATE_SRC_REGULAR: update generate only by counter overflow/underflow + \param[out] none + \retval none +*/ +void timer_update_source_config(uint32_t timer_periph, uint32_t update) +{ + if(TIMER_UPDATE_SRC_REGULAR == update){ + TIMER_CTL0(timer_periph) |= (uint32_t)TIMER_CTL0_UPS; + }else if(TIMER_UPDATE_SRC_GLOBAL == update){ + TIMER_CTL0(timer_periph) &= ~(uint32_t)TIMER_CTL0_UPS; + }else{ + /* illegal parameters */ + } +} + +/*! + \brief enable the TIMER DMA + \param[in] timer_periph: please refer to the following parameters + \param[in] dma: timer DMA source enable + only one parameter can be selected which is shown as below: + \arg TIMER_DMA_UPD: update DMA enable,TIMERx(x=0..7) + \arg TIMER_DMA_CH0D: channel 0 DMA enable,TIMERx(x=0..4,7) + \arg TIMER_DMA_CH1D: channel 1 DMA enable,TIMERx(x=0..4,7) + \arg TIMER_DMA_CH2D: channel 2 DMA enable,TIMERx(x=0..4,7) + \arg TIMER_DMA_CH3D: channel 3 DMA enable,TIMERx(x=0..4,7) + \arg TIMER_DMA_CMTD: commutation DMA request enable,TIMERx(x=0,7) + \arg TIMER_DMA_TRGD: trigger DMA enable,TIMERx(x=0..4,7) + \param[out] none + \retval none +*/ +void timer_dma_enable(uint32_t timer_periph, uint16_t dma) +{ + TIMER_DMAINTEN(timer_periph) |= (uint32_t) dma; +} + +/*! + \brief disable the TIMER DMA + \param[in] timer_periph: please refer to the following parameters + \param[in] dma: timer DMA source disable + only one parameter can be selected which is shown as below: + \arg TIMER_DMA_UPD: update DMA disable,TIMERx(x=0..7) + \arg TIMER_DMA_CH0D: channel 0 DMA disable,TIMERx(x=0..4,7) + \arg TIMER_DMA_CH1D: channel 1 DMA disable,TIMERx(x=0..4,7) + \arg TIMER_DMA_CH2D: channel 2 DMA disable,TIMERx(x=0..4,7) + \arg TIMER_DMA_CH3D: channel 3 DMA disable,TIMERx(x=0..4,7) + \arg TIMER_DMA_CMTD: commutation DMA request disable,TIMERx(x=0,7) + \arg TIMER_DMA_TRGD: trigger DMA disable,TIMERx(x=0..4,7) + \param[out] none + \retval none +*/ +void timer_dma_disable(uint32_t timer_periph, uint16_t dma) +{ + TIMER_DMAINTEN(timer_periph) &= (~(uint32_t)(dma)); +} + +/*! + \brief channel DMA request source selection + \param[in] timer_periph: TIMERx(x=0..4,7) + \param[in] dma_request: channel DMA request source selection + only one parameter can be selected which is shown as below: + \arg TIMER_DMAREQUEST_CHANNELEVENT: DMA request of channel y is sent when channel y event occurs + \arg TIMER_DMAREQUEST_UPDATEEVENT: DMA request of channel y is sent when update event occurs + \param[out] none + \retval none +*/ +void timer_channel_dma_request_source_select(uint32_t timer_periph, uint32_t dma_request) +{ + if(TIMER_DMAREQUEST_UPDATEEVENT == dma_request){ + TIMER_CTL1(timer_periph) |= (uint32_t)TIMER_CTL1_DMAS; + }else if(TIMER_DMAREQUEST_CHANNELEVENT == dma_request){ + TIMER_CTL1(timer_periph) &= ~(uint32_t)TIMER_CTL1_DMAS; + }else{ + /* illegal parameters */ + } +} + +/*! + \brief configure the TIMER DMA transfer + \param[in] timer_periph: please refer to the following parameters + \param[in] dma_baseaddr: + only one parameter can be selected which is shown as below: + \arg TIMER_DMACFG_DMATA_CTL0: DMA transfer address is TIMER_CTL0,TIMERx(x=0..4,7) + \arg TIMER_DMACFG_DMATA_CTL1: DMA transfer address is TIMER_CTL1,TIMERx(x=0..4,7) + \arg TIMER_DMACFG_DMATA_SMCFG: DMA transfer address is TIMER_SMCFG,TIMERx(x=0..4,7) + \arg TIMER_DMACFG_DMATA_DMAINTEN: DMA transfer address is TIMER_DMAINTEN,TIMERx(x=0..4,7) + \arg TIMER_DMACFG_DMATA_INTF: DMA transfer address is TIMER_INTF,TIMERx(x=0..4,7) + \arg TIMER_DMACFG_DMATA_SWEVG: DMA transfer address is TIMER_SWEVG,TIMERx(x=0..4,7) + \arg TIMER_DMACFG_DMATA_CHCTL0: DMA transfer address is TIMER_CHCTL0,TIMERx(x=0..4,7) + \arg TIMER_DMACFG_DMATA_CHCTL1: DMA transfer address is TIMER_CHCTL1,TIMERx(x=0..4,7) + \arg TIMER_DMACFG_DMATA_CHCTL2: DMA transfer address is TIMER_CHCTL2,TIMERx(x=0..4,7) + \arg TIMER_DMACFG_DMATA_CNT: DMA transfer address is TIMER_CNT,TIMERx(x=0..4,7) + \arg TIMER_DMACFG_DMATA_PSC: DMA transfer address is TIMER_PSC,TIMERx(x=0..4,7) + \arg TIMER_DMACFG_DMATA_CAR: DMA transfer address is TIMER_CAR,TIMERx(x=0..4,7) + \arg TIMER_DMACFG_DMATA_CREP: DMA transfer address is TIMER_CREP,TIMERx(x=0,7) + \arg TIMER_DMACFG_DMATA_CH0CV: DMA transfer address is TIMER_CH0CV,TIMERx(x=0..4,7) + \arg TIMER_DMACFG_DMATA_CH1CV: DMA transfer address is TIMER_CH1CV,TIMERx(x=0..4,7) + \arg TIMER_DMACFG_DMATA_CH2CV: DMA transfer address is TIMER_CH2CV,TIMERx(x=0..4,7) + \arg TIMER_DMACFG_DMATA_CH3CV: DMA transfer address is TIMER_CH3CV,TIMERx(x=0..4,7) + \arg TIMER_DMACFG_DMATA_CCHP: DMA transfer address is TIMER_CCHP,TIMERx(x=0,7) + \arg TIMER_DMACFG_DMATA_DMACFG: DMA transfer address is TIMER_DMACFG,TIMERx(x=0..4,7) + \param[in] dma_lenth: + only one parameter can be selected which is shown as below: + \arg TIMER_DMACFG_DMATC_xTRANSFER(x=1..18): DMA transfer x time + \param[out] none + \retval none +*/ +void timer_dma_transfer_config(uint32_t timer_periph, uint32_t dma_baseaddr, uint32_t dma_lenth) +{ + TIMER_DMACFG(timer_periph) &= (~(uint32_t)(TIMER_DMACFG_DMATA | TIMER_DMACFG_DMATC)); + TIMER_DMACFG(timer_periph) |= (uint32_t)(dma_baseaddr | dma_lenth); +} + +/*! + \brief software generate events + \param[in] timer_periph: please refer to the following parameters + \param[in] event: the timer software event generation sources + one or more parameters can be selected which are shown as below: + \arg TIMER_EVENT_SRC_UPG: update event generation, TIMERx(x=0..13) + \arg TIMER_EVENT_SRC_CH0G: channel 0 capture or compare event generation, TIMERx(x=0..4,7..13) + \arg TIMER_EVENT_SRC_CH1G: channel 1 capture or compare event generation, TIMERx(x=0..4,7,8,11) + \arg TIMER_EVENT_SRC_CH2G: channel 2 capture or compare event generation, TIMERx(x=0..4,7) + \arg TIMER_EVENT_SRC_CH3G: channel 3 capture or compare event generation, TIMERx(x=0..4,7) + \arg TIMER_EVENT_SRC_CMTG: channel commutation event generation, TIMERx(x=0,7) + \arg TIMER_EVENT_SRC_TRGG: trigger event generation, TIMERx(x=0..4,7,8,11) + \arg TIMER_EVENT_SRC_BRKG: break event generation, TIMERx(x=0,7) + \param[out] none + \retval none +*/ +void timer_event_software_generate(uint32_t timer_periph, uint16_t event) +{ + TIMER_SWEVG(timer_periph) |= (uint32_t)event; +} + +/*! + \brief initialize TIMER break parameter struct with a default value + \param[in] breakpara: TIMER break parameter struct + \param[out] none + \retval none +*/ +void timer_break_struct_para_init(timer_break_parameter_struct* breakpara) +{ + /* initialize the break parameter struct member with the default value */ + breakpara->runoffstate = TIMER_ROS_STATE_DISABLE; + breakpara->ideloffstate = TIMER_IOS_STATE_DISABLE; + breakpara->deadtime = 0U; + breakpara->breakpolarity = TIMER_BREAK_POLARITY_LOW; + breakpara->outputautostate = TIMER_OUTAUTO_DISABLE; + breakpara->protectmode = TIMER_CCHP_PROT_OFF; + breakpara->breakstate = TIMER_BREAK_DISABLE; +} + +/*! + \brief configure TIMER break function + \param[in] timer_periph: TIMERx(x=0,7) + \param[in] breakpara: TIMER break parameter struct + runoffstate: TIMER_ROS_STATE_ENABLE,TIMER_ROS_STATE_DISABLE + ideloffstate: TIMER_IOS_STATE_ENABLE,TIMER_IOS_STATE_DISABLE + deadtime: 0~255 + breakpolarity: TIMER_BREAK_POLARITY_LOW,TIMER_BREAK_POLARITY_HIGH + outputautostate: TIMER_OUTAUTO_ENABLE,TIMER_OUTAUTO_DISABLE + protectmode: TIMER_CCHP_PROT_OFF,TIMER_CCHP_PROT_0,TIMER_CCHP_PROT_1,TIMER_CCHP_PROT_2 + breakstate: TIMER_BREAK_ENABLE,TIMER_BREAK_DISABLE + \param[out] none + \retval none +*/ +void timer_break_config(uint32_t timer_periph, timer_break_parameter_struct* breakpara) +{ + TIMER_CCHP(timer_periph) = (uint32_t)(((uint32_t)(breakpara->runoffstate)) | + ((uint32_t)(breakpara->ideloffstate)) | + ((uint32_t)(breakpara->deadtime)) | + ((uint32_t)(breakpara->breakpolarity)) | + ((uint32_t)(breakpara->outputautostate)) | + ((uint32_t)(breakpara->protectmode)) | + ((uint32_t)(breakpara->breakstate))) ; +} + +/*! + \brief enable TIMER break function + \param[in] timer_periph: TIMERx(x=0,7) + \param[out] none + \retval none +*/ +void timer_break_enable(uint32_t timer_periph) +{ + TIMER_CCHP(timer_periph) |= (uint32_t)TIMER_CCHP_BRKEN; +} + +/*! + \brief disable TIMER break function + \param[in] timer_periph: TIMERx(x=0,7) + \param[out] none + \retval none +*/ +void timer_break_disable(uint32_t timer_periph) +{ + TIMER_CCHP(timer_periph) &= ~(uint32_t)TIMER_CCHP_BRKEN; +} + +/*! + \brief enable TIMER output automatic function + \param[in] timer_periph: TIMERx(x=0,7) + \param[out] none + \retval none +*/ +void timer_automatic_output_enable(uint32_t timer_periph) +{ + TIMER_CCHP(timer_periph) |= (uint32_t)TIMER_CCHP_OAEN; +} + +/*! + \brief disable TIMER output automatic function + \param[in] timer_periph: TIMERx(x=0,7) + \param[out] none + \retval none +*/ +void timer_automatic_output_disable(uint32_t timer_periph) +{ + TIMER_CCHP(timer_periph) &= ~(uint32_t)TIMER_CCHP_OAEN; +} + +/*! + \brief enable or disable TIMER primary output function + \param[in] timer_periph: TIMERx(x=0,7) + \param[in] newvalue: ENABLE or DISABLE + \param[out] none + \retval none +*/ +void timer_primary_output_config(uint32_t timer_periph, ControlStatus newvalue) +{ + if(ENABLE == newvalue){ + TIMER_CCHP(timer_periph) |= (uint32_t)TIMER_CCHP_POEN; + }else{ + TIMER_CCHP(timer_periph) &= (~(uint32_t)TIMER_CCHP_POEN); + } +} + +/*! + \brief enable or disable channel capture/compare control shadow register + \param[in] timer_periph: TIMERx(x=0,7) + \param[in] newvalue: ENABLE or DISABLE + \param[out] none + \retval none +*/ +void timer_channel_control_shadow_config(uint32_t timer_periph, ControlStatus newvalue) +{ + if(ENABLE == newvalue){ + TIMER_CTL1(timer_periph) |= (uint32_t)TIMER_CTL1_CCSE; + }else{ + TIMER_CTL1(timer_periph) &= (~(uint32_t)TIMER_CTL1_CCSE); + } +} + +/*! + \brief configure TIMER channel control shadow register update control + \param[in] timer_periph: TIMERx(x=0,7) + \param[in] ccuctl: channel control shadow register update control + only one parameter can be selected which is shown as below: + \arg TIMER_UPDATECTL_CCU: the shadow registers update by when CMTG bit is set + \arg TIMER_UPDATECTL_CCUTRI: the shadow registers update by when CMTG bit is set or an rising edge of TRGI occurs + \param[out] none + \retval none +*/ +void timer_channel_control_shadow_update_config(uint32_t timer_periph, uint32_t ccuctl) +{ + if(TIMER_UPDATECTL_CCU == ccuctl){ + TIMER_CTL1(timer_periph) &= (~(uint32_t)TIMER_CTL1_CCUC); + }else if(TIMER_UPDATECTL_CCUTRI == ccuctl){ + TIMER_CTL1(timer_periph) |= (uint32_t)TIMER_CTL1_CCUC; + }else{ + /* illegal parameters */ + } +} + +/*! + \brief initialize TIMER channel output parameter struct with a default value + \param[in] ocpara: TIMER channel n output parameter struct + \param[out] none + \retval none +*/ +void timer_channel_output_struct_para_init(timer_oc_parameter_struct* ocpara) +{ + /* initialize the channel output parameter struct member with the default value */ + ocpara->outputstate = TIMER_CCX_DISABLE; + ocpara->outputnstate = TIMER_CCXN_DISABLE; + ocpara->ocpolarity = TIMER_OC_POLARITY_HIGH; + ocpara->ocnpolarity = TIMER_OCN_POLARITY_HIGH; + ocpara->ocidlestate = TIMER_OC_IDLE_STATE_LOW; + ocpara->ocnidlestate = TIMER_OCN_IDLE_STATE_LOW; +} + +/*! + \brief configure TIMER channel output function + \param[in] timer_periph: please refer to the following parameters + \param[in] channel: + only one parameter can be selected which is shown as below: + \arg TIMER_CH_0: TIMER channel 0(TIMERx(x=0..4,7..13)) + \arg TIMER_CH_1: TIMER channel 1(TIMERx(x=0..4,7,8,11)) + \arg TIMER_CH_2: TIMER channel 2(TIMERx(x=0..4,7)) + \arg TIMER_CH_3: TIMER channel 3(TIMERx(x=0..4,7)) + \param[in] ocpara: TIMER channeln output parameter struct + outputstate: TIMER_CCX_ENABLE,TIMER_CCX_DISABLE + outputnstate: TIMER_CCXN_ENABLE,TIMER_CCXN_DISABLE + ocpolarity: TIMER_OC_POLARITY_HIGH,TIMER_OC_POLARITY_LOW + ocnpolarity: TIMER_OCN_POLARITY_HIGH,TIMER_OCN_POLARITY_LOW + ocidlestate: TIMER_OC_IDLE_STATE_LOW,TIMER_OC_IDLE_STATE_HIGH + ocnidlestate: TIMER_OCN_IDLE_STATE_LOW,TIMER_OCN_IDLE_STATE_HIGH + \param[out] none + \retval none +*/ +void timer_channel_output_config(uint32_t timer_periph, uint16_t channel, timer_oc_parameter_struct* ocpara) +{ + switch(channel){ + /* configure TIMER_CH_0 */ + case TIMER_CH_0: + /* reset the CH0EN bit */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH0EN); + TIMER_CHCTL0(timer_periph) &= ~(uint32_t)TIMER_CHCTL0_CH0MS; + /* set the CH0EN bit */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)ocpara->outputstate; + /* reset the CH0P bit */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH0P); + /* set the CH0P bit */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)ocpara->ocpolarity; + + if((TIMER0 == timer_periph) || (TIMER7 == timer_periph)){ + /* reset the CH0NEN bit */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH0NEN); + /* set the CH0NEN bit */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)ocpara->outputnstate; + /* reset the CH0NP bit */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH0NP); + /* set the CH0NP bit */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)ocpara->ocnpolarity; + /* reset the ISO0 bit */ + TIMER_CTL1(timer_periph) &= (~(uint32_t)TIMER_CTL1_ISO0); + /* set the ISO0 bit */ + TIMER_CTL1(timer_periph) |= (uint32_t)ocpara->ocidlestate; + /* reset the ISO0N bit */ + TIMER_CTL1(timer_periph) &= (~(uint32_t)TIMER_CTL1_ISO0N); + /* set the ISO0N bit */ + TIMER_CTL1(timer_periph) |= (uint32_t)ocpara->ocnidlestate; + } + break; + /* configure TIMER_CH_1 */ + case TIMER_CH_1: + /* reset the CH1EN bit */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH1EN); + TIMER_CHCTL0(timer_periph) &= ~(uint32_t)TIMER_CHCTL0_CH1MS; + /* set the CH1EN bit */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)(ocpara->outputstate) << 4U); + /* reset the CH1P bit */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH1P); + /* set the CH1P bit */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)(ocpara->ocpolarity)<< 4U); + + if((TIMER0 == timer_periph) || (TIMER7 == timer_periph)){ + /* reset the CH1NEN bit */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH1NEN); + /* set the CH1NEN bit */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)(ocpara->outputnstate)<< 4U); + /* reset the CH1NP bit */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH1NP); + /* set the CH1NP bit */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)(ocpara->ocnpolarity)<< 4U); + /* reset the ISO1 bit */ + TIMER_CTL1(timer_periph) &= (~(uint32_t)TIMER_CTL1_ISO1); + /* set the ISO1 bit */ + TIMER_CTL1(timer_periph) |= (uint32_t)((uint32_t)(ocpara->ocidlestate)<< 2U); + /* reset the ISO1N bit */ + TIMER_CTL1(timer_periph) &= (~(uint32_t)TIMER_CTL1_ISO1N); + /* set the ISO1N bit */ + TIMER_CTL1(timer_periph) |= (uint32_t)((uint32_t)(ocpara->ocnidlestate)<< 2U); + } + break; + /* configure TIMER_CH_2 */ + case TIMER_CH_2: + /* reset the CH2EN bit */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH2EN); + TIMER_CHCTL1(timer_periph) &= ~(uint32_t)TIMER_CHCTL1_CH2MS; + /* set the CH2EN bit */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)(ocpara->outputstate) << 8U); + /* reset the CH2P bit */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH2P); + /* set the CH2P bit */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)(ocpara->ocpolarity)<< 8U); + + if((TIMER0 == timer_periph) || (TIMER7 == timer_periph)){ + /* reset the CH2NEN bit */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH2NEN); + /* set the CH2NEN bit */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)(ocpara->outputnstate)<< 8U); + /* reset the CH2NP bit */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH2NP); + /* set the CH2NP bit */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)(ocpara->ocnpolarity)<< 8U); + /* reset the ISO2 bit */ + TIMER_CTL1(timer_periph) &= (~(uint32_t)TIMER_CTL1_ISO2); + /* set the ISO2 bit */ + TIMER_CTL1(timer_periph) |= (uint32_t)((uint32_t)(ocpara->ocidlestate)<< 4U); + /* reset the ISO2N bit */ + TIMER_CTL1(timer_periph) &= (~(uint32_t)TIMER_CTL1_ISO2N); + /* set the ISO2N bit */ + TIMER_CTL1(timer_periph) |= (uint32_t)((uint32_t)(ocpara->ocnidlestate)<< 4U); + } + break; + /* configure TIMER_CH_3 */ + case TIMER_CH_3: + /* reset the CH3EN bit */ + TIMER_CHCTL2(timer_periph) &=(~(uint32_t)TIMER_CHCTL2_CH3EN); + TIMER_CHCTL1(timer_periph) &= ~(uint32_t)TIMER_CHCTL1_CH3MS; + /* set the CH3EN bit */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)(ocpara->outputstate) << 12U); + /* reset the CH3P bit */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH3P); + /* set the CH3P bit */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)(ocpara->ocpolarity)<< 12U); + + if((TIMER0 == timer_periph) || (TIMER7 == timer_periph)){ + /* reset the ISO3 bit */ + TIMER_CTL1(timer_periph) &= (~(uint32_t)TIMER_CTL1_ISO3); + /* set the ISO3 bit */ + TIMER_CTL1(timer_periph) |= (uint32_t)((uint32_t)(ocpara->ocidlestate)<< 6U); + } + break; + default: + break; + } +} + +/*! + \brief configure TIMER channel output compare mode + \param[in] timer_periph: please refer to the following parameters + \param[in] channel: + only one parameter can be selected which is shown as below: + \arg TIMER_CH_0: TIMER channel0(TIMERx(x=0..4,7..13)) + \arg TIMER_CH_1: TIMER channel1(TIMERx(x=0..4,7,8,11)) + \arg TIMER_CH_2: TIMER channel2(TIMERx(x=0..4,7)) + \arg TIMER_CH_3: TIMER channel3(TIMERx(x=0..4,7)) + \param[in] ocmode: channel output compare mode + only one parameter can be selected which is shown as below: + \arg TIMER_OC_MODE_TIMING: timing mode + \arg TIMER_OC_MODE_ACTIVE: active mode + \arg TIMER_OC_MODE_INACTIVE: inactive mode + \arg TIMER_OC_MODE_TOGGLE: toggle mode + \arg TIMER_OC_MODE_LOW: force low mode + \arg TIMER_OC_MODE_HIGH: force high mode + \arg TIMER_OC_MODE_PWM0: PWM0 mode + \arg TIMER_OC_MODE_PWM1: PWM1 mode + \param[out] none + \retval none +*/ +void timer_channel_output_mode_config(uint32_t timer_periph, uint16_t channel, uint16_t ocmode) +{ + switch(channel){ + /* configure TIMER_CH_0 */ + case TIMER_CH_0: + TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH0COMCTL); + TIMER_CHCTL0(timer_periph) |= (uint32_t)ocmode; + break; + /* configure TIMER_CH_1 */ + case TIMER_CH_1: + TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH1COMCTL); + TIMER_CHCTL0(timer_periph) |= (uint32_t)((uint32_t)(ocmode)<< 8U); + break; + /* configure TIMER_CH_2 */ + case TIMER_CH_2: + TIMER_CHCTL1(timer_periph) &= (~(uint32_t)TIMER_CHCTL1_CH2COMCTL); + TIMER_CHCTL1(timer_periph) |= (uint32_t)ocmode; + break; + /* configure TIMER_CH_3 */ + case TIMER_CH_3: + TIMER_CHCTL1(timer_periph) &= (~(uint32_t)TIMER_CHCTL1_CH3COMCTL); + TIMER_CHCTL1(timer_periph) |= (uint32_t)((uint32_t)(ocmode)<< 8U); + break; + default: + break; + } +} + +/*! + \brief configure TIMER channel output pulse value + \param[in] timer_periph: please refer to the following parameters + \param[in] channel: + only one parameter can be selected which is shown as below: + \arg TIMER_CH_0: TIMER channel0(TIMERx(x=0..4,7..13)) + \arg TIMER_CH_1: TIMER channel1(TIMERx(x=0..4,7,8,11)) + \arg TIMER_CH_2: TIMER channel2(TIMERx(x=0..4,7)) + \arg TIMER_CH_3: TIMER channel3(TIMERx(x=0..4,7)) + \param[in] pulse: channel output pulse value + \param[out] none + \retval none +*/ +void timer_channel_output_pulse_value_config(uint32_t timer_periph, uint16_t channel, uint16_t pulse) +{ + switch(channel){ + /* configure TIMER_CH_0 */ + case TIMER_CH_0: + TIMER_CH0CV(timer_periph) = (uint32_t)pulse; + break; + /* configure TIMER_CH_1 */ + case TIMER_CH_1: + TIMER_CH1CV(timer_periph) = (uint32_t)pulse; + break; + /* configure TIMER_CH_2 */ + case TIMER_CH_2: + TIMER_CH2CV(timer_periph) = (uint32_t)pulse; + break; + /* configure TIMER_CH_3 */ + case TIMER_CH_3: + TIMER_CH3CV(timer_periph) = (uint32_t)pulse; + break; + default: + break; + } +} + +/*! + \brief configure TIMER channel output shadow function + \param[in] timer_periph: please refer to the following parameters + \param[in] channel: + only one parameter can be selected which is shown as below: + \arg TIMER_CH_0: TIMER channel0(TIMERx(x=0..4,7..13)) + \arg TIMER_CH_1: TIMER channel1(TIMERx(x=0..4,7,8,11)) + \arg TIMER_CH_2: TIMER channel2(TIMERx(x=0..4,7)) + \arg TIMER_CH_3: TIMER channel3(TIMERx(x=0..4,7)) + \param[in] ocshadow: channel output shadow state + only one parameter can be selected which is shown as below: + \arg TIMER_OC_SHADOW_ENABLE: channel output shadow state enable + \arg TIMER_OC_SHADOW_DISABLE: channel output shadow state disable + \param[out] none + \retval none +*/ +void timer_channel_output_shadow_config(uint32_t timer_periph, uint16_t channel, uint16_t ocshadow) +{ + switch(channel){ + /* configure TIMER_CH_0 */ + case TIMER_CH_0: + TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH0COMSEN); + TIMER_CHCTL0(timer_periph) |= (uint32_t)ocshadow; + break; + /* configure TIMER_CH_1 */ + case TIMER_CH_1: + TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH1COMSEN); + TIMER_CHCTL0(timer_periph) |= (uint32_t)((uint32_t)(ocshadow) << 8U); + break; + /* configure TIMER_CH_2 */ + case TIMER_CH_2: + TIMER_CHCTL1(timer_periph) &= (~(uint32_t)TIMER_CHCTL1_CH2COMSEN); + TIMER_CHCTL1(timer_periph) |= (uint32_t)ocshadow; + break; + /* configure TIMER_CH_3 */ + case TIMER_CH_3: + TIMER_CHCTL1(timer_periph) &= (~(uint32_t)TIMER_CHCTL1_CH3COMSEN); + TIMER_CHCTL1(timer_periph) |= (uint32_t)((uint32_t)(ocshadow) << 8U); + break; + default: + break; + } +} + +/*! + \brief configure TIMER channel output fast function + \param[in] timer_periph: please refer to the following parameters + \param[in] channel: + only one parameter can be selected which is shown as below: + \arg TIMER_CH_0: TIMER channel0(TIMERx(x=0..4,7..13)) + \arg TIMER_CH_1: TIMER channel1(TIMERx(x=0..4,7,8,11)) + \arg TIMER_CH_2: TIMER channel2(TIMERx(x=0..4,7)) + \arg TIMER_CH_3: TIMER channel3(TIMERx(x=0..4,7)) + \param[in] ocfast: channel output fast function + only one parameter can be selected which is shown as below: + \arg TIMER_OC_FAST_ENABLE: channel output fast function enable + \arg TIMER_OC_FAST_DISABLE: channel output fast function disable + \param[out] none + \retval none +*/ +void timer_channel_output_fast_config(uint32_t timer_periph, uint16_t channel, uint16_t ocfast) +{ + switch(channel){ + /* configure TIMER_CH_0 */ + case TIMER_CH_0: + TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH0COMFEN); + TIMER_CHCTL0(timer_periph) |= (uint32_t)ocfast; + break; + /* configure TIMER_CH_1 */ + case TIMER_CH_1: + TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH1COMFEN); + TIMER_CHCTL0(timer_periph) |= (uint32_t)((uint32_t)ocfast << 8U); + break; + /* configure TIMER_CH_2 */ + case TIMER_CH_2: + TIMER_CHCTL1(timer_periph) &= (~(uint32_t)TIMER_CHCTL1_CH2COMFEN); + TIMER_CHCTL1(timer_periph) |= (uint32_t)ocfast; + break; + /* configure TIMER_CH_3 */ + case TIMER_CH_3: + TIMER_CHCTL1(timer_periph) &= (~(uint32_t)TIMER_CHCTL1_CH3COMFEN); + TIMER_CHCTL1(timer_periph) |= (uint32_t)((uint32_t)ocfast << 8U); + break; + default: + break; + } +} + +/*! + \brief configure TIMER channel output clear function + \param[in] timer_periph: TIMERx(x=0..4,7) + \param[in] channel: + only one parameter can be selected which is shown as below: + \arg TIMER_CH_0: TIMER channel0 + \arg TIMER_CH_1: TIMER channel1 + \arg TIMER_CH_2: TIMER channel2 + \arg TIMER_CH_3: TIMER channel3 + \param[in] occlear: channel output clear function + only one parameter can be selected which is shown as below: + \arg TIMER_OC_CLEAR_ENABLE: channel output clear function enable + \arg TIMER_OC_CLEAR_DISABLE: channel output clear function disable + \param[out] none + \retval none +*/ +void timer_channel_output_clear_config(uint32_t timer_periph, uint16_t channel, uint16_t occlear) +{ + switch(channel){ + /* configure TIMER_CH_0 */ + case TIMER_CH_0: + TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH0COMCEN); + TIMER_CHCTL0(timer_periph) |= (uint32_t)occlear; + break; + /* configure TIMER_CH_1 */ + case TIMER_CH_1: + TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH1COMCEN); + TIMER_CHCTL0(timer_periph) |= (uint32_t)((uint32_t)occlear << 8U); + break; + /* configure TIMER_CH_2 */ + case TIMER_CH_2: + TIMER_CHCTL1(timer_periph) &= (~(uint32_t)TIMER_CHCTL1_CH2COMCEN); + TIMER_CHCTL1(timer_periph) |= (uint32_t)occlear; + break; + /* configure TIMER_CH_3 */ + case TIMER_CH_3: + TIMER_CHCTL1(timer_periph) &= (~(uint32_t)TIMER_CHCTL1_CH3COMCEN); + TIMER_CHCTL1(timer_periph) |= (uint32_t)((uint32_t)occlear << 8U); + break; + default: + break; + } +} + +/*! + \brief configure TIMER channel output polarity + \param[in] timer_periph: please refer to the following parameters + \param[in] channel: + only one parameter can be selected which is shown as below: + \arg TIMER_CH_0: TIMER channel0(TIMERx(x=0..4,7..13)) + \arg TIMER_CH_1: TIMER channel1(TIMERx(x=0..4,7,8,11)) + \arg TIMER_CH_2: TIMER channel2(TIMERx(x=0..4,7)) + \arg TIMER_CH_3: TIMER channel3(TIMERx(x=0..4,7)) + \param[in] ocpolarity: channel output polarity + only one parameter can be selected which is shown as below: + \arg TIMER_OC_POLARITY_HIGH: channel output polarity is high + \arg TIMER_OC_POLARITY_LOW: channel output polarity is low + \param[out] none + \retval none +*/ +void timer_channel_output_polarity_config(uint32_t timer_periph, uint16_t channel, uint16_t ocpolarity) +{ + switch(channel){ + /* configure TIMER_CH_0 */ + case TIMER_CH_0: + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH0P); + TIMER_CHCTL2(timer_periph) |= (uint32_t)ocpolarity; + break; + /* configure TIMER_CH_1 */ + case TIMER_CH_1: + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH1P); + TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)ocpolarity << 4U); + break; + /* configure TIMER_CH_2 */ + case TIMER_CH_2: + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH2P); + TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)ocpolarity << 8U); + break; + /* configure TIMER_CH_3 */ + case TIMER_CH_3: + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH3P); + TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)ocpolarity << 12U); + break; + default: + break; + } +} + +/*! + \brief configure TIMER channel complementary output polarity + \param[in] timer_periph: please refer to the following parameters + \param[in] channel: + only one parameter can be selected which is shown as below: + \arg TIMER_CH_0: TIMER channel0(TIMERx(x=0..4,7..13)) + \arg TIMER_CH_1: TIMER channel1(TIMERx(x=0..4,7,8,11)) + \arg TIMER_CH_2: TIMER channel2(TIMERx(x=0..4,7)) + \param[in] ocnpolarity: channel complementary output polarity + only one parameter can be selected which is shown as below: + \arg TIMER_OCN_POLARITY_HIGH: channel complementary output polarity is high + \arg TIMER_OCN_POLARITY_LOW: channel complementary output polarity is low + \param[out] none + \retval none +*/ +void timer_channel_complementary_output_polarity_config(uint32_t timer_periph, uint16_t channel, uint16_t ocnpolarity) +{ + switch(channel){ + /* configure TIMER_CH_0 */ + case TIMER_CH_0: + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH0NP); + TIMER_CHCTL2(timer_periph) |= (uint32_t)ocnpolarity; + break; + /* configure TIMER_CH_1 */ + case TIMER_CH_1: + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH1NP); + TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)ocnpolarity << 4U); + break; + /* configure TIMER_CH_2 */ + case TIMER_CH_2: + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH2NP); + TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)ocnpolarity << 8U); + break; + default: + break; + } +} + +/*! + \brief configure TIMER channel enable state + \param[in] timer_periph: please refer to the following parameters + \param[in] channel: + only one parameter can be selected which is shown as below: + \arg TIMER_CH_0: TIMER channel0(TIMERx(x=0..4,7..13)) + \arg TIMER_CH_1: TIMER channel1(TIMERx(x=0..4,7,8,11)) + \arg TIMER_CH_2: TIMER channel2(TIMERx(x=0..4,7)) + \arg TIMER_CH_3: TIMER channel3(TIMERx(x=0..4,7)) + \param[in] state: TIMER channel enable state + only one parameter can be selected which is shown as below: + \arg TIMER_CCX_ENABLE: channel enable + \arg TIMER_CCX_DISABLE: channel disable + \param[out] none + \retval none +*/ +void timer_channel_output_state_config(uint32_t timer_periph, uint16_t channel, uint32_t state) +{ + switch(channel){ + /* configure TIMER_CH_0 */ + case TIMER_CH_0: + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH0EN); + TIMER_CHCTL2(timer_periph) |= (uint32_t)state; + break; + /* configure TIMER_CH_1 */ + case TIMER_CH_1: + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH1EN); + TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)state << 4U); + break; + /* configure TIMER_CH_2 */ + case TIMER_CH_2: + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH2EN); + TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)state << 8U); + break; + /* configure TIMER_CH_3 */ + case TIMER_CH_3: + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH3EN); + TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)state << 12U); + break; + default: + break; + } +} + +/*! + \brief configure TIMER channel complementary output enable state + \param[in] timer_periph: TIMERx(x=0,7) + \param[in] channel: + only one parameter can be selected which is shown as below: + \arg TIMER_CH_0: TIMER channel0 + \arg TIMER_CH_1: TIMER channel1 + \arg TIMER_CH_2: TIMER channel2 + \param[in] ocnstate: TIMER channel complementary output enable state + only one parameter can be selected which is shown as below: + \arg TIMER_CCXN_ENABLE: channel complementary enable + \arg TIMER_CCXN_DISABLE: channel complementary disable + \param[out] none + \retval none +*/ +void timer_channel_complementary_output_state_config(uint32_t timer_periph, uint16_t channel, uint16_t ocnstate) +{ + switch(channel){ + /* configure TIMER_CH_0 */ + case TIMER_CH_0: + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH0NEN); + TIMER_CHCTL2(timer_periph) |= (uint32_t)ocnstate; + break; + /* configure TIMER_CH_1 */ + case TIMER_CH_1: + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH1NEN); + TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)ocnstate << 4U); + break; + /* configure TIMER_CH_2 */ + case TIMER_CH_2: + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH2NEN); + TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)ocnstate << 8U); + break; + default: + break; + } +} + +/*! + \brief initialize TIMER channel input parameter struct with a default value + \param[in] icpara: TIMER channel intput parameter struct + \param[out] none + \retval none +*/ +void timer_channel_input_struct_para_init(timer_ic_parameter_struct* icpara) +{ + /* initialize the channel input parameter struct member with the default value */ + icpara->icpolarity = TIMER_IC_POLARITY_RISING; + icpara->icselection = TIMER_IC_SELECTION_DIRECTTI; + icpara->icprescaler = TIMER_IC_PSC_DIV1; + icpara->icfilter = 0U; +} + +/*! + \brief configure TIMER input capture parameter + \param[in] timer_periph: please refer to the following parameters + \param[in] channel: + only one parameter can be selected which is shown as below: + \arg TIMER_CH_0: TIMER channel 0(TIMERx(x=0..4,7..13)) + \arg TIMER_CH_1: TIMER channel 1(TIMERx(x=0..4,7,8,11)) + \arg TIMER_CH_2: TIMER channel 2(TIMERx(x=0..4,7)) + \arg TIMER_CH_3: TIMER channel 3(TIMERx(x=0..4,7)) + \param[in] icpara: TIMER channel intput parameter struct + icpolarity: TIMER_IC_POLARITY_RISING, TIMER_IC_POLARITY_FALLING + icselection: TIMER_IC_SELECTION_DIRECTTI, TIMER_IC_SELECTION_INDIRECTTI, + TIMER_IC_SELECTION_ITS + icprescaler: TIMER_IC_PSC_DIV1, TIMER_IC_PSC_DIV2, TIMER_IC_PSC_DIV4, + TIMER_IC_PSC_DIV8 + icfilter: 0~15 + \param[out] none + \retval none +*/ +void timer_input_capture_config(uint32_t timer_periph, uint16_t channel, timer_ic_parameter_struct* icpara) +{ + switch(channel){ + /* configure TIMER_CH_0 */ + case TIMER_CH_0: + /* reset the CH0EN bit */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH0EN); + + /* reset the CH0P and CH0NP bits */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)(TIMER_CHCTL2_CH0P | TIMER_CHCTL2_CH0NP)); + TIMER_CHCTL2(timer_periph) |= (uint32_t)(icpara->icpolarity); + /* reset the CH0MS bit */ + TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH0MS); + TIMER_CHCTL0(timer_periph) |= (uint32_t)(icpara->icselection); + /* reset the CH0CAPFLT bit */ + TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH0CAPFLT); + TIMER_CHCTL0(timer_periph) |= (uint32_t)((uint32_t)(icpara->icfilter) << 4U); + + /* set the CH0EN bit */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)TIMER_CHCTL2_CH0EN; + break; + + /* configure TIMER_CH_1 */ + case TIMER_CH_1: + /* reset the CH1EN bit */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH1EN); + + /* reset the CH1P and CH1NP bits */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)(TIMER_CHCTL2_CH1P | TIMER_CHCTL2_CH1NP)); + TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)(icpara->icpolarity) << 4U); + /* reset the CH1MS bit */ + TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH1MS); + TIMER_CHCTL0(timer_periph) |= (uint32_t)((uint32_t)(icpara->icselection) << 8U); + /* reset the CH1CAPFLT bit */ + TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH1CAPFLT); + TIMER_CHCTL0(timer_periph) |= (uint32_t)((uint32_t)(icpara->icfilter) << 12U); + + /* set the CH1EN bit */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)TIMER_CHCTL2_CH1EN; + break; + /* configure TIMER_CH_2 */ + case TIMER_CH_2: + /* reset the CH2EN bit */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH2EN); + + /* reset the CH2P and CH2NP bits */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)(TIMER_CHCTL2_CH2P | TIMER_CHCTL2_CH2NP)); + TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)(icpara->icpolarity) << 8U); + + /* reset the CH2MS bit */ + TIMER_CHCTL1(timer_periph) &= (~(uint32_t)TIMER_CHCTL1_CH2MS); + TIMER_CHCTL1(timer_periph) |= (uint32_t)((uint32_t)(icpara->icselection)); + + /* reset the CH2CAPFLT bit */ + TIMER_CHCTL1(timer_periph) &= (~(uint32_t)TIMER_CHCTL1_CH2CAPFLT); + TIMER_CHCTL1(timer_periph) |= (uint32_t)((uint32_t)(icpara->icfilter) << 4U); + + /* set the CH2EN bit */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)TIMER_CHCTL2_CH2EN; + break; + /* configure TIMER_CH_3 */ + case TIMER_CH_3: + /* reset the CH3EN bit */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH3EN); + + /* reset the CH3P bits */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)(TIMER_CHCTL2_CH3P)); + TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)(icpara->icpolarity) << 12U); + + /* reset the CH3MS bit */ + TIMER_CHCTL1(timer_periph) &= (~(uint32_t)TIMER_CHCTL1_CH3MS); + TIMER_CHCTL1(timer_periph) |= (uint32_t)((uint32_t)(icpara->icselection) << 8U); + + /* reset the CH3CAPFLT bit */ + TIMER_CHCTL1(timer_periph) &= (~(uint32_t)TIMER_CHCTL1_CH3CAPFLT); + TIMER_CHCTL1(timer_periph) |= (uint32_t)((uint32_t)(icpara->icfilter) << 12U); + + /* set the CH3EN bit */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)TIMER_CHCTL2_CH3EN; + break; + default: + break; + } + /* configure TIMER channel input capture prescaler value */ + timer_channel_input_capture_prescaler_config(timer_periph,channel,(uint16_t)(icpara->icprescaler)); +} + +/*! + \brief configure TIMER channel input capture prescaler value + \param[in] timer_periph: please refer to the following parameters + \param[in] channel: + only one parameter can be selected which is shown as below: + \arg TIMER_CH_0: TIMER channel0(TIMERx(x=0..4,7..13)) + \arg TIMER_CH_1: TIMER channel1(TIMERx(x=0..4,7,8,11)) + \arg TIMER_CH_2: TIMER channel2(TIMERx(x=0..4,7)) + \arg TIMER_CH_3: TIMER channel3(TIMERx(x=0..4,7)) + \param[in] prescaler: channel input capture prescaler value + only one parameter can be selected which is shown as below: + \arg TIMER_IC_PSC_DIV1: no prescaler + \arg TIMER_IC_PSC_DIV2: divided by 2 + \arg TIMER_IC_PSC_DIV4: divided by 4 + \arg TIMER_IC_PSC_DIV8: divided by 8 + \param[out] none + \retval none +*/ +void timer_channel_input_capture_prescaler_config(uint32_t timer_periph, uint16_t channel, uint16_t prescaler) +{ + switch(channel){ + /* configure TIMER_CH_0 */ + case TIMER_CH_0: + TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH0CAPPSC); + TIMER_CHCTL0(timer_periph) |= (uint32_t)prescaler; + break; + /* configure TIMER_CH_1 */ + case TIMER_CH_1: + TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH1CAPPSC); + TIMER_CHCTL0(timer_periph) |= ((uint32_t)prescaler << 8U); + break; + /* configure TIMER_CH_2 */ + case TIMER_CH_2: + TIMER_CHCTL1(timer_periph) &= (~(uint32_t)TIMER_CHCTL1_CH2CAPPSC); + TIMER_CHCTL1(timer_periph) |= (uint32_t)prescaler; + break; + /* configure TIMER_CH_3 */ + case TIMER_CH_3: + TIMER_CHCTL1(timer_periph) &= (~(uint32_t)TIMER_CHCTL1_CH3CAPPSC); + TIMER_CHCTL1(timer_periph) |= ((uint32_t)prescaler << 8U); + break; + default: + break; + } +} + +/*! + \brief read TIMER channel capture compare register value + \param[in] timer_periph: please refer to the following parameters + \param[in] channel: + only one parameter can be selected which is shown as below: + \arg TIMER_CH_0: TIMER channel0(TIMERx(x=0..4,7..13)) + \arg TIMER_CH_1: TIMER channel1(TIMERx(x=0..4,7,8,11)) + \arg TIMER_CH_2: TIMER channel2(TIMERx(x=0..4,7)) + \arg TIMER_CH_3: TIMER channel3(TIMERx(x=0..4,7)) + \param[out] none + \retval channel capture compare register value +*/ +uint32_t timer_channel_capture_value_register_read(uint32_t timer_periph, uint16_t channel) +{ + uint32_t count_value = 0U; + + switch(channel){ + case TIMER_CH_0: + /* read TIMER channel 0 capture compare register value */ + count_value = TIMER_CH0CV(timer_periph); + break; + case TIMER_CH_1: + /* read TIMER channel 1 capture compare register value */ + count_value = TIMER_CH1CV(timer_periph); + break; + case TIMER_CH_2: + /* read TIMER channel 2 capture compare register value */ + count_value = TIMER_CH2CV(timer_periph); + break; + case TIMER_CH_3: + /* read TIMER channel 3 capture compare register value */ + count_value = TIMER_CH3CV(timer_periph); + break; + default: + break; + } + return (count_value); +} + +/*! + \brief configure TIMER input pwm capture function + \param[in] timer_periph: TIMERx(x=0..4,7,8,11) + \param[in] channel: + only one parameter can be selected which is shown as below: + \arg TIMER_CH_0: TIMER channel0 + \arg TIMER_CH_1: TIMER channel1 + \param[in] icpwm:TIMER channel intput pwm parameter struct + icpolarity: TIMER_IC_POLARITY_RISING,TIMER_IC_POLARITY_FALLING + icselection: TIMER_IC_SELECTION_DIRECTTI,TIMER_IC_SELECTION_INDIRECTTI + icprescaler: TIMER_IC_PSC_DIV1,TIMER_IC_PSC_DIV2,TIMER_IC_PSC_DIV4,TIMER_IC_PSC_DIV8 + icfilter: 0~15 + \param[out] none + \retval none +*/ +void timer_input_pwm_capture_config(uint32_t timer_periph, uint16_t channel, timer_ic_parameter_struct* icpwm) +{ + uint16_t icpolarity = 0x0U; + uint16_t icselection = 0x0U; + + /* Set channel input polarity */ + if(TIMER_IC_POLARITY_RISING == icpwm->icpolarity){ + icpolarity = TIMER_IC_POLARITY_FALLING; + }else{ + icpolarity = TIMER_IC_POLARITY_RISING; + } + /* Set channel input mode selection */ + if(TIMER_IC_SELECTION_DIRECTTI == icpwm->icselection){ + icselection = TIMER_IC_SELECTION_INDIRECTTI; + }else{ + icselection = TIMER_IC_SELECTION_DIRECTTI; + } + + if(TIMER_CH_0 == channel){ + /* reset the CH0EN bit */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH0EN); + /* reset the CH0P and CH0NP bits */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)(TIMER_CHCTL2_CH0P | TIMER_CHCTL2_CH0NP)); + /* set the CH0P and CH0NP bits */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)(icpwm->icpolarity); + /* reset the CH0MS bit */ + TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH0MS); + /* set the CH0MS bit */ + TIMER_CHCTL0(timer_periph) |= (uint32_t)(icpwm->icselection); + /* reset the CH0CAPFLT bit */ + TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH0CAPFLT); + /* set the CH0CAPFLT bit */ + TIMER_CHCTL0(timer_periph) |= ((uint32_t)(icpwm->icfilter) << 4U); + /* set the CH0EN bit */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)TIMER_CHCTL2_CH0EN; + /* configure TIMER channel input capture prescaler value */ + timer_channel_input_capture_prescaler_config(timer_periph,TIMER_CH_0,(uint16_t)(icpwm->icprescaler)); + + /* reset the CH1EN bit */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH1EN); + /* reset the CH1P and CH1NP bits */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)(TIMER_CHCTL2_CH1P|TIMER_CHCTL2_CH1NP)); + /* set the CH1P and CH1NP bits */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)icpolarity<< 4U); + /* reset the CH1MS bit */ + TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH1MS); + /* set the CH1MS bit */ + TIMER_CHCTL0(timer_periph) |= (uint32_t)((uint32_t)icselection<< 8U); + /* reset the CH1CAPFLT bit */ + TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH1CAPFLT); + /* set the CH1CAPFLT bit */ + TIMER_CHCTL0(timer_periph) |= (uint32_t)((uint32_t)(icpwm->icfilter)<< 12U); + /* set the CH1EN bit */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)TIMER_CHCTL2_CH1EN; + /* configure TIMER channel input capture prescaler value */ + timer_channel_input_capture_prescaler_config(timer_periph,TIMER_CH_1,(uint16_t)(icpwm->icprescaler)); + }else{ + /* reset the CH1EN bit */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH1EN); + /* reset the CH1P and CH1NP bits */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)(TIMER_CHCTL2_CH1P|TIMER_CHCTL2_CH1NP)); + /* set the CH1P and CH1NP bits */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)(icpwm->icpolarity)<< 4U); + /* reset the CH1MS bit */ + TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH1MS); + /* set the CH1MS bit */ + TIMER_CHCTL0(timer_periph) |= (uint32_t)((uint32_t)(icpwm->icselection)<< 8U); + /* reset the CH1CAPFLT bit */ + TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH1CAPFLT); + /* set the CH1CAPFLT bit */ + TIMER_CHCTL0(timer_periph) |= (uint32_t)((uint32_t)(icpwm->icfilter)<< 12U); + /* set the CH1EN bit */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)TIMER_CHCTL2_CH1EN; + /* configure TIMER channel input capture prescaler value */ + timer_channel_input_capture_prescaler_config(timer_periph,TIMER_CH_1,(uint16_t)(icpwm->icprescaler)); + + /* reset the CH0EN bit */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH0EN); + /* reset the CH0P and CH0NP bits */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)(TIMER_CHCTL2_CH0P|TIMER_CHCTL2_CH0NP)); + /* set the CH0P and CH0NP bits */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)icpolarity; + /* reset the CH0MS bit */ + TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH0MS); + /* set the CH0MS bit */ + TIMER_CHCTL0(timer_periph) |= (uint32_t)icselection; + /* reset the CH0CAPFLT bit */ + TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH0CAPFLT); + /* set the CH0CAPFLT bit */ + TIMER_CHCTL0(timer_periph) |= ((uint32_t)(icpwm->icfilter) << 4U); + /* set the CH0EN bit */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)TIMER_CHCTL2_CH0EN; + /* configure TIMER channel input capture prescaler value */ + timer_channel_input_capture_prescaler_config(timer_periph,TIMER_CH_0,(uint16_t)(icpwm->icprescaler)); + } +} + +/*! + \brief configure TIMER hall sensor mode + \param[in] timer_periph: TIMERx(x=0..4,7) + \param[in] hallmode: + only one parameter can be selected which is shown as below: + \arg TIMER_HALLINTERFACE_ENABLE: TIMER hall sensor mode enable + \arg TIMER_HALLINTERFACE_DISABLE: TIMER hall sensor mode disable + \param[out] none + \retval none +*/ +void timer_hall_mode_config(uint32_t timer_periph, uint32_t hallmode) +{ + if(TIMER_HALLINTERFACE_ENABLE == hallmode){ + TIMER_CTL1(timer_periph) |= (uint32_t)TIMER_CTL1_TI0S; + }else if(TIMER_HALLINTERFACE_DISABLE == hallmode){ + TIMER_CTL1(timer_periph) &= ~(uint32_t)TIMER_CTL1_TI0S; + }else{ + /* illegal parameters */ + } +} + +/*! + \brief select TIMER input trigger source + \param[in] timer_periph: please refer to the following parameters + \param[in] intrigger: + only one parameter can be selected which is shown as below: + \arg TIMER_SMCFG_TRGSEL_ITI0: internal trigger 0,TIMERx(x=0..4,7,8,11) + \arg TIMER_SMCFG_TRGSEL_ITI1: internal trigger 1,TIMERx(x=0..4,7,8,11) + \arg TIMER_SMCFG_TRGSEL_ITI2: internal trigger 2,TIMERx(x=0..4,7,8,11) + \arg TIMER_SMCFG_TRGSEL_ITI3: internal trigger 3,TIMERx(x=0..4,7,8,11) + \arg TIMER_SMCFG_TRGSEL_CI0F_ED: TI0 edge detector,TIMERx(x=0..4,7,8,11) + \arg TIMER_SMCFG_TRGSEL_CI0FE0: filtered TIMER input 0,TIMERx(x=0..4,7,8,11) + \arg TIMER_SMCFG_TRGSEL_CI1FE1: filtered TIMER input 1,TIMERx(x=0..4,7,8,11) + \arg TIMER_SMCFG_TRGSEL_ETIFP: external trigger,TIMERx(x=0..4,7) + \param[out] none + \retval none +*/ +void timer_input_trigger_source_select(uint32_t timer_periph, uint32_t intrigger) +{ + TIMER_SMCFG(timer_periph) &= (~(uint32_t)TIMER_SMCFG_TRGS); + TIMER_SMCFG(timer_periph) |= (uint32_t)intrigger; +} + +/*! + \brief select TIMER master mode output trigger source + \param[in] timer_periph: TIMERx(x=0..7) + \param[in] outrigger: + only one parameter can be selected which is shown as below: + \arg TIMER_TRI_OUT_SRC_RESET: the UPG bit as trigger output(TIMERx(x=0..7)) + \arg TIMER_TRI_OUT_SRC_ENABLE: the counter enable signal TIMER_CTL0_CEN as trigger output(TIMERx(x=0..7)) + \arg TIMER_TRI_OUT_SRC_UPDATE: update event as trigger output(TIMERx(x=0..7)) + \arg TIMER_TRI_OUT_SRC_CH0: a capture or a compare match occurred in channel 0 as trigger output TRGO(TIMERx(x=0..4,7)) + \arg TIMER_TRI_OUT_SRC_O0CPRE: O0CPRE as trigger output(TIMERx(x=0..4,7)) + \arg TIMER_TRI_OUT_SRC_O1CPRE: O1CPRE as trigger output(TIMERx(x=0..4,7)) + \arg TIMER_TRI_OUT_SRC_O2CPRE: O2CPRE as trigger output(TIMERx(x=0..4,7)) + \arg TIMER_TRI_OUT_SRC_O3CPRE: O3CPRE as trigger output(TIMERx(x=0..4,7)) + \param[out] none + \retval none +*/ +void timer_master_output_trigger_source_select(uint32_t timer_periph, uint32_t outrigger) +{ + TIMER_CTL1(timer_periph) &= (~(uint32_t)TIMER_CTL1_MMC); + TIMER_CTL1(timer_periph) |= (uint32_t)outrigger; +} + +/*! + \brief select TIMER slave mode + \param[in] timer_periph: TIMERx(x=0..4,7,8,11) + \param[in] slavemode: + only one parameter can be selected which is shown as below: + \arg TIMER_SLAVE_MODE_DISABLE: slave mode disable + \arg TIMER_QUAD_DECODER_MODE0: quadrature decoder mode 0 + \arg TIMER_QUAD_DECODER_MODE1: quadrature decoder mode 1 + \arg TIMER_QUAD_DECODER_MODE2: quadrature decoder mode 2 + \arg TIMER_SLAVE_MODE_RESTART: restart mode + \arg TIMER_SLAVE_MODE_PAUSE: pause mode + \arg TIMER_SLAVE_MODE_EVENT: event mode + \arg TIMER_SLAVE_MODE_EXTERNAL0: external clock mode 0. + \param[out] none + \retval none +*/ + +void timer_slave_mode_select(uint32_t timer_periph, uint32_t slavemode) +{ + TIMER_SMCFG(timer_periph) &= (~(uint32_t)TIMER_SMCFG_SMC); + + TIMER_SMCFG(timer_periph) |= (uint32_t)slavemode; +} + +/*! + \brief configure TIMER master slave mode + \param[in] timer_periph: TIMERx(x=0..4,7,8,11) + \param[in] masterslave: + only one parameter can be selected which is shown as below: + \arg TIMER_MASTER_SLAVE_MODE_ENABLE: master slave mode enable + \arg TIMER_MASTER_SLAVE_MODE_DISABLE: master slave mode disable + \param[out] none + \retval none +*/ +void timer_master_slave_mode_config(uint32_t timer_periph, uint32_t masterslave) +{ + if(TIMER_MASTER_SLAVE_MODE_ENABLE == masterslave){ + TIMER_SMCFG(timer_periph) |= (uint32_t)TIMER_SMCFG_MSM; + }else if(TIMER_MASTER_SLAVE_MODE_DISABLE == masterslave){ + TIMER_SMCFG(timer_periph) &= ~(uint32_t)TIMER_SMCFG_MSM; + }else{ + /* illegal parameters */ + } +} + +/*! + \brief configure TIMER external trigger input + \param[in] timer_periph: TIMERx(x=0..4,7) + \param[in] extprescaler: + only one parameter can be selected which is shown as below: + \arg TIMER_EXT_TRI_PSC_OFF: no divided + \arg TIMER_EXT_TRI_PSC_DIV2: divided by 2 + \arg TIMER_EXT_TRI_PSC_DIV4: divided by 4 + \arg TIMER_EXT_TRI_PSC_DIV8: divided by 8 + \param[in] expolarity: + only one parameter can be selected which is shown as below: + \arg TIMER_ETP_FALLING: active low or falling edge active + \arg TIMER_ETP_RISING: active high or rising edge active + \param[in] extfilter: a value between 0 and 15 + \param[out] none + \retval none +*/ +void timer_external_trigger_config(uint32_t timer_periph, uint32_t extprescaler, uint32_t extpolarity, uint8_t extfilter) +{ + TIMER_SMCFG(timer_periph) &= (~(uint32_t)(TIMER_SMCFG_ETP | TIMER_SMCFG_ETPSC | TIMER_SMCFG_ETFC)); + TIMER_SMCFG(timer_periph) |= (uint32_t)(extprescaler | extpolarity); + TIMER_SMCFG(timer_periph) |= (uint32_t)(extfilter << 8U); +} + +/*! + \brief configure TIMER quadrature decoder mode + \param[in] timer_periph: TIMERx(x=0..4,7,8,11) + \param[in] decomode: + only one parameter can be selected which is shown as below: + \arg TIMER_QUAD_DECODER_MODE0: counter counts on CI0FE0 edge depending on CI1FE1 level + \arg TIMER_QUAD_DECODER_MODE1: counter counts on CI1FE1 edge depending on CI0FE0 level + \arg TIMER_QUAD_DECODER_MODE2: counter counts on both CI0FE0 and CI1FE1 edges depending on the level of the other input + \param[in] ic0polarity: + only one parameter can be selected which is shown as below: + \arg TIMER_IC_POLARITY_RISING: capture rising edge + \arg TIMER_IC_POLARITY_FALLING: capture falling edge + \param[in] ic1polarity: + only one parameter can be selected which is shown as below: + \arg TIMER_IC_POLARITY_RISING: capture rising edge + \arg TIMER_IC_POLARITY_FALLING: capture falling edge + \param[out] none + \retval none +*/ +void timer_quadrature_decoder_mode_config(uint32_t timer_periph, uint32_t decomode, uint16_t ic0polarity, uint16_t ic1polarity) +{ + /* configure the quadrature decoder mode */ + TIMER_SMCFG(timer_periph) &= (~(uint32_t)TIMER_SMCFG_SMC); + TIMER_SMCFG(timer_periph) |= (uint32_t)decomode; + /* configure input capture selection */ + TIMER_CHCTL0(timer_periph) &= (uint32_t)(((~(uint32_t)TIMER_CHCTL0_CH0MS)) & ((~(uint32_t)TIMER_CHCTL0_CH1MS))); + TIMER_CHCTL0(timer_periph) |= (uint32_t)(TIMER_IC_SELECTION_DIRECTTI | ((uint32_t)TIMER_IC_SELECTION_DIRECTTI << 8U)); + /* configure channel input capture polarity */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)(TIMER_CHCTL2_CH0P | TIMER_CHCTL2_CH0NP)); + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)(TIMER_CHCTL2_CH1P | TIMER_CHCTL2_CH1NP)); + TIMER_CHCTL2(timer_periph) |= ((uint32_t)ic0polarity | ((uint32_t)ic1polarity << 4U)); +} + +/*! + \brief configure TIMER internal clock mode + \param[in] timer_periph: TIMERx(x=0..4,7,8,11) + \param[out] none + \retval none +*/ +void timer_internal_clock_config(uint32_t timer_periph) +{ + TIMER_SMCFG(timer_periph) &= ~(uint32_t)TIMER_SMCFG_SMC; +} + +/*! + \brief configure TIMER the internal trigger as external clock input + \param[in] timer_periph: TIMERx(x=0..4,7,8,11) + \param[in] intrigger: + only one parameter can be selected which is shown as below: + \arg TIMER_SMCFG_TRGSEL_ITI0: internal trigger 0 + \arg TIMER_SMCFG_TRGSEL_ITI1: internal trigger 1 + \arg TIMER_SMCFG_TRGSEL_ITI2: internal trigger 2 + \arg TIMER_SMCFG_TRGSEL_ITI3: internal trigger 3 + \param[out] none + \retval none +*/ +void timer_internal_trigger_as_external_clock_config(uint32_t timer_periph, uint32_t intrigger) +{ + timer_input_trigger_source_select(timer_periph,intrigger); + TIMER_SMCFG(timer_periph) &= ~(uint32_t)TIMER_SMCFG_SMC; + TIMER_SMCFG(timer_periph) |= (uint32_t)TIMER_SLAVE_MODE_EXTERNAL0; +} + +/*! + \brief configure TIMER the external trigger as external clock input + \param[in] timer_periph: TIMERx(x=0..4,7,8,11) + \param[in] extrigger: + only one parameter can be selected which is shown as below: + \arg TIMER_SMCFG_TRGSEL_CI0F_ED: TI0 edge detector + \arg TIMER_SMCFG_TRGSEL_CI0FE0: filtered TIMER input 0 + \arg TIMER_SMCFG_TRGSEL_CI1FE1: filtered TIMER input 1 + \param[in] expolarity: + only one parameter can be selected which is shown as below: + \arg TIMER_IC_POLARITY_RISING: active high or rising edge active + \arg TIMER_IC_POLARITY_FALLING: active low or falling edge active + \param[in] extfilter: a value between 0 and 15 + \param[out] none + \retval none +*/ +void timer_external_trigger_as_external_clock_config(uint32_t timer_periph, uint32_t extrigger, uint16_t extpolarity, uint8_t extfilter) +{ + if(TIMER_SMCFG_TRGSEL_CI1FE1 == extrigger){ + /* reset the CH1EN bit */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH1EN); + /* reset the CH1NP bit */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)(TIMER_CHCTL2_CH1P|TIMER_CHCTL2_CH1NP)); + /* set the CH1NP bit */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)extpolarity << 4U); + /* reset the CH1MS bit */ + TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH1MS); + /* set the CH1MS bit */ + TIMER_CHCTL0(timer_periph) |= (uint32_t)((uint32_t)TIMER_IC_SELECTION_DIRECTTI<< 8U); + /* reset the CH1CAPFLT bit */ + TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH1CAPFLT); + /* set the CH1CAPFLT bit */ + TIMER_CHCTL0(timer_periph) |= (uint32_t)(extfilter << 12U); + /* set the CH1EN bit */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)TIMER_CHCTL2_CH1EN; + }else{ + /* reset the CH0EN bit */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH0EN); + /* reset the CH0P and CH0NP bits */ + TIMER_CHCTL2(timer_periph) &= (~(uint32_t)(TIMER_CHCTL2_CH0P|TIMER_CHCTL2_CH0NP)); + /* set the CH0P and CH0NP bits */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)extpolarity; + /* reset the CH0MS bit */ + TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH0MS); + /* set the CH0MS bit */ + TIMER_CHCTL0(timer_periph) |= (uint32_t)TIMER_IC_SELECTION_DIRECTTI; + /* reset the CH0CAPFLT bit */ + TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH0CAPFLT); + /* reset the CH0CAPFLT bit */ + TIMER_CHCTL0(timer_periph) |= (uint32_t)(extfilter << 4U); + /* set the CH0EN bit */ + TIMER_CHCTL2(timer_periph) |= (uint32_t)TIMER_CHCTL2_CH0EN; + } + /* select TIMER input trigger source */ + timer_input_trigger_source_select(timer_periph,extrigger); + /* reset the SMC bit */ + TIMER_SMCFG(timer_periph) &= (~(uint32_t)TIMER_SMCFG_SMC); + /* set the SMC bit */ + TIMER_SMCFG(timer_periph) |= (uint32_t)TIMER_SLAVE_MODE_EXTERNAL0; +} + +/*! + \brief configure TIMER the external clock mode0 + \param[in] timer_periph: TIMERx(x=0..4,7,8,11) + \param[in] extprescaler: + only one parameter can be selected which is shown as below: + \arg TIMER_EXT_TRI_PSC_OFF: no divided + \arg TIMER_EXT_TRI_PSC_DIV2: divided by 2 + \arg TIMER_EXT_TRI_PSC_DIV4: divided by 4 + \arg TIMER_EXT_TRI_PSC_DIV8: divided by 8 + \param[in] expolarity: + only one parameter can be selected which is shown as below: + \arg TIMER_ETP_FALLING: active low or falling edge active + \arg TIMER_ETP_RISING: active high or rising edge active + \param[in] extfilter: a value between 0 and 15 + \param[out] none + \retval none +*/ +void timer_external_clock_mode0_config(uint32_t timer_periph, uint32_t extprescaler, uint32_t extpolarity, uint8_t extfilter) +{ + /* configure TIMER external trigger input */ + timer_external_trigger_config(timer_periph, extprescaler, extpolarity, extfilter); + /* reset the SMC bit,TRGS bit */ + TIMER_SMCFG(timer_periph) &= (~(uint32_t)(TIMER_SMCFG_SMC | TIMER_SMCFG_TRGS)); + /* set the SMC bit,TRGS bit */ + TIMER_SMCFG(timer_periph) |= (uint32_t)(TIMER_SLAVE_MODE_EXTERNAL0 | TIMER_SMCFG_TRGSEL_ETIFP); +} + +/*! + \brief configure TIMER the external clock mode1 + \param[in] timer_periph: TIMERx(x=0..4,7) + \param[in] extprescaler: + only one parameter can be selected which is shown as below: + \arg TIMER_EXT_TRI_PSC_OFF: no divided + \arg TIMER_EXT_TRI_PSC_DIV2: divided by 2 + \arg TIMER_EXT_TRI_PSC_DIV4: divided by 4 + \arg TIMER_EXT_TRI_PSC_DIV8: divided by 8 + \param[in] extpolarity: + only one parameter can be selected which is shown as below: + \arg TIMER_ETP_FALLING: active low or falling edge active + \arg TIMER_ETP_RISING: active high or rising edge active + \param[in] extfilter: a value between 0 and 15 + \param[out] none + \retval none +*/ +void timer_external_clock_mode1_config(uint32_t timer_periph, uint32_t extprescaler, uint32_t extpolarity, uint8_t extfilter) +{ + /* configure TIMER external trigger input */ + timer_external_trigger_config(timer_periph, extprescaler, extpolarity, extfilter); + TIMER_SMCFG(timer_periph) |= (uint32_t)TIMER_SMCFG_SMC1; +} + +/*! + \brief disable TIMER the external clock mode1 + \param[in] timer_periph: TIMERx(x=0..4,7) + \param[out] none + \retval none +*/ +void timer_external_clock_mode1_disable(uint32_t timer_periph) +{ + TIMER_SMCFG(timer_periph) &= ~(uint32_t)TIMER_SMCFG_SMC1; +} + +/*! + \brief enable the TIMER interrupt + \param[in] timer_periph: please refer to the following parameters + \param[in] interrupt: timer interrupt enable source + only one parameter can be selected which is shown as below: + \arg TIMER_INT_UP: update interrupt enable, TIMERx(x=0..13) + \arg TIMER_INT_CH0: channel 0 interrupt enable, TIMERx(x=0..4,7..13) + \arg TIMER_INT_CH1: channel 1 interrupt enable, TIMERx(x=0..4,7,8,11) + \arg TIMER_INT_CH2: channel 2 interrupt enable, TIMERx(x=0..4,7) + \arg TIMER_INT_CH3: channel 3 interrupt enable , TIMERx(x=0..4,7) + \arg TIMER_INT_CMT: commutation interrupt enable, TIMERx(x=0,7) + \arg TIMER_INT_TRG: trigger interrupt enable, TIMERx(x=0..4,7,8,11) + \arg TIMER_INT_BRK: break interrupt enable, TIMERx(x=0,7) + \param[out] none + \retval none +*/ +void timer_interrupt_enable(uint32_t timer_periph, uint32_t interrupt) +{ + TIMER_DMAINTEN(timer_periph) |= (uint32_t) interrupt; +} + +/*! + \brief disable the TIMER interrupt + \param[in] timer_periph: please refer to the following parameters + \param[in] interrupt: timer interrupt source disable + only one parameter can be selected which is shown as below: + \arg TIMER_INT_UP: update interrupt disable, TIMERx(x=0..13) + \arg TIMER_INT_CH0: channel 0 interrupt disable, TIMERx(x=0..4,7..13) + \arg TIMER_INT_CH1: channel 1 interrupt disable, TIMERx(x=0..4,7,8,11) + \arg TIMER_INT_CH2: channel 2 interrupt disable, TIMERx(x=0..4,7) + \arg TIMER_INT_CH3: channel 3 interrupt disable , TIMERx(x=0..4,7) + \arg TIMER_INT_CMT: commutation interrupt disable, TIMERx(x=0,7) + \arg TIMER_INT_TRG: trigger interrupt disable, TIMERx(x=0..4,7,8,11) + \arg TIMER_INT_BRK: break interrupt disable, TIMERx(x=0,7) + \param[out] none + \retval none +*/ +void timer_interrupt_disable(uint32_t timer_periph, uint32_t interrupt) +{ + TIMER_DMAINTEN(timer_periph) &= (~(uint32_t)interrupt); +} + +/*! + \brief get timer interrupt flag + \param[in] timer_periph: please refer to the following parameters + \param[in] interrupt: the timer interrupt bits + only one parameter can be selected which is shown as below: + \arg TIMER_INT_FLAG_UP: update interrupt flag,TIMERx(x=0..13) + \arg TIMER_INT_FLAG_CH0: channel 0 interrupt flag,TIMERx(x=0..4,7..13) + \arg TIMER_INT_FLAG_CH1: channel 1 interrupt flag,TIMERx(x=0..4,7,8,11) + \arg TIMER_INT_FLAG_CH2: channel 2 interrupt flag,TIMERx(x=0..4,7) + \arg TIMER_INT_FLAG_CH3: channel 3 interrupt flag,TIMERx(x=0..4,7) + \arg TIMER_INT_FLAG_CMT: channel commutation interrupt flag,TIMERx(x=0,7) + \arg TIMER_INT_FLAG_TRG: trigger interrupt flag,TIMERx(x=0,7,8,11) + \arg TIMER_INT_FLAG_BRK: break interrupt flag,TIMERx(x=0,7) + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus timer_interrupt_flag_get(uint32_t timer_periph, uint32_t interrupt) +{ + uint32_t val; + val = (TIMER_DMAINTEN(timer_periph) & interrupt); + if((RESET != (TIMER_INTF(timer_periph) & interrupt) ) && (RESET != val)){ + return SET; + }else{ + return RESET; + } +} + +/*! + \brief clear TIMER interrupt flag + \param[in] timer_periph: please refer to the following parameters + \param[in] interrupt: the timer interrupt bits + only one parameter can be selected which is shown as below: + \arg TIMER_INT_FLAG_UP: update interrupt flag,TIMERx(x=0..13) + \arg TIMER_INT_FLAG_CH0: channel 0 interrupt flag,TIMERx(x=0..4,7..13) + \arg TIMER_INT_FLAG_CH1: channel 1 interrupt flag,TIMERx(x=0..4,7,8,11) + \arg TIMER_INT_FLAG_CH2: channel 2 interrupt flag,TIMERx(x=0..4,7) + \arg TIMER_INT_FLAG_CH3: channel 3 interrupt flag,TIMERx(x=0..4,7) + \arg TIMER_INT_FLAG_CMT: channel commutation interrupt flag,TIMERx(x=0,7) + \arg TIMER_INT_FLAG_TRG: trigger interrupt flag,TIMERx(x=0,7,8,11) + \arg TIMER_INT_FLAG_BRK: break interrupt flag,TIMERx(x=0,7) + \param[out] none + \retval none +*/ +void timer_interrupt_flag_clear(uint32_t timer_periph, uint32_t interrupt) +{ + TIMER_INTF(timer_periph) = (~(uint32_t)interrupt); +} + +/*! + \brief get TIMER flags + \param[in] timer_periph: please refer to the following parameters + \param[in] flag: the timer interrupt flags + only one parameter can be selected which is shown as below: + \arg TIMER_FLAG_UP: update flag,TIMERx(x=0..13) + \arg TIMER_FLAG_CH0: channel 0 flag,TIMERx(x=0..4,7..13) + \arg TIMER_FLAG_CH1: channel 1 flag,TIMERx(x=0..4,7,8,11) + \arg TIMER_FLAG_CH2: channel 2 flag,TIMERx(x=0..4,7) + \arg TIMER_FLAG_CH3: channel 3 flag,TIMERx(x=0..4,7) + \arg TIMER_FLAG_CMT: channel commutation flag,TIMERx(x=0,7) + \arg TIMER_FLAG_TRG: trigger flag,TIMERx(x=0,7,8,11) + \arg TIMER_FLAG_BRK: break flag,TIMERx(x=0,7) + \arg TIMER_FLAG_CH0O: channel 0 overcapture flag,TIMERx(x=0..4,7..11) + \arg TIMER_FLAG_CH1O: channel 1 overcapture flag,TIMERx(x=0..4,7,8,11) + \arg TIMER_FLAG_CH2O: channel 2 overcapture flag,TIMERx(x=0..4,7) + \arg TIMER_FLAG_CH3O: channel 3 overcapture flag,TIMERx(x=0..4,7) + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus timer_flag_get(uint32_t timer_periph, uint32_t flag) +{ + if(RESET != (TIMER_INTF(timer_periph) & flag)){ + return SET; + }else{ + return RESET; + } +} + +/*! + \brief clear TIMER flags + \param[in] timer_periph: please refer to the following parameters + \param[in] flag: the timer interrupt flags + only one parameter can be selected which is shown as below: + \arg TIMER_FLAG_UP: update flag,TIMERx(x=0..13) + \arg TIMER_FLAG_CH0: channel 0 flag,TIMERx(x=0..4,7..13) + \arg TIMER_FLAG_CH1: channel 1 flag,TIMERx(x=0..4,7,8,11) + \arg TIMER_FLAG_CH2: channel 2 flag,TIMERx(x=0..4,7) + \arg TIMER_FLAG_CH3: channel 3 flag,TIMERx(x=0..4,7) + \arg TIMER_FLAG_CMT: channel control update flag,TIMERx(x=0,7) + \arg TIMER_FLAG_TRG: trigger flag,TIMERx(x=0,7,8,11) + \arg TIMER_FLAG_BRK: break flag,TIMERx(x=0,7) + \arg TIMER_FLAG_CH0O: channel 0 overcapture flag,TIMERx(x=0..4,7..11) + \arg TIMER_FLAG_CH1O: channel 1 overcapture flag,TIMERx(x=0..4,7,8,11) + \arg TIMER_FLAG_CH2O: channel 2 overcapture flag,TIMERx(x=0..4,7) + \arg TIMER_FLAG_CH3O: channel 3 overcapture flag,TIMERx(x=0..4,7) + \param[out] none + \retval none +*/ +void timer_flag_clear(uint32_t timer_periph, uint32_t flag) +{ + TIMER_INTF(timer_periph) = (~(uint32_t)flag); +} diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_usart.c b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_usart.c new file mode 100644 index 0000000..6b7621a --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_usart.c @@ -0,0 +1,739 @@ +/*! + \file gd32f10x_usart.c + \brief USART driver + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#include "gd32f10x_usart.h" + +/* USART register bit offset */ +#define GP_GUAT_OFFSET ((uint32_t)8U) /* bit offset of GUAT in USART_GP */ + +/*! + \brief reset USART/UART + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[out] none + \retval none +*/ +void usart_deinit(uint32_t usart_periph) +{ + switch(usart_periph){ + case USART0: + /* reset USART0 */ + rcu_periph_reset_enable(RCU_USART0RST); + rcu_periph_reset_disable(RCU_USART0RST); + break; + case USART1: + /* reset USART1 */ + rcu_periph_reset_enable(RCU_USART1RST); + rcu_periph_reset_disable(RCU_USART1RST); + break; + case USART2: + /* reset USART2 */ + rcu_periph_reset_enable(RCU_USART2RST); + rcu_periph_reset_disable(RCU_USART2RST); + break; + case UART3: + /* reset UART3 */ + rcu_periph_reset_enable(RCU_UART3RST); + rcu_periph_reset_disable(RCU_UART3RST); + break; + case UART4: + /* reset UART4 */ + rcu_periph_reset_enable(RCU_UART4RST); + rcu_periph_reset_disable(RCU_UART4RST); + break; + default: + break; + } +} + +/*! + \brief configure USART baud rate value + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[in] baudval: baud rate value + \param[out] none + \retval none +*/ +void usart_baudrate_set(uint32_t usart_periph, uint32_t baudval) +{ + uint32_t uclk=0U, intdiv=0U, fradiv=0U, udiv=0U; + switch(usart_periph){ + /* get clock frequency */ + case USART0: + /* get USART0 clock */ + uclk=rcu_clock_freq_get(CK_APB2); + break; + case USART1: + /* get USART1 clock */ + uclk=rcu_clock_freq_get(CK_APB1); + break; + case USART2: + /* get USART2 clock */ + uclk=rcu_clock_freq_get(CK_APB1); + break; + case UART3: + /* get UART3 clock */ + uclk=rcu_clock_freq_get(CK_APB1); + break; + case UART4: + /* get UART4 clock */ + uclk=rcu_clock_freq_get(CK_APB1); + break; + default: + break; + } + /* oversampling by 16, configure the value of USART_BAUD */ + udiv = (uclk+baudval/2U)/baudval; + intdiv = udiv & (0x0000fff0U); + fradiv = udiv & (0x0000000fU); + USART_BAUD(usart_periph) = ((USART_BAUD_FRADIV | USART_BAUD_INTDIV) & (intdiv | fradiv)); +} + +/*! + \brief configure USART parity + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[in] paritycfg: configure USART parity + only one parameter can be selected which is shown as below: + \arg USART_PM_NONE: no parity + \arg USART_PM_ODD: odd parity + \arg USART_PM_EVEN: even parity + \param[out] none + \retval none +*/ +void usart_parity_config(uint32_t usart_periph, uint32_t paritycfg) +{ + /* clear USART_CTL0 PM,PCEN bits */ + USART_CTL0(usart_periph) &= ~(USART_CTL0_PM | USART_CTL0_PCEN); + /* configure USART parity mode */ + USART_CTL0(usart_periph) |= paritycfg ; +} + +/*! + \brief configure USART word length + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[in] wlen: USART word length configure + only one parameter can be selected which is shown as below: + \arg USART_WL_8BIT: 8 bits + \arg USART_WL_9BIT: 9 bits + \param[out] none + \retval none +*/ +void usart_word_length_set(uint32_t usart_periph, uint32_t wlen) +{ + /* clear USART_CTL0 WL bit */ + USART_CTL0(usart_periph) &= ~USART_CTL0_WL; + /* configure USART word length */ + USART_CTL0(usart_periph) |= wlen; +} + +/*! + \brief configure USART stop bit length + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[in] stblen: USART stop bit configure + only one parameter can be selected which is shown as below: + \arg USART_STB_1BIT: 1 bit + \arg USART_STB_0_5BIT: 0.5 bit, not available for UARTx(x=3,4) + \arg USART_STB_2BIT: 2 bits + \arg USART_STB_1_5BIT: 1.5 bits, not available for UARTx(x=3,4) + \param[out] none + \retval none +*/ +void usart_stop_bit_set(uint32_t usart_periph, uint32_t stblen) +{ + /* clear USART_CTL1 STB bits */ + USART_CTL1(usart_periph) &= ~USART_CTL1_STB; + /* configure USART stop bits */ + USART_CTL1(usart_periph) |= stblen; +} +/*! + \brief enable USART + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[out] none + \retval none +*/ +void usart_enable(uint32_t usart_periph) +{ + USART_CTL0(usart_periph) |= USART_CTL0_UEN; +} + +/*! + \brief disable USART + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[out] none + \retval none +*/ +void usart_disable(uint32_t usart_periph) +{ + USART_CTL0(usart_periph) &= ~(USART_CTL0_UEN); +} + +/*! + \brief configure USART transmitter + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[in] txconfig: enable or disable USART transmitter + only one parameter can be selected which is shown as below: + \arg USART_TRANSMIT_ENABLE: enable USART transmission + \arg USART_TRANSMIT_DISABLE: disable USART transmission + \param[out] none + \retval none +*/ +void usart_transmit_config(uint32_t usart_periph, uint32_t txconfig) +{ + uint32_t ctl = 0U; + + ctl = USART_CTL0(usart_periph); + ctl &= ~USART_CTL0_TEN; + ctl |= txconfig; + /* configure transfer mode */ + USART_CTL0(usart_periph) = ctl; +} + +/*! + \brief configure USART receiver + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[in] rxconfig: enable or disable USART receiver + only one parameter can be selected which is shown as below: + \arg USART_RECEIVE_ENABLE: enable USART reception + \arg USART_RECEIVE_DISABLE: disable USART reception + \param[out] none + \retval none +*/ +void usart_receive_config(uint32_t usart_periph, uint32_t rxconfig) +{ + uint32_t ctl = 0U; + + ctl = USART_CTL0(usart_periph); + ctl &= ~USART_CTL0_REN; + ctl |= rxconfig; + /* configure receiver mode */ + USART_CTL0(usart_periph) = ctl; +} + +/*! + \brief USART transmit data function + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[in] data: data of transmission + \param[out] none + \retval none +*/ +void usart_data_transmit(uint32_t usart_periph, uint16_t data) +{ + USART_DATA(usart_periph) = USART_DATA_DATA & (uint32_t)data; +} + +/*! + \brief USART receive data function + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[out] none + \retval data of received +*/ +uint16_t usart_data_receive(uint32_t usart_periph) +{ + return (uint16_t)(GET_BITS(USART_DATA(usart_periph), 0U, 8U)); +} + +/*! + \brief configure the address of the USART in wake up by address match mode + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[in] addr: address of USART/UART + \param[out] none + \retval none +*/ +void usart_address_config(uint32_t usart_periph, uint8_t addr) +{ + USART_CTL1(usart_periph) &= ~(USART_CTL1_ADDR); + USART_CTL1(usart_periph) |= (USART_CTL1_ADDR & (uint32_t)addr); +} + +/*! + \brief receiver in mute mode + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[out] none + \retval none +*/ +void usart_mute_mode_enable(uint32_t usart_periph) +{ + USART_CTL0(usart_periph) |= USART_CTL0_RWU; +} + +/*! + \brief receiver in active mode + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[out] none + \retval none +*/ +void usart_mute_mode_disable(uint32_t usart_periph) +{ + USART_CTL0(usart_periph) &= ~(USART_CTL0_RWU); +} + +/*! + \brief configure wakeup method in mute mode + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[in] wmethod: two methods be used to enter or exit the mute mode + only one parameter can be selected which is shown as below: + \arg USART_WM_IDLE: idle line + \arg USART_WM_ADDR: address mask + \param[out] none + \retval none +*/ +void usart_mute_mode_wakeup_config(uint32_t usart_periph, uint32_t wmethod) +{ + USART_CTL0(usart_periph) &= ~(USART_CTL0_WM); + USART_CTL0(usart_periph) |= wmethod; +} + +/*! + \brief enable LIN mode + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[out] none + \retval none +*/ +void usart_lin_mode_enable(uint32_t usart_periph) +{ + USART_CTL1(usart_periph) |= USART_CTL1_LMEN; +} + +/*! + \brief disable LIN mode + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[out] none + \retval none +*/ +void usart_lin_mode_disable(uint32_t usart_periph) +{ + USART_CTL1(usart_periph) &= ~(USART_CTL1_LMEN); +} + +/*! + \brief configure lin break frame length + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[in] lblen: lin break frame length + only one parameter can be selected which is shown as below: + \arg USART_LBLEN_10B: 10 bits + \arg USART_LBLEN_11B: 11 bits + \param[out] none + \retval none +*/ +void usart_lin_break_detection_length_config(uint32_t usart_periph, uint32_t lblen) +{ + USART_CTL1(usart_periph) &= ~(USART_CTL1_LBLEN); + USART_CTL1(usart_periph) |= (USART_CTL1_LBLEN & lblen); +} + +/*! + \brief send break frame + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[out] none + \retval none +*/ +void usart_send_break(uint32_t usart_periph) +{ + USART_CTL0(usart_periph) |= USART_CTL0_SBKCMD; +} + +/*! + \brief enable half duplex mode + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[out] none + \retval none +*/ +void usart_halfduplex_enable(uint32_t usart_periph) +{ + USART_CTL2(usart_periph) |= USART_CTL2_HDEN; +} + +/*! + \brief disable half duplex mode + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[out] none + \retval none +*/ +void usart_halfduplex_disable(uint32_t usart_periph) +{ + USART_CTL2(usart_periph) &= ~(USART_CTL2_HDEN); +} + +/*! + \brief enable CK pin in synchronous mode + \param[in] usart_periph: USARTx(x=0,1,2) + \param[out] none + \retval none +*/ +void usart_synchronous_clock_enable(uint32_t usart_periph) +{ + USART_CTL1(usart_periph) |= USART_CTL1_CKEN; +} + +/*! + \brief disable CK pin in synchronous mode + \param[in] usart_periph: USARTx(x=0,1,2) + \param[out] none + \retval none +*/ +void usart_synchronous_clock_disable(uint32_t usart_periph) +{ + USART_CTL1(usart_periph) &= ~(USART_CTL1_CKEN); +} + +/*! + \brief configure USART synchronous mode parameters + \param[in] usart_periph: USARTx(x=0,1,2) + \param[in] clen: CK length + only one parameter can be selected which is shown as below: + \arg USART_CLEN_NONE: there are 7 CK pulses for an 8 bit frame and 8 CK pulses for a 9 bit frame + \arg USART_CLEN_EN: there are 8 CK pulses for an 8 bit frame and 9 CK pulses for a 9 bit frame + \param[in] cph: clock phase + only one parameter can be selected which is shown as below: + \arg USART_CPH_1CK: first clock transition is the first data capture edge + \arg USART_CPH_2CK: second clock transition is the first data capture edge + \param[in] cpl: clock polarity + only one parameter can be selected which is shown as below: + \arg USART_CPL_LOW: steady low value on CK pin + \arg USART_CPL_HIGH: steady high value on CK pin + \param[out] none + \retval none +*/ +void usart_synchronous_clock_config(uint32_t usart_periph, uint32_t clen, uint32_t cph, uint32_t cpl) +{ + USART_CTL1(usart_periph) &= ~(USART_CTL1_CLEN | USART_CTL1_CPH | USART_CTL1_CPL); + USART_CTL1(usart_periph) |= (USART_CTL1_CLEN & clen) | (USART_CTL1_CPH & cph) | (USART_CTL1_CPL & cpl); +} + +/*! + \brief configure guard time value in smartcard mode + \param[in] usart_periph: USARTx(x=0,1,2) + \param[in] guat: guard time value + \param[out] none + \retval none +*/ +void usart_guard_time_config(uint32_t usart_periph,uint8_t guat) +{ + USART_GP(usart_periph) &= ~(USART_GP_GUAT); + USART_GP(usart_periph) |= (USART_GP_GUAT & ((uint32_t)guat << GP_GUAT_OFFSET)); +} + +/*! + \brief enable smartcard mode + \param[in] usart_periph: USARTx(x=0,1,2) + \param[out] none + \retval none +*/ +void usart_smartcard_mode_enable(uint32_t usart_periph) +{ + USART_CTL2(usart_periph) |= USART_CTL2_SCEN; +} + +/*! + \brief disable smartcard mode + \param[in] usart_periph: USARTx(x=0,1,2) + \param[out] none + \retval none +*/ +void usart_smartcard_mode_disable(uint32_t usart_periph) +{ + USART_CTL2(usart_periph) &= ~(USART_CTL2_SCEN); +} + +/*! + \brief enable NACK in smartcard mode + \param[in] usart_periph: USARTx(x=0,1,2) + \param[out] none + \retval none +*/ +void usart_smartcard_mode_nack_enable(uint32_t usart_periph) +{ + USART_CTL2(usart_periph) |= USART_CTL2_NKEN; +} + +/*! + \brief disable NACK in smartcard mode + \param[in] usart_periph: USARTx(x=0,1,2) + \param[out] none + \retval none +*/ +void usart_smartcard_mode_nack_disable(uint32_t usart_periph) +{ + USART_CTL2(usart_periph) &= ~(USART_CTL2_NKEN); +} + +/*! + \brief enable IrDA mode + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[out] none + \retval none +*/ +void usart_irda_mode_enable(uint32_t usart_periph) +{ + USART_CTL2(usart_periph) |= USART_CTL2_IREN; +} + +/*! + \brief disable IrDA mode + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[out] none + \retval none +*/ +void usart_irda_mode_disable(uint32_t usart_periph) +{ + USART_CTL2(usart_periph) &= ~(USART_CTL2_IREN); +} + +/*! + \brief configure the peripheral clock prescaler in USART IrDA low-power mode + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[in] psc: 0x00-0xFF + \param[out] none + \retval none +*/ +void usart_prescaler_config(uint32_t usart_periph, uint8_t psc) +{ + USART_GP(usart_periph) &= ~(USART_GP_PSC); + USART_GP(usart_periph) |= (uint32_t)psc; +} + +/*! + \brief configure IrDA low-power + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[in] irlp: IrDA low-power or normal + only one parameter can be selected which is shown as below: + \arg USART_IRLP_LOW: low-power + \arg USART_IRLP_NORMAL: normal + \param[out] none + \retval none +*/ +void usart_irda_lowpower_config(uint32_t usart_periph, uint32_t irlp) +{ + USART_CTL2(usart_periph) &= ~(USART_CTL2_IRLP); + USART_CTL2(usart_periph) |= (USART_CTL2_IRLP & irlp); +} + +/*! + \brief configure hardware flow control RTS + \param[in] usart_periph: USARTx(x=0,1,2) + \param[in] rtsconfig: enable or disable RTS + only one parameter can be selected which is shown as below: + \arg USART_RTS_ENABLE: enable RTS + \arg USART_RTS_DISABLE: disable RTS + \param[out] none + \retval none +*/ +void usart_hardware_flow_rts_config(uint32_t usart_periph, uint32_t rtsconfig) +{ + USART_CTL2(usart_periph) &= ~(USART_CTL2_RTSEN); + USART_CTL2(usart_periph) |= (USART_CTL2_RTSEN & rtsconfig); +} + +/*! + \brief configure hardware flow control CTS + \param[in] usart_periph: USARTx(x=0,1,2) + \param[in] ctsconfig: enable or disable CTS + only one parameter can be selected which is shown as below: + \arg USART_CTS_ENABLE: enable CTS + \arg USART_CTS_DISABLE: disable CTS + \param[out] none + \retval none +*/ +void usart_hardware_flow_cts_config(uint32_t usart_periph, uint32_t ctsconfig) +{ + USART_CTL2(usart_periph) &= ~(USART_CTL2_CTSEN); + USART_CTL2(usart_periph) |= (USART_CTL2_CTSEN & ctsconfig); +} + +/*! + \brief configure USART DMA reception + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3) + \param[in] dmacmd: enable or disable DMA for reception + only one parameter can be selected which is shown as below: + \arg USART_RECEIVE_DMA_ENABLE: enable USART DMA for reception + \arg USART_RECEIVE_DMA_DISABLE: disable USART DMA for reception + \param[out] none + \retval none +*/ +void usart_dma_receive_config(uint32_t usart_periph, uint8_t dmaconfig) +{ + USART_CTL2(usart_periph) &= ~(USART_CTL2_DENR); + USART_CTL2(usart_periph) |= (USART_CTL2_DENR & dmaconfig); +} + +/*! + \brief configure USART DMA transmission + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3) + \param[in] dmacmd: enable or disable DMA for transmission + only one parameter can be selected which is shown as below: + \arg USART_TRANSMIT_DMA_ENABLE: enable USART DMA for transmission + \arg USART_TRANSMIT_DMA_DISABLE: disable USART DMA for transmission + \param[out] none + \retval none +*/ +void usart_dma_transmit_config(uint32_t usart_periph, uint8_t dmaconfig) +{ + USART_CTL2(usart_periph) &= ~(USART_CTL2_DENT); + USART_CTL2(usart_periph) |= (USART_CTL2_DENT & dmaconfig); +} + +/*! + \brief get flag in STAT register + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[in] flag: USART flags, refer to usart_flag_enum + only one parameter can be selected which is shown as below: + \arg USART_FLAG_CTSF: CTS change flag + \arg USART_FLAG_LBDF: LIN break detected flag + \arg USART_FLAG_TBE: transmit data buffer empty + \arg USART_FLAG_TC: transmission complete + \arg USART_FLAG_RBNE: read data buffer not empty + \arg USART_FLAG_IDLEF: IDLE frame detected flag + \arg USART_FLAG_ORERR: overrun error + \arg USART_FLAG_NERR: noise error flag + \arg USART_FLAG_FERR: frame error flag + \arg USART_FLAG_PERR: parity error flag + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus usart_flag_get(uint32_t usart_periph, usart_flag_enum flag) +{ + if(RESET != (USART_REG_VAL(usart_periph, flag) & BIT(USART_BIT_POS(flag)))){ + return SET; + }else{ + return RESET; + } +} + +/*! + \brief clear flag in STAT register + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[in] flag: USART flags, refer to usart_flag_enum + only one parameter can be selected which is shown as below: + \arg USART_FLAG_CTSF: CTS change flag + \arg USART_FLAG_LBDF: LIN break detected flag + \arg USART_FLAG_TC: transmission complete + \arg USART_FLAG_RBNE: read data buffer not empty + \param[out] none + \retval none +*/ +void usart_flag_clear(uint32_t usart_periph, usart_flag_enum flag) +{ + USART_REG_VAL(usart_periph, flag) = ~BIT(USART_BIT_POS(flag)); +} + +/*! + \brief enable USART interrupt + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[in] int_flag + only one parameter can be selected which is shown as below: + \arg USART_INT_PERR: parity error interrupt + \arg USART_INT_TBE: transmitter buffer empty interrupt + \arg USART_INT_TC: transmission complete interrupt + \arg USART_INT_RBNE: read data buffer not empty interrupt and overrun error interrupt + \arg USART_INT_IDLE: IDLE line detected interrupt + \arg USART_INT_LBD: LIN break detected interrupt + \arg USART_INT_ERR: error interrupt + \arg USART_INT_CTS: CTS interrupt + \param[out] none + \retval none +*/ +void usart_interrupt_enable(uint32_t usart_periph, uint32_t int_flag) +{ + USART_REG_VAL(usart_periph, int_flag) |= BIT(USART_BIT_POS(int_flag)); +} + +/*! + \brief disable USART interrupt + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[in] int_flag + only one parameter can be selected which is shown as below: + \arg USART_INT_PERR: parity error interrupt + \arg USART_INT_TBE: transmitter buffer empty interrupt + \arg USART_INT_TC: transmission complete interrupt + \arg USART_INT_RBNE: read data buffer not empty interrupt and overrun error interrupt + \arg USART_INT_IDLE: IDLE line detected interrupt + \arg USART_INT_LBD: LIN break detected interrupt + \arg USART_INT_ERR: error interrupt + \arg USART_INT_CTS: CTS interrupt + \param[out] none + \retval none +*/ +void usart_interrupt_disable(uint32_t usart_periph, uint32_t int_flag) +{ + USART_REG_VAL(usart_periph, int_flag) &= ~BIT(USART_BIT_POS(int_flag)); +} + +/*! + \brief get USART interrupt and flag status + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[in] int_flag + only one parameter can be selected which is shown as below: + \arg USART_INT_FLAG_PERR: parity error interrupt and flag + \arg USART_INT_FLAG_TBE: transmitter buffer empty interrupt and flag + \arg USART_INT_FLAG_TC: transmission complete interrupt and flag + \arg USART_INT_FLAG_RBNE: read data buffer not empty interrupt and flag + \arg USART_INT_FLAG_RBNE_ORERR: read data buffer not empty interrupt and overrun error flag + \arg USART_INT_FLAG_IDLE: IDLE line detected interrupt and flag + \arg USART_INT_FLAG_LBD: LIN break detected interrupt and flag + \arg USART_INT_FLAG_CTS: CTS interrupt and flag + \arg USART_INT_FLAG_ERR_ORERR: error interrupt and overrun error + \arg USART_INT_FLAG_ERR_NERR: error interrupt and noise error flag + \arg USART_INT_FLAG_ERR_FERR: error interrupt and frame error flag + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus usart_interrupt_flag_get(uint32_t usart_periph, uint32_t int_flag) +{ + uint32_t intenable = 0U, flagstatus = 0U; + /* get the interrupt enable bit status */ + intenable = (USART_REG_VAL(usart_periph, int_flag) & BIT(USART_BIT_POS(int_flag))); + /* get the corresponding flag bit status */ + flagstatus = (USART_REG_VAL2(usart_periph, int_flag) & BIT(USART_BIT_POS2(int_flag))); + + if(flagstatus && intenable){ + return SET; + }else{ + return RESET; + } +} + +/*! + \brief clear USART interrupt flag in STAT register + \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4) + \param[in] flag: USART interrupt flag + only one parameter can be selected which is shown as below: + \arg USART_INT_FLAG_CTS: CTS change flag + \arg USART_INT_FLAG_LBD: LIN break detected flag + \arg USART_INT_FLAG_TC: transmission complete + \arg USART_INT_FLAG_RBNE: read data buffer not empty + \param[out] none + \retval none +*/ +void usart_interrupt_flag_clear(uint32_t usart_periph, uint32_t flag) +{ + USART_REG_VAL2(usart_periph, flag) = ~BIT(USART_BIT_POS2(flag)); +} diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_wwdgt.c b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_wwdgt.c new file mode 100644 index 0000000..54f8e40 --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Source/gd32f10x_wwdgt.c @@ -0,0 +1,125 @@ +/*! + \file gd32f10x_wwdgt.c + \brief WWDGT driver + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#include "gd32f10x_wwdgt.h" + +/*! + \brief reset the window watchdog timer configuration + \param[in] none + \param[out] none + \retval none +*/ +void wwdgt_deinit(void) +{ + rcu_periph_reset_enable(RCU_WWDGTRST); + rcu_periph_reset_disable(RCU_WWDGTRST); +} + +/*! + \brief start the window watchdog timer counter + \param[in] none + \param[out] none + \retval none +*/ +void wwdgt_enable(void) +{ + WWDGT_CTL |= WWDGT_CTL_WDGTEN; +} + +/*! + \brief configure the window watchdog timer counter value + \param[in] counter_value: 0x00 - 0x7F + \param[out] none + \retval none +*/ +void wwdgt_counter_update(uint16_t counter_value) +{ + WWDGT_CTL = (uint32_t)(CTL_CNT(counter_value)); +} + +/*! + \brief configure counter value, window value, and prescaler divider value + \param[in] counter: 0x00 - 0x7F + \param[in] window: 0x00 - 0x7F + \param[in] prescaler: wwdgt prescaler value + only one parameter can be selected which is shown as below: + \arg WWDGT_CFG_PSC_DIV1: the time base of window watchdog counter = (PCLK1/4096)/1 + \arg WWDGT_CFG_PSC_DIV2: the time base of window watchdog counter = (PCLK1/4096)/2 + \arg WWDGT_CFG_PSC_DIV4: the time base of window watchdog counter = (PCLK1/4096)/4 + \arg WWDGT_CFG_PSC_DIV8: the time base of window watchdog counter = (PCLK1/4096)/8 + \param[out] none + \retval none +*/ +void wwdgt_config(uint16_t counter, uint16_t window, uint32_t prescaler) +{ + WWDGT_CTL = (uint32_t)(CTL_CNT(counter)); + WWDGT_CFG = (uint32_t)(CFG_WIN(window) | prescaler); +} + +/*! + \brief check early wakeup interrupt state of WWDGT + \param[in] none + \param[out] none + \retval FlagStatus: SET or RESET +*/ +FlagStatus wwdgt_flag_get(void) +{ + if(WWDGT_STAT & WWDGT_STAT_EWIF) { + return SET; + } + + return RESET; +} + +/*! + \brief clear early wakeup interrupt state of WWDGT + \param[in] none + \param[out] none + \retval none +*/ +void wwdgt_flag_clear(void) +{ + WWDGT_STAT = (uint32_t)(RESET); +} + +/*! + \brief enable early wakeup interrupt of WWDGT + \param[in] none + \param[out] none + \retval none +*/ +void wwdgt_interrupt_enable(void) +{ + WWDGT_CFG |= WWDGT_CFG_EWIE; +} diff --git a/boot_source/platform/drivers/inc/24cxx.h b/boot_source/platform/drivers/inc/24cxx.h index 03192583b6e1208b550c4faf4041b75c08899556..02fb26a66b8b4f5d6059fe075e1641c1cacd7347 100644 GIT binary patch delta 4336 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 delta 4336 zcmVEUwK}UZh_t;)kc`wg#{|V{=lv0q?Z!;$&|fu!min=c4ncOD z2FQ9J3-a;14i=H}`6XYTi?s_-tr2#FU>0K<`dmbUlP{8{VMxn4lI_Oca7IiugTDH) z;U5o?@CknwOG%{EL9Y34ok>oqh+l-RFcbMm)AwrsX9K-I>bd8}M2Rfih#%E0{`$C3 zy!{|cB@)8%aHutTHK8*$)ffGJW7@@Et}8Ra3+KNp#CK1Gvs{5fe1@EIVd7lER}7U~ z^6SX5g;Eh3CY^BBuknbQ_uHamk73~WU~k>t`B8tLz__^S;Jp}IwqY%!$RD0IiT=mt z}ZE#OW;-hjwn`91mU`m=_O!;~n+N{{+_J8~?FW zrg&u>4N}tMc;|O@v24P>UnYCZ8;5GUF8Y7k#n~Ga3x5p*hP|VI2p$D~-J-FOM<;)5 z)zyjrzBplfAa_$rmWHZv)`e;Z?=Gka{`21b^Q&i|u z3;t{w=gT{<0RU5W|-MAt*!&47+YD+5 znKN@2x|WW^#n~9Z140mywyfZU4I<|vV#H+WKXxhLfn4(3eI!6y#Lta#O+aie&lLn) zHkSBzgSe-z_}^TYW*7}tJS^f*X;*)dvDJkN6aES^LGFSxy>Mq4ESjXR67AmMnhN1s zU1j1o0;`PI-qrzkrqcUrh>X*{PgQ!!ai)x%4Ftdl!sXaAK1<}{Vt1ZTNU_VjcqCKz z<|ACuUh}cm`G10cqXY~t&_xqii1MTJujidD1RJUCP2p&9Db~EBd=@R&#AAO>TBL(Z z*)E|79~)_kdrXOR;^{TQlyTIR*Z)SjQ4Vk|%wZ<}SbQKF--KFo^FSz%cM&DXj{N40 zVN8goDywqtwJb#tR_LQHoyV$SFsIpJg#><`6AapRSoPfor8bMkX3rp%@Pu}bVQ5!7 zxNlSPDAAj-luie>EvS+jSoMGFeix-Q9kqDzZ?~>5H16;R>uNMzEjB3T8j<<+p}%)K z*m?CW#lt&BlE&hou5|dr9K@(?ip9IM7}>sLwLwpN>ou&na#`eMebvljw_Bmb11WPL z=zR6$^kyU(7S@0X#isd5{l)}KUEWJ6LZB3p*9S1!b~h}dwYPrCm4AOiAUzX=Xg%0j zD`NVy{~tR0W*pB*t9>cYFEIj#_+ikPfJH0&YUEC;TwtCSg z@@*E%V=`q!eB>jYozXD&I;T+Yrj{TCRbPAoj>^x>M}yNogvA=kD8GbuKVg26AiW(T zNG<9vX~;Q~30=@y_%MH!gZ@($Iq7H`mt{I^*GSHx#~)8+h-O)5N#b#$l@}rPv*4DU z9j@bz)W%Vi<~++-0XR4#hB6 z7%#b22b;pOf@zd`&6D*ckx{7TGFltYPSEbakh1`HHOn2|JeGgL=B>Z6q{)2^UE{a0 zW44H+z&9YXwHL6rrD_lB-ZSFLi)4AUsx?>E`^wwsRiI!SE-6S&3%Psc35_SZjc`$; zM@INZf>~*e7LJwiH1q>w%I0TyTaM@Sr@XsDXb=)N8l}1nKkw1_HK9t*fWrzUFM6_90XM{7Y2C{p^k%N@Wx(?ez5t70?t*4y;YGr{2fOS8 zc6OZ0z`RX-uY!%V)Q*)tQhC&KjP~_VY24jNWtk zBj6DeP(8ZPQFek>`n5UoHUZT-eu!Snv-{Xt?-PkF(b)7C9>G^pTEiVey(>=UD{Jf~ zXx*0Xyf=T8UnQGRWtUbcX3$>&j=lBS*(pTaN^RGKU zRl46YG{%}15DQwONvjEY`&W50k=|+EfnAlLJMeEd9Ena7BB)2Dg7o6gZnjqQQJL%SLa87MufZT9Eq@ zTksuNkS(tD*e(BC(7%Pr`G7DR1Scz8B67Y5`{y&i$vg+&I;2Zfgo(5X!U?+{8A3ul z6^T!izEu_G7>f9yxaVIUOcqx}<0S=h=garJSIPF(4t24I)WK!;IG1eSlH=V6Aq%P( z=x%>rF@&5ImqDt+7 zG8~NCdO$tvF@-;bONh5B)hgw{#R4_?^a_8y`;}hXg8q_HrR2+E3fGWg^`-DO#RhPP zt(H`bH7zflUfwsQi4c8)lbZ&OXT( z<)D%C&xK{Bl9rdBkJRdQhW&nR1Q85LVSM`4zAgdLs~*z*wnBZDQVw!K_Dx#2hFE_H zV}{a|biW5C)xHFBz=&w`*4UbXZ5quT8{7KXR$oE0o9bF0ieQPD7%V#;WWMYWekPdmWn!_H{^o)4hmKVi8WA*B z8WI8mDT#NhBz>+ri`z zt}fYRqd@+ZhN5MG8(WszJ1en{*}Gk{&e-G$EnJ#AHE6|Q!9XnSQG!$gx0r zoX;^8ZtBCS|8#47Wz+J*xQy9J^I2cd-o*2so&!e~EWr%N`q&DVd$qeRZnROM7mq}q zk?71Cisy{nJ_IaUNxWR~eU=iTZ%xz$DfP5buN76tGaIgH0Tq=>2V;xK{Af6KZ%tNMFI% z-rHk}JN3!mS>u(a(S(`T2eP1(Pp#Hwhe-!OTTzs`ROdg`K!*LFos3(+sDW$27MEGsSR zAIH4WF;A5k2}vHVF~1h`n9QNnB2MmQuCo3IPf>lU{c( ze1kqG>dz9fBt>H09q|VvY6Ecc{5ygt=h}+9o+XR+vQRNaAwa9t-l;?W)k;1AB~v?~ zek^lJ4t>|r9U=?2Lt*JVz@ak$0mmS*(of4>nVEfyhvt7gfgxNh;33$Uzmf*~Ht0?X zSZZFg=6+xM{B|oRxerco9WRjlU8Zb42924?ILz719tCD2G32 zKcVDy4rfN~lEhd_>1-M!RH&6EcV(PSzR4!NYK(4pPLz$X3H|F^Q$R zZhvOqRbDav59ZU#GZ(qSDVmHO!YYnwg;C2q@+~V4mto-ZQXHbbT1KbV!8lBaocjwT z!*_qW=u&N5KY0Kg7mJ@H9$F6DeS46o#)(a0?4Du3ZKUC4T@;jO;&Nf~p;D0$hwyFt zYRV||VL1oRm-FbzY8(F@V?~2xT6poz$z~5qh->?o$n_J`6pbRDS+E}eIjR->Ss&cM z?`vw5z&CRmCc%m6_W0+Ai!y7oJQYA?s*8VqSSMXCzeaKLQ>V&&s9wRS6s13RUX&n@ z)Z%^_sg+kTbrhcYuFd%t{PE6pH5nnb7_U&~W`ZT4L!os8PN(#!(enLaY)B^OAz`XH zH}hsduv-9zf&JCLdoBLrUV4Hj)Jzkx7sL`@P}em=|K$tPAQYMg$F(rusKoFA1XX{Q z4VxCS-V{dwk)2q4TbktLtaQ@apHr69Z*OZkgTU{@*Cm26RW5X-Ob$2J6TnSA<^rMk zT-954bDe=x4`P5B@{z<>JQrY=zl5?)Tu3=wvMTfv)Xl6{#I~G51LzuDK&>f&Qiz~Q z=@V{6*8{b)(N^(SQ@$`&>z|Pw-{PVu1;BZZ0{V=wVjU5+s5I;#`dCHHuvZEWj zs2tJ*@UgKnFrg-D=vU7MZ`YtvUvLZn diff --git a/boot_source/platform/drivers/inc/bsp_i2c_gpio.h b/boot_source/platform/drivers/inc/bsp_i2c_gpio.h index 0939659249a510cb3a27ce2e306279e58041c751..aca7e994bc6b7013b75fe21208baf22b8e6b1402 100644 GIT binary patch literal 8192 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%0Afz+zu40mDx>fLvodWt982o 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 literal 16384 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 diff --git a/boot_source/platform/drivers/inc/can2.h b/boot_source/platform/drivers/inc/can2.h index a92fb72bdbefd3af5cca14b9b2243d8c3230d244..f3d4ef0c126c52174236dd05a5951bad888c2917 100644 GIT binary patch delta 4336 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 delta 4336 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 delta 4342 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 Q9BCz9O+`+PiFK!5UPS;5IsgCw literal 28672 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 P(oi-&#abah!WJtBb$Jm5 diff --git a/boot_source/platform/drivers/src/EEROM/bsp_i2c_gpio.c b/boot_source/platform/drivers/src/EEROM/bsp_i2c_gpio.c index 909307ba0412b60a3f75725429ea5a415b5a2d90..024259844f385ce26a199dccf65b8ba35a844bfa 100644 GIT binary patch literal 16384 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 BPksOZ literal 16384 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 diff --git a/boot_source/platform/drivers/src/LED/led.c b/boot_source/platform/drivers/src/LED/led.c index 35ee3233299f305ad6b48a79e3e24fb7e7273c45..51ea1d813f0c21a917e41eebe65d0597aaf6f77b 100644 GIT binary patch literal 16384 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 FYn4a}VWt28 diff --git a/boot_source/platform/drivers/src/flash/ecual_flash.c b/boot_source/platform/drivers/src/flash/ecual_flash.c index b9b56b1ec81e1f84659bc9844c4a281b6e6e7911..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 GIT binary patch literal 0 HcmV?d00001 literal 16384 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

    ^3o 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 diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_adc.h b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_adc.h new file mode 100644 index 0000000..b039162 --- /dev/null +++ b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_adc.h @@ -0,0 +1,364 @@ +/*! + \file gd32f10x_adc.h + \brief definitions for the ADC + + \version 2024-01-05, V2.3.0, firmware for GD32F10x +*/ + +/* + Copyright (c) 2024, GigaDevice Semiconductor Inc. + + Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +*/ + +#ifndef GD32F10x_ADC_H +#define GD32F10x_ADC_H + +#include "gd32f10x.h" + +/* ADC definitions */ +#define ADC0 ADC_BASE +#define ADC1 (ADC_BASE + 0x400U) +#define ADC2 (ADC_BASE + 0x1800U) + +/* registers definitions */ +#define ADC_STAT(adcx) REG32((adcx) + 0x00U) /*!< ADC status register */ +#define ADC_CTL0(adcx) REG32((adcx) + 0x04U) /*!< ADC control register 0 */ +#define ADC_CTL1(adcx) REG32((adcx) + 0x08U) /*!< ADC control register 1 */ +#define ADC_SAMPT0(adcx) REG32((adcx) + 0x0CU) /*!< ADC sampling time register 0 */ +#define ADC_SAMPT1(adcx) REG32((adcx) + 0x10U) /*!< ADC sampling time register 1 */ +#define ADC_IOFF0(adcx) REG32((adcx) + 0x14U) /*!< ADC inserted channel data offset register 0 */ +#define ADC_IOFF1(adcx) REG32((adcx) + 0x18U) /*!< ADC inserted channel data offset register 1 */ +#define ADC_IOFF2(adcx) REG32((adcx) + 0x1CU) /*!< ADC inserted channel data offset register 2 */ +#define ADC_IOFF3(adcx) REG32((adcx) + 0x20U) /*!< ADC inserted channel data offset register 3 */ +#define ADC_WDHT(adcx) REG32((adcx) + 0x24U) /*!< ADC watchdog high threshold register */ +#define ADC_WDLT(adcx) REG32((adcx) + 0x28U) /*!< ADC watchdog low threshold register */ +#define ADC_RSQ0(adcx) REG32((adcx) + 0x2CU) /*!< ADC regular sequence register 0 */ +#define ADC_RSQ1(adcx) REG32((adcx) + 0x30U) /*!< ADC regular sequence register 1 */ +#define ADC_RSQ2(adcx) REG32((adcx) + 0x34U) /*!< ADC regular sequence register 2 */ +#define ADC_ISQ(adcx) REG32((adcx) + 0x38U) /*!< ADC inserted sequence register */ +#define ADC_IDATA0(adcx) REG32((adcx) + 0x3CU) /*!< ADC inserted data register 0 */ +#define ADC_IDATA1(adcx) REG32((adcx) + 0x40U) /*!< ADC inserted data register 1 */ +#define ADC_IDATA2(adcx) REG32((adcx) + 0x44U) /*!< ADC inserted data register 2 */ +#define ADC_IDATA3(adcx) REG32((adcx) + 0x48U) /*!< ADC inserted data register 3 */ +#define ADC_RDATA(adcx) REG32((adcx) + 0x4CU) /*!< ADC regular data register */ + +/* bits definitions */ +/* ADC_STAT */ +#define ADC_STAT_WDE BIT(0) /*!< analog watchdog event flag */ +#define ADC_STAT_EOC BIT(1) /*!< end of conversion */ +#define ADC_STAT_EOIC BIT(2) /*!< inserted channel end of conversion */ +#define ADC_STAT_STIC BIT(3) /*!< inserted channel start flag */ +#define ADC_STAT_STRC BIT(4) /*!< regular channel start flag */ + +/* ADC_CTL0 */ +#define ADC_CTL0_WDCHSEL BITS(0,4) /*!< analog watchdog channel select bits */ +#define ADC_CTL0_EOCIE BIT(5) /*!< interrupt enable for EOC */ +#define ADC_CTL0_WDEIE BIT(6) /*!< analog watchdog interrupt enable */ +#define ADC_CTL0_EOICIE BIT(7) /*!< interrupt enable for inserted channels */ +#define ADC_CTL0_SM BIT(8) /*!< scan mode */ +#define ADC_CTL0_WDSC BIT(9) /*!< when in scan mode, analog watchdog is effective on a single channel */ +#define ADC_CTL0_ICA BIT(10) /*!< automatic inserted group conversion */ +#define ADC_CTL0_DISRC BIT(11) /*!< discontinuous mode on regular channels */ +#define ADC_CTL0_DISIC BIT(12) /*!< discontinuous mode on inserted channels */ +#define ADC_CTL0_DISNUM BITS(13,15) /*!< discontinuous mode channel count */ +#define ADC_CTL0_SYNCM BITS(16,19) /*!< sync mode selection */ +#define ADC_CTL0_IWDEN BIT(22) /*!< analog watchdog enable on inserted channels */ +#define ADC_CTL0_RWDEN BIT(23) /*!< analog watchdog enable on regular channels */ +#define ADC_CTL0_DRES BITS(24,25) /*!< ADC data resolution */ + +/* ADC_CTL1 */ +#define ADC_CTL1_ADCON BIT(0) /*!< ADC converter on */ +#define ADC_CTL1_CTN BIT(1) /*!< continuous conversion */ +#define ADC_CTL1_CLB BIT(2) /*!< ADC calibration */ +#define ADC_CTL1_RSTCLB BIT(3) /*!< reset calibration */ +#define ADC_CTL1_DMA BIT(8) /*!< direct memory access mode */ +#define ADC_CTL1_DAL BIT(11) /*!< data alignment */ +#define ADC_CTL1_ETSIC BITS(12,14) /*!< external trigger select for inserted channel */ +#define ADC_CTL1_ETEIC BIT(15) /*!< external trigger enable for inserted channel */ +#define ADC_CTL1_ETSRC BITS(17,19) /*!< external trigger select for regular channel */ +#define ADC_CTL1_ETERC BIT(20) /*!< external trigger conversion mode for inserted channels */ +#define ADC_CTL1_SWICST BIT(21) /*!< start on inserted channel */ +#define ADC_CTL1_SWRCST BIT(22) /*!< start on regular channel */ +#define ADC_CTL1_TSVREN BIT(23) /*!< channel 16 and 17 enable of ADC0 */ + +/* ADC_SAMPTx x=0..1 */ +#define ADC_SAMPTX_SPTN BITS(0,2) /*!< channel n sample time selection */ + +/* ADC_IOFFx x=0..3 */ +#define ADC_IOFFX_IOFF BITS(0,11) /*!< data offset for inserted channel x */ + +/* ADC_WDHT */ +#define ADC_WDHT_WDHT BITS(0,11) /*!< analog watchdog high threshold */ + +/* ADC_WDLT */ +#define ADC_WDLT_WDLT BITS(0,11) /*!< analog watchdog low threshold */ + +/* ADC_RSQx x=0..2 */ +#define ADC_RSQX_RSQN BITS(0,4) /*!< nth conversion in regular sequence */ +#define ADC_RSQ0_RL BITS(20,23) /*!< regular channel sequence length */ + +/* ADC_ISQ */ +#define ADC_ISQ_ISQN BITS(0,4) /*!< nth conversion in inserted sequence */ +#define ADC_ISQ_IL BITS(20,21) /*!< inserted sequence length */ + +/* ADC_IDATAx x=0..3*/ +#define ADC_IDATAX_IDATAN BITS(0,15) /*!< inserted data n */ + +/* ADC_RDATA */ +#define ADC_RDATA_RDATA BITS(0,15) /*!< regular data */ +#define ADC_RDATA_ADC1RDTR BITS(16,31) /*!< ADC1 regular channel data */ + +/* constants definitions */ +/* adc_stat register value */ +#define ADC_FLAG_WDE ADC_STAT_WDE /*!< analog watchdog event flag */ +#define ADC_FLAG_EOC ADC_STAT_EOC /*!< end of conversion */ +#define ADC_FLAG_EOIC ADC_STAT_EOIC /*!< inserted channel end of conversion */ +#define ADC_FLAG_STIC ADC_STAT_STIC /*!< inserted channel start flag */ +#define ADC_FLAG_STRC ADC_STAT_STRC /*!< regular channel start flag */ + +/* adc_ctl0 register value */ +#define CTL0_DISNUM(regval) (BITS(13,15) & ((uint32_t)(regval) << 13)) /*!< write value to ADC_CTL0_DISNUM bit field */ + +/* scan mode */ +#define ADC_SCAN_MODE ADC_CTL0_SM /*!< scan mode */ + +/* inserted channel group convert automatically */ +#define ADC_INSERTED_CHANNEL_AUTO ADC_CTL0_ICA /*!< inserted channel group convert automatically */ + +/* ADC sync mode */ +#define CTL0_SYNCM(regval) (BITS(16,19) & ((uint32_t)(regval) << 16)) /*!< write value to ADC_CTL0_SYNCM bit field */ +#define ADC_MODE_FREE CTL0_SYNCM(0) /*!< all the ADCs work independently */ +#define ADC_DAUL_REGULAL_PARALLEL_INSERTED_PARALLEL CTL0_SYNCM(1) /*!< ADC0 and ADC1 work in combined regular parallel + inserted parallel mode */ +#define ADC_DAUL_REGULAL_PARALLEL_INSERTED_ROTATION CTL0_SYNCM(2) /*!< ADC0 and ADC1 work in combined regular parallel + trigger rotation mode */ +#define ADC_DAUL_INSERTED_PARALLEL_REGULAL_FOLLOWUP_FAST CTL0_SYNCM(3) /*!< ADC0 and ADC1 work in combined inserted parallel + follow-up fast mode */ +#define ADC_DAUL_INSERTED_PARALLEL_REGULAL_FOLLOWUP_SLOW CTL0_SYNCM(4) /*!< ADC0 and ADC1 work in combined inserted parallel + follow-up slow mode */ +#define ADC_DAUL_INSERTED_PARALLEL CTL0_SYNCM(5) /*!< ADC0 and ADC1 work in inserted parallel mode only */ +#define ADC_DAUL_REGULAL_PARALLEL CTL0_SYNCM(6) /*!< ADC0 and ADC1 work in regular parallel mode only */ +#define ADC_DAUL_REGULAL_FOLLOWUP_FAST CTL0_SYNCM(7) /*!< ADC0 and ADC1 work in follow-up fast mode only */ +#define ADC_DAUL_REGULAL_FOLLOWUP_SLOW CTL0_SYNCM(8) /*!< ADC0 and ADC1 work in follow-up slow mode only */ +#define ADC_DAUL_INSERTED_TRIGGER_ROTATION CTL0_SYNCM(9) /*!< ADC0 and ADC1 work in trigger rotation mode only */ + +/* adc_ctl1 register value */ +#define ADC_DATAALIGN_RIGHT ((uint32_t)0x00000000U) /*!< LSB alignment */ +#define ADC_DATAALIGN_LEFT ADC_CTL1_DAL /*!< MSB alignment */ + +/* continuous mode */ +#define ADC_CONTINUOUS_MODE ADC_CTL1_CTN /*!< continuous mode */ + +/* external trigger select for regular channel */ +#define CTL1_ETSRC(regval) (BITS(17,19) & ((uint32_t)(regval) << 17)) /*!< write value to ADC_CTL1_ETSRC bit field */ +/* for ADC0 and ADC1 regular channel */ +#define ADC0_1_EXTTRIG_REGULAR_T0_CH0 CTL1_ETSRC(0) /*!< TIMER0 CH0 event select */ +#define ADC0_1_EXTTRIG_REGULAR_T0_CH1 CTL1_ETSRC(1) /*!< TIMER0 CH1 event select */ +#define ADC0_1_EXTTRIG_REGULAR_T0_CH2 CTL1_ETSRC(2) /*!< TIMER0 CH2 event select */ +#define ADC0_1_EXTTRIG_REGULAR_T1_CH1 CTL1_ETSRC(3) /*!< TIMER1 CH1 event select */ +#define ADC0_1_EXTTRIG_REGULAR_T2_TRGO CTL1_ETSRC(4) /*!< TIMER2 TRGO event select */ +#define ADC0_1_EXTTRIG_REGULAR_T3_CH3 CTL1_ETSRC(5) /*!< TIMER3 CH3 event select */ +#define ADC0_1_EXTTRIG_REGULAR_T7_TRGO CTL1_ETSRC(6) /*!< TIMER7 TRGO event select */ +#define ADC0_1_EXTTRIG_REGULAR_EXTI_11 CTL1_ETSRC(6) /*!< external interrupt line 11 */ +#define ADC0_1_2_EXTTRIG_REGULAR_NONE CTL1_ETSRC(7) /*!< software trigger */ +/* for ADC2 regular channel */ +#define ADC2_EXTTRIG_REGULAR_T2_CH0 CTL1_ETSRC(0) /*!< TIMER2 CH0 event select */ +#define ADC2_EXTTRIG_REGULAR_T1_CH2 CTL1_ETSRC(1) /*!< TIMER1 CH2 event select */ +#define ADC2_EXTTRIG_REGULAR_T0_CH2 CTL1_ETSRC(2) /*!< TIMER0 CH2 event select */ +#define ADC2_EXTTRIG_REGULAR_T7_CH0 CTL1_ETSRC(3) /*!< TIMER7 CH0 event select */ +#define ADC2_EXTTRIG_REGULAR_T7_TRGO CTL1_ETSRC(4) /*!< TIMER7 TRGO event select */ +#define ADC2_EXTTRIG_REGULAR_T4_CH0 CTL1_ETSRC(5) /*!< TIMER4 CH0 event select */ +#define ADC2_EXTTRIG_REGULAR_T4_CH2 CTL1_ETSRC(6) /*!< TIMER4 CH2 event select */ + +/* external trigger mode for inserted channel */ +#define CTL1_ETSIC(regval) (BITS(12,14) & ((uint32_t)(regval) << 12)) /*!< write value to ADC_CTL1_ETSIC bit field */ +/* for ADC0 and ADC1 inserted channel */ +#define ADC0_1_EXTTRIG_INSERTED_T0_TRGO CTL1_ETSIC(0) /*!< TIMER0 TRGO event select */ +#define ADC0_1_EXTTRIG_INSERTED_T0_CH3 CTL1_ETSIC(1) /*!< TIMER0 CH3 event select */ +#define ADC0_1_EXTTRIG_INSERTED_T1_TRGO CTL1_ETSIC(2) /*!< TIMER1 TRGO event select */ +#define ADC0_1_EXTTRIG_INSERTED_T1_CH0 CTL1_ETSIC(3) /*!< TIMER1 CH0 event select */ +#define ADC0_1_EXTTRIG_INSERTED_T2_CH3 CTL1_ETSIC(4) /*!< TIMER2 CH3 event select */ +#define ADC0_1_EXTTRIG_INSERTED_T3_TRGO CTL1_ETSIC(5) /*!< TIMER3 TRGO event select */ +#define ADC0_1_EXTTRIG_INSERTED_EXTI_15 CTL1_ETSIC(6) /*!< external interrupt line 15 */ +#define ADC0_1_EXTTRIG_INSERTED_T7_CH3 CTL1_ETSIC(6) /*!< TIMER7 CH3 event select */ +#define ADC0_1_2_EXTTRIG_INSERTED_NONE CTL1_ETSIC(7) /*!< software trigger */ +/* for ADC2 inserted channel */ +#define ADC2_EXTTRIG_INSERTED_T0_TRGO CTL1_ETSIC(0) /*!< TIMER0 TRGO event select */ +#define ADC2_EXTTRIG_INSERTED_T0_CH3 CTL1_ETSIC(1) /*!< TIMER0 CH3 event select */ +#define ADC2_EXTTRIG_INSERTED_T3_CH2 CTL1_ETSIC(2) /*!< TIMER3 CH2 event select */ +#define ADC2_EXTTRIG_INSERTED_T7_CH1 CTL1_ETSIC(3) /*!< TIMER7 CH1 event select */ +#define ADC2_EXTTRIG_INSERTED_T7_CH3 CTL1_ETSIC(4) /*!< TIMER7 CH3 event select */ +#define ADC2_EXTTRIG_INSERTED_T4_TRGO CTL1_ETSIC(5) /*!< TIMER4 TRGO event select */ +#define ADC2_EXTTRIG_INSERTED_T4_CH3 CTL1_ETSIC(6) /*!< TIMER4 CH3 event select */ + +/* adc_samptx register value */ +#define SAMPTX_SPT(regval) (BITS(0,2) & ((uint32_t)(regval) << 0)) /*!< write value to ADC_SAMPTX_SPT bit field */ +#define ADC_SAMPLETIME_1POINT5 SAMPTX_SPT(0) /*!< 1.5 sampling cycles */ +#define ADC_SAMPLETIME_7POINT5 SAMPTX_SPT(1) /*!< 7.5 sampling cycles */ +#define ADC_SAMPLETIME_13POINT5 SAMPTX_SPT(2) /*!< 13.5 sampling cycles */ +#define ADC_SAMPLETIME_28POINT5 SAMPTX_SPT(3) /*!< 28.5 sampling cycles */ +#define ADC_SAMPLETIME_41POINT5 SAMPTX_SPT(4) /*!< 41.5 sampling cycles */ +#define ADC_SAMPLETIME_55POINT5 SAMPTX_SPT(5) /*!< 55.5 sampling cycles */ +#define ADC_SAMPLETIME_71POINT5 SAMPTX_SPT(6) /*!< 71.5 sampling cycles */ +#define ADC_SAMPLETIME_239POINT5 SAMPTX_SPT(7) /*!< 239.5 sampling cycles */ + +/* adc_ioffx register value */ +#define IOFFX_IOFF(regval) (BITS(0,11) & ((uint32_t)(regval) << 0)) /*!< write value to ADC_IOFFX_IOFF bit field */ + +/* adc_wdht register value */ +#define WDHT_WDHT(regval) (BITS(0,11) & ((uint32_t)(regval) << 0)) /*!< write value to ADC_WDHT_WDHT bit field */ + +/* adc_wdlt register value */ +#define WDLT_WDLT(regval) (BITS(0,11) & ((uint32_t)(regval) << 0)) /*!< write value to ADC_WDLT_WDLT bit field */ + +/* adc_rsqx register value */ +#define RSQ0_RL(regval) (BITS(20,23) & ((uint32_t)(regval) << 20)) /*!< write value to ADC_RSQ0_RL bit field */ + +/* adc_isq register value */ +#define ISQ_IL(regval) (BITS(20,21) & ((uint32_t)(regval) << 20)) /*!< write value to ADC_ISQ_IL bit field */ + +/* ADC channel group definitions */ +#define ADC_REGULAR_CHANNEL ((uint8_t)0x01U) /*!< adc regular channel group */ +#define ADC_INSERTED_CHANNEL ((uint8_t)0x02U) /*!< adc inserted channel group */ +#define ADC_REGULAR_INSERTED_CHANNEL ((uint8_t)0x03U) /*!< both regular and inserted channel group */ + +#define ADC_CHANNEL_DISCON_DISABLE ((uint8_t)0x04U) /*!< disable discontinuous mode of regular & inserted channel */ + +/* ADC inserted channel definitions */ +#define ADC_INSERTED_CHANNEL_0 ((uint8_t)0x00U) /*!< adc inserted channel 0 */ +#define ADC_INSERTED_CHANNEL_1 ((uint8_t)0x01U) /*!< adc inserted channel 1 */ +#define ADC_INSERTED_CHANNEL_2 ((uint8_t)0x02U) /*!< adc inserted channel 2 */ +#define ADC_INSERTED_CHANNEL_3 ((uint8_t)0x03U) /*!< adc inserted channel 3 */ + +/* ADC channel definitions */ +#define ADC_CHANNEL_0 ((uint8_t)0x00U) /*!< ADC channel 0 */ +#define ADC_CHANNEL_1 ((uint8_t)0x01U) /*!< ADC channel 1 */ +#define ADC_CHANNEL_2 ((uint8_t)0x02U) /*!< ADC channel 2 */ +#define ADC_CHANNEL_3 ((uint8_t)0x03U) /*!< ADC channel 3 */ +#define ADC_CHANNEL_4 ((uint8_t)0x04U) /*!< ADC channel 4 */ +#define ADC_CHANNEL_5 ((uint8_t)0x05U) /*!< ADC channel 5 */ +#define ADC_CHANNEL_6 ((uint8_t)0x06U) /*!< ADC channel 6 */ +#define ADC_CHANNEL_7 ((uint8_t)0x07U) /*!< ADC channel 7 */ +#define ADC_CHANNEL_8 ((uint8_t)0x08U) /*!< ADC channel 8 */ +#define ADC_CHANNEL_9 ((uint8_t)0x09U) /*!< ADC channel 9 */ +#define ADC_CHANNEL_10 ((uint8_t)0x0AU) /*!< ADC channel 10 */ +#define ADC_CHANNEL_11 ((uint8_t)0x0BU) /*!< ADC channel 11 */ +#define ADC_CHANNEL_12 ((uint8_t)0x0CU) /*!< ADC channel 12 */ +#define ADC_CHANNEL_13 ((uint8_t)0x0DU) /*!< ADC channel 13 */ +#define ADC_CHANNEL_14 ((uint8_t)0x0EU) /*!< ADC channel 14 */ +#define ADC_CHANNEL_15 ((uint8_t)0x0FU) /*!< ADC channel 15 */ +#define ADC_CHANNEL_16 ((uint8_t)0x10U) /*!< ADC channel 16 */ +#define ADC_CHANNEL_17 ((uint8_t)0x11U) /*!< ADC channel 17 */ + +/* ADC interrupt */ +#define ADC_INT_WDE ADC_STAT_WDE /*!< analog watchdog event interrupt */ +#define ADC_INT_EOC ADC_STAT_EOC /*!< end of group conversion interrupt */ +#define ADC_INT_EOIC ADC_STAT_EOIC /*!< end of inserted group conversion interrupt */ + +/* ADC interrupt flag */ +#define ADC_INT_FLAG_WDE ADC_STAT_WDE /*!< analog watchdog event interrupt flag */ +#define ADC_INT_FLAG_EOC ADC_STAT_EOC /*!< end of group conversion interrupt flag */ +#define ADC_INT_FLAG_EOIC ADC_STAT_EOIC /*!< end of inserted group conversion interrupt flag */ + +/* function declarations */ +/* initialization config */ +/* reset ADC */ +void adc_deinit(uint32_t adc_periph); +/* configure the ADC sync mode */ +void adc_mode_config(uint32_t mode); +/* enable or disable ADC special function */ +void adc_special_function_config(uint32_t adc_periph, uint32_t function, ControlStatus newvalue); +/* configure ADC data alignment */ +void adc_data_alignment_config(uint32_t adc_periph, uint32_t data_alignment); +/* enable ADC interface */ +void adc_enable(uint32_t adc_periph); +/* disable ADC interface */ +void adc_disable(uint32_t adc_periph); +/* ADC calibration and reset calibration(GD32F10x_MD series without this function) */ +void adc_calibration_enable(uint32_t adc_periph); +/* enable the temperature sensor and Vrefint channel */ +void adc_tempsensor_vrefint_enable(void); +/* disable the temperature sensor and Vrefint channel */ +void adc_tempsensor_vrefint_disable(void); + +/* DMA config */ +/* enable DMA request */ +void adc_dma_mode_enable(uint32_t adc_periph); +/* disable DMA request */ +void adc_dma_mode_disable(uint32_t adc_periph); + +/* regular group and inserted group config */ +/* configure ADC discontinuous mode */ +void adc_discontinuous_mode_config(uint32_t adc_periph, uint8_t adc_channel_group, uint8_t length); + +/* configure the length of regular channel group or inserted channel group */ +void adc_channel_length_config(uint32_t adc_periph, uint8_t adc_channel_group, uint32_t length); +/* configure ADC regular channel */ +void adc_regular_channel_config(uint32_t adc_periph, uint8_t rank, uint8_t adc_channel, uint32_t sample_time); +/* configure ADC inserted channel */ +void adc_inserted_channel_config(uint32_t adc_periph, uint8_t rank, uint8_t adc_channel, uint32_t sample_time); +/* configure ADC inserted channel offset */ +void adc_inserted_channel_offset_config(uint32_t adc_periph, uint8_t inserted_channel, uint16_t offset); + +/* configure ADC external trigger source */ +void adc_external_trigger_source_config(uint32_t adc_periph, uint8_t adc_channel_group, uint32_t external_trigger_source); +/* configure ADC external trigger */ +void adc_external_trigger_config(uint32_t adc_periph, uint8_t adc_channel_group, ControlStatus newvalue); +/* enable ADC software trigger */ +void adc_software_trigger_enable(uint32_t adc_periph, uint8_t adc_channel_group); + +/* get channel data */ +/* read ADC regular group data register */ +uint16_t adc_regular_data_read(uint32_t adc_periph); +/* read ADC inserted group data register */ +uint16_t adc_inserted_data_read(uint32_t adc_periph, uint8_t inserted_channel); +/* read the last ADC0 and ADC1 conversion result data in sync mode */ +uint32_t adc_sync_mode_convert_value_read(void); + +/* watchdog config */ +/* configure ADC analog watchdog single channel */ +void adc_watchdog_single_channel_enable(uint32_t adc_periph, uint8_t adc_channel); +/* configure ADC analog watchdog group channel */ +void adc_watchdog_group_channel_enable(uint32_t adc_periph, uint8_t adc_channel_group); +/* disable ADC analog watchdog */ +void adc_watchdog_disable(uint32_t adc_periph); +/* configure ADC analog watchdog threshold */ +void adc_watchdog_threshold_config(uint32_t adc_periph, uint16_t low_threshold, uint16_t high_threshold); + +/* interrupt & flag functions */ +/* get the ADC flag bits */ +FlagStatus adc_flag_get(uint32_t adc_periph, uint32_t adc_flag); +/* clear the ADC flag bits */ +void adc_flag_clear(uint32_t adc_periph, uint32_t adc_flag); +/* get the bit state of ADCx software start conversion */ +FlagStatus adc_regular_software_startconv_flag_get(uint32_t adc_periph); +/* get the bit state of ADCx software inserted channel start conversion */ +FlagStatus adc_inserted_software_startconv_flag_get(uint32_t adc_periph); +/* get the ADC interrupt bits */ +FlagStatus adc_interrupt_flag_get(uint32_t adc_periph, uint32_t adc_interrupt); +/* clear the ADC flag */ +void adc_interrupt_flag_clear(uint32_t adc_periph, uint32_t adc_interrupt); +/* enable ADC interrupt */ +void adc_interrupt_enable(uint32_t adc_periph, uint32_t adc_interrupt); +/* disable ADC interrupt */ +void adc_interrupt_disable(uint32_t adc_periph, uint32_t adc_interrupt); + +#endif /* GD32F10x_ADC_H */ diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_bkp.h b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_bkp.h new file mode 100644 index 0000000000000000000000000000000000000000..465810dcbe1a05dd922d00f10e308c5d15a9b460 GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_can.h b/boot_source/platform/Chip_peripheral_dev/GD32F10x_standard_peripheral/Include/gd32f10x_can.h new file mode 100644 index 0000000000000000000000000000000000000000..89f7983a2aba08bc3f20d89b8356b591c75a1448 GIT binary patch literal 61440 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%0AIGqtc#M<|x+&bw>CTC4fN5A< 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�Zb z1_s8X6aHOyMb5z|uu`J!$zxJ26Kk0t_IF6o&CjCKih+-uXax>H;|1v}*S&Z2UV#YZ za26^eW(jkhX~;hzNQV|i1=!=3BW*#Xl;3@0OE~CLn1`mtFFI<*qQv47pog=~!c_9P zs*o(&BhyQ&B&6x5u%zsLJ(;W+wrdOo=?@>m@5N#@mh{Wp<|79mSVR+IkER{)w|*2 zD9>3`dpqGY_Ncmf}Dc^@3>! zkIs27;kTNerxo=yr+GEs=)npHgYbrTgCpF$r}B11VUz`!u#J4Tijr`fS z%6S1X0_Hf!*T);V?1&|ne5;{7y~e88k%kLcaSXk;glo%yr^CuWOs-hEX0f%&j0gdY z!NBi&hPQFIgJ}vpe-6ko8-JwUB^)Td0Sg+FLTJW}pr?B8YW0x9R@VFFmU_SmVHx6{ zoRIL8enVmN8yZFBgv(`*XZke)asnoqWT-0-EMt<_@TLgLF^}JPqaP#TbUySe4k%V? zm%>FDV{N?3HdvuP@0{f<2;{woM{TY{5Z~B5Bs6*`N1hARpq3F6CfbxOo%PTMcFZJ+ zQTd^zS{pf(9bUF@wAX(k%EBp$qdUO?F;up&-{HLf_7Z`|Ka1aY6b@cpUZ(h_77=@d z38IWw>?@Kjs^dcF(;aR6+;Uoq?a5!VMu~QvK|nY`kj)+1k_>P_g2tj5I}t3AXLPHN zF=$^{j3ETUYu~fl)B&plYgh5Cu zA$_YLg8i+RP1KmY<)w-FrUcjYF|^olZhZ6k&ck^H3uvn+r+%%J=M^IdEJwR3Bl46! zM^5P#13YN17_`CQfkgb_G(}4>b!7Q@u~L^$#QK?rd>FB0v>r1Ig-*PzY z8D+ug)>zMQ1QZPR{G9a9?_J6%EqAND;g8?;&MehdABvEmC|0TMq$C|VE9cV_#@E(r z!pl4)O6#$SUGbBKE2iBR06Jlm&Jr|%bF3!CTKJ%+Ugh?yJ$t|X4y^XNn~@NDC@1Y; zdoO@Ze?#pt?2=H^L(I!Kylr8IvJA{OdO3z8F(Ytuzq%7=ztW9M{{sug;m}1h#zlmv z5uzTLdgRj~6-w&}UgBkl-MFNqOdEexcSyKu0B}$GHnQMtQSRGnhJ;ew09a|nUMu65 zp|b}__s5oYBOuMFusu%y%)v>MaM(ZhoEV`{A+%snK&^gcJxh_t3oyyQ{ok`WP^E2U z-=QIjznG3?5&0OY;U6lwF9;|l4BwXPLlHQDp|?DPG>ji-CI`M3@kAkR6mWCH7hB=l zKknJs7!*X1$*R5aV=Skd4`ZG5c}8_d`xi)&HXfYV!pOoc1DJ7a({0`hxs_SbWX9_z zSE9n|bafx43|YN@8fyiAzrR4Jcj*FfSzbO*YfvQHHF$nqJlv*3mPvr7>3em|ExjLx z{`>&W;zw;Qp|K-WI>A+GkdOg%G6JpIRHi}L*m0$Y^;Yaq1j5oTVNATFRlizEz*7Vw ze?b;`pKhDe@F1Y~l26wN$7hxMER%X&KQGB$*?Wd@-l2j6a!O3-j?_=*jG zR(#TlFT+9p@fVK=i96_++d#LJ`S-Sj{1{WOU{kljjL2-f*2mMMU$6XRVddD%(V_4B zx*Yy5k=1O_{9Q@q_fi0te!f}y#sE3)^UVX{ZpO2mLcfDFHgJ~tXr}%;awd&IBE%oz z)C)2rR^rT^V0gk;?NOyOa0eI-1AET(eZ?*n}J$lv@u0@ed!EI^I4=X-D(4nt;Bv`X)0bwS}n`SiZmCBcs2n%guwNSzAccH1ih! z@(NgA16o`n0aq!u=v&+!vwfZIxJiKBD|hzH*k61*fozb5d;nFUrz(F2kd}1{Gj-KX>1e^0 zj8nD8J39v0;$!2%tMlS)rWsiTSvb+sf)oN(6wGy=odkHDWNm28>VwDt>i7!3GwEDF zG2C}QM35b(mXD4`@Y8d!ev%w_7;Rj$EP^^_iNuH2bc_MWaxtyeI|dHOZov6qq0Pf% z#Z`W5P&^L5x4dd02(to)>1-8b3N~!U&*S!ubeeIuT~0uJQg2Qg!P^pfA&Zw81vhHc zFS_q91Y$*sBmt>mj`fvSUz)NCt) znj0cdBOFeVY8WCJxjwR#Z2?i~>#4>fKd(C;=;8g4-iv%-DR@uoo|)X-?EZYsTPJuj zZzO+K3p7EoEQe&T@fW#;Z)9@Ru(C96;I}fvM}4VF1u9KS|#-q+6 zR+;3lDW}AwOf{4xP-^7m6%JsioNP(DX)=e}S8BN)0oGEO$d?X2Xxr$>UwmD`tuH9aU|0a^6S2;eifXl4uYC^ROK3@ zPXL{-f6e(Kl|a-kg*#4IdH&YmFB_ahWX0)iXW%KM<{aI~7E^ z#6onsT#oNeE+aCXRh;V5r)X-0vN?Y7$X#Liwd33EmA+%K#@C-3Ach8lAJ z(RinxtOhK`Y6D<6B@lCVfnARglCtV^OLZP8AOebl20JP`-ViU8*2#<$BRWy^3#a4`Def6 zBs4z)#{%Vvbjgn4WL*dbq4)L*^oGJ>FEz#RQ|Qr(dYC1B*de#s%l^n3!t_n779=C0 zH_nD+aN!dIQ#FhS{P=m#JSL!5!X`Zhnz*fBM~^GQa#o9o&WU5#mC*DU2hDl{jyAZp z=db|;3iM$Tg|T7T4-HYy+T556E2DLPJR$5+^+xR5 z7edgPP)BZl2XHuw0(Ez0iL5`eL-8qrvbY@Ivd1%Cs21W7>kGCm2PS^VLIM5vxXiP~ z#f{d8yc$g3>W+@M{ix8pnvT;dUUW?AOT2mKj?%FY74WT9`)hc%EF^6nu?r0_c`^jm z>a!39V%1;UZiC`ipf@hSx{-I>{==&^L8IS9PoazLPvJDd%u{G z`;QO+h=}2@!#Qcj91KcwUKMYOUu`voVJ2io%2NP9eB@f(@5v7w^Jqb-oS2fa$$?Sc zbT*Q<$d5f{009Pv1s`FoGT9wn*2A^|9fZ}vO0{OK>6XI}DAQCu(?dhyp@4j>f4dG% zMokpL3OmTM-6SHT1zy}QrL4<}$Y4=gI9dD0x9Y%H=^-R9{0m@9^F#oz%3Vt=!Cx&e zk^K$hns0#+cuV7E){u8XYw94wHKMsaVPcb>3dK{QOW6G%tQWw7b<9Q!!cmuTOYV-O z&De9Mxx<>QPN(|=eiTbs{LTvg{CV`|)8LP*>3Mx8ZDbUsfP#Gx@ee{@2= zN8$W~1CxeF-%#>f7%tX1LR%kn@n(n&_9U>Gm^Zoq0X;)sJdN!Evz1S7Wa7fK-p%~l z{Pm*HCB#eXnbOk3H(BGfe7FyLvr!-ZzrX5khs@KA4qT`X&ISwiUYwTNu-=qCT*qV zCHDwRd64}d(Z6h7$C(zZ!#J39|WF8x=Bq&x6^$%rY3hArwZESInw~pcFmG zGY5rVp6b8om>$PJQ7^m40hLHlah+@+ptD&c$er(C3x2v!iG=K+me4_r<(Y#}ZVm9zCa5c=8SeL`fR zFxCJD?s(vZc3Q~N%5g+K+$*)}ZHvHOQ@~cr3f`HAnGtlZo-8G;0`FD8jmF!mL{v{>!Gvc7cFMi2K1E)p0Y4L#+d?}5Zhi#FX?|c-ooKwG;3wt z;A$?oqh5juKK$rHP)?cEO$g0s;Q@~f$pVnKcE2Q_3ta^2kL{SUmmwye-ZZ|&v+_9j zyEx-*_G368nor6I15~lidX|I{^&vfCvlRBwH7$Rjgn77>P}Nn7;f0K+CxNnv&GsX% ze^m19rJx_{as&1XD{sD7PTVOhNxiw0!k4oKu%W%TTz|-J#7P8b`WvrjCy^#0+n3(* z0)im#Fl&*<=-^fHtth8c{Ij6ejv;%o9*qR%E~{nEnH2SZua>#K4!$R6C@>E|BzQdW zh!7_Q(XNW^ijC!#OVxHh_Gr^9}k2fwQMsA5?XqA!%W z`il(8V$|e#RWL(MUaPa%E8%Fnh6W=<`+RS=^D(2^*aDJy2s4IJY!)93ux-=J@v%|$ zR#B2}9pDU8l32xB#r>VOTQ@qOsz4@(0Wu^imyC_W|5>O_&<|A`CDJA1|2wk`H$kIw!8o4aU~I z?7Yc9U~PZBy@k3h`{ew=(;Pswlw3zRR3zEh@CWndEIH*+*68cdNPo^Vwl_Tvj9OMFMSf5v1L$dyxKnKf^yLFcut${6f!YIX zuZ?gCfIpI#)58}kA~!2Q0hOep4g$ivLwy_E?YpX)e^0H3B5G!4`~w9}vx;8RI|Hr8gm3&pzwC2#|?2U7q|yVX?nshcjI{4g?I4I{XUpI&akxAEtK*x`TT`F__Wj+ zTXrn>DJw!n<_vqmB43itYufQ?Q*tm*HipNq0%o(U^QsqEY#XslDaHy<4|+2xL!Kb* z=Hl|KiEcoQ$r-nu6lo*>$`#;3*>>ME4bns>f;b}td3E}wf% z3z0BRl$X3`R7fJ}3VmUnuBb_o#RzoY9=F7GW|`9}99BhyZNsZ{ojVxWI*}N=C8m+M z@2^$4AKz1Stc_T-Zu=1#POSDVA?&(I`(}GU+$pWXsT=U>9D0trBSlyCl6P@T@jEpN z{1Vmjvdus2-a^VyZO|dc>H|~xs)cXW30KMOHhKi2TZW_uN;6WWM6MZEW*ke^w{Ry9 zrhVdpimm5p4|csa5|1P*Yk_b$`pN6)GflKkWk;eEtC%}AV_dh6yiDLsp6Bo}%+6r= zuttwd(1$YM@WXV%a%r&)PN=lQr>FY2{~`x2u3t@!F%1u~Dcy)W=f5(gb_DjGgeM@v z@NlsMX8=xkN3k!X%ze{5pubWg&R4 z$KL%ZfOhx|xH1EG3o46UTe9m8h71yP93}kmWQI)>Ot5_Fs#7!YMb`#2QZn%%wHNP~ zY%wuK>GXy|=O24mgJe~hNYRToblFXbUpCk9cz46nr)st<-I_F6;HQuv5f!_`*K@Y_r+~Z06 z9SDeWPhsF-YWtizgJo;3dJy4Xk`ScE(GWrWjaoJ+AE zCM~w4&U;INl6iA!>@nM7pm?!ynag=yNol6aFqwcRJ#p`e89MqHy=Ud!EM~yC2}(56 zGjXixc9CkS3Gi3a0+kJhQH$L717p6**<=Y;``*@TVZwV#TI}o;23J{v#Wri$7Wnz_ zJg#euWg&RC%paGi>$!G-AeZa5Q2ub3TecNa@V3@i$7jcmrJ6V03*>Tojhh^pjeS8AZ*ST<#7_s^)b7?^1lWwUEkgWgxuJ<=~dt zHaVeR5+X0pNkHzfaSqnjFvOLZ_(dDFrin`VM*OQT(hocmcN*g83;CGbZphWp)&}&s zT!sj$2FP+#j+FC8#WEktTZg|;GRGGMr=r?6g79kk(%IJT9=VcGnvdZO;N~?3@Xt+W zavd!K-dH8CvZ0Kp;iFxxA|B!Fb(XB-UxhN=I>D-j<#1aXd@Js)M7>9r?1%MvvQtx)odO?z*3|EGGcluGG4j zZEtMxeXP;PFNPS>-}#9Vg3Lc@-~2&e-2`*}C+EQnTkgK&jx*d`t*=ggDLB{cNO&PM zpiv3>cM`cot1WU%nk{z2tV|UBO>^2y53%R#pk$(q!4+0kwwCgm3SNrI_d5>wC7Vl7 zLxkzgYtYv|vonqDSRjD$)KpJ#EBYmYKRj#XJ3Bd+h3-u{kya_y83KP;4dC0;PXxI^ z<(*NGAkAlv?y`^~3#DlL)Ldt%-v=6WShHMWicU&~QbS9!K8pCe4|^$}0KQt=%}{_u ziG@z=dWhDph9P4eP1oz!+)t56c>#wC+&6}u$|yuiDt!2p4CKx*PQ@cTHDqfz`V*qX zXmGj@bYtJ19kND5NX&__7qgyG@+Xr0{b7DQusewGuiuhQ&2K9`4tPB7?Yz5vJMM+6 z)+N%&HyZ>kb(UZROki_^@OqrL@H_T{#iw$|`MtkZof8v-wO~aaBYf_?v=wLQy(G24 z8hLGM*%m4JUMAbWo-5c|{PF`4^Yh^{@moprK9N)DW{jToFIC?skYF9Tth6ogLFA-T zreP(yadhwIIcTa9+zT_aLH;Lg;GpuhlTfkyGU8PgS;7nym*k%n*|edDXw*gHo#{bf zY)!$p93g)8*t&E~8{bB;{?H`5PC<%+H@1wLM+)_or`;H7j&zhlsn9$TYxEAuJqW@T z8TswH#6wjDyB8T+=7E)!R6Ow`)}e^BEWMY*8(kxt9u#H0HDa0l(RV2+iJ1EDmD@S6 z7h1j0g{Bl9L-eLNROqL^_08b(urX_z4k%ZzV02R1o{IMiZwED3ogE?K!g127go0<8 z&q?6Zjyka#+)M@9@U{Qj%|DTTu?K`SUI@L?8$32IPP+@@`LS z)e&TQ()$BQJb0LR)JsQC%0b#OJR_1!Y(guqB}rYWkv&Vao9{4gc5w}QfEz(4dquRJ zt!EV_LRSgFqXntwalidNke%F6pdJZnz9YB4^WK zlY|EAqNb@p>oV7$P12a|Blynlw4x9d3J%B=V8^a9b3;^LaF}CY)=R-q0gpi#@b&PbZ|9$^Fy(N4su@feq+8v_b#R&PfN0re zg>AC!Q*pY95-6BpdLuvUTpmj!RkZ6=$x=f07xRXjV%GT{xbMJjvV~te90kTlzDa(|Gnj46w`CX~RvN&x)o1GPDHo!ANz8w0GDjWcZ z$Ehck{cN+MLuK~VTB;jvS5AfIOMjnUo*_LFp*3^`mb~Fk50yMvn?6H4zHjp9q2UMjKYn6|dGd-Qnf_%(ci#3e z9HiTzHGp%5R_q#bBFccI)B!~g59B+_p0;Nm_e?u3bGx1>DT6v)rS&1Sy1Ps$-RMge*phaa1lDaGsIMwsN}gid1C3%H`>T*nwt zhEcu16dWNXiS9#od|cOSE>{`mPa=uSyB$giqfG2%v1T=_FVF!rBezRuDUlVa%m`Ft z_OR&OnLhp_p15TC++#D`UI1Q*4uj;m(R(lnlN)5Ig%>`N=(GywAZpq_Q*)X4;%-hkPquVC6J7z{C+9uKu<+QDgOE!b)tv9xWqo(nq?BmBq zJSeW%6f1HTNMqWagRC6|YOo>8y+oIARHe@(j4s!LXq3x$(s>6uoRs&K=~cnNDBtub z?zy<^DX+JeH}f$qZ+gm6LH*BD%$Jr(KFD~GU77y_M?kp0PfZZVF5p_Bo>K}yP7vO) zT7KZ<1$&OPt`@Eo(DP|wu66F89J$BGi~VCsEJ^-T$JOu`A2va#Cq=ahfbCw9rrcDr z117NAj6&P*DxBs$cHV%a`x`%fLaKc3Rubr;&xE!@AFjLPm?BseW6J@2&H93St>%P> zF|HzFwMyrev`ILAC)U1gF~pVuoV0t8dI`$)cENRQPpD8?@mM!~_RmM&F%pdywtcn2=^@Sy(*&l75oeSDeliIF@vT;%JmHTo?9ps5VIjdY~b z1Nz(vC&IA%b4ORH)jj(vWE8#`;4=Tq15pc*{O@7(cMNof`Tp~@v6ebNne;PQRD+bC z($0wTe+UF6QmPZX6;co1@JIM<(L<#Sis)r>jPSdDy-U+g7{sPsGMd3gb3 z`6-4nnT8AFs%+F<7}d~e@BO*0Vi!Q`&D4JsHY0gzOw5wCmnb{rWf;wf=qME zxQ9gcV(?989Cakm`;KR7zkX&#mZv!$xab5W;{K|x!?8;cg?gi|WX9m<34X0hE+$Yw z5tF$kHJZ+8oKoPW`VEv84@Yd8>-AyB#6YIYNQ<-?6_xyhkQKomlUN(g2F}oGFTs?- zwPd`@$8@wKngs+3j)oslO$%`j_yBbc$74RwXsCw*QOhP|Ue+C_XLM0&aO1bwi1PZ6 zpU=Gg)8%ZRUH{UYdowC{WZ@!}UzNVos%Alg4mkd)sJ`Z*Jc>v)l{;4`yb1?)g?ubY zLEZ?YGu!w1f~8DWdk#He>d}>1h1`4wdz8o76Y8ayTXq9UkRf+Ki|1$B*;tXP2a5WW z&hHlKgTj=td=Jd=EqV)Cbaq#i&mi09y6&!*95qZ=ImOkO zDb?$yPqbz+viwTAs~BL*rXh3bWRCQ)g+}<%6;w9vt2R}tiY6qf2Z@zg%7V{byhdbA zXUm9?kb~`pSQXjNNdG1ZCAYEK_vN)0GE$>$+dm49d6Is}>xXL3SrZc^^UbVT|mZx1N<>z?Yqz})XQSqv9i*a|$IGd5ZmHY^H3Izr4Xx=}%#H87@b z)B|^Juc2d_EeK&{SoS@%I-Blvbkj-oszvWnno0<~#fHQi&d=2IR%j^*WXE4dkLQqP zrZaZ2OIA3s=ygHyeC4(6Er_3Tc{y-9*_(CWc$_%UM^g?;9#jOfq)??Go z=gZez5#01hPxPPep(um@f`}py{wNfRcQD2`mxhH6ykqlWA8454H;Vk%>}vpB5RI>f z@vi!^4Le{*x1@cLZGa&=<%+RVUX_bJ-W3Wf<1z2bGnbTOC;2?}FwPKazfMmR2Pp_o zRP8?g((I{3H7BPMBV}!e&LUV-^Cw<_YOq|2KRfK~g6@Ez@V^$V)M z<&I;n&1@`LZcl!uVhMwVBq=#nVk=SnuWcw|w-_6Q&vsG-30FKiLXHK{BDS=6?;u9+ zBLo%<>d>Qyw}KPhzLj`xDc*QA_bH3ZD4Y zHT7_r%dAR#E^wh+2E&|QoH)s>;Uf{l!;N}v!b^We%FN#>QVEgyFE&2pKfsp2>?Mk5 z%-#}N?JA2yj7)mPRFT4Axjji?Va&a&$-$b4qf0KICxjqL`g+TUWWrs*5f}ZWBzwuf zfBM{5OK~P=#N|a1}o0dOg!*L8yMLI68dRws# z+_AAvMnYv?dgh?t<7+EhbH4Wo@TP+dx;gn8qNitJcEIcM{p@dM?$P7j*YWXP3hWo+ zgNQvZxBMN$VsJ)!9H=`V81R*jnrpoT_l)p)%o}#bYpV8mmgosWwM-Iyb*O?=Gd4^D zz#VuU2sc=_?tSX;bd>OuLC~`hY48p;vS>5W1hu;YHdAmu7!<F^9Sc)mXYYd0Js8e)l-$ zAJu6PRk|p+fZI+EJ=?^PP~2j?MV-lR%Z$v0`?B(FtIUtQ!s);Ex+~V~{ZHumU+$hK zr2&gh?FB8p&J_x&$j-`QM^%~?VJdO6kUxmb6ekyN4~=fVf!->HjC{4a!a)fp4-03T zI^4Os5DfUmAF~bieYiGlc%%Q(GwVm{-+_fs3^&KjWoIvsSH5;iah>KUTiT}Y%vBrE z5VMh`)%ruKMcqmBMAZH32`9a0eUvxOs^z~xp%<8tT=+cE0$Kb^f`rUClt*1So=+!`i@ z4CI)DW>TU3h}D!-x0c_s7}WIM%eQkslTW+0PieKmQ-}dn)W_X!obp14it7_~t4+8t z*b8*?LBKSuVtjMsmc&!6U*!78WoED6%$Z2*5=KB@`I?RF$=jii>_i{A#bva&^M;LH zc?VKdsSZKx$ERCeoZ^_hYGtEvE+s)>$FE*v=^_yGV!wM?nv`1JTw+fyuDt*?Qw>fs z4MZq$d3GikM#nIH>N7NmNDYesq7OSH-FL!$0O)H9-Sh8MTnslPVZK|Qy%#KxelK6Pb?vFX9Hz?Z3 zOk)~PGWWikrGyfyWB?zu>pfUPHHm{m)EyEm&*D7NlGIoH4tC)BeVwmmRS_!E%dKxv zvaeN@h2V_)5wcD6^i5`oy|LQWr^t=?a3Tv0YpPM6IZdel&@f_OTi++#{ciR6l2JW^ z)MhKW#DwRqBtb1=>*0uZ1&k(yvZ!r#^^uS6xIck)FxdK0#Zn&RhE#fd64UB`{g!W6YJ;(md&8tw-ho_IGKt+ z^8p=+cz~i=aZ&;C#3P9T`*;5>qS{eYHp=Sg;`S$a=|}o}s@@G~Uw!i&;TZPimqP1? zavJhL-zb~M9x$ene>7^1{x>rCd9w!Y+T8SmKkq^6

  • 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 z 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