2017-08-21 14 views
1

私はカーネル移植の初心者です。私はカスタム評価ボード用のカスタムSoC(cpu = arm1176jzfsベース)にLinuxカーネル(バージョン4.9.22)を移植しようとしています。私はSoCにARM Primeセルpl011 UARTを持っています。物理的にはアドレス0x5800_1000にマッピングされています。私はデバッグUARTとしてそれを使用しようとしている間、カーネルは仮想アドレスを求めています。このオプションをどのように設定すればいいですか?linuxカーネルのpl011 uartの仮想アドレスを指定する方法

すなわち:

-> Kernel low-level debugging functions 
    -> kernel low-level debugging port (Kernel low-level debugging on via ARM Ltd PL01x Primecell UART) 
(0x58001000) Physical base address of debug UART 
(??) Virtual base address of debug UART 

おかげで、 のVivek T.

+0

仮想アドレスは、ルールのセット(通常は本当にシンプルな、ビットシフトやビットマスクのようなもの)を使った物理的なマッピングです。最初に*なぜ*ドライバ構成がこれを要求するのかを理解する必要があります。 – 0andriy

答えて

0

デバッガを持っている場合は、あなたのカーネルがブートアップされていない理由、そして、あなたは確かにデバッグすることができます。

あなたは、この手順を見ることができます:

-Inカーネルのコンフィギュレーションを、有効CONFIG_DEBUG_INFO(カーネルハッキング - >コンパイル時のチェックとコンパイラオプション)カーネル

-fromデバッガ-compile

ソフトウェア、elfからシンボルを読み込みます。コマンドは、1つのデバッガから別の

に変わる-findシンボル「log_buf」、そしてだから私は、カーネルログがバッファに保存されていると思います「ダンプとして表示メモリ」

をするオプションを選択しました。多分それはあなたを助けることができます:)

関連する問題