怎么向freertos ucos 比较报bug

在线时间2050 小时
威望1602分
芯币1993枚
TA的帖子TA的资源
纯净的硅(高级), 积分 1602, 距离下一级还需 398 积分
纯净的硅(高级), 积分 1602, 距离下一级还需 398 积分
本帖最后由 freebsder 于
22:28 编辑
首先确保打开定时器,CC3200也是arm核,和其他arm core比FreeRTOS的使用上不会有太大区别。
定时器RTC肯定是打开的啊,FreeRTOS都跑起来了,CC3200的Hardware RTC ticks - typical 32768 Hz是工作正常的。&
人已离开,无事别找,找也找不到。
在线时间276 小时
威望1034分
TA的帖子TA的资源
纯净的硅(中级), 积分 1034, 距离下一级还需 166 积分
纯净的硅(中级), 积分 1034, 距离下一级还需 166 积分
首先确保打开定时器,CC3200也是arm核,和其他arm core比FreeRTOS的使用上不会有太大区别。
定时器RTC肯定是打开的啊,FreeRTOS都跑起来了,CC3200的Hardware RTC ticks - typical 32768 Hz是工作正常的。
最常见的是忘了开中断。&
在线时间2050 小时
威望1602分
芯币1993枚
TA的帖子TA的资源
纯净的硅(高级), 积分 1602, 距离下一级还需 398 积分
纯净的硅(高级), 积分 1602, 距离下一级还需 398 积分
最常见的是忘了开中断。
问题解决了,FreeRTOS是一个库,更改宏后,需要重新编译生成*.a,这样CC3200才能有软定时器。&
在线时间276 小时
威望1034分
TA的帖子TA的资源
纯净的硅(中级), 积分 1034, 距离下一级还需 166 积分
纯净的硅(中级), 积分 1034, 距离下一级还需 166 积分
最常见的是忘了开中断。
问题解决了,FreeRTOS是一个库,更改宏后,需要重新编译生成*.a,这样CC3200才能有软定时器。
你好,rtc实时时钟的配置怎么用?你用过么?&
在线时间112 小时
TA的帖子TA的资源
一粒金砂(高级), 积分 258, 距离下一级还需 242 积分
一粒金砂(高级), 积分 258, 距离下一级还需 242 积分
问题解决了,FreeRTOS是一个库,更改宏后,需要重新编译生成*.a,这样CC3200才能有软定时器。
你好,rtc实时时钟的配置怎么用?你用过么?
EEWORLD 官方微信
Powered by查看: 689|回复: 5
请问STM32F411上跑freeRTOS如何使挂起的任务立即响应
我现在遇到的情形是这样的:在定时器中断当中置位一个标识,希望立即唤醒多个任务当中的一个mainthread去执行读取传感器数据的任务;对于实时性要求很高。但是现在调试来看,定时器中断响应到mainthread执行所需操作之间的延时很大,约1~2秒。
现在工程当中有三个任务在跑,mainthread优先级是最高的,请教各位这种情况该如何解决,谢谢!
抢占是任务轮询。
可以采用中断级消息发送,也就是xxxxFromISR结尾的,比如信号量:
/*
*********************************************************************************************************
*& & & & 函 数 名: TIM_CallBack1
*& & & & 功能说明: 定时器中断的回调函数,此函数被bsp_StartHardTimer所调用。& & & & & & & && && & & & & & & & & & & && &
*& & & & 形& & 参: 无
*& & & & 返 回 值: 无
*********************************************************************************************************
*/
static void TIM_CallBack1(void)
{
& & & & BaseType_t xHigherPriorityTaskWoken = pdFALSE;
& & & &
& & & & /* 发送同步信号 */
& & & & xSemaphoreGiveFromISR(xSemaphore, &xHigherPriorityTaskWoken);
& & & & /* 如果xHigherPriorityTaskWoken = pdTRUE,那么退出中断后切到当前最高优先级任务执行 */
& & & & portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}复制代码
===========================================
另外延迟1~2秒才得到执行,应该是你的工程设计有问题。
可以采用中断级消息发送,也就是xxxxFromISR结尾的,比如信号量:
是的,找到延时的原因了,是在mainthread当中读传感器FIFO占用时间太久;本身任务切换只稍1~2毫秒.
STM32F411的浮点运算功能可用吗,感觉现在涉及到浮点运算比较耗时;之前的延时就是这个原因导致的,每次读取一个传感器数值需要经过浮点运算。
抢占是任务轮询。
对于freeRTOS抢占式任务切换应该是不建议使用的吧?
抢占是任务轮询。
对于freeRTOS抢占式任务切换应该是不建议使用的吧?
阿莫电子论坛, 原"中国电子开发网"21ic官方微信-->
后使用快捷导航没有帐号?
ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU
请完成以下验证码
查看: 288|回复: 3
&&已结帖(20)
主题帖子积分
中级技术员, 积分 144, 距离下一级还需 156 积分
中级技术员, 积分 144, 距离下一级还需 156 积分
主题帖子积分
专家等级:结帖率:88%
主题帖子积分
中级技术员, 积分 144, 距离下一级还需 156 积分
中级技术员, 积分 144, 距离下一级还需 156 积分
本帖最后由 xu 于
17:21 编辑
下面两种方案应该是没有区别的,但一个正常,一个不正常,希望哪位大神给一个思考的方向。
不正常方案:
s32 ad1Sum[9];//局部变量
memset((void*)(ad1Sum), 0 , sizeof(s32)*9);
s32 ad1Sum[9];//局部变量
for(i=0; i&9; ++i){
& && &&&ad1Sum=0;
芯片stm32f103zet6
开放环境mdk-arm 4.7
程序除此之外还有很多奇怪的地方,楼下说
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
中级技术员, 积分 144, 距离下一级还需 156 积分
中级技术员, 积分 144, 距离下一级还需 156 积分
主题帖子积分
专家等级:结帖率:88%
主题帖子积分
中级技术员, 积分 144, 距离下一级还需 156 积分
中级技术员, 积分 144, 距离下一级还需 156 积分
这楼说一下奇怪的地方。
一、在一些不相关的地方添加一些语句,或者定义一些不用的变量,有一定概率,程序正常运行。
二、这程序一部分是采集ad,数据然后处理,这个是处理ad数据的程序部分出现的一个bug,ad数据正常。
我是在硬件定时器超时中断里记录ad数据的,使用了函数memcpy,记录数据,如果memcpy改为自己实现,不正常的方案也变得正常。
这个bug只是把处理数据的浮动变大了,并不是把数据变得面目全非。
关于bug的一些猜想,
由于使用了freertos,只使用了任务调度,当然还有延时,可能这里出bug,可能性非常少
库函数memset和memcpy,这里出bug可能性更少。
数据处理的任务是唯一最高优先级的,处理数据过程不会被打断,由于打断而出错也不太可能。
数据由最初的ad值数据类型为u16,转化s32(即int),再转化为float,这里可能会把最初的数据
偏差放大。但是,我是9个通道用相似的系数,一样的处理方法,处理,得到只有第一个通道
存在数据浮动变大。
关于栈堆问题。
我把任务栈加大,结果也一样,而且我是加大到原来估算出来栈的四倍
我自己没有用到堆(即动态申请内存),freertos选择的内存分配方式是最简单那种,不可回收的块分配策略。
s32 ad1Sum[9]定义为全局变量,这也能使程序正常。把它定义为局部变量,即放栈上,并调用memset清零
可能会出现异常。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
高级技术员, 积分 722, 距离下一级还需 278 积分
高级技术员, 积分 722, 距离下一级还需 278 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
高级技术员, 积分 722, 距离下一级还需 278 积分
高级技术员, 积分 722, 距离下一级还需 278 积分
是不是用完没有释放内存呢
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
中级技术员, 积分 144, 距离下一级还需 156 积分
中级技术员, 积分 144, 距离下一级还需 156 积分
主题帖子积分
专家等级:结帖率:88%
主题帖子积分
中级技术员, 积分 144, 距离下一级还需 156 积分
中级技术员, 积分 144, 距离下一级还需 156 积分
是不是用完没有释放内存呢
没有动态申请内存
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
技术高手奖章
人才类勋章
时间类勋章34424人阅读
FreeRTOS基础篇(20)
1.为什么学习RTOS?&&&&&&&& 作为基于ARM7、Cortex-M3硬件开发的嵌入式工程师,我一直反对使用RTOS。不仅因为不恰当的使用RTOS会给项目带来额外的稳定性风险,更重要的是我认为绝大多数基于ARM7、Cortex-M3硬件的项目,还没复杂到使用RTOS的地步,使用状态机就足够了。&&&&&&&& 对于现代的微处理器,特别是资源相对丰富ARM7、Cortex-M3硬件来说,RTOS占用的硬件资源已经越来越可以忽略。所以在当今环境下,我们无需担心RTOS会拖累性能。相反,RTOS提供的事件驱动型设计方式,使得RTOS只是在处理实际任务时才会运行,这能够更合理的利用CPU。在实际项目中,如果程序等待一个超时事件,传统的无RTOS情况下,要么在原地一直等待而不能执行其它任务,要么使用复杂(相对RTOS提供的任务机制而言)的状态机机制。如果使用RTOS,则可以很方便的将当前任务阻塞在该事件下,然后自动去执行别的任务,这显然更方便,并且可以高效的利用CPU。处理这类事件,是我使用RTOS的最大动力,但考虑到系统的稳定性,我不得不再三权衡RTOS可能带来的一些弊端:大多数RTOS代码都具有一定规模,任何代码都可能带来BUG,何况是代码具有一定规模的RTOS,因此引入RTOS的同时也可能会引入该RTOS的BUG,这些RTOS本身的BUG一旦被触发,影响可能是是灾难性的。熟练的使用RTOS是一项技能,需要专业的知识储备和长期的经验积累。不将RTOS分析透彻,很容易为项目埋下错误。典型的,像中断优先级、任务堆栈分配、可重入等,都是更容易出错的地方。RTOS的优先级嵌套使得任务执行顺序、执行时序更难分析,甚至变成不可能。任务嵌套对所需的最大堆栈RAM大小估计也变得困难。这对于很多对安全有严格要求的场合是不可想象的。RTOS应该用于任务复杂的场合,以至于对任务调度的需求可以抵消RTOS所带来的稳定性影响,但大部分的应用并非复杂到需要RTOS。&&&&&&&& 以上原因是我拒绝在实际项目中使用RTOS的理由,但是否使用RTOS跟是否学习RTOS完全是两码事。我认为任何嵌入式软件设计人员都应该至少学习一种RTOS,不仅是需要掌握RTOS背后的操作系统原理、学习RTOS的编程方式,更是为将来做准备。&&&&&&&& 即便我认为现在的物联网有点言过其实,但我依然看好物联网的发展前景。随着物联网的发展,未来的嵌入式产品必然更为复杂、连接性更强以及需要更丰富的用户界面。当处理这些任务时,一个好的RTOS就变得不可缺少了。&&&&&&&& 书到用时方恨少,我希望自己永远不会有这种感觉。所以从现在起,我要开始深入一个RTOS,探索它背后的原理,掌握其编程方法,避免其缺陷和陷阱,并将它安全的用在将来的项目中。2.为什么选用FreeRTOS?&&&&&&&& 对比了许多RTOS,最终选择FreeRTOS,原因是多方面的:SafeRTOS便是基于FreeRTOS而来,前者是经过安全认证的RTOS,因此对于FreeRTOS的安全性也有了信心。&大量开发者使用,并保持高速增长趋势。、、2015连续5年的EEtimes杂志嵌入式系统市场报告显示,FreeRTOS在RTOS内核使用榜和RTOS内核计划使用榜上都名列前茅。更多的人使用可以促进发现BUG,增强稳定性。简单。内核只有3个.c文件,全部围绕着任务调度,没有任何其它干扰,便于理解学习。而且,我根本不需要其它繁多的功能,只要任务调度就够了。文档齐全。在FreeRTOS官方网站上,可以找到所有你需要的资料。免费、开放源码。完全可以免费用于商业产品,开放源码更便于学习操作系统原理、从全局掌握FreeRTOS运行机理、以及对操作系统进行深度裁剪以适应自己的硬件。&&&&&&&& 学习的资料来源主要是FreeRTOS的官方网站()和源代码。FreeRTOS的创始人RichardBarry编写了大量的移植代码和配套文档,我只不过是沿着Richard Barry铺好的路前进,所以,这没什么困难的。&&&&&&&& 最后,感谢RichardBarry的付出,感谢Richard Barry的无私开源精神!附录1:年EEtimes杂志嵌入式市场调查报告有关RTOS使用榜截图年RTOS使用榜年RTOS使用榜2013年和2014年RTOS使用榜2014年和2015年RTOS使用榜
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1204489次
积分:11841
积分:11841
排名:第1199名
原创:119篇
译文:11篇
评论:783条
阅读:8834
文章:11篇
阅读:81981
文章:20篇
阅读:215771
(1)(2)(1)(3)(4)(5)(2)(3)(6)(2)(3)(3)(4)(5)(5)(2)(3)(2)(1)(1)(1)(1)(3)(3)(1)(2)(2)(2)(1)(1)(1)(1)(4)(3)(2)(5)(5)(1)(6)(9)(1)(3)(2)(3)(1)(1)(1)(12)}

我要回帖

更多关于 freertos ucos 比较 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信