在目标板的启动过程中,我们看到uboot(bootloader)在控制台上打印一些信息,如图像名称,图像类型,加载地址,验证校验和等。它使用哪种打印机制?它是否使用类似printk
的东西,或者甚至在内核启动之前它有自己的打印信息定义?我在哪里可以找到它的打印实施代码?uboot如何在主板上打印信息
1
A
回答
1
在正常的U-boot启动过程中,将有限的信息打印到控制台。它使用与C编程中使用的相同类型的函数来打印信息。
的u-boot使用printf
和puts
打印控制台上的信息。你可以在u-boot源代码中找到相同的函数实现(u-boot boardfile和drivers)。
有很多命令可以从u-boot命令提示符中尝试获取更多信息。
为了让更多的信息,您可以:
- 使用
debug_cond (cond, fmt, args...):
如果你定义一些COND,一旦满足,U-Boot的将打印出此消息。 - 使用
debug(fmt, args...):
可以定义在文件中DEBUG的u-boot-include/configs/<boardfile>_common.h
(就像我的情况mx6_common.h),一旦做到这一点,重新编译代码,U-Boot的将打印出所有调试信息
注意:如果您对代码进行了太多调试,可能会导致u-boot挂起。
0
如果您想要关于uBoot的信息(例如打印到的位置或其值的变量),可以使用'printenv'命令并更改,您可以在启动时(中断内核启动时)输入uBoot他们用'setenv'命令。
相关问题
- 1. 如何在Mac上打印主板和显示卡信息
- 2. 打印信息
- 3. 主板信息
- 4. 如何打印在帆错误信息
- 5. 在同一点上打印信息
- 6. 不打印任何信息
- 7. 如何以编程方式在文档模板上打印信息?
- 8. 如何使dumpObjectInfo打印调试信息?
- 9. 打印版,试图打印信息
- 10. 如何在golang模板上打印JSON?
- 11. 硬件启动 - 在新鲜的主板上安装uboot
- 12. NAND flash&MDT partiton - uboot - Atmel SAMA5D3 Xplained主板
- 13. 打印阵列信息
- 14. 数据框打印信息
- 15. Spotipy:打印跟踪信息
- 16. TYPEID不打印信息
- 17. 打印页面信息vb.net
- 18. DocumentListener不打印信息
- 19. 信息截断时打印
- 20. 在板上打印坐标
- 21. 如何在django模板中打印关于用户(谁记录)的信息?
- 22. Hibernate何时打印统计信息?
- 23. 在我的html页面的面板上打印出错误信息
- 24. 在linux上stderr上打印错误信息
- 25. 在ParseException中打印异常的信息
- 26. 在Laravel中打印文件信息
- 27. 在打印输出中打印系统信息
- 28. 如何烧uboot板NAND闪存
- 29. TCL - 如何在执行exec命令期间打印的信息在屏幕上打印?
- 30. 如何在Giraph中打印调试信息
基本上,U-Boot通过UART将消息输出到串行控制台。它有内部API来这样做。当然,在写入UART之前,U-Boot需要首先初始化(配置)它。这与内核几乎相同。为了更好地理解内部,你可以看看我缩小(最小)的U-Boot版本,它只能写入UART:https://gitlab.com/joeskb7/dra7xx-hello/tree/master –
@samprotsenko感谢你的uboot代码。但我的UART是ttyHS,波特率是757000.我可以在内核中使用你的uboot代码来在内核中进行早期打印功能吗? – karthikpj
该代码仅供参考。不,您不能使用它,因为它严格依赖于架构(仅适用于一个平台,可能与您的平台不一样)。基本上,我只是想向您展示如何在U-Boot中实现打印。您可以为您的平台寻找串行控制台驱动程序(在U-Boot中),并调查它的工作原理。像'debug()'和'printf()'这样的函数在所有体系结构中都是常见的,但最终它们都依赖于串行控制台驱动程序,这是您的平台特有的。 –