控制台参数的 UBoot 波特率参数会影响/sbin/getty
未运行时访问串行端口的独立程序吗?
提前致谢,
伯特
可能如果没有改变该 UART 的串行波特率,U-boot 的设置可能仍然有效。但它很容易被 linux 驱动程序启动过程或用户模式客户端程序访问串行端口的请求所覆盖。
就个人而言,我会确保我的程序特别要求任何预期的波特率;这是最安全的,因为它避免了做出假设,并且与移植到另一种嵌入式 linux 风格甚至非 linux 嵌入式 O/S 最兼容。
如果您发现 U-boot 的设置仍然存在并且您决定依赖它(也许只需更改 U-Boot 参数就可以为引导加载程序和正常操作自定义它)我会在用户模式代码中添加注释它打开串行端口以提醒自己或通知未来的维护者/搬运工您指望 U-boot 已经设置了波特率。
这里没有足够的信息来回答你的问题。答案完全取决于您如何设置。
可以让 u-boot 确定控制台串行端口的波特率,并在引导时将该信息传递给内核。它可以通过某种方式完成,以便 u-boot 波特率的任何变化都会传播到内核和使用串行端口的应用程序。
你的系统是这样配置的吗?我们无从得知。
也可以为 3 个中的每一个 - u-boot、内核和程序 - 分别指定波特率。
在u-boot中,可以设置环境变量baudrate
来指定控制台波特率。当你启动内核时,你可以让 u-boot 传递bootargs
环境变量的内核内容。这成为内核命令行。在那里,您可以设置内核控制台的波特率。我见过的大多数系统都有这样的东西:bootargs=console=ttyS1,115200n8 ...
它独立于 u-boot 设置波特率。如果你有类似的东西bootargs=console=ttyS1,${baudrate}n8 ...
,那么内核将获得与 u-boot 使用的相同的波特率。
现在,仅当我们谈论 u-boot 和内核使用的 UART 作为控制台时,此信息才适用。如果您使用的是不同的 UART,那么所有这些都无关紧要。