[应用方案] APM32 Freertos中断处理

[复制链接]
1104|10
 楼主| mollylawrence 发表于 2022-12-12 13:00 | 显示全部楼层 |阅读模式
一、问题背景
APM32的中断优先级是用bit[7:5]来管理的,理论上只能有8个优先级。STM32优先级用bit[7:4]来管理,理论上有16个优先级。

APM32优先级寄存器的bit[4]没有用,读出默认是0.

但cube只要选了freertos后,优先级分组只能选NVIC_PRIORITYGROUP_4,不能改为NVIC_PRIORITYGROUP_3. 但似乎也没啥大影响,只是会对优先级进行截断,比如设置的优先级是5,实际是4,设置为11,实际是10。所以在cube里默认配置,同时编程人员自己心理清楚真实的优先级就行了。

但实际运行中,发现freertos启动不起来。和官方历程对比后,发现需要在“FreeRTOSConfig.h”中,手动屏蔽configASSERT即可 。如下所示:

// #define configASSERT( x ) if ((x) == 0) {taskDISABLE_INTERRUPTS(); for( ;; );}
1
二、原因
如果开启了configASSERT, freertos中,会到处检查优先级的配置是否正确。cube中启动了rtos后,只能设置stm32的优先级分组为NVIC_PRIORITYGROUP_4,而实际APM32的优先级分组为NVIC_PRIORITYGROUP_3,所以导致很多configASSERT检查失败,跳到了死循环里。
原文链接:https://blog.csdn.net/chshch83/article/details/126678771

Undshing 发表于 2023-1-3 15:28 | 显示全部楼层
为啥会对优先级进行截断?
lzbf 发表于 2023-1-5 12:18 | 显示全部楼层
使用操作系统,为什么要使用中断呢?
timfordlare 发表于 2023-1-6 12:52 | 显示全部楼层
这个中断怎么和freertos结合起来?
janewood 发表于 2023-1-6 15:45 | 显示全部楼层
还可使用cube?              
wangdezhi 发表于 2023-1-6 17:42 | 显示全部楼层
这个中断会不会影响节奏?              
olivem55arlowe 发表于 2023-1-9 10:13 | 显示全部楼层
这个为什么要添加中断呢?              
maqianqu 发表于 2023-1-9 12:40 | 显示全部楼层
Freertos的教程在哪里下载的
earlmax 发表于 2023-1-9 13:31 | 显示全部楼层
中断会不会影响代码的执行呢?              
ccook11 发表于 2023-1-9 16:33 | 显示全部楼层
Freertos可以使用哪些中断呢?
lzmm 发表于 2023-2-7 20:32 | 显示全部楼层
Freertos中断最好不要使用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

49

主题

1988

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部