查看: 2543|回复: 1

[求助] 中断处理函数自加问题

[复制链接]

该用户从未签到

1

主题

1

帖子

0

新手上路

Rank: 1

积分
4
最后登录
2019-8-28
发表于 2019-8-28 23:30:40 | 显示全部楼层 |阅读模式
最近在使用IMX8过程中,遇到一个奇怪的问题。

背景:统计can的状态,包括发送次数,接受次数,重启次数,busoff次数,各种错误状态的统计。

现象:在做错误统计时,发现总的错误数(txerr+rxerr)比发送错误数小。

代码实现:进入中断处理函数,判断错误寄存器ESR1,是否有错误标志位。若有,total_err+1,判断具体的错误,发送错误,则tx_err+1。

目前,测试的情况。错误状态属于一个结构体。
struct volatile err_t {
                             u32 total_err;
                             u32 tx_err;
                             .......
                           };
测试环境,主动向外发报文,没有连接其他can节点,can状态处于err状态。(跑了FREERTOS)发现tx_err>total_err。最后将俩个变量放置在一起相加。如下
if(有err)
{
total_err++;
tx_err++;
}
通过串口打印发现俩个值不同。增加其他成员,发现每个变量的值都不同。。。。。。。。


我知道答案 目前已有1人回答
回复

使用道具 举报

该用户从未签到

20

主题

809

帖子

1

超级版主

Rank: 8Rank: 8

积分
1566
最后登录
2023-1-17
发表于 2019-9-4 13:29:19 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-21 11:55 , Processed in 0.084947 second(s), 22 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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