首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

DMA有关问题

2012-11-06 
DMA问题某种总线采用burst模式,单个数据的读写是OK的,但burts会一次收到N个数据,这样就得采用dma映射(A映

DMA问题
某种总线采用burst模式,单个数据的读写是OK的,但burts会一次收到N个数据,这样就得采用dma映射(A映射到B,A表示总线的一个地址,B表示一段物理内存)
问题来了:没有映射的时候,单个读写为:value=*A
但DMA映射后,采用什么机制去触发这个读操作,然后直接去读B里面的值
某些SPI之类的是有寄存器中断触发的,但这种总线上的映射,没有寄存器,只有一个中断。

希望做过的人给一个思路

[解决办法]
DMA: Direct Memory Access. 首先要看 chip 的 DMA controller, 它的 Source/Destination 支援哪些 peripheral, 再依照 data sheet 上所述 config DMA Controller.

WinCE 要利用 HalAllocateCommonBuffer 這個API來取得 physical contiguous 的 memory 及其 physical address 來設定 DMA.

Paul, Chao @ Techware

热点排行