嵌入式系统无所不在,那么,那么开发嵌入式系统都需要哪些技术基础呢?请看下图:
下面按照专业学科单独说明。
《计算机基础》
主要内容是了解计算机结构及功能,对计算机系统有一个全方位的认识。比如计算机发展史、应用史、系统组成、专业概念、进制基础、软件种类、硬件种类、常用操作技能等等,这些都是后续学习过程的基础;
《模拟与数字电路》
从事嵌入式控制系统开发,就不可避免的与硬件电路打交道。掌握重要的、常用的概念与电路原理是必须的。但话又说回来了,现今在做系统设计的时候更多的是根据实际需要,选择合适的成熟电路做参考,然后搭建出项目所需的电路,至于高大上的复杂电路设计工作,交给专业的IC厂商去做吧,你要做的就是电路选型再选型。
《单片机原理与应用》
它是非常重要的专业基础课程。单片机结构、片上设备、寄存器、总线、中断系统、设备编程等等一系列重要的概念与应用基础在这里都做了非常详尽的阐述。熟练掌握单片机原理,为后续SOC(System on a chip)学习与应用打下坚实的基础。
《C语言程序设计》
编程语言是一座桥梁,它连接了计算机世界与人类世界。它用接近于人类语言表述的方式,接收人类的表述(程序),然后,将这种表述翻译成计算机能够识别的机械语言,让计算机来执行。C语言,作为最接近硬件的一门高级语言,出现年代久远。但C语言不但没有随时间的流逝而消失,而且还因为它的优秀品质使其在嵌入式系统当中广泛应用。C语言是嵌入式控制系统中,开发软件的必不可少的神器。
《Altium Designer》
嵌入式系统从来都是离不开定制的硬件控制平台的。由于硬件平台的定制特性,为每种产品设计一款专用的硬件系统就是必须的。电路设计包括电路原理图设计、电路板设计、电路仿真等等操作。Altium Designer 是世界上非常优秀的电路辅助设计软件,掌握了这款软件,会为你插上了腾飞的翅膀。
《Linux应用基础》
陕西机电职院爱好单片机的同学们,今天我们用51单片机来设计一个旋转报警灯,很有趣啊!老师已经仿真好了,下面就是吸引你眼球的时刻。
Linux,作为开源免费、多任务、多用户的操作系统,自从上个世纪诞生以来,以期超强的活力,在各种计算机控制系统中得到了大量的应用。它可以运行在服务器上,也可以运行在个人计算机上。现在,作为应用最广泛的嵌入式系统也成为了它最大的服务群体。为了在嵌入式系统当中更好的使用Linux操作系统,熟练的使用Linux操作系统及其开发环境是不可无的重要技能。
《ARM开发基础》
ARM是全球领先的半导体知识产权 (IP) 提供商。全世界超过95%的智能手机和平板电脑都采用ARM架构。ARM设计了大量高性价比、耗能低的RISC处理器、相关技术及软件。2014年基于ARM技术的全年全球出货量是120亿。可见,若要从事嵌入式系统开发,ARM芯片的应用技能是不可或缺的。ARM芯片虽多,但只要选择一款恰当的典型ARM芯片作为学习标的,其它的技术问题,都可迎刃而解。
《C++应用开发基础》
随着嵌入式系统规模的不断扩大,应用程序规模也愈加庞大。高级语言对于大规模应用程序的设计,其效率会显得比较低下。面向对象的程序设计被引入。C++以期特有的品质,扛起了C语言的大旗,继续冲锋陷阵。掌握了C++,你就打开了高级应用编程的大门。
《构建嵌入式Linux系统》
嵌入式系统规模越来越大,庞大的硬件系统与功能强大的软件系统的存在,使嵌入式系统的管理越来越复杂。引入操作系统,是越来越迫切的要求。有Linux的存在,我们应该感到非常庆幸。Linux操作系统功能强大,而且开源,最重要的是,它用C语言设计实现,核心内核才几兆!完美!它简直就是为嵌入式系统而生的。构建嵌入式Linux系统,会让你具备系统引导程序移植、内核裁剪与移植、驱动程序设计、文件系统创建的超凡能力。
《Qt GUI应用程序设计》
优秀的图形用户接口,是现行嵌入式手持设备不能没有的。从某种程度上来讲,软件界面的设计,决定了软件是否能够打开市场的一个关键点。从来都没有想像在一样注重UI设计。Qt是基于C++的GUI类库,它开源特性以及超级优越的跨平台特性,是让我们学习并使用它的重要理由。它优秀的界面设计能力,为它注入了优秀的品质。
《Android程序设计》
Android,是基于Linux内核,为手机或移动手持设备开发的带GUI的操作系统。Android的用户群体超级广泛。因为其用户群体广泛,所以软件应用市场也非常大,单独进行Android应用程序设计也是非常好的选择。
讲了这么多,你可能被吓到了,这么多的技术内容,全能掌握吗?
让我告诉你,根据你的职业规划,可以从单片机控制系统开发入手,然后再有选择的学习基于ARM的嵌入式系统开发,而后面的基于Qt的应用程序设计,会在短时间内搞定!只要你喜欢、自信,绝对可以办到,相信我!
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >
传统上我们都喜欢用功能来划分模块,细分任务,面向对象思想不这样。面向对象思想则是先从一个任务中找出对象,在对象中搀杂些模块等来实现功能的。这就是两种风格截然不同的地方。比如我们要让我们的单片机把显示信息输出到显示器,那么传统的分析方法是信息格式化、格式化数据送显示器显示,似乎这样也就足够了,不同的显示器用不同的送显示程序或者程序段,配置不同的变量,能共的共起来,不能共的分开。