5.软件编程控制硬件的关键-寄存器
2019-07-09 本文已影响0人
辉神来了
什么是寄存器
- 寄存器属于 CPU 外设的硬件组成部分
- CPU 可以像访问内存一样访问寄存器
- 寄存器是CPU的硬件设计者制定的,目的是留作外设被编程控制的“活动开关 ”
- 正如汇编指令集是CPU的编程接口api一样,寄存器是外设硬件的软件编程接口api,使用软件编程控制某一硬件,其实就是编程读写该硬件的寄存器
寄存器的演示
- 编程操作寄存器类似于访问内存
-寄存器中每个bit位都有特定的含义,因此编程操作时2需要位操作 - 单个寄存器的位宽一般和CPU的位宽一样,以实现最佳访问效率
两类寄存器
- SOC 中有2类寄存器;通用寄存器和 SFR
- 通用寄存器(ARM 中有37个)是CPU 的组成部分,CPU 的很多活动都需要通过寄存器的支持和参与
- SFR(special function register,特殊功能寄存器)不在CPU中,而存在于CPU的外设中,我们通过访问外设的SFR来编程操作这个外设,这就是硬件编程控制的方法
编程访问寄存器的方法
ldr r1 , =0xE0200280
str r0, [r1]
mov r0 #0
int *p = (int *)0x30008000
*p = 16;