IAR 下使用 Wiggler 和 Multi-ICE 进行 JTAG 调试和 FLASH 下载 基于 S64-DEK Rev2.0 By Mcuzone 首先到 www.iar.com 下载并安装 IAR 的 32K 限制的 KITSTART 学习版, 注意安装的时候请附带安装 Macraigor 的驱动, 不然的话请直接到 IAR 的安装目录下的 driver\ Macraigor 下面双击 ocd_dbgr.exe 安装 完成软件安装后下找一个没有错误的范例来作为操作演示, 在这里我们使用的是 IAR 为 ATMEL 的 S64EK 写的软件包里面的一个 basic 范例, 这个软件包可以到 www.at91.com 或者 www.mcuzone.com 下载, 下载后通过 IAR 的 IDE 来打开 basic.eww,( 在 AT91SAM7S-BasicTools\compil 下 ) 如下图 : 打开 basic.eww 后选择 flash debug, 因为我们要将程序下载到 FLASH 并调试, 如下图所示 :
接下来是进行一些 project\option 设置, 首先用鼠标点击 Basic-Flash-debug, 这样才能在 project\option 下设置, 如果点在其他地方, 如 main.c 上是无法进行 project\option 设置的
通过 project\option 或者 ALT+F7 来进入设置页面 :
首先是 General Options, 在这里需要设置 Device 以及工作模式, 由于是一个配置好的范例, 所以只需要查看一下即可
接下来是 Linker 选项卡, 在这里需要更改部分内容, 请在下图红圈内打勾,C-SPY 是 IAR 的调试器, 如果不打这个勾的话是无法在编译通过后进行调试的, 请注意 :
Linker 下的另一子选项卡, Extra Output, 在这个需要在 Generate extra output file 前打勾, 然后将 output format 选择成 simple-code, 如果要将程序下载到 FLASH, 需要生成两个文件, 一个是.S79 文件, 还有一个是.sim 文件, 这个设置是为了 FLASH Download 而必需的
Debugger 选项, 用于选择调试器,IAR 支持很多的调试器, 这里我们选择 Macraigor, 它支持廉价且简易的 wiggler 调试器
选择好 Debugger 驱动后, 转到 Macraigor, 然后选择 wiggler 接口
注意, 在 Debugger 选项卡下的 Setup 内还需要设置一个 macro file, 由于我们使用的是 basic 范例, 所以直接选择 basic 范例下的 resource 文件夹下的 SAM7.mac 文件 :
然后再到 Debugger 下的 Download 子选项卡设置 use flash loader, 按照下图中红圈内的按钮进行设置
设置完成, 开始 debug: 按下 Debug 后先会出现 Downloading Application 和 Programming 的进度条提示, 由于 wiggler 的峰值下载速度也只有 4K 左右, 所以请稍等片刻 下载完成后进入 Debug 界面, 可以留心一下下面的 LOG 框内的信息 : Tue Dec 13 09:24:43 2005: Loaded macro file: C:\Program Files\IAR Systems\Embedded Workbench 4.0 Kickstart\arm\config\flashloader\Atmel\ FlashAT91SAM7Sx.mac Tue Dec 13 09:24:43 2005: ---------------------------------------- FLASH Download V1.1 Tue Dec 13 09:24:43 2005: ---------------------------------------- PLL Enable Tue Dec 13 09:24:43 2005: -------------------------------Set CPSR ---------------------------------- Tue Dec 13 09:24:43 2005: CPSR 000000D3 Tue Dec 13 09:24:43 2005: ---------------------------------------- PLL Enable Tue Dec 13 09:24:43 2005: ------------------------------- The Remap is NOT ----------------------------------------- Tue Dec 13 09:24:43 2005: ---------------------------------------- Chip ID 0x27090540 Tue Dec 13 09:24:43 2005: ---------------------------------------- Extention 0x00000000 Tue Dec 13 09:24:43 2005: ---------------------------------------- Flash Version 0x00000110 Tue Dec 13 09:24:43 2005: -------------------------------Set PC ---------------------------------------- Tue Dec 13 09:24:44 2005: JTAG API v48.7, Wiggler v1.41, ARM ID: 3F0F0F0F Tue Dec 13 09:24:45 2005: 4877 bytes downloaded (3.91 Kbytes/sec) Tue Dec 13 09:24:45 2005: Loaded debugee: C:\Program Files\IAR Systems\Embedded Workbench 4.0
Kickstart\arm\config\flashloader\Atmel\ FlashAT91SAM7Sx.d79 Tue Dec 13 09:24:45 2005: Target reset Tue Dec 13 09:24:46 2005: Downloader Version 1.1 Tue Dec 13 09:24:46 2005: Download1: AT91SAM7Sx At: 0x100000 Tue Dec 13 09:24:47 2005: Download: AT91SAM7Sx Version: 0x110 Tue Dec 13 09:24:49 2005: Download:page 0 Tue Dec 13 09:24:50 2005: Download:page 1 Tue Dec 13 09:24:51 2005: Download:page 2 Tue Dec 13 09:24:52 2005: Download:page 3 Tue Dec 13 09:24:53 2005: Download:page 4 Tue Dec 13 09:24:54 2005: Download:page 5 Tue Dec 13 09:24:56 2005: Program exit reached. Tue Dec 13 09:24:56 2005: Loaded macro file: C:\Documents and Settings\Administrator\ 桌面 \S64\at91_sam7s64_iar_430\ AT91SAM7S64-BasicTools-IAR4_30A-1_21\AT91SAM7S-BasicTools\compil\resource\SAM7.mac Tue Dec 13 09:24:56 2005: ------------------------------- The Remap is done ---------------------------------------- Tue Dec 13 09:24:56 2005: ---------------------------------------- Chip ID 0x27090540 Tue Dec 13 09:24:56 2005: ---------------------------------------- Extention 0x00000000 Tue Dec 13 09:24:56 2005: ------------------------------- AIC 2 INIT --------------------------------------------- Tue Dec 13 09:24:56 2005: ------------------------------- Watchdog Disable ---------------------------------------- Tue Dec 13 09:24:56 2005: 752 bytes downloaded into FLASH (0.06 Kbytes/sec) Tue Dec 13 09:24:56 2005: Loaded debugee: C:\Documents and Settings\Administrator\ 桌面 \S64\at91_sam7s64_iar_430\ AT91SAM7S64-BasicTools-IAR4_30A-1_21\AT91SAM7S-BasicTools\compil\Flash_debug\Exe\Basic.d79 Tue Dec 13 09:24:57 2005: Target reset Tue Dec 13 09:24:57 2005: Driver does not support code coverage. Tue Dec 13 09:24:59 2005: -------------------------------Set PC ----------------------------------------
程序下载完成, 进入 Debug 状态, 这个时候可以使用单步, 全速, 断点等操作, 具体使用请参见 IAR 关于 IDE 的用户手册 全速运行后就可以看到 S64-DEK 上面的 LED 在跑马, 结束 Debug, 然后复位目标板, 或者重新上电, 可以发现 LED 还在跑马, 说明程序已经下载到 AT91SAM7S64 的 FLASH 里面了, 操作成功!
下面简单介绍一下在 IAR 使用 Multi-ICE 的设置, 在这之前请确认已经安装 Multi-ICE Server2.2( 最新补丁版本 2.2.6, 请在安装 2.2 后再打补丁 ), 首先选择 Debugger 的 Driver 为 RDI:
然后找到 RDI 的驱动程序.DLL:
默认的 Multi-ICE 安装路径 :
选中 Multi-ICE.dll: 完成了 IAR 下的 Multi-ICE 设置后还要注意一件事情, 请打开 Multi-ICE Server! 不然 IAR 会提示错误 :
打开 Multi-ICE Server: 打开 Multi-ICE 后,Multi-ICE 将先进行初始化 :
稍等片刻后按照下图所示进行 Auto-Configure : 如果连接正确会出现下图所示内容, 说明 Multi-ICE 已经检测到 ARM7TDMI 内核 :
如果连接不正确或者 Multi-ICE 未正确上电, 将出现下图所示的错误提示, 请注意检查连接和电源, 确保出现上图内容, 这样才能在 IAR 下使用 Multi-ICE 在 IAR 下设置好 Multi-ICE, 并启动 Multi-ICE 后即可在 IAR 下进行 Debug, 以下是进入 Debug 界面后 LOG 框内的信息 : Tue Dec 13 09:41:32 2005: Loaded macro file: C:\Program Files\IAR Systems\Embedded Workbench 4.0 Kickstart\arm\config\flashloader\Atmel\ FlashAT91SAM7Sx.mac Tue Dec 13 09:41:33 2005: ---------------------------------------- FLASH Download V1.1 Tue Dec 13 09:41:33 2005: ---------------------------------------- PLL Enable Tue Dec 13 09:41:33 2005: -------------------------------Set CPSR ---------------------------------- Tue Dec 13 09:41:33 2005: CPSR 000000D3 Tue Dec 13 09:41:33 2005: ---------------------------------------- PLL Enable Tue Dec 13 09:41:33 2005: ------------------------------- The Remap is NOT ----------------------------------------- Tue Dec 13 09:41:33 2005: ---------------------------------------- Chip ID 0x27090540 Tue Dec 13 09:41:33 2005: ---------------------------------------- Extention 0x00000000 Tue Dec 13 09:41:33 2005: ---------------------------------------- Flash Version 0x00000110 Tue Dec 13 09:41:33 2005: -------------------------------Set PC ---------------------------------------- Tue Dec 13 09:41:33 2005: Sign on message from RDI driver: ARM Multi-ICE V2.2.6 (Build 1346). Copyright (c) ARM Limited 1998-2002. Connected to TAP 0, ARM7TDMI on Server "localhost", Little-Endian target. Tue Dec 13 09:41:33 2005: 33379 bytes downloaded (61.39 Kbytes/sec) Tue Dec 13 09:41:33 2005: Loaded debugee: C:\Program Files\IAR Systems\Embedded Workbench 4.0 Kickstart\arm\config\flashloader\Atmel\ FlashAT91SAM7Sx.d79 Tue Dec 13 09:41:33 2005: Target reset Tue Dec 13 09:41:33 2005: Downloader Version 1.1 Tue Dec 13 09:41:33 2005: Download1: AT91SAM7Sx At: 0x100000 Tue Dec 13 09:41:33 2005: Download: AT91SAM7Sx Version: 0x110 Tue Dec 13 09:41:34 2005: Download:page 0 Tue Dec 13 09:41:34 2005: Download:page 1 Tue Dec 13 09:41:34 2005: Download:page 2 Tue Dec 13 09:41:34 2005: Download:page 3 Tue Dec 13 09:41:34 2005: Download:page 4
Tue Dec 13 09:41:35 2005: Download:page 5 Tue Dec 13 09:41:35 2005: Program exit reached. Tue Dec 13 09:41:35 2005: Loaded macro file: C:\Documents and Settings\Administrator\ 桌面 \S64\at91_sam7s64_iar_430\AT91SAM7S64-BasicTools-IAR4_30A-1_21\ AT91SAM7S-BasicTools\compil\resource\SAM7.mac Tue Dec 13 09:41:35 2005: ------------------------------- The Remap is done ---------------------------------------- Tue Dec 13 09:41:35 2005: ---------------------------------------- Chip ID 0x27090540 Tue Dec 13 09:41:35 2005: ---------------------------------------- Extention 0x00000000 Tue Dec 13 09:41:35 2005: ------------------------------- AIC 2 INIT --------------------------------------------- Tue Dec 13 09:41:35 2005: ------------------------------- Watchdog Disable ---------------------------------------- Tue Dec 13 09:41:36 2005: 43934 bytes downloaded into FLASH (18.30 Kbytes/sec) Tue Dec 13 09:41:36 2005: Loaded debugee: C:\Documents and Settings\Administrator\ 桌面 \S64\at91_sam7s64_iar_430\AT91SAM7S64-BasicTools-IAR4_30A-1_21\ AT91SAM7S-BasicTools\compil\Flash_debug\Exe\Basic.d79 Tue Dec 13 09:41:36 2005: Target reset Tue Dec 13 09:41:36 2005: Driver does not support code coverage. Tue Dec 13 09:41:36 2005: -------------------------------Set PC ---------------------------------------- 可以明显看到 Multi-ICE 的速度比 wiggler 要快一个数量级以上! 如果调试比较大的程序, 强烈建议使用 Multi-ICE, 当前售价为 Wiggler:30RMB, Multi-ICE:120RMB Wiggler
简版 Multi-ICE S64-DEK Rev2.0
附录一 : 版本说明 Rev1.0: 2005-12-13 完成, 原始版本 请多多访问 http://www.mcuzone.com, 以获取最新更新!
Powered by XiaoGuo s publishing Studio QQ:8204136 Website: www.mcuzone.com 2005