4
我想从闪存复制数据到RAM。 那么我如何设置DMA控制器中RAM的目标内存地址,以便它可以使用它的通道将数据从源地址(在闪存中)复制到RAM存储器中。如何通过DMA控制器访问RAM存储器?
我在x86 arch上做,它是8237 DMA。
我想从闪存复制数据到RAM。 那么我如何设置DMA控制器中RAM的目标内存地址,以便它可以使用它的通道将数据从源地址(在闪存中)复制到RAM存储器中。如何通过DMA控制器访问RAM存储器?
我在x86 arch上做,它是8237 DMA。
8237 DMA控制器能够进行从RAM到RAM,从I/O到RAM,从RAM到I/O设备的传输。
您必须考虑到您将只能复制最多64KB的数据。如果您想复制超过64KB,则需要多次传输操作。
假设你使用的是一台IBM PC有相同的环境,你可以设置在单独的锁目标内存段地址,你将需要:
规范化目的地地址段:偏移,使得偏移量为大于16 正常化进行这种方式下(DIV是整数除法,MOD是弹性模量):
normalized_segment = segment + offset DIV 16
normalized_offset = offset MOD 16
装载段值进入高位锁存器属于您要使用的信道(页面地址寄存器)
这是什么类型的设备?这是一个USB或SATA闪存? – 2012-02-06 09:21:44
这是内核操作系统,应该照顾管理...除非没有内核。 – m0skit0 2012-02-06 09:26:07
David:Ita SDD闪存从我必须复制数据(内核映像)并将其放入RAM中。 我已经阅读了一些tutoials,但很抱歉得到了很多信息如何做mem-to-mem复制(尤其是设置目标地址) m0skit0 - 我正在通过bootloader进行这项操作,目前没有内核,因为bootloader本身就是将内核映像从闪存复制到RAM中 – user1083212 2012-02-06 10:01:48