Professional Documents
Culture Documents
ULINK2 用户指南
Table Of Contents
1. 概述 ................................................................................................................................................ 2
1.1 工具包 .................................................................................................................................. 2
1.2 特性 ...................................................................................................................................... 3
1.3 支持的设备 .......................................................................................................................... 3
1.4 支持的协议 .......................................................................................................................... 4
1.5 软件需求 .............................................................................................................................. 5
1.6 局限性 .................................................................................................................................. 5
1.7 技术参数 .............................................................................................................................. 5
2. 硬件描述 ........................................................................................................................................ 6
2.1 USB 接口 ............................................................................................................................. 6
2.2 LED 指示灯 ......................................................................................................................... 7
2.3 跳线 ...................................................................................................................................... 7
2.4 目标连接器 .......................................................................................................................... 8
2.5 JTAG 接口电路图.............................................................................................................. 10
2.6 启动顺序 ............................................................................................................................ 12
2.7 重启顺序 ............................................................................................................................ 12
3. 安装及使用 ULINK2.................................................................................................................. 13
3.1 连接 ULINK2.................................................................................................................... 14
3.2 安装驱动 ............................................................................................................................ 14
3.3 配置 μVision...................................................................................................................... 15
3.3.1 调试驱动配置 ......................................................................................................... 15
3.3.2 设置Flash 下载....................................................................................................... 18
3.4 下载到 Flash ..................................................................................................................... 27
3.5 调试程序 ............................................................................................................................ 28
3.6 链接多目标 ........................................................................................................................ 28
4. 实时代理 ...................................................................................................................................... 30
4.1 添加实时代理 .................................................................................................................... 30
4.1.1 给工程添加 RTA 文件 .......................................................................................... 31
4.1.2 配置实时代理 ......................................................................................................... 31
4.1.3 修改 STARTUP.S 文件 ......................................................................................... 32
4.1.4 测试实时代理 ......................................................................................................... 33
4.2 添加 I/O 重定向............................................................................................................... 34
4.2.1 添加 RETARGET.C ............................................................................................... 34
4.2.2 配置 RETARGET.C ............................................................................................... 34
4.2.3 测试重定向 ............................................................................................................. 36
4.3 API 函数............................................................................................................................. 36
4.4 接口自定义硬件 ................................................................................................................ 37
5. Addenda......................................................................................................................................... 38
5.1 ULINK2: Configuring the Real-Time Agent....................................................................... 38
1
ULINK2 用户指南
1. 概述
概述
Keil ULINK2 USB-JTAG 适*配器通过 USB 端口将*PC 机与目标硬件(经 JTAG
或 OCDS)连接起来 ,可以实现:
• 下载程序到目标硬件上进行测试;
• 对 许多设备(See 1.3) 的片上 FLASH 存储器进行编程;
• 对许多目标系统的外部 FLASH 存储器进行编程。
ULINK2 适配器
1.1 工具包
工具包
ULINK2 USB-JTAG 适*配器分为两种单独的配置:
• 标准产品*
这是 ULINK2 的标准产品。此产*品包含:
o ULINK2 USB-JTAG 适配器;
o 4 根目标适配器线(用于 ARM 、 µPSD 、 C16x 、 XC16x 和 C8xx 设备);
o 一根 USB 线;
o Keil 评估工具 CD-ROM 。
• 特定芯片产品
这是 ULINK2 的定制产品,它向*许多芯片买主提供评估板。和标准产品的不同之处
在于其缺少附加目标适配器线。*
2
ULINK2 用户指南
1.2 特性
1.3 支持的设备
支持的设备
ULINK2 支持很多公司的设备。当前列表中的 支持的设备 都可用。*
3
ULINK2 用户指南
1.4 支持的协议
支持的协议
ULINK2 支持多种设备和通讯协议。
• A*M7 和 ARM9 设备
这些设备提供 JTAG 编程和调试信号(称为*嵌入式 ICE)
,连接到一个 20 针连接器。
• ARM Cortex-M3 设备
这些设备提供 JTAG 编程和调试信号(称*为嵌入式 ICE)
,连接到一个 20 针连接器。
4
ULINK2 用户指南
• Infineon C1*x 设备
这些设备(C161U、C165H 和 C165UTAH)提供编程和调试信号(称为 OCDS 或片上
调试系统),连接到一个 16 针连接器。
• Infineon XC16x 设备
这些设备(XC161、XC164 和 XC167)提供编程和调试信号(称为 OCDS 或片上调试
系统) ,连接到 16 针连接器。
• Infineon XC8xx 设备
这些设备(XC866、XC886 和 XC888)提供编程*和调试信号(称为 OCDS 或片上调试
系统) ,连接到 16 针连接器。
• STMicroelectronics µPSD 设*备
这些设备(µPSD33xx 和 µPSD34xx)提供 JTAG 编程和调试信号,连接到 14 针连接器。
1.5 软件需求
1.6 局限性
局限性
使用 ULINK2 来调试目标程序时会产生一些局限, 大部分是由片上调试器而产
生的。
• ARM7 和 A*M9 设备
这些设备上的嵌入式 ICE 在 Flash 存储器上至多支持 2 个硬件断点。RAM 上的断点没有
限制。
• ARM Cortex-M3 设备
这些设备上的嵌入式 ICE 在 Flash 存储器上至 多支持 8 个硬件断点。RAM 上的断点也
没有限制。
1.7 技术参数
5
ULINK2 用户指南
2. 硬件描述
硬件描述
下图显示了 ULINK2 适配器 的重要接口及硬件组成。
2.1 USB 接口
USB 接口
ULINK2 USB 接口使用标准 USB 连接器来连接到 PC。ULINK2 由 USB 接口提
供电源*。
6
ULINK2 用户指南
LED 指示灯
ULINK2 适配器有如下 LED 指示灯。
2.3 跳线
跳线
*LINK2 仅有一个跳线设置:VCC。
7
ULINK2 用户指南
2.4 目标连接器
目标连接器
在 ULINK2 内部有 5 个 JTAG 连接器。这些连接器支持各种接线,以备于通过
ULINK 调试不同的对象。 这些连接器有:
UL*NK2 适配器连接器(内部结构)
*TAG 接口
信号 连接到...
TMS TMS 针 — 向 VCC 提供 100K 欧上拉电阻。
TDO TDO 针。
8
ULINK2 用户指南
注意
串行模式接口
信号 连接到...
SWDIO Data I/O 针。为 VCC 提供 100K 欧上拉电阻。
SWO 可选的跟踪输出针。
SWCLK时钟针。为 V*C 提供 100K 欧上拉电阻*。
VCC 提供正电压 *供给 JTAG 接口驱动。
GND 数字地。
RESET RSTIN/ 针 — 连接此针到目标 CPU 的(低)复位输入上。
注意
9
ULINK2 用户指南
JTAG 接口电路图*
下图显示了 ULINK2 的部分 JTAG 接口电路。此图可帮助分析目标硬件的内在
问题。
信号接口电路图— IC2
信号接口电路图— IC4
10
ULINK2 用户指南
信号接口电路图— IC5
信号接口电路图— IC6
11
ULINK2 用户指南
2.6 启动顺序
启动顺序
在对目标系统进行调试之前,ULINK2 执行一系列操作。许多操作都依赖于在
µVision IDE 上的设置。
2.7 重启顺序
重启顺序
12
ULINK2 用户指南
ARM 设备副作用
3. 安装及使用 ULINK2
安装及使用 ULINK2
ULINK2 USB-JTAG 适配器易*于使用。经过简单的配置即可建立编程环境。
• 连接 ULINK2(See 3.1)
介绍ULINK2 , PC 机和目标硬件之间的连接。
• 安装驱动*程序(See 3.2)
介绍如何在 PC 上安*装 USB 驱动。
• 配置 µVision(See 3.3)
介绍怎样为 *Visi*n 配置目标调试和 Flash 编程选项。
• 调试程序(See 3.5)
介绍如何在目标硬件上调试程序。
• 链*接多目标(See 3.6)
介绍如何链接多目标系统到 ULINK2 上。
13
ULINK2 用户指南
3.1 连接 ULINK2
连接 ULINK2
只需将 ULINK2 JTAG 的一端连接到目标硬件的 JTAG 上,带 USB 接口的一端
连接到到 PC 机 上。
ULINK2 适配器与目标硬件连接
ULIN*2 适配器目*标连线
3.2 安装驱动
14
ULINK2 用户指南
3.3 配置 μVision
配置 µVision
Keil 集成开发调试环境 µVision 允许使用 ULINK2 进行:
• 调试在目标硬件上运行的程序;
• 下载到目标硬件上的 Flash 存储器。
• 调试驱动配置(See 3.3.1)
要调试运行在目标硬件上的程序,必须配置 µVision 来使用 ULINK2 作为目标调试使用的调试器。
3.3.1 调试驱动配置
调试驱动配置
使用 Options for Target 工具栏按钮,并单击 Debug 选项卡来*打开调试对话
框。
注意
15
ULINK2 用户指南
当启动调试器时,检查 Load
Application at Startup 和 Run to
main() 选项来加载应用程序,并 执行
到 main() 函数。
件信息。
注意:
16
ULINK2 用户指南
JJTAG 设备链
JTAG Device Chain 项显示了连接到 JTAG 接口的目标板。ULINK2 自动地显示
所有检测到的目标 IDCODE、 设备名和 IR 长度。
注意
3.3.1.3 调试
调试
Debug 项控制调试启动时的高速缓存、下载以及设备*重置属性。
Misc 选项
更多信息请查阅启动顺序(See 2.6)。
3.3.2 设置 Flash 下载
设置 Flash 下载
µVi*ion 使用了目标驱动器控制 Flash 下载。选择 Opti*ns f*r Ta*get — Utilities
对话框中的 Use Target Driver for Flash Pr*gramming :
18
ULINK2 用户指南
• 下载功能(See 3.3.2.1)
• RAM 算*法(See 3.3.2.2)
• 编程算法(See 3.3.2.3)
3.3.2.1 下载功能
下载功能
Flash Download Setup 对话框中的 Download Function 项定义了当目标设备下载
时(Fl*sh — Download)将发生的 Flash 操作。
选择 Program 功能:
3.3.2.2 RAM 算法
RAM 算法
19
ULINK2 用户指南
法的地*址空间。通常它位于片上 RAM。
3.3.2.3 编程算法
编程算法
Flash 下载设置对话框中 Programming Algorithm 项包含目标硬件 Flash 设备的
定义和它们的配置参数(大小、地址空间等等)。µVisi*n 通过设备*配置和编程
算法给每个设备执行写入操作。默认的 µVision 中 包含片上 Flash 存储器的定
义。
可以从列表中选择一个设备来改变它的配置细节。
列表中移除所选的设备。
20
ULINK2 用户指南
3.3.2.4 提供的算法
提供的算法
本章中的页面列出了 *EIL\ARM\FLASH 文件夹中*可用的 Flash 编程算法。算
法通过在 Project — Options for Target — Utilities — ULINK ARM Debugger —
Settings — Add 对话框中的 Add 按钮选中。
Flash 编程算法可用于如下供应商:*
21
ULINK2 用户指南
\KEIL\ARM\FLASH\LPC_IAP_256\测试\ 文件夹包含一个测试工程,它说明了如
何测试一个新 Flash 编程算法。
3.3.2.4.1 Analog 设备
Analog 设备
µVision 提供如下 F*ash 编程算法:
• ADuC702x Flash
Analog 设备 ADuC*000 片上 Flas*。
• ADuC712 *lash
Analog 设备 ADuC712x 片上 Flash。
• ADuC7229 Flash
Analog 设备 ADuC7229 片上 Flash。
3.3.2.4.2 AMD
• AM29F160DB Flash
AMD AM29F160DB 外部, 16-bit Flash,底部启动块处理器。
• AM29F160DT Flash
AMD AM29F160DT 外部, 16-bit Flash,头部启动块处理器。
• AM29F320DB Flash
AMD AM29F320DB / AM29*V320*B / ST M29DW324DB / Samsung K5*3x80YT 外部, 16-bit Flash,底部启动块
处*理器。
• AM29F320D* Fla*h
AMD AM2*F320*T / AM29LV320DT / ST M29DW324DT / S*msung K5A3x80YT 外部, 16-*it F*ash,头部启动块
处理器。
• AM2*F320DT Dual Flash
AMD AM29F320DT / AM29LV320DT / ST M29DW324DT / Samsung K5A3x80YT 外部, 16-bit Flash,头部启动块*
22
ULINK2 用户指南
• A*29x800BT Flash
AMD AM29x800BT 外部, 16-bit Flash,头部启动块处理器。
• AM29x800BT Dual Flash
two AMD AM29x800BT 外部, 32-bit Flash,头部启动*块和完全 32-bit BUS 处理器。
• AM29x800DB Flash
AMD AM29x800DB 外部, 16-bit Flash,底部启动块处理器。
• *M29x800DB Dual Flash
tw* AMD AM29x800DB 外部, 32-bit Flash,底部启动块和完全 32-bit BUS 处理器。
3.3.2.4.3 Atmel
• AT29x1024 Flash
Atmel AT29x1024 外部, 16-bit Flash 处理器。
• AT49xV0*0x Flash
Atmel AT49xV080x 外部, 8-bit Flash 处理器。
• AT49xV162A Flash
At*el AT49xV162A 外部, 16-bit Flash 处理器。
• AT49xV162AT Flash
Atm*l AT*9xV162AT 外部, 16-bit *lash 处理*器。
• AT49xV16x4A Flash
Atmel AT49xV16x4A 外部, 16-bit Flash 处理器。
• AT49xV32x Flash
Atmel AT49xV32x 外部, 16-bit Flash 底部启动块处理器。
• AT49xV32xT Flash
Atmel AT49xV32xT 外部, 16-*it F*ash 头部启动*块处理器。
• AT49xV32xT_2 Dual Flash
two Atmel AT49xV32xT_2 外部, 32-bit Flash 头部启动块和完全 32-bit BUS 处理器。
• AT49xV32x_2 Dual Flash
two Atmel AT49xV32x_2 外部, 32-bit Flash 底部启动块和完全*32-b*t BUS 处理器。
• AT49xV6416 Flash
Atmel AT49xV6416 16-bit, 外部 Flash。
• AT*1SAM7A3 Flash
Atmel AT91SAM7A3 片上 Fl*sh。
• AT91SAM7S_32 Flash
Atmel AT91SAM7Sx32, Atmel AT91SAMXx32 片上 Flash。
• AT91SAM7S_64 Flash
Atmel AT91SAM7Sx64, Atmel AT91SAMXx64 片上 Flash。
• AT91SAM*S_12* Flash
Atmel AT91SAM7Sx128, Atmel AT91*AMXx128 片上* Flash。
• AT91SAM7S_256 Flash
Atmel AT91SAM7Sx256, Atmel AT91SAMXx256 片上 Flash。
23
ULINK2 用户指南
• AT91SAM7_32 Flash
Atmel AT91SAM7x32 片上 Flash。
• AT91SAM7_64 Flash
Atmel A*91SA*7x64 片上 Flash。
• AT91SAM7_128 Flash
Atmel AT91SAM7x128 片上 Flash。
• AT91SAM7_256 Flash
Atmel AT91SAM7x256 片上 Flash。
3.3.2.4.4 Intel
• RC28F320J Flash
Intel *C28F*20J,Intel E28F320J 16-bit,片上 Flash。
• RC28F640P30B Flash
Intel TE/JS/PC/RC28F640P30B *6-bi,片上 Flash。
3.3.2.4.6 Macronics
• MX29F400B Flash
Macronix MX29F400B 16-bit, 外部 Flash。
• *X29F400T Flash
Macronix MX29F400T 16-bit, 外部 Flash。
• MX29x800B Flash
Macronix MX29x400B 16-bit, 外部 F*ash。
• MX29x800T Flash
Mac*onix MX29x800T 16-bit, 外部 Flas*。
24
ULINK2 用户指南
3.3.2.4.8 OKI
• ML6xxxxx Flash
OKI ML6xxxxx ARM7 和 ARM9 处理器系列片上 Flash。
3.3.2.4.9 SST
• SST39x*60x *lash
SST39x1601, SST39x*602, SST39x160 连续 16-bit, 外部 Flash。
• SST39x200A Flash
SST39*200A 16-bit, 外部 Flas*。
• SST39x320x Flash
SST39x3201, SST39x3202 连续 16-bit, 外部 Flash。
• SST39x400A Flash
SST39x400A 16*bit, 外部 Flash.
• SST3*x640x Flash
SS*39x6401, SST39x6402 连续 16-bit, 外部 Flash。
• SST39x800A Flash
SST39x800A 16-bit, 外部 Flash。
3.3.2.4.10 STMicroelectronics
• M28W320CB Flash
STMicroelectronics M28W320CB 16-bit, 外部 Flash。
• STR71X Bank x Flash
STMicroelectronics STR71X Bank 0 和 Bank 1 片上 Flash。
• STR73X Bank x Flash
STMicroelectronics STR7*X 片上 Flash。
• STR75X Bank x Flash
STMicroelectroni*s ST*75X *ank 0 和 Bank * 片上 Flash。
• STR91xFxx2/4 Flash Bank 0
STMicroelectronics STR91xFxx2/4 Bank 0 片上 Flash, 通过 CPU 编程。
25
ULINK2 用户指南
3.3.2.4.11 Toshiba
• TC58FVM5B2A Flash
Toshiba TC58FVM5B2A (4MByte) 16-bit 和 32-bit 外部 *lash。
• TC58FVM6B2A F*ash
Toshiba TC58FVM6B2A (8MB*te) 16-bit, 外部 Flash。
3.3.2.4.12 TI
• TMS470xx Flash
TI TMS470 处理器片上 Flash 系列。
3.3.2.5 添加新算法
添加新算法
µVision 环境允许为新的以前不支持的设备定义附加的 Flash 编程算法。算法将
作为一个 µVision 工程被实现, 该工程包含擦除和 Flash 编程的函数。必须进行
额外的特殊编译器和链接器设置。
配置新算法
1. 在 \KEIL\ARM\FLASH\ 文件夹中创建一个新的、空的子文件夹。
2. 将现有的* Flash 算法的内容(如 \KEIL\ARM\FLASH\LPC_IAP_256\)复制到此新
文件夹中。将使用此工程作为新设备的模板*。
26
ULINK2 用户指南
测试*新算法
\KEIL\ARM\FLASH\LPC_IAP_256\TES*\ 文件夹包含了一个工程,它允许测试
新 Flash 编程算法。
下载到 Flash
ULINK2 USB-JTAG 适配器支持在目标板上为 Flash 存储器编程。首先要在
µ*ision ID*中设置 ULINK*为 Flash 编程工具:
当下载完成时,下载结果显示在输出窗中。
27
ULINK2 用户指南
3.5 调试程序
调试程序
按以下步骤使*用 µVision 调试器和 ULINK2 USB-JTAG 适配器来调试程序。
注意
3.6 链接多目标
链接多目标
28
ULINK2 用户指南
目标链接需要每个目标设备支持如下项:
• BYPASS 寄存器;
• IDCODE 指令必须紧跟在测试访问端口(TAP)复位之后执行;
• I* Code 的 0 位为 1;
• 在 CAPTURE-IR 状态,定值 1 必须装载到 IR 中。
设立多目标
连接目标
连接多目标:
• 通过并行连接控制信号(TMS 和 TCLK)。
• 通过串行连接数据信号(*DI 和 TDO)。
在链中目标数据*输出(TDO)应该作为下个目标的输入。
29
ULINK2 用户指南
注意
4. 实时代理
实时代理
ULINK2 JTAG 适配器支持 MDK-ARM 开发工具包的实时代理性能。此特*性扩
展了 µVision 调试器的能力。
调试嵌入式应用程序时,一般不能实现挂起*程序来观察或修改存储容量值。在应
用程序中添加实时代理就可以在运行时观察和修改目标存储器,而不必终止程序。
实时代理具有以下功能:
• 程序运行时的存储器读写
存储器窗口 和 观察窗口 显示程序运行时的应用程序数据。如果 观察-窗口定期更新 被 允许,则这些窗口自动更新。
• 终端仿真
µVision 中的 串行窗口 通过 ULINK2 用户 I/O 支持终端仿真。
• 连续调试输出
µVision 中的 串行窗口 可以用于显示调试输出(通过 RTA_printf 调试函数)。
4.1 添加实时代理
添加实时代理
实时代理可以很容易添加到应用程序中。Keil 提供模板文件,可以复制它到工程
中并进行配置以满足应用程序。此节讲述如何添加配置这些文件,从*而利于更好
地工作。
共有四步:
1. 为工程添加实时代理文件(See 4.1.1)。
2. 配置实时代理文件(See 5.1)以满足应用程序*。
3. 修改 STARTUP.S 文件(See 4.1.3)来使用外部 DAbt 处理程序。
4. 对应用程序*进行实时代理测试(See 4.1.4)。
30
ULINK2 用户指南
给工程添加* RTA 文件
复制模板文件到工程文件夹中,然后添加它们到工程。在 Project Wo*kspace 中创
建一个新的组,确保这*些文件与应用程序文件相互独立。
复制模板文件到工程中
在工程中为*新组添加模板文件
4.1.2 配置实时代理
配置实时代理
实时代理中包含一个配置向导来帮助开发者轻松完成不同硬件平台的编译。通过
打开 µVision 中*的 RT_AGENT.C 文件访问配置向导,并点击配置向导标号来
显示如下内容:
31
ULINK2 用户指南
选项 说明
允许或禁止实*时代理。如果被禁止,则调用它的函数将被 stub 函数代替,
Real-T*me Agent 这些函数返回 RTA_ERR_DISABLED 错误代码(当调用 RTA_Term 函数
时返回 0)。
选择使*用的硬件类型。如果硬件不可用*,可以实现自己的硬件(与自定义
Hardware Type
硬件接口)。
Outpu* Buffer用于从目标传送实时代理数据到主机的 缓冲的大小。JTAG 连接较慢或数
Size (bytes) 据丢失时,可增大其空间。
Enable Terminal
允许或禁止终端仿真。当不需要终端仿真时,禁止保存代码和存储空间。
Emu*atio*
Input Buffer Size
此缓冲器用于输入*终端数据。
(bytes)
Ech* Characters如果被允许,则输入在 µVisio* 连续窗口中的字符将自动地回显。当使用标
Automatically *准库函数(如 scanf())时需要允许此选项。
如果允许,若没有足够缓冲空间来立即发送字符,则将阻*止调用
RTA_TermPutChar() ,以防止丢失终端数据。如*果禁止, 若没有足够缓冲
Block on Write
空间,则调用 RTA_TermPut*har(* 时将会丢弃数据。 当被禁止时如果终端
数据丢失,可以增加输出缓冲大小来解决此问题。
4.1.3 修改 STARTUP.S 文件
修改 STARTUP.S 文件
按照如下步骤修改 STARTUP.S 文件*:
32
ULINK2 用户指南
下面给出了一个更改的例子:
;/*********************************************************/
;/* STARTUP.S: 启动文件 */
;/*********************************************************/
.*.
EXTERN DAbt_Handler
Undef*Hand*er B Undef_Handler
SWI_H*ndle* B SWI_Handler
PAbt_Handler B PAbt_Handler
;DAbt_Handler B DAbt_Handler
IRQ_Handler B IRQ_Handler
FIQ_Handler B FIQ_Handler
4.1.4 测试实时代理
测试实时代理
当配置工程使用实时代理后,很容易检测其工作状况。
点击工*具栏上按钮打开符号窗口
(Symbol Window),然后选择
Project— RT_A*ent — rta — out —
wr_idx 。
3. 点击 wr_idx 图标,然后把它拖*放
到监视窗口(*Watc* Win*ow)中。
4. 选中 View 菜单中的 Pe*iodic
Window Update 。
5. 如果监视窗口中的变量值改变,则实时代理已经成功地归并到应用程序中。
注意
33
ULINK2 用户指南
添加 I/O 重定向
I/O 重定向允许I/O定制硬件使用标准C库。实时代理可以利用I/*重定向,通过
UNLINK2 USB-JTAG适配器向µVision 串行窗口提供标准库函数,如 scanf() 和
printf()。
1. 为工程 添加 RETARGET.C 文件 。
2. 配置 RETARGET.C 文件 以满足应用程序。
3. 对应用程序进行 I/O 重定向测试(See 4.2.3)。
4.2.1 添加 RETARGET.C
为工程复制模板文件
为工程添加模板文件
• 添加 RE*ARGET.C 到工程中的*系统调用组 。
4.2.2 配置 RETARGET.C
RETARGET.C 文件中包含一个配置向导来帮助开发者轻松完成不同的编译。通
过打开 µVision 中的 retarget.c 文件*访问配置向导,点击配置向导标*号显示如
下内容:
34
ULINK2 用户指南
选项 说明
I/O 允许或禁止 I/O 重定向。如果被选中,则使用默认的半主机方法,而非 I/O 重
Rvetargeting 定向来处理对 printf()、scanf()等的调用。
STDIN Source选择 STDIN 流的源。
STDOUT
选择 STDOUT 流的目的文件。
Destination
STDERR
选择 STDERR 流的目的文件。
Destination
En*ble 允许实时代理 RTA_printf() 和 RTA_scanf() 宏。如果没有选中,则对这些宏的
RTA_printf() 调用将返回错误。
如果实现文件系统,可能想使用 I/O 重定向来访问那个文件系统。此时,要实
现_*fopen、__fclose、__write、__flushbuf、__read、__setfpos 和__get_flen 这
External file些 函 数 并 允 许 此 项 。
operations C:\KEIL\ARM\RV30\RTL\FLASHFS\EXAMPLES\FILE_EX1 给 出 了 一 个
defined I/O 重定向用法的例子。
注意: 如果此选项选中,但没有定义上述函数,则会出现链接错误。
注意
C:\KEIL\ARM\RV30\RT AGENT\MCB21XX\MEASURE\SERIAL.C 中
给出了一个为 Keil MCB21XX 开发板实现这些函数的例程。
35
ULINK2 用户指南
4.2.3 测试重定向
测试重定向
为重定向配置完工程后,按照以下步骤检查其工作是否正常:
注意
4.3 API 函数
API 函*数
实时代理 API (Application Program Interface,应用程序接*口)在
C:\KEIL\ARM\RV30\RT AGENT\TEMPLATE\RT_AGENT.H 中。它*包含初始
化实时代理以及将用户定义的信息返回到 µVision 3 等一些程序。这些程序可以
后备用。
如下 API 程序可用:
程序 说明
36
ULINK2 用户指南
初始化*实时*代理。
RTA_Init 此程序必须在调用其它 RTA 程序前调用。直到在目标上调用时此函数之后,
存储器读写才可用。
通过实时代理给主机发送一条信息。
RTA_Msg
此程序留作以后使用。
检查终端仿真器缓冲中是否存在有用字符。
RTA_TermIsKey
此程序不阻塞。
从 RTA 终端(µVision 连续窗口)中获得一个字符。
RTA_TermGetChar
此程序阻塞,直到一个字符有用时才不阻塞。
写一个字符到 RTA 终端(µVision 连续窗口)。
RTA_TermPutChar 此程序阻塞,直到缓冲空间有用,当且仅当配置向导中的 'Block on Write' 启用
时才不塞闭,否则将丢弃字符。
输出一个格式串到 RTA 终端(µVision 连续窗口) 。
RTA_printf 此程序的参数与 printf() 的参数相同。必须执行*/O 重定向(I/O 重定向配置)
来使用此宏。
从 RTA 终端(µVision 连续窗口)中寻找一个格式串。
RTA_scanf 此程序的参数与 scanf() 的参数相同。必须执行I/O 重定向(I/O 重定向配置)
来使*用此宏。
4.4 接口自定义硬件
接口自定义硬件
实时代理通过调试通信通道(Debug Co*muni*ation Channel,DCC)在目标设备上
执行中断操作。如果不支持目标设备,可以通过以下步骤添加中断控制硬件:
实现 C 硬件 MACRO 的步骤如下:
37
ULINK2 用户指南
• TX*WORD(): 必须读取:
•
• __asm { MCR p14, 0, *x_wo*d, c1, c0 }
• RX_WORD(): 必须读取:
•
• _*asm { MRC p14, 0, rx_word, c*, c0 }
5. Addenda
配置实时代理
实时代理包含一个配置向导来帮助开发者轻松完成不同硬件平台的编译。通过打
开 µVision 中的 RT_AGENT.C 和 SWI.S 文件访问配置向导,点击配置向导标
号来访问配置向导:
RT_Agent.c
选项 说明
允许或禁止实时代理。如果被禁止,则调用它的函数将被 st*b 函*数代替,
Real-Time Agent 这些函数返回 RTA_ERR_DISABLED 错误代码(当调用 RTA_Term 函数
时返回 0)。
选择使用的硬件类型。如果硬件不可用,可*以自定义实现硬件(接口连接
Hardware Type
自定义硬件) 。
Output Buffer用于从目*标传送实时代理数据到主机的 缓冲的*大小。JTAG 连接较慢或
Size (bytes) 数据丢失时,可增大其空间。
Enable Terminal
允许或*禁止终端仿真。当不需要终端仿真时,禁止保存代码和存储空间。
Emulation
Input Buffer S*ze
此缓冲器用于输入终端数据。
(*ytes)
Echo Characters如果被允许,则输入在 µVisio* 连续窗口中的字符将自动地回显。当使用
Automatically 标准库函数(如 scanf())时需要允许此选项。
如果允许,若没有足够缓冲空间来立即发送字符,则将阻止调用
RTA_TermPutChar() ,以防止丢失终端数据。如果禁止, 若没有足*够缓冲
Block on Write
空间,则调用 RTA_TermPutChar() 时将会丢弃数据。 当被禁止时如果终端
数据丢失,可以增加输出缓冲大小来解决此问题。
38