c语言sscanf函数的用法是什么
237
2022-11-20
英创信息技术ESM335x工控主板ISA总线DMA数据传输简介
数据块读写功能是通过设备驱动的DeviceIoControl来完成的,需要用到以下数据结构:
typedef struct
{
PBYTE pWriteBuf; //ISA写数据buffer, 只能一个buffer有效
DWORD dwDataLength; //length of data in byte
DWORD dwDataPortOfs; //读写的起始地址 = 0x00 – 0xFF
DWORD dwInc; //= 0: 固定地址, > 0: 读写后地址自动增加
} ISA_BLOCK_INFO, *PISA_BLOCK_INFO;
在上述数据结构中:
pReadBuf为进行读操作时的数据buffer,读操作具体为8-bit数据读。注意:数据结构中,pReadBuf和pWrietBuf只能有一个有效。
pWriteBuf为进行写操作时的数据buffer,写操作具体为8-bit数据读。注意:数据结构中,pReadBuf和pWrietBuf只能有一个有效。
dwDataPortOfs为读写的端口地址,范围为0x00 – 0xFF。
dwDataLength为本数据块读或写的字节数。
dwInc为每次读写后,地址的自动增量,dwInc = 0:表示固定地址读写,dwInc > 0: 表示每次读写后,地址会自动增加dwInc,作为下一次的读写地址。当地址超过0xFF时,会折回到地址0x00。
采用DMA进行数据传输可以进一步提高ISA总线的数据传输速度,同时大大降低总线数据传输对CPU负载率的影响。当不使用DMA进行数据传输,ESM335x CPU全速运行时(CPU负载100%),ISA总线的读写速度在3MB/s左右,使用DMA方式后,ESM335x ISA总线速度可达到5MB/s左右,扣除驱动程序必要处理开销,在应用层实测的数据块读速度为4.17MB/s、数据块写速度为4.5MB/s,而此时CPU的负载率在15%左右。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~