|
3 | 3 | // Based on NodeMCU platform_flash
|
4 | 4 | // https://github.com/nodemcu/nodemcu-firmware
|
5 | 5 |
|
6 |
| -extern char _flash_code_end[]; |
7 | 6 | extern uint32_t _SPIFFS_start;
|
8 |
| -extern uint32_t _SPIFFS_end; |
9 |
| - |
10 |
| -#define SPIFFS_PARTITION_SIZE() (uint32_t)(_SPIFFS_end - _SPIFFS_start) |
11 |
| -#define CAN_FIT_ON_SPIFFS(a,l) (((a+l)-_SPIFFS_start) <= SPIFFS_PARTITION_SIZE()) |
12 | 7 |
|
13 | 8 | uint32_t flashmem_write( const void *from, uint32_t toaddr, uint32_t size )
|
14 | 9 | {
|
15 |
| - if(!CAN_FIT_ON_SPIFFS(toaddr,size)){ |
16 |
| - os_printf("File Out Of Bounds\n"); |
17 |
| - return 0; |
18 |
| - } |
19 | 10 | uint32_t temp, rest, ssize = size;
|
20 | 11 | unsigned i;
|
21 | 12 | char tmpdata[ INTERNAL_FLASH_WRITE_UNIT_SIZE ];
|
@@ -62,10 +53,6 @@ uint32_t flashmem_write( const void *from, uint32_t toaddr, uint32_t size )
|
62 | 53 |
|
63 | 54 | uint32_t flashmem_read( void *to, uint32_t fromaddr, uint32_t size )
|
64 | 55 | {
|
65 |
| - if(!CAN_FIT_ON_SPIFFS(fromaddr,size)){ |
66 |
| - os_printf("File Out Of Bounds\n"); |
67 |
| - return 0; |
68 |
| - } |
69 | 56 | uint32_t temp, rest, ssize = size;
|
70 | 57 | unsigned i;
|
71 | 58 | char tmpdata[ INTERNAL_FLASH_READ_UNIT_SIZE ];
|
@@ -224,13 +211,13 @@ uint32_t flashmem_read_internal( void *to, uint32_t fromaddr, uint32_t size )
|
224 | 211 | }
|
225 | 212 |
|
226 | 213 | uint32_t flashmem_get_first_free_block_address(){
|
227 |
| - if (_SPIFFS_start == 0){ |
228 |
| - debugf("_SPIFFS_start:%08x\n", _SPIFFS_start); |
| 214 | + if ((uint32_t)&_SPIFFS_start == 0){ |
229 | 215 | return 0;
|
230 | 216 | }
|
| 217 | + debugf("_SPIFFS_start:%08x\n", (uint32_t)&_SPIFFS_start); |
231 | 218 |
|
232 | 219 | // Round the total used flash size to the closest flash block address
|
233 | 220 | uint32_t end;
|
234 |
| - flashmem_find_sector( _SPIFFS_start - 1, NULL, &end); |
| 221 | + flashmem_find_sector( (uint32_t)&_SPIFFS_start - 1, NULL, &end); |
235 | 222 | return end + 1;
|
236 | 223 | }
|
0 commit comments