Consider the offset when read directly into flash memory.
authorasterix <asterix@38d2e660-2303-0410-9eaa-f027e97ec537>
Fri, 10 Sep 2010 15:53:03 +0000 (15:53 +0000)
committerasterix <asterix@38d2e660-2303-0410-9eaa-f027e97ec537>
Fri, 10 Sep 2010 15:53:03 +0000 (15:53 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@4231 38d2e660-2303-0410-9eaa-f027e97ec537

bertos/cpu/arm/drv/flash_at91.c
bertos/cpu/arm/drv/flash_lpc2.c
bertos/cpu/avr/drv/flash_avr.c
bertos/cpu/cortex-m3/drv/flash_lm3s.c
bertos/cpu/cortex-m3/drv/flash_stm32.c

index d501102a63d413b77bd3e014d173f11584a28d8e..1cdf6b788e0e8678ea6a7a5fc6609aa640a6c72e 100644 (file)
@@ -139,7 +139,7 @@ static bool flash_getStatus(struct KBlock *blk)
 
 static size_t at91_flash_readDirect(struct KBlock *blk, block_idx_t idx, void *buf, size_t offset, size_t size)
 {
-       memcpy(buf, (void *)(idx * blk->blk_size +  FLASH_BASE), size);
+       memcpy(buf, (void *)(idx * blk->blk_size +  FLASH_BASE + offset), size);
        return size;
 }
 
index f25e7b92c756a8332c848b6ee8e822accf2fd8d8..a78ade27c8bfe111e560d10a4a165071d3cc37c4 100644 (file)
@@ -179,7 +179,7 @@ static uint32_t addr_to_sector(size_t addr)
 
 static size_t lpc2_flash_readDirect(struct KBlock *blk, block_idx_t idx, void *buf, size_t offset, size_t size)
 {
-       memcpy(buf, (void *)(idx * blk->blk_size), size);
+       memcpy(buf, (void *)(idx * blk->blk_size + offset), size);
        return size;
 }
 
index 231e01ebb941d77f19e0197b64eaa09d09bc6822..7584200ea449a6988fc90ed6fc32bb076502ada1 100644 (file)
@@ -71,7 +71,7 @@ struct FlashHardware;
 
 static size_t avr_flash_readDirect(struct KBlock *blk, block_idx_t idx, void *buf, size_t offset, size_t size)
 {
-       memcpy_P(buf, (const void *)(uint16_t)(idx * blk->blk_size), size);
+       memcpy_P(buf, (const void *)(uint16_t)(idx * blk->blk_size + offset), size);
        return blk->blk_size;
 }
 
index df478b61124422efd8aafc86800f9562e6098cc4..281c2704c939ceb021fa86ae0bc2b4023624f4a0 100644 (file)
@@ -111,7 +111,7 @@ static int lm3s_writeWord(struct KBlock *blk, uint32_t addr, uint32_t data)
 
 static size_t lm3s_flash_readDirect(struct KBlock *blk, block_idx_t idx, void *buf, size_t offset, size_t size)
 {
-       memcpy(buf, (void *)(idx * blk->blk_size), size);
+       memcpy(buf, (void *)(idx * blk->blk_size + offset), size);
        return size;
 }
 
index a11777b75c62544f3e2633a0eac6448930b1bc6e..62e448f3ab35dd9d201ba78756c89b3655247d9f 100644 (file)
@@ -139,7 +139,7 @@ static void stm32_flash_clearerror(struct KBlock *blk)
 
 static size_t stm32_flash_readDirect(struct KBlock *blk, block_idx_t idx, void *buf, size_t offset, size_t size)
 {
-       memcpy(buf, (void *)(idx * blk->blk_size), size);
+       memcpy(buf, (void *)(idx * blk->blk_size + offset), size);
        return size;
 }