26
26
#include " target_init.h"
27
27
#include " QSPIFBlockDevice.h"
28
28
#include " FlashSimBlockDevice.h"
29
+ #include " flash_map_backend/secondary_bd.h"
29
30
30
31
/* Private typedef ----------------------------------------------------------- */
31
32
/* 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 "
35
36
36
37
#define FLASH_ERASE_TIME (uint16_t )0
37
38
#define FLASH_PROGRAM_TIME (uint16_t )0
@@ -52,7 +53,7 @@ uint16_t Flash_If_DeInit(void);
52
53
uint16_t Flash_If_GetStatus (uint32_t Add, uint8_t Cmd, uint8_t * buffer);
53
54
54
55
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( );
56
57
57
58
const uint32_t QSPIFLASH_BASE_ADDRESS = 0x90000000 ;
58
59
@@ -74,7 +75,7 @@ bool Flash_If_Init_requested = false;
74
75
75
76
void init_Memories () {
76
77
flash.init ();
77
- qspi_flash. init ();
78
+ dfu_secondary_bd-> init ();
78
79
snprintf (BOOTLOADER_DESC_STR, sizeof (BOOTLOADER_DESC_STR), " @Bootloader version %d /0x00000000/0*4Kg" , BOOTLOADER_VERSION);
79
80
}
80
81
@@ -101,7 +102,7 @@ uint16_t Flash_If_Init(void)
101
102
uint16_t Flash_If_DeInit (void )
102
103
{
103
104
flash.deinit ();
104
- qspi_flash. deinit ();
105
+ dfu_secondary_bd-> deinit ();
105
106
return 0 ;
106
107
}
107
108
@@ -118,7 +119,7 @@ uint16_t Flash_If_Erase(uint32_t Add)
118
119
{
119
120
if (isExternalFlash (Add)) {
120
121
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));
122
123
} else {
123
124
return flash.erase (Add, flash.get_sector_size (Add));
124
125
}
@@ -147,10 +148,10 @@ uint16_t Flash_If_Write(uint8_t * src, uint8_t * dest, uint32_t Len)
147
148
{
148
149
if (isExternalFlash ((uint32_t )dest)) {
149
150
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 );
152
153
}
153
- return qspi_flash. program (src, (uint32_t )dest, Len);
154
+ return dfu_secondary_bd-> program (src, (uint32_t )dest, Len);
154
155
} else {
155
156
uint8_t * srcCopy = (uint8_t *)malloc (Len);
156
157
memcpy (srcCopy, src, Len);
@@ -177,8 +178,7 @@ uint8_t *Flash_If_Read(uint8_t * src, uint8_t * dest, uint32_t Len)
177
178
178
179
if (isExternalFlash ((uint32_t )src)) {
179
180
src -= QSPIFLASH_BASE_ADDRESS;
180
-
181
- qspi_flash.read (dest, (uint32_t )src, Len);
181
+ dfu_secondary_bd->read (dest, (uint32_t )src, Len);
182
182
} else {
183
183
for (i = 0 ; i < Len; i++)
184
184
{
0 commit comments