lhaoyue 发表于 2020-3-16 17:36:28

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

想问下CMSIS-RTOS2 封装后的freertos中断怎么处理?
ucos 中断有临界区
CMSIS-RTOS2有什么相应的处理吗?
谢谢!

eric2013 发表于 2020-3-17 10:03:38

因为CMSIS-RTOS V2延续了之前RTX4的特性,所以没有提供临界区API

eric2013 发表于 2020-3-17 10:03:41

因为CMSIS-RTOS V2延续了之前RTX4的特性,内部本身无开关中断操作,所以没有提供临界区API



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

RTX5的话,就跟裸机一样。

lhaoyue 发表于 2020-3-17 11:24:56

谢谢,硬汉!

wdliming 发表于 2020-3-17 11:29:25

eric2013 发表于 2020-3-17 10:03
因为CMSIS-RTOS V2延续了之前RTX4的特性,内部本身无开关中断操作,所以没有提供临界区API




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

eric2013 发表于 2020-3-17 12:52:43

wdliming 发表于 2020-3-17 11:29
rtx5这么厉害吗??不用临界区了???
那还是rtos吗

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

morning_enr6U 发表于 2020-3-17 23:01:01

{:8:}

wzd5230 发表于 2022-9-6 10:07:42

eric2013 发表于 2020-3-17 12:52
是的,零中断延迟就是这么来的。

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

eric2013 发表于 2022-9-8 11:48:22

wzd5230 发表于 2022-9-6 10:07
请教下硬汉,如果没有临界区,RTX下如何处理被“中断“和”任务“访问的共享资源呢?

原子操作指令

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

wzd5230 发表于 2022-9-13 10:20:00

eric2013 发表于 2022-9-8 11:48
原子操作指令

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


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

eric2013 发表于 2022-9-14 17:35:06

wzd5230 发表于 2022-9-13 10:20
看了下这个帖子里面提到的API,是对8bit、16bit、32bit变量的一些读写操作,那如果要保护的对象是一个数 ...

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

PYL4869 发表于 2022-11-13 17:43:30

eric2013 发表于 2020-3-17 10:03
因为CMSIS-RTOS V2延续了之前RTX4的特性,内部本身无开关中断操作,所以没有提供临界区API




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

msxingchen 发表于 2022-11-14 10:20:29

PYL4869 发表于 2022-11-13 17:43
这个意思是还是需要自己去调用FreeRTOS原始的API吗?并不是说CMSIS-RTOS2已经对于FreeRTOS的需要临界的做 ...

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

caicaptain2 发表于 2022-11-14 15:37:03

PYL4869 发表于 2022-11-13 17:43
这个意思是还是需要自己去调用FreeRTOS原始的API吗?并不是说CMSIS-RTOS2已经对于FreeRTOS的需要临界的做 ...

我感觉还是要从程序的流程上考虑这种读写冲突。
比如对于关键的外设,变量,只在单一的任务中进行写操作。 其他任务只能发送“写”的要求,具体操作只在单一任务中进行。“读”操作可以多处进行。 如果需要“写-读”同步的话,就需要发送同步的消息处理。
页: [1]
查看完整版本: [求助] 问下CMSIS-RTOS2 封装后的freertos中断怎么处理?