瑞萨工程师您好:
我单位产品一直选用瑞萨单片机,新近应用M30281型号进行开发,调试时遇到 ID CODE验证问题,问其他同事说这问题只能换个新单片机才行,请大家看看只能这样么?
调试器:E8,单片机M30281,仅调试了串口0、2,引脚P10
下载地址:400 + 80、0F5000
现象:初期调试没问题,
后来下载时出现验证 ID CODE的窗口,有几回输入全F,可以下载
现在输入全F不行了,始终无法下载程序,据同事说只能换个单片机(我的项目只能重
新焊块板子)
已经应用的办法:
输入全F,无效
用FDT查看mot文件,查到ID是7字节F,无效
没有ID文件
疑问:
我从没设过ID CODE,为什么要验证,
开始调试时不用验证,突然有一次出现验证窗口,随后经常出现,最后无法解决
请瑞萨工程师帮忙看下,有什么解决办法,以后如何避免问题的复现。
请瑞萨工程师来看看?是单片机问题还是开发环境问题
4楼
严格讲,楼主用FDT查看mot文件找ID码,应该是写到MCU的那个mot文件,如果是最后写入文件的的mot文件的话,ID码是可以找到的。
由于每个ID码是一个8位数据,分别存放在00FFDFH,00FFE3H,00FFEBH,00FFEFH,00FFF3H,00FFF7H,00FFFBH地址。我们在编程时,定义与ID码地址同处4byte地址的中断向量时,有可能采用: .LWORD _Interrupt_add1 这样对ID码无意识地进行了操作,使该字节的ID有“FF”变为了”00”; (如果要屏蔽对ID码的操作,可以采用 .LWORD (0FF000000H | _Interrupt_add1) 来避免。) 虽然这些向量区很少在程序中用到,但存在这种可能性,无意识地导致了ID码的某位或全部改写成“0”; ID码不为全F时,如对Flash进行读写操作,就会弹出ID码输入对话框。 可以试一下一下方法: 1) 输入ID码为全“0”试一下; 2) 在设定了中断的某一byte改为“00”试一下。 如果是其它原因,在生成的Mot文件里改写了ID,又没有保存旧版本,那芯片可能要重换了。祝好运~~
由于每个ID码是一个8位数据,分别存放在00FFDFH,00FFE3H,00FFEBH,00FFEFH,00FFF3H,00FFF7H,00FFFBH地址。我们在编程时,定义与ID码地址同处4byte地址的中断向量时,有可能采用: .LWORD _Interrupt_add1 这样对ID码无意识地进行了操作,使该字节的ID有“FF”变为了”00”; (如果要屏蔽对ID码的操作,可以采用 .LWORD (0FF000000H | _Interrupt_add1) 来避免。) 虽然这些向量区很少在程序中用到,但存在这种可能性,无意识地导致了ID码的某位或全部改写成“0”; ID码不为全F时,如对Flash进行读写操作,就会弹出ID码输入对话框。 可以试一下一下方法: 1) 输入ID码为全“0”试一下; 2) 在设定了中断的某一byte改为“00”试一下。 如果是其它原因,在生成的Mot文件里改写了ID,又没有保存旧版本,那芯片可能要重换了。祝好运~~
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |