摘要:
7.点亮led的操作 Led可以作为我调试程序的工具。 OK6410的核心板原理图:led的部分截图: 我们从上面的原理图知道,led1-4对应的是GPM0-3. 2.GPIO GPIO是General-Purpose Input/Output Ports:通用输入/输出端口。在嵌入式系统中,CPU 阅读全文
摘要:
6、异常向量表的学习---设置SVC模式 这是手册的资料,我们看到,要设置svc模式,就是要把我们的cpsr的后五位设置为0b10011即可。Cpsr的结构: 接下来,我们就来把cpsr的后五位设置为0b10011. 设置的思路: 首先把这五位清零(bic指令),使用orr往这五位写入0b10011 阅读全文
摘要:
4.协处理器访问指令 协处理器用于执行特定的处理任务,例如:数学计算用的协处理器可以控制数字处理,以减轻处理器的负担。ARM可支持多达16个协处理器,其中CP15是最重要的一个。 : 格式: 现在我们使用mrc指令读出cp15协处理器里的main ID: 根据上面的说明得: 运行结果: 读出来的值是 阅读全文
摘要:
3.Arm机器码 首先汇编程序转化为机器码,才能在机器内运行。 首先我们对上面的裸机的代码中生的.elf文件进行反汇编: start.elf: file format elf32-littlearm Disassembly of section .text: 50008000 <_start>: . 阅读全文
摘要:
2.汇编代码的简单实现 使用汇编的原因很简单,就是汇编代码的高效。在机器启动的时候,利用汇编的高效,对硬件进行初始化,为加载内核,提供条件。 目前常用的ARM汇编指令有两种: *ARM标准汇编:适用于ARM公司的汇编器,适合在Windows平台下使用。 *GNU汇编:使用与GNU交叉编译工具链中的汇 阅读全文
摘要:
1.ARM寄存器简解 由ARM Architecture Reference Manual.pdf得信息: 31个通用寄存器,6个状态寄存器(一个cpsr,5个spsr)。 通用31个寄存器,被分为了三类:R0~R7,R8~R14,PC程序计数器(R15)。 R13常做堆栈指针的。 R14保存调用子 阅读全文
摘要:
2.汇编代码的简单实现 使用汇编的原因很简单,就是汇编代码的高效。在机器启动的时候,利用汇编的高效,对硬件进行初始化,为加载内核,提供条件。 目前常用的ARM汇编指令有两种: *ARM标准汇编:适用于ARM公司的汇编器,适合在Windows平台下使用。 *GNU汇编:使用与GNU交叉编译工具链中的汇 阅读全文