Debugging 在启动过程的早期调试内核

Debugging 在启动过程的早期调试内核,debugging,linux-kernel,arm,porting,Debugging,Linux Kernel,Arm,Porting,我正在将Linux内核移植到一个新平台上,调试时遇到了一些问题 内核似乎在解压缩Linux后挂起。。。完成,启动内核。打印到UART。我已经启用了early printk,但是它仍然没有打印任何新的内容,所以我假设它在启动过程的早期就挂起了 我要移植到的平台确实有一个LED,我可以用它来确定它实际悬挂的位置。问题是它很乱,我不知道MMU什么时候打开,所以我无法可靠地访问端口 是否有其他方法可以尝试确定内核挂起的位置?在我看来,这里唯一真正的选择似乎是JTAG调试探测。市场上有一些相对便宜的设备

我正在将Linux内核移植到一个新平台上,调试时遇到了一些问题

内核似乎在
解压缩Linux后挂起。。。完成,启动内核。
打印到UART。我已经启用了early printk,但是它仍然没有打印任何新的内容,所以我假设它在启动过程的早期就挂起了

我要移植到的平台确实有一个LED,我可以用它来确定它实际悬挂的位置。问题是它很乱,我不知道MMU什么时候打开,所以我无法可靠地访问端口


是否有其他方法可以尝试确定内核挂起的位置?

在我看来,这里唯一真正的选择似乎是JTAG调试探测。市场上有一些相对便宜的设备

不确定您使用的是哪一个SoC系列,但如果是一个TI 系统跟踪器可能值得一试

这可能也是一个很好的地方——这里的重点是低成本的解决方案


虽然这两种探头都以TI为重点,但它们通常支持不同供应商的设备

MMU在内核引导()中打开,所以只需在那里添加一些LED指示灯。有关ARM Linux上引导序列的概述,请参阅。

内核确实有一个早期的PRINTK配置。启用此选项将在启动标准控制台之前打印调试消息


请注意,此选项取决于调试选项。

我在原始问题中提到,我已经启用了早期printk选项。