尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

五、平台设备与平台驱动

五、平台设备与平台驱动
📅 发布时间:2026/6/17 18:13:38

一、概述

  1. 平台总线是一个虚拟总线,抽象层面上外设可以通过平台总线与CPU相连
  2. 平台设备和平台驱动就像一个人字一样挂在平台总线两侧,当一个新的平台设备或平台驱动被注册进系统,会在另一条枝干上搜索对应的平台驱动或设备,完成初始化
  3. 平台设备在/sys/bus/platform/devices下会有相应的文件对应
  4. 平台驱动在/sys/bus/platform/drivers下会有相应的文件对应

二、平台设备关键API和结构体

// 注册一个平台设备
int platform_device_register(struct platform_device *pdev);
// 注销一个平台设备
void platform_device_unregister(struct platform_device *pdev);
// platform_device结构体
struct platform_device {const char	*name;              // 名字int		id;                     // IDstruct device	dev;            // 继承的deviceu32		num_resources;          // 资源数量struct resource	*resource;      // 资源结构体指针const struct platform_device_id	*id_entry;      // 设备ID表指针...
};
// 资源结构体
struct resource {resource_size_t start;          // 资源起始地址resource_size_t end;            // 资源结束地址const char *name;               // 名称unsigned long flags;            // 标志位unsigned long desc;             // 描述信息struct resource *parent, *sibling, *child;  // 父资源、兄弟资源、子资源
};
// 资源标志位
#define IORESOURCE_IO		0x00000100	/* PCI/ISA I/O ports */
#define IORESOURCE_MEM		0x00000200
#define IORESOURCE_REG		0x00000300	/* Register offsets */
#define IORESOURCE_IRQ		0x00000400
#define IORESOURCE_DMA		0x00000800
#define IORESOURCE_BUS		0x00001000

三、平台驱动相关API与结构体

// 注册平台驱动
int platform_driver_register(struct platform_driver *driver);
// 注销平台驱动
void platform_device_unregister(struct platform_device *pdev);
// platform_driver结构体
struct platform_driver {int (*probe)(struct platform_device *);                      // 函数指针int (*remove)(struct platform_device *);void (*shutdown)(struct platform_device *);int (*suspend)(struct platform_device *, pm_message_t state);int (*resume)(struct platform_device *);struct device_driver driver;    // 结构体内有name成员,成员与platform_device的name成员匹配后进入probe函数const struct platform_device_id *id_table;      // 用于driver和device的匹配,优先级高于name
};

四、其他API与结构体

// 从platform_device结构体中遍历寻找type匹配的第num个资源,返回resource结构体的指针
struct resource *platform_get_resource(struct platform_device *dev, unsigned int type, unsigned int num);

相关新闻

  • linux c 开发 工具
  • Token快过期的三种续期方案 - 详解
  • 游戏统一包模式下活动营销系统后续的发展方向

最新新闻

  • 2026年6月核心快讯:杭州帝舵手表保养收费价格与南京法穆兰保养收费明细 - 亨得利官方售后
  • 论文双检时代破局:告别无效改写,百考通AI一站式解决重复率与AIGC超标难题
  • 生成式AI实操手记:从GAN、VAE到扩散模型的可复现训练指南
  • 江苏地区消防证培训综合实力排行及核心指标解析 - 起跑123
  • Cecropin A ;KWKLFKKIEKVGQNIRDGIIKAGPAVAVVGQATQIAK-NH₂
  • Citra 3DS模拟器终极画质优化指南:如何在普通电脑上获得最佳视觉体验

日新闻

  • 2026年不锈钢卷板厂家推荐排行榜:冷轧热轧/304/201不锈钢卷板,高颜值耐腐蚀源头厂家实力精选 - 企业推荐官【官方】
  • FLUX.1-dev FP8模型实战指南:24GB以下显卡高效部署方案
  • 2026佛山长途搬家价目表:跨省跨市搬家费用完整计算指南 - 从来都是英雄出少年

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号