新聞中心
dma windows驅(qū)動源碼嗎?
在《深入理解Linux內(nèi)核》中的第545頁介紹了DMA的相關(guān)操作。說道DMA,那就不得不提到Cache(高速緩存)的問題。書中引用了如下一段例子來描述了Cache一致性問題:

逗假設(shè)設(shè)備驅(qū)動程序把一些數(shù)據(jù)填充到內(nèi)存緩沖區(qū)中,然后立刻命令硬件設(shè)備利用DMA傳送方式讀取該數(shù)據(jù)。如果DMA訪問這些物理RAM內(nèi)存單元,而相應的硬件高速緩存行的內(nèi)容還沒有寫入RAM中,那么硬件設(shè)備所讀取的至就是內(nèi)存緩沖區(qū)中的舊值。地
現(xiàn)在有兩種方法來處理DMA緩沖區(qū):
一致性DMA映射:
書上講的比較抽象,通俗地所就是任何對DMA緩沖區(qū)的改寫都會直接更新到內(nèi)存中,也稱之為逗同步的地或者逗一致的地。
流式DMA映射:
根據(jù)個人的理解,這里的流即輸入輸出流,我們需要事先指定DMA緩沖區(qū)的方向,比如是地讀緩沖區(qū)地還是逗寫緩沖區(qū)地。也稱之為逗異步的地或逗非一致性的地,詳細的內(nèi)容請看下文。
由于x86體系結(jié)構(gòu)中,硬件設(shè)備驅(qū)動程序本身會逗窺探地所訪問的硬件告訴緩存,因此x86體系結(jié)構(gòu)中不存在DMA一致性問題。而對于其他一些架構(gòu)如MIPS,SPARC以及POWERPC(包括ARM在內(nèi))需要在軟件上保證其DMA一致性。
對于以上兩者如何選擇,書中有一個合適的建議,如果CPU和DMA處理器以不可預知的方式去訪問一個緩沖區(qū),那么必須強制使用一致性DMA映射方式(這里我對不可預知的理解是,不能確定在何時它們訪問緩沖區(qū)),其他情形下,流式DMA映射方式更可取,因為在一些體系結(jié)構(gòu)中處理一致性DMA映射是很麻煩的,并且可能導致更低的系統(tǒng)性能。
windows常用的宏有哪些?
宏(#define)指令定義一個標識符(宏名)和一個串(即字符集或宏量),在源程序中發(fā)現(xiàn)該標識符時,都用該串替換它。#define
宏名
宏量例如:#define
MAX
10
這樣的話在源程序中只要遇到MAX時,編譯程序都會用10去替換MAX。C中沒有常用的宏,只有它原來就定義好的,你可以在C的安裝文件夾下找一個叫Include的文件夾,看里面的標準頭文件就能看到了,不過這些對于我們編程沒有用的,只是相當于編譯工具的“源代碼”一樣。
分類寫出10個windows的常見文件擴展名及類型?
*.pif為DOS環(huán)境下的可執(zhí)行文件在Windows下執(zhí)行時所需要的文件格式
★常見的文件后綴名
.ACA:Microsoft的代理使用的角色文檔
.acf:系統(tǒng)管理配置
.acm:音頻壓縮管理驅(qū)動程序,為Windows系統(tǒng)提供各種聲音格式的編碼和解碼功能
.aif:聲音文件,支持壓縮,可以使用WindowsMediaPlayer和QuickTimePlayer播放
.AIF:音頻文件,使用WindowsMediaPlayer播放
.AIFC:音頻文件,使用WindowsMediaPlayer播放
.AIFF:音頻文件,使用WindowsMediaPlayer播放
.ani:動畫光標文件擴展名,例如動畫沙漏。
linux源代碼中有很多變量以handler結(jié)尾,代表什么意思?和window里面的句柄有什么區(qū)別?
這里發(fā)估計沒幾個人都回答你,因為涉及到linux源代碼。這個handler和句柄完全不是一回事,句柄的英文是handle:)handler是處理程序的意思,比如中斷有相應中斷的內(nèi)核中斷處理程序 - interrupt handler;信號有信號處理程序 signal handler我只能盡我最大力量回答你,我沒看過內(nèi)核代碼,不過對內(nèi)核還懂些。希望即使沒幫到你 也啟發(fā)了你
到此,以上就是小編對于windows的源代碼是公開的的問題就介紹到這了,希望這4點解答對大家有用。
網(wǎng)站標題:dmawindows驅(qū)動源碼嗎?windows的源代碼
轉(zhuǎn)載來于:http://www.dlmjj.cn/article/ccsodse.html


咨詢
建站咨詢
