OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4695|回复: 2

在freeRTOS里面,中断回调函数需要设计成可重入函数吗?为什么?

[复制链接]

2

主题

3

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2020-11-6
在线时间
1 小时
发表于 2020-11-6 16:56:42 | 显示全部楼层 |阅读模式
如题。比如说在rt_pin_attach_irq里面的中断回调函数,需要设计成可重入函数吗?为什么?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

19

主题

334

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1108
金钱
1108
注册时间
2018-11-6
在线时间
240 小时
发表于 2020-12-1 09:24:12 | 显示全部楼层
一、最好要设计成可重入函数。
          如果设计成不可重入函数,当前任务A正在访问函数func(),突然进行了一次任务切换,任务B获取CPU的控制权,任务B又开始访问函数func(),就会产生冲突。

二、如果是调用的其它公司软件包中的某个函数,例如:调用的是GUI包中的函数,如果该GUI编写的库函数不支持RTOS,那你就没有办法,只能这样,
           某一任务调用该不可重入的函数之前,使用互斥信号量锁定,防止其它任务访问该函数

   
回复 支持 1 反对 0

使用道具 举报

0

主题

3

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2020-5-2
在线时间
19 小时
发表于 2020-11-28 00:38:34 | 显示全部楼层
这个不可重入吧,毕竟属于共享资源,不知道楼主为什么要设计成为可重入
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 17:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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