您的位置:首页 > 运维架构 > Linux

让vdsp与uclinux共舞(18):让VDSP读取vmlinux的调试信息

2010-03-06 16:27 239 查看
快乐虾 http://blog.csdn.net/lights_joy/ lights_joy@163.com

















本文适用于
ADSP-BF561
Visual DSP++ 5.0(update 7)
Bfin-uclinux-2009R1.1-RC4


欢迎转载,但请保留作者信息



在前面的方案中,有一个很大的遗憾,就是无法让VDSP读取vmlinux里的详细调试信息,虽然VDSP通过读取.symtab这个符号表的数据可以得到函数的地址,但是却无法提供更进一步的信息。因为虽然GCC和VDSP生成的二进制文件都是用DWARF2来保存调试信息的,但是二者却不完全兼容。
经过前一段时间的努力,结合ADI提供的一些资料,终于解决了这个问题,但是由于签署了NDA的关系,在此就不披露二者之间的细微区别了。仅记录一下个人的一点工作。
考虑到以后的扩展,直接以code::blocks插件的形式实现了一个转换程序,就像这样的:




转换完成后就可以在VDSP下看到详细的调试信息了,嘿嘿:




有了VDSP这个利器,我们希望它可以提供这样的帮助:
1、快速确定性能瓶颈,比如SD卡的读写。
2、驱动调试,告别printk这样的原始方式。
3、内核崩溃分析。
希望在以后的实践中能够继续完善这种方案^_^
在开发此程序的过程中发现了VDSP一些很有趣的事情,比如在下面的函数里我们明明说了没有返回值:
void sub_func()
但是到了VDSP那里,非得给它安一个int类型的返回值,让人很是不解!
此外,VDSP将这种格式保密的做法也很让人不解,有必要吗?

下一步:让VDSP读取gdb文件,这样VDSP就可以调试GCC生成的用户程序了!







近日,我家6岁的小姑娘参加了第六届POP全国少儿英语风采大赛,拉票进行中(2011-6-15前)。

请帮忙点击新东方网站的链接:

http://popdasai.xdf.cn/toupiao.php?do=space&uid=4237

投她一票,谢谢!

1 参考资料

让vdsp与uclinux共舞(17):实战uboot-2009r1-rc3(2010-1-4)
让vdsp与uclinux共舞(16):修正一处错误(2009-12-14)
让vdsp与uclinux共舞(15):总结(2009-11-11)
让vdsp与uclinux共舞(14):驱动发布(2009-11-11)
让vdsp与uclinux共舞(13):应用程序加载(2009-11-10)
让vdsp与uclinux共舞(12):应用程序开发(2009-11-9)
让vdsp与uclinux共舞(11):方案改进(2009-11-6)
让vdsp与uclinux共舞(10):加载SMP内核(2009-11-4)
让vdsp与uclinux共舞(9):查找内核函数(2009-11-3)
让vdsp与uclinux共舞(8):vdsp驱动框架(2009-11-3)
让vdsp与uclinux共舞(7):在内核为驱动预留空间(2009-11-2)
让vdsp与uclinux共舞(6):用vdsp开发驱动的设想(2009-11-2)
让vdsp与uclinux共舞(5):加入dwarf调试信息(2009-11-2)
让vdsp与uclinux共舞(4):加载uclinux(2009-11-2)
让vdsp与uclinux共舞(3):boot kernel(2009-10-31)
让vdsp与uclinux共舞(2):vdsp的影响(2009-10-31)
让VDSP与uclinux共舞(1):开篇(2009-10-30)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: