嵌入式开发就是对于除了电脑之外的所有电子设备上操作系统的开发,开发对象有手机,掌上电脑,机电系统等。
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。
嵌入式系统一般指非PC系统,它包括硬件和软件两部分。硬件包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制器等。软件部分包括操作系统软件(OS)(要求实时和多任务操作)和应用程序编程。有时设计人员把这两种软件组合在一起。应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。
大家都知道这个领域人才非常稀缺,但是,学习周期比较长,需要的知识面也比较广,所以不要心急。先看看下面的几个问题,了解一下你现在的知识水平:
(1)你用VC++或BC++编写过应用程序吗?
如果编写过应用程序,那就做好了,如果你没有做过上层应用程序,那么又如何能够去理解更深的更高深的底层程序呢,那就赶快补上这一课吧!!!
(2)你曾经编写过单片机或者DSP的程序吗?
我们把类似51单片机或者DSP上面跑的没有操作系统的程序叫做“代码裸奔”,我们也都曾经编写过裸奔的代码。因为有的时候比如我们编写一个简单的程序,就只需要点几个LED检测几个按钮的状态,那么“代码裸奔”弄一个while(1)的死循环就足够了,杀鸡何必用牛刀。
编写这种裸奔的代码,也是学习嵌入式的必由之路,因为,你将会用C语言去对寄存器写控制字,这就是以后写驱动程序的基础呀。
另外需要说明的是,从概念上说,“代码裸奔”也已经属于嵌入式开发的范畴。
(3)到了最后一个阶段,你就可以开始找一个方向(uCos、Linux、VxWorks、WindowsCE、Palm等等等等),学习有操作系统的嵌入式开发了。
嵌入式操作系统的种类也是无法计数的,有一些我连名字也叫不上来,太多太多了。但是值得庆幸的是,这些操作系统大同小异,相通的。
你正在在读书,建议学习uCos操作系统(看邵贝贝的《UC/OS操作系统》);如果你不喜欢这么Basic的操作系统,VxWorks也是一个不错的选择,VxWorks进入中国已经好多年了,国内出版的书也都很好,尤其推荐陈智育的《VxWorks程序开发实践》和周启平的《VxWorks下设备驱动程序及BSP开发指南》;Linux简直是恶梦,但是如果你能够走出这个噩梦,你也就成了高手了。
总之,基础知识要牢固,学习一定要循序渐进!