完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32L476写FLASH必须是64位(8字节)写,也就是double WORD,而且要先把要写的字节部分擦除掉。
问题来了,先把整片用仿真器擦除掉,程序中先定义一个64位的静态变量常数0xFFFFFFFFFFFFFFFF,保证在FLASH中的位置是8字节对齐的位置,下载程序,然后在这个位置FLASH_TYPEPROGRAM_DOUBLEWORD,结果报编程错误,然后是字节对齐错误,编程步骤顺序错误。 芯片最后几K的空间用来做参数存储的,是完全能正常读写的,先擦除,再写入完全没问题。现在也做一个测试,先用仿真器把整片擦除,然后将写参数部分的擦除代码屏蔽,编译,下载进去,直接写参数,也报编程错误,然后是字节对齐错误,编程步骤顺序错误。 L476用库函数擦除后是0xFF,用仿真器擦除后也是0xFF,没区别啊,难道芯片内部能检测写之前有无擦除动作?仔细检查了的,写之前各种错误标志也清空了的。 有什么窍门或没注意到的地方? 可能有的网友没看明白我要做什么,简言之就是程序代码区域有一片连续的8字节,共64比特,全是0xFF的区域进行修改,存储想要的数据。 |
|
相关推荐
2个回答
|
|
IAP的时候,擦除,烧写用记程序时,发现有连续的FF,比如这里8个字节的FF,就跳过不写。后续在程序中改写就没问题。可能L4的FLASH有点不同。
|
|
|
|
首先,确保你使用的仿真器和编程工具支持对STM32L476芯片的编程操作。
接下来,尝试以下解决方案: 1. 确认你的写入操作是否正确:在写入FLASH之前,确保正确设置FLASH的写入保护和实际的写入地址。确保你的写入操作按照正确的顺序进行,并且确保擦除操作完成后再进行写入操作。 2. 检查编程步骤的顺序:确保你的编程步骤按照正确的顺序进行。例如,先擦除FLASH,然后写入数据的顺序是正确的。 3. 确保字节对齐:确保你的写入操作符合芯片要求的字节对齐要求。根据你提供的信息,STM32L476芯片需要进行64位(8字节)的写入,所以请确保你的写入操作符合这个要求。 4. 检查编程参数和地址:仔细检查你的编程参数和地址是否正确。确保你传入的参数和地址与要写入的数据一致。 5. 尝试使用其他编程工具:如果你使用的编程工具一直遇到问题,可能是工具本身的问题。尝试使用其他编程工具或者芯片厂商推荐的编程工具来尝试写入操作。 6. 查看编程工具的日志或错误消息:查看编程工具的日志或错误消息,看看是否有更具体的错误信息。这可能有助于你定位问题所在。 7. 检查芯片的写入保护位设置:在某些情况下,芯片的写入保护位可能被设置为保护某些区域不被写入。请确保你已经正确配置写入保护位,以允许写入操作。 如果以上解决方案无法解决你的问题,请提供更多的详细信息,如具体的代码片段、错误消息等,以便更好地帮助你解决问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1802 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1629 浏览 1 评论
1096 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
735 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1685 浏览 2 评论
1944浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
747浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
580浏览 3评论
602浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
565浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-28 04:36 , Processed in 0.996908 second(s), Total 83, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号