熟女俱乐部五十路二区av,又爽又黄禁片视频1000免费,国产卡一卡二卡三无线乱码新区,中文无码一区二区不卡αv,中文在线中文a

新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于PXA310平臺的溫濕度傳感器設(shè)計

基于PXA310平臺的溫濕度傳感器設(shè)計

作者: 時間:2016-12-01 來源:網(wǎng)絡(luò) 收藏

本文引用地址:http://www.bjwjmy.cn/article/201612/324471.htm

▲圖2 驅(qū)動程序流程圖


  上述函數(shù)中start_trans; write_byte; read_data; read_byte 分別利用PXA310 引腳模擬時序完成啟動傳輸、寫字節(jié),讀一位數(shù)據(jù)和讀字節(jié)的操作。

  內(nèi)核tasklet_schedule() 調(diào)度執(zhí)行指定的tasklet,在獲得運(yùn)行機(jī)會之前只會調(diào)度一次,如果在運(yùn)行時被調(diào)度, 則完成后會被再次運(yùn)行。
  wait_for_completion()這個函數(shù)進(jìn)行一個不可打斷的等待,如果有代碼調(diào)用它,并且沒有完成這個任務(wù),結(jié)果會是一個不可殺死的進(jìn)程。copy_to_user()將內(nèi)核空間數(shù)據(jù)傳向上層用戶空間,并讓上層測試程序做進(jìn)一步處理。
  3.3 Linux 溫濕度傳感器設(shè)備阻塞操作
  由于溫濕度傳感器測量需要一定時間,為提高系統(tǒng)運(yùn)行效率和實(shí)時性,在驅(qū)動程序中阻塞線程,交出內(nèi)核控制權(quán),等待操作完成后喚醒線程,提高系統(tǒng)利用率。complete()在函數(shù)中就是喚醒一個等待的讀取線程。任務(wù)隊列實(shí)現(xiàn)函數(shù)如下所示。

  Tasklet可以使測量操作在系統(tǒng)負(fù)荷不重時被調(diào)用,或是被立即執(zhí)行,但始終不會晚于下一個CPU clock.
  Tasklet 始終在中斷期間運(yùn)行,并且在調(diào)度他的同一CPU 上運(yùn)行。對比單片機(jī)系統(tǒng),在單線程情況下,一般在sht10_read()中調(diào)用2 次measure_ sht10()來等待測量完成,測量效率依賴2 次測量消耗的時間;但在Linux 驅(qū)動程序中,使用Tasklet 方式操作,2 次測量過程不會對其他線程產(chǎn)生影響,在有其他實(shí)時事件需要及時處理時(如網(wǎng)絡(luò),視頻),可以更有效提高驅(qū)動運(yùn)行效率,降低對其他實(shí)時處理產(chǎn)生的影響。
  4 溫濕度傳感器測試與驗(yàn)證
  驅(qū)動程序完成以后,需要相應(yīng)測試程序驗(yàn)證驅(qū)動程序編寫的正確性。由于驅(qū)動程序中不能對數(shù)據(jù)進(jìn)行浮點(diǎn)數(shù)運(yùn)算,所以測試程序必須將驅(qū)動程序傳遞來的數(shù)據(jù)進(jìn)行浮點(diǎn)數(shù)運(yùn)算才能得到相應(yīng)的溫濕度值。


評論


技術(shù)專區(qū)

關(guān)閉