【1】半导体器件的开关特性
二极管:正向导通
三极管:区分NPN和PNP
NPN:B极高电平,三极管导通,电压方向C->E
PNP: B极低电平,三极管导通,电压方向E->C
MOS管:区分N沟道和P沟道
N沟道:G极高电平,MOS管导通,通常S极接地
P沟道:G极低电平,MOS管导通,通常S极接Vcc
【2】逻辑运算和位运算
与运算:与0清零
或运算:或1置1
异或: 异或1取反
位运算:(重点)
& | ~ << >>
int a;
1. 将a的第3位置1
0000 0000 ... 1000 0x8 0x1<<3
a = a | 0x8; ==> a = a | (0x1<<3);
2. 将a的第三位清零
1111 1111 ... 0111 ~(0x1<<3)
a = a & 0xfffffff7; ==> a = a & (~(0x1<<3)); // a = a & (0x0<<3); 错误
3. 将a的第2位和第3位置1 0000 0000 ... 1100 0x3<<2
a = a | (0x1<<2) | (0x1<<3); ==> a = a | (0x3<<2);
4. 将a的第2位和第3位清零 ~(0x3<<2)
a = a & (~(0x1<<2));
a = a & (~(0x1<<3)); ==> a = a & (~(0x3<<2));
位运算练习:
2. 将a的第2位和第3位先清零然后置1
a = a & (~(0x3<<2)) | (0x3<<2); [1]
3. 将a的第5、4、3、2这四个位设置为 0101 位域 [5:2]: 0001 ....
5432 0111 .....
a = a & (~(0xf<<2)); *************0000** 先清零
a = a | (0x5<<2); *************0101** 再设置
【3】计算机组成原理
存储器: 三级存储系统
主存储器(内存): 在cpu统一编址的范围内
存放正在运行的程序和数据
内存条 RAM SDRAM SRAM DRAM
特点:掉电易失 速度快 价格贵 容量小 cpu可以直接访问
辅助存储器:
存放暂时不参加运行的程序和数据
硬盘、磁盘 ROM flash nandFlash norflash emmc
特点:掉电不易失 速度慢 价格便宜 容量大 cpu不可以直接访问
高速缓冲器(cache):
存放正在运行的程序中比较活跃的部分
特点:掉电易失 速度更快 价格更贵 容量更小
运算器:ALU
计算机的总线结构
总线是一组能为多个部件服务的公共信息传送线路,它能分时地发送与接收各部件的信息。
ARM体系结构
ARM 约定:
Byte : 8 bits
Halfword : 16 bits (2 byte)
Word : 32 bits (4 byte) 字
所有处理器按照指令集架构进行分类:
1. 精简指令集处理器 RISC 指令少 功能弱 指令定长
arm
2. 复杂指令集处理器 CISC 指令多 功能多 指令不定长
x86
大部分ARM core 提供:
ARM 指令集(32-bit) 代码(指令)密度小
Thumb 指令集(16-bit ) 代码(指令)密度大
【4】arm处理器的两种状态
当处理器执行在ARM状态:
所有指令 32 bits 宽
所有指令必须 word 对齐
所以 pc值由bits [31:2]决定, bits [1:0] 未定义 (所以指令不能halfword / byte对齐).
当处理器执行在Thumb状态:
所有指令 16 bits 宽
所有指令必须 halfword 对齐
所以 pc值由bits [31:1]决定, bits [0] 未定义 (所以指令不能 byte对齐).
第一条指令 0x0000 0000 ... 0000
第二条指令 0x0000 0004 ... 0100
第三条指令 0x0000 0008 ... 1000
0x0000 000c ... 1100
0x0000 0010 ... 0000
【5】arm处理器工作模式
ARM 有8个基本工作模式:
User : 非特权模式,大部分任务执行在这种模式
FIQ : 当一个高优先级(fast) 中断产生时将会进入这种模式
IRQ : 当一个低优先级(normal) 中断产生时将会进入这种模式
Svc : 当复位或软中断指令执行时将会进入这种模式
Abort : 当存取异常时将会进入这种模式
Undef : 当执行未定义指令时会进入这种模式
Sys : 使用和User模式相同寄存器集的特权模式
Cortex-A特有模式:
Monitor : 是为了安全而扩展出的用于执行安全监控代码的模式;
也是一种特权模式
1. user是非特权模式,其他7种模式都是特权模式
2. 除了user、sys、monitor其他5种模式称为异常模式
异常模式 fiq irq svc abort undef
异常源 FIQ IRQ Reset/SWI Data Abort/Prefetch Abort Undefined instruction
reset的优先级最高 FIQ的优先级比IRQ高
【7】arm处理器的工作寄存器 - 处理器内部的存储器
ARM 有37个32-Bits长的寄存器. Cortex体系结构下有40个32-Bits长的寄存器
1 个用作PC( program counter)
1个用作CPSR(current program status register)
5个用作SPSR(saved program status registers)
30 个通用寄存器
相应的 r13 (the stack pointer, sp) 栈指针寄存器 存放本模式下的栈的栈顶地址
r14 (the link register, lr) 链接寄存器 保存返回地址
相应的 r15 ( the program counter, pc) 保存下一条将要执行的指令的地址 pc = lr
相应的CPSR(current program status register, cpsr) 保存当前程序的状态 (当前工作模式,处理器状态,ALU的值)
相应的 spsr (saved program status register) 用来备份cpsr寄存器的