硬汉嵌入式论坛

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

[FreeRTOS] 关于CMSIS-RTOS-V2 FreeRTOS中断中系统调用的理解

[复制链接]

1

主题

5

回帖

8

积分

新手上路

积分
8
发表于 2020-11-4 12:17:01 | 显示全部楼层 |阅读模式
使用Keil5 RTE添加CMSIS-RTOS-V2 FreeRTOS,发现默认configMAX_SYSCALL_INTERRUPT_PRIORITY = 16 = 0x10。

在选择NVIC_PRIORITYGROUP_4的情况下:

Value(高4位用来描述中断优先级)
中断优先级
0x00
0
0x10
1
0x20
2
...
...
0xF0
15


可以看到,configMAX_SYSCALL_INTERRUPT_PRIORITY = 16 = 0x10对应的是中断优先级1,中断优先级1~15的情况下,是受到freeRTOS管控的,是可以在中断中调用freeRTOS的API函数的。而中断优先级为0的情况下则不受控也不能调用相关API函数。
在有些需要中断及时响应的情况下,可能需要修改configMAX_SYSCALL_INTERRUPT_PRIORITY 的值,来使得中断及时响应,这些中断不受freeRTOS管控。
理解若是有误,还盼坛友们指正,谢谢!


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
发表于 2020-11-5 03:59:12 | 显示全部楼层
没问题。

第12章 FreeRTOS中断优先级配置(重要)
http://www.armbbs.cn/forum.php?m ... 1094&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

1

主题

5

回帖

8

积分

新手上路

积分
8
 楼主| 发表于 2020-11-5 09:21:51 | 显示全部楼层
eric2013 发表于 2020-11-5 03:59
没问题。

第12章 FreeRTOS中断优先级配置(重要)

感谢硬汉哥的指导。
另外我发现,CMSIS-RTOS-V2 FreeRTOS中,不允许使用自带的硬件指令(前导零指令)待切换任务,使用前导零指令时,最多只有32个任务优先级。

pic

pic


可能是为了兼容RTX-5,所以这里这么做了。

回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
发表于 2020-11-5 10:27:18 | 显示全部楼层
这个是可以修改的。 默认的参数有时候不合适。 比如我经常留下5个优先级给硬件用(比如时序控制,精确计时等),不让FreeRTOS控制。
回复

使用道具 举报

1

主题

5

回帖

8

积分

新手上路

积分
8
 楼主| 发表于 2020-11-5 10:29:57 | 显示全部楼层
caicaptain2 发表于 2020-11-5 10:27
这个是可以修改的。 默认的参数有时候不合适。 比如我经常留下5个优先级给硬件用(比如时序控制,精确计时 ...

嗯嗯,是的。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-1 17:54 , Processed in 0.170150 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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