嵌入式Linux:应用层与底层硬件进行交互或控制的两种主要方式

原创 美男子玩编程 2025-03-14 08:03

点击上方蓝色字体,关注我们


在Linux系统中,应用层需要与底层硬件进行交互或控制,通常有两种主要方式:

  • /dev目录下的设备文件(设备节点)
  • /sys目录下设备的属性文件

这两种方式都可以为应用程序提供访问硬件的接口,但它们在设计目的、访问方式以及使用场景上有所不同。


1


/dev 目录下的设备文件(设备节点)

在Linux系统中,硬件设备通常通过设备文件的形式在/dev目录下表示。


设备文件种类
说明
常见示例
使用场景
字符设备
通过字节流方式访问的设备文件,支持顺序读取和写入操作。
/dev/ttyS0
(串口)
串口通信、传感器数据读取、串行设备数据传输
块设备
支持以数据块为单位进行随机访问的设备文件,通常用于存储设备。
/dev/sda
(硬盘)
磁盘读写、文件系统操作、挂载分区
网络设备
尽管/dev中通常不直接包含网络设备文件,但可以通过特殊设备实现,如虚拟网络接口。
/dev/tun0
(隧道接口)
网络流量捕获、网络隧道、VPN通信
伪设备
非真实硬件设备,提供系统功能的接口。
/dev/null
/dev/zero
丢弃数据、生成空数据、模拟数据传输
输入设备
用于提供系统输入功能的设备,如键盘、鼠标。
/dev/input/mice
获取鼠标输入、捕获键盘事件
音频设备
提供音频输入输出接口,支持音频数据的读取和写入。
/dev/audio
/dev/snd
音频播放、录音、音频处理
图像设备
摄像头或图像采集设备,支持图像数据流的传输。
/dev/video0
视频流捕获、摄像头数据获取
打印机设备
专门用于打印设备的接口,通常是字符设备。
/dev/lp0
打印数据传输、打印机控制
磁带设备
磁带存储设备,通常用于备份,支持顺序存储。
/dev/st0
数据备份、磁带读写
GPU设备
提供图形处理器的接口,通常用于GPU计算或图形加速。
/dev/dri/card0
GPU加速、图形处理、计算密集型任务
特殊系统设备
提供系统特定功能的接口,如内存访问和随机数生成。
/dev/mem
/dev/random
直接访问系统内存、生成随机数据流


这些设备文件本质上是特殊类型的文件,用于映射实际的硬件设备,以便应用层能够通过系统调用与硬件进行交互。


特点:

  • 访问方式应用程序可以通过文件操作函数(如open、read、write等)直接对设备文件进行操作。这种操作通过内核中的驱动程序将操作指令转发到实际的硬件。
  • 设备类型设备文件分为两类:字符设备(如串口设备/dev/ttyS*)和块设备(如磁盘设备/dev/sda)。字符设备通常是字节流数据,块设备通常支持随机访问。
  • 驱动作用设备文件通常依赖设备驱动程序来完成硬件控制和数据传输。驱动程序在应用层的操作与硬件之间进行中介,处理低级别的硬件操作细节。
  • 访问权限设备文件有严格的权限控制,通常只有超级用户或特定用户组有权限直接操作。


使用场景:

  • 文件读写例如访问串口或传感器数据,程序通过读取/dev下对应的设备文件获取数据。
  • 块设备操作如挂载磁盘分区或访问存储设备时,操作文件系统涉及的底层硬件设备。
  • 需要底层驱动支持的设备多数需要通过驱动程序管理的硬件(如显卡、音频设备等)都依赖设备文件。


示例:


// 通过读取字符设备文件来获取设备数据int fd = open("/dev/ttyS0", O_RDONLY);if (fd != -1) {    char buffer[128];    read(fd, buffer, sizeof(buffer));    close(fd);}

2


/sys 目录下的设备属性文件

/sys目录提供了一个文件系统接口(通常称为sysfs),允许应用程序查看和控制内核的设备属性。


设备类型
说明
常见路径
使用场景
CPU
显示和配置CPU属性,包括频率、功耗等。
/sys/devices/system/cpu
CPU频率调整、功耗管理
内存
提供内存模块和内存管理相关信息。
/sys/devices/system/memory
查询系统内存容量、管理内存模块
PCI设备
PCI总线上的设备信息,如显卡、网卡等。
/sys/bus/pci/devices
获取PCI设备状态、管理和调试PCI设备
USB设备
USB总线上的设备属性,如连接的USB设备信息。
/sys/bus/usb/devices
检查USB设备连接状态、设置USB配置
电池
提供电池的属性和状态,包括电量、状态等(适用于移动设备)。
/sys/class/power_supply
电池电量监控、电源管理
网络接口
提供网络接口的配置信息和状态,包括带宽、状态等。
/sys/class/net
获取网络接口信息、网络带宽配置
SCSI设备
提供SCSI总线设备的信息,常用于存储设备。
/sys/class/scsi_device
存储设备管理、SCSI硬盘监控
块设备
用于提供块设备的属性信息,如硬盘、USB存储等设备。
/sys/class/block
获取硬盘状态、分区信息、块设备容量
输入设备
提供输入设备的属性信息,如键盘、鼠标等设备。
/sys/class/input
检查输入设备状态、配置输入设备属性
图形设备
提供GPU和其他图形处理设备的信息。
/sys/class/drm
查询GPU状态、显卡属性管理
音频设备
提供音频设备的属性和配置,如声卡等。
/sys/class/sound
音频设备配置、音频流管理
温度传感器
提供系统温度传感器的属性信息,适合监控系统温度。
/sys/class/thermal
获取系统温度、温度监控
功率管理设备
提供系统功率管理设备的属性,用于功耗和电源管理。
/sys/class/power_supply
电源管理、功耗优化
LED设备
提供LED指示灯的属性,允许设置LED亮度和状态。
/sys/class/leds
控制系统LED状态、调节LED亮度
固件
提供固件信息和更新接口,适合固件管理。
/sys/class/firmware
查看和更新设备固件
驱动信息
提供已加载驱动的相关信息,包括每个驱动所支持的设备。
/sys/bus/*/drivers
驱动管理、调试驱动程序


sysfs是Linux内核的一种虚拟文件系统,用于展示内核对象(如设备和驱动程序)的层次结构信息。


特点:

  • 设备属性和配置/sys目录中提供的设备属性文件可用于查看和修改设备的配置参数。例如,可以查看或调整设备的功耗模式、速度、状态等。
  • 实时更新由于/sys中的文件是虚拟文件,数据会在访问时实时更新,提供当前设备的状态信息。
  • 只读和读写属性/sys中的文件分为只读属性(如设备信息)和可读写属性(如功耗模式)。用户可以通过写入方式修改设备的部分配置。
  • 标准化接口相比直接通过设备文件访问硬件,sysfs为不同类型设备提供了更为标准的访问接口,尤其适合用于系统管理和设备调试。


使用场景:

  • 系统配置和监控适合应用程序获取设备的当前状态、序列号、版本信息、功耗管理等属性数据。
  • 设备驱动开发和调试驱动开发人员常用sysfs在开发过程中验证设备的状态、检查错误信息或调试驱动程序。
  • 电源管理和设备配置应用层可以通过更改设备的sysfs文件来控制设备状态,例如将设备置为低功耗模式或调整性能参数。


示例:


查看CPU频率cat :


/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

设置某个设备的功耗模式:


echo "low_power" > /sys/devices/pci0000:00/0000:00:1f.3/power/control

在实际开发中,两者可以配合使用。


/dev设备文件适合于直接的数据传输和低延迟的控制操作,而/sys属性文件适合用于管理、监控以及修改设备的高层配置。


特性
/dev 设备文件
/sys 属性文件
访问方式
直接进行文件读写
读取/写入属性文件
依赖驱动
是,依赖驱动支持设备文件的操作
是,sysfs属性由驱动创建和管理
使用场景
主要用于数据传输和底层操作
主要用于配置、监控和状态读取
适合场景
文件操作或直接设备控制
设备信息查询、属性配置
权限控制
严格的权限控制
多数属性文件开放查询,部分可写

点击阅读原文,更精彩~

美男子玩编程 多领域、有深度的开发者交流平台
评论 (0)
  • 北京时间3月11日,国内领先的二手消费电子产品交易和服务平台万物新生(爱回收)集团(纽交所股票代码:RERE)发布2024财年第四季度和全年业绩报告。财报显示,2024年第四季度万物新生集团总收入48.5亿元,超出业绩指引,同比增长25.2%。单季non-GAAP经营利润1.3亿元(non-GAAP口径,即经调整口径,均不含员工股权激励费用、无形资产摊销及因收购产生的递延成本,下同),并汇报创历史新高的GAAP净利润7742万元,同比增长近27倍。总览全年,万物新生总收入同比增长25.9%达到1
    华尔街科技眼 2025-03-13 12:23 105浏览
  • 在追求更快、更稳的无线通信路上,传统射频架构深陷带宽-功耗-成本的“不可能三角”:带宽每翻倍,系统复杂度与功耗增幅远超线性增长。传统方案通过“分立式功放+多级变频链路+JESD204B 接口”的组合试图平衡性能与成本,却难以满足实时性严苛的超大规模 MIMO 通信等场景需求。在此背景下,AXW49 射频开发板以“直采+异构”重构射频范式:基于 AMD Zynq UltraScale+™ RFSoC Gen3XCZU49DR 芯片的 16 通道 14 位 2.5GSPS ADC 与 16
    ALINX 2025-03-13 09:27 76浏览
  • 各大Logo更新汇报 | NEW百佳泰为ISO/IEC17025实验室,特为您整理2025年3月各大Logo的最新规格信息。USB™▶ USB Type-C/PD 互操作性MacBook Pro 16英寸(Apple M4 Max 芯片,36GB 内存–1TB SSD–140W USB-C电源适配器)或 MacBook Pro 16英寸(M4 Pro芯片,24GB内存–512 TB SSD–140W USB-C电源适配器),这些型号支持USB4 80Gbps传输速度和 140W EPR功率。需尽
    百佳泰测试实验室 2025-03-13 18:20 112浏览
  • DeepSeek自成立之初就散发着大胆创新的气息。明明核心开发团队只有一百多人,却能以惊人的效率实现许多大厂望尘莫及的技术成果,原因不仅在于资金或硬件,而是在于扁平架构携手塑造的蜂窝创新生态。创办人梁文锋多次强调,与其与大厂竞争一时的人才风潮,不如全力培养自家的优质员工,形成不可替代的内部生态。正因这样,他对DeepSeek内部人才体系有着一套别具一格的见解。他十分重视中式教育价值,因而DeepSeek团队几乎清一色都是中国式学霸。许多人来自北大清华,或者在各种数据比赛中多次获奖,可谓百里挑一。
    优思学院 2025-03-13 12:15 115浏览
  • 文/杜杰编辑/cc孙聪颖‍主打影像功能的小米15 Ultra手机,成为2025开年的第一款旗舰机型。从发布节奏上来看,小米历代Ultra机型,几乎都选择在开年发布,远远早于其他厂商秋季主力机型的发布时间。这毫无疑问会掀起“Ultra旗舰大战”,今年影像手机将再次被卷上新高度。无意臆断小米是否有意“领跑”一场“军备竞赛”,但各种复杂的情绪难以掩盖。岁岁年年机不同,但将2-3年内记忆中那些关于旗舰机的发布会拼凑起来,会发现,包括小米在内,旗舰机的革新点,除了摄影参数的不同,似乎没什么明显变化。贵为旗
    华尔街科技眼 2025-03-13 12:30 145浏览
  • 现代旅游风气盛行,无论国内或国外旅游,导航装置无疑就是最佳的行动导游;在工作使用上也有部分职业(如:外送服务业)需要依靠导航系统的精准,才能将餐点准确无误的送至客户手上。因此手机导航已开始成为现代生活上不可或缺的手机应用之一。「它」是造成产品潜在风险的原因之一外送服务业利用手机导航,通常是使用手机支架固定在机车上,但行进间的机车其环境并不一定适用于安装手机,因行进间所产生的振动可能会影响部分的功能,进而导致受损。您是否曾在新闻报导中看过:有使用者回报在机车上使用手机架导航会造成相机无法开启?苹果
    百佳泰测试实验室 2025-03-13 18:17 113浏览
  • 前言在快速迭代的科技浪潮中,汽车电子技术的飞速发展不仅重塑了行业的面貌,也对测试工具提出了更高的挑战与要求。作为汽车电子测试领域的先锋,TPT软件始终致力于为用户提供高效、精准、可靠的测试解决方案。新思科技出品的TPT软件迎来了又一次重大更新,最新版本TPT 2024.12将进一步满足汽车行业日益增长的测试需求,推动汽车电子技术的持续革新。基于当前汽车客户的实际需求与痛点,结合最新的技术趋势,对TPT软件进行了全面的优化与升级。从模型故障注入测试到服务器函数替代C代码函数,从更准确的需求链接到P
    北汇信息 2025-03-13 14:43 108浏览
  • 一、行业背景与需求痛点智能电子指纹锁作为智能家居的核心入口,近年来市场规模持续增长,用户对产品的功能性、安全性和设计紧凑性提出更高要求:极致空间利用率:锁体内部PCB空间有限,需高度集成化设计。语音交互需求:操作引导(如指纹识别状态、低电量提醒)、安全告警(防撬、试错报警)等语音反馈。智能化扩展能力:集成传感器以增强安全性(如温度监测、防撬检测)和用户体验。成本与可靠性平衡:在复杂环境下确保低功耗、高稳定性,同时控制硬件成本。WTV380-P(QFN32)语音芯片凭借4mm×4mm超小封装、多传
    广州唯创电子 2025-03-13 09:24 99浏览
  • 在海洋监测领域,基于无人艇能够实现高效、实时、自动化的海洋数据采集,从而为海洋环境保护、资源开发等提供有力支持。其中,无人艇的控制算法训练往往需要大量高质量的数据支持。然而,海洋数据采集也面临数据噪声和误差、数据融合与协同和复杂海洋环境适应等诸多挑战,制约着无人艇技术的发展。针对这些挑战,我们探索并推出一套基于多传感器融合的海洋数据采集系统,能够高效地采集和处理海洋环境中的多维度数据,为无人艇的自主航行和控制算法训练提供高质量的数据支持。一、方案架构无人艇要在复杂海上环境中实现自主导航,尤其是完
    康谋 2025-03-13 09:53 108浏览
  • 一、行业背景与用户需求随着健康消费升级,智能眼部按摩仪逐渐成为缓解眼疲劳、改善睡眠的热门产品。用户对这类设备的需求不再局限于基础按摩功能,而是追求更智能化、人性化的体验,例如:语音交互:实时反馈按摩模式、操作提示、安全提醒。环境感知:通过传感器检测佩戴状态、温度、压力等,提升安全性与舒适度。低功耗长续航:适应便携场景,延长设备使用时间。高性价比方案:在控制成本的同时实现功能多样化。针对这些需求,WTV380-8S语音芯片凭借其高性能、多传感器扩展能力及超高性价比,成为眼部按摩仪智能化升级的理想选
    广州唯创电子 2025-03-13 09:26 90浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦