0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

英創(chuàng)信息技術(shù)嵌入式Linux應(yīng)用程序自動(dòng)載入驅(qū)動(dòng)模塊方法簡介

英創(chuàng)信息技術(shù) ? 來源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-01-14 11:21 ? 次閱讀

英利公司推出的嵌入式Linux工控板EM9160針對(duì)一些擴(kuò)展應(yīng)用,實(shí)現(xiàn)了相應(yīng)的驅(qū)動(dòng)程序,包括有精簡ISA總線的操作驅(qū)動(dòng)、GPIO、I2C、SPI、LCD、KeyPad、CAN驅(qū)動(dòng)等。這些設(shè)備的驅(qū)動(dòng)程序可以在內(nèi)核啟動(dòng)后,通過啟動(dòng)腳本來自動(dòng)加載,但是這種方式往往不夠靈活,因?yàn)樵趯?shí)際的應(yīng)用中,客戶往往會(huì)根據(jù)實(shí)際情況加以選擇。

基于這種情況,我們把驅(qū)動(dòng)程序模塊分為兩類,第一類驅(qū)動(dòng)針對(duì)于嵌入式Linux工控板EM9160直接引出的接口,如ISA總線、GPIO、LCD、I2C、SPI等,則直接通過內(nèi)核啟動(dòng)腳本來實(shí)現(xiàn)自動(dòng)載入。第二類針對(duì)于利用ISA總線進(jìn)行的擴(kuò)展應(yīng)用驅(qū)動(dòng),如:Keypad 、CAN應(yīng)用等,對(duì)于這類驅(qū)動(dòng)在內(nèi)核啟動(dòng)時(shí)并沒有自行載入,需要客戶可根據(jù)實(shí)際情況進(jìn)行選擇。本文將著重介紹如何在應(yīng)用程序中實(shí)現(xiàn)自動(dòng)載入第二類驅(qū)動(dòng)模塊的方法。

英利所提供的嵌入式Linux工控板的所有驅(qū)動(dòng)庫文件均放置在文件系統(tǒng)/lib/modules/2.6.30目錄下。

系統(tǒng)內(nèi)核自動(dòng)載入驅(qū)動(dòng)功能模塊:
/lib/modules/2.6.30/em9x60_sysinfo.ko
/lib/modules/2.6.30/em9x60_isa.ko
/lib/modules/2.6.30/em9x60_gpio.ko
/lib/modules/2.6.30/em9x60_irq.ko
/lib/modules/2.6.30/em9x60_pwm.ko
/lib/modules/2.6.30/em9x60_i2c.ko
/lib/modules/2.6.30/em9x60_lcd.ko

需要客戶自行入載驅(qū)動(dòng)功能模塊:
/lib/modules/2.6.30/em9x60_keypad.ko
/lib/modules/2.6.30/em9x60_can.ko

在嵌入式Linux操作系統(tǒng)下,一般是利用insmod指令來實(shí)現(xiàn)向系統(tǒng)內(nèi)核載入模塊,如載入鍵盤驅(qū)動(dòng):
# insmod /lib/modules/2.6.30/em9x60_keypad

在嵌入式應(yīng)用中,往往是需要自動(dòng)運(yùn)行模式,這就需要通過編程來實(shí)現(xiàn)。因此在應(yīng)用編程代碼中,利用C++中的構(gòu)造函數(shù)以及析構(gòu)函數(shù)可以很好地實(shí)現(xiàn)驅(qū)動(dòng)功能模塊的自動(dòng)載入和自動(dòng)卸載,下面是以鍵盤為例來加以說明。

定義一個(gè)class KEYManager鍵盤管理類,在該類中主要實(shí)現(xiàn)對(duì)鍵盤的響應(yīng)功能。

其構(gòu)造函數(shù):
KEYManager::KEYManager( )
{
m_ExitThreadFlag = 0;
system( 'insmod /lib/modules/2.6.30/em9x60_keypad.ko' ); // 載入鍵盤驅(qū)動(dòng)模塊
}

對(duì)應(yīng)的析構(gòu)函數(shù):
KEYManager::~KEYManager( )
{
system( 'rmmod em9x60_key' ); // 卸載鍵盤驅(qū)動(dòng)模塊
}

應(yīng)用程序中,一旦定義了class KEYManager的實(shí)例就實(shí)現(xiàn)了鍵盤模塊的自動(dòng)載入。后續(xù)就可打開鍵盤設(shè)備文件,讀取鍵碼值,從而實(shí)現(xiàn)對(duì)鍵盤響應(yīng)的功能。

在英利公司所提供的嵌入式Linux開發(fā)光盤上均有以上介紹的相關(guān)源碼提供,以供客戶參考。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11182

    瀏覽量

    208519
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6083

    瀏覽量

    35115
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    嵌入式linux開發(fā)的基本步驟有哪些?

    嵌入式Linux開發(fā)是一個(gè)復(fù)雜的過程,涉及到硬件選擇、操作系統(tǒng)移植、驅(qū)動(dòng)開發(fā)、應(yīng)用程序開發(fā)等多個(gè)方面。以下是嵌入式
    的頭像 發(fā)表于 09-02 09:11 ?287次閱讀

    嵌入式linux開發(fā)板芯片的工作原理

    嵌入式Linux開發(fā)板是一種基于Linux操作系統(tǒng)的嵌入式系統(tǒng)開發(fā)平臺(tái),它廣泛應(yīng)用于工業(yè)控制、智能家居、智能交通、醫(yī)療設(shè)備等領(lǐng)域。 嵌入式
    的頭像 發(fā)表于 09-02 09:07 ?255次閱讀

    C28x嵌入式應(yīng)用程序二進(jìn)制接口

    電子發(fā)燒友網(wǎng)站提供《C28x嵌入式應(yīng)用程序二進(jìn)制接口.pdf》資料免費(fèi)下載
    發(fā)表于 08-31 09:39 ?0次下載
    C28x<b class='flag-5'>嵌入式</b><b class='flag-5'>應(yīng)用程序</b>二進(jìn)制接口

    MSP430嵌入式應(yīng)用程序二進(jìn)制接口

    電子發(fā)燒友網(wǎng)站提供《MSP430嵌入式應(yīng)用程序二進(jìn)制接口.pdf》資料免費(fèi)下載
    發(fā)表于 08-30 11:43 ?0次下載
    MSP430<b class='flag-5'>嵌入式</b><b class='flag-5'>應(yīng)用程序</b>二進(jìn)制接口

    C6000嵌入式應(yīng)用程序二進(jìn)制接口

    電子發(fā)燒友網(wǎng)站提供《C6000嵌入式應(yīng)用程序二進(jìn)制接口.pdf》資料免費(fèi)下載
    發(fā)表于 08-29 14:52 ?0次下載
    C6000<b class='flag-5'>嵌入式</b><b class='flag-5'>應(yīng)用程序</b>二進(jìn)制接口

    嵌入式設(shè)備中的4G/5G模塊管理

    在高度數(shù)字化的智能時(shí)代,Linux嵌入式板卡在各個(gè)領(lǐng)域都發(fā)揮著重要作用,然而,隨著4G/5G技術(shù)的普及,如何高效、穩(wěn)定地管理這些嵌入式設(shè)備上的無線
    發(fā)表于 07-13 16:45

    嵌入式軟件開發(fā)應(yīng)該掌握哪些知識(shí)?

    兩個(gè)部分組成,其中嵌入式軟件是指在嵌入式系統(tǒng)中運(yùn)行的程序,用于控制硬件并提供特定的功能和服務(wù)。嵌入式軟件應(yīng)用廣泛,包括汽車、醫(yī)療設(shè)備、智能家居、智能穿戴、工業(yè)
    發(fā)表于 02-19 11:23

    嵌入式Linux開發(fā)的三種方式

    嵌入式Linux開發(fā)主要有三種方式:裸機(jī)開發(fā)、SDK開發(fā)和驅(qū)動(dòng)開發(fā)。
    的頭像 發(fā)表于 01-22 14:22 ?882次閱讀

    【從0開始創(chuàng)建AWTK應(yīng)用程序】編譯應(yīng)用到嵌入式Linux平臺(tái)運(yùn)行

    。搭建Linux平臺(tái)交叉編譯環(huán)境在上一篇文章我們介紹了使用AWTK開發(fā)簡單的應(yīng)用并在PC上模擬運(yùn)行,本篇文章就來介紹一下怎么讓應(yīng)用程序運(yùn)行在嵌入式Linux平臺(tái)上。1
    的頭像 發(fā)表于 12-07 12:08 ?620次閱讀
    【從0開始創(chuàng)建AWTK<b class='flag-5'>應(yīng)用程序</b>】編譯應(yīng)用到<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>平臺(tái)運(yùn)行

    嵌入式系統(tǒng)的原理(簡介與入門)

    電子發(fā)燒友網(wǎng)站提供《嵌入式系統(tǒng)的原理(簡介與入門).pdf》資料免費(fèi)下載
    發(fā)表于 11-17 14:36 ?2次下載
    <b class='flag-5'>嵌入式</b>系統(tǒng)的原理(<b class='flag-5'>簡介</b>與入門)

    嵌入式Linux應(yīng)用程序開發(fā)詳解-第3章

    電子發(fā)燒友網(wǎng)站提供《嵌入式Linux應(yīng)用程序開發(fā)詳解-第3章.pdf》資料免費(fèi)下載
    發(fā)表于 11-16 11:19 ?0次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b><b class='flag-5'>應(yīng)用程序</b>開發(fā)詳解-第3章

    嵌入式Linux應(yīng)用程序開發(fā)詳解-第2章

    電子發(fā)燒友網(wǎng)站提供《嵌入式Linux應(yīng)用程序開發(fā)詳解-第2章.pdf》資料免費(fèi)下載
    發(fā)表于 11-16 11:18 ?0次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b><b class='flag-5'>應(yīng)用程序</b>開發(fā)詳解-第2章

    嵌入式Linux應(yīng)用程序開發(fā)詳解-第1章

    電子發(fā)燒友網(wǎng)站提供《嵌入式Linux應(yīng)用程序開發(fā)詳解-第1章.pdf》資料免費(fèi)下載
    發(fā)表于 11-16 11:17 ?0次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b><b class='flag-5'>應(yīng)用程序</b>開發(fā)詳解-第1章

    有無操作系統(tǒng)的嵌入式Linux驅(qū)動(dòng)設(shè)備有何區(qū)別?

    有無操作系統(tǒng)的嵌入式Linux驅(qū)動(dòng)設(shè)備有何區(qū)別? 嵌入式系統(tǒng)是指集成電子設(shè)備上的計(jì)算機(jī)系統(tǒng),通常用于控制、監(jiān)測、操作或處理某些物理或機(jī)械過程。在嵌入
    的頭像 發(fā)表于 10-29 17:29 ?660次閱讀

    嵌入式系統(tǒng)中驅(qū)動(dòng)程序的結(jié)構(gòu)和設(shè)計(jì)方法

    電子發(fā)燒友網(wǎng)站提供《嵌入式系統(tǒng)中驅(qū)動(dòng)程序的結(jié)構(gòu)和設(shè)計(jì)方法.doc》資料免費(fèi)下載
    發(fā)表于 10-27 10:23 ?0次下載
    <b class='flag-5'>嵌入式</b>系統(tǒng)中<b class='flag-5'>驅(qū)動(dòng)程序</b>的結(jié)構(gòu)和設(shè)計(jì)<b class='flag-5'>方法</b>