查看: 4798|回复: 7

[原创] 将ROM_4000修改为RAM步骤

[复制链接]
  • TA的每日心情
    开心
    2018-10-26 08:41
  • 签到天数: 49 天

    连续签到: 1 天

    [LV.5]常住居民I

    16

    主题

    149

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    385
    最后登录
    2019-3-13
    发表于 2017-9-5 08:41:38 | 显示全部楼层 |阅读模式
    总共修改6个地方
    1.prm文件,将
    • ROM_4000  = READ_ONLY        DATA_NEAR   IBCC_NEAR   0x4000 TO 0x7FFF修改为
    RAM_4000  =READ_WRITE       DATA_NEAR      0x4000TO 0x7FFF
      2) DEFAULT_RAM  INTO RAM修改为
         DEFAULT_RAM  INTO RAM,RAM_4000


    2.standard settings——Assembler for HC12——Options——Code Generations——Memory Model,修改为Banked MemoryModel,
    3.standard settings——Assembler for HC12——Options——Code Generations——Define mapping for memory space0x4000~0x7FFF,修改为Map RAM,
    4.standard settings——Compiler for HC12——Options——Code Generations——Memory Model,修改为Banked MemoryModel,
    5.standard settings——Compiler for HC12——Options——Code Generations——Define mapping for memory space0x4000~0x7FFF,修改为Map RAM,
    6.standard settings——Compiler for HC12——Options——Language——Preprocessor definitions——,修改为__MAP_RAM__
    7.上述的设置工作,都是准备工作,没有下述语句,上述的设置工作,都是白费,
    ====================================语句开始===========================================
    #if(defined(__MAP_RAM__) || defined(__MAP_FLASH__) || defined(__MAP_EXTERNAL__))&& !defined(__DO_SET_MMCTL1__)
    #define__DO_SET_MMCTL1__
    #endif


    #ifdefined(__DO_SET_MMCTL1__)
      /* Set the MMCTL1 byte. Please use forHCS12XE and change the bits according  */
      /* to your configuration.                                                     */
      /* Note: MMCTL1 is write once thereforeplease adapt this initialization here. */
      /* This has to be done prior to the call toInit.                              */
    #define _MMCTL1_ADR(0x00000013)
    #define_MMCTL1_BIT_TGMRAMON (1<<7)  /* EEETag RAM and FTM SCRATCH RAM visible in the memory map */
    #define_MMCTL1_BIT_EEEIFRON (1<<5)  /* EEEIFR visible in the memory map                         */
    #define_MMCTL1_BIT_PGMIFRON (1<<4)  /*Program IFR visible in the memory map                     */
    #define_MMCTL1_BIT_RAMHM    (1<<3)  /* RAM only in the higher half of the memorymap             */
    #define_MMCTL1_BIT_EROMON   (1<<2)  /* Enables emulated Flash or ROM memory inthe memory map    */
    #define_MMCTL1_BIT_ROMHM    (1<<1)  /* FLASH or ROM only in higher Half of MemoryMap            */
    #define_MMCTL1_BIT_ROMON    (1<<0)  /* Enable FLASH or ROM in the memory map                     */

    #define_MMCTL1_SET(value)   ((*(volatileunsigned char*)_MMCTL1_ADR)= (value))

    #ifdefined(__MAP_FLASH__)
      _MMCTL1_SET(_MMCTL1_BIT_ROMON |_MMCTL1_BIT_EROMON);
    #elifdefined(__MAP_EXTERNAL__)
      _MMCTL1_SET(_MMCTL1_BIT_ROMON |_MMCTL1_BIT_EROMON | _MMCTL1_BIT_ROMHM);
    #else /* RAM */
      _MMCTL1_SET(_MMCTL1_BIT_ROMON |_MMCTL1_BIT_EROMON | _MMCTL1_BIT_RAMHM | _MMCTL1_BIT_ROMHM);
    #endif   
    #endif
    ====================================语句结束===========================================
    上面的语句,一般都是在新建工程的时候,编译器自动在start12.c文件里生成的,不用手动修改。
    主要是通过读取是否预定义了__MAP_RAM__或(__MAP_FLASH__或__MAP_EXTERNAL__
    并根据预定义项对MMCTL1寄存器进行操作,寄存器按预定义设置好后,0x4000~0x7FFF地址即可按设置进行分配。

    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-9-13 10:15
  • 签到天数: 35 天

    连续签到: 1 天

    [LV.5]常住居民I

    13

    主题

    500

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1183
    最后登录
    2024-12-10
    发表于 2017-9-13 16:55:51 | 显示全部楼层
    貌似很牛逼啊,你验证了吗?具体哪个芯片?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-10-26 08:41
  • 签到天数: 49 天

    连续签到: 1 天

    [LV.5]常住居民I

    16

    主题

    149

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    385
    最后登录
    2019-3-13
     楼主| 发表于 2018-9-6 14:08:23 | 显示全部楼层
    jiang887786 发表于 2017-9-13 16:55
    貌似很牛逼啊,你验证了吗?具体哪个芯片?

    验证了,是XEP100
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-10-26 08:41
  • 签到天数: 49 天

    连续签到: 1 天

    [LV.5]常住居民I

    16

    主题

    149

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    385
    最后登录
    2019-3-13
     楼主| 发表于 2018-9-6 14:08:30 | 显示全部楼层
    jiang887786 发表于 2017-9-13 16:55
    貌似很牛逼啊,你验证了吗?具体哪个芯片?

    验证了,是XEP100
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-10-26 08:41
  • 签到天数: 49 天

    连续签到: 1 天

    [LV.5]常住居民I

    16

    主题

    149

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    385
    最后登录
    2019-3-13
     楼主| 发表于 2018-9-6 14:09:06 | 显示全部楼层
    jiang887786 发表于 2017-9-13 16:55
    貌似很牛逼啊,你验证了吗?具体哪个芯片?

    验证了,是XEP100
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-10-26 08:41
  • 签到天数: 49 天

    连续签到: 1 天

    [LV.5]常住居民I

    16

    主题

    149

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    385
    最后登录
    2019-3-13
     楼主| 发表于 2018-9-6 14:09:15 | 显示全部楼层
    jiang887786 发表于 2017-9-13 16:55
    貌似很牛逼啊,你验证了吗?具体哪个芯片?

    验证了,是XEP100
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-10-26 08:41
  • 签到天数: 49 天

    连续签到: 1 天

    [LV.5]常住居民I

    16

    主题

    149

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    385
    最后登录
    2019-3-13
     楼主| 发表于 2018-9-6 14:10:09 | 显示全部楼层
    jiang887786 发表于 2017-9-13 16:55
    貌似很牛逼啊,你验证了吗?具体哪个芯片?

    验证了,是XEP100
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-10-26 08:41
  • 签到天数: 49 天

    连续签到: 1 天

    [LV.5]常住居民I

    16

    主题

    149

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    385
    最后登录
    2019-3-13
     楼主| 发表于 2018-9-6 14:12:06 | 显示全部楼层
    尴尬了,网页出了问题,回复了这么多次
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-8-26 03:22 , Processed in 0.094483 second(s), 25 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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