codeWarrior for S12 debug仿真调试中的问题
- UID
- 824972
|
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”
不知何故,请大家帮帮忙,谢谢! |
|
|
|
|
|