IAR 下使用Wiggler 和Multi-ICE 进行JTAG 调试和FLASH 下载
——基于S64-DEK Rev2.0
首先到https://www.wendangku.net/doc/7114380476.html, 下载并安装IAR 的32K 限制的KITSTART 学习版,注意安装的时候请附带安装“Macraigor”的驱动,不然的话请直接到IAR 的安装目录下的“driver\Macraigor”下面双击ocd_dbgr.exe 安装。
完成软件安装后下找一个没有错误的范例来作为操作演示,在这里我们使用的是IAR为ATMEL 的
S64EK 写的软件包里面的一个basic 范例,这个软件包可以到https://www.wendangku.net/doc/7114380476.html,下载,下载后通过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 outputfile”前打勾,然后将“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-ICEServer2.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.