GNU ARM的toolchain是一个很好使的ARM开发工具,它使用起来非常灵活,可以任意定制启动代码、实现复杂的内存映射,能完全发挥开发人员的聪明才智;况且它已经被移植到windows下,有很多个版本可供使用,非常方便(详见我的上一篇日志)。在字符界面下开发程序还说得过去,但是要实现程序的调试就困难了。我们知道,用GNU ARM toolchain生成的调试文件是elf格式的,经过在互联网上的一番探索,发现KEIL可以实现对ELF格式文件的调试,自己亲自试了一下,确实好使,现在把方法贴出来。
我的开发调试环境:
操作系统:windows 7旗舰版
开发环境:Cygwin+yagarto的GNU ARM toolchain
调试环境:KEIL μVISION 4.2 ,H-JTAG V1.1
硬件:并口--waggler--开发板Jtag口
1、确保编译工程时的参数:-gdwarf-2,这样才能在ELF文件生成调试信息。
例如:(我这里用的toolchain是 yagarto)
arm-none-eabi-gcc -gdwarf-2 -c -o led2.o led2.s
arm-none-eabi-gcc -c -gdwarf-2 -o main.o main.c
arm-none-eabi-ld -Tled2.lds -g led2.o main.o -o led2.elf
arm-none-eabi-objcopy -O binary -S led2.elf led2.bin
这里生成了led2.elf 的调试文件。
2、新建一个KEIL工程。
3、选择一个CPU。
4、点击project->operation for target选项,选择output标签。
5、点击select folder for object,选择elf文件所在的目录,点OK。
6、在name of executable里填上ELF文件名,比如:led2.elf
7、点击debug选项,选择use:rdi interface driver。
8、点击setting,在browse for rdi driver dll里,找到h-jtag的dll文件,如:C:\Program Files\H-JTAG\H-JTAG.dll
(注:以上两步可以在H-JTAG里找到ToolConf.exe在Keil里直接添加H-JTAG Debug工具)
9、在KEIL里一路OK。
10、打开h-jtag,确保找到CPU。
11、点击DEBUG按扭这样就可以源代码级的调试了。
另转:在μVision中使用CodeSourcery GNU ARM工具链
配置μVision
为了GNU ARM工具链能在μVision中使用,必须修改Folders/Extensions中的默认设置。
Project - Manage - Components, Environment, Books...或在μVision工具栏中点击,打开Components, Environment and Books对话框。在标签页 Folders/Extensions中修改以下设置:选择 Use GNU Compiler。设置 GNU-Tool-Prefix为 arm-none-eabi-。设置 Cygnus Folder为 Sourcery G++ Lite安装目录。
注意
Options for Target对话框因所使用的工具链而有所变化。
补充:调试的时候可以把你的源码一并拷贝到KEIL的工程目录里(包括所有用到的C源文件、启动文件、头文件等),这样在调试的时候可以观察源码,跟在KEIL里开发没有什么两样。如果嫌拷来拷去麻烦,还可以把KEIL工程指定保存到 GNU ARM toolchain的开发目录下,这样会更方便。