附件回复可见~~~
XE和XS系列单片机的DFLASH调试记录
飞思卡尔的XE和XS系列单片机中没有EEPROM,取而代之的是DFLASH存储器。DFLASH与HCS12系列的EEPROM相比,无论是读写还是擦除都是不一样的。
下面以XS128例对DFLASH的使用进行简要说明。
XS128单片机有8K字节的DFLASH,用户可以用其存储数据。DFLASH的起始和结束地址分别为0x100000和0x101fff。
在使用DFLASH时,首先要对其进行初始化,需要将FLASH的时钟设置为1MHz附近,具体设置规则请参考数据手册。对DFLASH的操作要本着先擦除后写入的原则,否则将引起错误。DFLASH的擦除和写入操作步骤基本一样,需要按照特定步骤进行,具体步骤请参照数据手册和本文中的附件。
由DFLASH中读取数据比较特别。DFLASH的地址是0x100000~0x101fff,但是直接读取这些地址,读取出来的数据不是DFLASH中的数据,原因是DFLASH有其独特的读取机制。DFLASH不能直接读取,而是要通过EPAGE寄存器来设置一个页面窗口,页面窗口中的1K的数据是可以读取的,读取时,数据的地址是窗口内的局部地址0x0800~0x0bff。
示例代码的现象是:单片机先对FLASH时钟进行初始化,之后擦除DFLASH的一个分区,再向DFLASH中写入四个字的数据,然后从DFLASH中将写入的数据读出来,并进行验证,如果读出来的数据是正确的则点亮指示灯。同时可以在Data:1窗口中看到从DFLASH中读取的四个字的数据
|