硬汉嵌入式论坛

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

[FreeRTOS] [求助] 问下CMSIS-RTOS2 封装后的freertos中断怎么处理?

  [复制链接]

15

主题

117

回帖

162

积分

初级会员

积分
162
发表于 2020-3-16 17:36:28 | 显示全部楼层 |阅读模式
想问下CMSIS-RTOS2 封装后的freertos中断怎么处理?
ucos 中断有临界区
CMSIS-RTOS2有什么相应的处理吗?
谢谢!

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2020-3-17 10:03:38 | 显示全部楼层
因为CMSIS-RTOS V2延续了之前RTX4的特性,所以没有提供临界区API
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2020-3-17 10:03:41 | 显示全部楼层
因为CMSIS-RTOS V2延续了之前RTX4的特性,内部本身无开关中断操作,所以没有提供临界区API
QQ截图20200317100303.png


你使用FreeRTOS版要用的话,直接调用FreeRTOS原始的API即可。

RTX5的话,就跟裸机一样。
回复

使用道具 举报

15

主题

117

回帖

162

积分

初级会员

积分
162
 楼主| 发表于 2020-3-17 11:24:56 | 显示全部楼层
谢谢,硬汉!
回复

使用道具 举报

73

主题

1193

回帖

1412

积分

至尊会员

积分
1412
发表于 2020-3-17 11:29:25 | 显示全部楼层
eric2013 发表于 2020-3-17 10:03
因为CMSIS-RTOS V2延续了之前RTX4的特性,内部本身无开关中断操作,所以没有提供临界区API

rtx5这么厉害吗??不用临界区了???
那还是rtos吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2020-3-17 12:52:43 | 显示全部楼层
wdliming 发表于 2020-3-17 11:29
rtx5这么厉害吗??不用临界区了???
那还是rtos吗

是的,零中断延迟就是这么来的。
回复

使用道具 举报

3

主题

1222

回帖

1231

积分

至尊会员

积分
1231
发表于 2020-3-17 23:01:01 | 显示全部楼层
回复

使用道具 举报

1

主题

6

回帖

9

积分

新手上路

积分
9
发表于 2022-9-6 10:07:42 | 显示全部楼层
eric2013 发表于 2020-3-17 12:52
是的,零中断延迟就是这么来的。

请教下硬汉,如果没有临界区,RTX下如何处理被“中断“和”任务“访问的共享资源呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2022-9-8 11:48:22 | 显示全部楼层
wzd5230 发表于 2022-9-6 10:07
请教下硬汉,如果没有临界区,RTX下如何处理被“中断“和”任务“访问的共享资源呢?

原子操作指令

RTX5里面提供的各种原子操作API,可以独立复制出来使用,含MDK,IAR和GCC
https://www.armbbs.cn/forum.php? ... 9114&fromuid=58
(出处: 硬汉嵌入式论坛)

回复

使用道具 举报

1

主题

6

回帖

9

积分

新手上路

积分
9
发表于 2022-9-13 10:20:00 | 显示全部楼层
eric2013 发表于 2022-9-8 11:48
原子操作指令

RTX5里面提供的各种原子操作API,可以独立复制出来使用,含MDK,IAR和GCC

看了下这个帖子里面提到的API,是对8bit、16bit、32bit变量的一些读写操作,那如果要保护的对象是一个数组、结构体,这种情况下,好像就不太行了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2022-9-14 17:35:06 | 显示全部楼层
wzd5230 发表于 2022-9-13 10:20
看了下这个帖子里面提到的API,是对8bit、16bit、32bit变量的一些读写操作,那如果要保护的对象是一个数 ...

没问题,操作数组和结构体的成员即可。
回复

使用道具 举报

6

主题

21

回帖

39

积分

新手上路

积分
39
发表于 2022-11-13 17:43:30 | 显示全部楼层
eric2013 发表于 2020-3-17 10:03
因为CMSIS-RTOS V2延续了之前RTX4的特性,内部本身无开关中断操作,所以没有提供临界区API

这个意思是还是需要自己去调用FreeRTOS原始的API吗?并不是说CMSIS-RTOS2已经对于FreeRTOS的需要临界的做了处理?
回复

使用道具 举报

0

主题

6

回帖

6

积分

新手上路

积分
6
发表于 2022-11-14 10:20:29 | 显示全部楼层
PYL4869 发表于 2022-11-13 17:43
这个意思是还是需要自己去调用FreeRTOS原始的API吗?并不是说CMSIS-RTOS2已经对于FreeRTOS的需要临界的做 ...

内部肯定是做了处理。用户自己的程序就要调用相应的FREERTOS的API了。RTX5没用过,如果封装的是RTX5就要使用原子操作,不知道这么理解对比对?
回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
发表于 2022-11-14 15:37:03 | 显示全部楼层
PYL4869 发表于 2022-11-13 17:43
这个意思是还是需要自己去调用FreeRTOS原始的API吗?并不是说CMSIS-RTOS2已经对于FreeRTOS的需要临界的做 ...

我感觉还是要从程序的流程上考虑这种读写冲突。
比如对于关键的外设,变量,只在单一的任务中进行写操作。 其他任务只能发送“写”的要求,具体操作只在单一任务中进行。  “读”操作可以多处进行。 如果需要“写-读”同步的话,就需要发送同步的消息处理。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 07:28 , Processed in 0.334336 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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