正点原子阿尔法ARM开发板-IMX6ULL(二)——介绍情况以及汇编
文章目录
- 一、裸机开发(21个)
- 二、嵌入式Linux驱动例程
- 三、汇编
- 3.1 处理器内部数据传输指令
- 3.2 存储器访问指令
- 3.3 压栈和出栈指令
- 3.4 跳转指令
- 3.5 算术运算指令
- 3.6 逻辑运算指令
一、裸机开发(21个)
二、嵌入式Linux驱动例程
三、汇编
我们在进行嵌入式 Linux 开发的时候是绝对要掌握基本的 ARM 汇编,因为 Cortex-A 芯片一上电 SP 指针还没初始化,C 环境还没准备好,所以肯定不能运行 C 代码,必须先用汇编语言设置好 C 环境,比如初始化 DDR、设置 SP指针等等,当汇编把 C 环境设置好了以后才可以运行 C 代码。
3.1 处理器内部数据传输指令
Rx(0~12):普通寄存器
CPSR:特殊寄存器
用法,就是把后一个传到前一个
3.2 存储器访问指令
LDR,相当于给一个地址命名,LDR 是从存储器读取数据,STR 就是将数据写入到存储器中
3.3 压栈和出栈指令
首先就是这是向下增长,也就是说,栈顶是R12,出栈先是LR再之后依次出栈。
主要是为了,中断保存数据
3.4 跳转指令
主要是,B和BL,
如果调用这个函数,不会再返回此处,可以用B
对于BL,是可以保存之前的位置标号,执行完再回来