diff options
| author | Mirta <mirta@twine-s.com> | 2020-12-30 16:39:52 +0200 |
|---|---|---|
| committer | Mirta <mirta@twine-s.com> | 2020-12-30 16:39:52 +0200 |
| commit | 00a491d93733d4625ad329b2ba8237f445364b3f (patch) | |
| tree | 4b24c6fa78d7648f4bb7cefafa464bb0b063fec4 /Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.c | |
| parent | 124ad4150f80c6846fdee41dbbda9848c105f6e5 (diff) | |
| download | Tango-00a491d9.tar.gz Tango-00a491d9.zip | |
merge
Diffstat (limited to 'Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.c')
| -rw-r--r-- | Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.c | 34 |
1 files changed, 25 insertions, 9 deletions
diff --git a/Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.c b/Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.c index 10f65db1d..c757c3a3b 100644 --- a/Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.c +++ b/Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.c @@ -132,18 +132,16 @@ uint32_t ReadAppAndProgram(uint32_t ui32FlashStart,uint32_t ui32FileSize,void* b return(1); } int base_flashErased = false; -uint32_t EraseFlashSection(uint32_t ui32FlashStart) +uint32_t EraseFlashSection(void) { - volatile uint32_t ui32Idx = ui32FlashStart; + volatile uint32_t ui32Idx = FLASH_RAM_BASE; uint32_t status; - if (ui32FlashStart<GENHWCFG_SECTION_FLASH) - { - if (base_flashErased == true) - return ERROR; - else - base_flashErased = true; //once in a run - } + if (base_flashErased == true) + return WARNING; + else + base_flashErased = true; //once in a run + #ifdef FLASH_DEBUG Address[RxIndex] = ui32FlashStart; Size[RxIndex] = ui32FileSize; @@ -152,9 +150,27 @@ uint32_t EraseFlashSection(uint32_t ui32FlashStart) RxIndex = 0; #endif status = FlashErase(ui32Idx); + //FlashErase returns 0 or -1 return status; } +/*void FlashTest(void) +{ + int i; + uint32_t stack[0x200]; + uint32_t offset = 0; + + for (i = 0; i < 0x200; i++) + stack[i] = i; + + while (offset < FLASH_SIZE) + { + ReadAppAndProgram(FLASH_RAM_BASE+offset,0x200,stack); + offset+=0x200; + } + EraseFlashSection(); + +}*/ //Each word may not be subject to more than a specific number of programming cycles before an //erase cycle is required. In other words, for any given word, FlashProgram can only be called //twice before FlashErase is called. |
