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

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

[复制链接]
月霜寒 提问时间:2017-4-17 17:20 /
在STM32上移植freertos操作系统,最终效果到底比裸机好在哪里,各位有没有做过对比的?
收藏 1 评论24 发布时间:2017-4-17 17:20

举报

24个回答
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-17 19:31:27
我没有对比过
因为freeRTOS是有任务调度能力的,编程的时候可以多个任务同时开启,需要考虑的是任务之间的协调关系
而如果是裸机的话,需要对工程的运行时序先有个很清晰的框架,最好可以一气呵成
我是倾向于选择freeRTOS的,因为划分好功能模块后会有更强的可读性
longforljy 回答时间:2019-6-13 13:27:47
我觉得你们都没明白,当一个程序越来越复杂之后,操作系统的出现是必然的
但,操作系统VS裸机,并不是一个谁对谁错的问题
裸机程序,新手和老手写的,就天差地别
操作体统,小型的和大型的,也天差地别(小型的比如PT Thread,大型的比如Linux、Android)

你用一个大型的操作系统,只是仅仅实现一个跑马灯?怕不是有病吧
你裸机程序去实现一个王者荣耀?怕不是也有病吧

所以,究竟是裸机,还是操作系统,要看程序的体量,功能的复杂度

其实,可以类比人类社会的发展,从 个体-->小型部落-->城邦-->国家-->全球化
当体量大之后,体制的出现是一定的。没有规则和标准,大家按自己的思路瞎搞,就没效率可言,永远是一个单打独斗的原始社会

所以,裸机程序,往往是出现在一些小公司、小产品上,基本都是一个程序员就包揽了
而一些大型的产品,都是有ISO标准,协议的,不上操作系统?上千人如何协作开发?还有上下游的公司如何协作开发?

要想参与大型的项目,就去学习操作系统吧,否则永远只能小打小闹的搞些小产品,上不了台面
当然,操作系统很多,先从简单的入手,基本理论入手,打好基础
然后调查好你想从事的行业,是用什么操作系统的,再针对性地学习行业要求的操作系统

当然,这里我也不否定即使只是 一个裸机程序员,也能拿高薪
但请相信我,他能拿高薪,不是因为他是一个裸机程序员,而是因为他有其他方面的技术积累
黑皮男 回答时间:2017-4-17 19:53:54
能够支持多任务,任务抢占,相对来说,CPU利用率有所提高,个人见解
斜阳 回答时间:2017-4-17 21:08:59
时间利用率高
asmhai 回答时间:2017-4-17 22:13:50
前后都是宝贵的时间资源!晚上好。
asmhai 回答时间:2017-4-17 22:16:02
团队合作怎样充分利用这宝贵的资源?都是生手团队...摸着前行
ddllxxrr 回答时间:2017-4-18 07:54:42
不知道,我只知道,操作系统不是万能,有些程序还是裸机的好
ddllxxrr 回答时间:2017-4-18 07:55:48
而且操作系统占内存,不好好管理,肯定不行的。所以我对操作系统保持观望太度。能不用就不用
Stm32McuLover 回答时间:2017-4-18 13:16:17
能用裸机的就不要扯RTOS
arenas 回答时间:2017-4-18 16:56:23
多任务,信号量,主要还是看需求
月霜寒 回答时间: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 ...

奥,我现在做的一个项目就是老程序有特别多的全局变量,请问怎样才能有效的减少全局变量的使用呢?
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版