首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Internal Flash读写及擦出问题

Internal Flash读写及擦出问题

本帖最后由 清风醉E 于 2013-2-20 19:58 编辑

我用的芯片是 MC9S12XDT256 问题:
<1>按照官方的Datasheet书写的程序,在线仿真时发现写操作可以正常的将数据写入操作的地址区,但是当执行完写操作后程序将不能继续往下执行,Flash相关的寄存器此时会全部变成默认值。
<2>当想PPAGE寄存器写入数据时程序将会出现上述问题
<3>当去掉对PPAGE寄存器的操作时,当执行擦出扇区操作时,程序将会在执行完该程序后跳入位于其下面的函数(程序中并未调用),最后又会回归到<1>中所述的问题.
<4>在出现上述问题的前后会出现 ACCERR 置位。
请知道者指点一二,先在这里谢谢了!
本帖最后由 清风醉E 于 2013-2-21 19:50 编辑

目前将代码拷贝到RAM中执行上述问题已经解决可是又出现以下问题:
情况:<1>执行用户函数时,若先点击进入用户函数再进行单步调试时,程序执行完全正常(用户函数指的是Flash的擦除和写程序段);
         <2>全速执行或者执行不进入用户函数的单步调试,程序会在执行用户函数后跳到 0000 位置;
         <3>同样是按照<2>中方式调试,当用户函数中存在循环时,将会在执行1次循环内的程序段后跳入0000 位置。
还请各位不吝赐教!
请大家帮帮忙!先在在这里谢谢了!比较着急,可以给予提供灵感也行!麻烦大家了!
生命不息,奋斗不止!
问题已经解决,主要就是没有恢复PPAGE寄存器的值,使得程序执行地址出现错误。
生命不息,奋斗不止!
返回列表