ARM技术综述

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

ARM芯片的基本启动软件 芯片的基本启动软件
ARM芯片的基本启动软件 芯片的基本启动软件 6. 切换处理器的工作模式
因为在初始化过程中,许多操作需要在特权模 因为在初始化过程中, 式下才能进行(比如对CPSR的修改), CPSR的修改),所以要特别 式下才能进行(比如对CPSR的修改),所以要特别 注意不能过早的进入用户模式。 注意不能过早的进入用户模式。
ARM的体系结构
复位 当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处理程序处执行。 未定义指令 当ARM处理器或协处理器遇到不能处理的指令时,产生未定义指令异常。可使用该异常机制进 行软件仿真。 软件中断 该异常由执行SWI指令产生,可用于用户模式下的程序调用特权操作指令。可使用该异常机制 实现系统功能调用。 指令预取中止 若处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出中 止信号,但当预取的指令被执行时,才会产生指令预取中止异常。 数据中止 若处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常。 IRQ(外部中断请求) 当处理器的外部中断请求引脚有效,且CPSR中的I位为0时,产生IRQ异常。系统的外设可通过 该异常请求中断服务。 FIQ(快速中断请求) 当处理器的快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常。
arm的体系结构?当系统运行时异常可能会随时发生为保证在arm处理器发生异常时不至于处于未知状态在应用程序的设计中首先要进行异常采用的方式是在异常向量表中的特常处理采用的方式是在异常向量表中的特定位置放置一条跳转指令跳转到异常处理程序当arm处理器发生异常时程序计数器pc会被强制设置为对应的异常向量从而跳转到异常处理程序当异常处理完成以后返回到主程序继续执行
GUI 应用程序
应用软件
C库
操作系统 驱动程序
系统软件
处 flash 内存

器 外 设
硬件
开发环境的介绍 1、开发软件SDT、ADS。 2、FLASH的烧写 一般都通过JTAG接口烧写启动代码。 3、开发软件的应用
ARM的体系结构
ENTRY b ResetHandler b HandlerUndef b HandlerSWI b HandlerPabort b HandlerDabort b. b HandlerIRQ b HandlerFIQ
ARM芯片的基本启动软件 芯片的基本启动软件 基于ARM芯片的应用系统,多数为复杂的片 上系统,该复杂系统里,多数硬件模块都是 可配置的,需要由软件来预先设置其需要的 工作状态,因此在用户的应用程序之前,需 要由专门的一段代码来完成对系统基本的初 始化工作
ARM芯片的基本启动流程总结 芯片的基本启动流程总结
系统的基本初始化内容一般包括: 1. 分配异常向量表 2. 初始化存储器系统 3. 初始化各工作模式的堆栈 4. 初始化有特殊要求的硬件模块 5. 初始化用户程序的执行环境 6. 切换处理器的工作模式 7. 呼叫主应用程序
典型的ARM处理器核产品 处理器核产品 典型的
ARM的体系结构 当系统运行时,异常可能会随时发生,为保 证在ARM处理器发生异常时不至于处于未知 状态,在应用程序的设计中,首先要进行异 常处理,采用的方式是在异常向量表中的特 定位置放置一条跳转指令,跳转到异常处理 程序,当ARM处理器发生异常时,程序计数 器PC会被强制设置为对应的异常向量,从而 跳转到异常处理程序,当异常处理完成以后, 返回到主程序继续执行。
当ARM启动时,PC指针会自动寻找程序入口关 ARM启动时,PC指针会自动寻找程序入口关 启动时 指针会自动寻找程序入口 键字,从关键字处执行, ARM程序的关键字为 程序的关键字 键字,从关键字处执行, ARM程序的关键字为 ENTRY。 ENTRY。 ARM要求异常向量表必须放置在从0x00000000地 ARM要求异常向量表必须放置在从0x00000000地 要求异常向量表必须放置在从 址开始,连续32个字节的空间内。每当一个异常 32个字节的空间内 异常发 址开始,连续32个字节的空间内。每当一个异常发 生后,ARM处理器便强制把PC指针指向对应异常类 处理器便强制把PC指针指向对应异常 生后,ARM处理器便强制把PC指针指向对应异常类 型的向量表中的地址。 型的向量表中的地址。
ARM芯片的基本启动软件 芯片的基本启动软件 2. 初始化存储器系统
存储器类型,存储的容量以及时序配置、总线宽度 存储器类型,存储的容量以及时序配置、 等等。 通常Flash SRAM同属于静态存储器类型 Flash和 同属于静态存储器类型, 等等 。 通常 Flash 和 SRAM 同属于静态存储器类型 , 可以合用同一个存储器端口; DRAM因为有动态刷 可以合用同一个存储器端口;而DRAM因为有动态刷 新和地址线复用等特性, 新和地址线复用等特性,通常配有专用的存储器端 除存储器外, USB的存储器的相关配置 的存储器的相关配置, 口 。 除存储器外 , USB 的存储器的相关配置 , 网络 芯片的存储器相关配置,外接大容量的存储卡的配 芯片的存储器相关配置, 置均在此处实现。 置均在此处实现。
复位 未定义指令 软件中断 指令预取中止 数据中止 IRQ(外部中断请求) IRQ(外部中断请求) FIQ(快速中断请求) FIQ(快速中断请求) 0x0000,0000 0x0000,0004 0x0000,0008 0x0000,000C 0x0000,0010 0x0000,0018 0x0000,001C 管理模式 未定义模式 管理模式 中止模式 中止模式 IRQ 模式 FIQ 模式
ARM芯片的基本启动软件 芯片的基本启动软件 7. 呼叫主应用程序
当所有的系统初始化工作完成之后,就需要把 当所有的系统初始化工作完成之后, 程序流程转入用C 程序流程转入用C语言编写的主应用程序
ARM芯片的基本启动软件 芯片的基本启动软件
IMPORT Main B Main 直接从启动代码跳转到应用程序的主函数入口,当然主函数名字可 以由用户随便定义。 在ARM ADS环境中,还另外提供了一套系统级的呼叫机制。 IMPORT __main B __main __main()是编译系统提供的一个函数,负责完成库函数的初始化和 初始化应用程序执行环境,最后自动跳转到main()函数。但这要进一步 设置一些参数,使用起来较复杂,但随着对ARM的进一步的应用,可以 使用该方式。
ARM嵌入式系统的硬件基本构成 嵌入式系统的硬件基本构成
电源模块
系统总线 微处理器
NOR-Flash NAND-Flash SRAM SDRAM
时钟模块
ARM核 核
复位电路
ROM
外设总线 外围设备
以太网 USB UART Keyboard LCD TOUCH SD A/D Others
ARM嵌入式系统的软件基本构成 嵌入式系统的软件基本构成
ARM的体系结构
ARM有两种工作状态: 有两种工作状态: 有两种工作状态 1、ARM状态 、 状态 2、TUMB状态 、 状态
异常与8位/16位体系结构的中断有很大的相似之处,但异常 异常与8 /16位体系结构的中断有很大的相似之处, 位体系结构的中断有很大的相似之处 与中断的概念并不完全等同 异常类型
ARM芯片的基本启动软件 芯片的基本启动软件 4. 初始化有特殊要求的硬件模块 比如,配置各时钟模块,禁止看门狗模块, 禁止中断控制器
ARM芯片的基本启动软件 芯片的基本启动软件 5. 初始化用户程序的执行环境
映像一开始总是存储在ROM/Flash里面的,其 RO部分RAM中执行;而RW和ZI这两部分是必 须转移到可写的RAM里去。所谓应用程序执行环境 的初始化,就是完成必要的从ROM到RAM的数据传输 和内容清零。
ARM芯片的基本启动软件 芯片的基本启动软件
系统的基本初始化内容一般包括: 1. 分配异常向量表 2. 初始化存储器系统 3. 初始化各工作模式的堆栈 4. 初始化有特殊要求的硬件模块 5. 初始化用户程序的执行环境 6. 切换处理器的工作模式 7. 呼叫主应用程序
ARM芯片的基本启动软件 芯片的基本启动软件 1. 分配异常向量表
面向二十一世纪的嵌入式系统技术
ARM技术综述 技术综述
Advanced RISC Machines
主讲:宋翰青
北京精仪达盛科技有限公司
内容概要
第一部分、基本概念,ARM的硬件结构 第一部分、基本概念, 的硬件结构 第二部分、 芯片基本的启动软件 第二部分、ARM芯片基本的启动软件 芯片基本 第三部分、 第三部分、ARM系列处理器简介 系列处理器简介
基本的概念和发展历史
1.嵌入式系统:以应用为中心,以计算机技术为 基础软硬件可裁减的专用计算机系统。(嵌入到 对象体系中的专用计算机系统) 它的三大特点:嵌入性,专用性,计算机系统 组成部分:嵌入式微处理器,外围硬件电路,操 作系统,用户应用程序。 产品有:MP3,PDA,手持设备(体积小,功耗低) ARM 1991年成立于英国剑桥,出售芯片设计授权。
ARM芯片的基本启动软件 芯片的基本启动软件 3. 初始化各工作模式的堆栈
因为ARM有7种执行状态,每一种状态的堆栈指 因为ARM有 种执行状态, ARM 针寄存器(SP)都是独立的。所以, 针寄存器(SP)都是独立的。所以,对程序中需要 用到的每一种模式都要给SP定义一个堆栈地址。 SP定义一个堆栈地址 用到的每一种模式都要给SP定义一个堆栈地址。方 法是改变状态寄存器内的状态位, 法是改变状态寄存器内的状态位,使处理器切换到 不同的状态,然后给SP赋值。注意: SP赋值 不同的状态,然后给SP赋值。注意:不要切换到 User模式进行User模式的堆栈设置,因为进入User User模式进行User模式的堆栈设置,因为进入User 模式进行User模式的堆栈设置 模式后就不能再操作CPSR回到别的模式了, CPSR回到别的模式了 模式后就不能再操作CPSR回到别的模式了,可能会 对接下去的程序执行造成影响。 对接下去的程序执行造成影响。
ARM7 SamSung:S3C44B0,S3C4510 Cirrus logic:EP7312 ARM9
SamSung 公司的: S3C2410 公司的: Cirrus Logic 公司的: EP9312 公司的: Atmel 公司的: AT91RM9200 公司的:
ARM10
Intel的StrongARM :Xscale(PXA250\255) 的
相关文档
最新文档