浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網(wǎng) » 技術(shù)資料 » 嵌入式系統(tǒng)

GPIO設(shè)備程序開發(fā)步驟

發(fā)布時間:2008/12/25 0:00:00 訪問次數(shù):686

  gpio驅(qū)動可以歸類為linux設(shè)備驅(qū)動的字符設(shè)備驅(qū)動,以下是開發(fā)它的一些具體步驟。

  (1)模塊化驅(qū)動程序

  不失linux驅(qū)動開發(fā)的一般性,在寫字符設(shè)備的驅(qū)動程序時,也要遵守模塊化編程的一般規(guī)范。設(shè)備模塊在用戶空間的初始化和終止:

  ●init mnodule()向內(nèi)核注冊模塊提供數(shù)據(jù)結(jié)構(gòu)、局部和全局變量。

  ●cleanup_module()取消所有init_module在內(nèi)核中的注冊。

 。2)設(shè)備模塊在內(nèi)核空間的內(nèi)存申請和釋放

  kmalloc()函數(shù)分配一段內(nèi)存,這樣就實現(xiàn)了chrdevs向量表中指向設(shè)備驅(qū)動程序名稱的指針。使用kfree釋放內(nèi)存。

 。3)字符設(shè)備主設(shè)備號和次設(shè)備號的分配

  主設(shè)備號標志設(shè)備對應(yīng)的驅(qū)動程序,內(nèi)核利用主設(shè)備號將設(shè)備與相應(yīng)的驅(qū)動程序?qū)?yīng)起來。主設(shè)備號的取值范圍是0~255,如果不善加規(guī)劃,則容易造成主設(shè)備號的沖突。主設(shè)備號的分配有靜態(tài)和動態(tài)之分,從開發(fā)設(shè)備的角度來看,推薦靜態(tài)設(shè)備號的分配。

  次設(shè)備號由驅(qū)動程序使用,內(nèi)核的其他部分并不使用它,僅將它傳遞給驅(qū)動程序。一個驅(qū)動程序控制若干個設(shè)備,次設(shè)備號提供了一種區(qū)分它們的方法。

 。4)設(shè)備模塊在內(nèi)核空間的注冊與注銷

  字符設(shè)備的注冊有2種方法,一種是常用注冊方法,通過系統(tǒng)函數(shù)register_chrdev()將設(shè)備加入到系統(tǒng)設(shè)備列表中;另一種方法是devfs技術(shù),通過系統(tǒng)函數(shù)devfs ̄register()實現(xiàn)設(shè)備的注冊。注銷與注冊相反,分別調(diào)用unregister_chrdev()函數(shù)和devfs_unregister()函數(shù)。

  (5)設(shè)備模塊在內(nèi)核空間提供系統(tǒng)調(diào)用的函數(shù)

  設(shè)備驅(qū)動程序在注冊成功以后,用戶可以通過訪問設(shè)備特殊文件(一般情況在/dev目錄下)實現(xiàn)系統(tǒng)調(diào)用。

  gpio驅(qū)動程序只需要一個file_operati。ns數(shù)據(jù)結(jié)構(gòu)體就可以了。這是因為gp10本身在設(shè)計階段就定制好了接入的物理設(shè)備,接入到gpio端口的物理設(shè)備并不需要即插即用。因此可以在開發(fā)階段定制該接口的物理設(shè)備`也可以擔這個接口的設(shè)各作為該產(chǎn)品的標配外設(shè)發(fā)布。

  這樣,在編寫驅(qū)動程序的過程中,只要寫好應(yīng)用程序使用標準系統(tǒng)調(diào)用打開、讀取、寫和關(guān)閉等處理函數(shù),就可以完成驅(qū)動程序的開發(fā)。其中,標準系統(tǒng)調(diào)用處理函數(shù)在所有的字符設(shè)備里面具有同樣的功能。

  歡迎轉(zhuǎn)載,信息來自維庫電子市場網(wǎng)(www.dzsc.com)



  gpio驅(qū)動可以歸類為linux設(shè)備驅(qū)動的字符設(shè)備驅(qū)動,以下是開發(fā)它的一些具體步驟。

 。1)模塊化驅(qū)動程序

  不失linux驅(qū)動開發(fā)的一般性,在寫字符設(shè)備的驅(qū)動程序時,也要遵守模塊化編程的一般規(guī)范。設(shè)備模塊在用戶空間的初始化和終止:

  ●init mnodule()向內(nèi)核注冊模塊提供數(shù)據(jù)結(jié)構(gòu)、局部和全局變量。

  ●cleanup_module()取消所有init_module在內(nèi)核中的注冊。

 。2)設(shè)備模塊在內(nèi)核空間的內(nèi)存申請和釋放

  kmalloc()函數(shù)分配一段內(nèi)存,這樣就實現(xiàn)了chrdevs向量表中指向設(shè)備驅(qū)動程序名稱的指針。使用kfree釋放內(nèi)存。

  (3)字符設(shè)備主設(shè)備號和次設(shè)備號的分配

  主設(shè)備號標志設(shè)備對應(yīng)的驅(qū)動程序,內(nèi)核利用主設(shè)備號將設(shè)備與相應(yīng)的驅(qū)動程序?qū)?yīng)起來。主設(shè)備號的取值范圍是0~255,如果不善加規(guī)劃,則容易造成主設(shè)備號的沖突。主設(shè)備號的分配有靜態(tài)和動態(tài)之分,從開發(fā)設(shè)備的角度來看,推薦靜態(tài)設(shè)備號的分配。

  次設(shè)備號由驅(qū)動程序使用,內(nèi)核的其他部分并不使用它,僅將它傳遞給驅(qū)動程序。一個驅(qū)動程序控制若干個設(shè)備,次設(shè)備號提供了一種區(qū)分它們的方法。

 。4)設(shè)備模塊在內(nèi)核空間的注冊與注銷

  字符設(shè)備的注冊有2種方法,一種是常用注冊方法,通過系統(tǒng)函數(shù)register_chrdev()將設(shè)備加入到系統(tǒng)設(shè)備列表中;另一種方法是devfs技術(shù),通過系統(tǒng)函數(shù)devfs ̄register()實現(xiàn)設(shè)備的注冊。注銷與注冊相反,分別調(diào)用unregister_chrdev()函數(shù)和devfs_unregister()函數(shù)。

 。5)設(shè)備模塊在內(nèi)核空間提供系統(tǒng)調(diào)用的函數(shù)

  設(shè)備驅(qū)動程序在注冊成功以后,用戶可以通過訪問設(shè)備特殊文件(一般情況在/dev目錄下)實現(xiàn)系統(tǒng)調(diào)用。

  gpio驅(qū)動程序只需要一個file_operati。ns數(shù)據(jù)結(jié)構(gòu)體就可以了。這是因為gp10本身在設(shè)計階段就定制好了接入的物理設(shè)備,接入到gpio端口的物理設(shè)備并不需要即插即用。因此可以在開發(fā)階段定制該接口的物理設(shè)備`也可以擔這個接口的設(shè)各作為該產(chǎn)品的標配外設(shè)發(fā)布。

  這樣,在編寫驅(qū)動程序的過程中,只要寫好應(yīng)用程序使用標準系統(tǒng)調(diào)用打開、讀取、寫和關(guān)閉等處理函數(shù),就可以完成驅(qū)動程序的開發(fā)。其中,標準系統(tǒng)調(diào)用處理函數(shù)在所有的字符設(shè)備里面具有同樣的功能。

  歡迎轉(zhuǎn)載,信息來自維庫電子市場網(wǎng)(www.dzsc.com)



相關(guān)IC型號

熱門點擊

 

推薦技術(shù)資料

DFRobot—玩的就是
    如果說新車間的特點是“靈動”,F(xiàn)QPF12N60C那么... [詳細]
版權(quán)所有:51dzw.COM
深圳服務(wù)熱線:13692101218  13751165337
粵ICP備09112631號-6(miitbeian.gov.cn)
公網(wǎng)安備44030402000607
深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
付款方式


 復(fù)制成功!