IT培训机构|91免费精品视频|专注编程培训|91免费精品|软件开发培训_91免费国产视频_华清远见教育

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > Platform相親之旅

Platform相親之旅 時間:2018-08-16      來源:未知

剛剛過完春節,想問各位適齡男女小青年們:你們被媽媽,爸爸,三大姨,二大姑各種親戚催婚了嗎?有沒有被逼著去相親?反正我是沒去。不過話說回來,“沒吃過豬肉還沒見過豬跑嗎?”。按照慣例,春節這幾天,好多父母趁著自己的兒女都回家過年的時間,趕忙給張羅親事,去年過年回家的時候見著俺村的媒婆張,帶著鳳凰男小李去白富美小美家去相親,這緣分來了啊,擋都擋不住,倆人“王八瞅綠豆”,還真對眼了。隔了沒幾天就閃婚,這結了婚啊,鳳凰男把自己全部家當上交給白富美,白富美每天就是瀟灑的買買買,哪成想這小日子還沒過多久,這瘋狂男就起了外心了,在外面勾搭了一個小三,跟人跑了。結果白富美倒也爽快,離婚!到這兒GAME OVER......

本文引用地址://www.dgruiqian.com/emb/Column/7560.html

那么剛才的《相親》跟咱們今天的platform模型有啥關系呢?那關系大老鼻子了,聽我細細道來。Platform模型是設備總線驅動模型中的一種,首先咱們先說一下設備總線驅動模型所描述的三個對象?你們大家會說,哪三個對象啊?自然是設備、總線、驅動、他們三個。那么它在platform中的具體化的就是加上個前綴platform,即:

platform驅動模型三個對象:platform總線、platform設備、platform驅動。

----------->明確角色,不管是媒婆張,鳳凰男還是白富美都會有屬于自己的描述信息,都得把屬于自己的必要的信息填充上,才能進行合法的注冊登記。

(1) 媒婆張(平臺總線)platform_bus_type、鳳凰男(平臺設備)、platform_device、白富美(平臺驅動)platform_driver

[1]平臺總線結構體

struct bus_type platform_bus_type = {

.name = "platform", //平臺總線的名稱

.match = platform_match, //設備匹配時調用

.uevent = platform_uevent, //產生事件時調用

};

[2]平臺設備結構體

struct platform_device {

const char *name; //平臺驅動的名字

int id; //設備id,用于在該總線上同名的設備進行編號,如果只 //有一個設備,則為-1

struct device dev; //設備結構體

u32 num_resources; //資源的數量

struct resource *resource;//資源結構體

const struct platform_device_id *id_entry;//平臺設備數組表

};

struct device {

struct bus_type *bus; //總線類型

dev_t devt; //設備號

struct device_driver *driver; //設備驅動

void (*release)(struct device *dev);//刪除設備驅動

};

struct resource {

resource_size_t start; //資源開始

resource_size_t end; //資源結束

unsigned long flags; //資源類型

};

Start與end的含義會隨著flags的不同而不同,例如:常用的flags:IORESOURCE_MEM表示內存,start,end分別表示內存起始及終止;IORESOURCE_IRQ表示中斷號,start,end分別表示中斷號的起始及終止。

[3]平臺驅動結構體

struct platform_driver {

int (*probe)(struct platform_device *); //設備驅動結合函數

int (*remove)(struct platform_device *); //設備驅動分離卸載函數

struct device_driver driver;

const struct platform_device_id *id_table; //平臺設備表

};

struct device_driver {

const char *name; //驅動名稱

struct bus_type *bus; //總線名稱

struct module *owner; //模塊計數

const struct of_device_id *of_match_table;//用于設備樹匹配

struct driver_private *p; //其私有數據

};

------------->登記:男生(或女生)找到紅娘,說給我登記下看看有沒有合適的女生(或男生)

(2) 驅動platform_register_driver();或設備platform_register_device();的注冊,當然注冊的前提是男生女生有自己相應的軟硬件條件,譬如男生有自己的車,房,工資卡等,女生有賢良淑德等,這就需要男女生不斷的進步豐富自己,這就涉及到了對于struct platform_device(男生),struct platform_driver(女生)結構體的成員的填充了,填充完再進行相應的注冊。

[1]int platform_device_register(struct platform_device *pdev);

功能:注冊平臺設備驅動

參數:pdev:平臺設備驅動結構體

返回值:成功:0

失敗:錯誤碼

[2] int platform_driver_register(struct platform_driver*pdrv);

功能:注冊平臺設備驅動

參數:pdrv:平臺設備驅動結構體

返回值:成功:0

失敗:錯誤碼

------------->紅娘撮合:紅娘查看以前登記過的男男女女,看看有沒有合適的八字(name);

(3)struct bus_type中的match函數執行匹配工作;

跟蹤match的源碼,查看源碼實現:

------------->八字合適,男女自行交往,談婚論嫁

(4)進行設備驅動的匹配,執行struct platform_driver中的probe函數匹配;

[1]int (*probe)(struct platform_device *pdev);

功能:設備驅動匹配函數

參數:pdev:平臺設備結構體

返回值:成功:0

失敗:錯誤碼

------------->雙方結婚,男生上交各種資源包含工資及財產

(5)platfrom_get_resource();獲取設備struct platfrom_device中的struct resource資源;

[1]struct resource *platform_get_resource(struct platform_device *dev,

unsigned int type, unsigned int num);

功能:獲取設備資源

參數:dev:平臺驅動

type:獲取的資源類型

num:獲取的資源的編號

返回值:成功:資源結構體首地址

失敗:NULL

------------->男生婚后出軌,跟小三跑路,女生自動離婚(remove),之后男生再進行收尾工作(release)

(6)平臺設備卸載,平臺驅動執行struct platform_driver中的remove成員函數;至此一拍兩散

[1]int (*remove)(struct platform_device *pdev);

功能:移除平臺驅動

參數:pdev:平臺設備結構體

返回值:成功:0

失敗:錯誤碼

三者關系圖:

上一篇:BLE添加特征值

下一篇:STM32F030 Nucleo-讓MCU全速點燈,其中隱藏的含義

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 宿迁代账公司,专业会计查账,代理工商注册,商标注册,专利申请,公司注册哪家好-中方会计事务所 | 振动筛_直线振动筛_超声波振动筛-新乡市大汉振动机械有限公司 | 锌钢护栏,铁艺护栏,围墙护栏,锌钢围墙护栏,铁艺围墙护栏-互润金属丝网厂 | 辽宁华宇设备安装有限公司--朝阳消防安装公司,朝阳机电安装公司,朝阳电力安装公司 | 快达物流:电商和微商的仓储物流外包和托管服务-北京快达国际物流服务有限公司官方网站 | 酸碱废气中和塔-酸雾废气吸收塔-酸雾废气处理塔|首页-广州市佰镀通风设备有限公司 | 南宁清洁公司|外墙清洗|开荒清洁|洒水车|管道疏通|园林绿化_广西优而美环境工程有限公司 | 种植槽系统,移动苗床,多层种植货架,潮汐苗床,物流苗床,潮汐面板,立体旋转育秧床,河北博超温室设备有限公司 | 耐磨锤头|合金锤头|高铬耐磨锤头|破碎机锤头|双金属双液复合锤头_巩义东辰实业 合金耐磨锤头铸造厂 | 河南桥式起重机-河南门式起重机-宇华起重设备集团(官网) | 重庆吊篮租赁-重庆脚手架租赁-重庆斌盛机械设备租赁有限公司 | 康明斯柴油发电机厂家-康明斯发电机(深圳)有限公司 | 企业宣传片制作公司-广告宣传片拍摄-专题片,tvc广告制作-拍摄微电影影视公司-艺虎文化 | 九江江菱电梯有限公司 | 全国产品维权打假真伪验证系统-石家庄市海略科技有限公司官方网站 | 叶片泵,液压电机,油泵电机,变量叶片泵,油压电机-广东俊泰液压科技有限公司 | 行星式球磨机-实验室球磨仪[东方天净]小型高能研磨筛分仪直销厂家 | 每天一篇励志文章,每晚一个励志故事—励志人生网 | 手术示教系统-实训示教系统-数字化手术室-直播录播系统 - 深圳市视源视讯技术有限公司 | 和部长一起去出差旅全程,构建和谐上下级关系-蜜桃视频 | 移动厕所_真空环保厕所_环保厕所_景区生态厕所_雨施捷移动厕所生产厂家 | 硫酸、硫酸铵、氯磺酸、氯化亚砜、硫酸钾、对位酯生产销售 - 河北和合化工有限公司 | 无土栽培|无土栽培技术|水肥一体化|无土栽培蔬菜 | 消防工程公司,消防工程承接公司-亿杰(北京)工程安装有限公司 | ?神龙上古堂全国官网_颈腰椎调理服务中心_萨迦藏式秘方渗透法 | 面粉加工设备-面粉加工机械-面粉机组-面粉磨粉机-面粉机成套设备-河南粮院机械制造有限公司 | 厦门海为科技有限公司 - 工业物联网|国产PLC|HMI|SCADA | 轻触开关,拨动开关,德艺隆(DEALON)精密工业股份有限公司 | 泊头市天一泵业有限公司_齿轮泵,高粘度齿轮泵,螺杆泵,三螺杆泵 | 上海协格机电科技股份有限公司-上海格力中央空调安装报价工程服务商 | 西安logo设计公司/西安包装设计公司/西安画册设计公司/西安广告公司/西安品牌设计公司/泰勒广告 雾度计-雾度仪-透光率测试仪-3nh品牌雾度仪生产厂家 | 托盘缠绕机|全自动缠绕机|悬臂缠绕机-上海晏陵智能设备有限公司 托辊|滚筒|聚氨酯托辊|缓冲托辊|尼龙托琨|衡水良龙输送机械有限公司 | 河南康振机械有限公司 | 转轴测试机-按键寿命测试机-连接器插拔力试验机-深圳市丹荣检测 转盘萃取塔,DMF回收塔生产厂家-无锡弘鼎华化工设备有限公司 | 中标通国际认证(深圳)有限公司-知识产权管理体系认证-湖北知识产权贯标 | 湖南长沙手术室、实验室、无尘室、洁净室、无尘车间的净化工程装修公司-福临建设 | 江西同欣机械制造股份有限公司 | 张家港起重搬运吊装,工厂设备搬运服务-张家港易源起重搬运有限公司 | 河北安润防腐管业股份有限公司-远程供液管路_远距离供液管路_远程供液系统 | 宁波华路德|交通信号灯|交通信号机|太阳能信号灯|交通警示灯|交通信号灯厂家 | 宁波雷豹机电科技有限公司|雷豹冷风机|雷豹工业大风扇|MFC18000|MFC16000|MFC6000|EF3622|EF4222|EF4822|移动工业蒸发式冷风机空气冷却器|大型工业空调扇|雷豹移动式工业大风扇|雷豹大风扇|生产厂家|公司官网 |