国产成人精品三级麻豆,色综合天天综合高清网,亚洲精品夜夜夜,国产成人综合在线女婷五月99播放,色婷婷色综合激情国产日韩

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

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

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

本文引用地址://www.mairao.cn/emb/Column/7560.html

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

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

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

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

[1]平臺總線結(jié)構(gòu)體

struct bus_type platform_bus_type = {

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

.match = platform_match, //設備匹配時調(diào)用

.uevent = platform_uevent, //產(chǎn)生事件時調(diào)用

};

[2]平臺設備結(jié)構(gòu)體

struct platform_device {

const char *name; //平臺驅(qū)動的名字

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

struct device dev; //設備結(jié)構(gòu)體

u32 num_resources; //資源的數(shù)量

struct resource *resource;//資源結(jié)構(gòu)體

const struct platform_device_id *id_entry;//平臺設備數(shù)組表

};

struct device {

struct bus_type *bus; //總線類型

dev_t devt; //設備號

struct device_driver *driver; //設備驅(qū)動

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

};

struct resource {

resource_size_t start; //資源開始

resource_size_t end; //資源結(jié)束

unsigned long flags; //資源類型

};

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

[3]平臺驅(qū)動結(jié)構(gòu)體

struct platform_driver {

int (*probe)(struct platform_device *); //設備驅(qū)動結(jié)合函數(shù)

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

struct device_driver driver;

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

};

struct device_driver {

const char *name; //驅(qū)動名稱

struct bus_type *bus; //總線名稱

struct module *owner; //模塊計數(shù)

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

struct driver_private *p; //其私有數(shù)據(jù)

};

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

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

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

功能:注冊平臺設備驅(qū)動

參數(shù):pdev:平臺設備驅(qū)動結(jié)構(gòu)體

返回值:成功:0

失敗:錯誤碼

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

功能:注冊平臺設備驅(qū)動

參數(shù):pdrv:平臺設備驅(qū)動結(jié)構(gòu)體

返回值:成功:0

失。哄e誤碼

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

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

跟蹤match的源碼,查看源碼實現(xiàn):

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

(4)進行設備驅(qū)動的匹配,執(zhí)行struct platform_driver中的probe函數(shù)匹配;

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

功能:設備驅(qū)動匹配函數(shù)

參數(shù):pdev:平臺設備結(jié)構(gòu)體

返回值:成功:0

失。哄e誤碼

------------->雙方結(jié)婚,男生上交各種資源包含工資及財產(chǎn)

(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);

功能:獲取設備資源

參數(shù):dev:平臺驅(qū)動

type:獲取的資源類型

num:獲取的資源的編號

返回值:成功:資源結(jié)構(gòu)體首地址

失敗:NULL

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

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

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

功能:移除平臺驅(qū)動

參數(shù):pdev:平臺設備結(jié)構(gòu)體

返回值:成功:0

失。哄e誤碼

三者關系圖:

上一篇:BLE添加特征值

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

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

回到頂部