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

codeWarrior for S12 debug仿真调试中的问题

codeWarrior for S12 debug仿真调试中的问题

我在MC9S12C128上做了一个CAN收发的程序,编译完全正确,调试时不论MCU/connection选择的是full chip simulator还是TBDML,运行到CAN初始化函数时都不识别MSCAN模块的寄存器,MSCAN模块初始化函数如下:
void CANInitialize(unsigned char BTRFlag)
{
      //设置CANE,使MSCAN模块使能
      CANCTL1_CANE=1;
      //设置MSCAN时钟来源---bus clock=1或oscillator clock=0
      CANCTL1_CLKSRC=MSCANCLOCKSRC;
      
      //软件方式确保MSCAN模块进入初始化模式
      CANCTL0_INITRQ=1;
      while (CANCTL1_INITAK==0)
      {
           CANCTL0_INITRQ=1;
      }
        
      //设置验收控制寄存器,使用4个16位验收滤波器
      CANIDAC_IDAM=2;
      
      //设置验收码寄存器,使所有消息都能接收---故使用缺省值,不再进行设置
      //CANIDAR0=0x0;
      //CANIDAR1=0x0;
      //CANIDAR2=0x0;
      //CANIDAR3=0x0;
      //CANIDAR4=0x0;
      //CANIDAR5=0x0;
      //CANIDAR6=0x0;
      //CANIDAR7=0x0;
      
      //设置屏蔽码寄存器,使所有位都不相关
      CANIDMR0=0xff;
      CANIDMR1=0xff;
      CANIDMR2=0xff;
      CANIDMR3=0xff;
      CANIDMR4=0xff;
      CANIDMR5=0xff;
      CANIDMR6=0xff;
      CANIDMR7=0xff;
      
      //设置波特率寄存器---即位定时器0和位定时器1寄存器
      CANSetBaudRate(BTRFlag);
      //软件方式确保MSCAN模块进入正常工作模式
      CANCTL0_INITRQ=0;
      while (CANCTL1_INITAK==1)
      {
           CANCTL0_INITRQ=0;
      }
}
1.执行对MSCAN寄存器赋值语句时,例如执行CANCTL1_CANE=1;语句时
会command窗口出现“FCS Warning (ID 4): reading from unimplemented register at pc = 0x3880d5. Value: 0x11, Memory Address: 0x141. MSCAN module not implemented”提示;
2.执行对MSCAN寄存器读出语句时,例如执行while (CANCTL1_INITAK==0)语句时command窗口出现“FCS Warning (ID 4): writing to unimplemented register at pc = 0x3880d5. Value: 0x91, Memory Address: 0x141. MSCAN module not implemented”
不知何故,请大家帮帮忙,谢谢!
返回列表