armv7m Linux内核-4.4.5挂起在calibrate_delay_converge()

时间:2016-03-21 05:46:08

标签: linux arm kernel

我通过硬件调试器调试kernel-4.4.5启动。它到达calibrate_delay_converge()函数并在以下循环中永久挂起。

ticks = jiffies; while循环。 while(ticks == jiffies)

;

ticks = jiffies;

我的硬件是stm32f429-disc1。我使用了“DTS”文件stm32f429-disco.dts但更改了一行定义内存。由于它附加到BANK2,我将地址更改为0xD0000000。其余的硬件配置保持不变。

更新

从“drivers / clocksource / timer-stm32.c”编辑 stm32_clock_event_set_periodic() 。硬编码500000而不是 data-> periodic_top 。并设法达到内核初始化的结束。

所以它看起来像

* data-> periodic_top = DIV_ROUND_CLOSEST(rate,prescaler * HZ); *

定时器初始化代码中的

给出了错误的值。但我无法检查它,因为值本身已经过优化。

这是一个内核错误吗?

1 个答案:

答案 0 :(得分:0)

根据我的经验,当我遇到这种崩溃时,通常是因为系统中没有中断。我建议你在IRQ处理程序中放置一个BP ..