欢迎光临散文网 会员登陆 & 注册

(基于ARM的)微机原理与接口技术笔记(4)

2021-10-04 12:48 作者:会整活的剑人  | 我要投稿

(基于ARM的)微机原理与接口技术笔记(4)

物理上37个register 逻辑上R0-R15

r13 栈指针(SP)

r15 程序指针(PC)

ARM状态:32bit宽指令

Thumb状态:16bit指令

r14 链接寄存器 储存函数返回等.

cpsr 程序状态寄存器 当前cpu的模式 状态

低5位[4:0]模式[5] ARM/Thumb [6]禁止快中断位 [7]禁止中断位

[31:28]N(负数结果)Z(零结果)C(进位/借位)V(溢出)

register是用触发器实现的 成本高 小容量

memory是MOS+电容实现的 成本小 大容量

IO设备的register(配置寄存器)和cpu的不太一样(且听后面几回分解).

ARM7TDMI硬件结构

这个图是只有核的,如果要用的话需要单配外设

ARM7TDMI核

芯片厂子没有这样做的,都要附带外设.

jtag接口和结构,可以用于偷窥寄存器和内存中

带jtag仿真的ARM7TDMI示意图

计算机-(usb)-jlink-(jtag)-单片机

处理器的时序

cpu的时序是CPU在执行指时所需控制信号的时间顺序

(上升沿,下降沿,宽度,周期,....)

  • 时钟周期 CPU工作时间的最小单位 完成任何操作都需要整数个时钟周期

  • 指令周期 一条指令从内存中取出到执行完毕用时

  • 总线周期 把CPU通过总线与内存 外设 内部部件之间进行一次数据交换操作需要的时间.

处理器的选型问题

1.内核

2.工作频率

3.片内存储器与存储器扩展接口

4.封装

5.片内功能模块

飞控或者平衡车可以用Cortex-M0 CV等操作建议高端核Cortex-M7核

实验用高端核 产品需要考虑,同样性能尽量压成本.

ST R710F处理器

R71xF 类芯片 现在能买到 最小系统开发板买不到

32位 20年前的高性能,低功耗

ARM指令集

ARM7TDMI ARM7TDMI-S 有ARM指令集(32位)和Thumb指令集(16位)

ARM和Thumb可以切换

例如下面的汇编

mov r1,r2
sub r0,r1,r2
ands r1,r1,r2,lsl r3
stmia r0!,{r2-r7,r12}

arm汇编的格式

<opcode 助记符> {<cond 执行条件,可选>} {S 是否影响CPSR,可选} <rd 目标寄存器>,<Rn 操作数1的寄存器>,{<operand2 操作数2>}

汇编语言的语句是不区分大小写的,assembler会自动识别这些语句,但是汇编程序中用户定义的变量标号等,将区分其大小写,编程时要注意这些区别.以免出错.

操作:

  • 数据处理

    • 算术运算: add adc sub sbc rsb rsc

    • 逻辑运算: and orr eor bic

    • 数据传送: mov mvn

  • 存储器访问: ldr str ldm sdm

  • 比较: cmp cmn tst teq

  • 分支跳转: b bl bx

  • 其他

条件码作为后缀 一般可以不写,默认AS

if(a>b)a++;
else b++;

对应的arm汇编(假设a位于r0,b位于r1)

cmp r0,r1
addhi r0,r0,#1
addls r1,r1,#1

cmp改变psr addhi加s会影响psr

例1:

if(a==0)func(1);

对应arm汇编

cmp r0,#0
moveq r0,#1
bleq func

例2:

if(a==4||a>=10)x=0;

对应arm汇编(假设a在r0 x在r1)

cmp r0,#4
cmpne r0,#10
moveq r1,#0

p.s. 开全局变量会慢.

第二操作数可以有以下形式:

  • 寄存器

  • 移位值(5位unsigned) 另一register的lobyte

  • 立即数(8位)

寄存器方式下 操作数即为寄存器的数值

sub r1,r1,r2
addeq r2,r4,r5

寄存器移位方式下 移位结果为操作数 Rm值不变

逻辑移位 左移*2 右移/2

算术移位 符号不变

循环移位 (扩展的寄存器方式会影响C标志位)

add r1,r1,r1,lsl #3
sub r1,r1,r2,lsr r3

立即数:8位二进制循环移位偶数位可以得到的

第1行: r1=r1+r1*8

第2行: r1=r1-(r2右移r3位)

装载32位常数:

ldr rd,=#const

下载pdf版链接:


(基于ARM的)微机原理与接口技术笔记(4)的评论 (共 条)

分享到微博请遵守国家法律