你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32上移植freertos,最终移植完成的效果比裸机好在哪里

[复制链接]
月霜寒 提问时间:2017-4-17 17:20 /
阅读主题, 点击返回1楼
收藏 1 评论24 发布时间:2017-4-17 17:20
24个回答
月霜寒 回答时间:2017-4-19 08:11:36
好,我看看再
zbber 回答时间:2017-4-19 08:17:16
不知道,我只知道,操作系统不是万能,有些程序还是裸机的好
modu8888 回答时间:2017-4-20 16:11:35
    “程序的可维护性、可扩展性大大增强”,这是别人的话。

     刚花20天把两个程序由裸奔修改为基于freertos上,体会深刻的有两点:
    1、根据任务划分更好的封装了软件模块,大大减少全局变量的使用。编写一个任务就和编写一个函数那么简单。
    2、根据任务优先级,既可以更好的响应实时任务,又能更好管理“慢”的任务。比如我的板子需要驱动热敏打印机,在裸奔的时候是这样:一下子打印20多行,会因为热敏打印机加热功耗太大,导致板子电压不稳乃至重启。改为操作系统后,打一行,休息几秒,再打一行,就能让整个板子电源稳定下来。

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

月霜寒 回答时间:2017-4-20 17:27:00
modu8888 发表于 2017-4-20 16:11
“程序的可维护性、可扩展性大大增强”,这是别人的话。

     刚花20天把两个程序由裸奔修改为基于fre ...

奥,我现在做的一个项目就是老程序有特别多的全局变量,请问怎样才能有效的减少全局变量的使用呢?
modu8888 回答时间:2017-4-20 21:27:41
月霜寒 发表于 2017-4-20 17:27
奥,我现在做的一个项目就是老程序有特别多的全局变量,请问怎样才能有效的减少全局变量的使用呢? ...

       首先,那种裸奔时的标志变量不再需要了。就是在主循环反复查询,并置0的。这样的变量不多,但看着心里不舒服。
       其次,在一个任务使用的变量且不大(不是大数组的),可以放在任务函数内作为局部变量。
       再次,仅在2个或3个任务内使用的变量(且不大),可分别设为任务函数中的局部变量,并通过队列(queue)传递。要同时传递几个变量,可以拼接为16位或32位的信息传递。——指针我还没用过。

       全局变量并不能被全部消灭,使用操作系统后,能将全局变量有效的控制起来。

       我用stm32cubemx配置后,参考https://wenku.baidu.com/view/849305faba1aa8114531d938.html (注意搜索并阅读系列7篇)例程就能改写老的项目软件,不用再深究操作系统而应用起来。
月霜寒 回答时间:2017-4-21 09:08:15
modu8888 发表于 2017-4-20 21:27
首先,那种裸奔时的标志变量不再需要了。就是在主循环反复查询,并置0的。这样的变量不多,但看着 ...

恩,我试着改改,我这老程序全局变量特别多,程序中全是if套if,看着头疼
jtc_88 回答时间:2017-4-21 10:06:41
技术的演进 都是 实际需求驱动的,用不用 RTOS 不是拍脑袋 用不用的,当前后台解决不了了,或多任务实时性要求,前后台代码不管是编写维护都相当困难时,RTOS不是万能的 只是解决了 一个方向的问题。RTOS的调度思想是需要学习理解透彻,对项目开发 思想性的 帮助很大。个人见解。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

月霜寒 回答时间:2017-4-21 11:55:45
jtc_88 发表于 2017-4-21 10:06
技术的演进 都是 实际需求驱动的,用不用 RTOS 不是拍脑袋 用不用的,当前后台解决不了了,或多任务实时性 ...

对对,很对,我现在就是开始学习这个系统
yueda 回答时间:2017-11-27 15:16:01
肯定是谁有谁都的好处,主要还是看实际应用吧,有些裸板就搞定的就不用系统,而有些可能裸板的话效率太低或不能瞒住需求了,就搞个系统
kylongmu 回答时间:2017-11-28 01:06:33
裸机:不论你走一小步,还是一大步都会扯着蛋疼,尤其是其可控性随着任务的复杂度呈指数增长,直到你崩溃。
OS:起步较难,准备工作量甚至超过了一些小任务功能需求,对于初学者感觉是一座大山,但是随着任务复杂性的增长,可以进行线程切割,变量隔离,使得新增加工作的难度总是与开始时一样。
时序要求:很多外设都是可以设定为定时器同步,而定时器时钟源可以来自于同一个时钟,更精确的时序逻辑建议用cpld实现,硬要算指令周期来写ARM软件的建议你还是别干这行了,因为你具有FPGA设计的天赋。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版