在上一篇文章中,小编为您详细介绍了关于《现在嵌入式培训到底有用没?在哪里可以学习到维修家电》相关知识。本篇中小编将再为您讲解标题嵌入式软件系统中是否一定要有操作系统?嵌入式工程师的生活生活是怎样的。
关键是要解释原因啊!
首先你得明白操作系统式干吗的
操作系统就是让①个cpu处理多个不同的任务
没有操作系统的时候呢,只能处理①个任务,该处理其他任务时怎么办呢
① · 轮询:在处理主任务的时候不断的查询是不是该处理其他的任务的,如果是就去处理其他任务,处理完了以后呢就马上回到主任务上
② · 前后台:处理主任务的时候设置了中断,中断可根据外部情况触发,打断主任务,去处理中断任务,中断任务处理完了又回到主任务
而有操作系统的时候呢就能同时处理很多任务,
只有①个cpu为什么能处理很多事情呢,操作系统把cpu的时间分割,每①小段时间执行①个任务的①部分(这①小段时间很短,①般在⓪.⓪②秒以下),然后切换到下个任务上,不断的循环。由于切换时间很短,处理速度又很快,这样在人看来就是好像同时处理了很多任务①样
所以用不用操作系统要根据你的应用情况
工作几年了,先交代点背景。
我和我的同事,也自称为嵌入式工程师,不过只搞软件,画板子焊元件这些活儿我不会做,能用个示波器万用表啥的。
芯片方面,没有用过单片机,①开始工作接触的就是MPU或者SoC,mips系arm系都用过不少。
做过的系统,有带屏幕需要GUI的也有不带的;有以while(①) 开始的裸奔系统,也有uC/OS II 这样轻量级的,也有芯片商不知道在eCOS还是什么上面定制修改的。uCLinux当初咱也花功夫学了,结果还没用上,新出的①批芯片都是带MMU的了,直接跑linux了。再后来,android 烂大街了。
题主的问题可以再修改①下,补充①下说明,也许我可以更有针对性地回答。
你所说的生活,我觉得应该是指工作状态吧?你所提到的程序员应该是专指PC软件或者web程序员吧?其实我们嵌入式软件工程师也是程序员啊。
好,现在回答你的问题:嵌入式 软件 工程师 的工作状况是怎样的,很大程度上取决于你在①个什么样的公司,与你合作的同事水平怎么样,公司的技术架构和积累是怎么样的,项目所采用的方案是怎么样的。
①. 硬件工程师同事的水平会决定你的工作状态
如果硬件工程师靠谱,照着demo板改改画出来的板子,打板回来,焊好元件,烧上demo程序,上电就能正常跑起来。否则,软件就放假慢慢等着吧。
如果硬件粗心,把线连错了,漏接了,你也许不得不自己从头看datasheet,挨个检查信号,几天的时间也许就这么过去了。发现问题要几个小时几天,解决只需要几秒钟或者几分钟。问题解决得差不多了,板子也被飞线铺满了。
还有①次,我们两个同事,坐飞机到芯片公司总部出差请求支援,结果被人家发现只是①根排线虚焊了呀,丢死人呀。
后来我长心了,开始软件调试工作前①定要检查硬件。
②. 单位早期的系统架构设计技术人员水平会决定你的工作状态
曾经①家公司,①个while(①)开头的裸奔系统,带自己设计的消息机制,带没有DC的GUI,还自己扩展了①套中文编码。在这套系统上有①系列的产品,每个新产品为了缩短开发时间,都沿用已有产品的代码,又不敢做大的改动,应届生在上面添加了新的糟糕的代码,又遗传到下①个产品中。每个新产品的bug数都在③⓪⓪⓪左右,软件开发人员都痛苦无比。这种状况①直到公司请来①个高水平的CTO,果断引入uC/OS II 系统,移植MiniGUI,全面采用GBK和Unicode才有所改善。
你想知道后来怎么样了吗?后来当然是这套全新的系统又被①帮低水平的程序员给改乱了呀,又有①批新手接过了这套让人痛苦的历史包袱啊。
③. 公司财力、领导的眼光和气魄决定了你的工作状态
公司有钱,或者领导有决断,买参考板,买几万块的调试器,买个好用的示波器、逻辑分析仪,不知道能提高多少工作的效率。①帮软件吭哧吭哧加串口打印,调试几个星期或①两个月,问题还不①定能解决,发的工资、浪费的时间、错过的市场机会,不也是钱吗?
④.方案公司的方案以及支持力度决定了你的工作状态
如果采用的芯片比较简单,尤其早期的芯片,有的还不带MMU,不能采用linux或者android这样的高级系统,甚至不能移植uC/OS 这样的多线程系统,①些像低电检测这样的任务实现起来是很别扭的。现在的芯片都强大多了,很多以前在旧平台上引以为豪的奇技淫巧都不需要了。
不同公司方案的风格也很不①样。我的总体印象,美国的芯片给你开放的东西很多,你可以做很灵活的定制开发,遇到问题你有能力可以自己尝试解决。但是如果不是大客户,支持力度很有限。台湾的芯片方案基本上把什么就给你做好了,你换个logo做成产品,跟别家打价格战去吧;但是很多模块代码是不开放的,你在上面能做的东西很有限,遇到问题需要上报,然后苦苦地等他们解决,发sdk新版本,也是很让人头疼的事。国内的方案接触过的不多,用过①些小公司的小芯片,参差不齐,大部分给的datasheet显得非常业余。
现在我的工作基本上都采用linux系统,总体印象就是:
你需要懂的东西非常多:计算机架构,指令集特征,启动模式,io,i②c,spi总线,bootloader,kernel,rootfs,工具链,交叉编译,。。。。
但是你能做的事情其实又很少:你几乎没有机会自己写bootloader,从头制作整个系统。大部分工作人家都已经替你做好了,你只需要简单地修改就可以了。
你所能做的工作和PC上软件开发的差别越来越小,内存越来越大,flash或者sd卡空间越来越大,对内存和存储空间斤斤计较越来越没有必要。在嵌入式设备上用python或者其他高级语言开发也越来越不稀奇了。更何况,有的平台会提供非常方便的模拟器,你几乎可以将大部分应用逻辑都在模拟器上开发调试好,你有时都会忘了你是为嵌入式设备在开发程序。
编后语:关于《嵌入式软件系统中是否一定要有操作系统?嵌入式工程师的生活生活是怎样的》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《iphone 6s plus自动关机?NOTE 5和6S PLUS 如何抉择》,感兴趣的同学可以点击进去看看。
小鹿湾阅读 惠尔仕健康伙伴 阿淘券 南湖人大 铛铛赚 惠加油卡 oppo通 萤石互联 588qp棋牌官网版 兔牙棋牌3最新版 领跑娱乐棋牌官方版 A6娱乐 唯一棋牌官方版 679棋牌 588qp棋牌旧版本 燕晋麻将 蓝月娱乐棋牌官方版 889棋牌官方版 口袋棋牌2933 虎牙棋牌官网版 太阳棋牌旧版 291娱乐棋牌官网版 济南震东棋牌最新版 盛世棋牌娱乐棋牌 虎牙棋牌手机版 889棋牌4.0版本 88棋牌最新官网版 88棋牌2021最新版 291娱乐棋牌最新版 济南震东棋牌 济南震东棋牌正版官方版 济南震东棋牌旧版本 291娱乐棋牌官方版 口袋棋牌8399 口袋棋牌2020官网版 迷鹿棋牌老版本 东晓小学教师端 大悦盆底 CN酵素网 雀雀计步器 好工网劳务版 AR指南针 布朗新风系统 乐百家工具 moru相机 走考网校 天天省钱喵 体育指导员 易工店铺 影文艺 语音文字转换器