请假了5天,回了一次老家,计划是在这一个星期里面,总结一下学习的基础知识,还有一些平时没来得及解决的问题也一起静心总结一番。
先来谈谈嵌入式系统的概念:
一、首先什么是嵌入式?
这个我结合自己的理解和网上的资料发现并没有一个确切的定义,所以我选择了一个比较常用的定义如下:
嵌入式系统,英文名embedded system,是以应用为中心,以计算机技术为基础,并且软硬件可定制,适用于各种应用场合,对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
其实,也可以将嵌入式系统看成一种专用的计算机。但是它相比普通的PC来说,是绝对的以应用为中心。
这么说其实还是有点玄乎,可以理解为一种专用的,体积小的,能跑应用的计算机,比如我们的计算器,就是一种很小的嵌入式产品,它里面的芯片啥的都是为它专门设计的,可以在上面跑计算器的小程序。
嵌入式开发是指在已有的硬件平台上移植操作系统。
二、那有哪些应用方向?
主要有以下几个领域方向:
1、手机领域:比如智能手机,绝对的嵌入式技术产品。
2、汽车电子领域:现代汽车的人性化操作,电子导航,自动驾驶等技术。
3、民用消费电子产品:比如数码相机,电子玩具,电冰箱,电子词典等。
4、工业领域:工业机器人,电机控制,各种测量仪器等。
5、智能家居:这是近年来兴起的一个领域,各种智能化的家具产品。
其实可能还有更多,不过大致了解这么些应该可以了理解嵌入式有啥用了。
三、这一点对于不是理工科的同学可能就不是那么重要了,就是为什么要学习嵌入式呢?
这一点对于我个人来说其实就是兴趣使然呗,一听到这个名字感觉很玄乎,然后了解了定义之后发现正好是我喜欢捣鼓的方面,然后就想去深入的学习。不过从专业的角度来分析有一下几个方面:
1、时代背景:21世纪信息大爆炸呀,这个没啥好说的,时代在召唤我们!
2、这个就要说到之前的开发了,也就是传统开发,传统开发有这么两大缺点,第一个是软件的可移植性差;这个是因为以前的开发人员只能一对一开发,也就是每一种硬件都要去参考手册然后根据其特点来写出相应的代码,然后问题是,将这段代码移植到别的平台上就可能没有用了,这样的话无疑是太麻烦了。第二个是开发人员必须懂硬件:上面也讲了,开发人员想要开发出当前硬件的相应功能,就必须对这个硬件很熟悉才行。所以就出现了嵌入式熊开发。嵌入式软件开发有下列5个优点:
a、解决了软件的移植性
b、使软件开发人员不需要懂硬件
c、OS通过进程和线程提供了多任务机制,提高了系统的智能性。
d、OS提供了丰富的网络协议栈,使我们的系统能够实现远程控制。
e、OS提供了很多的开源工具和软件,极大提高了我们的开发效率,减少了开发成本。
上面的理由足以让传统开发人员从事嵌入式开发,而且也同时列出了嵌入式开发的优点。
四、嵌入式系统的组成
1、硬件层:嵌入式微处理器,存储器(SDRAM,ROM,flash等),通用设备和IO接口等。
2、中间层:这一层是介于软件层硬件层之间,也称为硬件抽象层,这一层是操作系统,使得系统的底层驱动程序与硬件无关,上层开发人员不需要懂硬件。
3、软件层:这一层主要是各种应用软件工作的层,也是我们开发人员开发的层。
五、什么是操作系统?什么是计算机?
1、操作系统首先是一个软件程序,其次它比较特殊,它是运行在裸机上的一个最基本的系统软件,用于管理系统的软件资源和硬件资源,任何其他的软件都必须要运行在操作系统之上。
2、计算机是指能够接受用户指令并按照指令执行相应的操作完成一系列对数据的运算处理的电子设备。
六、Linux是什么?
谈到Linux就不得不说到它的发展历史,Linux是由李纳斯托瓦兹在1991年为了改善minix系统而开发的一款操作系统,它是基于GUN计划的一款操作系统,不过通常我们所说的LINUX都是基于linux内核来说的,linux内核再搭配上一些GUI组件和一些使实用的程序与工具组成了Linux操作系统。关于GNU计划感兴趣的读者可以搜寻其他资料详细了解,这里不再赘述。
七、Linux有哪些优点?
1、Linux是开源的,专业的开发人员可以根据自己的需要修改Linux的源代码,从而适应自己的要求。
2、Linux相对来说非常的稳定,可以运行一年以上而不会down,但是Windows。。呵呵。。
3、Linux是免费的或者需要少许费用的操作系统,不过在中国,嘿嘿。。。
4、支持多用户多任务,可以支持将用户划分为不同等级,每个用户的登陆环境可以不一样,此外还支持用户在同一时间登陆主机使用资源。
5、支持用户与用户组的规划
6、消耗的资源非常少,用Linux可以轻松搭建一个可以上百人同时登陆的主机。
7、在嵌入式行业应用广泛,毕竟Windows系统所占的空间太大不适合用于其他的硬件上,而Linux可以轻松地用几百k的大小完成对硬件的驱动。
8、Linux也拥有非常棒的图形界面(GUI)。
说了这么多优点,其实Linux还是有一些缺点的,比如玩游戏嘛,还是老老实实用Windows系统或者主机系列的吧。。。我指的是大型游戏。还有Linux没有特定的厂商支持,遇到的问题都要自己解决或者上论坛问别人。专业软件的支持度不足等等。