ARM入门基础

合集下载

关于ARM的基础知识

关于ARM的基础知识
关于ARM的基础知识介绍
几点补充:
ARM:Advanced RISC Machine基本特点
RISC:精简指令集计算机 指令等长:32bit(ARM)/16bit(Thumb) 所有R都具有类似51“A”功能 流水线:ARM7——3级,ARM9——5级 ARM11——8级 新一代ARM Cortex A/R/M
硬件、软件调试问题(内核调式、应用程序调试) 调试技术目标:
查看和修改CPU和内部资源状况——系统对调试者透明 控制程序运行——系统工作过程可由调试者控制
基本硬件仿真方法
插入式 非插入式
JTAG——边界扫描技术 SWD、BDM等
集成调试环境(ADS、SDT、KEIL 3(支持C51、
如何看NXP LPC的系统结构
32个IO、双UART、高速I2C、SPI、2个32bit计数器 PWM、实时时钟、看门狗、16K/32K/64K SRAM(RAM) 128K FLASH(ROM)等等——功能部件、系统资源
31个32bit 通用寄存器(不分组R0~R7、分组) 实例分析(见PDF文件)

ARM初学入门

ARM初学入门

ARM初学入门经过一段时间对arm的学习,在这里跟大家说一些前期的学习经验,另外仅以一个例子说明一下ads的开发过程,因为这也是初学,可能有的地方说的不太好,望大家谅解,另外可以找其它参考资料来学习。

第一部分:arm的早期学习经验个人认为,要想学好arm应该首先对arm的整体框架(包括arm体系结构,arm开发过程,及arm程序框架及执行过程等)有一个了解。

这里这就不多说了,这些东西我也只是刚刚开始学习,还没有很好的掌握,就只说一些个人想法吧。

呵呵,因为时间紧,据说要在一周内完成。

至少你可以用书做一点,但上周之后,最后,哇,我真的疯了。

当我第一次得到这个实验盒时,我认为和NIOS一样,我几乎可以玩更多的演示。

一开始我没想到会遇到大问题。

我在arm实验箱里带了几本教科书和实验说明。

在用实验说明做了几次演示后,我没能做到这一点,因为前两次演示相对简单,只需用汇编语言编写一些关于arm寄存器操作的语句,那些学习过汇编语言的人很快就能理解。

但未来会有所不同,因为我在学习之初不知道ARM项目的框架。

我真的不明白。

为什么44B在整个过程中都有用。

h、 44B。

还有一个44binit的文件吗?前三个很容易理解。

那些玩过MCU的人可以很容易地看到44B H在S3C44B0X中定义了一些寄存器,44blib H和44blib C定义了一些初始化函数,而44binit S?我不明白。

我不能在这里做arm程序。

我必须在互联网上找到信息,看看这个功能是用来做什么的。

事实证明,这是我以前经常听到的“bootloader”或“boot code”或“arm boot program”,这是处理器启动时执行的一段代码,主要任务是初始化处理器模式,设置堆栈,初始化变量等由于上述操作与处理器架构和系统配置密切相关,它们通常是由汇编编写的(对于此内容,您可以查看相关资料)。

所以我花了几天时间研究文件“44binit.S”。

通过对本文档的研究,我学到了很多关于arm编程的知识,并对arm编程的总体框架有了大致的了解。

实用干货 高手告诉你ARM入门该学什么

实用干货 高手告诉你ARM入门该学什么

实用干货高手告诉你ARM入门该学什么
ARM入门阶段通常是最容易让人产生挫败感的时候,并不是因为知识有多幺难以理解,而是因为很多人并不知道从哪方面进行入手。

此时一篇较为系统的入门知识介绍文章就变得很有必要,本文来自于一名经验丰富的电源设计者,将其对新手的入门建议进行了总结,大家快来看一看吧。

 关于基础
 很多人在学习ARM时都在纠结是否需要有51、AVR等基础。

其实这部分知识并非必须,懂一些更好但没有也无所谓。

没有相关基础也无所谓,重要的是找一些参考书,去了解里面的例子和原理图,例程里有汇编有C,都能看懂即可,不用追求能够流利编写。

 需要学习哪些软件
 软件实际上就那幺几种,下面为大家总结一下。

 ADS调试用
 确切的说是ADS+AXD。

ADS里包含AXD。

以前都用SDT,但后来ARM 公司停止对SDT的支持,转而支持ADS,所以还是用ADS比较好。

目前有的人的程序发布的仍然是SDT版本,但基本都可以找到相应ADS的,新人在这里不要发蒙。

ADS是编译器,AXD是调试器。

编译成AXF以后再在ARM的RAM里调试。

 PLASHPGM
 FLASH烧写的软件。

AXD在RAM里调试就不会出现掉电,方便程序修改。

调试好的程序再下到FLASH里上电直接运行。

同类的软件还有很多,比如FLUTED、FLSHP,但FLASHPGM最好。

 BANYANT调试代理。

ARM开发入门初级教程.ppt

ARM开发入门初级教程.ppt

ARM公司是专门从事基于RISC技术芯片设计开发 的公司,作为知识产品供应商,其本身不直接从事芯 片生产,而是转让设计许可由合作公司生产各具特色 的芯片,世界各大半导体生产商从ARM公司购买其设 计的ARM微处理器核,然后根据各自不同的应用领域, 加入适当的外围电路,从而形成自己的ARM微处理器 芯片进入市场。目前,全世界有几十家大的半导体公 司都使用ARM公司的授权,因此既使得ARM技术获得 更多的第三方工具、制造、软件的支持,又使整个系 统成本降低,使产品更容易进入市场被消费者所接受, 更具竞争力。
场合; ■ 6级整数流水线,指令执行效率更高; ■ 支持32位ARM指令集和16位Thumb指令集; ■ 支持32位的高速AMBA总线接口; ■ 支持VFP10浮点处理协处理器; ■ 全性能的MMU,支持Winodws CE、Linux、Palm
1.3 ARM微处理器系列
ARM公司设计了许多处理器,它们可以根据使用 内核的不同划分到各个系列中。系列划分是基于 ARM7、ARM9、ARM10、ARM11内核的。后缀数字7、 9、10、11表示不同的内核设计。数字升序说明性能和 复杂度的提高。ARM8开发出来以后很快就被取代了。
在每个系列中,存储器管理、cache和TCM处理器 扩展也有多种变化。ARM继续在可用的产品系列和每 个系列内部的不同变种两方面做进一步开发。
• 1.3.1 ARM7处理器(1)
ARM7内核是冯·诺依曼体系结构,数据和指令使 用同一条总线。内核有一条3级流水线,执行ARMv4指 令集。ARM7系列微处理器为低功耗的32位RISC处理器 ,最适合用于对价位和功耗要求较高的消费类应用。 ARM7微处理器系列具有如下特点: ■ 具有嵌入式ICE-RT逻辑,调试开发方便; ■ 极低的功耗,适合对功耗要求较高的应用,如便携

新手福利 13个必知的ARM知识点

新手福利 13个必知的ARM知识点

新手福利13个必知的ARM知识点ARM芯片的优点小编在这里不用多说,很多朋友肯定能够非常熟练地进行罗列。

对于新手来说,这款处理器优点颇多易于上手,非常适合在学习初期使用。

但在开始使用ARM进行实际操作之前,小编希望大家能够了解一些其使用过程中一些注意事项。

接下来大家就随小编来一起看一看这13个注意事项吧。

 MAM使用注意事项 当改变MAM定时值时,必须先通过向MAMCR写入0来关闭MAM,然后将新值写入MAMTIM。

最后,将需要的操作模式的对应值写入MAMCR,再次打开MAM。

对于低于20MHz的系统时钟,MAMTIM设定为001。

对于20MHz到40MHz之间的系统时钟,建议将Flash访问时间设定为2cclk,而在高于40MHz的系统时钟下,建议使用3cclk。

 VIC使用注意事项 如果在片内RAM当中运行代码并且应用程序需要调用中断,那幺必须将中断向量重新映射到Flash地址0x0。

这样做是因为所有的异常向量都位于地址0x0及以上。

通过将寄存器MEMMAP(位于系统控制模块当中)配置为用户RAM模式来实现这一点。

用户代码被连接以便使中断向量表装载到0x40000000。

 IRQ和FIQ之间的区别 IRQ和FIQ是ARM处理器的两种编程模式。

IRQ是指中断模式,FIR是指快速中断模式。

对于FIQ,必须尽快处理并离开这个模式。

IRQ可以被FIQ所中断,但IRQ不能中断FIQ。

为了使FIQ更快,所以这种模式有更多的影子寄存器。

FIQ不能调用SWI(软件中断)。

FIQ还必须禁用中断。

如果。

初学arm知识总结

初学arm知识总结

嵌入式平板电脑mips方案和X86方案的比较
般采用退出商业领域的PC机器来应用于不太复杂的工业应用,机器的寿命会受到一定程度的影响。而MISP方案则是专门为工业控制实际应用量身定做的,更加专业实用。
WINCE6.0系统下全面测评S3C6410处理器性能
WINCE6.0系统下全面测评S3C6410处理器性能
WINCE6.0系统下全面测评S3C6410处理器性能
WINCE6.0系统下全面测评S3C6410处理器性能
WINCE6.0系统下全面测评S3C6410处理器性能
WINCE6.0系统下全面测评S3C6410处理器性能
WINCE6.0系统下全面测评S3C6410处理器性能
WINCE6.0系统下全面测评S3C6410处理器性能
2010—S3C6410的疯狂,主频的极限在哪里?
2008年下半年,三星公司推出S3C6410X芯片,大部分的生产厂家都用的ARM1176JZF-S内核,到现在为止很多都推出了S3C6410芯片的开发板。前面的在完善和创新、后面的加紧脚步在追赶,市场一片火热!
01
009年来看,S3C6410慢慢的走出来。相对ARM9而言,在视频编解码、处理速度、2D/3D的加速等方面有很大的提升。在价值的提升同时,成本也在提升,那么价格同样会比ARM9高出不少。
ARM体系的各种异常的分析
中止异常 中止表示当前存储器的访问不能完成,是由外部的ABOUT输入信号引起的异常,分为两类: 预取指中止:由程序存储器引起的中止异常; 数据中止:由数据存储器引起的中止异常;
SUBS PC,R14_abt,#4 ;PC=R14 - 4
04
当程序发生预取指中止时,ARM内核将预取的指令标记为无效,但在指令到达流水线的执行阶段时才进入异常,因此当前PC的值为当前执行指令的地址+8(即正确的中断返回地址+4),因此R14保存的值是 中断返回地址+4 ,所以当修复了产生中止的原因后,不管在什么操作状态,处理器都会执行以下指令

ARM快速入门教程

ARM快速入门教程

ARM快速入门教程ARM(Advanced RISC Machines)是一种基于精简指令集计算机(RISC)架构的处理器系列,被广泛应用于嵌入式系统、移动设备和消费类电子产品中。

本文将为您提供一个简单的ARM快速入门教程,帮助您了解ARM的基本概念和使用方法。

第一部分:ARM概述(200字)第二部分:ARM架构(300字)ARM架构采用RISC设计思想,通过简化指令集和优化硬件设计来提高性能和效率。

ARM处理器具有三个基本特征:简洁的指令集、统一的寄存器文件和可变长度的指令长度。

ARM指令集包括数据传输指令(如加载和存储指令)、算术指令(如加法和乘法指令)、控制指令(如分支和跳转指令)等。

这些指令被编码为16位或32位二进制代码,以提高指令执行效率。

ARM处理器的寄存器文件使用统一的32位寄存器,这意味着所有的寄存器都可以用于存储数据或表示内存地址。

该设计简化了指令集编码,并提高了程序的灵活性和扩展性。

与其他处理器架构相比,ARM指令的长度是可变的。

ARM处理器支持16位和32位的指令,根据实际需要进行选择。

这种设计也有利于降低功耗和提高代码密度。

第三部分:ARM开发环境(400字)要开始使用ARM进行开发,您需要一个ARM开发板、一台计算机和适当的开发环境。

ARM开发板是一种嵌入式系统,其中包含一块ARM处理器和各种外围设备(如闪存、RAM、串口等)。

您可以使用开发板来加载和运行您的ARM代码,并与外部设备进行交互。

第四部分:ARM编程(300字)ARM编程可以使用汇编语言或高级语言进行。

汇编语言是一种低级编程语言,直接对应于CPU的指令集。

使用汇编语言编程可以更加深入地了解和控制ARM处理器的操作。

高级语言(如C/C++)编程可以提高开发效率和代码可读性。

您可以使用C/C++编程语言编写ARM应用程序,然后通过交叉编译器将其编译成ARM指令。

在ARM编程中,您可以使用各种库函数和驱动程序来访问外部设备(如闪存、串口、显示屏等)。

ARM基础知识

ARM基础知识

复习问题提纲第一讲基础知识1.什么是嵌入式系统(IEEE定义和国内普遍认同(de)定义分别是什么)IEEE(国际电气和电子工程师协会)对嵌入式系统(de)定义:“用于控制、监视或者辅助操作机器和设备(de)装置”国内普遍认同(de)嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求(de)专用计算机系统.更简单(de)讲:就是嵌入到对象体中(de)专用计算机系统.三要素:嵌入、专用、计算机嵌入性:嵌入到对象体系中,有对象环境要求专用性:软、硬件按对象要求裁减计算机:实现对象(de)智能化功能2.嵌入式系统(de)特点1、专用软、硬件可剪裁可配置;2、低功耗、高可靠性、高稳定性;3、软件代码短小精悍;4、代码可固化;5、实时性;6、弱交互性7、嵌入式系统软件开发通常需要专门(de)开发工具和开发环境;8、要求开发、设计人员有较高(de)技能.3.嵌入式系统(de)组成嵌入式系统总体上是由硬件和软件组成(de),硬件是其基础,软件是其核心和灵魂.第二讲ARM技术概述(以下指(de)arm处理器都是指ARM920T)1.arm处理器是32位架构,它支持(de)基本数据类有哪3个(提示:字节、、)(1)Byte:字节,8bit (2)Halfword:半字,16bit(半字必须与2字节边界对齐)(3)word:字,32bit(字必须与4字节边界对齐)2.什么是存储大小端模式所谓(de)大端模式,是指高位字节存放在低地址单元中,而低位字节存放在高地址单元中.所谓(de)小端模式,是指低位字节存放在低地址单元中,而高位字节存放在高地址单元中.3.arm 处理器有哪7种工作模式,每种工作模式下通用工作寄存器有多少个、作用是什么、各个模式间哪些模式下有自己专有(de)寄存器,哪些寄存器是各个模式彼此公用(de),哪些寄存器一般有固定(de)用途是什么哪两种模式寄存器完全相同,哪种模式它(de)专有寄存器最多(1)ARM微处理器支持7种运行模式,分别为:用户模式(usr):ARM处理器正常(de)程序执行状态.(大部分任务执行时)快速中断模式(fiq):用于高速数据传输或通道处理.(当高优先级中断产生时)外部中断模式(irq):用于通用(de)中断处理.(当低优先级中断产生时)特权模式(svc):操作系统使用(de)保护模式.(当复位或软中断指令执行时)数据访问中止模式(abt):可用于虚拟存储及存储保护. (当存取异常时)未定义指令中止模式(und):可用于支持硬件协处理器(de)软件仿真.(当未定义(de)指令执行时)系统模式(sys):运行具有特权(de)操作系统任务.(和User模式相同寄存器集(de)模式)(2)每种工作模式下通用工作寄存器有:(共15个)(ARM处理器共有37个寄存器,被分为若干个组(BANK),这些寄存器包括30个通用寄存器和6个状态寄存器,1个程序计数器(PC指针)及所有寄存器(均为32位). 未分组寄存器:包括R0~R7. 分组寄存器:包括R8~R14(3) 未分组寄存器(R0-R7)指(de)都是同一个物理寄存器,但是在异常中断切换时,由于使用相同(de)物理寄存器,所以和容易使寄存器中(de)数据被破坏. 对于分组寄存器(R8~R14),他们每一次所访问(de)物理寄存器与处理器当前(de)运行模式有关,除FIQ模式外其他寄存器是公用(de)(R0-R12). 分组寄存器R13和R14来说,每个寄存器对应6个不同(de)物理寄存器.其中(de)一个是用户模式和系统模式公用(de),而另外5个分别用于5种异常模式. R15用作程序计数器(PC),用来保存读取指令(de)地址.(4)R13,R14,CPSR是各个模式专有(de),FIQ模式除此之外还有R8-R12.(5)R0~R7是所用模式公用(de);R8~R12对于快速中断FIQ模式之外(de)其他模式都是公用(de),而FIQ 模式另外有一套自己寄存器R8_fiq~R12_fiq,FIQ处理程序在保存和恢复现场时可以少保存和恢复几个寄存器(R8-R12),从而提高中断处理迅速(6)R13通常用作栈指针寄存器(SP),每一种模式有自己(de)R13,所以允许每一种异常都有自己(de)栈指针.R14用作连接或返回地址寄存器(LR),每一种模式有自己(de) R14.R15用作程序计数器(PC),用来保存读取指令(de)地址.程序状态寄存器(CPSR)存储ARM微处理器当前(de)状态和模式标志.备份状态寄存器(SPSR)异常模式下(de)CPSR(de)备份寄存器,当一个异常发生时保存当前(de)CPSR值.结合连接寄存器可使处理器返回先前(de)状态.(7)用户模式(user)和系统模式(sys)寄存器完全相同且这两种模式不能由异常进入(8)快速中断(FIQ)模式最多4.arm处理器有哪2种工作状态,上电复位后进入(de)是什么状态(1)第一种为ARM状态,此时处理器执行32位(de)字对齐(de)ARM指令,对应ARM指令集;第二种为Thumb状态,此时处理器执行16位(de)、半字对齐(de)Thumb指令,对应Thumb指令集.(2)上电复位后,处于ARM状态5.理解流水线是如何提高处理器处理速度(de),如假设某嵌入式处理器有3级流水线,每级流水线所耗时间均为为2ms,则执行25条指令需要耗费时间流水线(pipeline)技术是指在程序执行时多条指令重叠进行操作(de)一种准实现技术T=执行一条指令(de)时间+(指令(de)条数—1)流水线周期 6+(25-1)2=546.充分掌握arm处理器CPSR寄存器每一位(de)作用.寄存器R16用作程序状态寄存器CPSR(Current Program Status Register,当前程序状态寄存器).在所有处理器模式下都可以访问CPSR.CPSR包含条件码标志、中断禁止位、当前处理器模式以及其他状态和控制信息.每种异常模式都有一个程序状态保存寄存器SPSR(Saved Program Status Register).当异常出现SPSR用于保留CPSR(de)状态.CPSR和SPSR(de)格式如下:(1)条件码标志N、Z、C、V(Negative、Zero、Carry、oVerflow)均为条件码标志位(Condition Code Flags),它们(de)内容可被算术或逻辑运算(de)结果所改变,并且可以决定某条指令是否被执行.CPSR中(de)条件码标志可由大多数指令检测以决定指令是否执行.在ARM状态下,绝大多数(de)指令都是有条件执行(de).在Thumb状态下,仅有分支指令是有条件执行(de).通常条件码标志通过执行比较指令(CMN、CMP、TEQ、TST)、一些算术运算、逻辑运算和传送指令进行修改.条件码标志(de)通常含义如下:N:如果结果是带符号二进制补码,那么,若结果为负数,则N=1;若结果为正数或0,则N=0.Z:若指令(de)结果为0,则置1(通常表示比较(de)结果为“相等”),否则置0.C:可用如下4种方法之一设置:加法(包括比较指令CMN).若加法产生进位(即无符号溢出),则C置1;否则置0.减法(包括比较指令CMP).若减法产生借位(即无符号溢出),则C置0;否则置1.对于结合移位操作(de)非加法/减法指令,C置为移出值(de)最后1位.对于其他非加法/减法指令,C通常不改变.V:可用如下两种方法设置,即对于加法或减法指令,当发生带符号溢出时,V置1,认为操作数和结果是补码形式(de)带符号整数.对于非加法/减法指令,V通常不改变.Q标志位:在带DSP指令扩展(de)ARM v5及更高版,bit[27]被指定用于指示增强(de)DAP指令是否发生了溢出,因此被称为Q标志位.同样,在SPSR中bit[27]也被称为Q标志位,用于在异常中断发生时保存和恢复CPSR中(de)Q 标志位(3)控制位程序状态寄存器PSR(Program Status Register)(de)最低8位I、F、T和M[4:0]用作控制位.当异常出现时改变控制位.处理器在特权模式下时也可由软件改变.a.中断禁止位I:置1,则禁止IRQ中断;F:置1,则禁止FIQ中断.b.T位T=0 指示ARM执行(即正在执行32位(de)ARM指令);T=1 指示Thumb执行(即正在执行16位(de)Thumb指令).c.模式控制位(4)其他位程序状态寄存器(de)其他位保留,用做以后(de)扩展.7.arm处理器有哪两个中断快速中断(FIQ)和标准中断(IRQ)8.掌握s3c2410X单片机他(de)内核是什么处理器,该单片机有哪两类总线,两类总线分别挂接了哪些接口控制器(1)S3c2410X单片机(de)内核ARM920T处理器;S3C2410处理器支持大/小端模式存储字数据,a)其寻址空间可达1GB,b)对于外部I/O设备(de)数据宽度c)可以是8/16/32位,d)所有(de)存储器Bank(共有8个)都具有可编程(de)操作周期,e)而且支持各种ROM引导方式(NOR/Nand Flash、EEPROM等)(2)两类总线分别为:AHB和APB;(3)AHB挂接了LCD、USB主控制、NAND Flash、中断控制、总线控制、内存APB挂接了串口、usb从设备、看门狗定时器、总线控制、SPI、I2C、I2S、GPIO、RTC、ADC、PWM定时器第三讲ARM指令系统1.掌握ARM处理器指令(de)几种寻址方式和分类,哪两类指令是专门用来访问内存(de) 哪类指令或伪指令会导致流水线情况(提示:那些会使PC值发生跳变(de)指令)(1)指令有七种寻址方式:1、立即寻址:ADD R0,R0,1 ;R0←R0+1MOV R0,0xff00 ;R0←0xff00在以上两条指令中,第二个源操作数即为立即数,要求以“”为前缀,对于以十六进制表示(de)立即数,还要求在“”后加上“0x”.2、寄存器寻址:操作数放在寄存器当中,在指令当中只需要给出存放操作数寄存器(de)名字就可以了,这也是一种执行效率较高寻址方式.举例:MOV R0,R1 ; R0←R1SUB R0,R1,R2 ;R0←R0-R23、寄存器间接寻址:寄存器间接寻址就是以寄存器中(de)值作为操作数(de)地址,而操作数本身存放在存储器中.ADD R0,R1,[R2] ;R0←R1+[R2]在第一条指令中,以寄存器R2(de)值作为操作数(de)地址,在存储器中取得一个操作数后与R1相加,结果存入寄存器R0中.LDR R0,[R1] ; R0←[R1]第二条指令将以R1(de)值为地址(de)存储器中(de)数据传送到R0中.4、基址变址寻址:基址变址寻址就是将寄存器(该寄存器一般称作基址寄存器)(de)内容与指令中给出(de)地址偏移量相加,从而得到一个操作数(de)有效地址.变址寻址方式常用于访问某基地址附近(de)地址单元.LDR R0,[R1,4] ;R0←[R1+4]在第一条指令中,将寄存器R1(de)内容加上4形成操作数(de)有效地址,从而取得操作数存入寄存器R0中.5、多寄存器寻址:6、相对寻址:7、堆栈寻址:0指令有六类:1、跳转指令 2、数据处理指令 3、程序状态寄存器(PSR)传输指令 4、加载/存储(load/store)指令 5、协处理指令 6、异常中断产生指令根据使用(de)指令类型不同,指令(de)寻址方式分为数据处理指令寻址方式和内存访问指令寻址方式. (2)加载/存储(load/store)指令和跳转指令访问内存(de)指令:str和ldr(3)a、互锁指令:在典型(de)程序处理过程中,经常会遇到这样(de)情形,即一条指令(de)结果被用作下一条指令(de)操作数,如:有如下指令序列:LDR R0,[R0,0]ADD R0,R0,R1 ;在5级流水线上产生互锁从例子中可以看出,流水线(de)操作产生中断,因为第1条指令(de)结果在第2条指令取数时还没有产生.第2条指令必须停止,直到结果产生为止.b、跳转指令:跳转指令也会破坏流水线(de)行为,因为后续指令(de)取指步骤受到跳转目标计算(de)影响,因而必须推迟.第四讲ARM程序设计语言1.掌握ARM一些常用伪指令(de)作用及含义如ldr r0,=label(含义)、entry、end、import、export、dcb 100等.ldr r0,=label:把lable(程序开始地址)写到r0寄存器中Entry:ENTRY 伪指令用于指定汇编程序(de)入口点.在一个完整(de)汇编程序中至少要有一个 ENTRY (也可以有多个,当有多个 ENTRY 时,程序(de)真正入口点由链接器指定),但在一个源文件里最多只能有一个 ENTRY (可以没有).End:作用:用于通知编译器已经到了源程序(de)结尾.含义:指定应用程序(de)结尾Import:伪指令用于通知编译器要使用(de)标号在其他(de)源文件中定义,但要在当前源文件中引用,而且无论当前源文件是否引用该标号,该标号均会被加入到当前源文件(de)符号表中.Export:用于在程序中声明一个全局(de)标号,该标号可在其他(de)文件中引用.Dcb 100: 用于分配一片连续(de)字节存储单元并用伪指令中指定(de)表达式初始化.2.掌握ATPCS规则,如汇编与C语言间参数是如何传递(de)(C语言函数(de)形参对应哪些通用寄存器、返回参数又对应哪些通用寄存器)1.子程序通过寄存器R0~R3来传递参数. 这时寄存器可以记作: A1~A4 , 被调用(de)子程序在返回前无需恢复寄存器R0~R3(de)内容.2.在子程序中,使用R4~R11来保存局部变量.这时寄存器R4~R11可以记作: V1~V8 .如果在子程序中使用到V1~V8(de)某些寄存器,子程序进入时必须保存这些寄存器(de)值,在返回前必须恢复这些寄存器(de)值,对于子程序中没有用到(de)寄存器则不必执行这些操作.在THUMB程序中,通常只能使用寄存器R4~R7来保存局部变量.3.寄存器R12用作子程序间scratch寄存器,记作ip; 在子程序(de)连接代码段中经常会有这种使用规则.4. 寄存器R13用作数据栈指针,记做SP,在子程序中寄存器R13不能用做其他用途. 寄存器SP在进入子程序时(de)值和退出子程序时(de)值必须相等.5. 寄存器R14用作连接寄存器,记作lr ; 它用于保存子程序(de)返回地址,如果在子程序中保存了返回地址,则R14可用作其它(de)用途.6. 寄存器R15是程序计数器,记作PC ; 它不能用作其他用途.7. ATPCS中(de)各寄存器在ARM编译器和汇编器中都是预定义(de).3.理解加载地址和运行地址(de)含义,以及在程序加载时和运行时分别分成了哪几个段(提示RO子读、RW可读可写、ZI存储)第5讲GPIO编程1.掌握S3C2410 GPIO端口(de)设置方法,如现在需要把通用端口F组(de)第2管脚口设置为输出且输出低电平(即0),现在要其F组其他管脚口保持不变,应如何设置他(de)相关寄存器rGPFCON = (rGPFCON&0xff)|(0x04);rGPFDAT=(rGPFDAT);2.掌握实验板4个LED灯(de)编程控制i.;保留未使用(de)异常向量ii. b IRQHandleriii. b FIQHandler2.掌握S3C2410 中断控制器工作原理,其有多少个一级中断源和二级中断源,中断控制器(de)相关寄存器(de)作用,在一级中断控制寄存器中我们是通过哪个寄存器来识别是哪个一级中断源触发了中断服务(提示:中断号)当中断服务结束,我们是如何来清除中断请求信号a)s3c2410有56个外部中断源头,这56个外部中断源头是通过说s3c2410内部(de)中断控制器来管理(de),中断控制器(de)主要工作就是管理外部中断源:产生中断信号,保存在中断源寄存器中,打开中断屏蔽位,MODE选IRQ或FIQ(默认为IRQ),再排中断优先级后送到处理器,向cpu发出中断请求.b)c)SRCPND寄存器当中断源发出中断请求是,源挂起寄存器(SRCPND)(de)相应位就会置1.INTMOD(中断模式寄存器)当中断源(de)模式位置1时,用FIQ模式处理;置0时,用IRQ处理.INTMSK(中断屏蔽寄存器)当中断源(de)屏蔽位置为1时,CUP不响应中断源(de)中断请求,置0时,响应.INTPND(中断挂起寄存器)当中断请求被响应时,相应位置1.INTOFFSET(IRQ偏移寄存器)给出INTPND寄存器中那个是IRQ模式(de)中断请求.EXTINTn(外部中断控制寄存器)有24个外部中断有几种中断触发方式由该寄存器设置.EINTMASK(外部中断屏蔽寄存器)[23:4]分别对应外部中断23~4.等于1,对应(de)中断被屏蔽,反之, 允许.EINTPND(外部中断挂起寄存器)前四位保留EINT 0-3对应(de)挂起位在寄存器中,4—23位对应着一个中断源.请求响应时,响应位置1.在中断服务子程序中判断EINPND来判断哪个中断提起申请.d)在一级中断控制寄存器中我们是通过INTOFFSET寄存器来识别是哪个一级中断源触发了中断服务.e)一级中断源(de)中断清除,需要对INTPND、SRCPND要写1清03.学会使用外部中断+扫描法来实现实验板上矩阵键盘(de)识别第8讲定时器1.RTC 时钟信号(de)来源如何设置时间(如设置秒钟为24秒,你如何给它相应寄存器赋值)a)时钟信号(de)来源是:外部晶振(依靠一个外部(de)(de)石英晶体,产生周期性(de)脉冲信号.每一个信号到来时,计数器就加1,通过这种方式,完成计时功能. )b)rRTCCON |= 0x01; //使能RTC控制,用来设置时间rBCDSEC = 0x24;rRTCCON |= 0x00;2.RTC 时间节拍(de)周期如何设置a) Period=(n+1)/128 ;以秒作为单位式中:n为节拍时间计数值,范围为1~127.3.掌握看门狗定时器(de)工作原理及其相关寄存器(de)作用、看门狗增强系统稳定性(de)原理又是什么S3C2410 ARM9(de)看门狗主要由五部分构成:时钟、看门狗计时器、看门狗数据寄存器、复位信号发生器、控制逻辑等.a)看门狗定时器(de)工作原理:b)Watchdog根据PCLK,Prescaler Value,Clock Select会产生一个watchdog自己(de)工作周期,我们把这个工作周期记为t_watchdog(),watchdog在一个 t_watchdog周期结束时会产生一个记数递减信号,每当这个信号产生时,WTCNT中(de)值便减1,若在WTCNT递减为0(Timer Out)(de)时候软件层还没有重新往WTCNT中写入数值(这个行为便是我上文提到(de)喂狗),则watchdog触发Reset Signal,系统重起.c)相关寄存器(de)作用是:i.WTCON:watchdog控制寄存器(是否启用看门狗定时器、4个分频比(de)选择、是否允许中断产生、是否允许复位操作)ii.WTDAT:watchdog数据寄存器(用于指定超时时间)iii.WTCNT:watchdog记数寄存器(通过WTDAT得到一个值,watchdog在每个t_watchdog周期里向WTCNT发送一个递减信号,当WTCNT(de)值递减到0(de)时候则发生time out,重而重起系统. 用来设置多少个时钟周期 (t_watchdog) 总(de)定时长度T=WTCNTt_watchdog)d)看门狗增强系统稳定性(de)原理是:设一系统程序完整运行一周期(de)时间是Tp,看门狗(de)定时周期为Ti,要求Ti>Tp. 在程序运行一周期后,修改定时器(de)计数值,只要程序正常运行,定时器就不会溢出. 若由于干扰等原因使系统不能在Tp 时刻修改定时器(de)计数值,定时器将在Ti 时刻溢出,引发系统复位,使系统得以重新运行,从而起到监控作用.4.看门狗定时器溢出会可能产生哪两路输出如何设置定时器定时器初值(如PCLK时钟频率为60MHz,看门狗控制寄存器中(de)预分频因子设为99、再分频因子设为32,若要产生秒钟(de)看门狗定时中断,则WTDAT中(de)计数初值为)a)产生中断和复位信号两大功能是:定时功能和复位功能b)T_watchdog=1/(PCLK/Precaler value+1)/Division_factor5.PWM 定时器(de)工作原理,其相关寄存器(de)作用(如用哪个寄存器设置计数器和比较器初值,计数器寄存器能直接读写吗如果不能我么又是如何来读(de) ),以及产生PWM信号占空比是由哪两个寄存器来确定(de) 如何编程产生不同频率和占空比(de)PWM信号,定时器(de)输出脉冲(PWM)(de)周期如何计算,脉宽如何计算a)计数器寄存器不能直接读写,因为计数器TCNT没有地址,不能对其操作.定时器值可以被写入定时器计数缓冲寄存器(TCNTBn),当TCNTn(de)值等于0时,自动重载操作把TCNTBn(de)值装入TCNTn,只有当自动重载功能被使能并且TCNTn(de)值等于0(de)时候才会重载.b)PWM信号占空比是由TCNTn和TCMPn两个寄存器来确定(de)c)rTCFG0 = 158<<0; //低八位为定时器0和1(de)预分频值为158rTCFG1 = 3<<0; //选择定时器0为16分频rTCNTB0 = 100; //向计数缓冲器写入100rTCMPB0 = 50; //向比较缓冲器写入50rTCON = 1<<1;//手动更新rTCON = (1<<3)|(1<<0);//自动更新,并启动e)6.s3c2410(de)PWM定时器有几个,哪几个能输出PWM信号,哪个具有死区动能PWM定时器有5个{(定时器0、1、2、3、4)定时器4仅供内部定时而没有输出引脚}定时器0、1、2、3能输出PWM信号定时器0具有死区动能(死区就是在上半桥关断后,延迟一段时间再打开下半桥或在下半桥关断后,延迟一段时间再打开上半桥,从而避免功率元件烧毁.这段延迟时间就是死区.)第9讲存储控制器1.s3c2410(de)bootloader(即启动代码)(de)分成哪几个步骤以及各步骤完成哪些主要任设置中断向量表:系统运行有异常中断发生时,ARM处理器便把PC指针强制置为向量表中对应中断类型(de)地址值,从而跳到存储器其他位置(de)相应标号处执行.初始化看门狗和外围电路:关闭看门狗设置堆栈指针:ARM有7种工作模式,而每一种模式所用堆栈是不同(de),所以初始化堆栈必须初始化这7种模式下(de)堆栈.初始化系统时钟:改变CPU总线模式(快速->异步)初始化存储控制器:设置存储器控制寄存器(de)值初始化数据区:内核映像开始总是在Flash里面(de),其中RO部分可以在Flash中执行,也可以转移到RAM中执行,而RW和ZI必须转移到RAM中执行.数据区初始化就是完成必要(de)部分从Flash到RAM(de)数据传输和内容清零.跳转到C程序(de)Main()函数:是改变处理器模式,转入到C程序(de)人口操作.2.s3c2410存储空间有多大,分成了几个组,每组空间有多大,最大能挂接多大SDRAM存储空间有1GB;分成了8组;每组空间128M;最大能挂接256M(de)SDRAM,就是bank6和bank7.。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

献给ARM初学者ARM简介与编程1.ARM简介(摘录)ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。

技术具有性能高、成本低和能耗省的特点。

适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。

ARM将其技术授权给世界上许多著名的半导体、软件和OEM厂商,每个厂商得到的都是一套独一无二的ARM相关技术及服务。

利用这种合伙关系,ARM很快成为许多全球性RISC标准的缔造者。

目前,总共有30家半导体公司与ARM签订了硬件技术使用许可协议,其中包括Intel、IBM、LG半导体、NEC、SONY、菲利浦和国民半导体这样的大公司。

至于软件系统的合伙人,则包括微软、升阳和MRI等一系列知名公司。

ARM架构是面向低预算市场设计的第一款RISC微处理器。

2.产品介绍ARM提供一系列内核、体系扩展、微处理器和系统芯片方案。

由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行(理论上如此)。

典型的产品如下。

①CPU内核--ARM7:小型、快速、低能耗、集成式RISC内核,用于移动通信。

-- ARM7TDMI(Thumb):这是公司授权用户最多的一项产品,将ARM7指令集同Thumb扩展组合在一起,以减少内存容量和系统成本。

同时,它还利用嵌入式ICE调试技术来简化系统设计,并用一个DSP增强扩展来改进性能。

该产品的典型用途是数字蜂窝电话和硬盘驱动器。

--ARM9TDMI:采用5阶段管道化ARM9内核,同时配备Thumb扩展、调试和Har var d总线。

在生产工艺相同的情况下,性能可达ARM7TDMI的两倍之多。

常用于连网和顶置盒。

②体系扩展-- Thumb:以16位系统的成本,提供32位RISC性能,特别注意的是它所需的内存容量非常小。

③嵌入式ICE调试由于集成了类似于ICE的CPU内核调试技术,所以原型设计和系统芯片的调试得到了极大的简化。

④微处理器--ARM710系列,包括ARM710、ARM710T、ARM720T和ARM740T:低价、低能耗、封装式常规系统微型处理器,配有高速缓存(Cache)、内存管理、写缓冲和JTAG。

广泛应用于手持式计算、数据通信和消费类多媒体。

--ARM940T、920T系列:低价、低能耗、高性能系统微处理器,配有Cache、内存管理和写缓冲。

应用于高级引擎管理、保安系统、顶置盒、便携计算机和高档打印机。

--StrongARM:性能很高、同时满足常规应用需要的一种微处理器技术,与DEC联合研制,后来授权给Intel。

SA110处理器、SA1100 PDA系统芯片和SA1500多媒体处理器芯片均采用了这一技术。

--ARM7500和ARM7500FE:高度集成的单芯片RISC计算机,基于一个缓存式ARM7 32位内核,拥有内存和I/O控制器、3个DMA通道、片上视频控制器和调色板以及立体声端口;ARM7500FE则增加了一个浮点运算单元以及对EDO DRAM的支持。

特别适合电视顶置盒和网络计算机(NC)。

Windows CE的Pocket PC只支持ARM Windows CE可支持多种嵌入式处理器,但基于Windows CE的Pocke t PC则只支持ARM一种。

微软在对SH3、MIPS、ARM等嵌入式处理器做了评估后认为,ARM是一种性价比较好的选择。

由于目前ARM在手持设备市场占有90%以上的份额,只支持ARM,可以有效地缩短应用程序开发与测试的时间,也降低了研发费用。

由于ARM开放其处理器授权,因此,用户在市场上可以在多家整机厂商中进行选择,从而保证了这一市场的竞争性。

2. ARM芯片CL-PS7111主要特点电平2.7v/3.3v.相对应CPU工作频率13MHz/18MHz. 13MHz位节电模式, 性能相当于33MHz Inter 486 PC ARM710A内核ARM7 CPU8K 4向缓存(cache)MMU 带有64入口TLB(Transition Look-aside Buffer)DRAM控制器支持16位和32位DRAMROM/SRAM/Flash Memory 控制可译码4,5或6个独立的256M存储空间段每个存储段支持8位,16位和32位操作,并支持分页模式可编程ROM/SRAM/Flash Memory支持两个低功耗CL-PS6700 PC卡(PCMCIA)控制器2K 片内 SRAM用于程序快速执行片内Boot ROM (128Byte)两个同步串行接口支持SPI,或Microwire2兼容音频解码器(Audio Codec)27位通用接口GPIO(general-purpose I/O port)3个8位和1个3位GPIO port支持键盘阵列扫描(Scanning keyboard matrix)两个异步串口 UARTs支持高达115.2K 波特率内有两个接收发送(TX,RX) 16Bytes FIFOs缓冲支持MODEM控制信号DC-to-DC转换器接口提供两个96KHz时钟输出,通过编程duty ratio(1/16---15/16)操作LCD控制器直接信号扫描板接口,单色LCD面板的大小可编程从16到1024个像素,16个像素为一个单位视频帧大小可编程到128K byte每个像素点的位数可编程1,2,4位计时器和实时时钟两个16位计时器(Timer counter)和一个32位实时时钟(RTC)3. 调试工具及调试方法ARM Project Manager (APM) include ARM Debugger: 这个工具由ARM提供主要是开发程序, 编程调试AR M芯片, 有相当不错的开发环境和远端调试功能, 支持汇编和C. 它带有一个ARM自己的嵌入式操作系统A RM Angel, 用户可以在它的上面开发自己的嵌入式软件, 不过这个操作系统不是实时多任务的.通过计算机串口与处理器UART相连,设置计算机的超级终端 ( Hyper Terminal ), 通过超级终端察看硬件情况(寄存器设置,数据等)和程序运行情况,当然程序重要加入向UART送出数据的指令, 用Beep报警也是经常用的. 这种调试方法是用于底层调试硬件,找出硬件存在的问题.VxWorks 在Shell 不能正常运行前,也是采取这种方法来调试程序,不过一般不是硬件问题,而是BSP中存在的问题,需要根据硬件,修改BSP.需要说明的是:上述方法是在没有硬件仿真器的情况下采用的,仿真器是底层调试硬件程序最好,最简便直观的办法。

4. ARM7 编程要点及示例ARM编程可参考程序示例 ARM_Boot Flash ROM驱动VxWorks image 装入ARM的过程:ARM7 有两种运行模式, Boot 模式和 Normal 模式, Boot模式主要是把程序装入(down load 或load )Fl ash ROM中用的, Normal模式是一般运行程序用的.ARM7 Boot 模式时, Flash 的地址是0x70000000片选型号是CS0 (Normal模式下,Flash地址为0x000000 00)ARM7内部有128byte的BootROM和2K的SRAM,当需要Download VxWorks image时,ARM启动采用Boot方式启动运行存在128byte BootROM中的程序初始化ARM内部的COM口,从COM口接受数据到2K的SRAM,这2K程序是用来真正Load VxWorks的,2K程序Load完毕后系统自动跳转到这2K程序执行,它的作用是再次初始化内部的COM口,通过COM口接受VxWorks到DRAM,然后由DRAM写入FLASH。

在主板2K SRAM运行的Boot Load程序执行过程,可参看程序示例中ARM Boot Load程序写入完毕后,切换到Normal模式重新启动系统,系统自动跳到FLASH 0X00000000开始运行VXWORKS。

用PC机上的COM1与ARM内部的UART1(COM)通信来Download VxWorks。

主要管脚定义32条数据线: D0-------D3128条地址线: A0-------A27 little endian 定义, 相对应数据排列 0 1 2 3 4 5 6--------276条片选信号脚: CS0-------CS5, 其实作用相当于地址线 A28------A314个8位的PORT口: PORT A, PORT B , PORT D主要用于外围芯片信号的控制. PORT E有双作用.例如 PORT A 控制键盘的行信号, PORT B 用于RS232, PORT D 用于控制MODEM, FPGA..外部中断信号EINT, EXTFIQ.编程时要根据主板原理图和硬件手册进行.看硬件图纸, 该芯片和CPU的那些管脚连结. 特别是 PORT 口和片选线.查CPU手册, 得到PORT 口和该片选的硬件地址.编程: 用PORT口直接对芯片操作,如开,关,RESET等, 用片选地址和芯片内地址结合对该外围芯片操作. Exception vectors, 中断向量表及中断分配Vector 地址 ExceptionException Mode Priority(1=High)0x0 ResetSvc 10x4 Undefined InstructionUndef 60x8 Software InterruptSvc 60xC Prefetch AbortAbort 50x10 Data AbortAbort 20x14 ReservedNot applicable Not applicable0x18 Interrupt (IRQ)irq 40x1C Fast Interrupt (FIQ)Fiq 3这个向量表必须要放置在系统地址0x00000000 (一般是逻辑地址, 即经过MMU映射后的地址)处. 一般是在这些地址上放跳转指令 BL, 跳到相应的地址空间执行相应的程序.如系统执行从0x00000000 Reset开始, Reset 跳转到某一地址开始运行操作系统.程序示例,中断向量表 (ARM asm):__VectorStart ; Start of ARM processor vectorsLDR pc,ResetV ; 00 - ResetLDR pc,UndefV ; 04 - Undefined instructionsLDR pc,SWIV ; 08 - SWI instructionsLDR pc,PAbortV ; 0C - Instruction fetch abortsLDR pc,DAbortV ; 10 - Data access abortsLDR pc,UnusedV ; 14 - Reserved (was address exception)LDR pc,IRQV ; 18 - IRQ interruptsLDR pc,FIQV ; 1C - FIQ interrupts中断号分配 (FIQ, IRQ)中断类型中断号 Name说明FIQ 0 外部中断 EXTFIQ 管脚 NEXT FIQ…… … …IRQ 5 外部中断 EINT1 管脚 NEINT1IRQ 6 外部中断 EINT2 管脚 NEINT2IRQ 7 外部中断 EINT3 管脚 NEINT3…… … …IRQ 12 内部中断 UTXINT1 UART1 TX FIFO 为空…… … …中断号也是寄存器INTMR和INTSR的位,所以在ARM中中断的编程要点是看硬件图纸, 该外设和CPU的那一个管脚连结.查CPU手册, 得到中断号及INTMR,INTSR的地址.编程注: 如果不是写底层driver, 只是在系统上层编程(如VxWorks, Linux) 知道中断号即可.程序示例(VxWorks)://登记中断号 5, 和相应的中断例程 ComISR.intConnect ( ( VOIDFUNCPTR * ) 5, ComISR, 0 ) ;//使能这中断intEnable ( ( VOIDFUNCPTR * ) 5 );……ARM Interrupts: ARM processors implement fast and normal level of interrupt,signalled extern ally, synchronise interrupts before an exception is raised. A fast interrupt requst (FIQ) wi ll desable subsequent normal and fast interrupt by setting the I and F bit in CPSR,and a nor mal interrup request(IRQ) will disable subsequent normal interrupt by setting I bit in CPSR.计时器中断编程过程ARM7一般内部有两个16位计时器(Timer counter)和一个32位实时时钟(RTC),计时器中断属于IRQ中断,这里以计时器1为例叙述一下中断的编程过程设置interrup mask INTMR1寄存器 0x80000240 第8位TC1OI计时器1为使能. 在0x800000300 计时器1 的数据寄存器TC1D写入指定数据,这样数据开始从这个给定的数开始递减计数,计数递减至 0 后,会产生一个溢出underflow IRQ中断请求,中断状态寄存器INTSR1 0x80000240 第8位TC1OI置位.系统会跳到中断向量表地址 0x00000018 处,执行相应的中断程序,中断程序通过判断中断的类型(判断中断状态寄存器的位),来执行相应的中断服务程序ISR. 中断状态寄存器标志位复位,计时器开始重新开始计时.存储空间管理单元(MMU)物理地址映射重点在于片选地址CS的选取,另外MMU映射需要参考这个物理地址ARM7 物理地址映射表地址内容大小备注0xF000.0000 Unused 256Mbytes0xE000.0000 Unused 256Mbytes0xD000.0000 DRAM Bank 1 256Mbytes0xC000.0000 DRAM Bank 0 256Mbytes 外接DRAM0x8000.2000 Unused --1Gbytes0x8000.0000 内部寄存器地址 8Kbytes 主要的I/O和控制0x7000.0000 Boot ROM 128 bytes 片内,封有Boot程序0x6000.0000 On-chip SRAM 2 Kbytes 片内,存放Load程序0x5000.0000 PCMCIA-1(NCS[5]) 4*64 Mbytes0x4000.0000 PCMCIA-0(NCS[4]) 4*64 Mbytes0x3000.0000 外部扩展(NCS[3]) 256Mbytes0x2000.0000 外部扩展(NCS[2]) 256Mbytes0x1000.0000 ROM Bank 1(NCS[1]) 256Mbytes0x0000.0000 ROM Bank 0(NCS[0]) 256Mbytes 外接Flash ROMMMU 虚拟(逻辑)地址和物理地址的映射实例Vxworks支持的ARM架构的处理器,一般是RAM的起始位置为0x0,而实际上ARM的物理地址0x0是ROM的起始地址,RAM在高位地址.这就需要系统在Boot过程中,执行MMU程序,重新映射RAM和ROM的地址.即RAM 起始地址为0x0.MMU主要有ARM7中协处理器coprocessor 15控制,coporocessor主要控制:片内的MMU指令和数据缓存(IDC)Write Buffer(WB)MMU有两层页表(two-level page table)用来进行虚拟地址向物理地址转换,CP15定义16个寄存器,只有M RC和MCR指令才能对它们操作.在VxWorks系统中,MMU表分成两部分:boot up table和final table.在文件ramAtHigh.h中定义.该表在文件romInit.s中初始化,语句为:BL _ramAtHigh_1(2)MMU映射实例虚拟(逻辑)地址(VxWorks系统) 硬件物理地址RAM 首地址 0x0000.0000Low Address 0x0000.1000High Address 0x0060.0000ROM 0x0100.0000其他的地址逻辑地址和物理地址映射地址不变0x8000.0000 内部寄存器...................................相同的颜色映射对应的地址ROM 0x0000.0000 VxWorks image和文件系统RAM 首地址 0xC000.0000 存放LCD,MMU表等0xC004.0000 中断向量表等0xC004.1000 VxWorks运行位置0xC064.0000 VxWorks从ROM解压后Copy的位置其他的地址映射地址不变0x8000.0000 内部寄存器............................。

相关文档
最新文档