19.6.33. DMA(DMA 资源描述符宏)
语法 :
DMA ( DmaType , IsBusMaster , DmaTransferSize, DescriptorName )
{ DmaChannelList } => Buffer
参数
DmaType 指定 DMA 周期的类型:ISA 兼容(兼容型)、EISA A 型(A 型)、EISA B 型(B 型)或 EISA F 型(F 型)。系统会自动创建 2 位字段 DescriptorName._TYP 来引用资源描述符的这一部分,其中 ‘0’ 表示兼容型,‘1’ 表示 A 型,‘2’ 表示 B 型,‘3’ 表示 F 型。
IsBusMaster 指定该设备是否可以产生 DMA 总线主控周期(总线主控),或者不可以(非总线主控)。如果未指定任何内容,则假定为总线主控。系统会自动创建 1 位字段 DescriptorName._BM 来引用资源描述符的这一部分,其中 ‘0’ 表示非总线主控,‘1’ 表示总线主控。
DmaTransferSize 指定设备能够产生的 DMA 周期大小:8 位(8 位传输)、16 位(16 位传输)或者同时支持 8 位和 16 位(8/16 位传输)。系统会自动创建 2 位字段 DescriptorName._SIZ 来引用资源描述符的这一部分,其中 ‘0’ 表示 8 位传输,‘1’ 表示 8/16 位传输,‘2’ 表示 16 位传输。
DescriptorName 是一个可选参数,用于指定一个整数常量的名称,该常量将在当前作用域中创建,并包含该资源描述符在当前资源模板缓冲区中的偏移量。预定义的描述符字段名称可以附加到该名称之后,以通过缓冲区字段运算符访问描述符中的各个字段。
DmaChannelList 是一个以逗号分隔的整数列表,取值范围为 0 到 7,用于指定设备所使用的 DMA 通道。列表中不能有重复项。
说明
DMA 宏求值为一个包含 DMA 资源描述符的缓冲区。该资源描述符的格式可参见 DMA 描述符。此宏设计用于 ResourceTemplate(资源到缓冲区转换宏)内部。