用arm-elf-gdb可以在线调试uClinux下的应用程序,也可以仿真调试uClinux系统。用AXD调试uClinux则简单易行。
用AXD调试uClinux所需主要文件有:images\image.ram、linux-2.4.x\linux和system.map。image.ram将被AXD加载在实验板的SDRAM中执行;linux为AXD调试提供符号和函数等;system.map则提供给我们调试内容相关的符号和函数地址,可以用文本编辑器打开它查看。在调试过程中,如果要查看所有的源文件,则必须要有相应的文件,可以把linux操作系统下的整个uclinux源文件子目录拷贝到windows操作系统下。
具体调试过程:
1、 启动AXD,配置菜单项options->configure target为希望的调试方式。如可选择ARMUL项,这是由AXD提供的仿真环境,不需要额外的支持,就可以开始下面的调试了;也可选择支持在线调试的目标环境(Target enviorment),如用banyan支持包支持的简易Jtag方式,但这以前,必须安装banyan支持包并启动banyan接口支持。
2、 用菜单项system views->command line interface进入命令方式,重映射存储器,以使SDRAM定位在0x0地址。注意:如上一步选择的是ARMUL仿真调试环境,则不用重映射存储器,因为仿真环境下的所有存储地址都是可写入的。用菜单项options->configure processor项,关闭vector catch和semihosting,不用AXD捕获中断。
3、 用菜单项file->load memory from file加载image.ram文件,注意加载地址(address)为0x8000。用菜单项file->load debugger symbols加载linux文件。
4、 用菜单项peocessor views->source可以看到系统中的模块,配合系统源代码,可以打开查看其内容、设置断点等。system.map文件中有相关地址供参考。