进修嵌入式须要那些内容?
数据构造与算法
这局部是程序员的必修课。在各大厂的秋招春招中,笔试面试都是必考的。常见的数据构造如链表,二叉树,堆,队列,常见排序算法及其改进(快排,归并,冒泡,插入)等都是要掌握的。假如是为了找工作,这局部内容有很多是要能到达手写的目标。(有关内容见我整理的嵌入式软件工程师笔试面试指南 )
虽然嵌入式对于数据构造与算法的要求不像传统互联 那么高,而且,这些数据构造在以后的工作中不一定能够用到,但是一些根本的我们还是要知道的。
像Linux内核中就用到了很多的链表,二叉树等。掌握这局部内容对于我们以后跳槽,深层钻研操作系统都有很大的帮助。
文章相对比较长,字数比较多,大家可以先打开头像关注我,之后慢慢看,///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像左下角黑色字体加我也能领取哦。最近比较闲,带做毕设,带学生参加省级或以上比赛///
接着前几期关于嵌入式常见的误解
损耗均衡
损耗均衡的根本思维是平均地运用存储器上的各个区块。须要维护一张存储器区块运用情况的表,这个表包含区块的偏移位置,当前是否可用,以及已经擦写地次数。当有新的擦写请求的时候,依据以下原则选择区块:
1.尽量不间断
2.擦写次数最少
即便是更新已经存在的数据,也会运用以上原则分配新的区块。同样,这张表的寄存位置也不能是固定不变的,否则这张表所占据的区块就会最先损坏。当要更新这张表的时候,同样要运用以上算法分配区块。
假如存储器上有大量的静态数据,那么上述算法就只能针对剩下的空间生效,这种情况下还要达到对这些静态数据的搬运的算法。但是这种算法会降低写操作的性能,也增加了算法的复杂度。一般都只运用动态均衡算法。
目前比较成熟的损耗均衡的文件系统有JFFS2, 和 YAFFS。也有另一种思维就是在FAT16等传统文件系统上达到损耗均衡,只有事先分配一块足够大的文件,在文件内部达到损耗均衡算法。不过必需修改FAT16的代码,关闭对最后修改时长的更新。
此时的CF卡和SD卡有的已经在内部达到了损耗均衡,这种情况下就不须要软件达到了。
错误恢复
假如在向存储器写数据的时候发生断电或者被拔出,那么所写的区域的数据就处于未知的状态。在一些应用中,这会导致不完整的文件,而在另一些应用中,则会导致系统失败。所以对这类错误的恢复也是嵌入式软件设计必需考虑的。常用的思维有两种:
日志型的文件系统
这种文件系统并不是直接存储数据,而是一条条的日志,所以当发生断电的时候,总能够恢复到之前的状态。这类文件系统的代表如ext3。
双备份
双备份的思维更简略,所有的数据都写两份。每次交替运用。文件分区表也必需是双备份的。假设有数据块A,A1是他的备份块,在初始时刻和A的内容是一致的。在分区表中,F指向数据块A,F1是他的备份块。当修改文件时,首先修改数据块A1的内容,假如此时断电,A1的内容错误,但由于F指向的是完整的A,所以数据没有损坏。假如A1修改成功,则修改F1的内容,假如此时断电,由于F是完整的,所以依然没有问题。
此时的Flash设备,有的已经内置错误检测和错误校正技术,能够保证在断电时数据的完整。还有的包含自动的动态/静态损耗均衡算法和坏块处理,完全没须上层软件额外对待,能够当作硬盘运用。所以,硬件越兴旺,软件就会越可靠,技术不断的进步,将让我们能够把更多的精力投入到软件功能的自身,这是开展的趋势。
故障老本高昂
嵌入式产品都是软硬件一起销售的给用户的,所以这带来了一个纯软件所不具备的问题,那就是当产品发生故障时,假如须要返厂才能修复,则老本就很高。嵌入式设备常见有以下的几类故障:
a)数据故障。由于某些理由导致数据不能读出或者不一致。假如断电引起的数据库错误。
b)软件故障。软件自身的缺少陷,须要通过发布补丁程序或者新版本的软件修正。
c)系统故障。假如用户下载了错误的系统内核,导致系统没法启动。
d)硬件故障。这种故障独有返厂,不属于我们的探讨范围。
针对前三类故障,要尽可能保证客户自己,或者现场技术人员就能够攻克。从架构的角度考虑,如下原则能够参照:
a)运用具备错误恢复才能的数据管理设计。当数据发生错误时,用户能够承受的处理依次是:
i.错误被纠正,所有数据有效
ii.错误发生时的数据(可能不完整)丢失,之前的数据有效。
iii.所有数据丢失
iv.数据引擎崩溃没法继续工作
一般而言,满足第二个条件即可。(日志,事务,备份,错误识别)
b)将应用程序和系统别离。应用程序应该放置在可插拔的Flash卡上,能够通过读卡器进行文件复制升级。非必要的情况不要运用专用应用软件来升级应用程序。
c)要有“安全模式”。即当主系统被损坏后,设备依然能够启动,重新升级系统。常见的uboot能够保证这一点,在系统损坏后,能够进入uboot通过tftp重新升级。
对单片机感兴趣的朋友可以找我,我录制了一些关于单片机的入门教程,有需要的童鞋找我拿就像,免费的,私信我“林老师”就可以拿~点击打开我的头像就能领取。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!