搜索
bottom↓
回复: 87

现在还有必要学RTOS吗?

  [复制链接]

出0入0汤圆

发表于 2020-11-17 15:25:25 | 显示全部楼层 |阅读模式
目前还没碰到需要用到RTOS的项目,一直都是裸机跑,以前研究过一段时间的linux,看的一头雾水,工作也用不到,后面就不了了之了。最近手头事情不多,就想研究下FreeRTOS,看了半天,就感觉FreeRTOS的任务调度用单片机的中断也能够实现类似的功能,其他方面好像也没啥特别的。然后就是特别复杂的项目估计都是直接上linux了,这样看来还不如直接学linux呢。是不是我的理解有问题?有没有大神给小弟解惑

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2020-11-17 15:28:19 | 显示全部楼层
趁年轻,精力足,可以多学点,技多不压身。

出0入0汤圆

 楼主| 发表于 2020-11-17 15:35:24 | 显示全部楼层
Dogdays 发表于 2020-11-17 15:28
趁年轻,精力足,可以多学点,技多不压身。

大佬说笑了,如果RTOS没啥必要学,我就不去深入的了解了,节省下来的时间干别的多好 况且我也老大不小了

出0入36汤圆

发表于 2020-11-17 15:36:10 来自手机 | 显示全部楼层
裸机  rtos  linux都玩玩,一般的应用没啥难度,先过了心理上的那道坎,做一个面向搜索引擎的程序员,没有啥是不能抄的,哈哈。

出0入104汤圆

发表于 2020-11-17 15:36:47 来自手机 | 显示全部楼层
多的是需要rtos的,很多任务会阻塞,也会需要挂起,其他任务要不受影响,rtos很实用

出100入143汤圆

发表于 2020-11-17 15:40:01 | 显示全部楼层
我现在只要RAM超过10K以上基本都用FreeRTOS内核,用RTOS好处是有一个良好的标准框架,线程模块化功能增减不要太简单

出0入0汤圆

发表于 2020-11-17 15:40:54 | 显示全部楼层
大部分的单片机应用确实不需要RTOS也能实现。

不过现在都物联网了,连个网络堵塞都要自己实现就不太现实。

FAT+LWIP+GUI 这些东西合在一起,没有个rtos,管理起来太麻烦了。

出0入0汤圆

 楼主| 发表于 2020-11-17 15:43:06 | 显示全部楼层
kevincoooool 发表于 2020-11-17 15:36
多的是需要rtos的,很多任务会阻塞,也会需要挂起,其他任务要不受影响,rtos很实用 ...

你说的这种情况确实存在,裸机用中断+状态标志(状态机?)也能够实现啊,最多就是多点if判断,几个判断语句也不会对系统的实时性造成太大的影响,实时性特别高的也不是特别复杂直接在中断里面执行也可以的

出0入0汤圆

发表于 2020-11-17 15:43:38 | 显示全部楼层
rtos就没必要学了,太低端,学了也赚不了几个钱,直接学linux

出0入0汤圆

 楼主| 发表于 2020-11-17 15:45:01 | 显示全部楼层
zzh90513 发表于 2020-11-17 15:40
我现在只要RAM超过10K以上基本都用FreeRTOS内核,用RTOS好处是有一个良好的标准框架,线程模块化功能增减不 ...

这个确实,自己写的确实很乱,没有固定的标准

出0入0汤圆

 楼主| 发表于 2020-11-17 15:47:12 | 显示全部楼层
xinjin 发表于 2020-11-17 15:43
rtos就没必要学了,太低端,学了也赚不了几个钱,直接学linux

我差不多也这样想的,RTOS感觉跟裸机没太大区别,又不能涨工资

出100入101汤圆

发表于 2020-11-17 15:48:15 来自手机 | 显示全部楼层
当然有必要

出0入8汤圆

发表于 2020-11-17 15:50:11 | 显示全部楼层
所谓的“用单片机也能实现”,实现着、实现着,有一天或许你会发现,这是一步步在往 OS 靠,那为什么不用现成的 OS 呢,实现快速开发?

出0入104汤圆

发表于 2020-11-17 15:53:54 来自手机 | 显示全部楼层
有啥不能实现的,rtos不就是一种实现方式,别人造好的轮子,提升的是开发速度,不是自己花时间一直去想怎么if怎么if

出0入0汤圆

 楼主| 发表于 2020-11-17 15:59:51 | 显示全部楼层
security 发表于 2020-11-17 15:50
所谓的“用单片机也能实现”,实现着、实现着,有一天或许你会发现,这是一步步在往 OS 靠,那为什么不用现 ...

可能是裸机习惯了吧,那么多API都没用过,还不如裸机来的顺手,我这可能就是所谓的摸着石头过河吧

出0入0汤圆

发表于 2020-11-17 16:05:01 | 显示全部楼层
weeb 发表于 2020-11-17 15:59
可能是裸机习惯了吧,那么多API都没用过,还不如裸机来的顺手,我这可能就是所谓的摸着石头过河吧{:sweat ...

以前我也是你这样的想法,今年用了Freertos之后,尤其是移植了几个底层驱动代码,对我编程思路有了很大的触动

当然,如果你能一步就把linux学会到应用,那当然更好

出0入0汤圆

 楼主| 发表于 2020-11-17 16:23:43 | 显示全部楼层
xjavr 发表于 2020-11-17 15:40
大部分的单片机应用确实不需要RTOS也能实现。

不过现在都物联网了,连个网络堵塞都要自己实现就不太现实。 ...

我现在做的项目就是物联网的网关,STM32F207的ETH+LAN8720做网口,也用到了LWIP,其他的4G,WIFI,LoRa用的都是串口或者SPI模组,裸机跑的,感觉也还行

出40入42汤圆

发表于 2020-11-17 16:27:46 | 显示全部楼层
一般问这种问题都是小年轻,做单片机应用还没有很多个或很多年

出0入0汤圆

 楼主| 发表于 2020-11-17 16:34:25 | 显示全部楼层
落叶知秋 发表于 2020-11-17 16:27
一般问这种问题都是小年轻,做单片机应用还没有很多个或很多年

没有,就是入行比较晚,让大佬见笑了。。。

出0入0汤圆

发表于 2020-11-17 16:41:52 | 显示全部楼层
用实时系统框架搭建容易,外围组件驱动移植方便,易分层,易维护

出130入30汤圆

发表于 2020-11-17 16:44:23 | 显示全部楼层
学了RTSO,你能明白Linux的fork为什么会返回两次。没学实时操作系统,你怎么也想不明白C语言是如何做到一个函数返回两次的。

出0入0汤圆

发表于 2020-11-17 16:45:33 | 显示全部楼层
学学吧,学通了一个你会发现用起来都一样

出0入8汤圆

发表于 2020-11-17 16:49:49 | 显示全部楼层
你要学 rtos的应用

出0入0汤圆

发表于 2020-11-17 16:52:26 来自手机 | 显示全部楼层
想学,但是这东西不进脑子。

出0入8汤圆

发表于 2020-11-17 17:03:27 | 显示全部楼层
学吧,反正时间多,

出0入36汤圆

发表于 2020-11-17 17:05:17 来自手机 | 显示全部楼层
weeb 发表于 2020-11-17 16:23
我现在做的项目就是物联网的网关,STM32F207的ETH+LAN8720做网口,也用到了LWIP,其他的4G,WIFI,LoRa用的 ...

这种应用,试试Linux+go语言,爽到飞起。

出0入0汤圆

发表于 2020-11-17 17:17:07 来自手机 | 显示全部楼层
cheng-8yang 发表于 2020-11-17 16:44
学了RTSO,你能明白Linux的fork为什么会返回两次。没学实时操作系统,你怎么也想不明白C语言是如何做到一个 ...

我学了rtos,也不明白如何做到返回两次的

出130入30汤圆

发表于 2020-11-17 17:51:37 | 显示全部楼层
wq_601840968 发表于 2020-11-17 17:17
我学了rtos,也不明白如何做到返回两次的

那应该是你还不明白RTOS任务切换的原理。

出0入0汤圆

发表于 2020-11-17 18:12:09 | 显示全部楼层
cheng-8yang 发表于 2020-11-17 17:51
那应该是你还不明白RTOS任务切换的原理。

RTOS跟linux的fork没什么关系吧,fork返回两次主要是因为linux把主进程的代码和数据复制过去运行,主进程一次,子进程一次。
没见哪个RTOS是这种机制呀。

出0入32汤圆

发表于 2020-11-17 18:18:34 | 显示全部楼层
简单应用没必要上OS,即使稍微复杂的,各种查询模式也能应付,但这个对编程功底有要求了,既要保证实时性,又要保证不能占用CPU时间太长。
但用上OS,每个任何都只管各自的事情,每个任务都是一个独立的while(1),不用考虑是否占用CPU过多而影响其他任务实时性,只要排好优先级即可,编程难度会降低很多,再临时增加任务,就是增加个while(1)的函数,不会对原先任务框架有太大影响。

出0入442汤圆

发表于 2020-11-17 20:54:32 来自手机 | 显示全部楼层
令狐冲 发表于 2020-11-17 18:18
简单应用没必要上OS,即使稍微复杂的,各种查询模式也能应付,但这个对编程功底有要求了,既要保证实时性, ...

单任务while 1我用了好几年了。。半年前为了解决功耗管理不得不切换到多线程。单线程不具备良好的设备状态管理。常用的rtos框架消耗ram+rom一般都太大了,我fpga小系统通常只有16k以内的rwx空间,最大系统也不过区区48k,跑rtos显然是不可能的。于是我自己设计了一套极度精简的多任务架构,定时器,信号量调试了小30版,现在用起来发现还是多任务方便,而且加了锁之后以前偶尔会出现的异常外设也ok了(iic用disable interrupt偶尔会出错,目前仍未定位到原因,调试基本没戏,因为实际设备工作随机性太强)。

出150入640汤圆

发表于 2020-11-17 21:37:54 | 显示全部楼层
RTOS是基础,建议至少掌握一门RTOS,不然很多嵌入式系统的基本概念都弄不明白!

出0入0汤圆

发表于 2020-11-17 22:35:41 来自手机 | 显示全部楼层
多数薪资高一些的工程师岗位都会要求熟悉RTOS吧!多学肯定有利于未来跳槽加薪。

出280入168汤圆

发表于 2020-11-17 23:10:59 来自手机 | 显示全部楼层
很多技术扩展框架是依赖于 RTOS 的,在村子里转悠骑个单车就行了,但从广州骑到深圳试试!

用会了 RTOS 就相当于多了一辆私家车,购物旅游都方便了,这和骑单车转悠不是一个概念!

你用 STM32F207ZG 做个袖珍的 web 网站试试,ST 有官方的 demo,和你现在掌握的知识不在一个等级上。

出0入8汤圆

发表于 2020-11-18 00:19:23 | 显示全部楼层
security 发表于 2020-11-17 15:50
所谓的“用单片机也能实现”,实现着、实现着,有一天或许你会发现,这是一步步在往 OS 靠,那为什么不用现 ...

哈哈,非常赞同,我就是这个感觉!

出0入0汤圆

发表于 2020-11-18 00:31:01 | 显示全部楼层
wye11083 发表于 2020-11-17 20:54
单任务while 1我用了好几年了。。半年前为了解决功耗管理不得不切换到多线程。单线程不具备良好的设备状 ...

试试RT-Thread,内存占用比freeRTOS少很多,线程越多越明显。

我开发的STM32F030C8T6+RTT,内存有剩很多。 用freeRTOS就不够内存。


后来找的原因了:
RT-Thread 采用的方式是提供独立的中断栈,即中断发生时,中断的前期处理程序会将用户的栈指针更换到系统事先留出的中断栈空间中,等中断退出时再恢复用户的栈指针。
这样中断就不会占用线程的栈空间,从而提高了内存空间的利用率,且随着线程的增加,这种减少内存占用的效果也越明显。
引用 https://www.rt-thread.org/docume ... nterrupt/interrupt/

出0入0汤圆

发表于 2020-11-18 00:36:53 | 显示全部楼层
weeb 发表于 2020-11-17 15:45
这个确实,自己写的确实很乱,没有固定的标准

这是伪正确,什么是标准?产品相对单一,深度优化当然可以,系列迭代,沿用过去的工作成果,但在嵌入式往往不是如此。多是需要老老实实codeing

出0入442汤圆

发表于 2020-11-18 04:38:13 来自手机 | 显示全部楼层
flash3g 发表于 2020-11-18 00:31
试试RT-Thread,内存占用比freeRTOS少很多,线程越多越明显。

我开发的STM32F030C8T6+RTT,内存有剩很多 ...

老兄,我的任务栈只占用几百字节ram+rom(非堆栈式),就是为了fpga专门设计的,任何rtos都pk不可能的。

出100入101汤圆

发表于 2020-11-18 06:55:01 来自手机 | 显示全部楼层
chunjiu 发表于 2020-11-17 23:10
很多技术扩展框架是依赖于 RTOS 的,在村子里转悠骑个单车就行了,但从广州骑到深圳试试!

用会了 RTOS 就 ...

做web的话,lwip可以不用os

出280入168汤圆

发表于 2020-11-18 07:00:01 来自手机 | 显示全部楼层
fengyunyu 发表于 2020-11-18 06:55
做web的话,lwip可以不用os

涉及到文件访问的时候就痛苦了。

出0入0汤圆

发表于 2020-11-18 08:38:57 | 显示全部楼层
flash3g 发表于 2020-11-18 00:31
试试RT-Thread,内存占用比freeRTOS少很多,线程越多越明显。

我开发的STM32F030C8T6+RTT,内存有剩很多 ...

freertos会犯这种错误,我觉得不太可能

出0入0汤圆

发表于 2020-11-18 08:41:11 | 显示全部楼层
chunjiu 发表于 2020-11-18 07:00
涉及到文件访问的时候就痛苦了。

其实是和协议栈设计模式相关的,当然也和eth外部触发特点有很大关系。
lwip可以用全回调方式使用,文件系统好像还没有见过设计成全回调方式

出0入16汤圆

发表于 2020-11-18 08:41:24 | 显示全部楼层
有些开源组件或者例程里面都用很多delay死循环啥的,用OS方便一点,状态机的话都大量修改

出130入30汤圆

发表于 2020-11-18 08:48:28 | 显示全部楼层
涉及到网络和文件系统的项目,直接上LINUX了,现在能上LINUX的芯片也有很多便宜的。

出10入46汤圆

发表于 2020-11-18 09:03:05 | 显示全部楼层
涉及到网络的底层的,复杂GUI,还是需要上 rtos。
其它的不需要

出280入168汤圆

发表于 2020-11-18 09:06:33 | 显示全部楼层
myxiaonia 发表于 2020-11-18 08:41
其实是和协议栈设计模式相关的,当然也和eth外部触发特点有很大关系。
lwip可以用全回调方式使用,文件系 ...

我的意思是有现成的文件管理系统可以使用,但成熟的文件系统依赖于 OS 工作,否则自己写这部分太庞大了,

我以前做 MP3 播放器,代码自己写了几个月,若像现在能用 RTOS 的话连调试一起完成也就最多十天。

出0入0汤圆

 楼主| 发表于 2020-11-18 09:14:10 | 显示全部楼层
多谢各位大佬的回复,看来还是要深入学习下rtos

出0入0汤圆

发表于 2020-11-18 09:19:27 | 显示全部楼层
当你问了这个问题的时候,你心中已经有了答案。

出5入14汤圆

发表于 2020-11-18 10:21:02 | 显示全部楼层
RTOS这东西感觉不学吧、好像有点用、、、学吧,又没有想象的有用,,,纠结!

出0入79汤圆

发表于 2020-11-18 10:39:56 来自手机 | 显示全部楼层
本帖最后由 motor_control 于 2020-11-18 18:07 编辑

一般的技术学的多其实用途不太大,反正你会的别人学一学也就会了。

一个技术要做到量产稳定,还能做到与时俱进,没有个8年以上的磨炼和学习是很难的,但如果坚持做到了,这一块就是你的领地了,别人很难撼动。当然,有很多走了捷径的虽然没有那么长的积累,但老天很公平的就是让它后继乏力,开始走下坡路,就算有钱找人也搞不定,因为技术好的人当然不是傻瓜,肯定也会去想自己做,干嘛给别人打工呢?

出0入0汤圆

发表于 2020-11-18 10:44:18 | 显示全部楼层
了解一下有好处,不亏。花不了太多精力。

出1310入193汤圆

发表于 2020-11-18 11:04:21 | 显示全部楼层
有时间 掌握一下必须的  有项目做上手更加快

出100入101汤圆

发表于 2020-11-18 11:08:19 | 显示全部楼层
本帖最后由 fengyunyu 于 2020-11-18 11:21 编辑
motor_control 发表于 2020-11-18 10:39
一般的技术学的多其实用途不太大,反正你会的别人学一学也就会了,在这种状态下,也就拼的是年轻和精力,年 ...


对于普通电工来说,啥是有难度的“技术”?有人说行业知识,但谁又能保证一直在一个行业里混,并且单就电工参与的软件、硬件设计内容来说,也不见得有啥特殊性

出0入0汤圆

发表于 2020-11-18 11:51:00 | 显示全部楼层
motor_control 发表于 2020-11-18 10:39
一般的技术学的多其实用途不太大,反正你会的别人学一学也就会了,在这种状态下,也就拼的是年轻和精力,年 ...

说的很好,大神有推荐吗?(foc之外的)

出0入0汤圆

发表于 2020-11-18 12:52:16 | 显示全部楼层
flash3g 发表于 2020-11-18 00:31
试试RT-Thread,内存占用比freeRTOS少很多,线程越多越明显。

我开发的STM32F030C8T6+RTT,内存有剩很多 ...

FreeRTOS的co-routine了解一下

出0入0汤圆

发表于 2020-11-18 13:10:57 | 显示全部楼层
WinExt 发表于 2020-11-18 12:52
FreeRTOS的co-routine了解一下

协程吗?都不是一个概念的东西吧。。。

出0入0汤圆

发表于 2020-11-18 13:11:43 | 显示全部楼层
myxiaonia 发表于 2020-11-18 08:38
freertos会犯这种错误,我觉得不太可能

你也可以测试一下

出0入79汤圆

发表于 2020-11-18 15:30:42 | 显示全部楼层
本帖最后由 motor_control 于 2020-11-18 18:04 编辑
fengyunyu 发表于 2020-11-18 11:08
对于普通电工来说,啥是有难度的“技术”?有人说行业知识,但谁又能保证一直在一个行业里混,并且单就电 ...


        一个工程师一辈子能有多少个赚钱的不同种类的量产产品?我认为不会超过3个。
         
        

      

出100入101汤圆

发表于 2020-11-18 16:01:52 | 显示全部楼层
本帖最后由 fengyunyu 于 2020-11-18 16:11 编辑
motor_control 发表于 2020-11-18 15:30
一个工程师一辈子能有多少个赚钱的不同种类的量产产品?我认为不会超过3个。

        我见过的一些牛逼 ...


大神把电机控制搬出来,是你说的情况。但很多电工工作,点个灯,连个网,照着例程很容易搞定。IT互联网行业的码农,相比电工来说收入高,但有核心技术,有积累么,一般也没有。

出0入20汤圆

发表于 2020-11-18 17:18:44 | 显示全部楼层
motor_control 发表于 2020-11-18 15:30
一个工程师一辈子能有多少个赚钱的不同种类的量产产品?我认为不会超过3个。

        我见过的一些牛逼 ...


其实没那么复杂,就两个维度而已,一个叫技术一个叫行业.

技术是有通用性的,你在A公司做甲产品用rtos的理论知识到了B公司做乙大概率是可以继续用的,但是技术本身随着不断深入边际收益是快速下降的,做甲产品要用的技术做乙也用,但是丙产品可能就不用了,这个时候学习成本就搭进去了,万一运气不好在偏门技术上花了太多的成本,这可就太亏了.

行业知识是另外一码事,实际上入门级的行业知识很多时候跟纯技术半毛钱关系没有,洋气点的讲法叫 knowhow.简单来说就是甲\乙\丙三种产品的功能要怎么做,这个其实很多时候不关工程师的事情,是老板考虑的问题.具体到做技术上,所谓X为那种35岁淘汰掉的工程师就是典型的和业务绑定太深,在极窄的领域里走到尽头,一旦这个行业不咋滴了,或者技术上出现了重大的变更马上就淘汰掉了,而且没有后路.

综合下来,技术需要个人投入成本,而且是有风险的,但是技术具有通用性学会了会有更多机会,机会足够多就有概率可以挣钱.行业知识需要时间去累积,而且很多时候和工程师的关系不大,是公司和老板绑定的更深入.
所以你是老板,或者说有老板的心态,那么多关注行业知识是没问题的,而且确实行业知识带的收益是立竿见影的.如果只是抱着打工人的心态,那么还是老老实实钻研技术吧,而且要跟着技术的迭代不断深入学习.

我老头当年跟我说过一句话叫荒年饿不死手艺人,这年头也别叫什么工程师了,就是手艺人而已,和以前的木匠泥瓦匠是一样的,手艺好肯定有饭吃,至于是盖公厕还是盖土地庙那是工头考虑的问题.

而且技术和行业这二者深入到一定阶段就相互融合了,但是大部分人是走不到这里的.

出0入79汤圆

发表于 2020-11-18 18:12:27 来自手机 | 显示全部楼层
shooly 发表于 2020-11-18 11:51
说的很好,大神有推荐吗?(foc之外的)

农不如工,工不如商,绣花的不如卖笑的,现在的形势,只谈赚钱,谈啥技术。皮糙肉厚且向死而生的某为都卖了,还用谈吗?我觉得可能他们说这种硬话的时候早就开始准备卖了,世间无技术,唯有套路多。

出0入12汤圆

发表于 2020-11-18 18:16:46 | 显示全部楼层
同时处理三四个任务就知道 RTOS 的好处

出100入101汤圆

发表于 2020-11-18 19:41:25 来自手机 | 显示全部楼层
motor_control 发表于 2020-11-18 18:12
农不如工,工不如商,绣花的不如卖笑的,现在的形势,只谈赚钱,谈啥技术。皮糙肉厚且向死而生的某为都卖 ...

大神,你这前后发言变化太快了

出0入79汤圆

发表于 2020-11-18 21:30:59 来自手机 | 显示全部楼层
fengyunyu 发表于 2020-11-18 19:41
大神,你这前后发言变化太快了

技术玩玩就好,有机会就变现,尽量搞点有难度的,反正说来说去就是要赚钱,学潮汕佬宁愿摆摊都不打工作为人生追求就好了。

学技术最容易,用技术会很难,学会赚钱比研究技术高雅多了,我的孩子绝不允许当工程师或程序员,特别是996那种,签什么奋斗者协议更加不要,宁可戴个兔子帽送外卖都可以。那些说什么技术重要,要有匠人心态的老板,怎么就没见他的孩子去做技术,写代码呢?电工们要尝试用不同的眼光看世界,才会发现世界并不是我们想象的那样,有形的枷锁容易去除,而心理上的枷锁可能都自己意识不到,多说无益,自己体会哈。

最后一句话,是我真正要表达的,赚钱才是硬道理!

出100入101汤圆

发表于 2020-11-18 22:52:54 来自手机 | 显示全部楼层
motor_control 发表于 2020-11-18 21:30
技术玩玩就好,有机会就变现,尽量搞点有难度的,反正说来说去就是要赚钱,学潮汕佬宁愿摆摊都不打工作为 ...

入错行,当了电工,想转不容易,只有一条道走到黑了。赚点辛苦钱。

出0入0汤圆

发表于 2020-11-19 08:30:42 | 显示全部楼层
当然有必要   

出0入0汤圆

发表于 2020-11-19 09:03:11 | 显示全部楼层
本帖最后由 jjj 于 2020-11-19 09:04 编辑

RTOS能够实现的,裸机也都能够实现。
RTOS强调实时性,但大多数应用不需要ms甚至ns级的实时性, 单片机非阻塞超循环编程思想能满足99%应用场合。
RTOS一般都有自己的生态,提供很多好用的工具,和常用软件包,比如RTT
从编程思想上看,RTOS与linux是一样,多线程的编程思路。  裸机是另一种思路。
学习rtos对学习linux有帮助,但我认为现阶段不如直接学习linux.

出0入4汤圆

发表于 2020-11-19 09:35:43 | 显示全部楼层
weeb 发表于 2020-11-17 15:43
你说的这种情况确实存在,裸机用中断+状态标志(状态机?)也能够实现啊,最多就是多点if判断,几个判断 ...

NONONO,老哥,当整个工程复杂起来之后,就不是几个IF能搞定的了,用了RTOS之后,无论是功能实现,还是后续功能扩展,都是非常简单的事情。最主要的是,能让整个系统不同模块和功能实现解耦,大大提高代码的复用性。

出0入0汤圆

发表于 2020-12-26 06:33:49 来自手机 | 显示全部楼层
作为爱好,学了rtos,不过没有用上,好多移植的细节已经忘记了,也不想再看了,觉得可以直接使用即可。裸机也可以实现类似rtos的那种使用多个while1 的架构,但是有些阻塞的代码要用状态机来写,不像rtos直接调用系统延时函数即可。如果是使用32位的mcu,还是用rtos更合适,而且网上不少代码是使用了rtos的,所以也要学了才好交流。

出0入8汤圆

发表于 2021-2-23 13:37:45 | 显示全部楼层
motor_control 发表于 2020-11-18 21:30
技术玩玩就好,有机会就变现,尽量搞点有难度的,反正说来说去就是要赚钱,学潮汕佬宁愿摆摊都不打工作为 ...

社会分工摆在那里,总要有人当蓝领啊

出190入0汤圆

发表于 2021-2-23 13:45:00 | 显示全部楼层
弄个项目用一次rtos,不管项目大小,我认为你以后就会问自己:早干嘛不学啊?

出40入0汤圆

发表于 2021-2-23 16:23:50 | 显示全部楼层
有这心思还是学,要么你不知道用了rtos编程有多爽

出0入0汤圆

发表于 2021-2-23 21:07:40 | 显示全部楼层
不学,坚决不会,不如了解下各行业趋势,找顺势的机会。一入技术深如海,没钱搞毛空丢丢 --- 这理论适合老大不小的人。
至于年轻人,还可以有机会去折腾下。

出140入158汤圆

发表于 2021-2-23 22:16:05 | 显示全部楼层
    裸跑,RTOS,Linux都用过不短的一段时间,现在大部分还是裸跑,主要两个原因:一是多年积累下来的代码以及框架已证明极度稳定,也具备不错的移植性和扩展性,二则裸跑有种完全掌控全局的安全感和爽快感,我是对程序每一个细节都有要求的人,好像跑H7,我会对总线矩阵、时钟树、每个外设的寄存器都要研究得透透彻彻才放心,并且对每个可能出现失效的异常(例如外部晶振失效,PLL失锁,初始化失败等等)都有相应的处理机制,所以程序可以做到极致稳定,这个对于不间断工作的工控项目非常重要,裸跑能带给我这种安全感。 而RTOS,确实对于快速开发有很大的便利性,可以任性的在每个线程进行阻塞等待,而且有不少现成的轮子可以使用,但基于自身的严重强迫症和程序洁癖,比较抗拒使用别人造好的轮子,因为很多时候,很多开源代码里面的BUG惨不忍睹,坑很多,所以就算要借用,也要每个细节重新去审视和加固。而Linux,特别是对于涉及网络的应用,是最优选择,可供选择的轮子实在太多太多,而且轮子的质量要相对比RTOS的质量要高。但跑Linux启动慢,不能出现异常时瞬间复位回复工作状态,异常处理机制更加不容易完全掌控,缺乏裸跑的100%安全感。
     另外,经常看到很多兄弟要立志学Linux什么的,我觉得也太夸张了吧。Linux说句难听点的,就是一个系统而已,您就算按照MCU裸跑的思路也能跑的很欢快,多出一些准备知识就是要大概熟识一下文件系统架构,简单的shell脚本,编译环境,做做Makefile,而需要做驱动的时候,按照驱动的框架代入一下,基本就OK了,多线程比RTOS还要爽,不止多线程,还能多进程,而且也不用担心栈溢出等造成比较隐蔽的bug,一个进程崩了,基本上也不影响其它进程,要可靠点就搞个进程专门去监控其它进程就好了。软肋就是中断处理实时性开销比较大一些而已,可以通过自己定制修改内核来解决,或者上类似MP157那样的异构多核。

出0入8汤圆

发表于 2021-2-24 10:23:29 | 显示全部楼层
摸摸自己的胸,问问自己,学这个能比原来赚很多钱吗

出0入0汤圆

发表于 2021-2-24 11:29:55 | 显示全部楼层
简单的用裸跑就很顺,功能复杂点的,比如带TFT,UI,网络等用RTOS,会有很多现成的参考程序,大大提高效率

出0入0汤圆

发表于 2021-3-25 11:05:41 | 显示全部楼层
除了第一家公司给松下做剃须刀电熨斗没用rtos,之后这么多年的工作一直在用各种rtos

出0入79汤圆

发表于 2021-3-25 11:16:17 | 显示全部楼层
你用来RTOS 后,你就不会再裸跑了。我现在点个流水的都用RTOS。

出0入0汤圆

发表于 2021-3-25 11:30:05 | 显示全部楼层
如果你不用RTOS时 在需要等待时用的是while或者Delay 不会非阻塞式编程及处理多任务的话建议趁早学RTOS 否则学不学就可以考虑考虑了 因为各有优缺点 学了如果弄不清楚RTOS是怎样给你完成任务调度的也建议不要使用 否则照样一堆BUG

出0入0汤圆

发表于 2021-3-25 21:31:46 | 显示全部楼层
现在一个项目用freertos,比较爽,先调试好各个模块,最后整合到一起就行了,很方便,能考虑别人都为你考虑好了,自己放心用就是

出0入0汤圆

发表于 2021-3-27 19:38:26 | 显示全部楼层
本帖最后由 ordinary 于 2021-3-27 19:39 编辑

用RTOS是降低编程难度的,本质上是资源(硬件资源)换效率(实现效率)。
没有什么学不学的,需要就学,不需要学它干嘛?

出0入4汤圆

发表于 2021-10-12 12:36:38 | 显示全部楼层
直接学linux 下编程

出30入16汤圆

发表于 2021-10-15 08:52:42 来自手机 | 显示全部楼层
本帖最后由 洞洞幺 于 2021-10-15 10:09 编辑
fengyunyu 发表于 2020-11-18 16:01
大神把电机控制搬出来,是你说的情况。但很多电工工作,点个灯,连个网,照着例程很容易搞定。IT互联网行 ...


没有核心技术和门槛的技术,看起来很时髦,但很容易被小鲜肉赶上,活的累也容易被淘汰。

出30入16汤圆

发表于 2021-10-15 10:57:56 来自手机 | 显示全部楼层
amigenius 发表于 2021-2-23 22:16
裸跑,RTOS,Linux都用过不短的一段时间,现在大部分还是裸跑,主要两个原因:一是多年积累下来的代码 ...

向你学习!

出0入0汤圆

发表于 2021-10-15 11:12:29 | 显示全部楼层
weeb 发表于 2020-11-17 15:35
大佬说笑了,如果RTOS没啥必要学,我就不去深入的了解了,节省下来的时间干别的多好 况且我也老大 ...

学好RTOS,否则生命被Bug掌控

出0入0汤圆

发表于 2021-10-15 11:18:35 | 显示全部楼层
MCU项目上,需要用上抢占式的,都极少,何况是Linux。
嵌入式产品对硬件资源的了解尤为重要,RTOS才是解决问题的核心,而并而一大堆软件(如Linux)
大部分的,协同式,就够用了。

出0入4汤圆

发表于 2021-10-15 11:44:58 | 显示全部楼层
RTOS 好用,尤其是多任务

出0入0汤圆

发表于 2021-10-15 15:49:00 | 显示全部楼层
amigenius 发表于 2021-2-23 22:16
裸跑,RTOS,Linux都用过不短的一段时间,现在大部分还是裸跑,主要两个原因:一是多年积累下来的代码 ...

我发现咱俩的性格差不多,我的主要方向是电机控制, 主程序目前还没有引入rtos,甚至st的hal库也被我pass掉了。
hal除了bug外,臃肿到了可怕的程度。

单机运行中常用的模块,modbus,eeprom,自定义协议的can等,已经经过了时间验证,很稳定了。

不过,我还是打算在最新的hmi中引入freertos,一个是因为hmi的稳定性没那么苛刻,允许我试错,二是修改一下框架,便于今后
的程序开发。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 22:54

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表