[STM32H7] FLASH写入错误

[复制链接]
1144|11
 楼主| fubeining 发表于 2022-4-5 10:15 | 显示全部楼层 |阅读模式
操作STM32H743II6 FLASH写入 遇到的问题是  让程序单步执行, 写入正确, 全速运行, 写入总是不完整,比如我一次写入160个字节, 总是写入64或96字节后后面的无法写入,HAL_FLASH_Program 返回值是HAL_OK 并没有返回错误。

HAL_FLASH_Unlock();
                       
FlashStatus = FLASH_WaitForLastOperation(FLASH_WAITETIME, USER_FLASH_BANK);
if(FlashStatus == HAL_OK){
        for(j=0;j<NumToWrite;j++){
                ss[j] = HAL_FLASH_Program(FLASH_TYPEPROGRAM_FLASHWORD, Flash_Addr_Work, (unsigned long long)pBuffer);
                Flash_Addr_Work += 32;
                pBuffer += 8;
        }
}
                       
HAL_FLASH_Lock();


谢谢。
无标题1.png
 楼主| fubeining 发表于 2022-4-5 10:21 | 显示全部楼层
HAL版本   
* @file    stm32h7xx_hal_flash.c
  * @author  MCD Application Team
  * @version V1.2.0
  * @date   29-December-2017

HAL_FLASH_Program 做如下修改也没解决问题

                __ISB();
                __DSB();
               
//                do{
//                        *dest_addr++ = *src_addr++;                /* Program the 256 bits flash word */
//                }while (--row_index != 0);
               
                for(i=0;i<4;i++){
                        *dest_addr = *src_addr;                        /* Program the 256 bits flash word */
                        dest_addr++;
                        src_addr++;
                }

                __ISB();
                __DSB();
caigang13 发表于 2022-4-5 15:45 来自手机 | 显示全部楼层
没遇到过,帮顶一下。
 楼主| fubeining 发表于 2022-4-5 15:50 | 显示全部楼层
问题已解决 是HAL库的问题  用新的就可以了
kiwis66 发表于 2022-4-6 10:21 | 显示全部楼层
库也有问题么?是不是更新版本就可以了
 楼主| fubeining 发表于 2022-4-6 12:47 来自手机 | 显示全部楼层
网上搜了下  应该是老版本的库中有BUG
tpgf 发表于 2022-5-3 08:18 | 显示全部楼层
写入字节没有限制吧
paotangsan 发表于 2022-5-3 08:39 | 显示全部楼层
看来都要用新版本的啊
renzheshengui 发表于 2022-5-3 08:49 | 显示全部楼层
不可避免的  不过总会更新
wakayi 发表于 2022-5-3 09:37 | 显示全部楼层
会不会是芯片自己的问题啊
wowu 发表于 2022-5-3 09:49 | 显示全部楼层
还得实时更新库啊
xiaoqizi 发表于 2022-5-3 09:56 | 显示全部楼层
以前型号的没有发现错误吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

66

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部