Skip to content

Commit b6b7926

Browse files
committed
Use secondary block device for adresses > 0x90000000
1 parent b2b74bc commit b6b7926

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

envie_dfu/usbd_dfu_flash.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,13 @@
2626
#include "target_init.h"
2727
#include "QSPIFBlockDevice.h"
2828
#include "FlashSimBlockDevice.h"
29+
#include "flash_map_backend/secondary_bd.h"
2930

3031
/* Private typedef ----------------------------------------------------------- */
3132
/* Private define ------------------------------------------------------------ */
32-
#define FLASH_DESC_STR "@Internal Flash /0x08000000/01*128Ka,15*128Kg"
33-
//#define OPTIONB_DESC_STR "@Option Bits /0x52002000/01*1Ka"
34-
#define QSPI_FLASH_DESC_STR "@External Flash /0x90000000/4096*4Kg"
33+
#define FLASH_DESC_STR "@Internal Flash 2MB /0x08000000/01*128Ka,15*128Kg"
34+
//#define BOOTLOADER_DESC_STR "@Option Bits /0x52002000/01*1Ka"
35+
#define QSPI_FLASH_DESC_STR "@External Flash 16MB /0x90000000/16*128Kg"
3536

3637
#define FLASH_ERASE_TIME (uint16_t)0
3738
#define FLASH_PROGRAM_TIME (uint16_t)0
@@ -52,7 +53,7 @@ uint16_t Flash_If_DeInit(void);
5253
uint16_t Flash_If_GetStatus(uint32_t Add, uint8_t Cmd, uint8_t * buffer);
5354

5455
FlashIAP flash;
55-
QSPIFBlockDevice qspi_flash(PD_11, PD_12, PF_7, PD_13, PF_10, PG_6, QSPIF_POLARITY_MODE_1, 40000000);
56+
mbed::BlockDevice* dfu_secondary_bd = get_secondary_bd();
5657

5758
const uint32_t QSPIFLASH_BASE_ADDRESS = 0x90000000;
5859

@@ -74,7 +75,7 @@ bool Flash_If_Init_requested = false;
7475

7576
void init_Memories() {
7677
flash.init();
77-
qspi_flash.init();
78+
dfu_secondary_bd->init();
7879
snprintf(BOOTLOADER_DESC_STR, sizeof(BOOTLOADER_DESC_STR), "@Bootloader version %d /0x00000000/0*4Kg", BOOTLOADER_VERSION);
7980
}
8081

@@ -101,7 +102,7 @@ uint16_t Flash_If_Init(void)
101102
uint16_t Flash_If_DeInit(void)
102103
{
103104
flash.deinit();
104-
qspi_flash.deinit();
105+
dfu_secondary_bd->deinit();
105106
return 0;
106107
}
107108

@@ -118,7 +119,7 @@ uint16_t Flash_If_Erase(uint32_t Add)
118119
{
119120
if (isExternalFlash(Add)) {
120121
Add -= QSPIFLASH_BASE_ADDRESS;
121-
return qspi_flash.erase(Add, qspi_flash.get_erase_size(Add));
122+
return dfu_secondary_bd->erase(Add, dfu_secondary_bd->get_erase_size(Add));
122123
} else {
123124
return flash.erase(Add, flash.get_sector_size(Add));
124125
}
@@ -147,10 +148,10 @@ uint16_t Flash_If_Write(uint8_t * src, uint8_t * dest, uint32_t Len)
147148
{
148149
if (isExternalFlash((uint32_t)dest)) {
149150
dest -= QSPIFLASH_BASE_ADDRESS;
150-
if (Len < qspi_flash.get_erase_size(0)) {
151-
Len = qspi_flash.get_erase_size(0);
151+
if (Len < dfu_secondary_bd->get_erase_size(0)) {
152+
Len = dfu_secondary_bd->get_erase_size(0);
152153
}
153-
return qspi_flash.program(src, (uint32_t)dest, Len);
154+
return dfu_secondary_bd->program(src, (uint32_t)dest, Len);
154155
} else {
155156
uint8_t* srcCopy = (uint8_t*)malloc(Len);
156157
memcpy(srcCopy, src, Len);
@@ -177,8 +178,7 @@ uint8_t *Flash_If_Read(uint8_t * src, uint8_t * dest, uint32_t Len)
177178

178179
if (isExternalFlash((uint32_t)src)) {
179180
src -= QSPIFLASH_BASE_ADDRESS;
180-
181-
qspi_flash.read(dest, (uint32_t)src, Len);
181+
dfu_secondary_bd->read(dest, (uint32_t)src, Len);
182182
} else {
183183
for (i = 0; i < Len; i++)
184184
{

0 commit comments

Comments
 (0)