ARM
mayaofeiyang
这个作者很懒,什么都没留下…
展开
-
ARM体系结构与编程学习(一)
第一章:ARM概述及其基本编程模型1.4 arm处理器模式arm体系结构支持7中处理模式。用户模式 (usr) 正常程序执行的模式 快速中断模式(fiq) 用于高速数据传输和通道处理 外部中断原创 2013-03-29 15:32:25 · 929 阅读 · 0 评论 -
ARM体系结构与编程学习(十)
第六章 ATPCS介绍在汇编编译器中使用-apcs选项。6.1.2寄存器使用规则子程序使用R0~R3来传递参数。用R4~R11来保存局部变量,thumb使用R4~R7。R12记作IP,调用scratch寄存器。R13记作SP,用作数据堆栈指针。R14记作LR,用作保存子程序的返回地址。R15记作PC,是程序计数器。6.1.3数据栈使用规则有四种堆栈方向:FD、FA、原创 2013-03-29 15:41:34 · 743 阅读 · 0 评论 -
ARM体系结构与编程学习(九)
SDRAM初始化过程如下:1、加电2、延迟指定时间,从第一个sdram的clk开始,通常为100us。具体值请参考SDRAM手册3、延迟一些自动刷新周期,通常为两个4、设置自动刷新寄存器5、等待一定时间以后开始写模式寄存器以下程序以L7205SDB为例AREA STARTUP ,CODE, READONLY ENTRYstart原创 2013-03-29 15:40:55 · 743 阅读 · 0 评论 -
ARM体系结构与编程学习(四)
4.3 arm汇编语言格式{symbol} {instruction|directive|pseudo-instruction} {;comment}其中:symbol为符号。符号必须从一行的行头开始,并且符号不能有空格。在指令和伪指令中,符号用作地址标号。在伪操作中,符号用作 变量或者常量 i原创 2013-03-29 15:35:27 · 779 阅读 · 0 评论 -
ARM体系结构与编程学习(二)
第四章 ARM汇编语言程序设计4.1 arm伪指令包括6种伪指令:符号定义伪指令、数据定义伪指令、汇编控制伪指令、框架描述伪指令、信息报告伪指令、其他伪指令。4.1.1 符号定义伪指令:用于定义arm汇编程序中的变量,对变量进行赋值以及定义寄存器名称。 GBLA、GBLL、GBLS 声明全局变量 LCLA、LCLL、LCLS 声明局部变量 SETA、原创 2013-03-29 15:33:33 · 831 阅读 · 0 评论 -
ARM体系结构与编程学习(十二)
9.4 SWI异常中断处理程序在实时操作系统中,通常使用SWI异常中断为用户程序提供系统功能调用。通常SWI异常中断处理程序分为两级:第1级SWI异常中断处理程序为汇编程序,用于确定SWI指令中的24位的立即数;第2级SWI异常中断处理程序具体实现SWI各个功能,可以是汇编,也可以是C程序。第1级SWI异常中断处理程序 AREA LevelOneSWI原创 2013-03-29 15:43:23 · 859 阅读 · 0 评论 -
ARM体系结构与编程学习(七)
第五章 ARM存储系统5.1 arm存储系统概述mmu 使用内存映射机制实现虚拟空间到物理空间的映射。通常嵌入式系统的程序放在ROM/FLASH中,这样系统断电后程序能够保存。但是 通常ROM/FLASH与SDRAM相比,速度要慢很多,而且嵌入式系统中通常把异常中断向量表放在RAM,利用内存映射机制可以解决这 种问题。在系统加电时,将ROM/FLAS原创 2013-03-29 15:38:23 · 548 阅读 · 0 评论 -
ARM体系结构与编程学习(六)
ADR伪指令实例;设置本段程序的名称及属性AREA adrlabel ,CODE,READONLY ENTRYstart;跳转到子程序func执行 BL func;调用angel_SWIreason_ReportException;ADP_Stopped_ApplicationExit;ARM semihos原创 2013-03-29 15:37:09 · 911 阅读 · 0 评论 -
ARM体系结构与编程学习(五)
4.6.2 arm汇编实例;设置本段程序的名称及属性AREA BLOCK , CODE , READONLY;设置将要复制的字数num EQU 20;标识程序入口点 ENTRYStart;R0寄存器指向源数据区src LDR R0,=src;R1寄存器指向目标数据区dst LDR R1 ,=dst原创 2013-03-29 15:36:15 · 765 阅读 · 0 评论 -
ARM体系结构与编程学习(十一)
第九章 ARM异常中断处理9.1arm控制程序的执行流程1、正常程序执行:每执行一条arm指令,PC值加4字节;每执行一条thumb指令,PC值加2字节。2、跳转:B/BL/BLX,对于BLX,跳转到目标地址处执行,保存子程序的返回地址,根据目标地址的最低位可以将程序切换到thumb状态。3、中断:系统先执行完当前指令,然后保存现场,之后跳转到异常中断处理程序。中断执行完后,恢原创 2013-03-29 15:42:40 · 692 阅读 · 0 评论 -
ARM体系结构与编程学习(八)
5.3内存管理单元mmummu主要作用:1、虚拟存储空间到物理存储空间的映射2、存储器访问权限的控制3、设置虚拟存储空间的缓冲特性实现方式:页表。用C2保存页表的基地址。TLB的控制与清除由C8控制,锁定由C10控制。C3用于控制与域相关的属性的配置,C5与C6处理内存访问失效情况。CP15的寄存器C1C1控制整个mmu功能,bit[0]位控制禁止/使能mmu;原创 2013-03-29 15:39:42 · 628 阅读 · 0 评论 -
ARM体系结构与编程学习(三)
4.2 arm汇编语言伪指令ADR 小范围地址读取指令 ADRL 中等范围地址读取指令LDR 大范围地址读取指令NOP 空操作指令ADR ADR 将基于PC的地址值或者基于寄存器的地原创 2013-03-29 15:34:24 · 586 阅读 · 0 评论 -
ARM体系结构与编程学习(十三)
9.5 FIQ与IRQ异常中断处理程序arm提供的FIQ与IRQ用于外部设备向CPU请求中断。9.5.1 不可重入的IRQ/FIQ异常中断处理程序;使用关键词_irq__irq void IRQHandler (void){ volatile unsigned int *base = (unsigned int *) 0x80000000; if (*b原创 2013-03-29 15:44:00 · 695 阅读 · 0 评论