summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/crt0.S27
1 files changed, 23 insertions, 4 deletions
diff --git a/firmware/crt0.S b/firmware/crt0.S
index 78b26b77ea..99aab83867 100644
--- a/firmware/crt0.S
+++ b/firmware/crt0.S
@@ -95,8 +95,21 @@ start:
95start_l: 95start_l:
96 mov.l r2,@r0 96 mov.l r2,@r0
97 add #4,r0 97 add #4,r0
98 cmp/ge r0,r1 98 cmp/ge r1,r0
99 bt start_l 99 bf start_l
100 nop
101
102 /* copy the .iram section */
103 mov.l iramcopy_k,r0
104 mov.l iram_k,r1
105 mov.l iramend_k,r2
106copy_l:
107 mov.l @r0,r3
108 mov.l r3,@r1
109 add #4,r0
110 add #4,r1
111 cmp/ge r2,r1
112 bf copy_l
100 nop 113 nop
101 114
102 /* Munge the main thread stack */ 115 /* Munge the main thread stack */
@@ -106,8 +119,8 @@ start_l:
106munge_loop: 119munge_loop:
107 mov.l r0,@r1 120 mov.l r0,@r1
108 add #4,r1 121 add #4,r1
109 cmp/ge r1,r2 122 cmp/ge r2,r1
110 bt munge_loop 123 bf munge_loop
111 nop 124 nop
112 125
113 mov #0,r0 126 mov #0,r0
@@ -131,6 +144,12 @@ edata_k:
131 .long _edata 144 .long _edata
132end_k: 145end_k:
133 .long _end 146 .long _end
147iramcopy_k:
148 .long _iramcopy
149iram_k:
150 .long _iramstart
151iramend_k:
152 .long _iramend
134main_k: 153main_k:
135 .long _main 154 .long _main
136vbr_k: 155vbr_k: