预计阅读本页时间:-
12.5.3 直接存储器访问
设备驱动经常使用DMA,Symbian操作系统支持DMA硬件的使用。DMA硬件包含一个控制一系列DMA通道的控制器。每个通道提供内存和设备间的单一方向的通信,因此,数据的双向传输需要两个DMA通道。至少有一对DMA通道是专用于显示LCD控制器的。此外,大多数平台提供一定数量的常规DMA通道。
一旦一个设备把数据传送到内存,就会激发一个系统中断。PDD为了传输设备使用DMA硬件提供的DMA服务,这里传输设备是指与硬件接口的设备驱动的一部分。在PDD与DMA控制器之间,Symbian操作系统实现两层软件:一个软件的DMA层,一个与DMA硬件接口的内核扩展。DMA层把自身分成平台独立层和台相关层。作为内核扩展,DMA层在引导进程中是内核启动的第一批设备驱动的一个。
由于特殊的原因,对DMA的支持是比较复杂的。Symbian操作系统支持许多不同的硬件配置,但是没有提供缺省的DMA配置。与DMA硬件的接口是标准化的,由平台无关层来提供。平台相关层和内核扩展由生产厂商提供,这样Symbian操作系统就如对其他设备一样处理DMA硬件:在LDD和PDD构件中具有设备驱动。由于DMA硬件本身是一个设备,并且它并行了Symbian操作系统支持所有设备的方式,因此这种实现支持的方式是合理的。