课程目标
1、了解嵌入式技术;
2、掌握嵌入式Linux操作的使用;(命令)
3、掌握嵌入式Linux开发工具的使用;(gcc、gbd、make、shell)
4、掌握嵌入式Linux应用开发;(文件、多任务、网络、数据库)
5、了解嵌入式产品开发流程;(硬件–软件–系统)
6、了解嵌入式系统移植;(u-boot、内核、文件系统)
7、了解嵌入式底层软件开发;(驱动开发)
什么是嵌入式技术
嵌入式技术就是在已有的硬件上移植操作系统,在操作系统之上做上层应用开发,或者在操作系统之下做底层开发。
嵌入式开发与单片机开发的区别
有无操作系统,下面概述操作系统的作用。
操作系统的作用
(1)管理资源(软件资源、硬件资源),这就起到了一个管家的作用,其实操作系统还有
(2)多任务机制,比如我们手机中的后台管理
(3)提供了丰富的网路协议
(4)提供了开源软件和库
嵌入式软件和非嵌入式软件区别
所谓的非嵌入式我们也称之为裸机,这个问题也可以先从传统开发的缺点讲起,传统开发软件(1)移植性差,即适配平台能力差
(2)对开发人员能力要求也较高,要求开发人员软硬通吃
那么嵌入式开发就完美(1)解决了传统开发软硬件耦合度导致的问题
(2)多任务机制
(3)提供了丰富的网络协议栈
(4)提供了丰富的开源软件和工具。
嵌入式开发的方向
(1)嵌入式上层应用软件开发
(2)嵌入式底层系统软件开发。
这两部分的要求分别如下:
上层应用软件开发需要
a.精通一门语言;
b.熟悉一款操作系统;(会看说明书)
c.数据结构/算法;
下层系统软件开发需要:
a.精通c语言(所有的操作系统内核都是c+汇编开发的)
b.理解操作系统的实现(会使用,也会添加/修改功能)
c.熟悉硬件的工作原理
d.熟悉汇编
为什么是c语言
(1)能够直接访问硬件(能够直接访问硬件是因为c语言有指针数据类型)
(2)移植性好
(3)运行效率高。
什么时候选择汇编,什么时候选择c语言
汇编语言是低级语言,没有高级语言的支撑,访问硬件的效率>c语言,对硬件初始化的时候用汇编,对硬件进行复杂操作的时候用c语言。
CPU体系结构的种类、特点及应用场景
1、冯·诺伊曼结构
(Von Neumann architecture),也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的电脑设计概念结构。
特点:而程式自我修改这项特色也被现代程式设计所弃扬,因为它会造成理解与除错的难度,且现代中央处理器的管线与快取机制会让此功能效率降低。
应用场景:本结构隐约指导了将储存装置与中央处理器分开的概念,因此依本结构设计出的计算机又称储存程式型电脑。 最早的计算机器仅内涵固定用途的程式。现代的某些计算机依然维持这样的设计方式,通常是为了简化或教育目的。
2、哈佛结构
(Harvard architecture)是一种将程序指令储存和数据储存分开的存储器结构。
特点:哈佛结构的微处理器通常具有较高的执行效率。其程序指令和数据指令分开组织和储存的,执行时可以预先读取下一条指令。
应用场景:程序指令储存和数据储存分开,数据和指令的储存可以同时进行,可以使指令和数据有不同的数据宽度,如Microchip公司的PIC16芯片的程序指令是14位宽度,而数据是8位宽度。
3、并行处理结构
特点:单指令流多数据流(SIMD) 结构。
应用场景:SIMD机器最适于处理规则的稠密数组带问题。如图象处理、矩阵运算和物理模拟等问题。它们不象单处理机那样通用,一般地是作为冯诺依曼主机的附加处理机。
一些小点
嵌入式=!RAM
单片机可以作为嵌入式CPU
可以移植(代码开源、提供可移植接口)的操作系统称之为嵌入式操作系统。
实时性(软件、硬件):规定的时间内完成规定的动作
vxworks:实时性强
Linux无实时,运行效率稳定 RT-Linux openwrt