FreeRTOS软件定时器apollo中断状态判断的方法
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,本篇内容主要讲解"FreeRTOS软件定时器apollo中断状态判断的方法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"FreeRTOS软件定时器apol
千家信息网最后更新 2025年11月07日FreeRTOS软件定时器apollo中断状态判断的方法
本篇内容主要讲解"FreeRTOS软件定时器apollo中断状态判断的方法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"FreeRTOS软件定时器apollo中断状态判断的方法"吧!
问题场景
开发中发现FreeRTOS软件定时器不走了,具体表现在软件定时器中断进不去。
分析问题
观察发现只有在某个任务执行期间,FreeRTOS的软件定时器才会不走,其他任务执行时正常,排查后是此任务的优先级比定时器任务高,且占用时间比较长,导致任务切不出去。
解决问题
在FreeRTOSConfig.h中修改定时器任务优先级为最高解决问题

apollo中断状态判断
在看apollo3 代码时发现下面这个函数
void WsfSetOsSpecificEvent(void){ if(xRadioTaskEventObject != NULL) { BaseType_t xHigherPriorityTaskWoken, xResult; if(xPortIsInsideInterrupt() == pdTRUE) { // Send an event to the main radio task xHigherPriorityTaskWoken = pdFALSE; xResult = xEventGroupSetBitsFromISR(xRadioTaskEventObject, 1, &xHigherPriorityTaskWoken); // If the radio task is higher-priority than the context we're currently // running from, we should yield now and run the radio task. // if ( xResult != pdFAIL ) { portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } } else { xResult = xEventGroupSetBits(xRadioTaskEventObject, 1); // // If the radio task is higher priority than the context we're currently // running from, we should yield now and run the radio task. // if ( xResult != pdFAIL ) { portYIELD(); } } } }这是FreeRTOS发送一个事件标志组,xPortIsInsideInterrupt这个函数判断是否在中断中,进而调用判断是否调用FromISR结尾的api,下面看下原理
static portFORCE_INLINE BaseType_t xPortIsInsideInterrupt( void ){uint32_t ulCurrentInterrupt;BaseType_t xReturn; /* Obtain the number of the currently executing interrupt. */ __asm { mrs ulCurrentInterrupt, ipsr } if( ulCurrentInterrupt == 0 ) { xReturn = pdFALSE; } else { xReturn = pdTRUE; } return xReturn;}读IPSR寄存器,0表示当前没有中断在运行,非0表示正在运行的中断号,即处于中断中,所以要用FromISR结尾的api
到此,相信大家对"FreeRTOS软件定时器apollo中断状态判断的方法"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
定时器
软件
任务
方法
状态
问题
优先级
内容
函数
学习
运行
实用
更深
最高
事件
代码
兴趣
原理
只有
场景
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全社会效益指标
深圳科技园互联网科技
sql可视化数据库
网络安全小心行观后感
六盘水高密度存储服务器费用
数据库空间大小
校园网络技术委员会干嘛的
监狱网络安全检查报告
网络安全法治宣传教育小结
桌面软件开发项目外包
毕马威网络安全保险预测
幼儿园网络安全相关标语口号
浪潮8460服务器管理口
速达软件数据库是什么
网赌棋牌作弊软件开发
mysql数据库处理千万
数据库粒度之属性加密
增强网络安全防范意识 人民网
富士通服务器阵列卡驱动
软件开发公司怎么报价
光遇国际服务器速度
发达服务器属于
北京天悦网络技术有限公司
上海缘麟网络技术
长城超云服务器发票
顺义区综合软件开发口碑推荐
数据库安全 pdf
恐怖黎明数据库
nas可以挂载到多个服务器上吗
数据库索引 b