diff options
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/target/arm/tms320dm320/app.lds | 14 | ||||
-rw-r--r-- | firmware/target/arm/tms320dm320/boot.lds | 14 | ||||
-rwxr-xr-x | firmware/target/arm/tms320dm320/crt0.S | 10 |
3 files changed, 28 insertions, 10 deletions
diff --git a/firmware/target/arm/tms320dm320/app.lds b/firmware/target/arm/tms320dm320/app.lds index fbaaff3e6c..3437984f55 100644 --- a/firmware/target/arm/tms320dm320/app.lds +++ b/firmware/target/arm/tms320dm320/app.lds @@ -115,6 +115,20 @@ SECTIONS . += 0x2000; stackend = .; } > IRAM + + .irqstack (NOLOAD) : + { + *(.stack) + . += 0x400; + irq_stack = .; + } > IRAM + + .fiqstack (NOLOAD) : + { + *(.stack) + . += 0x100; + fiq_stack = .; + } > IRAM /* This overwrites the iram (in ram), so make sure that the iram is copied * out in crt0.s before the bss section and the rest are used. diff --git a/firmware/target/arm/tms320dm320/boot.lds b/firmware/target/arm/tms320dm320/boot.lds index 0ee6c202a4..a4077eeaaa 100644 --- a/firmware/target/arm/tms320dm320/boot.lds +++ b/firmware/target/arm/tms320dm320/boot.lds @@ -121,6 +121,20 @@ SECTIONS stackend = .; } > IRAM + .irqstack (NOLOAD) : + { + *(.stack) + . += 0x400; + irq_stack = .; + } > IRAM + + .fiqstack (NOLOAD) : + { + *(.stack) + . += 0x100; + fiq_stack = .; + } > IRAM + .bss (NOLOAD) : { . = ADDR(.data) + SIZEOF(.data) + SIZEOF(.vectors) + SIZEOF(.iram); diff --git a/firmware/target/arm/tms320dm320/crt0.S b/firmware/target/arm/tms320dm320/crt0.S index 7c0c27eb74..fe4a3fb970 100755 --- a/firmware/target/arm/tms320dm320/crt0.S +++ b/firmware/target/arm/tms320dm320/crt0.S @@ -163,13 +163,3 @@ UIE: b UIE #endif -/* Align stacks to cache line boundary */ - .balign 16 - -/* 256 words of IRQ stack */ - .space 256*4 -irq_stack: - -/* 256 words of FIQ stack */ - .space 256*4 -fiq_stack: |