加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSSRSS-巴斯仪表网
您当前的位置:首页 > 电子发烧 > 单片机学习

用AXD 和Multi-ICE调试uClinux内核

时间:2013-11-23  来源:123485.com  作者:9stone

AXD Multi-ICE进行裸机程序调试的功效相信已经为大家所接受。uClinux内核比较裸机程序,有较大的不同。这里简单介绍如何用AXD源代码级调试uClinux内核。

所提到的uClinux版本是uClinux-dist-20030522.tar.gz,并且已经使用了www.dailzh.net上提供的patch。并且我有义务告诉您,这一调试方法可行,但尚需要完善。

步骤一:使编译器输出dwarf-2格式的调试信息
修改uClinux-dist/linux-2.4.x下Makefile,将CFLAGS_KERNEL设置为-gdwarf-2
然后重新编译uClinux

步骤二:取得所需要的文件
使用image.ram进行调试。同时需要system.map文件,它提供了内核各个符号的位置,并且需要名为linux的文件,它含有调试器所需要的调试信息,这个文件可能有30M或更大。千万别告诉我你不知道我说的文件在什么地方找。

步骤三:使用AXD加载各文件
假设Multi-ICE已经与目标板连接,使用 File à Load Memory From File读入image.rom。这里必须将读入的基地址设置为TEXTADDR

使用File - Load Debugger Symbols读入linux文件,这可能要花费1-2分钟左右时间。请注意,这个文件是提供给调试器,而非下载到板上,因此目标板不需要额外的空间用于存储此文件内容。如果一切顺利,已经可以看到一些符号出现在了AXD中。这表示下载已经成功。

步骤四:用任何文本编辑软件打开 system.map文件,通过查找功能找到你所希望设置断点的函数的入口地址,并跳至该处设置断点。选择process view à source,这将列出所有被编译的源代码列表,选择你所需要的文件双击。建议将image.ram/linux和你的源代码文件放在同一目录中,这样即使因为windows/linux系统路径表示方法不同,你的源代码也能被肢解打开。也可以在option à source path中设置存放源代码的路径。

至此,已经可以开始源代码级的调试了,也许你会遇到一些问题,这是正常的,基本的调试都可以进行了。并且感觉上Interleave Disassembly将能获取更多便利。


分享到:
来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
栏目导航->单片机学习
  • 电子应用基础
  • 电源技术
  • 无线传输技术
  • 信号处理
  • PCB设计
  • EDA技术
  • 单片机学习
  • 电子工具设备
  • 技术文章
  • 精彩拆解欣赏
  • 推荐资讯
    使用普通运放的仪表放大器
    使用普通运放的仪表放
    3V与5V混合系统中逻辑器接口问题
    3V与5V混合系统中逻辑
    数字PID控制及其改进算法的应用
    数字PID控制及其改进
    恶劣环境下的高性价比AD信号处理数据采集系统
    恶劣环境下的高性价比
    栏目更新
    栏目热门