Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Flipper-Zero/STM32CubeWB.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'Projects/P-NUCLEO-WB55.Nucleo/Applications/BLE/BLE_Ota/STM32_WPAN/App/app_ble.c')
-rw-r--r--Projects/P-NUCLEO-WB55.Nucleo/Applications/BLE/BLE_Ota/STM32_WPAN/App/app_ble.c59
1 files changed, 23 insertions, 36 deletions
diff --git a/Projects/P-NUCLEO-WB55.Nucleo/Applications/BLE/BLE_Ota/STM32_WPAN/App/app_ble.c b/Projects/P-NUCLEO-WB55.Nucleo/Applications/BLE/BLE_Ota/STM32_WPAN/App/app_ble.c
index 8a3f9bf49..40fde8b7d 100644
--- a/Projects/P-NUCLEO-WB55.Nucleo/Applications/BLE/BLE_Ota/STM32_WPAN/App/app_ble.c
+++ b/Projects/P-NUCLEO-WB55.Nucleo/Applications/BLE/BLE_Ota/STM32_WPAN/App/app_ble.c
@@ -36,13 +36,15 @@
#include "ota_sbsfu.h"
#endif /* OTA_SBSFU */
+#include "flash_driver.h"
+
/* Private typedef -----------------------------------------------------------*/
/* Private defines -----------------------------------------------------------*/
#define APPBLE_GAP_DEVICE_NAME_LENGTH 7
#define BD_ADDR_SIZE_LOCAL 6
-
+
/* Private macros ------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
PLACE_IN_SECTION("MB_MEM1") ALIGN(4) static TL_CmdPacket_t BleCmdBuffer;
@@ -393,10 +395,10 @@ static void Ble_Hci_Gap_Gatt_Init(void){
static void Adv_Request(void){
aci_gap_set_discoverable(ADV_IND,
- CFG_FAST_CONN_ADV_INTERVAL_MIN,
- CFG_FAST_CONN_ADV_INTERVAL_MAX,
- PUBLIC_ADDR,
- NO_WHITE_LIST_USE, sizeof(local_name), (uint8_t*) &local_name, 0, 0, 0, 0);
+ CFG_FAST_CONN_ADV_INTERVAL_MIN,
+ CFG_FAST_CONN_ADV_INTERVAL_MAX,
+ PUBLIC_ADDR,
+ NO_WHITE_LIST_USE, sizeof(local_name), (uint8_t*) &local_name, 0, 0, 0, 0);
/* Send Advertising data */
aci_gap_update_adv_data(sizeof(manuf_data), (uint8_t*) manuf_data);
@@ -406,25 +408,17 @@ static void Delete_Sectors( void )
{
#ifdef OTA_SBSFU
- uint32_t page_error;
- FLASH_EraseInitTypeDef p_erase_init;
+ uint32_t NbrOfSectorToBeErased;
- p_erase_init.TypeErase = FLASH_TYPEERASE_PAGES;
- p_erase_init.Page = (SLOT_ACTIVE_1_START&0x00FFF000)>>12;
- p_erase_init.NbPages = (((SLOT_ACTIVE_1_END-SLOT_ACTIVE_1_START)&0x00FFF000)>>12)+1;
-
- HAL_FLASH_Unlock();
- HAL_FLASHEx_Erase(&p_erase_init, &page_error);
- HAL_FLASH_Lock();
+ NbrOfSectorToBeErased = (((SLOT_ACTIVE_1_END-SLOT_ACTIVE_1_START)&0x00FFF000)>>12)+1;
+
+ FD_EraseSectors((SLOT_ACTIVE_1_START&0x00FFF000)>>12,
+ NbrOfSectorToBeErased);
- p_erase_init.TypeErase = FLASH_TYPEERASE_PAGES;
- p_erase_init.Page = (SLOT_DWL_1_START&0x00FFF000)>>12;
- p_erase_init.NbPages = (((SLOT_DWL_1_END-SLOT_DWL_1_START)&0x00FFF000)>>12)+1;
-
- HAL_FLASH_Unlock();
- HAL_FLASHEx_Erase(&p_erase_init, &page_error);
- HAL_FLASH_Lock();
+ NbrOfSectorToBeErased = (((SLOT_DWL_1_END-SLOT_DWL_1_START)&0x00FFF000)>>12)+1;
+ FD_EraseSectors((SLOT_DWL_1_START&0x00FFF000)>>12,
+ NbrOfSectorToBeErased);
return;
#else
/**
@@ -433,16 +427,12 @@ static void Delete_Sectors( void )
* The limit can be read from the SFSA option byte which provides the first secured sector address.
*/
- uint32_t page_error;
- FLASH_EraseInitTypeDef p_erase_init;
uint32_t first_secure_sector_idx;
+ uint32_t NbrOfSectorToBeErased;
first_secure_sector_idx = (READ_BIT(FLASH->SFR, FLASH_SFR_SFSA) >> FLASH_SFR_SFSA_Pos);
- p_erase_init.TypeErase = FLASH_TYPEERASE_PAGES;
-
- p_erase_init.Page = CFG_OTA_START_SECTOR_IDX_VAL_MSG;
- if(p_erase_init.Page < (CFG_APP_START_SECTOR_INDEX - 1))
+ if(CFG_OTA_START_SECTOR_IDX_VAL_MSG < (CFG_APP_START_SECTOR_INDEX - 1))
{
/**
* Something has been wrong as there is no case we should delete the BLE_Ota application
@@ -451,19 +441,16 @@ static void Delete_Sectors( void )
CFG_OTA_REBOOT_VAL_MSG = CFG_REBOOT_ON_FW_APP;
NVIC_SystemReset(); /* it waits until reset */
}
- p_erase_init.NbPages = CFG_OTA_NBR_OF_SECTOR_VAL_MSG;
- if ((p_erase_init.Page + p_erase_init.NbPages) > first_secure_sector_idx)
+ NbrOfSectorToBeErased = CFG_OTA_NBR_OF_SECTOR_VAL_MSG;
+
+ if ((CFG_OTA_START_SECTOR_IDX_VAL_MSG + NbrOfSectorToBeErased) > first_secure_sector_idx)
{
- p_erase_init.NbPages = first_secure_sector_idx - p_erase_init.Page;
+ NbrOfSectorToBeErased = first_secure_sector_idx - CFG_OTA_START_SECTOR_IDX_VAL_MSG;
}
- HAL_FLASH_Unlock();
-
- HAL_FLASHEx_Erase(&p_erase_init, &page_error);
-
- HAL_FLASH_Lock();
-
+ FD_EraseSectors(CFG_OTA_START_SECTOR_IDX_VAL_MSG,
+ NbrOfSectorToBeErased);
return;
#endif /* OTA_SBSFU */
}