2012-10-01 25 views
2

我正在將Linux內核移植到新平臺,並且在調試時遇到了一些麻煩。在啓動過程中很早就調試內核

在將Uncompressing Linux... done, booting the kernel.打印到UART之後,內核似乎掛起。我已經啓用了早期的printk,但它仍然沒有打印任何新東西,所以我假設它在引導過程中很早就掛起了。

我正在移植的平臺確實有一個LED,我可以使用它來嘗試確定它實際懸掛的位置。問題在於它很混亂,我不知道MMU什麼時候打開,所以我無法可靠地訪問端口。

還有其他方法可以嘗試並確定內核掛起的位置嗎?

回答

2

MMU在內核引導程序(head.S)中打開,因此只需在該處添加一些LED即可。有關ARM Linux上的引導順序的概述,請參閱this slightly outdated file

1

這聽起來好像這裏唯一真正的選擇是JTAG調試探頭。市場上有一些相對便宜的設備。

不知道你正在使用哪一個SoC系列,但如果它是一個TI,Code Composer StudioXDS560系統跟蹤器可能值得一試。

Pandaboard community也可能是一個很好的選擇 - 這裏強調的是低成本的解決方案。

儘管這些都是TI關注的,但這些探針通常支持不同供應商的設備。

0

內核確實有EARLY_PRINTK配置。啓用此選項將在標準控制檯啓動之前打印調試消息。

注意此選項取決於DEBUG_LL選項。

+0

我在原始問題中提到我已經啓用了早期的printk選項。 – tangrs