在线时间12 小时
UID3454531
注册时间2018-1-23
NXP金币0
TA的每日心情 | 衰 2018-6-13 13:17 |
---|
签到天数: 16 天 连续签到: 1 天 [LV.4]偶尔看看III
注册会员

- 积分
- 101
- 最后登录
- 2024-6-20
|
各位大神是否有使用过官方CAN driver,在使用demo code 时 我的程序一旦执行下面红色两句就进入DefaultIsr 然后程序就死了,完全不工作了。
msCANdrv文件中的Queue_CAN_MB()函数中的两句导致问题,屏蔽后程序正常,但是CAN不工作。
if (p_TXBuffer->mb == 0xff) /* TX_BUFF0 is empty */
{
p_TXBuffer->mbp = p_buffer->ID;
p_TXBuffer->mb = ABuffer; /* write buffer # */
Load_CAN_Buff(AChn, TX_buff0, ABuffer, MB_ID_Ref);
//p->CANTFLG.Byte = 0x01; /* write 1 to TXE to schedule buffer */
//p->CANTIER.Byte |= 0x01; /* enable interrupt for this buffer */
}
程序死在启动文件中的DefaultISR
DefaultISR:
ldr r0, =DefaultISR
bx r0
.size DefaultISR, . - DefaultISR
论坛里是否有大神遇到过此类问题,请指教,感谢!
最佳答案
第二句使能中断,那么你有没有配置对应的中断函数呢?
如果没有中断函数,中断一旦产生,指针无处寻址,就会出现这样的错误。
|
|