
ARM
文章平均质量分 82
jeezx
这个作者很懒,什么都没留下…
展开
-
一、ARM工作模式
1、工作状态从编程的角度看,ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令。第二种为Thumb状态,此时此时处理器执行16位的、半字对齐的ARM指令。当ARM微处理器执行32位的ARM指令集时,工作在ARM状态;当ARM微处理器执行16位的Thumb指令集时,工作在Thumb状态。在程序的执行过程中,微处理器可以随时在两种工...原创 2018-04-16 23:26:51 · 439 阅读 · 0 评论 -
二、ARM寄存器
1、寄存器ARM微处理器共有37个32位寄存器,其中31个位通用寄存器,6个为状态寄存器。但是这些寄存器不能同时被访问,具体哪些寄存器是可以访问的,取决于ARM处理器的工作状态及具体的运行模式。但在任何时候,通用寄存器R14~R0、程序计数器PC(即R15)、一个状态寄存器都是可以访问的。2、寄存器(ARM状态)在ARM工作状态下,任一时刻都可以访问16个通用寄存器和一到两个状态寄存器。在非用户...原创 2018-04-17 14:54:29 · 373 阅读 · 0 评论 -
三、ARM寻址方式
0、寻址方式寻址方式就是处理器根据指令中给出的地址信息来寻找物理地址的方式。 1、立即寻址立即寻址也叫立即数寻址,这是一种特殊的寻址方式,操作数本身就在指令中给出,只要取出指令也就去到了操作数。这个数被称为立即数,对应的寻址方式也叫做立即寻址。例如: ADD R0, R0, #1 ;R0<--R0 + 1 ADD R0, ...原创 2018-04-18 16:46:13 · 267 阅读 · 0 评论 -
四、汇编指令详解
1、跳转指令 跳转指令用于实现程序流程的跳转,在ARM程序中有两种方法可以实现程序流程的跳转:1).使用专门的跳转指令。2).直接向程序计数器PC写入跳转地址值,通过向程序计数器PC写入跳转地址值,可以实现4GB的地址空间中的任意跳转,在跳转之前结合使用 [ MOV LR, PC ] 等类似指令,可以保存将来的返回地址值,从而实现在4GB连续的线性地址空间的子程序调用。 ...原创 2018-04-18 17:12:43 · 5216 阅读 · 0 评论 -
五、ARM伪指令
伪指令 在ARM汇编语言程序里,有一些特殊指令助记符,这些助记符与指令系统的助记符不同,没有相应的操作码,通常称这些特殊指令助记符为伪指令,他们所完成的操作称为伪操作。 伪指令在源程序中的作用是为完成汇编程序作各种准备工作的,这些伪指令在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成了。在ARM的汇编程序中,有如下几种伪指令:1. 符号定义伪指令2. 数据定义伪指令3....原创 2018-04-18 20:40:00 · 586 阅读 · 0 评论 -
六、C与ARM汇编混合编程
在应用程序设计中,如果所有任务均用汇编语言来完成,其工作量是可想而知的,而且不利于系统升级或应用软件移植。事实上,ARM体系结构支持C/C++与汇编语言混合编程,在一个完整的系统中,除了CPU初始化部分用汇编完成以外,其主要的编程任务一般都用C/C++完成。 汇编语言与C/C++的混合编程通常有以下几种方式: 1. 在C/C++程序中嵌入汇编指令。 ...原创 2018-04-18 20:49:41 · 716 阅读 · 0 评论 -
七、GPIO
1、GPIO GPIO,通用输入输出(General Purpose I/O)的简称,其引脚可以供编程使用。嵌入式系统中常常有数量众多,但是结构却比较简单的外部设备,对这些设备的控制,有时只需要一位控制信号就够了,即只要开/关两种状态就够了,比如灯亮与灭。 对这些设备的控制,使用传统的串行口或并行口都不合适。所以在微控制器芯片上一般都会提供一个“通用可编程IO接口”,即GPIO。2、...原创 2018-04-18 20:55:22 · 347 阅读 · 0 评论 -
八、LED控制程序设计
1、LED程序设计LED时开发中最常见的状态指示设备,mini2240具有4个用户可编程LED,他们直接与CPU的GPIO相连接,低电平有效(点亮),资源占用如下表2、LED原理图3、LED控制思想1.先将相应的引脚设置为输出模式;2.再向相应的引脚输出低电平即可点亮LED灯。LED全灭全亮控制程序Main.c#define GLOBAL_CLK 1#include <stdlib.h&...原创 2018-04-18 21:01:09 · 3471 阅读 · 0 评论