我使用28377D,使用位域的方式配置设置清息对象,如下面所示
CanaRegs.CAN_IF1MSK.all) = maskReg;
CanaRegs.CAN_IF1ARB.all = arbReg;
CanaRegs.CAN_IF1MCTL.all = msgCtrl;
CanaRegs.CAN_IF1CMD.all = (cmdMaskReg | (objID & CAN_IF1CMD_MSG_NUM_M));
消息对象能够正常收发,所有中断开启,CAN_GLB_INTFLG,IPENX,IPEN_21均指示正确,有中断挂起,但始终无法进入中断.
而__byte_peripheral_32方式接入CAN寄存器,如下面所示
HWREG_BP(0x048000 + CAN_O_IF1MSK) = maskReg;
HWREG_BP(0x048000 + CAN_O_IF1ARB) = arbReg;
HWREG_BP(0x048000 + CAN_O_IF1MCTL) = msgCtrl;
HWREG_BP(0x048000 + CAN_O_IF1CMD) = (cmdMaskReg | (objID & CAN_IF1CMD_MSG_NUM_M));
CAN的收发正常,启用中断能进入中进入中断.
请问,位域使用bp_32 __attribute__((byte_peripheral))对寄存器进行定义,但通过CanaRegs.CAN_IF1CMD.all 这样的名称接入寄存器 始终与使用HWREG_BP接入有区别,具体是什么原因造成CanaRegs.CAN_IF1CMD.all的32位访问有误,我想用CanaRegs.CAN_IF1CMD.all的形式访问寄存器 ,可行吗,有什么办法?
麻烦懂的人测试一下 给出回复,谢谢!
maplelhf:
另外,-O4优化选项,CanaRegs.CAN_IF1CMD.all的接入形式,也可以实现中断了,其它选项均不可以.
,
maplelhf:
另外,-O4优化选项,CanaRegs.CAN_IF1CMD.all的接入形式,也可以实现中断了,其它选项均不可以.
,
Susan Yang:
若是可以的话,请您私信一下您的工程,我们实际看一下,谢谢
,
maplelhf:
发去那里?
,
Susan Yang:
请点击我的头像,至个人页面,而后点击右上角的“连接”,发送私信,以附件形式上传工程即可
,
maplelhf:
想问一下 有什么方法可以在调试时使用CCS正确查看28377D消息ram区域?