mollylawrence 发表于 2022-12-12 13:00

APM32 Freertos中断处理

一、问题背景
APM32的中断优先级是用bit来管理的,理论上只能有8个优先级。STM32优先级用bit来管理,理论上有16个优先级。

APM32优先级寄存器的bit没有用,读出默认是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中断最好不要使用。
页: [1]
查看完整版本: APM32 Freertos中断处理