公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
小王
Level 1
Level 1
5 questions asked First question asked First reply posted
在程序调试时,程序访问了PFLASH内的内容,由于该块Pfalsh擦除后没有写入新的数据,程序进入Trap(class=3 tin=2 Call Depth Overflow)。使用UDE在线调试没有问题,单片机独立运行出现该状况。请问如何避免访问擦除状态的PFLASHF导致程序进入Trap?
0 点赞
11 回复数
wanggaoyong
Level 4
Level 4
10 comments on blog 5 comments on blog First comment on blog
我只知道一点,在线调试应该是直接在RAM里运行,独立运行应该是从flash调出后运行
0 点赞
小王
Level 1
Level 1
5 questions asked First question asked First reply posted
在线调试时我设置的是在ROM里运行,没有在RAM运行。感觉这个问题好像是pFlash的Safety ECC 检测到全0错误引起的。只要读取擦的pflash,就会触发trap。
0 点赞
TheDrummer
Level 3
Level 3
没看明白,擦除后没写入数据(程序)的话,PC读取到的是非法指令啊?
0 点赞
飞马
Level 5
Level 5
100 comments on blog 50 comments on blog 25 comments on blog
避免访问擦除状态的flash,是有你的程序控制的,一般不会访问到,除非你的程序有bug
0 点赞
chengeer
Level 4
Level 4
First like received 100 replies posted 50 replies posted
你好,请问你问题怎么解决的?
0 点赞
chengeer
Level 4
Level 4
First like received 100 replies posted 50 replies posted
你这个问题解决了吗?我也刚遇到这个问题。通过查手册,需要在初始化时置位MARP.TRAPDIS位禁止trap触发。但我在初始化时向该寄存器写值并不能设置该寄存器。 注:该位在调试状态,通过调试器看到是置1的,但非调试状态(通过CAN发送该寄存器的值)发现是0. 在初始化阶段该寄存器怎么设置还没成功。
0 点赞
lengxue1151204
Level 3
Level 3
50 replies posted 25 replies posted 10 replies posted
读没有数据的flash肯定会报错,最直接的就是程序要跑飞了
0 点赞
sxgaocong
Level 2
Level 2
50 replies posted 25 replies posted 10 replies posted
非法地址访问 肯定进trap了
0 点赞
User22064
Level 5
Level 5
10 sign-ins First like given 5 sign-ins
楼主最终如何解决的?
0 点赞
SIX_66
Level 6
Level 6
First comment on blog 500 replies posted 250 replies posted
来学习
0 点赞
SIX_66
Level 6
Level 6
First comment on blog 500 replies posted 250 replies posted
学习学习
0 点赞