深入解析硬盘LDR

[复制链接]

该用户从未签到

9

主题

63

回帖

540

积分

[INTOHARD]连长

Rank: 4

积分
540
发表于 2006-12-4 12:15:59 | 显示全部楼层 |阅读模式
[sell=10]  LDR文件是ROM里的程序,你反编译里面的代码,是DSP的汇编程序,分析程序那么
硬盘的结构你就都知道了,就好比电脑里的操作系统WIN98!RAM就是ROM里的程序运行过程中生成的,比如一些堆栈,状态等,跟电脑里的内寸一样!盘片上面的是叫做固件吗?就是一个列表,让ROM中的程序来读的,就象数据库一样。
有朋友说美钻的硬盘电路板上看不到ROM芯片,(不知道是不是真没有,还是着位老兄看差了!)那就一定在DSP芯片内部了。DSP内部也有ROM和RAM,不过都很小,如果程序放不下就需要扩展,扩展后我们在电路板上看到的ROM芯片了。
如果没有ROM的话那么RAM就一定很大,因为ROM程序应该没有用途的,它就是一些跳转和内存分配的程序,将硬盘上的真正的启动程序读出来放到RAM里,然后在RAM里执行!这样有好处是降低成本。
就是说美钻的真正的引导程序是在硬盘上。也许这就是美钻老启动不起来的原因吧!因为ROM是电可擦除的元件,放到里面的程序一般都不会损坏!而把程序放到硬盘上,硬盘是磁介质方式存数据,有磁化现象数据就不完整了!大家天天刷LDR文件!既然ROM里的程序不坏那为什么要刷它呢,其实我也不明白,不过昨天我有幸看到了效率源的一个说明书上面写了一句话让我恍然大悟,原来硬盘在正常启动是与BIOS通讯的,如果启动失败硬盘里的引导程序就END了,就结束了明白吗?就是到程序的结尾处!
可我们的主要目的是要刷固件(我说的固件就是磁盘上0道之前的模块,不知道这样说对不对?),刷固件就需要通过ROM中的程序执行,因为只有它才能访问硬盘,而ROM中的程序END了,就不能够执行了。我们需要ROM中的程序从第一条指令执行,所以要让DSP重新启动。DSP从起动就可以从ROM中的第一条指令执行了!DSP在加电或者RESET都可以重新启动!这就是热插拔的原因了,说白了就重起动DSP!
好了现在我们刷完LDR文件,那为什么要刷RAM呢,要知道你的固件是坏了,那么ROM中的程序就不能执行完,执行到某一个位置就执行不下去了,需要你去干预,把程序调到正确的位置。因为一般硬盘只有在启动时才读固件中的内容,启动后就不需要了。而RAM文件正是ROM正常状态下的运行环境。所以RAM刷好后,ROM中的程序才可以调用RAM正常读写磁盘中的内容了!你就可以刷固件
了[/sell]

该用户从未签到

0

主题

33

回帖

32

积分

[INTOHARD]工兵

Rank: 1

积分
32
发表于 2010-11-10 15:55:42 | 显示全部楼层
学习了!很好!
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

104

回帖

92

积分

[INTOHARD]班长

Rank: 2

积分
92
发表于 2010-12-8 15:37:24 | 显示全部楼层
路过此地学习一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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