gpt4 book ai didi

android - 如何在__turn_mmu_on阶段之后调试Linux内核启动过程?

转载 作者:太空宇宙 更新时间:2023-11-04 04:21:38 24 4
gpt4 key购买 nike

我正在尝试在自定义硬件上启动基于 Linux 内核 3.0.1 的 Android 4.0.1( Ice Cream Sandwich )。

我能够调试 Linux Kernel 3.0.1 启动过程,直到 __enable_mmu head.S中定义的函数,使用串口。

但是一旦__turn_mmu_on功能已执行我无法调试启动过程。

我已经浏览了 linux-arm-kernel 邮件列表文件并尝试了他们的 printascii()解决。但在 __turn_mmu_on 之后我仍然无法在串行控制台上看到任何启动日志。 。

在这里我能够获取 __turn_mmu_on 之前的日志所以我的串行控制台端口工作正常。

还有一件事 - 我没有 JTAG。

谁能提供如何在打开MMU后调试Linux内核启动过程的解决方案吗?

最佳答案

-

你好,我不知道你的问题,但我有一些想法。

在Linux源代码中,有以下几点,

/* * 启用MMU。这完全改变了可见的结构
* 内存空间。您将无法通过此跟踪执行情况。
* 如果您对此有疑问,检查 linux-arm-kernel
* 在将另一个帖子发送到列表之前,邮件列表存档。
*
* r0 = cp#15 控制寄存器
* r1 = 机器 ID
* r2 = atags 或 dtb 指针
* r9 = 处理器 ID
* r13 = 完成后跳转到的虚拟地址
*
* 其他寄存器取决于完成时调用的函数
*/ .对齐5
.pushsection .idmap.text, "ax"
ENTRY(__turn_mmu_on)
....
....
__turn_mmu_on_end:
ENDPROC(__turn_mmu_on)
.popsection

所以,调用 __turn_mmu_on 后无法跟踪流程似乎很正常。

但是,根据您使用 printascii() 的结果,您是否调试过为什么它无法使用?

你知道 printascii() 是否易于使用而无需任何配置吗?使用前有什么必要的设置吗?是否为其提供了可运行的环境?

由于缺少 JTAG,打印可能是唯一剩下的方法,因此调试 printascii() 可能是您必须的。

谢谢。

关于android - 如何在__turn_mmu_on阶段之后调试Linux内核启动过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12559402/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com