xiaochun2012 发表于 2013-12-18 11:32:42

谁来深度讲讲ldr不胜感激

如题,请教高人指导

szsxmys 发表于 2013-12-18 12:27:48

俺也是从网上看到的:

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正常读写磁盘中的内容了!你就可以刷固件
了!

szsxmys 发表于 2013-12-18 12:29:09

来源同上:俄罗斯的一个硬盘维修人员这样解释的:
LDR文件其实就是一组指令,定义了
硬盘磁头在SA区的程序的寻道参数,以便硬盘的初始
化进程能顺利进行。LDR文件的的引导过程有时候需要
反复的在RAM中进行堆栈处理,配合ROM中的程序共同
实现硬盘的自检过程,这个过程主要是在SA区中进行的。
众网友看看是不是这么回事?

szsxmys 发表于 2013-12-18 12:31:18

我认为,后一个解释比较好。即使ROM中,也是由主控制器执行的代码组成的,包括操作码、操作数,这是机器码的两个构成元素。。

张咪 发表于 2013-12-18 21:41:16

学习啦学习了

漂大庆 发表于 2013-12-18 22:50:01

是不是相当引导指令?

abcc 发表于 2013-12-19 12:13:28

操作码相当于引导指令、操作数相当于数据。这就是机器码最直接的面目.不过机器码的变换有2万多种形式。
页: [1]
查看完整版本: 谁来深度讲讲ldr不胜感激