Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> Linuxのデバイスドライバモデルの記事で

Linuxのデバイスドライバモデルの記事で

  
 

Linuxデバイスモデルは、まさにこのようなLDD3章XIVとして、理論的な導入を見て、抽象的には理解しにくいと感じ、そして更により具体的に理解しやすく、カーネルコードを読み取ることで、その理論的なプレゼンテーションやカーネルコードの組み合わせが速く読むことができますLinuxのデバイスモデルを理解し、把握。この記事の目的は、この順序で、これらの記事を見る前に、慎重章XIV LDD3を読み取ることが最善であるということです。デバイスとドライバのほとんどは、特に、platform_deviceとplatform_driverでバスに含まれていることでplatform_bus_typeに含まれている場合、です。 Linuxのデバイスモデルを理解するための登録処理platform_driver順序の分析、メインライン上で呼び出すためにここにPlatform_bus_type。そのようなすべてのプラットフォームデバイスにおけるカーネルのlinux-2.6.29 S3C2410などのプラットフォームデバイスとプラットフォームドライバのplatform_bus_type関連SOCは、devs.c.に保存されここで()S3C2410 RTCドライバRTC-s3c.c例にルーチンプロシージャを呼び出すplatform_driver_registerを分析することです。デバイスモデルの画像を付し、この例の最後の記事では、この資料は参考として一度に読み出すことができます。あなたがこの記事を読む前に、それが記事読むために最善である「Linuxのデバイスモデルデバイスの論文では。」

A以下のようにドライバ/RTC /RTC-s3c.cコードで定義されてS3C2410 RTCのplatform_driverは、静的構造体platform_driver s3c2410_rtc_driver = {、プローブ= s3c_rtc_probe、(=サスペンド(= __devexit_p s3c_rtc_removeを除去.. .. s3c_rtc_suspend、レジューム= s3c_rtc_resume} =ドライバ、]である。名前=" S3C2410-RTC、所有者= THIS_MODULE、{; .. {QUOT&=名ので、後でそれはなるだろう解析し; S3C2410-RTC"ディレクトリの名前は、その()は、「Linuxのデバイスモデルの機器の章の」事実の前に述べる使用platform_driver_registerを解析した()の呼び出しの/sys/bus/platform/s3c2410-rtc.s3c_rtc_probeの背後にありますs3c2410_rtc_driver登録、ここでは、2つのそれを分析、platform_driver_register()ルーチンは、ドライバ/ベース/platform.cコードで定義されている以下の通りである:。INT platform_driver_register(構造体platform_driver * DRV)} DRV-> driver.bus =& platform_bus_type。 //設定platform_bus_typeif(DRV->プローブ)DRV-> driver.probe = platform_drv_probe; //ダンプdevice_driverへIF(DRV->削除)DRV-> driver.remove = platform_drv_remove; IF(DRV->シャットダウン)DRV-> driver.shutdown = platform_drv_shutdown; IF(DRV->サスペンド)DRV-> driver.suspend = platform_drv_suspend。 IF(DRV->レジューム)DRV-> driver.resume = platform_drv_resume;戻りdriver_register(& DRV->ドライバ); //バスをdevice_driverへ登録するには、このルーチン、{コード後の分析、1。この場合には具体的には、ドライバとデバイスがバスによって一緒に連結されているので、これは非常に重要ですplatform_bus_typeを設定することはplatform_bus_type登録したコールバック・ルーチンとプロパティによって機器の記事の分析「Linuxデバイスモデルでは、達成されるべきです「ドライバに記載さは、デバイスがplatform_bus_typeによってマッハのルーチン登録に戻される一致()完了します。 platform_bus_typeの分析を参照してください「デバイスの論文のLinuxのデバイスモデル分析。」ここでは、解析driver_registerです()。三つは、driver_register()ルーチンは、ドライバ/ベース/driver.cコードで定義されている以下の通りである:int型driver_register(構造体のdevice_driver * DRV)} INT RET;構造体のdevice_driver *その他; //行う((DRV->か否かを判断します。 BUS->プローブ&&>-DRV-;プローブ)

Copyright © Windowsの知識 All Rights Reserved