@@ -17,8 +17,6 @@ SECTIONS {
1717 .text : {
1818 /* The vector table must come first */
1919 *(.vector_table )
20- /* Our exception handling routines */
21- *(.text .handlers )
2220 /* Now the rest of the code */
2321 *(.text .text *)
2422 } > CODE
@@ -72,36 +70,38 @@ SECTIONS {
7270}
7371
7472/*
75- We reserve some space at the top of the RAM for our stacks. We have an IRQ stack
76- and a FIQ stack, plus the remainder is our system stack.
73+ We reserve some space at the top of the RAM for our exception stacks. The
74+ remainder is our system mode stack.
7775
7876You must keep _stack_top and the stack sizes aligned to eight byte boundaries.
7977*/
8078PROVIDE (_stack_top = ORIGIN (DATA) + LENGTH(DATA));
81- PROVIDE (_fiq_stack_size = 0x400 );
82- PROVIDE (_irq_stack_size = 0x1000 );
83- PROVIDE (_abt_stack_size = 0x400 );
8479PROVIDE (_und_stack_size = 0x400 );
85- PROVIDE (_svc_stack_size = 0x1000 );
80+ PROVIDE (_svc_stack_size = 0x400 );
81+ PROVIDE (_abt_stack_size = 0x400 );
82+ PROVIDE (_irq_stack_size = 0x400 );
83+ PROVIDE (_fiq_stack_size = 0x400 );
8684
87- ASSERT (_stack_top % 8 == 0 , " ERROR(cortex-a-rt): top of stack is not 8-byte aligned" );
88- ASSERT (_fiq_stack_size % 8 == 0 , " ERROR(cortex-a-rt): size of FIQ stack is not 8-byte aligned" );
89- ASSERT (_irq_stack_size % 8 == 0 , " ERROR(cortex-a-rt): size of IRQ stack is not 8-byte aligned" );
90- ASSERT (_fiq_stack_size % 8 == 0 , " ERROR(cortex-a-rt): size of FIQ stack is not 8-byte aligned" );
91- ASSERT (_abt_stack_size % 8 == 0 , " ERROR(cortex-a-rt): size of ABT stack is not 8-byte aligned" );
92- ASSERT (_und_stack_size % 8 == 0 , " ERROR(cortex-a-rt): size of UND stack is not 8-byte aligned" );
93- ASSERT (_svc_stack_size % 8 == 0 , " ERROR(cortex-a-rt): size of SVC stack is not 8-byte aligned" );
85+ ASSERT (_stack_top % 8 == 0 , " ERROR(cortex-r-rt): top of stack is not 8-byte aligned" );
86+ ASSERT (_und_stack_size % 8 == 0 , " ERROR(cortex-r-rt): size of UND stack is not 8-byte aligned" );
87+ ASSERT (_svc_stack_size % 8 == 0 , " ERROR(cortex-r-rt): size of SVC stack is not 8-byte aligned" );
88+ ASSERT (_abt_stack_size % 8 == 0 , " ERROR(cortex-r-rt): size of ABT stack is not 8-byte aligned" );
89+ ASSERT (_irq_stack_size % 8 == 0 , " ERROR(cortex-r-rt): size of IRQ stack is not 8-byte aligned" );
90+ ASSERT (_fiq_stack_size % 8 == 0 , " ERROR(cortex-r-rt): size of FIQ stack is not 8-byte aligned" );
9491
9592/* Weak aliases for ASM default handlers */
93+ PROVIDE (_start =_default_start);
9694PROVIDE (_asm_undefined_handler =_asm_default_undefined_handler);
95+ PROVIDE (_asm_svc_handler =_asm_default_svc_handler);
9796PROVIDE (_asm_prefetch_handler =_asm_default_prefetch_handler);
9897PROVIDE (_asm_abort_handler =_asm_default_abort_handler);
98+ PROVIDE (_asm_irq_handler =_asm_default_irq_handler);
9999PROVIDE (_asm_fiq_handler =_asm_default_fiq_handler);
100100
101101/* Weak aliases for C default handlers */
102102PROVIDE (_undefined_handler =_default_handler);
103- PROVIDE (_abort_handler =_default_handler);
103+ PROVIDE (_svc_handler =_default_handler);
104104PROVIDE (_prefetch_handler =_default_handler);
105+ PROVIDE (_abort_handler =_default_handler);
105106PROVIDE (_irq_handler =_default_handler);
106- PROVIDE (_svc_handler =_default_handler);
107- PROVIDE (_start =_default_start);
107+ /* There is no default C-language FIQ handler */
0 commit comments