1 / 31

ARM ADS 1.2 的使用

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 工具的定位有所不同 .

wolfe
Download Presentation

ARM ADS 1.2 的使用

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ARM ADS 1.2的使用 ARM ADS

  2. 课程目标 • ADS开发环境的基本使用 • JTAG介绍 • 用ADS进行JTAG在线调试

  3. ADS简介 • ARM ADS 全称为 ARM Developer Suite 。是 ARM 公司推出的新一代 ARM 集成开发工具。现在 ADS 的最新版本是 1.2 ,它取代了早期的 ADS1.1 和 ADS1.0 。是一个在Windows上开发工具。

  4. ADS的定位 • ADS是针对ARM的专用开发工具.与gcc以及使用gcc的IDE工具的定位有所不同. • ADS只能使用自带的标准C库/C++库来进行开发.不能象GCC支持操作系统库. • ADS合适开发和调试如下项目 • 无操作系统的C程序.这个相当把ARM作为一个32单片机来使用. • 底层程序.如bootloader • 能直接调试简单的操作系统,如uC-OS-II,ucLinux • 驱动程序验证 • 因此ADS与gcc的应用领域是有所差别的,ADS主要集中比较底层的程序. • 由于ADS能直接用C来控制硬件,也广泛用驱动的验证,硬件功能演示等作用.

  5. ADS组成 • ADS 由命令行开发工具, ARM 实时库, GUI 开发环境 (Code Warrior 和 AXD) ,实用程序和支持软件组成。 有了这些部件,用户就可以为 ARM 系列的 RISC 处理器编写和调试自己的开发应用程序了。 • Code Warrior是一个集成界面提供代码编辑,目标代码编译,链接的一个图形GUI环境. • AXD (ARM eXtended Debugger) • 我们重点集在这两个图形界面工具(Code Warrior 和 AXD)的使用

  6. ADS用法 • ads1.2中文教程.pdf • ADS步步学.pdf

  7. 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相连.

  8. AXD的在线调试 • AXD需要一个Debug Agent软件 与真实的硬件相连,才可以调试. • 这样可以让AXD无需了解各种硬件的细节.无论是用并口,还是USB的接口,都可以通过统一的RDI接口与Debug Agent相连.这样结构比较灵活. • 常用Debug Agent软件有BANYANG ,ARM7,H-jtag. • SBC2410板的采用H-jtag 作为调试代理

  9. 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器件的编程

  10. 一个完整的ADS开发环境

  11. ADS开发环境安装 • 安装ADS • 安装并口驱动giveio.sys • (参见SBC2410安装手册) • 安装H-jtag • 配置H-jtag与板相连 • 配置AXD与H-jtag相连

  12. 硬件连线,并口安装 • 安装并口成驱动成功后,可在设备管理器中看到为并口配置的端口,如右图所示。 • 将JTAG->并口转换头分别接入板上JTAG口和PC机上并口, • 如果连线成功,即便是板不上电,LED33V指示灯有微弱发光 • 在超级终端下,长按空格键的同时按reset进入Bootloader(VIVI)的控制台(出现下图表示进入VIVI) • 这一步是为了防止在内存同时运行Linux和AXD调试程序发生冲突

  13. 配置H-jtag • 首先要在H-jtag上重新定义线序. • 在菜单上选SETTINGS->JTAG SETTINGS

  14. 配置H-jtag(2) • 跟开发板相连 • 选择菜单栏OPERATIONS->DETECT TARGET • 出现蓝色的CPU 类型和CPU ID表示连 接成功

  15. 配置H-jtag与AXD 相连 • 运行AXD,首先要添加H-JTAG为新的target。点击Options/Config Target-> • 选择add

  16. 配置H-jtag与AXD 相连(2) • 添加H-JTAG 安装目录下的H-JTAG.dll为新的target

  17. 配置H-jtag与AXD 相连(3) • 点击 “打开”,H-JTAG即会被添加为一个新的target,效果如图:

  18. 联接成功的界面 • 当AXD 连接上H-JTAG 之后,H-JTAG 下方的状态栏会有详细的显示,包括调试器前端软件的名称,RDI版本等

  19. 联接成功的界面(2) • 此时AXD也处于就绪状态,通过点击File/Load Image…载入欲调试的axf文件即可

  20. AXD调试UART实例

  21. UART测试实例 • 我们以S3C2410基础测试中的UART测试为例,作一个AXD调试实例. • UART是把向串口输出一系列信息的程序 • 开发板上电,进入超级终端的VIVI状态 • 首先将H-jtag的Discable Vector Catch去掉 ,这样才可以设置断点 • 运行H-jtag 检测到开发板

  22. 运行AXD • 首先在AXD选择configure Target 中,H-jtag作调试代理

  23. AXD 就绪 • 选择target 后,AXD处理就绪状态,并能检测到H-jtag的信息

  24. 装入调试项目image • 选择load Image,一般是装项目的DebugRel版本用于调试

  25. 装入项目源码 • 第一次装入Image时,AXD提示要找到s3c2410init.s ,可在项目目录找到这一文件并装入 • 用openfiles…菜单打开主执行函数main.C

  26. 设置断点 • 一般情况下,AXD会自动在主函数第一句设置断点 • 如果没有设上,可以手工设置断点,可以按文件和行来设置断点

  27. 开始调试 • 按RUN菜单进行调试.这时主函数有断点话,会在第一个断点停住,这里可以用单步调试一步一步执行. • 当运行如图语句时,超级终端会有相应提示

  28. 多次单运运行后 • 串口会连续不断打印出结果

  29. 保存当前设置 • 你可以选择 Save Session …将当前状态保存下来,如target,断点设置.寄存器值等保存下. • 在下次调试时用 Load Session 把保存状态恢复

  30. 课堂练习 • 请将S3C2410的基础例子UART运行起来,并能看成功结果 • 请用相同步骤,调用WDT(WatchDog),GPIO和RTC的测试例子.

  31. 谢谢,请提问 在疯狂的时代把握未来

More Related