【发布时间】:2011-02-07 21:28:22
【问题描述】:
当/sbin/getty没有运行时,控制台参数的UBoot波特率参数会影响访问串口的独立程序吗?
提前致谢,
伯特
【问题讨论】:
标签: linux embedded serial-port baud-rate
当/sbin/getty没有运行时,控制台参数的UBoot波特率参数会影响访问串口的独立程序吗?
提前致谢,
伯特
【问题讨论】:
标签: linux embedded serial-port baud-rate
如果没有改变该 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 与此不同,则所有这些都无关紧要。
【讨论】: