除了 內(nèi)核有默認(rèn)配置文件 穩(wěn)妥的做法是執(zhí)行 Linux下操作寄存器一定要先映射,但是通常只映射基地址,通過基址加偏移的方式操作。 不要直接去映射每一個(gè)寄存器的物理地址,因?yàn)閷?duì)于某一個(gè)驅(qū)動(dòng),雖然有很多寄存器,但基址都是一樣的。 即便你是Linux驅(qū)動(dòng)崗, 一定要多看看內(nèi)存相關(guān)的知識(shí)。Linux下操作的都是虛擬地址,寫進(jìn)寄存器的是物理地址,怎么知道虛擬地址對(duì)應(yīng)的物理地址?分配dma一致性內(nèi)存和分配普通內(nèi)存有什么區(qū)別? 寄存器手冊(cè)寫的地址是物理地址,給我記住了。 dma內(nèi)存問題,緩存一致性問題等,這些你都逃不掉。1、不要只會(huì)用printk
printk
,內(nèi)核里面有很多pr_info
、pr_err
等打印函數(shù),要學(xué)會(huì)控制打印等級(jí),以及針對(duì)不同的場(chǎng)景使用不同的打印函數(shù)。2、新手不要直接改defconfig
xxx_defconfig
,如果你要修改內(nèi)核的一些配置,作為新手不要直接去修改xxx_defconfig。make menucofig
通常菜單進(jìn)行配置,最后把.config
文件覆蓋掉xxx_defconfig
,然后再上傳這個(gè)xxx_defconfig
。3、不要直接映射每一個(gè)物理地址
4、不要不學(xué)uboot
uboot
怎么啟動(dòng)kernel
,都傳了什么參數(shù),涉及到的地址有哪些,uboot
的驅(qū)動(dòng)怎么寫這些必須知道。5、不懂內(nèi)存,不足以談驅(qū)動(dòng)
以上就是新手入職Linux驅(qū)動(dòng)崗后,必聽的5個(gè)忠告的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注www.92cms.cn其它相關(guān)文章!