1. 什么是驅(qū)動(dòng)模塊?
官方定義: 可在運(yùn)行時(shí)添加到內(nèi)核中的代碼被稱為“模塊”。
Linux設(shè)備驅(qū)動(dòng)只有在Linux內(nèi)核中才能工作,內(nèi)核是驅(qū)動(dòng)運(yùn)行所依賴的環(huán)境(Linux內(nèi)核中有驅(qū)動(dòng)運(yùn)行所需要的庫(kù)等)。
所以驅(qū)動(dòng)編譯、運(yùn)行有兩種方式:
一種方式是直接將驅(qū)動(dòng)代碼放入內(nèi)核中,作為內(nèi)核的一部分進(jìn)行編譯,然后Linux內(nèi)核啟動(dòng)的時(shí)候,驅(qū)動(dòng)也即運(yùn)行。
另一種方式是將驅(qū)動(dòng)單獨(dú)編譯成一個(gè)模塊,當(dāng)Linux內(nèi)核運(yùn)行起來(lái)后,需要某個(gè)驅(qū)動(dòng)的時(shí)候,再將對(duì)應(yīng)的驅(qū)動(dòng)模塊添加到當(dāng)前的Linux內(nèi)核中,當(dāng)不需要某個(gè)驅(qū)動(dòng)的時(shí)候,可以從內(nèi)核中將對(duì)應(yīng)的驅(qū)動(dòng)模塊卸載掉
2. 模塊化編程有什么好處?
1)可以減小內(nèi)核鏡像的體積,因?yàn)槟K本身不被編譯到內(nèi)核鏡像里面。
2)可以在內(nèi)核中添加或刪除功能(模塊化的形式)而不用重新編譯內(nèi)核(每一次從新編譯內(nèi)核很耗時(shí)):
非模塊化驅(qū)動(dòng)編程過(guò)程: 編寫驅(qū)動(dòng)->編譯內(nèi)核(驅(qū)動(dòng)放入內(nèi)核代碼中一起編譯)->生成鏡像燒寫到硬件->如果驅(qū)動(dòng)出現(xiàn)問(wèn)題則從新回到步修改然后開始直到成功。
模塊化驅(qū)動(dòng)編程過(guò)程: 編寫驅(qū)動(dòng)->單獨(dú)將驅(qū)動(dòng)編譯成一個(gè)模塊->將模塊下載到正在運(yùn)行的硬件上并插入到內(nèi)核中->如果有問(wèn)題則回到步驟一從新開始,整個(gè)過(guò)程無(wú)需重新編譯和燒寫內(nèi)核。
一直以來(lái)達(dá)內(nèi)科技都是以嵌入式培訓(xùn)作為我們公司發(fā)展的主要核心,每年為企業(yè)培養(yǎng)了上萬(wàn)的嵌入式人才,給市場(chǎng)輸送了一部分的嵌入式人才。如果說(shuō)你是想要學(xué)習(xí)嵌入式linux技術(shù)的話,那么可以來(lái)我們達(dá)內(nèi)科技實(shí)地考察,也可以點(diǎn)擊我們文章下面的獲取試聽資格按鈕來(lái)獲取我們的嵌入式linux培訓(xùn)免費(fèi)課程試聽資格,來(lái)和我們的講師進(jìn)行面對(duì)面的交流和溝通,并更加深入的了解我們達(dá)內(nèi)科技。