@@ -80,7 +80,9 @@ bool Flash_If_Init_requested = false;
80
80
void init_Memories () {
81
81
flash.init ();
82
82
qspi_flash->init ();
83
- dfu_secondary_bd->init ();
83
+ if (dfu_secondary_bd != nullptr ) {
84
+ dfu_secondary_bd->init ();
85
+ }
84
86
snprintf (BOOTLOADER_DESC_STR, sizeof (BOOTLOADER_DESC_STR), " @MCUBoot version %d /0x00000000/0*4Kg" , BOOTLOADER_VERSION);
85
87
}
86
88
@@ -107,8 +109,10 @@ uint16_t Flash_If_Init(void)
107
109
uint16_t Flash_If_DeInit (void )
108
110
{
109
111
flash.deinit ();
110
- dfu_secondary_bd->deinit ();
111
- boot_set_pending (false );
112
+ if (dfu_secondary_bd != nullptr ) {
113
+ dfu_secondary_bd->deinit ();
114
+ boot_set_pending (false );
115
+ }
112
116
return 0 ;
113
117
}
114
118
@@ -127,7 +131,9 @@ static bool isFileBlockFlash(uint32_t Add) {
127
131
*/
128
132
uint16_t Flash_If_Erase (uint32_t Add)
129
133
{
130
- if (isFileBlockFlash (Add)) {
134
+ if (isFileBlockFlash (Add) && dfu_secondary_bd == nullptr ) {
135
+ return -1 ;
136
+ } else if (isFileBlockFlash (Add) && dfu_secondary_bd != nullptr ) {
131
137
Add -= FILEBLOCK_BASE_ADDRESS;
132
138
return dfu_secondary_bd->erase (Add, dfu_secondary_bd->get_erase_size (Add));
133
139
} else if (isExternalFlash (Add)) {
@@ -159,7 +165,9 @@ void delayed_write(struct writeInfo* info) {
159
165
*/
160
166
uint16_t Flash_If_Write (uint8_t * src, uint8_t * dest, uint32_t Len)
161
167
{
162
- if (isFileBlockFlash ((uint32_t )dest)) {
168
+ if (isFileBlockFlash ((uint32_t )dest) && dfu_secondary_bd == nullptr ) {
169
+ return -1 ;
170
+ } else if (isFileBlockFlash ((uint32_t )dest) && dfu_secondary_bd != nullptr ) {
163
171
dest -= FILEBLOCK_BASE_ADDRESS;
164
172
if (Len < dfu_secondary_bd->get_erase_size (0 )) {
165
173
uint8_t * srcCopy = (uint8_t *)malloc (dfu_secondary_bd->get_erase_size (0 ));
@@ -198,7 +206,9 @@ uint8_t *Flash_If_Read(uint8_t * src, uint8_t * dest, uint32_t Len)
198
206
uint32_t i = 0 ;
199
207
uint8_t *psrc = src;
200
208
201
- if (isFileBlockFlash ((uint32_t )src)) {
209
+ if (isFileBlockFlash ((uint32_t )src) && dfu_secondary_bd == nullptr ) {
210
+ Len = 0 ;
211
+ } else if (isFileBlockFlash ((uint32_t )src) && dfu_secondary_bd != nullptr ) {
202
212
src -= FILEBLOCK_BASE_ADDRESS;
203
213
dfu_secondary_bd->read (dest, (uint32_t )src, Len);
204
214
} else if (isExternalFlash ((uint32_t )src)) {
0 commit comments