欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

如何将3M文件写入4M芯片

程序员文章站 2022-05-01 08:29:42
如何将3M文件写入4M芯片可能好多网友看到此文章的题目,会感到很奇怪,将低于BIOS芯片容量的文件,使用编程器写入,那不是太简单了吗;其实如果直接将3M文件使用编程器写入 4M芯片,这肯定是可以正确写入的... 09-04-21...

可能好多网友看到此文章的题目,会感到很奇怪,将低于bios芯片容量的文件,使用编程器写入,那不是太简单了吗;其实如果直接将3m文件使用编程器写入 4m芯片,这肯定是可以正确写入的,但用此法写好的芯片,插到主板上机器是无法启动;即然编程正确,那为什么无法使用呢?其实原因我们可以从芯片地址上找到答案的。

我们知道,3m芯片地址是从0000h-5ffffh,4m芯片地址是从0000h-7ffffh,二者芯片相差了1ffffh的空间,即1m容量。如果我们直接使用编程器写,那么编程器默认是从0000h地址开始写入,因文件是3m的。因此文件是写入4m芯片从0000h--5ffffh之间的空间,而且从6000h--7ffffh之间的地址为空,即ff。而主板启动时,首先需要读取bios芯片的最后端的跳转命令,而现在4m芯片的尾部为空字节,因此无法读取到正确的跳转命令,因此系统也就无法启动了。

对于直接将3m文件写入4m芯片,文件在芯片中的位置,可参考下图。

如何将3M文件写入4M芯片

因此,我们可通过将3m文件头部,加入1m空字节,来实现将3m文件合并成一个4m文件,然后再使用编程器写入4m芯片的方法来解这个问题。

修改过程是很简单的,使用ultraedit32即可完成。相关文章可从此下载:如何将3M文件写入4M芯片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的字节数。

如何将3M文件写入4M芯片

点击ultraedit32工具栏--文件--新建,建立一新文件,在右侧编辑栏中,随意输入几个字符,然后回车。然后选择工具栏--编辑--hex编辑;然后选择右侧编辑栏中输入的数据,按鼠标右键删除。这样即可得到一个空字节的二进制文件。

如何将3M文件写入4M芯片

将鼠标选择0000h地址处,也就是文件的开始地址,选择ultraedit32工具栏--编辑--hex插入\删除,在出现在操作界面中,选择插入,在插入\删除的字节数量中,输入我们开始算出的131072,然后确定。

 如何将3M文件写入4M芯片

确定插入131072字节后,由于默认插入是20的空字节,因此我们还需要将20全部替换成ff;选择ultraedit32工具栏--搜索--替换,在替换界面中--查找内容中输入20,在替换为输入ff,其它选项都不选择,然后选择全部替换,所有字节即替换成ff。

如何将3M文件写入4M芯片

选择ultraedit32工具栏--编辑--全部选定,选择后,点鼠标右键,选择复制。然后点击左侧编辑中,双击开始打开的p4vp1013.ami,将鼠标移到文件头部,即0000h处,按鼠标右键,选择粘贴,即可从0000h地址处,插入131072字节的空字节。

如何将3M文件写入4M芯片

此时文件的最后地址应是7ffffh,而且内容应与3m文件的最后地址内容一样。至此文件就修改完成,我们选择ultraedit32工具栏--文件--另存为,将文件另行保存即可。

然后将修改好的文件,使用编程器写入4m芯片,即可顺利完成主板启动;此文章内容已经使用华硕p4vp-mxbios主板测试通过。

其实将3m文件写入4m芯片,以上方法是将3m文件修改成4m文件,然后再写入。其实还有简单的方法,如果你有专业的编程器如vp-480,插上4m芯片,并选择好芯片型号后。在调入bios文件时,在出现读文件到缓冲区界面时,在缓冲区开始地址处,输入文件在缓冲区的开始地址,由于3m文件前要加入 1m即1ffffh的空字节,因此开始地址输入20000,确定即可。

关于vp系列编程器介绍,请参考此联接如何将3M文件写入4M芯片vp系列专业编程器

如何将3M文件写入4M芯片

然后选择编程,即可方便将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空字节文件,网友可从此下载:如何将3M文件写入4M芯片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参数,代表按二进制合并。