### 周立功LPC2200开发板引导代码深入分析 #### 开发板概述及开发环境 周立功LPC2200开发板是一款基于ARM7TDMI内核的微控制器开发平台,广泛应用于教学实验、科研开发等领域。此开发板的核心处理器LPC2200系列具有高性能、低功耗的特点,支持多种通信接口,如串口、SPI、I²C等。 对于该开发板的开发环境,文章提到了以下配置: - **编译软件**:ADS 1.2 (Advanced Development System) 是一款由ARM公司推出的集成开发环境,支持对ARM处理器的编程。 - **调试仿真**:AXD (ARM Debug Monitor) 用于程序的调试;EASY JTAG 则是一种硬件接口,用于实现硬件调试功能。 #### 工程模板及其特点 周立功公司为了便于开发者使用ADS 1.2,提供了多种工程模板,具体包括: - **ARMExecutableImageforlpc2200**:ARM指令集模板。 - **ThumbExecutableImageforlpc2200**:Thumb指令集模板。 - **ARMExecutableImageforUCOSII(forlpc2200)**:支持μC/OS-II操作系统的ARM指令集模板。 - **ThumbExecutableImageforUCOSII(forlpc2200)**:支持μC/OS-II操作系统的Thumb指令集模板。 - **ASMforlpc2200**:汇编语言模板。 - **ThumbARMInterworkingImageforlpc2200**:ARM与Thumb混合使用的模板。 这些模板的主要区别在于指令集的不同以及是否支持μC/OS-II操作系统。例如,支持μC/OS-II的操作系统模板会包含特定的移植代码,以便于在该操作系统下运行应用程序。 #### 文件功能模块划分 接下来是对开发板的关键文件进行功能划分: 1. **Config.h**:定义了基本的数据类型以及系统时钟的配置参数,包括晶振频率、系统核心频率、时钟输出频率等。例如,`Fosc` 定义了晶振频率,一般设定在10MHz到25MHz之间;`Fcclk` 定义了系统核心频率,应为晶振频率的整数倍,最大不超过60MHz。 系统时钟的具体配置在 `TargetResetInit` 函数中实现,位于 `Target.c` 文件中。配置过程涉及到倍频和分频计算,需要根据所需的系统频率来选择合适的倍频系数。 2. **Target.h**:定义了软复位函数和目标板初始化函数,这些函数通常用于系统初始化阶段,例如设置寄存器、配置外设等。 3. **Lpc2294.h**:定义了芯片内部寄存器的地址映射以及固件函数。固件函数通常是出厂时预置的一些基本功能函数,例如复位处理等。通过定义这些函数,可以在上层应用中直接调用,简化开发流程。 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()`:预取中止处理函数。 - `rm_dataabort_handler()`:数据访问中止处理函数。 - `rm_irqhandler()`:外部中断处理函数。 - `iap_entry(a, b)`:内部应用编程接口函数,用于固件更新等操作。 #### Config.h详解 - **系统设置**:定义了晶振频率 (`Fosc`)、系统核心频率 (`Fcclk`)、时钟输出频率 (`Fcco`) 和外设总线频率 (`Fpclk`)。这些参数对于系统时钟配置至关重要。 周立功LPC2200开发板通过丰富的工程模板和精心设计的文件结构,极大地简化了开发者的开发流程。通过理解这些关键文件的功能,可以更好地利用该开发板进行嵌入式系统的设计和开发。
- 粉丝: 1
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助