从 Linux 用户空间设置 16550A UART 硬件 FIFO 中断级别

2023-12-20

我目前正在使用 16550 兼容的 UART,并且我希望能够更改 FIFO 中断触发级别(我在高 UART 负载下丢失字节,并且我想降低阈值 - 这是一个动力不足的嵌入式系统)。当然,如果我愿意,我可以在 8250_port.c 驱动程序中更改它:

[PORT_NS16550A] = {
    .name       = "NS16550A",
    .fifo_size  = 16,
    .tx_loadsz  = 16,
    .fcr        = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_10,
    .flags      = UART_CAP_FIFO | UART_NATSEMI,
},

但从用户空间更改它会方便得多,而无需重新编译内核。

我希望以下文档 http://www.tldp.org/HOWTO/Serial-HOWTO-18.html已过期:

截至 2000 年末,Linux 用户无法设置这些 直接(setserial 不能这样做)。虽然许多 PC 只有 16550 具有 16 字节缓冲区,更好的 UART 具有更大的缓冲区。

如果有办法这样做(例如一些新的 ioctl),那么设定 (8) http://linux.die.net/man/8/setserial and stty (1) http://linux.die.net/man/1/stty还没有公开接口。


我认为解决这个问题的一般方法是使用setserial来使uart改变模式。例如,使用 pericom PI7C9X7958,您有多种操作模式,例如“550”和 950 模式。这些对应于 16550 或 16950 标准 uart 类型。每种模式都有与其相关的特定 fifo 大小以及一些其他功能。

所以,如果你的设备支持,你可以尝试

setserial -v /dev/ttyS1 uart 16950

然后验证

setserial -g /dev/ttyS1 /dev/ttyS1,UART:16950/954,端口:0xc800,IRQ:16

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Linux 用户空间设置 16550A UART 硬件 FIFO 中断级别 的相关文章

  • 我如何理解这个 C 类型声明?

    double bar int double double double double 在查看讲座幻灯片时 我发现了留给学生的练习 用简单的英语来说 什么是类型bar在这个 C 声明中 Please帮助我解决这个问题 我什至不知道从哪里开始
  • 何时使用 =default 使析构函数默认?

    尽管对构造函数使用 default 对我来说很清楚 即强制编译器在其他构造函数存在时创建默认构造函数 但我仍然无法理解这两种类型的析构函数之间的区别 那些使用 default 的 那些没有显式定义并由编译器自动生成的 我唯一想到的是 gro
  • 更改 Qt OpenGL 窗口示例以使用 OpenGL 3.3

    我正在尝试更改 Qt OpenGL 示例以使用更现代的 opengl 版本 330 似乎合适 所以我做了 在 main cpp 上设置版本和配置文件 设置着色器版本 更改着色器以使用统一 它现在构建没有任何错误 但我只看到一个空白窗口 我错
  • SONAR - 使用 Cobertura 测量代码覆盖率

    我正在使用声纳来测量代码质量 我不知道的一件事是使用 Cobertura 测量代码覆盖率的步骤 我按照以下步骤操作http cobertura sourceforge net anttaskreference html http cober
  • 读取 C# 中的默认应用程序设置

    我的自定义网格控件有许多应用程序设置 在用户范围内 其中大部分是颜色设置 我有一个表单 用户可以在其中自定义这些颜色 并且我想添加一个用于恢复默认颜色设置的按钮 如何读取默认设置 例如 我有一个名为的用户设置CellBackgroundCo
  • 根据 N 个值中最小的一个返回不同的结果

    不确定如何使标题更具描述性 所以我只是从一个例子开始 我使用下面的代码位 它从枚举中选择一个方向 具体取决于四个轴中哪一个与给定方向相比形成最小角度 static Direction VectorToDirection Vector2 di
  • 时间:2019-03-17 标签:c#ThreadSafeDeepCopy

    我一直在阅读很多其他问题以及大量谷歌搜索 但我一直无法找到明确的解决方案 根据我读过的一些最佳实践 类的静态方法应该创建线程安全的 并且实例成员应该将线程安全留给消费者 我想为该类实现深度复制方法 该类本身还有其他引用类型成员 有没有什么方
  • vs2008 c#:Facebook.rest.api如何使用它来获取好友列表?

    如何在此基础上取得进一步的进步 获取好友列表的下一步是什么 string APIKey ConfigurationManager AppSettings API Key string APISecret ConfigurationManag
  • 单例模式和 std::unique_ptr

    std unique ptr唯一地控制它指向的对象 因此不使用引用计数 单例确保利用引用计数只能创建一个对象 那么会std unique ptr与单例执行相同 单例确保只有一个实例属于一种类型 A unique ptr确保只有一个智能指针到
  • 将二进制数据从 C# 上传到 PHP

    我想将文件从 Windows C 应用程序上传到运行 PHP 的 Web 服务器 我知道 WebClient UploadFile 方法 但我希望能够分块上传文件 以便我可以监控进度并能够暂停 恢复 因此 我正在读取文件的一部分并使用 We
  • 给出 5 个参数,但在终端中只得到 3 个参数

    我想将一个文件传递给一个c 程序 如果我在 IDE 中执行此操作 test string string lt test txt return argc 5 但在终端上我刚刚得到argc 3 看来 这是因为 什么是 lt 意思是 我正在使用
  • 每个租户的唯一用户名和电子邮件

    我正在使用以下代码编写多租户应用程序ASP NET Core 2 1 我想覆盖默认的与用户创建相关的验证机制 目前我无法创建多个具有相同的用户UserName My ApplicationUser模型有一个名为TenantID 我想要实现的
  • 如何分析组合的 python 和 c 代码

    我有一个由多个 python 脚本组成的应用程序 其中一些脚本正在调用 C 代码 该应用程序现在的运行速度比以前慢得多 因此我想对其进行分析以查看问题所在 是否有工具 软件包或只是一种分析此类应用程序的方法 有一个工具可以将 python
  • ASP.NET MailMessage.BodyEncoding 和 MailMessage.SubjectEncoding 默认值

    很简单的问题 但我在 MSDN 上找不到答案 查找 ASP NET 将用于的默认值 MailMessage BodyEncoding and MailMessage SubjectEncoding 如果你不在代码中设置它们 Thanks F
  • 使用restsharp序列化对象并将其传递给WebApi而不是序列化列表

    我有一个看起来像的视图模型 public class StoreItemViewModel public Guid ItemId get set public List
  • 您是否将信息添加到每个 .hpp/.cpp 文件的顶部? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 创建新的 C 头文件 源文件时 您会在顶部添加哪些信息 例如 您是否添加日期 您的姓名 文件描述等 您是否使用结构化格式来存储此信息 e g F
  • QFileDialog::getSaveFileName 和默认的 selectedFilter

    我有 getSaveFileName 和一些过滤器 我希望当用户打开 保存 对话框时选择其中之一 Qt 文档说明如下 可以通过将 selectedFilter 设置为所需的值来选择默认过滤器 我尝试以下变体 QString selFilte
  • 使用 QtWebEngine 将 C++ 对象暴露给 Qt 中的 Javascript

    使用 QtWebkit 可以通过以下方式将 C 对象公开给 JavascriptQWebFrame addToJavaScriptWindowObject如中所述https stackoverflow com a 20685002 5959
  • ASP.NET Core MVC 视图组件搜索路径

    在此处的文档中 https learn microsoft com en us aspnet core mvc views view components view aspnetcore 2 2 https learn microsoft
  • Java 和/C++ 在多线程方面的差异

    我读过一些提示 多线程实现很大程度上取决于您正在使用的目标操作系统 操作系统最终提供了多线程能力 比如Linux有POSIX标准实现 而windows32有另一种方式 但我想知道编程语言水平的主要不同 C似乎为同步提供了更多选择 例如互斥锁

随机推荐

  • 增加504超时错误

    有什么方法可以使错误 504 网关超时更长 如果可以的话 如何以及更改它的文件位于何处 我在centos 6上使用nginx 根据您拥有的网关类型 您应该使用类似以下内容的内容 proxy read timeout 600s 检查文档 ht
  • 在 Yii2 中,如何从视图文件中的渲染中排除布局?

    我有一个管理员登录页面 我想在没有布局的情况下呈现它 如何在 Yii2 中渲染视图而不渲染主布局 这可以使用以下方法完成renderPartial method 您可以从官方文档中获取更多信息 这是a link http www yiifr
  • 如何使用 symfony2 包含 stripe 客户端 api。如何在 symfony2 中包含没有类的文件

    我试图将此文件包含在我的 symfony2 项目中 该项目是一个包含一堆 require 语句的文件 不幸的是 该文件不包含类 我不想为所有包含我需要的类的包含文件手动编写命名空间 所以我想知道如何以包含我需要的其他文件的方式包含该文件 我
  • CSS 关键帧仅适用于 Chrome

    我正在尝试使用关键帧制作一个简单的动画 但它仅适用于 Chrome 这是代码 为了更短的帖子 我只包含一次关键帧代码 keyframes logokf 0 background image url gfx logo1 png 20 back
  • 使用 mysql 别名从 2 个表中选择列

    我有 2 个表 table a 和 table b 两者都包含一个名为 open 的列 table a open 36 99 36 85 36 40 36 33 36 33 table b open 4 27 4 46 4 38 4 22
  • 无法使用 Flask 服务器在 IIS 上运行 dash 应用程序

    我的 IIS Windows Server 2016 上有两个网站 都使用 Dash 和 Flask 第一个是最小的working由 app py 和 web config 组成的示例 由于某种原因 我无法让第二个站点正常工作 下面附有两个
  • 如何处理 d3.layout.stack() 中缺少数据点的图层

    我正在使用 d3 stack 创建堆积面积图 但如果每层中的项目数量不相等 则会出现错误 我从这样的数据数组开始 key Group1 value date key Group1 value date key Group1 value da
  • 响应所有方法调用的 Python 类的实例

    有没有办法创建一个实例响应任意方法调用的类 我知道有一个特殊的方法 getattr self attr 当有人尝试访问实例的属性时会调用它 我正在寻找类似的东西 使我也能够拦截方法调用 期望的行为看起来像这样 class A object
  • 有没有一种算法可以检测两幅图像之间的差异?

    我正在寻找一种算法或库 可以发现两个图像之间的差异 例如在 查找错误 游戏中 并输出包含这些更改的边界框的坐标 我对 Python C 或几乎任何其他语言的算法持开放态度 如果您只是想显示差异 那么您可以使用下面的代码 FastBitmap
  • 如何从 R 中的 xlsx 文件中检测“删除线”样式

    我必须检查包含 的数据删除线 在 R 中导入 excel 文件时的格式 我们有什么方法可以检测到它们吗 欢迎使用 R 和 Python 方法 R 溶液 the tidyxl 包可以帮助你 例如 temp xlsx 其中数据位于第一张纸的 A
  • 如何在 Eclipse 中使用 Android 操作系统 VirtualBox 作为设备

    我在这里找到了有关如何运行 Android 操作系统的教程 http www javacodegeeks com 2010 06 install android os on pc with html http www javacodegee
  • jQuery 文档.ready

    我对 jQuery 中的 document ready 有点困惑 你什么时候在里面定义javascript函数 document ready 什么时候不呢 将所有 javascript 代码放入 document ready 中是否足够安全
  • gnuplot 文件有标准的文件扩展名吗?

    我见过 gnu plt and gplot作为 gnuplot 脚本的文件扩展名 我知道 Linux 不关心文件扩展名 但是什么扩展名最普遍地向人类声明 我是一个 gnuplot 脚本 正如罗曼 珀森博士和尼尔布都指出的那样这篇维基教科书文
  • 使用 XSD 架构进行 Xml 验证

    以下代码帮助我使用 XSD 架构验证 XML 文件 XmlReaderSettings settings new XmlReaderSettings settings Schemas Add null xsdFilePath setting
  • WCF 路由服务 - 动态错误处理

    我正在了解 WCF 路由服务可以做什么 仍处于 摆弄它看看它能做什么 阶段 我对路由服务的理解是 当消息通过时 该服务将尝试将其传递到备份列表中首先出现的端点 如果失败 它将继续尝试下一个 然后再尝试下一个 直到有东西起作用或者没有什么可以
  • opencv中的手动灰度太慢

    注意 我必须手动执行此操作 因此不建议我使用库函数 cvtColor 我是 opencv 的新手 我正在尝试使用以下公式对彩色图像进行灰度化 r g b r g b r g b 3 这是我转换为灰度的方法 C Mat dst src clo
  • 为什么 sizeof(int) 不大于-1? [复制]

    这个问题在这里已经有答案了 这是我的 C 代码 为什么输出为 False 为什么 4 gt 1 code include
  • NoMethodError: # 的未定义方法“[]”

    我是 Ruby on Rails 的新手 我正在使用omni auth 进行 facebook 和 google 身份验证并陷入困境 当我运行 rake db migrate 时 显示以下错误 rake aborted NoMethodEr
  • “Using”关键字调用基类构造函数

    我有以下基类 class Grammateas public Grammateas std string name name name virtual Grammateas private std string name 以及以下派生类 c
  • 从 Linux 用户空间设置 16550A UART 硬件 FIFO 中断级别

    我目前正在使用 16550 兼容的 UART 并且我希望能够更改 FIFO 中断触发级别 我在高 UART 负载下丢失字节 并且我想降低阈值 这是一个动力不足的嵌入式系统 当然 如果我愿意 我可以在 8250 port c 驱动程序中更改它