打印

LM3S5P36程序擦写FLASH后芯片死掉,不能擦除重新烧写程序。

[复制链接]
3766|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xieyx77|  楼主 | 2011-12-8 09:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
先打上程序
FlashUsecSet(SysCtlClockGet()/1000000);

FlashErase(0xF000);

FlashProgram(g_ulData, 0xF000, 5);//(注意参数5!!)

第一次运行程序:
FlashErase(0xF000);可以通过
FlashProgram(g_ulData, 0xF000, 5);程序死掉在这里。

第二次运行程序:
FlashErase(0xF000);程序死掉在这里。
看了下汇编代码:
程序在查询0x400FD008 寄存器Flash Memory Control (FMC):返回的值是0x0000 0002 说明程序还在擦除FLASH 就在这里一直循环等待着。

现在问题出现了,用仿真器擦除不了程序也重新烧写不了。但在不修改程序的情况下还是可以进入程序仿真。想问下问题出在哪?有没有什么办法解救这片IC(已经是两片了)?

相关帖子

沙发
永远的不知| | 2011-12-8 09:51 | 只看该作者
您使用lmflashprogrammer的unlock功能试试。

使用特权

评论回复
板凳
xieyx77|  楼主 | 2011-12-8 16:14 | 只看该作者
2# 永远的不知

不是锁上了,是MCU一直在擦除FLASH(或者说:观察FLASH控制寄存器,显示的值表示在擦除FLASH),导致通过JTAG接口无法擦除跟下载程序(等于通过JTAG无法控制FLASH控制寄存器,我用的是ULINK2),现在身边没有FTDI没办法用lmflashprogrammer试一下。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

14

帖子

1

粉丝