如何解决在 U-Boot 中启用第二个 UART
我正在使用带有 CortexA5 处理器和嵌入式 Linux 的 SAMA5D3-xplained 板进行项目。我想在 U-Boot 运行期间和内核加载到 RAM 之前通过 UART 发送和接收一些数据。我不知道我应该做什么。我应该将第二个 UART 添加到 U-Boot 设备树源文件中吗?我应该更改电路板配置文件中的某些内容吗?你对我应该采取哪些步骤来实现我的目标有什么想法吗?在此先感谢您的帮助。
编辑 我想从 U-Boot C 代码中使用 UART,而不是从 U-Boot 命令中使用。在将内核加载到 RAM 之前,我需要与外围设备之一进行通信。
解决方法
我假设您使用的是来自 https://source.denx.de/u-boot/u-boot.git 的上游 U-Boot。
设备树 arch/arm/dts/at91-sama5d3_xplained.dts 已经包含了称为 serial0 - serial5 的六种不同 uart 的定义。 serial0 在 /chosen 节点中设置为标准串行连接。您应该能够使用“dm tree”命令查看所有六个设备。
可以通过设置stdin和stdout环境变量来切换当前使用的UART。
如果您不想切换这些变量,因为您仍然希望在默认 UART 上输出,您将必须访问设备驱动程序。不幸的是,drivers/serial/serial-uclass.c 还没有为此导出函数。但是 _serial_putc()、__serial_getc() 和 __serial_tstc() 应该让您了解这是如何完成的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。