本文主要是介绍正点原子阿尔法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,是可以保存之前的位置标号,执行完再回来
3.5 算术运算指令
3.6 逻辑运算指令
这篇关于正点原子阿尔法ARM开发板-IMX6ULL(二)——介绍情况以及汇编的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!