当前位置: 首页 > news >正文

RTEMS 控制台驱动

uart介绍

https://www.nowcoder.com/discuss/734524892543975424

UART 是一种串行,全双工,低速,异步通信方式(没有时钟线)
UART 需要 RX、TX 两根线
帧格式:起始位(逻辑0) + 数据位(5到9位,常见8位) + 校验位 + 停止位(逻辑1,1到2位)
传输数据以字节为单位,传输速度由波特率控制(常见9600、115200)

串口的波特率表示传输的速率,具体是指每秒钟传输的二进制位数

树莓派4b的uart

termios接口

驱动程序需要将uart设备安装进termios框架

    /** Install this device in the file system and Termios.  In order* to use the console (i.e. being able to do printf, scanf etc.* on stdin, stdout and stderr), one device must be registered as* "/dev/console" (CONSOLE_DEVICE_NAME).*/sc = rtems_termios_device_install( ctx->device_name, handler, NULL, ctx );

需要提供设备上下文,和一个handler列表。

const rtems_termios_device_handler arm_pl011_fns = {.first_open = arm_pl011_first_open,.write = arm_pl011_write_buffer,.set_attributes = arm_pl011_set_attributes,.ioctl = NULL,
#ifdef BSP_CONSOLE_USE_INTERRUPTS.last_close = arm_pl011_last_close,.poll_read = NULL,.mode = TERMIOS_IRQ_DRIVEN,
#else.last_close = NULL,.poll_read = arm_pl011_read_polled,.mode = TERMIOS_POLLED,
#endif
};

应用层软件可以通过oepn read write 来从uart设备发送接收信息。
通过tcsetattr来配置uart参数,底层调用的就是set_attributes函数。
这里的tc是Terminal Control意思。

http://www.dtcms.com/a/390065.html

相关文章:

  • flutter在列表页面中通过监听列表滑动偏移量控制页面中某个控件的透明度
  • linux上升级nginx版本
  • WINCC结构变量/公共弹窗
  • 信息化项目验收计划方案书
  • 1.数据库概述和三种主要控制语言
  • 找到nohup启动的程序并杀死
  • 电磁干扰EMI (Electromagnetic Interference)是什么?
  • python提取域名
  • PR工具timing report中setup time的计算过程
  • 低延迟垃圾收集器:挑战“不可能三角”
  • 【测试】发版测试准入准出标准
  • 第一部分:HTML
  • 贪心算法应用:带权任务间隔调度问题详解
  • 视频监控大数据建模分析
  • IP的重要性
  • 远程访问管理爱快路由器
  • 算法 --- 优先级队列(堆)
  • Kindle出现电池感叹号图标和黄灯闪烁怎么办?
  • 摄像头模块在无人机上的应用
  • 深度学习篇GRU---LSTM和RNN的折中方案
  • Doris聚合表和物化视图选型对比
  • 互补色颜色对应的RGB
  • Python定义UDS诊断服务(8):SecurityAccess(0x27)
  • 第1节 工具(剪映剪映小助手)准备及安装(Coze扣子空间剪映小助手教程)
  • 大模型提示词Prompt工程:1-万能公式-完整指南
  • 8.30美团技术岗算法第三题
  • CentOS 7 一键安装 vsftpd 并创建可登录 FTP 用户 test
  • k8s自定义调度器实现路径
  • 服务器数据恢复—RAIDZ硬盘“惹祸”导致服务器崩溃的数据恢复过程
  • 20250917_车辆定位系统aidata-01Apache Doris数据库备份+恢复+清理 流程操作文档