1
- /* Copyright (c) 2015 Ivan Grokhotkov. All rights reserved.
1
+ /* Copyright (c) 2015 Ivan Grokhotkov. All rights reserved.
2
2
* This file is part of eboot bootloader.
3
3
*
4
4
* Redistribution and use is permitted according to the conditions of the
@@ -26,10 +26,10 @@ int load_app_from_flash_raw(const uint32_t flash_addr)
26
26
return 1 ;
27
27
}
28
28
pos += sizeof (image_header );
29
-
29
+
30
30
31
31
for (uint32_t section_index = 0 ;
32
- section_index < image_header .num_segments ;
32
+ section_index < image_header .num_segments ;
33
33
++ section_index )
34
34
{
35
35
section_header_t section_header = {0 };
@@ -74,8 +74,8 @@ int load_app_from_flash_raw(const uint32_t flash_addr)
74
74
75
75
76
76
77
- int copy_raw (const uint32_t src_addr ,
78
- const uint32_t dst_addr ,
77
+ int copy_raw (const uint32_t src_addr ,
78
+ const uint32_t dst_addr ,
79
79
const uint32_t size )
80
80
{
81
81
// require regions to be aligned
@@ -90,25 +90,21 @@ int copy_raw(const uint32_t src_addr,
90
90
uint32_t saddr = src_addr ;
91
91
uint32_t daddr = dst_addr ;
92
92
93
- ets_wdt_disable ();
94
-
95
93
while (left ) {
96
- if (SPIEraseSector (daddr /buffer_size )) {
97
- return 2 ;
98
- }
99
- if (SPIRead (saddr , buffer , buffer_size )) {
100
- return 3 ;
101
- }
102
- if (SPIWrite (daddr , buffer , buffer_size )) {
103
- return 4 ;
104
- }
105
- saddr += buffer_size ;
106
- daddr += buffer_size ;
107
- left -= buffer_size ;
94
+ if (SPIEraseSector (daddr /buffer_size )) {
95
+ return 2 ;
96
+ }
97
+ if (SPIRead (saddr , buffer , buffer_size )) {
98
+ return 3 ;
99
+ }
100
+ if (SPIWrite (daddr , buffer , buffer_size )) {
101
+ return 4 ;
102
+ }
103
+ saddr += buffer_size ;
104
+ daddr += buffer_size ;
105
+ left -= buffer_size ;
108
106
}
109
107
110
- ets_wdt_enable ();
111
-
112
108
return 0 ;
113
109
}
114
110
@@ -127,10 +123,12 @@ void main()
127
123
ets_putc ('@' );
128
124
}
129
125
eboot_command_clear ();
130
-
126
+
131
127
if (cmd .action == ACTION_COPY_RAW ) {
132
128
ets_putc ('c' ); ets_putc ('p' ); ets_putc (':' );
129
+ ets_wdt_disable ();
133
130
res = copy_raw (cmd .args [0 ], cmd .args [1 ], cmd .args [2 ]);
131
+ ets_wdt_enable ();
134
132
ets_putc ('0' + res ); ets_putc ('\n' );
135
133
if (res == 0 ) {
136
134
cmd .action = ACTION_LOAD_APP ;
@@ -139,14 +137,14 @@ void main()
139
137
}
140
138
141
139
if (cmd .action == ACTION_LOAD_APP ) {
142
- ets_putc ('l' ); ets_putc ('d' ); ets_putc ('\n' );
143
- res = load_app_from_flash_raw (cmd .args [0 ]);
144
- //we will get to this only on load fail
145
- ets_putc ('e' ); ets_putc (':' ); ets_putc ('0' + res ); ets_putc ('\n' );
140
+ ets_putc ('l' ); ets_putc ('d' ); ets_putc ('\n' );
141
+ res = load_app_from_flash_raw (cmd .args [0 ]);
142
+ //we will get to this only on load fail
143
+ ets_putc ('e' ); ets_putc (':' ); ets_putc ('0' + res ); ets_putc ('\n' );
146
144
}
147
145
148
146
if (res ) {
149
- SWRST ;
147
+ SWRST ;
150
148
}
151
149
152
150
while (true){}
0 commit comments