阅读:1882回复:6
求助?初学者该如何入门?
请问初学firmware,该如何入门?
有那方面的教程, 用UltraEdit打开bin文件为什么只能看到16进制的乱码?有的却只有一堆数字,我该如何来转换成能看懂的? [编辑 - 6/30/04 by sjinc88] |
|
沙发#
发布于:2004-06-29 15:54
Firmware也分肺
|
|
板凳#
发布于:2004-06-30 13:15
是*.bin
|
|
地板#
发布于:2004-07-08 16:07
*.bin是经过编译后的文件,初学者当然是看不懂了。
学FirmWare,一是要有编程的思路,二是要学会看懂硬件结构。一切都得靠自己。现在市面上有关这方面的书很多的,一般大学电子与计算机专业方面的都有开51的课,多看看教材,好好学就行了。不要想一下子就会,一天会一点就行了。 |
|
|
地下室#
发布于:2004-07-08 17:06
有没有比较直接的,如用什么软件转换
|
|
5楼#
发布于:2004-07-09 11:02
你如果要看懂别人的*.bin文件的话,首先你要精通汇编.然后要熟记一些常用的机器码和汇编的对应转化关系,对一些编译原理,段之类的都要有一定的了解,还有需要多看SPEC,这样你才会明白里面的一些数字的含义.比如说你拿到一个BIOS的bin文件,看到一个"EA 5B E0 00 F0"这样的16进制代码,那么你应该可以想到这是一个JMP的跳转指令,实际上是跳到f000:e05b处执行代码.EO5B是什么?就是BIOS规范里定义的POST的入口地址.实际上这个数字一般出现在fff0处,因为计算机启动的时候一般就是从f000:fff0处执行代码,而且这个地方一般放的都是一条跳转指令.再比如说你看到一个"E8...."什么的,这有可能就是一条"call"指令.还有你如果看到"52 53 44 54"这样的东西,这有可能就是RSDT(ROOT SYSTEM DESCRIPTION TABLE,ACPI TABLE的一部分,98启动可以没有ACPI,2000有的版本需要,有的不需要,如果要启动XP,bios里面必须有ACPI,MS的下一代操作系统,也需要BIOS vendor在bios里面提供ACPI)结构的开始位置了,然后你根据规范,第几个成员变量,找到它指向的其他结构的指针地址,然后通过计算,一般又可以找到其他ACPI表的地址.要看懂别人编译好的bin文件的话,其实也不需要太长的时间,但需要有高人指点,被指点次数多了,你也不知不觉的会了.
|
|
6楼#
发布于:2004-07-11 16:23
多谢指点!!!
不知对于*.hex的文件又该如何处理,如 :020000020000FC :1000000000017C9247D320010801FFFF00017C9290 :1000100000017C9200017C9200017C9200017C92A4 :1000200000017C9200017C9200017C920001F32C83 :100030000000F7D4000117B000005AA600017C921E :1000400000017C9200017C9200017C9200017C9274 :100050000001844400017C9200017C9200017C92AA :1000600000017C9200007BA200017C9200017C9246 :1000700000017C9200017C9200017C9200017C9244 :1000800000017C9200017C9200017C9200017C9234 :1000900000017C9200002DD800017C9200017C922E :1000A00000017C9200017C9200017C9200017C9214 |
|