【问题标题】:default baud rate - linux/u-boot默认波特率 - linux/u-boot
【发布时间】:2011-12-30 03:32:34
【问题描述】:

我正在使用 u-boot 开发嵌入式 linux 系统。 U-boot 使用 console=bootarg 设置 ttyS0 串口的波特率,但我也想设置 ttyS[1-3] 的默认波特率(设置为 9600 以外的值)。

在这个系统中,U-boot 将设备树 (dts/dtb) 传递给内核,但在那里设置波特率似乎不起作用。

请注意,此系统类似于峡谷地板 (ppc460ex)。

u-boot、内核或设备树中是否有更改串口默认波特率的方法?

【问题讨论】:

  • 这是一道编程题吗?
  • 我想是这样...更改默认波特率是内核模块或设备树源的更改。我只是不知道需要在哪里完成。
  • 使用你的ttys的“应用程序”将设置相应串口的波特率。你想用 ttyS[1-3] 做什么?使用它们的程序是什么?
  • 系统的控制台在 ttyS0 上,但是我还需要 linux 启动脚本来 cat 消息到 ttyS1。所以没有应用程序可以设置波特率。
  • 它是如何完成的,启动脚本将消息发送到 ttyS1 ?然后,这些脚本将负责在发送任何消息之前设置 ttyS1 的波特率。看看 stty 命令。

标签: linux-kernel serial-port embedded-linux powerpc u-boot


【解决方案1】:

在原文中已经提到设备设置似乎被内核忽略了。

在这个系统中,U-boot 将设备树 (dts/dtb) 传递给内核,但在那里设置波特率似乎不起作用。

如果您在设备树中硬编码新的波特率,它可能会在引导过程中被覆盖。设备树在随后的引导过程中实际传递给内核之前由 u-boot 更新。查看 u-boot 源代码中的 ft_board_setup()。我自己一直在使用 u-boot 的 PowerPC 44X 分支,并且 fdt 代码更新了串行设备的“时钟频率”而不是“当前速度”属性。您正在处理的分支可能有不同的代码库。

【讨论】:

    【解决方案2】:

    有时以下文件中的值会覆盖 DTS 文件中给出的信息。 检查u-boot源代码中的以下文件

    boot/include/configs/[board name].h -- used for specifying environment and CPU peripheral   default value
    boot/common/[board name]_cmd_common.h               
    

    【讨论】:

      猜你喜欢
      • 2021-03-11
      • 1970-01-01
      • 1970-01-01
      • 2017-08-10
      • 1970-01-01
      • 2018-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多