ARM7启动过程

发布者:心灵清澈最新更新时间:2015-04-24 来源: laogu关键字:ARM7  启动过程 手机看文章 扫描二维码
随时随地手机看文章
嵌入式系统资源有限,程序通常都固化在ROM总运行。ROM中程序执行前,需要对系统硬件和软件运行环境进行初始化,这些工作是用汇编语言编写的启动程序完成。启动程序是嵌入式程序的开头部分,应与应用程序一起固化在ROM中,应首先在系统上运行的启动程序应包含各模块中可能出现的所有段类,并合理安排他们的次序。 

  启动程序一般流程如下: 

  (1) 设置入口指针 

  (2) 设置中断向量 
 
  ARM7要求中断向量必须设置从0地址开始,连续8*4字节的空间,分别是复位、未定义指令错误、软件中断、预取指令中断、数据存取错误、IRQ、FIQ和一个保留的中断向量 

  (如果ROM位于0地址,向量表包含一系列指令跳转到中断服务程序,否则向量必须被动态初始化。可以在启动程序中添加一段代码,使其在运行时将向量表拷贝到0地址开始的存储空间) 

  对于各未用的中断,用一个只包含返回指令的哑函数,以防止错误引起系统的混乱。 

  (3) 初始化堆栈和寄存器 

  取决于使用了哪些中断,一般系统需要处理哪些错误类型。一般来说管理者堆栈必须设置,如果使用了IRQ中断,则IRQ堆栈必须设置。

  如果系统使用了DRAM或者其他的外设,则需要设置相关的寄存器,以确定其刷新频率,数据总线宽度等信息 

  (4) 初始化存储器系统 

  有些芯片可通过寄存器编程初始化存储器系统,而对于复杂系统通常集成了MMU来管理内存 

  (5) 如果有必要改变处理器模式、状态 

  如果系统应用程序是运行在用户模式下,可在此处将系统改为用户模式并初始化用户的堆栈指针。 

  (6) 初始化C语言所需要的存储器空间 

  为正确运行应用程序,在初始化期间应将系统需要读写的数据和变量从ROM拷贝到RAM里;一些要求快速响应的程序,如中断处理程序,也需要在RAM中运行; 如果使用FLASH,对FALSH的檫除和写入也一定要在RAM里运行。ARM公司软件开发工具包中的链接器提供了分布装载的功能,可以实现这一目的。 

  (7) 呼叫C语言 

  ARM有两种指令集:16位的Thumb指令集和32位的指令集。使用16位的存储器可以降低成本,在这种情况下,Thumb指令集的整体执行速度要比ARM32位指令集体,而且提高了代码密度,所以一般用Thumb 编译器将C语言 程序编译成16位代码。 

  处理器在一开始总是处于ARM状态,可使用BX指令转换到Thumb状态呼唤C语言程序,要注意的是用C语言编写的嵌入式程序时,要避免使用不能被固化到ROM的库函数。

  技术难点分析 

  (1) MMU的使用 

  MMU 是存储器管理单元的缩写,是用来管理虚拟内存系统的器件。MMU通常是CPU的一部分,本身有少量的存储空间存放从虚拟地址到物理地址的匹配表。此表称作TLB(转换旁置缓冲区)。所有数据请求都送往MMU,由MMU决定数据只在RAM中还是在大容量的存储器设备内。如果数据不在存储空间内,MMU将产生页面错误中断 

  MMU的两个主要功能是: 

  将虚拟地址转换为物理地址 

  控制存储器存取允许。MMU关掉时,虚地址直接输出到物理地址总线。 

  在实践中,使用MMU解决了以下几个问题: 

  a. 使用DRAM作为大容量存储器时,如果DRAM行列是非平方的,会导致该DRAM的物理地址不连续,这将给程序的编写调试造成极大的不方便,而适当的配置MMU可将其转换成虚拟地址连续的空间 

  b. ARM内核的中断向量表放在0地址,对于ROM在0地址的情况,无法调用中断服务程序,所以在调试阶段有必要将可读写的存储器空间映射到0地址。 

  c. 系统的某些地址是不允许被访问的,否则会产生不可预料的后果,为避免这类错误,可以通过MMU匹配表的设置将这些地址设为用户不可以存取类型; 

  d. 启动程序中生成的匹配表中包含地址映射,存储页面大小(1M、64K 或者4K)以及是否允许存取等信息。
关键字:ARM7  启动过程 引用地址:ARM7启动过程

上一篇:使用EasyARM2131时遇到的一些问题
下一篇:ARM的成功启示录

推荐阅读最新更新时间:2024-03-16 13:59

基于ARM7和CPLD的数字公交站亭系统设计
  针对现有印刷公交站亭提供信息少、无法提供车辆到站预报、增加线路或者修改线路信息麻烦等不足,本文提出了一种新数字公交站亭系统。该系统基于ARM7 和CPLD 架构,通过GPRS 与公交控制中心通信,采用CA 认证保证通信的安全性,能实现实时车辆到站预报、公众信息(如天气预报、重要新闻、交通路况、紧急状态信息)发布、线路信息及时更新以及系统在线升级等功能,具有实时性好、安全性高,可扩展性强等特点,有助于全面提升城市公交站的信息服务水平。   1 数字公交站亭系统总体结构及工作原理   该系统分为控制中心、站亭终端通信模块、站亭终端控制模块、站亭终端显示模块四个部分,总体结构框图如图1,各个部分组成和工作原理介绍如下:   (
[单片机]
基于<font color='red'>ARM7</font>和CPLD的数字公交站亭系统设计
NXP 半导体推出业界第一款内嵌双高速总线的ARM7微控制器
NXP LPC2300 和 LPC2400 具有两个 AHB 总线,确保 Ethernet 、 USB 、 CAN 、 SDRAM 和其它外设可同时运行 荷兰埃因霍温, 2006 年 9 月 26 日 – 由飞利浦创立的新独立半导体公司 NXP 半导体,今日宣布推出业界第一款具有可同时供双高速总线通讯运行的基于 ARM7 的微控制器( MCU )系列。 NXP LPC2300 和 LPC2400 是市场上仅有的具有 2 个 ARM 高速总线( AHB )的 ARM7 MCU 产品,可以使得高频宽
[新品]
ARM7与FPGA相结合的应用
  ARM7与FPGA相结合在工业控制和故障检测中的应用   工业控制中往往需要完成多通道故障检测及多通道命令控制(这种多任务设置非常普遍),单独的CPU芯片由于其外部控制接口数量有限而难以直接完成多路检控任务,故利用ARM芯片与FPGA相结合来扩展检控通道是一个非常好的选择。这里介绍用Atmel公司ARM7处理器(AT91FR40162)和ALTERA公司的低成本FPGA芯片(cyclone2)结合使用完成多通道检控任务的一种实现方法。    各部分功能简介   图1为此系统的结构连接框图。如图所示,ARM芯片与FPGA芯片之间通过数据总线、地址总线及读写控制线相连,而与终端PC则通过串口通信;FPGA与目标设备通过命令控
[工业控制]
基于ARM7的蓝牙接入点的设计与应用
  1引言   在工业现场中,由于有些环境比较恶劣,布线不方便等因素可以采用蓝牙无线通信技术来实现数据的通信。同时,工业现场中有很多以不同方式互连的设备,其中包括非智能化简单数据连接单元 (I/O)、智能化设备 (比如智能传感器、单回路控制器和 PLC)和监控系统 (作为 HMI使用,用于数据记录和监控 )等。这些设备大都是以各种不同的通信协议和媒介来互连的,其中有些就可以用蓝牙无线技术代替。本文以 为例,结合 BCM04蓝牙模块开发了基于蓝牙通信的工业接入点,组建了基于蓝牙通信的阀门、流量计、温度变送器测试系统,实现了带有蓝牙通信模块的工业设备和现有的有线网路的通信。 2蓝牙技术简介   蓝牙(bluetooth)是
[单片机]
ARM 启动过程
对于一般的嵌入式系统来讲,考虑到系统成本,运行速度等因素,往往联合使用好几种存储器件。在下面讲到的例子中,是我在开发中用到的一个 ARM9EJ 的处理器,系统中采用了SDRAM, ROM, Nand FLASH, ITCM ,DTCM 等。 SDRAM: 程序正常运行时所在的存储器, 物理地址 0x24000000 - 0x24800000 (以8M 为例); ROM: 复位后, ARM 从 ROM 启动, ROM 是只读的,出厂时就烧好了,不可更改,正常运行时,物理地址: 0x2C000000 - 0x2C006000 (24KB); Nand FLASH: 外接存储器件,正常运行的程序会通过烧
[单片机]
Proteus仿真ARM7 LPC2101 AD转换器源程序
调试时首先观察待测电阻是否工作正常。在电阻的变化端插入电压探针,具体方式在 左边工具探针中选取电压探针(Voltage)运行仿真,点击电阻,观察探针电压是否在不断 变化。 调试流程 绘制 ADC 接口电路 1.在器件库中找到 ADC 转换芯片(ADC0801),如图连接 ADC0801 和总线信号。其中 ADC0801数据线连接数据总线最低字节(D0-D7),读写信号接总线读写信号(NRD,NWR)。其他信 号请按照下图进行连接。 2.片选信号 AD_CS 接译码电路输出(采用部分译码,对应地址为 0x03XXXXXX)。 3.连接模拟输入,在器件库找到可变电阻(POT-HG)。 完成 ADC0801 工作流程
[单片机]
Proteus仿真<font color='red'>ARM7</font> LPC2101 AD转换器源程序
ARM7入门11,IIC通信
D1点亮说明正确,D1闪烁说明错误。 主程序: /******************************************************************************* *File: Main.C *功能: 使用硬件I2C对EEPROM进行操作,利用中断方式操作 *******************************************************************************/ #include config.h #define CAT24WC02 0xA0 /*定义器件地址*/ #define LED1CON 0x0000040
[单片机]
<font color='red'>ARM7</font>入门11,IIC通信
基于ARM7的路灯监控通信终端的设计
   0 引言   对于城市路灯管理部门来说,防盗、节能等一直是一件非常头疼的事情,需要投入大量的人力、物力和财力,因为路灯数量众多,地理位置分散,给工作人员带来极大的困难。 GPRS即通用分组无线业务 ,英文全称为General Packet Radio Service,这种无线业务是在现有GSM网络上开通的一种新型的分组数据传输业务。GPRS采用分组交换技术,它可以让多个用户共享某些固定的信道资源。GPRS特别适用于间断的、突发性的或频繁的、少量的数据传输,也适用于偶尔的大数据量传输,具有实时在线、按量计费、快捷登录、高速传输、自如切换等优点。因此,利用GPRS组建的无线通信系统是一种造价低,易于维护和推广,无制约,可靠性
[单片机]
基于<font color='red'>ARM7</font>的路灯监控通信终端的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved