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

关于mc9s12xep100的内存分配以及EEEPROM使用的问题[求助]

关于mc9s12xep100的内存分配以及EEEPROM使用的问题[求助]

之前做过S12的开发,现在要用mc9s12xep100这款芯片,第一次接触S12X系列的单片机。发现它的内存分配和S12单片机还是有很大区别的。增加了RAM的窗口和EEPROM的窗口。
想请教一下,1 如果我想使用banked RAM 需要设置什么?
2 EEEPROM的使用和之前EEPROM有什么区别。


我的应用场景是:上电后,首先从EEEPROM中读出各种配置信息,然后再工作时会更改相应的配置信息,再保存回EEEPROM中。我之前在S12DJ256上实现过,不知道在mc9s12xep100上要做什么样的修改。

我身在江湖,江湖却没有关于我的传说。
大家帮帮忙阿
我身在江湖,江湖却没有关于我的传说。
1 如果我想使用banked RAM 需要设置什么?

如果您使用的IDE是CodeWarrior,则举例如下:

a) 在prm文件中包括以下内容:
SEGMENTS
...
RAM_FB = READ_WRITE 0xFB1100 TO 0xFB1FFF;
...
END


PLACEMENT
...
PAGED_RAM INTO RAM_FB;
...
END

b) 在c文件中包括以下内容:
#pragma DATA_SEG PAGED_RAM
int v1;
#pragma DATA_SEG DEFAULT

则变量v1就在分页的RAM中了。当您在C中访问v1时,CodeWarrior会自动采用RPAGE页面方式访问,您就不必关注具体的细节了。


2 EEEPROM的使用和之前EEPROM有什么区别。

差别很大。简单讲EEEPROM的功能极强,就是非易失的RAM。其读写都与访问普通的RAM一样,只是采用EPAGE而已。硬件会自动替您保存到DFLASH中!EEEPROM需要在第一次(以后上电就不需要了)上电时用CCOB命令分区。


3 我的应用场景是:上电后,首先从EEEPROM中读出各种配置信息,然后再工作时会更改相应的配置信息,再保存回EEEPROM中。我之前在S12DJ256上实现过,不知道在mc9s12xep100上要做什么样的修改。

建议您采用新的EEEPROM特性来完成这个功能。不要在RAM中拷来拷去了。因为如上所述:这里EEEPROM的访问和普通RAM一样(一样的读写速度!)
实际上,片上用的就是4K的RAM来仿真EEEPROM的,背后有32K的DFlash进行支持。这种支持完全由硬件完成。
建议您研究一下CCOB命令,您就明白了。


祝顺利!
谢谢TristoneGao的回帖。您的帮助真的是雪中送炭!
我身在江湖,江湖却没有关于我的传说。
抱歉,上面的贴子中有一行需要更正:
#pragma DATA_SEG PAGED_RAM
应当改为:
#pragma DATA_SEG __RPAGE_SEG PAGED_RAM


我试了一下,没有进行任何设置。直接在工程自动生成的PRM文件中定义的EEEPROM空间,按普通RAM一样操作。发现可以实现功能。还不知道怎么使用CCOB命令
我身在江湖,江湖却没有关于我的传说。
返回列表