概述
可能好多网友看到此文章的题目,会感到很奇怪,将低于BIOS芯片容量的文件,使用编程器写入,那不是太简单了吗;其实如果直接将3M文件使用编程器写入 4M芯片,这肯定是可以正确写入的,但用此法写好的芯片,插到主板上机器是无法启动;即然编程正确,那为什么无法使用呢?其实原因我们可以从芯片地址上找到答案的。
我们知道,3M芯片地址是从0000H-5FFFFH,4M芯片地址是从0000H-7FFFFH,二者芯片相差了1FFFFH的空间,即1M容量。如果我们直接使用编程器写,那么编程器默认是从0000H地址开始写入,因文件是3M的。因此文件是写入4M芯片从0000H--5FFFFH之间的空间,而且从6000H--7FFFFH之间的地址为空,即FF。而主板启动时,首先需要读取BIOS芯片的最后端的跳转命令,而现在4M芯片的尾部为空字节,因此无法读取到正确的跳转命令,因此系统也就无法启动了。
对于直接将3M文件写入4M芯片,文件在芯片中的位置,可参考下图。
因此,我们可通过将3M文件头部,加入1M空字节,来实现将3M文件合并成一个4M文件,然后再使用编程器写入4M芯片的方法来解这个问题。
修改过程是很简单的,使用UltraEdit32即可完成。相关文章可从此下载:UltraEdit32
本文以华硕P4VP-MXBIOS主板为例,其使用SST 49LF030 LPC 3M芯片,由于BIOS芯片损坏,无法找到3M的芯片,因而使用SST 49LF040芯片代替。
从华硕网站下载到BIOS文件,其文件大小为384KB,即3M。首先运行UltraEdit32,选择[文件]--打开,调入需要修改的文件P4VP1013.AMI。
由于4M芯片为512K,文件大小应是从地址0000H--7FFFFH;3M文件的最后地址为5FFFFH,因此我们还需要加入2000H地址的空字节,由于20000H为16进制,我们还需要将其换算成10进制文件才可,这里我们就要用到WIN自带的计算器了。在开始--所有程序--附件--计算器,点击工具栏--查看--选择科学型;首先选择十六进制,然后从键盘输入7FFFF-5FFFF=2000,然后选择十进制,即可得到10进制 131072,正好128K即1M的字节数。
点击UltraEdit32工具栏--文件--新建,建立一新文件,在右侧编辑栏中,随意输入几个字符,然后回车。然后选择工具栏--编辑--HEX编辑;然后选择右侧编辑栏中输入的数据,按鼠标右键删除。这样即可得到一个空字节的二进制文件。
将鼠标选择0000H地址处,也就是文件的开始地址,选择UltraEdit32工具栏--编辑--HEX插入\删除,在出现在操作界面中,选择插入,在插入\删除的字节数量中,输入我们开始算出的131072,然后确定。
确定插入131072字节后,由于默认插入是20的空字节,因此我们还需要将20全部替换成FF;选择UltraEdit32工具栏--搜索--替换,在替换界面中--查找内容中输入20,在替换为输入FF,其它选项都不选择,然后选择全部替换,所有字节即替换成FF。
选择UltraEdit32工具栏--编辑--全部选定,选择后,点鼠标右键,选择复制。然后点击左侧编辑中,双击开始打开的P4VP1013.AMI,将鼠标移到文件头部,即0000H处,按鼠标右键,选择粘贴,即可从0000H地址处,插入131072字节的空字节。
此时文件的最后地址应是7FFFFH,而且内容应与3M文件的最后地址内容一样。至此文件就修改完成,我们选择UltraEdit32工具栏--文件--另存为,将文件另行保存即可。
然后将修改好的文件,使用编程器写入4M芯片,即可顺利完成主板启动;此文章内容已经使用华硕P4VP-MXBIOS主板测试通过。
其实将3M文件写入4M芯片,以上方法是将3M文件修改成4M文件,然后再写入。其实还有简单的方法,如果你有专业的编程器如VP-480,插上4M芯片,并选择好芯片型号后。在调入BIOS文件时,在出现读文件到缓冲区界面时,在缓冲区开始地址处,输入文件在缓冲区的开始地址,由于3M文件前要加入 1M即1FFFFH的空字节,因此开始地址输入20000,确定即可。
关于VP系列编程器介绍,请参考此联接VP系列专业编程器
然后选择编程,即可方便将3M文件正确写入到4M芯片中;而且同样可以正常的启动主板。
耗子随便说一下,其实在以前介绍的将2MBIOS文件,合并后写入到4M芯片中,使用的COPY命令,其原因,与本文介绍也是一致的;也是由于系统读取芯片尾部跳转命令的原因。我们使用拷贝命令,将两个2M文件,头尾相接,合并成一个4M文件,其结果与在2M文件头部加入2M空字节是一样的结果的。
主要是4M文件是2M文件的一倍,因此直接拷贝,方便操作;如2M文件为2.BIN,我们在DOS状态下,使用COPY 2.BIN/B 2.BIN/B 4.BIN回车即可完成4M文件的合并。也可按文章介绍,使用UltraEdit32,在2M文件前面加个2M的空字节,其结果都是一样的。
其实3M文件,也可采用COPY的方法,在3M文件前面加上一个1M空字节的文件,这个文件可用UltraEdit32制作,耗子在此已经提供一个做好的1M空字节文件,网友可从此下载:1M文件下载;在DOS或WIN环境MSDOS方式下,使用COPY 1M.BIN/B 3M.BIN/B 4M.BIN(这里1M文件指1M空文件 3M指3M BIOS文件 4M指合并后的4M文件),需要注意的是,在COPY合并时,一定要是1M.BIN/B 3M.BIN/B的顺序,因为这样是在1M文件后面加上3M文件,否则正好相反,起不到修改BIOS的作用,这一点一定要特别注意。
注意:
1、文件修改时,在UltraEdit32编辑修改时,确定地址的准确性是很重要的。
2、如用编程器直接刷新,一定在调入文件时,要确定好BIOS文件在缓冲区中的开始地址。
3、如果使用COPY命令合并3M文件时,一定要注意是1M.BIN/B 3M.BIN/B的顺序,不能是3M.BIN/B 1M.BIN/B反过来,否则将失去修改的意义,这一点要特别注意。
4、使用COPY合并时,一定要加/B参数,代表按二进制合并。
最后
以上就是平淡早晨为你收集整理的如何将3M文件写入4M芯片的全部内容,希望文章能够帮你解决如何将3M文件写入4M芯片所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复