File indexing completed on 2025-05-11 08:22:49
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #include <rtems/asm.h>
0016 #include <rtems/score/cpu.h>
0017
0018 .section ".bsp_start_text", "ax"
0019 .arm
0020
0021
0022
0023
0024
0025
0026 Vector_Init_Block:
0027 ldr pc, handler_addr_reset
0028 ldr pc, handler_addr_undef
0029 ldr pc, handler_addr_swi
0030 ldr pc, handler_addr_prefetch
0031 ldr pc, handler_addr_abort
0032 nop
0033 ldr pc, handler_addr_irq
0034 ldr pc, handler_addr_fiq
0035
0036 handler_addr_reset:
0037 .word _start
0038
0039 handler_addr_undef:
0040 .word _ARMV4_Exception_undef_default
0041
0042 handler_addr_swi:
0043 .word _ARMV4_Exception_swi_default
0044
0045 handler_addr_prefetch:
0046 .word _ARMV4_Exception_pref_abort_default
0047
0048 handler_addr_abort:
0049 .word _ARMV4_Exception_data_abort_default
0050
0051 handler_addr_reserved:
0052 .word 0
0053
0054 handler_addr_irq:
0055 .word _ARMV4_Exception_interrupt
0056
0057 handler_addr_fiq:
0058 .word _ARMV4_Exception_fiq_default
0059
0060 .globl _start
0061 _start:
0062
0063 ldr r7, =_ISR_Stack_area_end
0064
0065
0066 mov r0, #(ARM_PSR_M_FIQ | ARM_PSR_I | ARM_PSR_F)
0067 msr cpsr, r0
0068 ldr r1, =bsp_stack_fiq_size
0069 mov sp, r7
0070 sub r7, r7, r1
0071
0072
0073 mov r0, #(ARM_PSR_M_ABT | ARM_PSR_I | ARM_PSR_F)
0074 msr cpsr, r0
0075 ldr r1, =bsp_stack_abt_size
0076 mov sp, r7
0077 sub r7, r7, r1
0078
0079
0080 mov r0, #(ARM_PSR_M_UND | ARM_PSR_I | ARM_PSR_F)
0081 msr cpsr, r0
0082 ldr r1, =bsp_stack_und_size
0083 mov sp, r7
0084 sub r7, r7, r1
0085
0086
0087 mov r0, #(ARM_PSR_M_IRQ | ARM_PSR_I | ARM_PSR_F)
0088 msr cpsr, r0
0089 mov sp, r7
0090
0091
0092
0093
0094
0095 mov r0, #(ARM_PSR_M_SVC | ARM_PSR_I | ARM_PSR_F)
0096 msr cpsr, r0
0097 mov sp, r7
0098
0099
0100
0101
0102
0103
0104
0105
0106 LDR r1, =bsp_section_bss_end
0107 LDR r0, =bsp_section_bss_begin
0108
0109 zi_init:
0110 MOV r2, #0
0111 CMP r0, r1
0112 STRLOT r2, [r0], #4
0113 BLO zi_init
0114
0115
0116
0117 mov r0, #0
0118 bl boot_card