ARM处理器正逐步成为嵌入式系统的主力军。ARM处理器启动代码的编写必然成为嵌入式系统开发人员必备的能力。本文首先简单介绍了编写ARM处理器启动代码的必要性及启动代码的一般组成,然后结合ARM7TDMI核的LPC2119,重点阐述了ARM7处理器启动程序底层的组成结构和各部分的具体内容。
维普资讯 http://doc.docsou.com
螂
ET I子 RE术 N ̄ LRCE ENT O Y E0电A量TE I C N MS M C A 测技 U H
第8月 2年1 01 3第 0期 1 卷
A RM7启动代码的分析与设计 王小良吴言荪刘世宇 (重庆大学电气工程学院重庆 404) 0 0 4
摘
要:AR处理器正逐步成为嵌入式系统的主力军。A M RM处理器启动代码的编写必然成为嵌入式系统开发人
员必备的能力。本文首先简单介绍了编写 A M处理器启动代码的必要性及启动代码的一般组成,后结合 R然 ARM7 DMI的 L C 1 9重点阐述了 AR T核 P 21, M7处理器启动程序底层的组成结构和各部分的具体内容。 关键词:ARM7 MI;启动代码;中断向量表;堆栈 TD核 中图分类号:T 2 3 5 P 7+. 文献标识码:. A
Ana y i n sg f ARM 7 b o— o e l ss a d de i n o o tc d W a g Xio in W u Ya s n Li h y n al g a nu u S iu ( lgeo e tia gie rn Col fElcrc lEn n eig,Ch gqn ie st Ch g ig40 04 ) e on ig Unv riy, on qn 0 4
Ab t a t sr c:Th e ARM r c s o s g a u l e o n o e a d mo e p p lr i h mb d e y t m. o r mmi g p o e s r i r d al b c mi g m r n r o u a n t e e e d d s s e Pr g a y n b o—o eo h o tc d ft e ARM r c s o n v t b y b c me t e e s n i la i t fwh m e ia e i ef t h m b d e p o e s r i e ia l e o h s e ta b l y o o d d c t s h ms l o t e e e d d i s s e d v l p n . s,t i p p r smp y p e e t h e e st fp o r mmi g b o— o e a t o o iin f y t m e eo me t Fit h s a e i l r s n s t e n c s i o r g a y n o tc d n is c mp s t s o d o t e h ARM r c s o
.Th n poesr e,wih ARM 7 t TDM Ic r f ( 1,i e h s z s t es h ta e s r c u e a d e c a t f o e o LP 1 9 t mp a i h u s r t tu t r n a h p r e o t o s i t ft e ARM 7 p o e s rb o— o e e h c n t u e o h t r c s o o tc d . Ke wo d: ARM 7 y rs TDM Ic r; b o - o e e c p in v c o s s a k oe o tc d; x e to e t r; t c
0引言 随着生活水平的提高和 I T技术的进步, 8位处理器的 处理能力已经不能满足嵌入式系统的需要了; 1处而 6位
转到用户 C程序。在 A M设计开发中,动代码的编写 R启是一个极重要的过程。然而启动代码随具体的目标系统和开发系统有所区别,通常包含以下部分:但 向量表定义
理器在性能和成本上都没有很大的突破。并且在 8机位的开发中,多使用汇编语言来编写用户程序。这使得程大序的可维护性、移植性等都受到了极大的挑战。正是基易于此, ARM公司适时的推出了一系列的 3 2位嵌入式微控制器。目前广泛使用的是 AR M7和 A M9系列, R A RM7 DMI T内核的 ARM7处理器广泛应用于工业控制、 仪器仪表、汽车电子、通讯、费电子等嵌入式设备。本文消
地址重映射及中断向量表的转移堆栈初始化设置系统时钟频率 中断寄存器的初始化进入 C应用程序
下面就结合 P LP HIIS的 L C 19 P 2 1的启动代码来分析 与说明 ARM7处理器的启动代码的编写。 1 1向量表定义 .
主要以 p ip公司 A M7 D核的 L C 19为例来分 hls i R T MI P 21 析如何编写 ARM7的启动代码。
A M芯片上电或复位后,统进入管理模式、 M R系 R A状态、C R 5指向 O O0 00地址处。中断向量表为每 P ( 1) x0 00 0 一
1启动代码 在嵌入式系统软件的开发中,应用程序通常是在嵌入 式操作系统的开发平台上采用 C语言编写的。然而,在 ARM系统上电复位后,需要设置中断向量表、初始化各模
个中断设置 1字的存储空间,放一条跳转指令,个存通过这条指令使 P C指针指向相应的中断服务程序人口,继而执行相应的中断处理程序。L C 29的中断向量表和 P 21
其它基于 A M核的芯片中断向量表较类似,要注意 R只 L C 2 9要使向量表所有数据 3位累加和为零 P 21 2 (xO OO O O O00 1 O OO OO - x0 00 C的 8个字的机器码累加 ),才能使用户的程序脱机运行。L C 2 9 P 2 1的中断向量表如图 1 所示。 1
式堆栈、系统时钟频率等,设置而这些过程都是针对 A M R内部寄存器结构的操作, C语言编程是很难实现的。因用 此在转到应用程序的 c c+编写之前,/+需要用 AR的汇 M编语言编写启动代码,由启动代码完成系统初始化以及跳
http://doc.docsou.com