mbed library sources for GR-PEACH rev.B.

Fork of mbed-src by mbed official

Committer:
RyoheiHagimoto
Date:
Wed Apr 15 01:34:29 2015 +0000
Revision:
514:cf59050bad8e
Parent:
231:e72bc43fb91c
mbed library sources for GR-PEACH rev.B.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bogdanm 20:4263a77256ae 1 /* .include "vector_defns.h" */
bogdanm 20:4263a77256ae 2
bogdanm 13:0645d8841f51 3
bogdanm 20:4263a77256ae 4
bogdanm 20:4263a77256ae 5 .section .privileged_code, "ax"
bogdanm 20:4263a77256ae 6 .arm
bogdanm 13:0645d8841f51 7
bogdanm 13:0645d8841f51 8
bogdanm 20:4263a77256ae 9 .weak __mbed_fiq
bogdanm 20:4263a77256ae 10 .weak __mbed_undef
bogdanm 20:4263a77256ae 11 .weak __mbed_prefetch_abort
bogdanm 20:4263a77256ae 12 .weak __mbed_data_abort
bogdanm 20:4263a77256ae 13 .weak __mbed_irq
bogdanm 20:4263a77256ae 14 .weak __mbed_swi
bogdanm 20:4263a77256ae 15 .weak __mbed_dcc_irq
bogdanm 20:4263a77256ae 16 .weak __mbed_reset
bogdanm 20:4263a77256ae 17 .global __mbed_init_realmonitor
bogdanm 20:4263a77256ae 18 /* .global __mbed_init */
bogdanm 13:0645d8841f51 19
bogdanm 13:0645d8841f51 20
bogdanm 13:0645d8841f51 21
bogdanm 13:0645d8841f51 22
bogdanm 13:0645d8841f51 23 __mbed_fiq:
bogdanm 13:0645d8841f51 24 B __mbed_fiq
bogdanm 13:0645d8841f51 25 __mbed_undef:
bogdanm 13:0645d8841f51 26 LDR PC, =0x7fffffa0
bogdanm 13:0645d8841f51 27 __mbed_prefetch_abort:
bogdanm 13:0645d8841f51 28 LDR PC, =0x7fffffb0
bogdanm 13:0645d8841f51 29 __mbed_data_abort:
bogdanm 13:0645d8841f51 30 LDR PC, =0x7fffffc0
bogdanm 13:0645d8841f51 31 __mbed_irq:
bogdanm 13:0645d8841f51 32 MSR CPSR_c, #0x1F|0x80|0x40
bogdanm 20:4263a77256ae 33
bogdanm 13:0645d8841f51 34 STMDB sp!, {r0-r3,r12,lr}
bogdanm 20:4263a77256ae 35
bogdanm 13:0645d8841f51 36 MOV r0, #0xFFFFFF00
bogdanm 13:0645d8841f51 37 LDR r0, [r0]
bogdanm 20:4263a77256ae 38
bogdanm 13:0645d8841f51 39 MOV lr, pc
bogdanm 13:0645d8841f51 40 BX r0
bogdanm 20:4263a77256ae 41
bogdanm 13:0645d8841f51 42 MOV r0, #0xFFFFFF00
bogdanm 20:4263a77256ae 43 STR r0, [r0]
bogdanm 20:4263a77256ae 44
bogdanm 13:0645d8841f51 45 LDMFD sp!,{r0-r3,r12,lr}
bogdanm 20:4263a77256ae 46
bogdanm 13:0645d8841f51 47 MSR CPSR_c, #0x12|0x80|0x40
bogdanm 20:4263a77256ae 48
bogdanm 13:0645d8841f51 49 SUBS pc, lr, #4
bogdanm 13:0645d8841f51 50 __mbed_swi:
bogdanm 13:0645d8841f51 51 STMFD sp!, {a4, r4, ip, lr}
bogdanm 20:4263a77256ae 52
bogdanm 13:0645d8841f51 53 LDR r4, =0x40000040
bogdanm 20:4263a77256ae 54
bogdanm 13:0645d8841f51 55 LDR a4, =0x00940000
bogdanm 13:0645d8841f51 56 LDR PC, =0x7ffff820
bogdanm 13:0645d8841f51 57 __mbed_dcc_irq:
bogdanm 13:0645d8841f51 58 LDMFD sp!,{r0-r3,r12,lr}
bogdanm 20:4263a77256ae 59
bogdanm 13:0645d8841f51 60 MSR CPSR_c, #0x12|0x80|0x40
bogdanm 20:4263a77256ae 61
bogdanm 20:4263a77256ae 62 SUB lr, lr, #4
bogdanm 20:4263a77256ae 63 STMFD sp!, {ip,lr}
bogdanm 20:4263a77256ae 64
bogdanm 13:0645d8841f51 65 LDR LR, =0xfffff000
bogdanm 13:0645d8841f51 66 STR LR, [LR, #0xf00]
bogdanm 20:4263a77256ae 67
bogdanm 13:0645d8841f51 68 LDR PC, =0x7fffffe0
bogdanm 20:4263a77256ae 69 /*
bogdanm 20:4263a77256ae 70 __mbed_reset is called after reset
bogdanm 20:4263a77256ae 71 we setup the stacks and realmonitor, then call Reset_Handler like on M3
bogdanm 20:4263a77256ae 72 */
bogdanm 13:0645d8841f51 73
bogdanm 20:4263a77256ae 74 .section .text, "ax"
bogdanm 20:4263a77256ae 75 .arm
bogdanm 20:4263a77256ae 76 .global Reset_handler
bogdanm 20:4263a77256ae 77 Reset_Handler:
bogdanm 20:4263a77256ae 78 .extern __libc_init_array
bogdanm 20:4263a77256ae 79 .extern SystemInit
bogdanm 20:4263a77256ae 80 LDR R0, =SystemInit
bogdanm 20:4263a77256ae 81 MOV LR, PC
bogdanm 20:4263a77256ae 82 BX R0
bogdanm 13:0645d8841f51 83
bogdanm 20:4263a77256ae 84 LDR R0, =__libc_init_array
bogdanm 20:4263a77256ae 85 MOV LR, PC
bogdanm 20:4263a77256ae 86 BX R0
bogdanm 13:0645d8841f51 87
mbed_official 231:e72bc43fb91c 88 LDR R0, =main
bogdanm 20:4263a77256ae 89 BX R0
bogdanm 13:0645d8841f51 90
bogdanm 20:4263a77256ae 91 __mbed_reset:
bogdanm 20:4263a77256ae 92 LDR R0, =( __SRAM_segment_end__ )
bogdanm 20:4263a77256ae 93
bogdanm 13:0645d8841f51 94 MSR CPSR_c, #0x1B|0x80|0x40
bogdanm 13:0645d8841f51 95 MOV SP, R0
bogdanm 13:0645d8841f51 96 SUB R0, R0, #0x00000040
bogdanm 20:4263a77256ae 97
bogdanm 13:0645d8841f51 98 MSR CPSR_c, #0x17|0x80|0x40
bogdanm 13:0645d8841f51 99 MOV SP, R0
bogdanm 13:0645d8841f51 100 SUB R0, R0, #0x00000040
bogdanm 20:4263a77256ae 101
bogdanm 13:0645d8841f51 102 MSR CPSR_c, #0x11|0x80|0x40
bogdanm 13:0645d8841f51 103 MOV SP, R0
bogdanm 13:0645d8841f51 104 SUB R0, R0, #0x00000000
bogdanm 20:4263a77256ae 105
bogdanm 13:0645d8841f51 106 MSR CPSR_c, #0x12|0x80|0x40
bogdanm 13:0645d8841f51 107 MOV SP, R0
bogdanm 13:0645d8841f51 108 SUB R0, R0, #0x00000040
bogdanm 20:4263a77256ae 109
bogdanm 13:0645d8841f51 110 MSR CPSR_c, #0x13|0x80|0x40
bogdanm 13:0645d8841f51 111 MOV SP, R0
bogdanm 13:0645d8841f51 112 SUB R0, R0, #0x00000040
bogdanm 20:4263a77256ae 113
bogdanm 13:0645d8841f51 114 MSR CPSR_c, #0x10
bogdanm 13:0645d8841f51 115 MOV SP, R0
bogdanm 20:4263a77256ae 116
bogdanm 20:4263a77256ae 117 /* Relocate .data section (Copy from ROM to RAM) */
bogdanm 20:4263a77256ae 118 LDR R1, =__text_end__ /* _etext */
bogdanm 20:4263a77256ae 119 LDR R2, =__data_start__ /* _data */
bogdanm 20:4263a77256ae 120 LDR R3, =__data_end__ /* _edata */
bogdanm 20:4263a77256ae 121 CMP R2, R3
bogdanm 20:4263a77256ae 122 BEQ DataIsEmpty
bogdanm 20:4263a77256ae 123 LoopRel: CMP R2, R3
bogdanm 20:4263a77256ae 124 LDRLO R0, [R1], #4
bogdanm 20:4263a77256ae 125 STRLO R0, [R2], #4
bogdanm 20:4263a77256ae 126 BLO LoopRel
bogdanm 20:4263a77256ae 127 DataIsEmpty:
bogdanm 13:0645d8841f51 128
bogdanm 20:4263a77256ae 129 /* Clear .bss section (Zero init) */
bogdanm 20:4263a77256ae 130 MOV R0, #0
bogdanm 20:4263a77256ae 131 LDR R1, =__bss_start__
bogdanm 20:4263a77256ae 132 LDR R2, =__bss_end__
bogdanm 20:4263a77256ae 133 CMP R1,R2
bogdanm 20:4263a77256ae 134 BEQ BSSIsEmpty
bogdanm 20:4263a77256ae 135 LoopZI: CMP R1, R2
bogdanm 20:4263a77256ae 136 STRLO R0, [R1], #4
bogdanm 20:4263a77256ae 137 BLO LoopZI
bogdanm 20:4263a77256ae 138 BSSIsEmpty:
bogdanm 20:4263a77256ae 139
bogdanm 20:4263a77256ae 140
bogdanm 20:4263a77256ae 141 /* Init realmonitor */
bogdanm 13:0645d8841f51 142 LDR R0, =__mbed_init_realmonitor
bogdanm 13:0645d8841f51 143 MOV LR, PC
bogdanm 13:0645d8841f51 144 BX R0
bogdanm 20:4263a77256ae 145
bogdanm 20:4263a77256ae 146 /* Go to Reset_Handler */
bogdanm 20:4263a77256ae 147 LDR R0, =Reset_Handler
bogdanm 13:0645d8841f51 148 BX R0