123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345 |
- #define WDOG_CS (0x40052000)
- #define WDOG_TOVAL (0x40052008)
- #define WDOG_CS_DISABLE (0x00002520)
-
- .syntax unified
- .arch armv7-m
- .section ".init_table", "a"
- .long 2
- .long __RAM_INIT_START
- .long __ROM_INIT_START
- .long __ROM_INIT_END
- .long __RAM_INTERRUPT_START
- .long __ROM_INTERRUPT_START
- .long __ROM_INTERRUPT_END
- .section ".zero_table", "a"
- .long 1
- .long __BSS_SRAM_START
- .long __BSS_SRAM_END
- .section .flash_config, "a"
- .long 0xFFFFFFFF
- .long 0xFFFFFFFF
- .long 0xFFFFFFFF
- .long 0xFFFF7FFE
- .globl VTABLE
- .section ".startup","ax"
- .thumb
- .set VTOR_REG, 0xE000ED08
- .set CHIPCTL, 0x40048004
- .set DISRAMRE, 0x00300000
- .thumb
- .thumb_func
- .globl Reset_Handler
- .globl _start
- _start:
- Reset_Handler:
- cpsid i
- mov r0, #0
- mov r1, #0
- mov r2, #0
- mov r3, #0
- mov r4, #0
- mov r5, #0
- mov r6, #0
- mov r7, #0
-
- ldr r0, =CHIPCTL
- ldr r1, =DISRAMRE
- str r1,[r0]
- SetVTOR:
- ldr r0, =VTOR_REG
- ldr r1, =__RAM_INTERRUPT_START
- str r1,[r0]
- SetCore0Stack:
-
- ldr r0, =__Stack_start_c0
- msr MSP, r0
- b DisableSWT0
- DisableSWT0:
- ldr r0, =WDOG_CS
- ldr r1, =WDOG_CS_DISABLE
- str r1, [r0]
- ldr r0, =WDOG_TOVAL
- ldr r1, =0xFFFF
- str r1, [r0]
- b RamInit
- RamInit:
-
- ldr r0, =__RAM_INIT
- cmp r0, 0
-
- beq SRAM_LOOP_END
- ldr r1, =__INT_SRAM_START
- ldr r2, =__INT_SRAM_END
-
- subs r2, r1
- subs r2, #1
- ble SRAM_LOOP_END
- movs r0, 0
- movs r3, 0
- SRAM_LOOP:
- stm r1!, {r0,r3}
- subs r2, 8
- bge SRAM_LOOP
- SRAM_LOOP_END:
- DebuggerHeldCoreLoop:
- ldr r0, =RESET_CATCH_CORE
- ldr r0, [r0]
- ldr r1, =0x5A5A5A5A
- cmp r0, r1
- beq DebuggerHeldCoreLoop
- _DATA_INIT:
- b _INIT_DATA_BSS
- _INIT_DATA_BSS:
- bl init_data_bss
- __SYSTEM_INIT:
- bl SystemInit
- _MAIN:
- cpsie i
- bl startup_go_to_user_mode
- bl main
- .globl MCAL_LTB_TRACE_OFF
- MCAL_LTB_TRACE_OFF:
- nop
- #ifdef CCOV_ENABLE
-
- bl ccov_main
- #endif
-
- .globl _end_of_eunit_test
- _end_of_eunit_test:
- b .
- #ifdef MCAL_ENABLE_USER_MODE_SUPPORT
- .globl startup_getControlRegisterValue
- startup_getControlRegisterValue:
- mrs r0, CONTROL
- bx r14
- .globl startup_getAipsRegisterValue
- startup_getAipsRegisterValue:
- mrs r0, IPSR
- bx r14
- #endif
- .align 4
- .ltorg
|