嵌入式开发总结(5篇)
文件格式:DOCX
时间:2023-03-13 00:00:00    小编:大狗外贸

嵌入式开发总结(5篇)

小编:大狗外贸

总结是对过去一定时期的工作、学习或思想情况进行回顾、分析,并做出客观评价的书面材料,它有助于我们寻找工作和事物发展的规律,从而掌握并运用这些规律,是时候写一份总结了。那关于总结格式是怎样的呢?而个人总结又该怎么写呢?下面是小编整理的个人今后的总结范文,欢迎阅读分享,希望对大家有所帮助。

嵌入式开发总结篇一

1.嵌入式系统通常是面向特定应用的嵌入式cpu与通用型的最大不同就是嵌入式cpu大多工作在为特定用户群设计的系统中,它通常都具有低功耗、体积小、集成度高等特点,能够把通用cpu中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化,移动能力大大增强,跟网络的耦合也越来越紧密。

2.嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。

3.嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的'选择更具有竞争力。

4.嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。

5.为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中。

6.嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发。

嵌入式开发总结篇二

从规范完善的开发周期到严格执行和系统检查,开发高可靠性嵌入式系统的技术有许多种。小编介绍7个易操作且可以长久使用的技巧,它们对于确保系统更加可靠地运行并捕获异常行为大有帮助。希望对正在学习嵌入式开发的你有所帮助!

软件开发人员往往都是非常乐观的一群人,只要让他们的代码忠实地长时间地运行就可以了,仅此而已。微控制器跳出应用程序空间并在非预想的代码空间中执行这种情况似乎是相当少有的。然而,这种情况发生的机会并不比缓存溢出或错误指针失去引用少。它确实会发生!发生这种情况后的系统行为将是不确定的,因为默认情况下内存空间都是0xff,或者由于内存区通常没有写过,其中的值可能只有上帝才知道。

不过有相当完备的linker或ide技巧可以用来帮助识别这样的事件并从中恢复系统。技巧就是使用fill命令对未用rom填充已知的位模式。要填充未使用的内存,有很多不同的可能组合可以使用,但如果是想建立更加可靠的系统,最明显的选择是在这些位置放置isr fault handler。如果系统出了某些差错,处理器开始执行程序空间以外的代码,就会触发isr,并在决定校正行动之前提供储存处理器、寄存器和系统状态的机会。

对嵌入式工程师来说一个很大的好处是,我们的ide和工具链可以自动产生应用程序或内存空间校验和(checksum),从而根据这个校验和验证应用程序是否完好。有趣的是,在许多这些案例中,只有在将程序代码加载到设备时,才会用到校验和。

然而,如果crc或校验和保持在内存中,那么验证应用程序在启动时(或甚至对长时间运行的系统定期验证),是否仍然完好是确保意外之事不会发生的极好途径。现在一个编程过的应用程序发生改变的概率是很小的,但考虑每年交付的数十亿个微控制器以及可能恶劣的工作环境,应用程序崩溃的机会并不是零。更有可能的是,系统中的一个缺陷可能导致某一扇区发生闪存写入或闪存擦除,从而破坏应用程序的完整性。

为了建立一个更加可靠和扎实的系统,确保系统硬件正常工作非常重要。毕竟硬件会发生故障(幸运的是软件永远不会发生故障,软件只会做代码要它做的事,不管是正确的还是错误的)。在启动时验证ram的内部或外部没有问题,是确保硬件可以如预期般运作的一个好方法。

有许多不同的方法可用于执行ram检查,但常用的方法是写入一个已知的模式,然后等上一小段时间再回读。结果应该是所读就是所写。真相是,在大多数情况下 ram检查是通过的,这也是我们想要的结果。但也有极小的可能性检查不通过,这时就为系统标示出硬件问题提供了极好的机会。

堆栈大小是在编译时就静态分配好的,但堆栈是以动态的方式使用的。随着代码的执行,应用程序需要的变量、返回的地址和其它信息被不断存储在堆栈中。这种机制导致堆栈在其分配的内存中不断增长。然而,这种增长有时会超出编译时确定的容量极限,导致堆栈破坏相邻内存区域的数据。

绝对确保堆栈正常工作的一种方法是实现堆栈监视器,将它作为系统“保健”代码的一部分(有多少工程师会这样做?)。堆栈监视器会在堆栈和“其它”内存区域之间创建一个缓冲区域,并填充已知的位模式。然后监视器会不断的监视图案是否有任何变化。如果该位模式发生了改变,那就意味着堆栈增长得太大了,即将要把系统推向黑暗地狱!此时监视器可以记录事件的发生、系统状态以及任何其它有用的数据,供日后用于问题的诊断。

大多数实时操作系统(rtos)或实现了内存保护单元(mpu)的微控制器系统中都提供有堆栈监视器。可怕的是,这些功能默认都是关闭状态,或者经常被开发人员有意关闭。在网络上快速搜寻一下可以发现,很多人建议关闭实时操作系统中的堆栈监视器以节省56字节的闪存空间。等等,这可是得不偿失的做法!

在过去,是很难在一个小而廉价的微控制器中找到内存保护单元(mpu)的.,但这种情况已经开始改变。现在从高端到低端的微控制器都已经有mpu,而这些 mpu为嵌入式软件开发人员提供了一个可以大幅提高其固件(firmware)鲁棒性(robustness)的机会。

mpu 已逐渐与操作系统耦合,以便建立内存空间,其中的处理都分开,或任务可执行其代码,而不用担心被stomped on。倘若真有事情发生,不受控制的处理会被取消,也会执行其他的保护措施。请留意带有这种组件的微控制器,如果有,请多加利用它的这种特性。

你经常会发现的一种总是最受喜爱的看门狗(watchdog)实现是,在看门狗被启用之处(这是一个很好的开始),但也是可以用周期性定时器将该看门狗清零之处;定时器的启用是完全与程序中出现的任何情况隔离的。使用看门狗的目的是协助确保如果出现错误,看门狗不会被清零,即当工作暂停,系统会被迫去执行硬件重设定(hardware reset),以便恢复。使用与系统活动独立的定时器可以让看门狗保持清零,即使系统已失效。

对应用任务如何整合到看门狗系统中,嵌入式开发人员需要仔细考虑和设计。例如,有种技术可能可以让每个在一定时期内运行的任务标示它们可以成功地完成其任 务。在此事件中,看门狗不被清零,强制被复位。还有一些比较先进的技术,像是使用外部看门狗处理器,它可用来监视主处理器如何表现,反之亦然。

对一个可靠的系统而言,建立一个强大的看门狗系统是很重要的。由于有太多的技术,难以在这几个段落中完全涵盖,但针对此一议题,笔者未来还会发表相关的文章。

不习惯在资源有限环境下工作的工程师,可能会试图使用其编程语言的特性,这种语言让他们可以使用易失存储器分配。毕竟,这是一种常在计算器系统中使用的技术,在计算器系统中,只有在有必要时,内存才会被分配。例如,以c开发时,工程师可能倾向于使用malloc来分配在堆(heap)上的空间。有一个操 作会执行,一旦完成,可以使用free将被分配的内存返回,以便堆的使用。

使用易失存储器分配所产生的问题是很复杂的,要妥善处理这些问题,可以说是一个噩梦!一种替代的方法是,直接以静态的方式,简化内存的分配。例如,只要在程序中简单地建立一个大小为256字节长的缓冲区,而不是经由malloc请求这样大小的内存缓冲区。此一分配的内存可在整个应用程序的生命周期期 间保持,且不会有堆或内存碎片问题方面的顾虑。

所有这些技术都是让设计者可以开发出可靠性更高的嵌入式系统的秘诀。

嵌入式开发总结篇三

嵌入式系统一般指非pc系统,它包括硬件和软件两部分。硬件包括处理器/微处理器、存储器及外设器件和i/o端口、图形控制器等。软件部分包括操作系统软件(os)(要求实时和多任务操作)和应用程序编程。有时设计人员把这两种软件组合在一起。应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。

嵌入式开发总结篇四


广州大学华软软件学院 起止年月:2012-04 ~ 2012-05
公司性质: 社会团体所属行业:计算机软件
担任职位: 
工作描述: 通过自学dxp软件和自学所了解的stm32自主设计pov led,参加学院举办的第四届嵌入式技术竞赛,获得优秀奖。

大学期间从班里的组织委员,到学院学习部干事,再到电子系新生班助,我通过不同职位中去锻炼自己,不断提高自己各方面的'能力,如思考并解决问题的能力,理论结合实际的能力和做人处事的能力。在大学课余时间,我还积极参加各类社会实践,在实践中不断地磨练,充实和提高自己。2011年12月18日,我也光荣地成为一名预备党员,让我思想上进一步的觉悟。在校期间,也曾获得 广州大学华软软件学院大学英语词汇竞赛二等奖和广州大学华软软件学院学生奖学金三等奖、优秀新生班助、最佳凝聚力团队奖。在学习上,有较好的自学能力,自学过dxp、flash、电子杂志等软件,学习成绩名列班里前茅。

嵌入式开发总结篇五

配置minicom,一般的参数为波特率115200 baud/s,数据位8位,停止位为1,9,无奇偶校验,软件硬件流控设为无。在windows下的超级终端的配置也是这样。minicom软件的作用是作为调试嵌入式开发板的信息输出的监视器和键盘输入的工具。配置网络主要是配置nfs网络文件系统,需要关闭防火墙,简化嵌入式网络调试环境设置过程。

从网络上下载一些公开源代码的bootloader,、blob、vivi、lilo、arm-boot、red-boot等,根据具体芯片进行移植修改。有些芯片没有内置引导装载程序,比如,三星的arv17、arm9系列芯片,这样就需要编写开发板上flash的烧写程序,可以在网上下载相应的烧写程序,也有linux下的公开源代码的j-flash程序。如果不能烧写自己的`开发板,就需要根据自己的具体电路进行源代码修改。这是让系统可以正常运行的第一步。如果用户购买了厂家的仿真器比较容易烧写flash,虽然无法了解其中的核心技术,但对于需要迅速开发自己的应用的人来说可以极大提高开发速度。

如mcliunx、arm-linux、ppc-linux等,如果有专门针对所使用的cpu移植好的linux操作系统那是再好不过,下载后再添加特定硬件的驱动程序,然后进行调试修改,对于带mmu的cpu可以使用模块方式调试驱动,而对于mcliunx这样的系统只能编译内核进行调试。

下载使用busybox软件进行功能裁减,产生一个最基本的根文件系统,再根据自己的应用需要添加其他的程序。由于默认的启动脚本一般都不会符合应用的需要,所以就要修改根文件系统中的启动脚本,它的存放位置位于/etc目录下,包括:/etc/init.d/rc.s、/etc/profile、/etc/.profile等,自动挂装文件系统的配置文件/etc/fstab,具体情况会随系统不同而不同。根文件系统在嵌入式系统中一般设为只读,需要使用mkcramfs genromfs等工具产生烧写映像文件。

一般使用jffs2或yaffs文件系统,这需要在内核中提供这些文件系统的驱动,有的系统使用一个线性flash(nor型)512kb~32mb,有的系统使用非线性flash(nand型)8mb~512mb,有的两个同时使用,需要根据应用规划flash的分区方案。

可以放入根文件系统中,也可以放入yaffs、jffs2文件系统中,有的应用不使用根文件系统,直接将应用程序和内核设计在一起,这有点类似于μc/os-ii的方式。

根文件系统和应用程序,发布产品。

猜你喜欢 网友关注 本周热点 软件
musicolet
2025-08-21
BBC英语
2025-08-21
百度汉语词典
2025-08-21
精选文章
基于你的浏览为你整理资料合集
复制