From 88da33b0d531f61e1b75d27e18b6f244ad2c3224 Mon Sep 17 00:00:00 2001 From: WXK <287788329@qq.com> Date: 星期四, 25 一月 2024 18:05:19 +0800 Subject: [PATCH] 完成升级基站开发 --- Src/OnChipDevices/Flash.c | 18 +++++++++++++----- 1 files changed, 13 insertions(+), 5 deletions(-) diff --git a/Src/OnChipDevices/Flash.c b/Src/OnChipDevices/Flash.c index 57dbc87..adcf664 100644 --- a/Src/OnChipDevices/Flash.c +++ b/Src/OnChipDevices/Flash.c @@ -5,6 +5,10 @@ * @param Size: The image size,the units of Size is Byte * @retval The number of pages or error */ + unsigned short int STMFLASH_ReadHalfWord(unsigned int faddr) +{ + return *(volatile unsigned short int*)faddr; +} uint32_t FLASH_Pages_Calculate(uint32_t Size) { uint32_t Flash_Page_Number = 0; @@ -30,7 +34,7 @@ * @retval 0:error; 1:success */ - +extern uint16_t testflag; uint32_t FLASH_Prepare(uint32_t Address, uint32_t Len) //起始地址和字长 {uint32_t PageError = 0; FLASH_EraseInitTypeDef EraseInitStruct; @@ -40,10 +44,13 @@ EraseInitStruct.NbPages = Len >>7; // HAL_FLASH_Lock(); if (HAL_FLASHEx_Erase(&EraseInitStruct, &PageError) != HAL_OK) - { + { + testflag=1; HAL_FLASH_Lock(); return 0; + }else{ + testflag=0; HAL_FLASH_Lock(); return 1; } @@ -95,9 +102,10 @@ * @retval 0:error ; 1:success */ #define DATA_32 ((uint32_t)0x12345678) +uint32_t temp21; uint32_t FLASH_Write( uint32_t Address, const uint8_t* pData, uint32_t Len) { - uint32_t WriteCount = 0,temp; + uint32_t WriteCount = 0; uint32_t FlashDestination = Address; uint32_t FlashSource = (uint32_t)pData; HAL_StatusTypeDef FLASHStatus = HAL_OK; @@ -105,8 +113,8 @@ HAL_FLASH_Unlock(); for( ; WriteCount < Len; WriteCount+=4) - {temp=*(uint32_t*)FlashSource; - FLASHStatus = HAL_FLASH_Program(FLASH_TYPEPROGRAMDATA_WORD, FlashDestination, temp); + {temp21=*(uint32_t*)FlashSource; + FLASHStatus = HAL_FLASH_Program(FLASH_TYPEPROGRAMDATA_WORD, FlashDestination, temp21); if( FLASHStatus != HAL_OK) { -- Gitblit v1.9.3