很想知道大家都用什么调试工具
各位好,小弟刚做bios,很想知道大家够用什么工具调试追踪问题,我们部门一直都是用80port 加debug card,
连什么并口,串口调试都没见过:L
大家呢?能交流下吗??
这不是做广告:victory: Insyde H20 DDT(USB). windbg(COM/1394/USB).基于COM/LPT的某个特殊工具.ACPI调试的小工具..
想象你的情况应该还是在使用Legacy的code,其实台湾的老前辈们早就写好了COM/LPT口的、可以单步trace code的BIOS debugger,功能超强。而且台湾老前辈们每人都有自己习惯用的debug tools,有些是自己开发。
大陆BIOS起来得比较晚,大多用的都是别人做好的,很少会去想着自己能开发。不过论坛在深圳的David大哥,自己整了个基于SMBUS的debugger,功能在加强中。适合自己、工具越多越好。 BIOS 调试工具:
1, 最简单,最便宜的, Port 80, 包括 PCI, PCI-E, Mini PCI, LPC 不同接口形式的
这种方法有个局限性,就是只能知道BIOS 的 Error Code, 没办法知道什么原因,只能靠经验分析,
或者采用添加冗余 POST Codes 的方式,一遍遍的编译/烧写/Reboot, 直到找到问题所在
2, 各 BIOS Vendor 自己开发的 Debug Tool, 有纯软件的,比如基于 COM 口的调试工具,
BIOS Code 里面做一个 COM Redirection, 也有带硬件的(一般是PCI或者USB接口的一个卡)。
都有一些局限性。如果Memory 初始化,PCI 枚举或者 USB初始化代码出问题,这套东西就不管用了。
3,硬件仿真器,针对 Intel 的叫 ITP,或者 XDP, 针对 AMD 的叫作 HDT/MHDT,(VIA 暂时还没有引入 JTAG 技术)
硬件仿真器可以在源代码级别上调试 Legacy 和 UEFI BIOS, 从 Reset Vector 开始可以完全控制和访问整个系统资源。 楼上的朋友现在是来自American arium,他所说的第3个,可以联系他呢。
针对楼上朋友的第2点,谈到memory初始化,现在有cache asm rom。所以memory 初始化用software去debug是没有问题的。PCI枚举或USB初始化时,如在debug模式下,软件也会做相应的方案来应付。主要是Software调试成本不高,当然会有些不方便。
不过,一个公司最好有一套hardware的调试工具,以方便解决一些棘手问题。 感谢bini和shermanliu回复,
我对“David大哥,自己整了个基于SMBUS的debugger”很感兴趣,请问他是全软件方式吗, 还是辅助了一些硬件?
谢谢各位! 他用单片机做了个盒子,称作什么来着...Magic box....喷..他好象有意在加强,不过好象他没时间,但可以在上面做的东西是蛮多的了。前些日子都在问我有什么需求,他做出来卖呢.... 是有这个MagicBox还在卖, 还支持温度显示, 风扇控制, 一键超频等功能, 可花了我不少心血..
在比较复杂的调试下, 使用COM口是比较好的, 可以通过windows的超级终端就可以看到你想看的数据. 如果主板有COM口, 这是最佳的方法. 只需要一根COM线, 你自己想输出什么数据都可以...反正不需要第三方的任何东西...
等时间闲些, 我做一个 SMBus <--> Ethernat 的东西出来玩玩.. 正和David商量,让支持通过LAN进行远程debug呢:),之前和他做过一个学校的太阳能控制系统,从深圳可以控制广州某家学校的我们做的控制器。正好可以拿来看看.....不过都要时间的.... 为各位的创意所振奋,我也决定自己动手做些东西,见贤思齐嘛:handshake
谢谢!! 我一直都用port 80,准备也弄个COM的调试方式。
以前做嵌入式也是用串口,很好用。 To bini, 我本来是就我了解的信息和大家分享以下而已,结果你这么一说倒好像我是来这里做广告的,晕。
其实各位大虾,如果是自己做项目玩玩,用什么工具都无所谓,没有什么时间压力,如果是公司做产品,在条件具备的情况下,还是尽量用最好的工具来搞, Time to Market 是非常重要的。 对于硬件仿真器,我相信论坛里已经有一些朋友在使用这个东西了。 没有啦。我是欢迎此类广告:)。希望介绍得越详细越好(当然最好贴超详细的SPEC和GUIDE)。 呵呵,这里简单列举一些 American Arium Hardware ICE 的一些主要功能,供各位大虾参考:
1, Sourcelevel debug, assembley, C code and mix mode
2, Full Run Control(reset, step into,step over, run, stop) ability from target
RESET, to POST, then to OS Boot
2, Completely Register,Memory and IO Space access
3, Various types breakpoint(Software,Hardware,SMM,IO Access,Data Access...)
enables developers to accelerate the debugging progress
4, PCI/PCI Express Devices Access (from target reset, don't need BIOS to finish PCI enumeration)
5, Trace Ability to enable developer to "go-back" and find out what's wrong
6, Legacy and UEFI BIOS support
7, Multi Processor/Core Support
8, HOT Plug whenever target was power cycled, reset or crashed
9, ACPI S3 code debugging
10, Full trace both Intel and AMD processor roadmap and will support them when the first silicon power on 之前就听说WINDBG可以用来调试ACPI CODE,但是一直没用过,也不太清楚怎么用,
不知哪位大虾能把WINDBG给大家普及一下 Intel 有位工程师写了一本书,叫软件调试, China-Pub上面有卖的, 其中第三十章讲到 WinDBG 的用法,这一章可以免费下载到:
http://bv.csdn.net/resource/rjts.pdf
另外,他也有一片讨论怎么 Debug ACPI AML code 的:
http://advdbg.org/blogs/advdbg_system/articles/14.aspx
回复 13# 的帖子
顺便问一下:我看ITP对于UEFI默认只有Tiano的宏,不知道现在有没有针对AMI或者Phoenix UEFI 的宏? 都一样, 都是基于 Intel Tiano 架构的实现,对于ITP来讲都一样的 谢谢shermanliu提供的好东西,以后可以尝试用WINDBG而不是80PORT调试ACPI了:victory: 最近在看<<software debuger>>:软件调试。
书中讲到很多Debug的方法。
向大家推荐一下
BIOS的Debug还要向大家学习
Phoenix的Code可能通过WinDdb加 USB 互联线进行Debug,我还是个泥脚子。
哈。。。 To:shermanliu
兄弟也在看那书啊。太有Y了。
那书写的是比较NB。对没有很多没有Debug和开展经验的同学可以好好的学习。
全书总共1000页。慢慢看。
附上书中提到的一个Debug软件的资料,可以学习一下Debug软件是怎么写的。
UFOIT.COM是个好平台。以后大家可以多多交流Debug的方法
页:
[1]
2