在第一次学习嵌入式的时候,最好奇的就是什么是嵌入式,对这个概念是比较模糊的,不知道究竟是做什么的,能够有什么作用。
什么是嵌入式系统?
一般的除了大型计算机、服务器、台式计算机、笔记本电脑等通用的计算机之外,其他各种含有微处理器和可运行程序的专用计算机设备都可以称作为嵌入式系统。
被大多数人定义为:以应用为中心,以计算机技术为基础,软硬件可以进行裁剪,适应应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
嵌入式系统的硬件核心部分是嵌入式微处理器,嵌入式的分类有很多种方式,有的是按照处理的字长,有的是按照面世的时间顺序,但是常用的分类方式是按处理器的应用领域进行分类。
从广义的角度分为下面四个大类:
1.嵌入式微控制器(EMU)
嵌入式微控制器就是经常说的单片机(SCM)、或微控制器(MCU),其内部一般集成了某种处理器核、少量的ROM/RAM储存器、总线控制逻辑、各种功能模块、外设接口电路等。
2.嵌入式数字信号处理器(EDSP)
嵌入式信号处理器一般的简称为DSP,是专门用来处理嵌入式系统的数字信号,在嵌入式DSP数字滤波、快速傅里叶变换、频谱分析等仪器上使用较为广泛。
3.嵌入式微处理器(EMPU)
嵌入式微处理器也称为嵌入式微处理器单元。一般分为通用微处理器,嵌入式微处理器。
4.嵌入式片上系统(ESOC)
随着科技的发展EDA技术的推广和VLSI设计的普及,在一个硅片上实现一个复杂的系统已经成为可能。除了个别的器件外,整个嵌入式系统基本可以集成到一块或几块芯片中。
推荐学习路线
编程基础
首先掌握C/C 语言,可以看知名的C语言图书用来打基础。像嵌入式Linux C语言程序设计基础教程、《The C Programming Language》、C和指针、C Primer、《高质量C/C 编程指南》这将会对C基础有重新的认识。
Linux
现在嵌入式都是linux的天下,不学linux你还真玩不转。咱们还是从入门到内核。要学习嵌入式Linux下的程序设计、嵌入式Linux开发环境,强化对Linux开发的理解和编码调试的能力,系统编程、标准I/O、文件I/O、库的制作等。
内核移植 驱动开发
最后需要往开发板上移植操作系统需要完成大量的工作,包括搭建嵌入式开发环境;移植bootloader;移植内核(bsp开发)和制作根文件系统。
同时要了解Linux相关运行机理,为后面的驱动开发打好理论基础,内容:内核源码结构、内存管理、进程管理、中断管理、系统调用等等。