嵌入式系统原理与设计笔记

目录

    • 1、嵌入式系统介绍
    • 2、嵌入式微处理器之ARM微处理器
    • 3、ARM9有37个寄存器
    • 4、ARM9采用哈佛结构
    • 5、ARM9的MMU内存管理单元
    • 6、ARM9异常处理
    • 7、ARM指令的寻址包括9种
    • 8、Linux的MMU作用
    • 9、进程管理
    • 10、文件系统
    • 11、Boot Loader嵌入式系统引导代码
    • 12、Linux内核
    • 13、模块的加载
    • 14、模块的卸载
    • 15、ARMLinux系统的启动和初始化
    • 16、嵌入式文件系统
    • 17、驱动层
    • 18、设备驱动
    • 19、主设备和次设备号
    • 20、Linux设备驱动代码的分布
    • 21、DMA直接内存存取
    • 22、交叉开发。

1、嵌入式系统介绍

嵌入式系统是以应用为中心,以计算机技术为基础,采用可剪裁软硬件,适用于对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统。由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。

2、嵌入式微处理器之ARM微处理器

两种指令集:CISC 复杂指令集和RISC 精简指令集
引入Thumb16位指令集,是压缩指令集,运行没有ARM快,但是节省空间。
ARM处理器可以在AMR指令集和Thumb指令集状态下进行切换

3、ARM9有37个寄存器

包括31个通用寄存器和6个ARM处理器。ARM总共有7种不同的处理器模式,分别为用户模式,快速中断模式,外部中断模式,管理模式,数据访问中止模式,未定义指令中止模式,系统模式。

4、ARM9采用哈佛结构

指令存储和数据存储是分开的,采用存储器地址对齐。

5、ARM9的MMU内存管理单元

实现虚拟内存,就是程序,数据,堆栈的总大小可以超过实际可用的物理内存大小,实现方式就是把需要运行的部分送到内存,而其他未使用的部分保存在磁盘上,这个调度是由操作系统来做的。需要有中转站FCSE附加硬件,将虚拟地址转换为修改的虚拟地址。

6、ARM9异常处理

总共有7种处理异常,复位异常,未定义指令异常,软件中断异常,指令预取终止异常,数据访问终止异常,外部中断请求被触发,快速中断请求被触发。

7、ARM指令的寻址包括9种

立即寻址,寄存器寻址,寄存器偏移寻址,寄存器间接寻址,基址变址寻址,多寄存器寻址,堆栈寻址,相对寻址。

8、Linux的MMU作用

一是地址映射,二是对地址访问的保护和限制。虚拟地址被送到MMU,把虚拟地址映射为物理地址。

9、进程管理

进程是由进程标识符PID表示的,三种进程调度策略,包括分时调度策略,先到先服务的实时调度策略,时间片轮转的实时调度策略。

10、文件系统

Rootf根文件系统,嵌入式系统一般从Flash启动,最简单的方法是将Rootf装载到RAM的RamDisk。
主要的存储设备为RAM和ROM,采用Flash存储器。

11、Boot Loader嵌入式系统引导代码

由汇编和c语言联合编写而成。初始化硬件设备和建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。

12、Linux内核

技术上指的是一个提供硬件抽象层,磁盘及文件系统控制,多任务等功能的系统软件。

13、模块的加载

方法一,通过insmod命令手工将module载入内核。方法二,根据需要载入module(demand loaded module)。

14、模块的卸载

正在使用的模块不能被卸载。系统调用module的cleanup子程序,释放内核资源,修改reference list,释放分配给该module的内核内存。

15、ARMLinux系统的启动和初始化

使用Boot Loader将内核映像载入,内核数据结构初始化内核引导和外设初始化,加载init进程和inittab脚本,启动运行rc启动脚本,shell的启动。

16、嵌入式文件系统

Linux中文件系统具有树结构,新mount进来的文件系统被添加到这个树结构。所有的文件系统无论什么形式都可以被mount到目录里,文件系统内的文件构成这个目录的内容。

17、驱动层

所有嵌入式系统的启动都至少需要使用某种形式的永久性存储设备,他们需要合适的驱动程序,当前在嵌入式Linux中三种常用的块驱动程序可以选择,包括Blkmem驱动层,RamDisk驱动层,MTD驱动层。

18、设备驱动

三类硬件设备,包括字符设备,块设备和网络设备。

19、主设备和次设备号

#  mknod /dev/lp0 c 6 0

使用mknod命令可以创建指定类型的设备文件,同时为其分配相应的主设备号和次设备号,生成设备文件要以root权限用户访问。/dev/lp0 是设备号,c表示字符设备,b表示块设备,6是主设备号,0是次设备号。次设备号可以是0-255之间的值。

20、Linux设备驱动代码的分布

    block 块设备驱动
    char 字符设备驱动
    cdrom包含了所有的CDROM代码,CDROM设备
    pci为PCI伪设备驱动源码
    scsi 为SCSI设备驱动
    net网络驱动源码
    sound所有声卡驱动源码

21、DMA直接内存存取

解决快速数据访问的有效方法。DMA控制器可以不需要处理器的干预,在设备和系统内存高速传输数据,提高了与设备通信的吞吐量,免除大量计算开销。DMA控制器由主存地址寄存器,数据数量寄存器,DMA的控制/状态逻辑,DMA请求触发器,数据缓存寄存器和终端结构。

22、交叉开发。

你可能感兴趣的:(嵌入式)