CMSIS and RTOS are both compalible separately now, remove ARM and GCC_CR toolchain as not compatible

pull/1118/head
Dmitry Bogdanov 2015-05-05 17:37:54 +04:00
parent ac5a462946
commit e14a853216
2 changed files with 34 additions and 12 deletions

View File

@ -15,8 +15,8 @@
.weak __mbed_dcc_irq .weak __mbed_dcc_irq
.weak __mbed_reset .weak __mbed_reset
.global __mbed_init_realmonitor .global __mbed_init_realmonitor
.extern SVC_Handler .weak SVC_Handler
.extern IRQ_Handler .weak IRQ_Handler
/* .global __mbed_init */ /* .global __mbed_init */
@ -31,8 +31,18 @@ __mbed_prefetch_abort:
__mbed_data_abort: __mbed_data_abort:
LDR PC, =0x7fffffc0 LDR PC, =0x7fffffc0
__mbed_irq: __mbed_irq:
B IRQ_Handler /*
/* MSR CPSR_c, #0x1F|0x80|0x40 If RTOS is enabled then goto RTOS IRQ handler
*/
PUSH {R0}
LDR R0, =IRQ_Handler
CMP R0, #0
POP {R0}
BNE IRQ_Handler
/*
else use CMSIS IRQ handler
*/
MSR CPSR_c, #0x1F|0x80|0x40
STMDB sp!, {r0-r3,r12,lr} STMDB sp!, {r0-r3,r12,lr}
@ -50,16 +60,26 @@ __mbed_irq:
MSR CPSR_c, #0x12|0x80|0x40 MSR CPSR_c, #0x12|0x80|0x40
SUBS pc, lr, #4 SUBS pc, lr, #4
*/
__mbed_swi: __mbed_swi:
B SVC_Handler /*
/* STMFD sp!, {a4, r4, ip, lr} If RTOS is enabled then goto RTOS SVC handler
*/
PUSH {R0}
LDR R0, =SVC_Handler
CMP R0, #0
POP {R0}
BNE SVC_Handler
/*
else use CMSIS SVC handler
*/
STMFD sp!, {a4, r4, ip, lr}
LDR r4, =0x40000040 LDR r4, =0x40000040
LDR a4, =0x00940000 LDR a4, =0x00940000
LDR PC, =0x7ffff820 LDR PC, =0x7ffff820
*/
__mbed_dcc_irq: __mbed_dcc_irq:
LDMFD sp!,{r0-r3,r12,lr} LDMFD sp!,{r0-r3,r12,lr}
@ -83,7 +103,7 @@ __mbed_dcc_irq:
Reset_Handler: Reset_Handler:
.extern __libc_init_array .extern __libc_init_array
.extern SystemInit .extern SystemInit
.extern software_init_hook .weak software_init_hook
LDR R0, =SystemInit LDR R0, =SystemInit
MOV LR, PC MOV LR, PC
BX R0 BX R0
@ -130,7 +150,8 @@ __mbed_reset:
MOV SP, R0 MOV SP, R0
SUB R0, R0, #0x00000040 SUB R0, R0, #0x00000040
/* MSR CPSR_c, #0x10|0x80|0x40 /*
MSR CPSR_c, #0x10|0x80|0x40
MOV SP, R0 MOV SP, R0
*/ */
MSR CPSR_c, #0x1F|0x80|0x40 MSR CPSR_c, #0x1F|0x80|0x40
@ -163,7 +184,8 @@ BSSIsEmpty:
/* Init realmonitor */ /* Init realmonitor */
/* LDR R0, =__mbed_init_realmonitor /*
LDR R0, =__mbed_init_realmonitor
MOV LR, PC MOV LR, PC
BX R0 BX R0
*/ */

View File

@ -222,7 +222,7 @@ class LPC2460(LPCTarget):
LPCTarget.__init__(self) LPCTarget.__init__(self)
self.core = "ARM7TDMI-S" self.core = "ARM7TDMI-S"
self.extra_labels = ['NXP', 'LPC2460'] self.extra_labels = ['NXP', 'LPC2460']
self.supported_toolchains = ["ARM", "GCC_ARM", "GCC_CR"] self.supported_toolchains = ["GCC_ARM"]
class LPC810(LPCTarget): class LPC810(LPCTarget):
def __init__(self): def __init__(self):