下载此文档

NXP LPC ARM 必须知道的知识.doc


文档分类:通信/电子 | 页数:约10页 举报非法文档有奖
1/10
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/10 下载此文档
文档列表 文档介绍
NXP LPC ARM 必须知道的知识
(2011-10-10 15:08:25)
转载▼
寄存器和工作模式:
7种工作模式:
fiq/irq/abt/und/sys/usr/svc。通过"MSR cpsr_c,#0xdx"切换。上电时进入svc模式。
svc和usr的区别是:svc可以通过"MSR cpsr_c,#0xdx"自由切换到其它任何模式,但是usr不可以。
各模式下有自己的堆栈。要在程序启动后依次进入各个模式分别设置自己的堆栈,最后进入usr模式。
好多个寄存器:
r0 - r7 (a1 - a4 / v1 - v4),r15(pc) 在所有模式下都可见。
r8(v5),r9(sb,v6),r10(sl,v7),r11(fp,v8),r12(ip) fiq模式下有一组独立的映射。
r13(sp)/R14(lr) 在usr和sys模式下用同一组映射,其它模式下各有自己的映射。
cpsr在所有模式下可见。
spsr在usr和sys模式下没有映射。
cpsr是一个最特殊的寄存器,结构如下:
31 30 29 28 27~8 7 6 5 4 3 2 1 0
N Z C V 保留 I F T M4 M3 M2 M1 M0
其中,N/Z/C/V分别为负/零/进位/溢出的标志位。在所有模式下都可以进行读操作。
I/F为中断/快中断禁止位,M4~M0是工作模式控制位,它们在USR模式下都不可操作。
T为Thum/ARM模式位,在所有模式下不可直接操作,否则会天下大乱,预取址错误中断可以捕获这种乱局。只能用BX指令进行Thum/ARM的状态切换。
总之,USR模式很不方便。在该模式下只可以通过软中断控制I/F位。cpsr只能够用MSR/MRS指令来操作。
各工作模式下的spsr: 在由突发事件引起的模式切换发生时,新模式的spsr自动保存cpsr的值,以备该模式退出时还原cpsr。在程序的控制下进入某模式时,cpsr不会自动保存到相应的spsr。
Prefetch Abort和Data Abort模式:
Prefetch Abort通常会发生在自修改指令之后。而Data Abort发生于向无效内存中取操作数时,通常是数据指针越过边界了。如果在scatter文件中不指定边界,若编译时内存分配超过了实际物理内存,一定会有Data Abort或Prefetch Abort发生。
对特殊功能寄存器的操作:
通常都有两个寄存器操作同一个特殊功能。一个是负责置位,另一个是负责清除。如VICIntEnable和VICIntEnClr, IOxSET和IOxCLR等。这样就使得单独操作某一位或某几位变得非常容易,如:IO0SET = 0x00001100;IO0CLR = 0x00000011等,只变动特定的位,而不影响其他位。当然也可以用IO0PIN = 0x00001100直接设置所有的位。
--------------------------------------------------------------------------------
存储器映射:
0-1G(0x0000,0000 - 0x3fff,ffff): 片内Flash.
1-2G(0x4000,0000 - 0x7fff,fff

NXP LPC ARM 必须知道的知识 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数10
  • 收藏数0 收藏
  • 顶次数0
  • 上传人840122949
  • 文件大小86 KB
  • 时间2018-11-10