2016-03-21 11 views
0

ハードウェアデバッガを使用してkernel-4.4.5をデバッグします。そして、それはcalibrate_delay_converge()関数に到達し、次のループで永遠にそこにハングします。armv7m kernel kernel-4.4.5がcalibrate_delay_converge()でハングする

ticks = jiffies; whileループ。 一方(== jiffy単位をマダニ)

; 

ティック=のjiffy単位。

私のハードウェアはstm32f429-disc1です。私は "DTS"ファイルstm32f429-disco.dtsを使用しましたが、メモリを定義する1行を変更しました。 BANK2に接続されているので、アドレスを0xD0000000に変更しました。残りのハードウェア構成は変更されません。

UPDATE:

編集stm32_clock_event_set_periodic() "ドライバ/クロックソース/タイマーstm32.c" から。 data-> periodic_topの代わりにハードコードされた500000。そして、カーネル初期化の終わりに達するように管理されました。

だから、

*データ - > periodic_top = DIV_ROUND_CLOSEST(率、プリスケーラ* HZ)のように見えます。 *

タイマーの初期化コードが間違った値を示します。しかし、値自体が最適化されているので、チェックすることはできません。

カーネルのバグですか?

答えて

0

私の経験上、この種のクラッシュが発生したときは、通常、システムに割り込みがないためです。 IRQハンドラにBPを配置することをお勧めします。

関連する問題