查看: 4429|回复: 4

[S12] M9S12XET256的2种EEPROM读写问题

[复制链接]

该用户从未签到

1

主题

13

帖子

0

新手上路

Rank: 1

积分
13
最后登录
1970-1-1
发表于 2011-7-18 21:43:35 | 显示全部楼层 |阅读模式
M9S12XET256的2种EEPROM有2种EEPROM。一种是Dflash模拟的EEPROM。地址D_Flash(0x100000~0x107FFF),这个读写没问题。就是要加缓存保护,速度较慢,
另外M9S12XET256还有自己的4K的EEPROM,地址(0x13F000~0x13FFFF)这块是通过RAM做缓存的,
 
用软件处理器专家生成的程序,我读写RAM缓存都没问题。用仿真器看0x13F000~0x13FFFF中的数据也的确写进去了,但是一断电重上,0x13F000~0x13FFFF的数据就乱了啊,每次上电复原的数据都是一样的,很奇怪是不是0x13F000~0x13FFFF这块的数据不能保存???
 
EEPROM          = READ_WRITE  DATA_NEAR            0x0800 TO   0x0FFF;
我知道答案 目前已有3人回答
回复

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2011-7-19 15:26:15 | 显示全部楼层

    RE:M9S12XET256的2种EEPROM读写问题

    你操作的这段空间是不对的,这段应该是RAM中的位置,复位以后,这些都还原为默认值。
    应该操作的是:
    /* paged EEPROM                                        0x0800 TO   0x0BFF; addressed through EPAGE */
          EEPROM_00     = READ_ONLY   DATA_FAR IBCC_FAR  0x000800 TO 0x000BFF;
    该会员没有填写今日想说内容.

    该用户从未签到

    2

    主题

    33

    帖子

    0

    注册会员

    Rank: 2

    积分
    95
    最后登录
    1970-1-1
    发表于 2012-1-5 09:32:59 | 显示全部楼层

    回复:M9S12XET256的2种EEPROM读写问题

    我这久也在学习这块的内容,我认为的是你说的2种,其实第一种方式是直接利用D_FLASH来存储数据,直接依靠地址来写入和读取就可以了,而EEE,则是利用划分BUFFER_ROM作为EEE_ROM,划分D_FLASH作为EEE_FLASH来读写的。我们直接操作的是EEE_ROM区域,数据写入EEE_ROM后对应的D_FLASH(EEE_FLASH)会相应的执行存储数据,而该数据是包含标识符和数据的内容一起存储的,而且是循环存储的,就像水管里的水。写入后你会发现2个地方存储了数据,就是EEE_ROM,EEE_FLASH。但是断电后只有EEE_ROM的内容消失,当再次上电后最优先的是讲EEE_FLASH的数据考到对应的EEE_ROM里面。你可以再次烧写但是不运行程序,去观察对应的EEE_ROM。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    33

    帖子

    0

    注册会员

    Rank: 2

    积分
    95
    最后登录
    1970-1-1
    发表于 2012-1-5 09:33:00 | 显示全部楼层

    回复:M9S12XET256的2种EEPROM读写问题

    我这久也在学习这块的内容,我认为的是你说的2种,其实第一种方式是直接利用D_FLASH来存储数据,直接依靠地址来写入和读取就可以了,而EEE,则是利用划分BUFFER_ROM作为EEE_ROM,划分D_FLASH作为EEE_FLASH来读写的。我们直接操作的是EEE_ROM区域,数据写入EEE_ROM后对应的D_FLASH(EEE_FLASH)会相应的执行存储数据,而该数据是包含标识符和数据的内容一起存储的,而且是循环存储的,就像水管里的水。写入后你会发现2个地方存储了数据,就是EEE_ROM,EEE_FLASH。但是断电后只有EEE_ROM的内容消失,当再次上电后最优先的是讲EEE_FLASH的数据考到对应的EEE_ROM里面。你可以再次烧写但是不运行程序,去观察对应的EEE_ROM。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    11

    帖子

    0

    新手上路

    Rank: 1

    积分
    19
    最后登录
    1970-1-1
    发表于 2012-4-28 16:51:13 | 显示全部楼层

    回复:M9S12XET256的2种EEPROM读写问题

    回复第 2 楼 于2011-07-19 15:26:15发表:
    你操作的这段空间是不对的,这段应该是RAM中的位置,复位以后,这些都还原为默认值。
    应该操作的是:
    /* paged EEPROM 0x0800 TO 0x0BFF; addressed through EPAGE */
    EEPROM_00 = READ_ONLY DATA_FAR IBCC_FAR 0x000800 TO 0x000BFF; 

    我觉得这部分地址,已经映射到RAM中了,也就是说,对RAM地址的操作与操作全局地址是一样的。我正好也调试这个程序,一直没有调试通过,很郁闷的。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-28 07:36 , Processed in 0.093769 second(s), 25 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表