1、嵌入式系统的特点
- 专用、软硬件可裁剪可配置
- 低功耗、高可靠性、高稳定性
- 软件代码短小精悍
- 代码可固化
- 实时性
- 弱交互性
- 专用开发工具及开发环境
- 专业开发人员
2、嵌入式系统的组成
(1)微处理器
-
存储器
-
I/O 接口、输入输出设备等等
(2)软件
- 嵌入式操作系统
- BSP ——board support package 板级支持包
- 应用软件
3、嵌入式系统的分层
- 应用程序:GUI GPRS 3G WIFI
- 操作系统:智能操作系统、操作平台
- 硬件:中央处理器、ROM、RAM、IO、电源
4、两种开发模式
- 非嵌入式开发,A(类)机编写(源代码)、编译得到可执行程序,发布给A(类)机运行。
- 嵌入式开发,A(类)机编写(源代码)、编译得到可执行程序,发给B(类)机运行。
5、为何使用交叉编译
- 嵌入式开发的CPU比较简单,本身无法搭建开发环境,有些甚至操作系统都没有。
- 交叉编译可以用高性能机器为低性能机器开发软件(包括裸机软件、系统级和应用级软件 )
6、交叉编译有什么特点
- 必须使用专用的交叉编译工具链。
- 由于可执行程序不能本地运行调试,因此必须配合一定手段(专用调试器、JTAG调试器、USB下载、串口下载、SD启动、网络共享等)将可行程序加载到目标嵌入式设备上运行及调试。
7、地址总线和数据总线
- CPU通过地址总线寻址,然后通过数据总线与外部设备互换信息。
- 地址总线的位数决定CPU寻址范围;数据总线位数决定CPU单次通信能交换的信息数量。
- 总线的速度决定CPU和外设互换信息的速度。
8、几点注意
- CPU的地址总线位数和数据总线位数可以不同(典型代表就是51单片机,数据总线8位,地址总线16位),但是一般都相同。
- CPU的位数指的是数据总线的位数。
- 32位CPU寻址的范围是4G(前提:地址总线也是32位,即有32根地址线),所以最多支持4G内存。( 2exp32 == 4G)
- 数据总线是32位的,所以内存用32位的好,所以编程最好用int型(4byte==32位),因为匹配的时候效率才是最高的。
9、字节、位、bit、byte、KB、B、字符之间有什么关系?
- 1 byte == 8 bit == 1 B
- 1K == 2exp10 B == 1024 B
- 1M ==2exp10 K == 1024 K
- 1G == 2exp10 M == 1024 M
10、嵌入式开发特点
- 交叉编译,不便于本机运行调试程序。
- 嵌入式系统需要bootloader来启动,而bootloader必须首先存在于可启动介质中,这个过程需要专用工具。
- 嵌入式系统无法通过纯软件实现单步调试,因此必须借助专用的调试器。
12、Jlink的作用
- 下载可执行程序到目标机
- 在目标机上实现单步调试,便于开发bootloader
13、SD卡的作用
- 作为启动介质。
- 工作方式是:事先用读卡器将SD卡连接到开发机(一般是Windows电脑),通过写卡软件将交叉编译得到的可执行程序镜像烧录到SD卡,然后将SD卡插入到嵌入式目标机卡槽,设置正确的启动方式启动,则系统可以从SD卡中烧录的镜像处启动。
14、USB转串口线的作用
- 串口本身用来做嵌入式目标机的调试输出,主要目的是用来监视及调试软件。
- 因为现在大部分个人电脑(大部分台式机和几乎所有的笔记本电脑)都未配置DB9串口,因此工作中一般直接使用USB转串口线来连接PC和开发板。
注:笔记内容整理于《朱老师物联网大讲堂》之“ARM那些你得知道的事”视频课程