硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3127|回复: 5
收起左侧

[RL-CAN] 请教下,采用RTX自带can通信,偶尔进入handfault中断,程序死在can_pull函数中

[复制链接]

4

主题

8

回帖

20

积分

新手上路

积分
20
发表于 2017-7-29 11:12:47 | 显示全部楼层 |阅读模式
请教下,采用RTX自带can通信,偶尔进入handfault中断,程序死在can_pull函数中,*msg=*ptrmsg;
ptrmsg指针指向的地址好像跑飞了。
已确定接收邮箱MBX_rx_ctrl未溢出,can接收fifo溢出但是不会导致handFault错误,,

微信图片_20170729105957.jpg

微信图片_20170729110518.jpg
回复

使用道具 举报

5

主题

578

回帖

593

积分

版主

Rank: 7Rank: 7Rank: 7

积分
593
发表于 2017-7-29 11:32:44 | 显示全部楼层
如果使用的是rtx自带源码和can源码,按理不应该出现你说的问题啊,注意不要在中断函数里调用can的函数即可

keil自带can库是支持多线程的
回复

使用道具 举报

4

主题

8

回帖

20

积分

新手上路

积分
20
 楼主| 发表于 2017-7-29 12:30:24 | 显示全部楼层
这现象是偶尔复现,数组,堆栈也没有溢出,很难定位问题。所以怀疑是不是中断优先级设置错误,任务切换时偶尔导致程序跑飞
回复

使用道具 举报

5

主题

578

回帖

593

积分

版主

Rank: 7Rank: 7Rank: 7

积分
593
发表于 2017-7-29 13:17:11 | 显示全部楼层

回 开心就好 的帖子

开心就好:这现象是偶尔复现,数组,堆栈也没有溢出,很难定位问题。所以怀疑是不是中断优先级设置错误,任务切换时偶尔导致程序跑飞 (2017-07-29 12:30) 
先把中断设置的问题改正吧,那个肯定是不对的

而且你要这样想,进入任务的话可能模式都不同了,rtx支持非特权模式,打开这种模式的话你在任务里都不能设置nvic的所有寄存器了
回复

使用道具 举报

4

主题

8

回帖

20

积分

新手上路

积分
20
 楼主| 发表于 2017-7-29 14:40:10 | 显示全部楼层
移植的时候RTX配置的是特权模式,所以应该是可以访问寄存器的
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2017-7-30 15:23:43 | 显示全部楼层

回 开心就好 的帖子

开心就好:移植的时候RTX配置的是特权模式,所以应该是可以访问寄存器的 (2017-07-29 14:40) 
参考这个应用例子搞下:http://www.armbbs.cn/forum.php?mod=viewthread&tid=17330
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-5 16:26 , Processed in 0.255378 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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