进修嵌入式须要那些内容?
计算机根底
这局部直接决定了我们以后是否能走的更远,像操作系统的根本概念,计算机组成原理的内容都是须要我们去了解的。假如自旋锁,信号量,阻塞与非阻塞等。
进修任何技术一定要学到这门技术的边界,对于嵌入式来讲,它的边界就是汇编。汇编语言不要求会写,但是一定要能看懂(其实就是Arm指令集)。在很多情况下,看反汇编文件对于bug的调试会更方便。
嵌入式软件框架
在桌面系统和网络系统上,框架是普遍应用的,假如著名的ACE, MFC, Ruby On Rails等。而在嵌入式系统中,框架则是很少运用的。究其理由,大略是认为嵌入式系统简略,没有反复性,过于注重功能的达到和性能的优化。在前言中我们已经提到,此时的嵌入式开展趋势是向着复杂化,大型化,系列化开展的。所以,在嵌入式下设计软件框架也是很有必要,也很有价值的。
文章相对比较长,字数比较多,大家可以先打开头像关注我,之后慢慢看,///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像左下角黑色字体加我也能领取哦。最近比较闲,带做毕设,带学生参加省级或以上比赛///
嵌入式软件架构面临的问题
前面我们讲到,嵌入式系统软件架构所面临的一些问题,其中很重要的一点是,对硬件的依赖和硬件有关软件的复杂性。还包含嵌入式软件在稳定性和内存占用等方面的苛刻要求。假如团队中的每个人都是这些方面高手的话,兴许有可能开发出高质量的软件,但事实是一个团队中可能独有一两个资深人员,其他大局部都是初级工程师。人人都去和硬件打交道,都负责稳定性,性能等等指标的话,是很难保证最终产品质量的。假如组件团队时都是精通硬件等底层技术的人才,又很难设计出在可用性,扩展性等方面优秀的软件。术业有专攻,架构师的选择决定着团队的组成方式。
同时,嵌入式软件开发虽然复杂,但是也存在大量的重用的可能性。怎么样重用,又怎么样应对将来的变更?
所以,怎么样将复杂性对大部分人屏蔽,怎么样将关注点别离,怎么样保证系统的重要关键非功能指标,是嵌入式软件架构设计师应该攻克的问题。一种可能的攻克方案就是软件框架。
什么是框架
框架是在一个给定的问题领域内,为了重用和应对前景需求变化而设计的软件半成品。框架强调对特定领域的抽象,包括大量的专业领域知识,以缩短软件的开发周期,提高软件质量为目标。运用框架的二次开发者通过重写子类或组装对象的方式来达到特殊的功能。
软件复用的层次
复用是在我们经常谈到的话题,“不要反复创造轮子”也是耳熟能详的戒条。不过对于复用的了解现实中上是有很多个层次的。
最根底的复用是复制粘贴。某个功能以前曾经达到过,再次须要的时候就复制过来,修改一下就能够运用。经历丰盛的程序员一般都会有自己的程序库,这样他们达到的时候就会比新的程序员快。复制粘贴的缺少点是代码没有经过抽象,往往并不完全的适用,所以须要进行修改,经过屡次复用后,代码将会变得混乱,难以了解。很多公司的产品都有这个问题,一个产品的代码从另一个产品复制而来,修改一下就用,有时候甚至类名变量名都不改。依照“独有为复用设计的代码才能真正复用”的规范,这称不上是复用,或者说是低水平的复用。
更高级的复用是则是库。这种功能须要对经常运用的功能进行抽象,提取出其中恒定不变的局部,以库的形式提供给二次开发程序员运用。由于设计库的时候不知道二次开发者会怎么样运用,所以对设计者有着很高的要求。这是运用最广泛的一种复用,假如规范C库,STL库。此时非常时兴的Python语言的重要优势之一就是其库支持非常广泛,相反C++一直缺少少一个壮大统一的库支持,成为短板。在公司内部的开发中总结常用功能并开发成库是很有价值的,缺少点是对库的升级会影响到很多的产品,必需慎之又慎。
对单片机感兴趣的朋友可以找我,我录制了一些关于单片机的入门教程,有需要的童鞋找我拿就像,免费的,私信我“林老师”就可以拿~点击打开我的头像就能领取。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.