嵌入式
- 嵌入式系统:监视、控制或辅助设备、机器和车间运行的装置。
- MMU(内存管理单元)的主要作用:地址映射;对地址访问的保护和限制。
- JTAG:测试线路连线和端子的连接状态。设备间的连接状态。Flash memory烧写。
- Boot Loader:系统加电后运行的第一段代码。操作系统运行前执行的一小段程序。
- Boot Loader功能:初始化硬件设备,创建内核需要的信息等,调用操作系统内核。
- 编译:高级语言编写的应用程序转化成运行该程序的CPU所能识别的机器代码。
- 交叉编译:在一个架构的机器下编译另一个架构的目标文件。
- 交叉开发环境:利用宿主机上已有的成熟的开发工具,专门针对目标板定制一套系统,包括引导程序、内核和文件系统,然后下载到目标板上运行。
- 嵌入式处理器:
- 嵌入式微处理器;
- 嵌入式微控制器;
- 嵌入式DSP处理器;
- 嵌入式片上系统。
- 嵌入式操作系统:
- 嵌入式Linux;
- VxWorks;
- C/OS-;
- Windows CE;
- Symbian;
- Android & iOS
- 嵌入式Linux操作系统特点:
- 广泛的硬件支持
- 内核高效稳定
- 开放源码,软件丰富
- 优秀的开发工具
- 完善的网络通信和文件管理机制
- VxWorks特点:
- 高度可靠
- 高实时性
- 可裁剪性好
- ARM处理器模式:
- 用户模式 程序正常执行
- 系统模式 运行特权级的操作系统任务 特权模式
- 管理模式 操作系统的保护模式 特权异常模式
- 未定义模式 支持软件仿真 特权异常模式
- 快中断模式 高速数据传输和通道处理 特权异常模式
- 外部中断模式 普通的外部中断请求处理 特权异常模式
- 数据访问中止模式 虚拟存储和存储保护 特权异常模式
- ARM处理器特点:
- 体积小、低功耗、低成本、高性能;
- 支持Thumb/ARM双指令集,兼容8位/16位器件;
- 指令执行速度快(大量使用寄存器);
- 大多数数据都在寄存器中完成;
- 寻址方式灵活简单,执行效率高;
- 采用固定长度的指令格式。
- ARM-Linux内核特点:
- 可移植性
- 可量测性
- 可靠稳定安全性
- 标准化和互用性
- 完善的网络支持
- 模块化
- 编程容易
- ARM-Linux内核组成:
- 进程调度程序
- 内存管理程序
- 虚拟文件系统
- 网络接口
- 进程间通信
- 不分组寄存器:R0~R7
堆栈指针SP R13:
链接寄存器LR R14:存放当前子程序的返回地址;保存PC的返回地址。
程序计数器R 15:保存处理器取值地址。
当前程序状态寄存器CPSR
- Boot Loader的阶段1通常包括以下步骤
- 硬件设备初始化
- 为加载Boot Loader的阶段2准备RAM空间。
- 复制Boot Loader的阶段2到RAM空间。
- 设置好堆栈。
- 跳转到阶段2的C 入口点。
- Boot Loader的阶段2通常包括以下步骤
- 初始化本阶段要使用到的硬件设备。
- 检测系统内存映射。
- 将Kernel映像和根文件系统映像从Flash读到RAM空间中。
- 为内核设置启动参数。
- 调用内核。
- 冯诺依曼体系结构:运算器、控制器、存储器、输入设备、输出设备。
由一个CPU和一个存储器组成。数据和指令都存在一个存储器中的计算机。
- 哈佛体系结构:为数据和程序提供了各自独立的存储器,程序计数器只指向程序存储器而不指向数据存储器。
- 虚拟内存:
- 地址映射机制
- 请求页机制
- 内存分配回收机制
- 缓存和刷新机制
- 交换机制
- 内存共享机制
- 根文件系统顶层目录:
- bin 所有用户可以使用的基本命令
- sbin 基本的系统命令
- dev 系统配置文件
- usr 共享只读的程序和数据
- lib 共享库和可加载块
- var 可变数据
- boot 引导程序使用的静态文件
- proc 空目录,proc文件系统的挂载点
- mnt 空目录,临时挂接某个文件系统的挂接点
- tmp 空目录,临时文件
- home 用户主目录
- root root用户的主目录
- opt 主机额外安装软件
- GCC编译过程
- 预编译gcc -E
- 编译 gcc -S
- 汇编 gcc -O
- 链接 gcc -l
- 嵌入式硬件开发的阶段:
- 应用分析和设计
- PCB设计和仿真
- PCB的制作和测试
- 计算机接口的通信速率取决于信号线数量和时钟频率。
- 在arm的存储格式中,有大端格式和小端格式之分。低位字节存储在低位地址,是小端
- 原子操作就是不可再被分割的操作。在操作完成之前,不会被其它操作中断。
- gdb : C/C++ , Java , FORTRAN , Modula-2
- 嵌入式GUI设计原则:
- 可移植性
- 较高的稳定性和可靠性
- 系统开销少
- 较高配置性
- 字符设备(直接读写,不缓冲):/dev/cua0
块设备(以块为单位读写):文件系统
网络设备
- 主设备号:种类&使用的驱动程序。
次设备号:同一驱动程序的不同硬件设备。
- 建立根文件系统?
- 准备制作工具
- 建立根文件系统目录。
- 准备动态连接库。
- 编译busyBox。
- 移植bash。
- 生成镜像。
- RAM有两大类:SRAM、DRAM。Cache采用的是SRAM类型的RAM。
- 问题:32位形成4GB地址空间?1GB=?bit
什么是基址寄存器,通用寄存器
堆栈指针SP R13:
链接寄存器LR R14:存放当前子程序的返回地址;保存PC的返回地址。
程序计数器R 15:保存处理器取值地址。
当前程序状态寄存器CPSR
由一个CPU和一个存储器组成。数据和指令都存在一个存储器中的计算机。
块设备(以块为单位读写):文件系统
网络设备
次设备号:同一驱动程序的不同硬件设备。
什么是基址寄存器,通用寄存器
- ARM7流水线:采用3级指令流水线,三个阶段分别为:取址、译码、执行
- 嵌入式系统的特点
- 1) 与应用密切相关,执行特定的功能
- 2) 嵌入式系统都是实时系统,有时限要求
- 3) 嵌入式操作系统一般为多任务实时操作系统
- 4) 系统可靠性要求高(因为使用环境可能很恶劣)
- 5) 具有功耗约束
- 6) 嵌入式系统本身不具备自举开发能力,需要交叉开发环境和调试工具
- 7) 系统资源紧缺
- 1.嵌入式系统的特点。
- 嵌入性、专用性、计算机系统。
- 1.系统内核小。2.专用性强。3.运行环境差异大。4.可靠性要求高。5.系统精简和高实时性操作系统。6.具有固化在非易失性存储器中的代码。7.嵌入式系统开发工作和环境。
- 2.嵌入式系统的功能。
- 1.提供强大的网络服务。2.小型化、低成本、低功耗。3.人性化的人机界面。4.完善的开发平台
- 3.嵌入式的应用。
- 1.工业过程控制。2.网络通信设备。3.消费电子产品。4.航空航天设备。5.军事电子设备和现代武器
- 4.HAL,BSP,RTOS,PDA的中文含义。
- HAL:硬件抽象层
- BSP:板级支持包
- RTOS:实时多任务操作系统、实时操作系统
- PDA:非实时操作系统
- 第二章 ARM微处理器
- 1.ARM微处理器的特点。
- 1.小体积、低功耗、低成本、高性能;2.支持Thumb(16位)/ARM(32位)双指令集,能很好地兼容8位/16位器件;3.大量使用寄存器,指令执行速度更快;4.大多数数据操作都在寄存器中完成;5.寻址方式灵活简单,执行效率高;6.指令长度固定。
- 2.ARM7和ARM9的区别
- 1.时钟频率的提高,ARM7是冯诺伊曼结构,ARM9是哈弗结构;2.指令周期的改进;3.MMU内存管理单元,ARM9有MMU;4.ARM7比ARM9提供了更好的性能——功耗比;5.ARM9能够很好的向后兼容ARM7上的软件。
- 3.ARM微处理器的结构,两个指令集状态的区别、转换
- ARM微处理器的结构
- CISC: 随着计算机技术的发展而不断地引入新的复杂的指令集,为支持新增的指令,计算机体系结构会越来越复杂,但,在CISC指令集的各种指令中,其使用频率却相差悬殊;
- RISC:精简指令集计算机
- 1.采用固定长度的指令格式。
- 2.使用单周期指令,便于流水线操作执行。
- 3.大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率。
- 4.在保证高性能的前提下尽量缩小芯片的面积,并降低功耗。
- 5.所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率。
- 6.可用加载/存储指令批量处理数据,以提高数据的传输效率。
- 7.可在一条数据处理指令中同时完成逻辑逻辑处理和移位处理。
- 8.在循环处理中使用地址的自动增减来提高运行效率。
- 两个指令集状态的区别:
- ARM指令为32位的长度,Thumb指令为16位长度;Thumb指令集为ARM指令集的功能子集,与等价的ARM代价相比较,可节省30%——40%以上的存储空间,同时具备32位代码的所有优点。
- 转换:
- 进入Thumb状态:当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令的方法,使微处理器从ARM状态切换到Thumb状态。此外,当处理器处于Thumb状态时发生异常(如IRQ、FIQ、Undef、Abort、SWI等),则异常处理返回时,自动切换到Thumb状态。
- 进入ARM状态:当操作数寄存器的状态位为0时,执行BX指令时可以使微处理器从Thumb状态切换到ARM状态。此外,在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。
- 4.ARM寄存器结构
- 1.ARM处理器共有37个寄存器,31个通用寄存器,包括程序计数器(PC指针),均为32位的寄存器。
- 2.6个状态寄存器,用以标识CPU的工作状态及程序的状态,均为32位,目前只使用于其中的一部分。
- 5.两种存储格式(大端格式、小端格式)
- 1.大端格式:字数据的高字节存储在低地址中,地-高
- 2.小端格式:低地址中存放的是字数据的低地址。
- 6.MMU的主要功能
- 1.将主存地址从虚拟存储空间映射到物理存储空间。
- 2.存储器访问权限控制。
- 3.设置虚拟存储空间的缓冲特性。
- 7.处理器的模式(每个模式下的寄存器使用情况)
- ARM微处理器支持7种运行模式:
- 1.用户模式usr:ARM处理器正常的程序执行状态。
- 2.快速中断模式fiq:用于高速数据传输或通道处理。
- 3.外部中断模式irq:用于通用的中断处理。
- 4.管理模式svc:操作系统使用的保护模式。
- 5.数据访问终止模式abt:当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。
- 6.系统模式sys:运行具有特权的操作系统任务。
- 7.未定义指令终止模式und:当未定义的指令执行时进入该模式,可用于支持硬件协处理的软件仿真。
- 除用户模式以外,其余的所有6种模式称之为非用户模式或特权模式;
- 其中除 用户模式 和 系统模式 以外的5种又称为异常模式,常用于处理中断或异常,以及需要访问受保护的系统资源情况。
- 1.用户模式usr:R0-R15、CPSR
- 2.快速中断模式fiq:R0-R15、CPSR、SPSR_irq
- 3.外部中断模式irq:R0-R5、CPSR、SPSR_irq
- 4.管理模式svc:R0-R5、CPSR、SPSR_svc
- 5.数据访问终止模式abt:R0-R5、CPSR、SPSR_abt
- 6.系统模式sys:R0-R15、CPSR
- 7.未定义指令终止模式und:R0-R5、CPSR、SPSR_und
- 第三章 ARM9的指令系统
- 1.ARM处理器的寻址方式(8种)
- 1.寄存器寻址;
- 2.立即寻址
- 3.寄存器间接寻址
- 4.变址寻址
- 5.寄存器移位寻址
- 6.多寄存器寻址
- 7.堆栈寻址
- 8.相对寻址
- 2.堆栈四种工作方式
- 满递增方式、满递减方式、空递增方式、空递减方式
- 3.条件码的含义
- 条件码共有16种,每种条件码可用两个字符表示,这两个字符可以添加在指令祝记符的后面和指令同时使用
- 4.ARM存储器访问指令(LDR、LDRB、LDRH、STR、STRB、STRH)
- 嵌入式系统:监视、控制或辅助设备、机器和车间运行的装置。
-
- MMU(内存管理单元)的主要作用:地址映射;对地址访问的保护和限制。
-
- JTAG:测试线路连线和端子的连接状态。设备间的连接状态。Flash memory烧写。
-
- Boot Loader:系统加电后运行的第一段代码。操作系统运行前执行的一小段程序。
-
- Boot Loader功能:初始化硬件设备,创建内核需要的信息等,调用操作系统内核。
-
- 编译:高级语言编写的应用程序转化成运行该程序的CPU所能识别的机器代码。
-
- 交叉编译:在一个架构的机器下编译另一个架构的目标文件。
-
- 交叉开发环境:利用宿主机上已有的成熟的开发工具,专门针对目标板定制一套系统,包括引导程序、内核和文件系统,然后下载到目标板上运行。
-
- 嵌入式处理器:
-
- 嵌入式微处理器;
- 嵌入式微控制器;
- 嵌入式DSP处理器;
- 嵌入式片上系统。
- 嵌入式操作系统:
- 嵌入式Linux;
- VxWorks;
- C/OS-;
- Windows CE;
- Symbian;
- Android & iOS
- 嵌入式Linux操作系统特点:
- 广泛的硬件支持
- 内核高效稳定
- 开放源码,软件丰富
- 优秀的开发工具
- 完善的网络通信和文件管理机制
- VxWorks特点:
- 高度可靠
- 高实时性
- 可裁剪性好
- ARM处理器模式:
- 用户模式 程序正常执行
- 系统模式 运行特权级的操作系统任务 特权模式
- 管理模式 操作系统的保护模式 特权异常模式
- 未定义模式 支持软件仿真 特权异常模式
- 快中断模式 高速数据传输和通道处理 特权异常模式
- 外部中断模式 普通的外部中断请求处理 特权异常模式
- 数据访问中止模式 虚拟存储和存储保护 特权异常模式
- ARM处理器特点:
- 体积小、低功耗、低成本、高性能;
- 支持Thumb/ARM双指令集,兼容8位/16位器件;
- 指令执行速度快(大量使用寄存器);
- 大多数数据都在寄存器中完成;
- 寻址方式灵活简单,执行效率高;
- 采用固定长度的指令格式。
- ARM-Linux内核特点:
- 可移植性
- 可量测性
- 可靠稳定安全性
- 标准化和互用性
- 完善的网络支持
- 模块化
- 编程容易
- ARM-Linux内核组成:
- 进程调度程序
- 内存管理程序
- 虚拟文件系统
- 网络接口
- 进程间通信
- 不分组寄存器:R0~R7
- Boot Loader的阶段1通常包括以下步骤
- 硬件设备初始化
- 为加载Boot Loader的阶段2准备RAM空间。
- 复制Boot Loader的阶段2到RAM空间。
- 设置好堆栈。
- 跳转到阶段2的C 入口点。
- Boot Loader的阶段2通常包括以下步骤
- 初始化本阶段要使用到的硬件设备。
- 检测系统内存映射。
- 将Kernel映像和根文件系统映像从Flash读到RAM空间中。
- 为内核设置启动参数。
- 调用内核。
- 冯诺依曼体系结构:运算器、控制器、存储器、输入设备、输出设备。
- 哈佛体系结构:为数据和程序提供了各自独立的存储器,程序计数器只指向程序存储器而不指向数据存储器。
- 虚拟内存:
- 地址映射机制
- 请求页机制
- 内存分配回收机制
- 缓存和刷新机制
- 交换机制
- 内存共享机制
- 根文件系统顶层目录:
- bin 所有用户可以使用的基本命令
- sbin 基本的系统命令
- dev 系统配置文件
- usr 共享只读的程序和数据
- lib 共享库和可加载块
- var 可变数据
- boot 引导程序使用的静态文件
- proc 空目录,proc文件系统的挂载点
- mnt 空目录,临时挂接某个文件系统的挂接点
- tmp 空目录,临时文件
- home 用户主目录
- root root用户的主目录
- opt 主机额外安装软件
- GCC编译过程
- 预编译gcc -E
- 编译 gcc -S
- 汇编 gcc -O
- 链接 gcc -l
- 嵌入式硬件开发的阶段:
- 应用分析和设计
- PCB设计和仿真
- PCB的制作和测试
- 计算机接口的通信速率取决于信号线数量和时钟频率。
- 在arm的存储格式中,有大端格式和小端格式之分。低位字节存储在低位地址,是小端
- 原子操作就是不可再被分割的操作。在操作完成之前,不会被其它操作中断。
- gdb : C/C++ , Java , FORTRAN , Modula-2
- 嵌入式GUI设计原则:
- 可移植性
- 较高的稳定性和可靠性
- 系统开销少
- 较高配置性
- 字符设备(直接读写,不缓冲):/dev/cua0
- 主设备号:种类&使用的驱动程序。
- 建立根文件系统?
- 准备制作工具
- 建立根文件系统目录。
- 准备动态连接库。
- 编译busyBox。
- 移植bash。
- 生成镜像。
- RAM有两大类:SRAM、DRAM。Cache采用的是SRAM类型的RAM。
- 问题:32位形成4GB地址空间?1GB=?bit
- ARM7流水线:采用3级指令流水线,三个阶段分别为:取址、译码、执行
- 嵌入式系统的特点
- 1) 与应用密切相关,执行特定的功能
- 2) 嵌入式系统都是实时系统,有时限要求
- 3) 嵌入式操作系统一般为多任务实时操作系统
- 4) 系统可靠性要求高(因为使用环境可能很恶劣)
- 5) 具有功耗约束
- 6) 嵌入式系统本身不具备自举开发能力,需要交叉开发环境和调试工具
- 7) 系统资源紧缺
- 1.嵌入式系统的特点。
- 嵌入性、专用性、计算机系统。
- 1.系统内核小。2.专用性强。3.运行环境差异大。4.可靠性要求高。5.系统精简和高实时性操作系统。6.具有固化在非易失性存储器中的代码。7.嵌入式系统开发工作和环境。
- 2.嵌入式系统的功能。
- 1.提供强大的网络服务。2.小型化、低成本、低功耗。3.人性化的人机界面。4.完善的开发平台
- 3.嵌入式的应用。
- 1.工业过程控制。2.网络通信设备。3.消费电子产品。4.航空航天设备。5.军事电子设备和现代武器
- 4.HAL,BSP,RTOS,PDA的中文含义。
- HAL:硬件抽象层
- BSP:板级支持包
- RTOS:实时多任务操作系统、实时操作系统
- PDA:非实时操作系统
- 第二章 ARM微处理器
- 1.ARM微处理器的特点。
- 1.小体积、低功耗、低成本、高性能;2.支持Thumb(16位)/ARM(32位)双指令集,能很好地兼容8位/16位器件;3.大量使用寄存器,指令执行速度更快;4.大多数数据操作都在寄存器中完成;5.寻址方式灵活简单,执行效率高;6.指令长度固定。
- 2.ARM7和ARM9的区别
- 1.时钟频率的提高,ARM7是冯诺伊曼结构,ARM9是哈弗结构;2.指令周期的改进;3.MMU内存管理单元,ARM9有MMU;4.ARM7比ARM9提供了更好的性能——功耗比;5.ARM9能够很好的向后兼容ARM7上的软件。
- 3.ARM微处理器的结构,两个指令集状态的区别、转换
- ARM微处理器的结构
- CISC: 随着计算机技术的发展而不断地引入新的复杂的指令集,为支持新增的指令,计算机体系结构会越来越复杂,但,在CISC指令集的各种指令中,其使用频率却相差悬殊;
- RISC:精简指令集计算机
- 1.采用固定长度的指令格式。
- 2.使用单周期指令,便于流水线操作执行。
- 3.大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率。
- 4.在保证高性能的前提下尽量缩小芯片的面积,并降低功耗。
- 5.所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率。
- 6.可用加载/存储指令批量处理数据,以提高数据的传输效率。
- 7.可在一条数据处理指令中同时完成逻辑逻辑处理和移位处理。
- 8.在循环处理中使用地址的自动增减来提高运行效率。
- 两个指令集状态的区别:
- ARM指令为32位的长度,Thumb指令为16位长度;Thumb指令集为ARM指令集的功能子集,与等价的ARM代价相比较,可节省30%——40%以上的存储空间,同时具备32位代码的所有优点。
- 转换:
- 进入Thumb状态:当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令的方法,使微处理器从ARM状态切换到Thumb状态。此外,当处理器处于Thumb状态时发生异常(如IRQ、FIQ、Undef、Abort、SWI等),则异常处理返回时,自动切换到Thumb状态。
- 进入ARM状态:当操作数寄存器的状态位为0时,执行BX指令时可以使微处理器从Thumb状态切换到ARM状态。此外,在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。
- 4.ARM寄存器结构
- 1.ARM处理器共有37个寄存器,31个通用寄存器,包括程序计数器(PC指针),均为32位的寄存器。
- 2.6个状态寄存器,用以标识CPU的工作状态及程序的状态,均为32位,目前只使用于其中的一部分。
- 5.两种存储格式(大端格式、小端格式)
- 1.大端格式:字数据的高字节存储在低地址中,地-高
- 2.小端格式:低地址中存放的是字数据的低地址。
- 6.MMU的主要功能
- 1.将主存地址从虚拟存储空间映射到物理存储空间。
- 2.存储器访问权限控制。
- 3.设置虚拟存储空间的缓冲特性。
- 7.处理器的模式(每个模式下的寄存器使用情况)
- ARM微处理器支持7种运行模式:
- 1.用户模式usr:ARM处理器正常的程序执行状态。
- 2.快速中断模式fiq:用于高速数据传输或通道处理。
- 3.外部中断模式irq:用于通用的中断处理。
- 4.管理模式svc:操作系统使用的保护模式。
- 5.数据访问终止模式abt:当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。
- 6.系统模式sys:运行具有特权的操作系统任务。
- 7.未定义指令终止模式und:当未定义的指令执行时进入该模式,可用于支持硬件协处理的软件仿真。
- 除用户模式以外,其余的所有6种模式称之为非用户模式或特权模式;
- 其中除 用户模式 和 系统模式 以外的5种又称为异常模式,常用于处理中断或异常,以及需要访问受保护的系统资源情况。
- 1.用户模式usr:R0-R15、CPSR
- 2.快速中断模式fiq:R0-R15、CPSR、SPSR_irq
- 3.外部中断模式irq:R0-R5、CPSR、SPSR_irq
- 4.管理模式svc:R0-R5、CPSR、SPSR_svc
- 5.数据访问终止模式abt:R0-R5、CPSR、SPSR_abt
- 6.系统模式sys:R0-R15、CPSR
- 7.未定义指令终止模式und:R0-R5、CPSR、SPSR_und
- 第三章 ARM9的指令系统
- 1.ARM处理器的寻址方式(8种)
- 1.寄存器寻址;
- 2.立即寻址
- 3.寄存器间接寻址
- 4.变址寻址
- 5.寄存器移位寻址
- 6.多寄存器寻址
- 7.堆栈寻址
- 8.相对寻址
- 2.堆栈四种工作方式
- 满递增方式、满递减方式、空递增方式、空递减方式
- 3.条件码的含义
- 条件码共有16种,每种条件码可用两个字符表示,这两个字符可以添加在指令祝记符的后面和指令同时使用
- 4.ARM存储器访问指令(LDR、LDRB、LDRH、STR、STRB、STRH)