330 likes | 868 Views
ARM ADS 1.2 的使用. ARM ADS. 课程目标. ADS 开发环境的基本使用 JTAG 介绍 用 ADS 进行 JTAG 在线调试. ADS 简介. ARM ADS 全称为 ARM Developer Suite 。是 ARM 公司推出的新一代 ARM 集成开发工具。现在 ADS 的最新版本是 1.2 ,它取代了早期的 ADS1.1 和 ADS1.0 。是一个在 Windows 上开发工具。. ADS 的定位. ADS 是针对 ARM 的专用开发工具 . 与 gcc 以及使用 gcc 的 IDE 工具的定位有所不同 .
E N D
ARM ADS 1.2的使用 ARM ADS
课程目标 • ADS开发环境的基本使用 • JTAG介绍 • 用ADS进行JTAG在线调试
ADS简介 • ARM ADS 全称为 ARM Developer Suite 。是 ARM 公司推出的新一代 ARM 集成开发工具。现在 ADS 的最新版本是 1.2 ,它取代了早期的 ADS1.1 和 ADS1.0 。是一个在Windows上开发工具。
ADS的定位 • ADS是针对ARM的专用开发工具.与gcc以及使用gcc的IDE工具的定位有所不同. • ADS只能使用自带的标准C库/C++库来进行开发.不能象GCC支持操作系统库. • ADS合适开发和调试如下项目 • 无操作系统的C程序.这个相当把ARM作为一个32单片机来使用. • 底层程序.如bootloader • 能直接调试简单的操作系统,如uC-OS-II,ucLinux • 驱动程序验证 • 因此ADS与gcc的应用领域是有所差别的,ADS主要集中比较底层的程序. • 由于ADS能直接用C来控制硬件,也广泛用驱动的验证,硬件功能演示等作用.
ADS组成 • ADS 由命令行开发工具, ARM 实时库, GUI 开发环境 (Code Warrior 和 AXD) ,实用程序和支持软件组成。 有了这些部件,用户就可以为 ARM 系列的 RISC 处理器编写和调试自己的开发应用程序了。 • Code Warrior是一个集成界面提供代码编辑,目标代码编译,链接的一个图形GUI环境. • AXD (ARM eXtended Debugger) • 我们重点集在这两个图形界面工具(Code Warrior 和 AXD)的使用
ADS用法 • ads1.2中文教程.pdf • ADS步步学.pdf
JTAG简介 • JTAG(Joint Test Action Group )是1985年制定的检测PCB和IC芯片的一个标准,是芯片厂商是用于在线芯片检测的接口. JTAG的基本原理是在器件内部定义一个TAP(Test Access Port;测试访问口)通过专用的JTAG测试工具对进行内部节点进行测试。 • 1990年被修改后成为IEEE的一个标准,即IEEE1149.1-1990。通过这个标准,可对具有JTAG接口的芯片的硬件电路进行边界扫描和故障检测。 • JTAG引脚的定义为:TCK为测试时钟输入;TDI为测试数据输入,数据通过TDI引脚输入JTAG接口;TDO为测试数据输出,数据通过TDO引脚从JTAG接口输出;TMS为测试模式选择,TMS用来设置JTAG接口处于某种特定的测试模式;TRST为测试复位,输入引脚,低电平有效。 • JTAG现在变成CPU的标准的接口,除了用于芯片检测外, JTAG接口还常用于实现ISP(In-System Programmable�在线编程),对FLASH等器件进行编程。,即常说的在线调试和在线烧录Flash • JTAG在HOST端通常用并口与之相连.也有与USB接口相连的,我们教学是采用并口与开发板上的JTAG相连.
AXD的在线调试 • AXD需要一个Debug Agent软件 与真实的硬件相连,才可以调试. • 这样可以让AXD无需了解各种硬件的细节.无论是用并口,还是USB的接口,都可以通过统一的RDI接口与Debug Agent相连.这样结构比较灵活. • 常用Debug Agent软件有BANYANG ,ARM7,H-jtag. • SBC2410板的采用H-jtag 作为调试代理
H-jtag简介 • 市面硬件仿真器的成本都太高,有多达几千一个. 。而简易仿真器的出现,使得大家可以使用甚至自制ARM仿真器硬件。 • 有了调试器的硬件,还要加上调试代理软件,作为中介,将调试器前端软件(比如AXD)的调试信息与目标板上的目标芯片交互,才能最终完成仿真的任务。目前,可以免费使用的简易ARM仿真器的代理软件很多,差别也比较大,主要表现在易用程度,目标器件支持,调试速度等方面。 • H-JTAG 作为近来新推出的简易ARM 仿真器调试代理,其支持器件比较多,支持的调试器前端软件也比较多,特别是支持keil,其调试速度也很有优势。 • 支持 RDI 1.5.0 与 1.5.1; • 2. 支持ARM7 与 ARM9(包括ARM9E-S 与 ARM9EJ-S); • 3. 支持 thumb 与 arm 指令集; • 4. 支持 little-endian 与 big-endian; • 5. 支持 semihosting; • 6. 支持 wiggler, sdt-jtag 以及用户自定义的简易调试器硬件接口; • 7. 支持 WINDOWS 9.X/NT/2000/XP; • 8. 支持flash器件的编程
ADS开发环境安装 • 安装ADS • 安装并口驱动giveio.sys • (参见SBC2410安装手册) • 安装H-jtag • 配置H-jtag与板相连 • 配置AXD与H-jtag相连
硬件连线,并口安装 • 安装并口成驱动成功后,可在设备管理器中看到为并口配置的端口,如右图所示。 • 将JTAG->并口转换头分别接入板上JTAG口和PC机上并口, • 如果连线成功,即便是板不上电,LED33V指示灯有微弱发光 • 在超级终端下,长按空格键的同时按reset进入Bootloader(VIVI)的控制台(出现下图表示进入VIVI) • 这一步是为了防止在内存同时运行Linux和AXD调试程序发生冲突
配置H-jtag • 首先要在H-jtag上重新定义线序. • 在菜单上选SETTINGS->JTAG SETTINGS
配置H-jtag(2) • 跟开发板相连 • 选择菜单栏OPERATIONS->DETECT TARGET • 出现蓝色的CPU 类型和CPU ID表示连 接成功
配置H-jtag与AXD 相连 • 运行AXD,首先要添加H-JTAG为新的target。点击Options/Config Target-> • 选择add
配置H-jtag与AXD 相连(2) • 添加H-JTAG 安装目录下的H-JTAG.dll为新的target
配置H-jtag与AXD 相连(3) • 点击 “打开”,H-JTAG即会被添加为一个新的target,效果如图:
联接成功的界面 • 当AXD 连接上H-JTAG 之后,H-JTAG 下方的状态栏会有详细的显示,包括调试器前端软件的名称,RDI版本等
联接成功的界面(2) • 此时AXD也处于就绪状态,通过点击File/Load Image…载入欲调试的axf文件即可
UART测试实例 • 我们以S3C2410基础测试中的UART测试为例,作一个AXD调试实例. • UART是把向串口输出一系列信息的程序 • 开发板上电,进入超级终端的VIVI状态 • 首先将H-jtag的Discable Vector Catch去掉 ,这样才可以设置断点 • 运行H-jtag 检测到开发板
运行AXD • 首先在AXD选择configure Target 中,H-jtag作调试代理
AXD 就绪 • 选择target 后,AXD处理就绪状态,并能检测到H-jtag的信息
装入调试项目image • 选择load Image,一般是装项目的DebugRel版本用于调试
装入项目源码 • 第一次装入Image时,AXD提示要找到s3c2410init.s ,可在项目目录找到这一文件并装入 • 用openfiles…菜单打开主执行函数main.C
设置断点 • 一般情况下,AXD会自动在主函数第一句设置断点 • 如果没有设上,可以手工设置断点,可以按文件和行来设置断点
开始调试 • 按RUN菜单进行调试.这时主函数有断点话,会在第一个断点停住,这里可以用单步调试一步一步执行. • 当运行如图语句时,超级终端会有相应提示
多次单运运行后 • 串口会连续不断打印出结果
保存当前设置 • 你可以选择 Save Session …将当前状态保存下来,如target,断点设置.寄存器值等保存下. • 在下次调试时用 Load Session 把保存状态恢复
课堂练习 • 请将S3C2410的基础例子UART运行起来,并能看成功结果 • 请用相同步骤,调用WDT(WatchDog),GPIO和RTC的测试例子.
谢谢,请提问 在疯狂的时代把握未来