一、嵌入式开发需要的知识:
硬件知识:
- 电路知识:《模拟电子技术》、《数字电子技术》、《高频电子技术》等。
- 认识基本的电子元器件:可以通过《电子技术基础》学习电阻、电容、二极管和三极管等有关电子元件的知识。
- 会看电路原理图:了解原理图中各引脚的连接情况,能够根据芯片数据手册去配置该引脚的功能来驱动它。
- 掌握数字电子技术相关知识:通过《电子技术基础》学习。
软件知识:
- 编程语言:C语言。
- 单片机相关知识:从51单片机开始入门。学习视频郭天祥的《十天学会单片机》
- 操作系统:Linux系统,学习书籍《鸟哥的Linux私房菜》上、中、下册。
二、嵌入式开发平台:
- 单片机系列
- ARM系列微处理机
只要掌握一种型号微处理器的开发方法,即看原理图,查芯片手册了解寄存器的用法,再根据要求进行I/O口配置,来完成驱动功能,就能触类旁通,轻松应对各种类型芯片的嵌入式开发。
知识拓展:
单片机和ARM的区别:
(1)相比单片机ARM性能更高,功能更多。
(2)单片机自己写操作系统自己写应用程序,ARM可以基于Linux操作系统为基础进行软件开发。ARM和Linux的关系:
Linux 是操作系统内核。一般还可以说是一整套基于 Linux 内核运行的软件。
ARM 嵌入式,是硬件。也就是把ARM 架构的 CPU 做的机器,嵌入到某个设备上作为一部分的开发。
一个是软件,一个是硬件。关系就是软件要运行在硬件上,硬件需要软件才能实现功能。
ARM可以实现更多的功能,需要大量的软件开发,需要开发各种任务调度,资源配置,I/O处理的基础功能。操作系统的作用就是提供一些基础的资源管理硬件调用的功能,你就不需要费力的开发这些东西了。这就是ARM + Linux 要实现的东西,有了 ARM + Linux ,再继续开发就只需要关注软件的功能了。
三、嵌入式ARM Linux系统的构成
- 硬件电路
- bootloader 简称 uboot,它是在操作系统运行内核之前的一段程序,通俗的说是一段单片机裸机程序,用来初始化基本的硬件,建立内存映射,并在一系列初始化后加载内核。
- 文件系统
文件被放置在分等级的树状结构目录中的某一处。 - 应用程序
App或者一段运行嵌入式操作系统上的C语言程序。
四、嵌入式系统体系结构图
参考书:《嵌入式C语言技术实战开发》