summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/app.lds4
-rw-r--r--firmware/crt0.S19
2 files changed, 23 insertions, 0 deletions
diff --git a/firmware/app.lds b/firmware/app.lds
index 83a09a81d0..bacc645044 100644
--- a/firmware/app.lds
+++ b/firmware/app.lds
@@ -117,6 +117,10 @@ SECTIONS
117 .data : 117 .data :
118 { 118 {
119 *(.data) 119 *(.data)
120 . = ALIGN(0x4);
121 _datacopy = .; /* dummy here, only for ROM based */
122 _datastart = .;
123 _dataend = .;
120 } > DRAM 124 } > DRAM
121 125
122 .rodata : 126 .rodata :
diff --git a/firmware/crt0.S b/firmware/crt0.S
index 99aab83867..088ea0aff4 100644
--- a/firmware/crt0.S
+++ b/firmware/crt0.S
@@ -112,6 +112,19 @@ copy_l:
112 bf copy_l 112 bf copy_l
113 nop 113 nop
114 114
115 /* copy the .data section, for rombased execution */
116 mov.l datacopy_k,r0
117 mov.l data_k,r1
118 mov.l dataend_k,r2
119copy_l2:
120 mov.l @r0,r3
121 mov.l r3,@r1
122 add #4,r0
123 add #4,r1
124 cmp/ge r2,r1
125 bf copy_l2
126 nop
127
115 /* Munge the main thread stack */ 128 /* Munge the main thread stack */
116 mov.l stack_k,r2 129 mov.l stack_k,r2
117 mov.l deadbeef_k,r0 130 mov.l deadbeef_k,r0
@@ -150,6 +163,12 @@ iram_k:
150 .long _iramstart 163 .long _iramstart
151iramend_k: 164iramend_k:
152 .long _iramend 165 .long _iramend
166datacopy_k:
167 .long _datacopy
168data_k:
169 .long _datastart
170dataend_k:
171 .long _dataend
153main_k: 172main_k:
154 .long _main 173 .long _main
155vbr_k: 174vbr_k: