Board logo

标题: Internal Flash读写及擦出问题 [打印本页]

作者: 清风醉E    时间: 2013-2-20 19:37     标题: Internal Flash读写及擦出问题

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

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

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

目前将代码拷贝到RAM中执行上述问题已经解决可是又出现以下问题:
情况:<1>执行用户函数时,若先点击进入用户函数再进行单步调试时,程序执行完全正常(用户函数指的是Flash的擦除和写程序段);
         <2>全速执行或者执行不进入用户函数的单步调试,程序会在执行用户函数后跳到 0000 位置;
         <3>同样是按照<2>中方式调试,当用户函数中存在循环时,将会在执行1次循环内的程序段后跳入0000 位置。
还请各位不吝赐教!
作者: 清风醉E    时间: 2013-2-24 21:31

请大家帮帮忙!先在在这里谢谢了!比较着急,可以给予提供灵感也行!麻烦大家了!
作者: 清风醉E    时间: 2013-3-1 11:04

问题已经解决,主要就是没有恢复PPAGE寄存器的值,使得程序执行地址出现错误。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0