除了printk
,核心裡面有很多pr_info
、pr_err
等列印函數,要學會控制列印等級,以及針對不同的場景使用不同的列印函數。
核心有預設設定檔xxx_defconfig
,如果你要修改核心的一些配置,作為新手不要直接去修改xxx_defconfig。
穩健的做法是執行make menucofig
通常選單進行配置,最後把.config
檔覆掉xxx_defconfig
,然後再上傳這個xxx_defconfig
。
#Linux下操作暫存器一定要先映射,但通常只映射基位址,透過基址加偏移的方式操作。
不要直接去映射每一個暫存器的物理位址,因為對於某一個驅動,雖然有很多暫存器,但基址都是一樣的。
即使你是Linux驅動崗,uboot
怎麼啟動kernel
,都傳了什麼參數,牽涉到的位址有哪些,uboot
的驅動程式怎麼寫這些必須知道。
一定要多看看記憶體相關的知識。 Linux下操作的都是虛擬位址,寫入暫存器的是實體位址,怎麼知道虛擬位址對應的實體位址?分配dma一致性記憶體和分配普通記憶體有什麼區別?
暫存器手冊寫的位址是實體位址,給我記住了。
dma記憶體問題,快取一致性問題等,這些你都逃不掉。
以上是新手入職Linux驅動崗後,必聽的5個忠告的詳細內容。更多資訊請關注PHP中文網其他相關文章!