周立功LPC2200开发板ARM引导代码分析

需积分: 33 0 下载量 194 浏览量 更新于2024-09-14 收藏 634KB PDF 举报
“ARM实验指导书,适用于学习ARM嵌入式系统,主要介绍周立功LPC2200开发板的引导代码分析。” 在ARM架构的嵌入式系统开发中,LPC2200系列微控制器是常用的一款芯片,尤其在教育和实验环境中。本实验指导书聚焦于如何使用周立功公司的LPC2200开发板进行开发工作。该开发板配备的工具包括ADS1.2编译器和AXD+EASYJTAG调试仿真器,提供了6种不同的工程模板,分别针对ARM指令集和Thumb指令集,以及是否使用UCOSII操作系统进行了区分。 在分析LPC2200开发板的引导代码时,我们可以看到文件功能模块的清晰划分: 1. `Config.h`:配置文件,定义了基本数据类型和系统时钟设置,这对于微控制器的运行速度和时序控制至关重要。 2. `Target.h`:包含软复位函数和目标板初始化函数,这些函数在系统启动时执行,用于设置硬件环境。 3. `Lpc2294.h`:此文件定义了LPC2294芯片的内部寄存器地址映射,并提供了一些固件函数。这些函数可能是在芯片出厂时已经预置的,开发者可以通过声明的函数调用来使用它们。 4. `Target.c`:包含了异常处理程序和目标板初始化程序,开发者可以根据项目需求对这部分代码进行修改。 5. `Heap.s`:负责堆空间的初始化,堆是动态内存分配的主要区域。 6. `IRQ.s`:中断处理代码,处理来自外部设备的中断请求。 7. `Stack.s`:栈空间初始化,最新的模板中可能已经将这部分整合到了其他文件中。 8. `Startup.s`:启动引导代码,这是系统上电后执行的第一段代码,通常包括设置堆栈指针、初始化全局变量等工作。 9. `Mem_a.scf, Mem_b.scf, Mem_c.scf`:可能与存储器配置相关,用于设定内存布局和分区。 10. `Main.c`:主程序入口,通常是应用程序的起点。 在LPC2294.h中,固件函数如`rm_init_entry()`、`rm_undef_handler()`和`rm_prefetchabort_handler()`等被定义,它们是指向预设在芯片内部地址的函数指针,这些函数可能在处理器启动或遇到特定错误时被调用。 通过这个实验指导书,读者可以深入了解ARM体系结构,学习如何使用ADS1.2进行编译,以及如何编写和调试针对LPC2200的嵌入式程序。对于希望掌握ARM微控制器开发的人来说,这是一个宝贵的资源。