ARM7在嵌入式应用中启动程序技术难点分析

发布者:sheng44最新更新时间:2012-03-20 来源: 中华电子网关键字:ARM7 手机看文章 扫描二维码
随时随地手机看文章

技术难点分析

⑴.MMU的使用

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

MMU的两个主要功能是:

将虚地址转换成物理地址。 

控制存储器存取允许。MMU关掉时,虚地址直接输出到物理地址总线。
 
在实践中,使用MMU解决了如下几个问题:

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

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

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

启动程序中生成的匹配表中包含地址映射,存储页大小(1M,64K,或4K)以及是否允许存取等信息。

例如:目标板上的16兆DRAM的物理地址区间为0xc000,0000~0xc07f,ffff;0xc100,0000~0xc17f,ffff;16兆ROM的虚拟地址区间为:0x0000,0000~0x00ff,ffff。匹配表配置如下:

可以看到左边是连续的虚拟地址空间,右边是不连续的物理地址空间,而且将DRAM映射到了0地址区间。 MMU通过虚拟地址和页面表位置信息,按照转换逻辑获得对应物理地址,输出到地址总线上。

应注意到的是使能MMU后,程序继续运行,但是对于程序员来说程序计数器的指针已经改变,指向了ROM所对应的虚拟地址。

⑵目标文件的分布装载分析

首先创建一个文本文件,称为分布装载描述文件。它为应用程序的各部分指定装载区间和执行区间。

举例如下:

FLASH 0x01000000 0x011fffff ;2M FLASH

{

FLASH 0x01000000

{

boot.o(BOOT,+FIRst)

* (+RO)

}

DRAM 0x00000000

vector.0(VECTOR,+First) 

int_handler.o (+RO) 

* (+RW,+ZI)

}

在ARM链接器的命令行里加入“-scov description-file –scf”或“-scatter description-file”,编译链接后,将产生一个分布装载文件。

链接器同时产生一组符号,给出每个分布描述文件中命名的区间的长度,装载地址和执行地址。由于链接器和C库都没有将代码从它的装载区间拷贝到执行区间,或创建一个零初始化区域的功能,所以要由应用程序员利用这组符号产生的信息完成这项工作,这是在呼叫C程序之前必须完成的,举例如下:

LDR r0, = |Load$$DRAM$$Base|

LDR r1, = |Image$$DRAM$$Base|

CMP r0, r1 ; 检查装载地址和执行地址是否相同

BEQ do_zi_init ; 相同,则不拷贝该区间,初始化零数据区

MOV r2, r1 ; 不相同,将装载区拷贝到执行区 

LDR r4, = |Image$$DRAM$$length|

ADD r2, r2, r4

BL copy

do_zi_init

LDR r1, = |Image$$DRAM$$ZI$$Base|

MOV r2, r1

LDR r4, = |Image$$DRAM$$ZI$$length|

ADD r2, r2, r4

MOV r3, #0

BL zi_init ; 调用零初始化子程序

结束语:

本文介绍的启动程序已经在以Cirrus Logic公司的EP7211和Ateml公司的AT91M40400开发的系统上运行并测试通过。今后可以在这一基础上添加串行通信模块和FLASH操作模块,开发系统监控程序,从而实现应用程序的在线升级。

关键字:ARM7 引用地址:ARM7在嵌入式应用中启动程序技术难点分析

上一篇:基于并行流水结构的RS255/RS233译码器设计
下一篇:嵌入式系统中可配置式GPIO模拟SPI总线方法

推荐阅读最新更新时间:2024-03-30 21:52

ARM7与FPGA在工控和故障检测中的应用
工业控制中往往需要完成多通道故障检测及多通道命令控制(这种多任务设置非常普遍),单独的CPU芯片由于其外部控制接口数量有限而难以直接完成多路检控任务,故利用ARM芯片与FPGA相结合来扩展检控通道是一个非常好的选择。这里介绍用Atmel公司ARM7处理器(AT91FR40162)和ALTERA公司的低成本FPGA芯片(cyclone2)结合使用完成多通道检控任务的一种实现方法。 各部分功能简介 图1为此系统的结构连接框图。如图所示,ARM芯片与FPGA芯片之间通过数据总线、地址总线及读写控制线相连,而与终端PC则通过串口通信;FPGA与目标设备通过命令控制总线和故障检测总线相连。 图1 系统结构框图 1 故障检测和
[单片机]
<font color='red'>ARM7</font>与FPGA在工控和故障检测中的应用
uc/OS-II下ARM7定时器捕获实现红外解码
今天下午的时候,调试努力之下,终于把红外解码弄出来了。 其实以前有次比赛的时候就已经用到了红外,只是那次用的是51单片机,用的是外部中断和延时检测脉宽来进行解码,因为51的时钟这些比较简单,所以解码很容易就正确了。但是现在换到了ARM7平台下,由于对它的不是很熟悉,怎么用普通语句实现精确延时对我来说是个难点。最后考虑用两个方案来实现红外的解码。方案一是用外部中断加定时器延时检测脉宽进行解码,但是结果并没有我想的那样美好,调试了半天也没有实现正确的解码,个人认为是任务节拍的影响,但是确实不知道该怎么修改,最后放弃方案一,改用方案二,用定时器捕获实现红外的解码,并最终实现。 LPC2103芯片带有定时器捕获,可以设置为下降沿,上升沿或双
[单片机]
uc/OS-II下<font color='red'>ARM7</font>定时器捕获实现红外解码
基于ARM7的LCD显示电压示波系统的设计
本设计以ARM7微处理器为核心,采用ARM7中的高速A/D为测压单元,提高了数据传输的可靠性;数据结果通过LCD实时显示,显示方式友好直观;采用RAM和UART分别存储和传输数据,实现了监测数据的长期存储和与PC的通信传输。采用31/2位或41/2位段位式LCD液晶数码显示器的仪表已不罕见,但段位式LCD显示器的功能较局限。对于多功能的智能仪表,采用点阵式LCD液晶显示模块,可提供更为丰富灵活的显示内容。点阵式LCD显示模块是一种集显示、控制与驱动与一体的显示器件。为了简化电路,充分发挥ARM的性能,采用了320×240的16级灰度LCD。 系统总体方案设计 本系统要求软件完成的功能有以下几个方面。 ● 实时数据采集功能。
[嵌入式]
NXP 半导体推出业界第一款内嵌双高速总线的ARM7微控制器
NXP LPC2300 和 LPC2400 具有两个 AHB 总线,确保 Ethernet 、 USB 、 CAN 、 SDRAM 和其它外设可同时运行 荷兰埃因霍温, 2006 年 9 月 26 日 – 由飞利浦创立的新独立半导体公司 NXP 半导体,今日宣布推出业界第一款具有可同时供双高速总线通讯运行的基于 ARM7 的微控制器( MCU )系列。 NXP LPC2300 和 LPC2400 是市场上仅有的具有 2 个 ARM 高速总线( AHB )的 ARM7 MCU 产品,可以使得高频宽
[新品]
基于CAN总线的送经卷取的系统设计
纺织业是我国一大传统行业,随着国际棉纺织技术向优质、高产、自动化、连续化方向的迅速发展,提高我国纺织产业的机电一体化水平,实现工艺参数的智能化是各纺织企业的工作重点。 电子送经卷取系统是纺织工艺流程的一个重要环节,其控制性能的优劣直接影响着工艺过程及织机的效率。然而,通信又是该系统的关键技术,使得电子送经卷取系统通信的设计受到国内外纺织公司(德国的百格拉,意大利的舒美特等公司)的高度重视,提出了多种设计方案。然而,中国用户仍然面临着剑杆织机送经和卷取系统的价格昂贵、操作复杂,数据传输效率低等问题。 CAN(控制器局域网)总线是一种有效支持分布式控制和实时控制的串行通信网络,与其它通讯相比,其数据通信具有突出的灵活性和可靠性
[单片机]
基于CAN总线的送经卷取的系统设计
ARM7加速度数据采集系统设计
引言 加速度传感器一直是加速度测试中的重要元件。随着微加速度计的应用越来越广泛,对于微加速度计的数据信号采集和存储变得极为重要。传统的数据采集方法多数是采用单片机完成的,编程简单、控制灵活,但控制周期长、速度慢,特别是对高速转换的数据来说,单片机的速度极大地限制了数据传输速度。 目前,嵌入式系统的应用已经进入到一个高低并行发展的阶段。ARM处理器凭借体积小、功耗低、集成度高、硬件调试方便和操作系统可移植等优点,获得广泛的应用。本文采用基于ARM7TDMI-S核的32位微处理器AT91SAM7X256为控制核心,利用其内部自带的A/D转换器对采集到的加速度值进行转换。 本文应用Model 1221单轴MEMS加速度计,输
[嵌入式]
利用一个ARM处理器对无刷电机实施磁场定向控制
电机驱动能效不论提高多少,都会节省大量的电能,这就是市场对先进的电机控制算法的兴趣日浓的部分原因。三相无刷电机主要指是交流感应异步电机和永磁同步电机。这些电机以能效高、可靠性高、维护成本低、产品成本低和静音工作而著称。感应电机已在水泵或风扇等工业应用中得到广泛应用,并正在与永磁同步电机一起充斥家电、空调、汽车或伺服驱动器等市场。推动三相无刷电机发展的主要原因有:电子元器件的价格降低,实现复杂的控制策略以克服本身较差的动态性能成为可能。 以异步电机为例。简单的设计需要给定子施加三个120°相移的正弦波电压,这些绕组的排列方式能够产生一种旋转磁通量。利用变压器效应,这个磁通量在转子笼内感应出一股电流,然后产生转子磁通量。就
[工业控制]
基于ARM7的GPRS无线VPN路由器设计
简介: 本文较为详细地介绍了一种新型无线VPN路由器的设计方法。首先从硬件构造上进行剖析,提供了详细的硬件开发方案。然后重点阐述了软件设计方法,包括操作系统的移植,实现无线网络连接的PPP拨号程序以及实现VPN 的IPSEC应用程序。通过使用本文中所提出的方法,可以很好的满足很多行业的应用需求。 近年来蜂窝式移动通信系统在中国的发展非常迅速,不仅给用户带来了方便快捷的语音通信服务,而且还能提供灵活的数据通信服务。 本文提出了一种新型的基于ARM7的嵌入式设备———GPRS无线VPN路由器的设计方法,使得原先使用有线通信系统的各种业务终端设备能够非常方便地接入到GPRS网络中,利用无线移动网络提供的数据服务来进行数据通信。
[单片机]
基于<font color='red'>ARM7</font>的GPRS无线VPN路由器设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新工业控制文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved