java platform是什么,讓我們一起了解一下?
paltform是一種虛擬的總線,用于管理外設(shè)資源、內(nèi)存資源、中斷資源,在硬件上有USB-BUS總線,PCI-BUS總線,這是在物理設(shè)備上實際存在的總線。platform的一個優(yōu)點就是將驅(qū)動和設(shè)備分開,提高驅(qū)動的移植性。
platform的靈魂是:device(設(shè)備)driver(驅(qū)動)platform_bus(platform總線),其特點是設(shè)備,驅(qū)動分層動態(tài)的管理和加載,其中platform_bus是一個虛擬的總線。
drvier和device匹配的方法有3種:
1、當(dāng)一個設(shè)備注冊的時候,他會在總線上尋找匹配的driver,platform device一般在系統(tǒng)啟動很早的時候就注冊了。
2、當(dāng)一個驅(qū)動注冊[platform_driver_register()]的時候,他會遍歷所有總線上的設(shè)備來尋找匹配,在啟動的過程驅(qū)動的注冊一般比較晚,或者在模塊載入的時候。
3、當(dāng)一個驅(qū)動注冊[platform_driver_probe()]的時候, 功能上和使用platform_driver_register()是一樣的,唯一的區(qū)別是它不能被以后其他的device probe了,也就是說這個driver只能和 一個device綁定。
如何定義一個driver?
static?struct?platform_driver?test_platform_driver?=?{ .probe???=?dev_test_probe,? .remove???=?dev_test_remove, .suspend??=?dev_test_suspend, .resume???=?dev_test_resume, .driver??=?{ .owner??=?THIS_MODULE, .name???=?"cx2837_test", }, };
如何定義一個device(設(shè)備)?
static?struct?platform_device?dev_fb0?=?{ ?.name?=?"cx2837_test", ?.id?=?1,? };
以上就是小編今天的分享了,希望可以幫助到大家。