使用ADS1.2进行ARM嵌入式系统开发的经验分享

需积分: 9 0 下载量 3 浏览量 更新于2024-09-17 收藏 215KB PDF 举报
"ads1.2使用的经验" ADS1.2是Advanced Development System的简称,它是由Keil公司(现已被ARM公司收购)开发的一款针对ARM架构的嵌入式系统开发工具。这款工具主要用于将C或C++源代码编译成AXF(已链接的执行文件)格式,该格式包含了调试信息,可供后续的调试器如ULINK进行程序调试。ADS1.2广泛应用于早期的ARM芯片开发,提供了集成的开发环境,包括编辑、编译、链接、调试等功能。 在使用ADS1.2时,开发人员通常会经历以下几个关键步骤: 1. **创建项目**:首先,需要在ADS1.2环境中创建一个新的工程,选择对应的ARM处理器型号,配置目标板的内存布局和启动代码。 2. **编写源代码**:使用内置的源代码编辑器编写C或C++程序。示例中的`C_Entry`函数是程序的入口点,`fun1`和`fun2`是两个简单的函数,展示了函数调用的过程。 3. **编译源代码**:通过点击工具栏上的编译按钮或使用快捷键,将源代码编译成OBJ(目标文件)格式。编译过程中,ADS1.2会检查语法错误、类型匹配和其它潜在问题。 4. **链接目标文件**:将编译后的OBJ文件链接成一个完整的AXF文件。链接器负责处理全局变量、函数地址等,并生成可用于目标硬件的代码。 5. **查看反汇编代码**:在示例中,给出了`fun1`和`fun2`函数的反汇编代码,这有助于理解程序在机器级别的执行过程。例如,`bl fun2`指令表示函数调用,`str lr, [sp, #-4]!`用于保存返回地址,`ldr pc, [lr]`则用于返回到调用者。 6. **调试**:使用内置的调试器可以设置断点、单步执行、查看寄存器状态和内存内容,帮助开发者调试程序。示例中的内存访问指令如`ldr r0, [r1, #0]`和`str r0, [r1, #0]`用于读写变量`VarChar`。 7. **下载到目标硬件**:最后,通过JTAG或SWD接口将AXF文件下载到ARM芯片中,进行实际运行和测试。 在使用ADS1.2时,还需要注意配置好正确的设备头文件,这些头文件包含了芯片的外设定义和中断向量表。此外,优化级别、浮动点支持等编译选项也需要根据实际需求进行调整。 总结起来,ADS1.2是一个功能强大的开发工具,对于理解ARM架构的程序执行流程以及进行嵌入式系统的开发具有重要意义。然而,随着技术的发展,现代的嵌入式开发更多地转向了基于GCC的工具链(如ARM-GCC或者IAR Embedded Workbench),这些工具提供了更广泛的硬件支持和更现代化的开发体验。