Mercurial > flash_v2
comparison packages/io/flash/current/src/flash.c @ 157:b65ec671dd4c
Merge from eCos master repository on 2001-04-06-18:28:36-BST
| author | jlarmour |
|---|---|
| date | Fri, 06 Apr 2001 19:06:06 +0000 |
| parents | b939e9cada46 |
| children | 0d0f03f76f6a |
comparison
equal
deleted
inserted
replaced
| 156:b939e9cada46 | 157:b65ec671dd4c |
|---|---|
| 155 } | 155 } |
| 156 *block_size = flash_info.block_size; | 156 *block_size = flash_info.block_size; |
| 157 *blocks = flash_info.blocks; | 157 *blocks = flash_info.blocks; |
| 158 return FLASH_ERR_OK; | 158 return FLASH_ERR_OK; |
| 159 } | 159 } |
| 160 | |
| 160 int | 161 int |
| 161 flash_erase(void *addr, int len, void **err_addr) | 162 flash_erase(void *addr, int len, void **err_addr) |
| 162 { | 163 { |
| 163 unsigned short *block, *end_addr; | 164 unsigned short *block, *end_addr; |
| 164 int stat = 0; | 165 int stat = 0; |
| 252 if (size > flash_info.block_size) size = flash_info.block_size; | 253 if (size > flash_info.block_size) size = flash_info.block_size; |
| 253 | 254 |
| 254 stat = (*_flash_program_buf)(addr, data, size, | 255 stat = (*_flash_program_buf)(addr, data, size, |
| 255 flash_info.block_mask, flash_info.buffer_size); | 256 flash_info.block_mask, flash_info.buffer_size); |
| 256 stat = flash_hwr_map_error(stat); | 257 stat = flash_hwr_map_error(stat); |
| 258 #ifdef CYGSEM_IO_FLASH_VERIFY_PROGRAM | |
| 257 if (memcmp(addr, data, size) != 0) { | 259 if (memcmp(addr, data, size) != 0) { |
| 258 stat = 0x0BAD; | 260 stat = 0x0BAD; |
| 259 printf("V"); | 261 printf("V"); |
| 260 } | 262 } |
| 263 #endif | |
| 261 if (stat) { | 264 if (stat) { |
| 262 *err_addr = (void *)addr; | 265 *err_addr = (void *)addr; |
| 263 break; | 266 break; |
| 264 } | 267 } |
| 265 printf("."); | 268 printf("."); |
