; Copyright (c) 2022, Nations Technologies Inc. ; ; All rights reserved. ; ; This software is the exclusive property of Nations Technologies Inc. (Hereinafter ; referred to as NATIONS). This software, and the product of NATIONS described herein ; (Hereinafter referred to as the Product) are owned by NATIONS under the laws and treaties ; of the People's Republic of China and other applicable jurisdictions worldwide. ; ; NATIONS does not grant any license under its patents, copyrights, trademarks, or other ; intellectual property rights. Names and brands of third party may be mentioned or referred ; thereto (if any) for identification purposes only. ; ; NATIONS reserves the right to make changes, corrections, enhancements, modifications, and ; improvements to this software at any time without notice. Please contact NATIONS and obtain ; the latest version of this software before placing orders. ; Although NATIONS has attempted to provide accurate and reliable information, NATIONS assumes ; no responsibility for the accuracy and reliability of this software. ; ; It is the responsibility of the user of this software to properly design, program, and test ; the functionality and safety of any application made of this information and any resulting product. ; In no event shall NATIONS be liable for any direct, indirect, incidental, special,exemplary, or ; consequential damages arising in any way out of the use of this software or the Product. ; ; NATIONS Products are neither intended nor warranted for usage in systems or equipment, any ; malfunction or failure of which may cause loss of human life, bodily injury or severe property ; damage. Such applications are deemed, "Insecure Usage". ; ; All Insecure Usage shall be made at user's risk. User shall indemnify NATIONS and hold NATIONS ; harmless from and against all claims, costs, damages, and other liabilities, arising from or related ; to any customer's Insecure Usage. ; Any express or implied warranty with regard to this software or the Product, including,but not ; limited to, the warranties of merchantability, fitness for a particular purpose and non-infringement ; are disclaimed to the fullest extent permitted by law. ; Unless otherwise explicitly permitted by NATIONS, anyone may not duplicate, modify, transcribe ; or otherwise distribute this software for any purposes, in whole or in part. ; ; NATIONS products and technologies shall not be used for or incorporated into any products or systems ; whose manufacture, use, or sale is prohibited under any applicable domestic or foreign laws or regulations. ; User shall comply with any applicable export control laws and regulations promulgated and administered by ; the governments of any countries asserting jurisdiction over the parties or transactions. ; Amount of memory (in bytes) allocated for Stack ; Tailor this value to your application needs ; 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 ; Vector Table Mapped to Address 0 at Reset 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 0 ; Reserved DCD 0 ; Reserved DCD 0 ; Reserved DCD 0 ; Reserved DCD 0 ; Reserved DCD 0 ; Reserved DCD 0 ; Reserved DCD SVC_Handler ; SVCall Handler DCD 0 ; Reserved DCD 0 ; Reserved DCD PendSV_Handler ; PendSV Handler DCD SysTick_Handler ; SysTick Handler ; External Interrupts DCD PVD_IRQHandler ; PVD through EXTI Line 18 detect DCD FLASH_IRQHandler ; Flash DCD EXTI0_1_IRQHandler ; EXTI Line 0.1 DCD EXTI2_3_IRQHandler ; EXTI Line 2.3 DCD EXTI4_17_IRQHandler ; EXTI Line 4..17 DCD TIM1_BRK_UP_TRG_COM_IRQHandler ; TIM1 Break/Update/Trigger and Commutation DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare DCD TIM3_IRQHandler ; TIM3 DCD TIM6_IRQHandler ; TIM6 DCD ADC_IRQHandler ; ADC DCD I2C_EV_IRQHandler ; I2C event DCD I2C_ER_IRQHandler ; I2C error DCD SPI_IRQHandler ; SPI DCD UART1_IRQHandler ; UART1 DCD UART2_IRQHandler ; UART2 DCD COMP_IRQHandler ; COMP __Vectors_End __Vectors_Size EQU __Vectors_End - __Vectors AREA |.text|, CODE, READONLY ; Reset handler Reset_Handler PROC EXPORT Reset_Handler [WEAK] IMPORT __main IMPORT System_Initializes LDR R0, =System_Initializes BLX R0 LDR R0, =__main BX R0 ENDP ; Dummy Exception Handlers (infinite loops which can be modified) NMI_Handler PROC EXPORT NMI_Handler [WEAK] B . ENDP HardFault_Handler\ PROC EXPORT HardFault_Handler [WEAK] B . ENDP SVC_Handler PROC EXPORT SVC_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 EXPORT PVD_IRQHandler [WEAK] EXPORT FLASH_IRQHandler [WEAK] EXPORT EXTI0_1_IRQHandler [WEAK] EXPORT EXTI2_3_IRQHandler [WEAK] EXPORT EXTI4_17_IRQHandler [WEAK] EXPORT TIM1_BRK_UP_TRG_COM_IRQHandler [WEAK] EXPORT TIM1_CC_IRQHandler [WEAK] EXPORT TIM3_IRQHandler [WEAK] EXPORT TIM6_IRQHandler [WEAK] EXPORT ADC_IRQHandler [WEAK] EXPORT I2C_EV_IRQHandler [WEAK] EXPORT I2C_ER_IRQHandler [WEAK] EXPORT SPI_IRQHandler [WEAK] EXPORT UART1_IRQHandler [WEAK] EXPORT UART2_IRQHandler [WEAK] EXPORT COMP_IRQHandler [WEAK] PVD_IRQHandler FLASH_IRQHandler EXTI0_1_IRQHandler EXTI2_3_IRQHandler EXTI4_17_IRQHandler TIM1_BRK_UP_TRG_COM_IRQHandler TIM1_CC_IRQHandler TIM3_IRQHandler TIM6_IRQHandler ADC_IRQHandler I2C_EV_IRQHandler I2C_ER_IRQHandler SPI_IRQHandler UART1_IRQHandler UART2_IRQHandler COMP_IRQHandler B . ENDP ALIGN ;******************************************************************************* ; User Stack and Heap initialization ;******************************************************************************* 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 LDR R0, = Heap_Mem LDR R1, =(Stack_Mem + Stack_Size) LDR R2, = (Heap_Mem + Heap_Size) LDR R3, = Stack_Mem BX LR ALIGN ENDIF END