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 中国語 Web サイトの他の関連記事を参照してください。