一、嵌入式开发概述
1.嵌入式技术是什么?
嵌入式技术执行专用功能并被内部计算机控制的设备或者系统。嵌入式系统不能使用通用型计算机,而且运行的是固化的软件,用术语表示就是固件(firmware),终端用户很难或者不可能改变固件。
2.嵌入式软件与非嵌入式软件的区别?
嵌入式软件就是嵌入在硬件中的操作系统和开发工具软件,它在产业中的关联关系体现为:芯片设计制造→嵌入式系统软件→嵌入式电子设备开发、制造。非嵌入式软件和嵌入式软件正好相反,其是指可以跨平台甚至跨系统使用的软件系统。 嵌入式软件和非嵌入式的区别在于,软件使用的平台不同,举个例子,你手机上的软件(例如qq),那么可以称为嵌入式软件,而同样是qq,在你的pc上就是非嵌入式软件,说的不严格点,能够运行在你的电脑和一些大型服务器的软件就是非嵌入式,相反,其他的软件(特点是体积比小),就是嵌入式软件了,当然这是笼统的分类了。
3.嵌入式开发与单片机开发的区别?
嵌入式开发就是设计特定功能的计算机系统,手机,mp3、mp4.mp5自动供水系统,洗衣机,油井监控系统等等都是嵌入式系统,形象的说就是开发一种嵌入在一个机器上实现特定功能的一个系统。单片机开发是简单的嵌入式开发,一般的单片机是一个40角的cpu,32个i/o口(输入输出口),因此单片机开发可以形象的说是,通过设程序,来控制引脚按一定输出高低单片来控制外围电路去控制机器运行。
4.嵌入式开发的优缺点?
优点: 1)可裁剪性。支持开放性和可伸缩性的体系结构。
2)强实时性。EOS实时性一般较强,可用于各种设备控制中。
3)统一的接口。提供设备统一的驱动接口。
4)操作方便、简单、提供友好的图形GUI和图形界面,追求易学易用。
提供强大的网络功能,支持TCP/IP协议及其他协议,提供TCP/UDP/IP/PPP协议支持及统一的MAC访问层接口,为各种移动计算设备预留接口。
5)强稳定性,弱交互性。嵌入式系统一旦开始运行就不需要用户过多的干预、这就要负责系统管理的EOS具有较强的稳定性。嵌入式操作系统的用户接口一般不提供操作命令,它通过系统的调用命令向用户程序提供服务。
6)固化代码。在嵌入式系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。
7)更好的硬件适应性,也就是良好的移植性。
缺点:1)系统资源有限。2)内核小,处理能力有限,实现的功能有限。3)软件对硬件的依赖性高,软件的可移植性差。4)对操作系统的可靠性要求较高。5)对开发人员的专业性要求较高。
5.传统开发的缺点?
缺点:用户素质或系统分析员和管理者之间的沟通问题;开发周期长,难于适应环境变化;结构化程度较低的系统,在开发初期难以锁定功能要求。
嵌入式:在已有的硬件上移植操作系统;在操作系统之上做上层应用开发,在操作系统之下做底层开发;
操作系统的作用:管理资源(软件资源、硬件资源)= = 管家
C语言的特点?(能够直接访问硬件、移植性、运行效率)
为什么C语言能够直接访问硬件?
C语言是直接封装的汇编语言,它的封装性比起java、c#等高级语言要差很多,而汇编语言是使用的cpu等硬件的指令集,所以说C语言可以直接访问某些硬件。
什么时候选择汇编语言?什么时候选择C语言?
汇编语言是低级语言,在编写程序的时候会把根据不同的情况指定使用不同的寻址方式,能够对内存和CPU里的通用寄存器直接操纵。不同的计算机系列会有不同的汇编语言。
而C语言是高级语言,可以实现跨平台。编写程序无需指定CPU的指令执行情况,一段程序可以在不同体系结构的计算机上使用。
单片机可以作为嵌入式CPU
哪些操作系统可以作为嵌入式操作系统?
常见的嵌入式系统
Linux、uClinux、WinCE、PalmOS、Symbian、eCos、uCOS-II、VxWorks、pSOS、Nucleus、ThreadX 、Rtems 、QNX、INTEGRITY、OSE、C Executive 。
可以移植(代码开源、提供可移植接口)的操作系统称之为嵌入式操作系统。
实时性(软件、硬件):规定的时间内完成规定的动作 vxworks:实时性强 Linux无实时的 运行效率 稳定
RT-Linux openwrt