新聞中心
驅(qū)動(dòng)linux驅(qū)動(dòng)之DTS加載之道

創(chuàng)新互聯(lián)建站成立十多年來,這條路我們正越走越好,積累了技術(shù)與客戶資源,形成了良好的口碑。為客戶提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、網(wǎng)站策劃、網(wǎng)頁設(shè)計(jì)、申請(qǐng)域名、網(wǎng)絡(luò)營銷、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。網(wǎng)站是否美觀、功能強(qiáng)大、用戶體驗(yàn)好、性價(jià)比高、打開快等等,這些對(duì)于網(wǎng)站建設(shè)都非常重要,創(chuàng)新互聯(lián)建站通過對(duì)建站技術(shù)性的掌握、對(duì)創(chuàng)意設(shè)計(jì)的研究為客戶提供一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。
Linux驅(qū)動(dòng)開發(fā)的核心就是內(nèi)核編譯,而這種編譯必不可少地要利用Device Tree Source(dts)文件來描述硬件結(jié)構(gòu),方便內(nèi)核對(duì)硬件進(jìn)行驅(qū)動(dòng)加載。也就是說,dts文件是開發(fā)硬件驅(qū)動(dòng)過程中一個(gè)不可缺少的關(guān)鍵,本文將詳細(xì)深入剖析Linux硬件設(shè)備驅(qū)動(dòng)開發(fā)中,dts文件如何載入內(nèi)核、解析以及如何有效利用它進(jìn)行設(shè)備驅(qū)動(dòng)調(diào)試的過程。
首先,在Linux驅(qū)動(dòng)開發(fā)過程中,dts文件是將硬件芯片結(jié)構(gòu)描述成內(nèi)核代碼,以便內(nèi)核進(jìn)行驅(qū)動(dòng)加載,dts文件主要是定義硬件芯片的物理特性為核心的描述,并定義外設(shè)的地址空間,告知內(nèi)核當(dāng)前硬件所掛接的總線(比如I2C、SPI等),還有中斷等信息,dts文件通過描述硬件設(shè)備的物理結(jié)構(gòu),將此硬件連接到存放在內(nèi)核表格中的特定驅(qū)動(dòng)程序中。
完成硬件特性描述后,dts文件將通過編譯器(dtc)編譯成內(nèi)核能夠識(shí)別并加載的內(nèi)核二進(jìn)制設(shè)備樹表(dtb)文件格式,也就是具體化的dts源文件。完成這步之后,編譯出來的dtb文件將和內(nèi)核一起燒寫到硬件的Flash中,內(nèi)核啟動(dòng)時(shí)即可讀取這個(gè)dtb文件,定位出具體的硬件結(jié)構(gòu),這樣內(nèi)核就知道把相關(guān)總線和外設(shè)驅(qū)動(dòng)程序加載到內(nèi)核內(nèi),初始化硬件結(jié)構(gòu),并生成控制設(shè)備節(jié)點(diǎn)等。
例如,在Linux設(shè)備中構(gòu)建一個(gè)I2C總線,dts文件就可以用以下代碼定義:
&i2c0 {
status = “okay”;
clock-frequency = ;
pinctrl-names = “default”;
pinctrl-0 = ;
};
&pinctrl_i2c0 {
i2c0-sda {
gpio-num = ;
output-high;
};
i2c0-scl {
gpio-num = ;
output-high;
};
};
以上的定義就能確定I2C0總線在Linux中的使用,一旦把dts編譯成為dtb后放入內(nèi)核,內(nèi)核根據(jù)這些dts信息就可以正確的加載相應(yīng)的設(shè)備驅(qū)動(dòng)。
因此,在Linux硬件驅(qū)動(dòng)開發(fā)過程中,dts文件可以用來定義硬件的物理特性,提供具體總線、地址和中斷信息,是一種讓內(nèi)核根據(jù)dts文件定義設(shè)備結(jié)構(gòu)并加載驅(qū)動(dòng)的有效方式,讓初學(xué)者可以更好更簡單的開發(fā)Linux系統(tǒng)硬件設(shè)備驅(qū)動(dòng)。
成都網(wǎng)站推廣找創(chuàng)新互聯(lián),老牌網(wǎng)站營銷公司
成都網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)(www.cdcxhl.com)專注高端網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì)制作,網(wǎng)站維護(hù),網(wǎng)絡(luò)營銷,SEO優(yōu)化推廣,快速提升企業(yè)網(wǎng)站排名等一站式服務(wù)。IDC基礎(chǔ)服務(wù):云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)、服務(wù)器租用、服務(wù)器托管提供四川、成都、綿陽、雅安、重慶、貴州、昆明、鄭州、湖北十堰機(jī)房互聯(lián)網(wǎng)數(shù)據(jù)中心業(yè)務(wù)。
當(dāng)前文章:驅(qū)動(dòng)Linux驅(qū)動(dòng)之dts加載之道(加載dtsLinux)
網(wǎng)頁地址:http://m.fisionsoft.com.cn/article/cocghsi.html


咨詢
建站咨詢
