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

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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版