兆芯(9月19)

BIOS:基本输入输出系统,保存着计算机最重要的基本输入输出程序,开机后自检程序和系统自启动程序

主要业务和目标是研发基于国产X86架构的CPU、GPU和芯片的

X86架构:微处理器执行的计算机语言指令集

BootLoader:嵌入式系统上电后执行的第一段代码,在嵌入式系统中,通常没有像BIOS那样的固件程序,因此bootloader是在操作系统内核运行之前执行,可以初始化硬件设备、建立内存空间映射,就是把系统的软硬件环境带到一个合适的状态,为最终调用操作系统内核准备好正确的环境

内存管理

  • mmu(内存管理单元):管理虚拟存储器,物理存储器的控制线路,虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权

  • 虚拟存储,只把当前运行进程的页表驻留在内存中,其它进程页表不必驻留在内存中,在需要时进行页的置换

  • 为每个进程提供了一致的地址空间,简化了存储器管理
  • 虚拟存储器都是使用分页,内存被分成大小固定相等的称为页的块,且块相对比较小,每个进程也被分同同样大小的小块,称为页框,进程中的页就可以指定到内存中的页框;减少内存碎片
  • 分段:可以把程序和其相关的数据分到几个段中,段的大小可以不等,类似于动态分区,不要求连续

  • 虚拟寻址,CPU生成一个虚拟地址来访问主存,虚拟地址需要经过mmu地址翻译为物理地址

  • 页表:将虚拟页映射到物理页,mmu将虚拟地址转换成物理地址时都会读取页表,操作系统为系统中的每个进程都维护一个独立
    的页表
  • 虚拟地址由虚拟页号和虚拟页偏移量组成,虚拟页号作为到页表的索引,将页表中的物理页号和虚拟页偏移量加起来就得到了物理地址

文件系统:操作系统中负责管理和存储文件的软件结构,为应用程序和用户访问文件的功能接口,也是唯一方式

进程管理:

用户模式,快速中断模式,外部中断模式,特权模式

37个32位寄存器,31个通用寄存器,6个状态寄存器

寄存器R13是做堆栈指针,
寄存器R14(lr):用作连接寄存器,用于保存函数的返回地址
寄存器R15是程序计数器,存放下一条要执行指令的地址

通过R0~R3来传递参数,R4~R11用来保存局部变量,

(R16)CPSR:当前程序状态寄存器
SPSR:备份程序状态寄存器

ARM异常类型:复位异常,软件中断,IRQ,FIQ

FIQ省去了中断过程的一条跳转指令,FIQ的向量地址紧接中断向量表存放,中断向量表后就是程序代码

SPI IIC

  • SPI是四信号线协议,SCK(时钟线),MOSI和MISO(数据线),从设备片选信号线;
  • 高速全双工同步通信总线,
  • SPI是单主设备通信协议,当SPI主设备向读/写从设备时,它首先拉低从设备的SS线,然后将读/写信号发到MISO(实现读)和MOSI(实现写)
  • 外设的读和写是同步进行的
  • CPOL(时钟极性)=0,串行时钟空闲状态为0
  • CPHA(时钟相位)=0,串行时钟的第一个跳变沿数据被采样
  • SPI不规定最大传输速率,没规定通信应答机制,没有规定流控制规则

  • IIC是多主设备的总线,高速同步半双工通信总线,两线式串行总线

  • 每个IIC设备都有一个地址;数据帧大小为8位的字节,数据帧中某些数据位用于控制通信的开始、停止和应答
  • 主设备发一个开始信号,主设备发送一个7位从设备地址加一位读写操作的数据帧;当从设备收到数据后,比对地址是否为目标设备,如果比对相符,设备会发送一个应答信号给主设备;主设备收到应答便开始传输数据;数据发送完毕,主设备发送一个stop信号,释放总线
  • START:SCl为高,SDA由高电平变为低电平;
  • STOP:SCL为高,SDA由低电平变为高电平

对比

  • IIC两根信号线,SPI四根信号线,多个从设备信号线需要更多,IIC构建系统总线的唯一问题是有限的7位地址空间,新标准使用10位地址
  • SPI高速数据传输,甚至到10Mbps

进程通信

  • 管道
  • 信号
  • 信号量
  • 共享内存
  • 消息队列

线程同步:

  • 临界区(关键代码段):单个进程中线程间的同步
  • 事件:
  • 互斥对象
  • 信号量

进程:具有一定独立功能的程序加载到内存执行得到一个实体,进程是操作系统资源分配的基本单元;
线程:线程是进程的一个实体,是CPU调度的基本单元;线程自己基本上不拥有系统资源,只拥有一点运行必不可少的资源(栈,程序计数器),但是它和同属一个进程的其他线程共享进程的全部资源。一个线程可以创建和撤销另一个线程

猜你喜欢

转载自blog.csdn.net/qq_34121068/article/details/78022383