找回密码
 加入计匠网
搜索
热搜: BIOS ACPI CPU Windows
查看: 50408|回复: 27

很想知道大家都用什么调试工具

[复制链接]
发表于 2008-12-16 08:44:35 | 显示全部楼层 |阅读模式
各位好,; D! }- h; F, c; j- m
小弟刚做bios,很想知道大家够用什么工具调试追踪问题,我们部门一直都是用80port 加debug card,
; G/ X* h# T! p1 C) P0 q5 P连什么并口,串口调试都没见过 6 B8 s* `5 t, f6 ^
大家呢?能交流下吗??) H" ^6 [7 n" R. L: |& k# O9 l
这不是做广告
发表于 2008-12-16 09:18:59 | 显示全部楼层
Insyde H20 DDT(USB). windbg(COM/1394/USB).基于COM/LPT的某个特殊工具.ACPI调试的小工具..! k/ R9 M1 q( Z- T7 d: g
想象你的情况应该还是在使用Legacy的code,其实台湾的老前辈们早就写好了COM/LPT口的、可以单步trace code的BIOS debugger,功能超强。而且台湾老前辈们每人都有自己习惯用的debug tools,有些是自己开发。
+ m+ R: X4 p9 u' S大陆BIOS起来得比较晚,大多用的都是别人做好的,很少会去想着自己能开发。不过论坛在深圳的David大哥,自己整了个基于SMBUS的debugger,功能在加强中。适合自己、工具越多越好。
回复

使用道具 举报

发表于 2008-12-16 09:48:01 | 显示全部楼层
BIOS 调试工具:4 H* O2 R; u+ D& {
1, 最简单,最便宜的, Port 80, 包括 PCI, PCI-E, Mini PCI, LPC 不同接口形式的
4 F" o. E0 r' L( u6 b$ ~! q这种方法有个局限性,就是只能知道BIOS 的 Error Code, 没办法知道什么原因,只能靠经验分析,6 Z+ M; j( A6 _+ z- }7 X4 Y
或者采用添加冗余 POST Codes 的方式,一遍遍的编译/烧写/Reboot, 直到找到问题所在: y3 e% K8 J5 Z! v/ _& P
2, 各 BIOS Vendor 自己开发的 Debug Tool, 有纯软件的,比如基于 COM 口的调试工具,
4 G' Z. _" I" }. A% rBIOS Code 里面做一个 COM Redirection, 也有带硬件的(一般是PCI或者USB接口的一个卡)。
# K, c: m- E: X! y* ?都有一些局限性。如果Memory 初始化,PCI 枚举或者 USB初始化代码出问题,这套东西就不管用了。( K5 _$ `: B# j( W! J2 x! e
3,硬件仿真器,针对 Intel 的叫 ITP,或者 XDP, 针对 AMD 的叫作 HDT/MHDT,(VIA 暂时还没有引入 JTAG 技术)
; V0 i( Y3 _1 M9 Z, N$ \8 w; s硬件仿真器可以在源代码级别上调试 Legacy 和 UEFI BIOS, 从 Reset Vector 开始可以完全控制和访问整个系统资源。
回复

使用道具 举报

发表于 2008-12-16 09:53:25 | 显示全部楼层
楼上的朋友现在是来自American arium,他所说的第3个,可以联系他呢。8 u9 j+ S* ~, w# b; }" T
针对楼上朋友的第2点,谈到memory初始化,现在有cache asm rom。所以memory 初始化用software去debug是没有问题的。PCI枚举或USB初始化时,如在debug模式下,软件也会做相应的方案来应付。主要是Software调试成本不高,当然会有些不方便。
4 t& E+ P3 M6 q, M9 w不过,一个公司最好有一套hardware的调试工具,以方便解决一些棘手问题。
回复

使用道具 举报

 楼主| 发表于 2008-12-16 10:15:56 | 显示全部楼层
感谢bini和shermanliu回复,0 S$ H0 S2 B" N! D
我对“David大哥,自己整了个基于SMBUS的debugger”很感兴趣,请问他是全软件方式吗, 还是辅助了一些硬件?
% T7 T6 {# ?5 B" s# d- M. l* P谢谢各位!
回复

使用道具 举报

发表于 2008-12-16 10:26:23 | 显示全部楼层
他用单片机做了个盒子,称作什么来着...Magic box....喷..他好象有意在加强,不过好象他没时间,但可以在上面做的东西是蛮多的了。前些日子都在问我有什么需求,他做出来卖呢....
回复

使用道具 举报

发表于 2008-12-16 10:40:55 | 显示全部楼层
是有这个MagicBox还在卖, 还支持温度显示, 风扇控制, 一键超频等功能, 可花了我不少心血..; |2 n1 |' K) q4 H8 L5 ?( H: r5 I
6 t  g( ^+ y7 l$ c. j" W2 z" C
在比较复杂的调试下, 使用COM口是比较好的, 可以通过windows的超级终端就可以看到你想看的数据. 如果主板有COM口, 这是最佳的方法. 只需要一根COM线, 你自己想输出什么数据都可以...反正不需要第三方的任何东西...
. g9 J8 q! x! u: I: F% Y7 ]9 e( C  i6 G& V/ c& ], G. l9 i
等时间闲些, 我做一个 SMBus <--> Ethernat 的东西出来玩玩..
回复

使用道具 举报

发表于 2008-12-16 10:53:49 | 显示全部楼层
正和David商量,让支持通过LAN进行远程debug呢:),之前和他做过一个学校的太阳能控制系统,从深圳可以控制广州某家学校的我们做的控制器。正好可以拿来看看.....不过都要时间的....
回复

使用道具 举报

 楼主| 发表于 2008-12-16 11:26:53 | 显示全部楼层
为各位的创意所振奋,我也决定自己动手做些东西,见贤思齐嘛 , |; k# S3 ]- x/ i% W! Q+ g
谢谢!!
回复

使用道具 举报

发表于 2008-12-16 12:12:13 | 显示全部楼层
我一直都用port 80,准备也弄个COM的调试方式。" H1 n5 R! m+ {- Q# r
以前做嵌入式也是用串口,很好用。
回复

使用道具 举报

发表于 2008-12-16 13:33:17 | 显示全部楼层
To bini, 我本来是就我了解的信息和大家分享以下而已,结果你这么一说倒好像我是来这里做广告的,晕。- _8 ^2 a* o0 h/ s  y7 x
其实各位大虾,如果是自己做项目玩玩,用什么工具都无所谓,没有什么时间压力,如果是公司做产品,在条件具备的情况下,还是尽量用最好的工具来搞, Time to Market 是非常重要的。 对于硬件仿真器,我相信论坛里已经有一些朋友在使用这个东西了。
回复

使用道具 举报

发表于 2008-12-16 13:52:30 | 显示全部楼层
没有啦。我是欢迎此类广告:)。希望介绍得越详细越好(当然最好贴超详细的SPEC和GUIDE)。
回复

使用道具 举报

发表于 2008-12-16 14:10:40 | 显示全部楼层
呵呵,这里简单列举一些 American Arium Hardware ICE 的一些主要功能,供各位大虾参考:6 ~- W9 g* M7 N; H) \! |5 B
1, Sourcelevel debug, assembley, C code and mix mode  & N) k' T6 ~$ B9 l$ l
2, Full Run Control(reset, step into,step over, run, stop) ability from target
" a; k0 t- l" x8 n0 F   RESET, to POST, then to OS Boot5 k, x: C. h' S- x4 z8 e* |! P; u
2, Completely Register,Memory and IO Space access' ?9 P7 V( I5 O. E1 D6 v3 w
3, Various types breakpoint(Software,Hardware,SMM,IO Access,Data Access...) ' b0 x/ H& |, N; Z/ ]% ~. [  L
   enables developers to accelerate the debugging progress% U) S$ K" j" O) N0 Q
4, PCI/PCI Express Devices Access (from target reset, don't need BIOS to finish PCI enumeration)* z* P% Y+ p+ {. J& G* L  C
5, Trace Ability to enable developer to "go-back" and find out what's wrong! C4 d$ k5 m: i+ B
6, Legacy and UEFI BIOS support
$ ^8 a" D8 `" G1 E7, Multi Processor/Core Support: @1 ~! v! ^0 O) j+ t2 \7 O9 i% c
8, HOT Plug whenever target was power cycled, reset or crashed$ Y8 C2 q9 x3 ^6 z5 p  t! W% B) o
9, ACPI S3 code debugging
% v" ]  S+ s# F# o0 g10, Full trace both Intel and AMD processor roadmap and will support them when the first silicon power on
回复

使用道具 举报

发表于 2008-12-16 14:53:16 | 显示全部楼层
之前就听说WINDBG可以用来调试ACPI CODE,但是一直没用过,也不太清楚怎么用,
1 j  }  J9 E, C' J: x, P$ _不知哪位大虾能把WINDBG给大家普及一下
回复

使用道具 举报

发表于 2008-12-16 15:26:54 | 显示全部楼层
Intel 有位工程师写了一本书,叫软件调试, China-Pub上面有卖的, 其中第三十章讲到 WinDBG 的用法,这一章可以免费下载到:
  a0 R& k* P7 A$ ^3 u" lhttp://bv.csdn.net/resource/rjts.pdf 4 p+ u5 F1 E1 P' S- J0 A7 y' [7 m
另外,他也有一片讨论怎么 Debug ACPI AML code 的: / B6 n3 `$ j; ^* f5 U2 n4 q( y0 E
http://advdbg.org/blogs/advdbg_system/articles/14.aspx
回复

使用道具 举报

发表于 2008-12-16 15:27:27 | 显示全部楼层

回复 13# 的帖子

顺便问一下:) F+ e, d5 f  n# n8 j9 g5 {) T! [
我看ITP对于UEFI默认只有Tiano的宏,不知道现在有没有针对AMI或者Phoenix UEFI 的宏?
回复

使用道具 举报

发表于 2008-12-16 15:35:27 | 显示全部楼层
都一样, 都是基于 Intel Tiano 架构的实现,对于ITP来讲都一样的
回复

使用道具 举报

发表于 2008-12-17 12:43:46 | 显示全部楼层
谢谢shermanliu提供的好东西,以后可以尝试用WINDBG而不是80PORT调试ACPI了
回复

使用道具 举报

发表于 2009-2-13 09:53:27 | 显示全部楼层
最近在看<<software debuger>>:软件调试。/ a2 v: `5 ~6 ?) F4 e" D% i
书中讲到很多Debug的方法。
, V7 t, j) Z9 D# x2 u: t5 a* m向大家推荐一下
$ F( \4 Z, W  c! J% ~% M/ K8 ?- L# C8 M/ p
BIOS的Debug还要向大家学习
. o2 U: p* `6 r* fPhoenix的Code可能通过WinDdb加 USB 互联线进行Debug,我还是个泥脚子。
" s* @* M- R) n( t+ J0 d7 i7 ~哈。。。
回复

使用道具 举报

发表于 2009-2-13 09:59:47 | 显示全部楼层
To:  shermanliu
+ h$ J) Q, @" O& C1 J 兄弟也在看那书啊。太有Y了。. w& ]; f8 G5 ~# e
1 U( F* Q6 F; |. |  M
那书写的是比较NB。对没有很多没有Debug和开展经验的同学可以好好的学习。" x0 V6 _$ N/ d4 k; n& }
全书总共1000页。慢慢看。
1 s1 E, }  @0 N' e4 Y) Q: }4 s
+ b, C5 X% w# f( w附上书中提到的一个Debug软件的资料,可以学习一下Debug软件是怎么写的。5 `. H/ A$ l  E3 z  K6 k2 L2 `

+ u8 D8 V" L( d/ b: ]- R' R0 M9 s: yUFOIT.COM是个好平台。以后大家可以多多交流Debug的方法

mon_86_1.4a.pdf

1.27 MB, 下载次数: 3252

Monitor 8086

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

Archiver|手机版|小黑屋|计匠网

GMT+8, 2026-8-12 20:01 , Processed in 0.130272 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表