完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
volatile static uint32_t Addr_Reserved = 0X0800E000 ;
__disable_irq ();//关中断 FLASH_Unlock(); //解锁写保护 FLASH_ClearFlag(FLASH_FLAG_BSY | FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR); FLASHStatus = FLASH_ErasePage(Addr_Reserved ); FLASHStatus = FLASH_ProgramWord( Addr_Reserved , 0x12345678); FLASH_Lock();//上锁写保护 __enable_irq (); 现象: 1、擦除完 flash,写入新的数据(0X12345678),再读出来都正常,程序也能正常运转。 当断电以后,重新上电,整个程序都不运行了,没任何反应。 2、如果不擦除, 直接写入,写入正常,程序运转也正常, 重新启动上电也运转正常 但是不能第二次写入了,因为数据不再是0XFF的原因吧。 问题应该发生在erase的过程当中。但是不知道哪里出错了 这是编译完的大小 Program Size: Code=34370 RO-data=22986 RW-data=4444 ZI-data=2996 这是map文件的尾部数据,我是操作的尾部没有代码的地方的。在0x0800e000 我定义的是一个const常量, 0x08009766 0x00000490 Data RO 1008 .constdata bmp_icon.o 0x08009bf6 0x00000200 Data RO 1072 .constdata mbcrc.o 0x08009df6 0x00000028 Data RO 1365 .constdata c_w.l(_printf_hex_int.o) 0x08009e1e 0x00000011 Data RO 1395 .constdata c_w.l(__printf_flags_wp.o) 0x08009e2f 0x00000001 PAD 0x08009e30 0x00000094 Data RO 1617 .constdata c_w.l(bigflt0.o) 0x08009ec4 0x00000063 Data RO 1087 .conststring mbrtu.o 0x08009f27 0x00000001 PAD 0x08009f28 0x00000044 Data RO 1167 .conststring mbascii.o 0x08009f6c 0x00000020 Data RO 1749 Region$$Table anon$$obj.o 0x08009f8c 0x0000001c Data RO 1645 locale$$data c_w.l(lc_numeric_c.o) 0x08009fa8 0x00004058 PAD 0x0800e000 0x0000000c Data RO 639 .ARM.__AT_0x0800E000 Reserved_Data.o |
|
相关推荐
1个回答
|
|
|
写入内部Flash导致程序下次重启无法执行的原因可能有以下几种可能性:
1. 硬件问题:写入Flash时出现了硬件故障,导致写入失败或破坏了Flash区域。这可能是芯片故障或编程电路问题导致的。 2. Flash编程错误:在编程过程中,可能发生了编程错误,导致Flash写入的数据不正确或者写入过程中发生了错误导致程序无法执行。这可能是由于编程API的使用不正确、编程顺序错误或者编程参数错误导致的。 3. 代码错误:在写入Flash的程序中存在其他错误,导致程序无法正常执行。可能是在写入Flash的代码中存在逻辑错误、编译错误或者其他编码问题。 针对以上问题,你可以尝试以下方法进行排查和解决: 1. 检查硬件:确认芯片本身和编程电路没有问题,可以尝试使用其他方式(如JTAG或串口等)重新烧录程序,看看是否存在相同的问题。 2. 检查编程代码:仔细检查写入Flash的代码,确认API的使用方式正确,编程顺序和参数传递正确。可以尝试使用其他的Flash编程API或者库来尝试解决问题。 3. 检查程序逻辑和错误:除了写入Flash的代码,还需要检查其他代码逻辑是否正确,尤其是写入Flash后的程序执行逻辑。可以使用调试器或者打印日志的方式来定位和解决问题。 4. 更新固件或者库版本:如果是使用了第三方库或者固件,可以尝试更新到最新的版本,看看是否修复了可能存在的Bug。 如果仍然无法解决问题,建议联系芯片厂商或者技术支持,寻求他们的帮助和建议。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
4140 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
3228 浏览 1 评论
2753 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
2181 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
14984 浏览 2 评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
3088浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
1897浏览 3评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
2067浏览 3评论
1980浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
2169浏览 3评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 14:02 , Processed in 0.843754 second(s), Total 75, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2710