新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 頻譜儀多種內(nèi)核通信機(jī)制的方案設(shè)計(jì)

頻譜儀多種內(nèi)核通信機(jī)制的方案設(shè)計(jì)

作者: 時(shí)間:2012-04-12 來(lái)源:網(wǎng)絡(luò) 收藏
4.1.5 模塊的編譯、加載

  在驅(qū)動(dòng)文件的最后加上如下代碼,設(shè)置模塊加載與釋放對(duì)應(yīng)的函數(shù):

  module_init(hpi_init);

  module_exit(hpi_exit);

  完成了驅(qū)動(dòng)程序的編寫(xiě),將源程序文件在Linux開(kāi)發(fā)環(huán)境下編譯成.ko的模塊文件,使用insmod和rmmod指令來(lái)加載和卸載模塊。

  4.2 SPI設(shè)備驅(qū)動(dòng)程序?qū)崿F(xiàn)

  在SPI的驅(qū)動(dòng)設(shè)計(jì)中,大體的框架跟HPI是相同的。包括頭文件宏定義的完善、SPI設(shè)備的初始化、file_operations結(jié)構(gòu)中函數(shù)的實(shí)現(xiàn)、資源釋放,最后編譯、加載。需要說(shuō)明的是AT91RM9200自帶了SPI接口,所以初始化時(shí)要根據(jù)芯片手冊(cè)對(duì)SPI接口的I/O線(xiàn)、時(shí)鐘、工作模式

  等進(jìn)行配置,才能保證硬件的正常工作。在SPI驅(qū)動(dòng)的write函數(shù)中,使用了如下代碼:

  copy_from_user(Ytos,buf,count);

  在Linux的驅(qū)動(dòng)設(shè)計(jì)中,經(jīng)常涉及到用戶(hù)空間和內(nèi)核空間的通信問(wèn)題,即數(shù)據(jù)的交換。copy_from_user與copy_to_user函數(shù)就是為了實(shí)現(xiàn)這一功能。上述代碼實(shí)現(xiàn)的功能就是將用戶(hù)空間buf的count字節(jié)的內(nèi)容復(fù)制到內(nèi)核中定義的數(shù)組Ytos中,從而完成用戶(hù)空間和內(nèi)核的數(shù)據(jù)交換。驅(qū)動(dòng)的其余實(shí)現(xiàn)類(lèi)似HPI,不再詳述。



關(guān)鍵詞: 頻譜儀 內(nèi)核通信

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉