查看: 4777|回复: 0

[原创] 【经验分享】Kv31的pflash例程报错解决

[复制链接]

该用户从未签到

715

主题

6374

帖子

0

超级版主

Rank: 8Rank: 8

积分
25234
最后登录
2025-8-20
发表于 2020-5-7 14:00:53 | 显示全部楼层 |阅读模式
本帖最后由 小恩GG 于 2020-5-11 09:20 编辑

                                          Kv31的pflash例程报错解决
跑kv31的pflash例程时候,发现程序卡住报错了。
1.PNG
我们发现错误出现在擦除操作之后,所以我们去查一下到底出了什么问题。
单步调试发现result返回值为104
2.PNG
正常应该是返回0的,那么查一下是谁返回的这个。单步调试之后发现是这里。通过这个变量名字,大概知道可能写了受保护的区域。查一下关于保护flash的寄存器值。
3.PNG
其中FPROT值都是0xff,按照文档描述,如果FPROT位为1说明是没有保护的。再FTFA的XACCH寄存器中发现有个数值是0x7f,而如果这个寄存器的位为1说明是被设置成只执行的。
6.PNG
4.PNG

而根据设置的位,我们可以判断受控制的段是最后的8kb(512/64),也就是XACHH0[XA63]
5.PNG
所以说(512-8)*1024=0x7e000,那么0x7e000到最后地址,这段flash被保护了。我们例程写入的地址是0x7f800,刚好在这个范围,所以最终报错了。如果改成不在范围即可。比如0xa000.
8.PNG


7.PNG
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-8-21 13:02 , Processed in 0.081487 second(s), 20 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表