我通过硬件调试器调试内核-4.4.5引导。它到达calibrate_delay_converge()函数,并永远挂在下面的循环中。
滴答= jiffies;同时循环。时间( ticks==jiffies )
;蜱= jiffies;
我的硬件是stm32f429-DISC 1。我使用了"DTS“文件stm32f429Disco.dts,但更改了定义内存的一行。当它附加到BANK2时,我将地址更改为0xD0000000。其余的硬件配置保持不变。
更新:
从“驱动程序/时钟源/计时器-stm32.c”中编辑stm32_clock_event_set_periodic()。硬编码500000而不是data->periodic_top.并设法达到内核初始化的终点。
所以看起来
*data->周期_top=DIV_ROUND_CLOSEST(速率,预分频器* HZ);*
在计时器初始化中,代码给出了错误的值。但是我不能检查它,因为值本身是优化出来的。
是内核错误吗?
发布于 2016-03-21 08:17:33
根据我的经验,当我有这样的崩溃时,通常是因为系统中没有中断。我建议你在IRQ处理程序中放个BP。
https://stackoverflow.com/questions/36123963
复制相似问题