硬汉嵌入式论坛

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

[FreeRTOS] 安富莱代码中断使用的事宜

[复制链接]

62

主题

77

回帖

263

积分

高级会员

积分
263
发表于 2015-11-23 14:31:33 | 显示全部楼层 |阅读模式
   安富莱代码里面的硬件中断为什么都设置高于(优先级)configMAX_SYSCALL_INTERRUPT_PRIORITY(=5)的优先级?这样会造成临界保护taskENTER_CRITICAL()无法阻止硬件中断,在特殊应用中,会造成BUG,比如软件模拟时序写读I2C时候,一般都要用临界资源保护。随意中断读写过程会出错。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2015-11-23 14:37:17 | 显示全部楼层
以V4开发板里面的程序为准,V5的还没有升级,过些日子写FreeRTOS教程时进行升级。

========================
另外中断的优先级可以设置高于configMAX_SYSCALL_INTERRUPT_PRIORITY,这些需需要高实时性的中断不受此限制,条件是不要在中断里面调用
FreeRTOS的任何API。

这问题我在这个帖子里面有说:http://www.armbbs.cn/forum.php?mod=viewthread&tid=12784
回复

使用道具 举报

62

主题

77

回帖

263

积分

高级会员

积分
263
 楼主| 发表于 2015-11-23 14:43:29 | 显示全部楼层

回 eric2013 的帖子

eric2013:以V4开发板里面的程序为准,V5的还没有升级,过些日子写FreeRTOS教程时进行升级。

========================
另外中断的优先级可以设置高于configMAX_SYSCALL_INTERRUPT_PRIORITY,这些需需要高实时性的中断不受此限制,条件是不要在中断里面调用
FreeRTOS的任何API。
....... (2015-11-23 14:37)
明白,但是其实这个应用是很矛盾的,比如比如软件模拟时序写读I2C时候,一般都要用临界资源保护。如果优先级都比系统调用的高的话,临界区处理函数关不掉有实时性高的硬件中断,很容易造成I2C读写过程会出错。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2015-11-23 14:49:35 | 显示全部楼层

回 freertos 的帖子

freertos:明白,但是其实这个应用是很矛盾的,比如比如软件模拟时序写读I2C时候,一般都要用临界资源保护。如果优先级都比系统调用的高的话,临界区处理函数关不掉有实时性高的硬件中断,很容易造成I2C读写过程会出错。
 (2015-11-23 14:43) 
所以对于你应用而言不适合采用这种方式,适合把所有中断都关闭掉。
回复

使用道具 举报

62

主题

77

回帖

263

积分

高级会员

积分
263
 楼主| 发表于 2015-11-23 15:00:17 | 显示全部楼层

回 eric2013 的帖子

eric2013:所以对于你应用而言不适合采用这种方式,适合把所有中断都关闭掉。 (2015-11-23 14:49) 
嗯。多谢指导
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 06:49 , Processed in 0.165697 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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