亚洲AV日韩AⅤ综合手机在线观看,激情婷婷久久综合色,欧美色五月婷婷久久,久久国产精品99久久人人澡

  • <abbr id="uk6uq"><abbr id="uk6uq"></abbr></abbr>
  • <tbody id="uk6uq"></tbody>
  • QNX操作系統(tǒng)及網(wǎng)絡(luò)設(shè)備驅(qū)動模塊

    時間:2024-10-03 13:34:15 理工畢業(yè)論文 我要投稿
    • 相關(guān)推薦

    QNX操作系統(tǒng)及網(wǎng)絡(luò)設(shè)備驅(qū)動模塊

    摘要:介紹嵌入式操作系統(tǒng)QNX的微內(nèi)核結(jié)構(gòu)、基于io-net的網(wǎng)絡(luò)子系統(tǒng)、網(wǎng)絡(luò)設(shè)備驅(qū)動程序的組成;給出以以太網(wǎng)網(wǎng)設(shè)備驅(qū)動程序為例的詳細說明,包括初始化、從網(wǎng)絡(luò)設(shè)備接收數(shù)據(jù),向網(wǎng)絡(luò)設(shè)備發(fā)送數(shù)據(jù)和網(wǎng)絡(luò)設(shè)備信息的統(tǒng)計。

    QNX是業(yè)界公認(rèn)的X86平臺上最好的嵌入式實時操作系統(tǒng)之一。它具有獨一無二的微內(nèi)核實時平臺,建立在微內(nèi)核和完全地址空間保護基礎(chǔ)之上,實時、穩(wěn)定、可靠,已經(jīng)完成到PowerPC、MIPS、ARM等內(nèi)核的移植,成為在國內(nèi)廣泛應(yīng)用的嵌入式實時操作系統(tǒng)。本文簡單介紹QNX內(nèi)核和網(wǎng)絡(luò)結(jié)構(gòu)的特點,針對目前熱門的網(wǎng)絡(luò)應(yīng)用環(huán)境,討論QNX網(wǎng)絡(luò)設(shè)備驅(qū)動程序的結(jié)構(gòu)和編寫。

    1 QNX內(nèi)核簡介

    QNX的微內(nèi)核結(jié)構(gòu)是它區(qū)別于其它操作系統(tǒng)的顯著特點。目前嵌入式系統(tǒng)中,操作系統(tǒng)和應(yīng)用程序之間的關(guān)系大概可以歸納為圖1~圖3所示的三種情況。

    平板式內(nèi)存結(jié)構(gòu),如圖1所示,所有的程序都使用同一個地址空間,不加保護;應(yīng)用程序可以自由訪問所有空間,效率較高,但是任何應(yīng)用程序指針錯誤都可能會導(dǎo)致內(nèi)核崩潰。

    大內(nèi)核內(nèi)存結(jié)構(gòu),如圖2所示,操作系統(tǒng)內(nèi)核和各種驅(qū)動程序、網(wǎng)絡(luò)協(xié)議在同一個地址空間,應(yīng)用程序在單獨空間;內(nèi)核模塊同處于一個保護空間,運行效率高,應(yīng)用程序無法直接訪問保護空間,系統(tǒng)穩(wěn)定性大大提高。缺點是,由于內(nèi)核模塊(例如網(wǎng)絡(luò)驅(qū)動)處于保護空間,因此調(diào)試?yán)щy,任何驅(qū)動程序的修改都要重新編譯內(nèi)核,無法做到驅(qū)動的動態(tài)加載和卸載。

    QNX的微內(nèi)核結(jié)構(gòu),如圖3所示,內(nèi)核獨立自處于一個被保護的地址空間;驅(qū)動程序、網(wǎng)絡(luò)協(xié)議和應(yīng)用程序處地程序空間中。

    微內(nèi)核結(jié)構(gòu)的優(yōu)點:①驅(qū)動程序、網(wǎng)絡(luò)協(xié)議、文件系統(tǒng)等操作系統(tǒng)模塊和內(nèi)核相互獨立,任何模塊的故障都不會導(dǎo)致內(nèi)核的崩潰;②驅(qū)動程序、網(wǎng)絡(luò)協(xié)議、文件系統(tǒng)和應(yīng)用程序都處于程序空間,都調(diào)用相同的內(nèi)核API,開發(fā)與調(diào)試和應(yīng)用程序沒有區(qū)別;③操作系統(tǒng)功能模塊可以根據(jù)需要動態(tài)地加載或卸載,不需要編譯內(nèi)核。在高可靠性要求的情況下,可以編寫監(jiān)視模塊,對可靠性要求高的模塊進行監(jiān)視,必要的時候重新啟動或重新加載而無須重啟系統(tǒng)。高可靠性的內(nèi)核結(jié)構(gòu)使QNX具備了高可靠性嵌入式操作系統(tǒng)的本質(zhì)特征。

    在具有高可靠性內(nèi)核的基礎(chǔ)上,QNX的創(chuàng)新設(shè)計使它同樣具有很高的效率。QNX最為引人注目的地方是,它是UNIX的同胞異構(gòu)體,保持了和UNIX的高度相似性,絕大多數(shù)UNIX或LINUX應(yīng)用程序可以在QNX下直接編譯生成。這意味著為數(shù)眾多的穩(wěn)定成熟的UNIX、LINUX應(yīng)用可以直接移植到QNX這個更加穩(wěn)定高效的實時嵌入式平臺上來。

    2 QNX網(wǎng)絡(luò)結(jié)構(gòu)

    QNZ網(wǎng)絡(luò)子系統(tǒng)由三個部分組成:網(wǎng)絡(luò)管理模塊(io-net)、網(wǎng)絡(luò)協(xié)議模塊(npm-qnet.so、npm-tcpip.so)、網(wǎng)絡(luò)設(shè)備驅(qū)動模塊(devn-ne2000.so)。

    模塊之間的層次關(guān)系如圖4所示。

    圖4中的每個模塊各自具有不同的功能,但是它們具有一些相同的屬性。如:網(wǎng)絡(luò)設(shè)備驅(qū)動、TCP/IP協(xié)議棧分別對上層io-net模塊和應(yīng)用程序產(chǎn)生數(shù)據(jù),兩者都可以被看作數(shù)據(jù)源;同時它們也接受上層發(fā)來的數(shù)據(jù),又可以同時被看作數(shù)據(jù)的消費者。過濾模塊對向上的數(shù)據(jù)進行篩選,分協(xié)議進行處理;對向下的數(shù)據(jù)則進行相應(yīng)的轉(zhuǎn)換,如進行網(wǎng)絡(luò)地址轉(zhuǎn)換NAT。轉(zhuǎn)換模塊負(fù)責(zé)不同協(xié)議幀結(jié)構(gòu)的轉(zhuǎn)換,在以太網(wǎng)的工作環(huán)境下,它就負(fù)責(zé)對IP數(shù)據(jù)報進行以太網(wǎng)幀的封裝和解包。

    和QNX其它服務(wù)進程一樣,QNX的網(wǎng)絡(luò)子系統(tǒng)也在內(nèi)核外部空間運行。應(yīng)用程序面對的是一個統(tǒng)一的網(wǎng)絡(luò)接口,硬件相關(guān)的內(nèi)容被完全包裝在網(wǎng)絡(luò)子系統(tǒng)內(nèi)。

    QNX網(wǎng)絡(luò)子系統(tǒng)的三個子模塊按層次分開,io-net模塊處于中心,是QNX網(wǎng)絡(luò)的核心和重點,其它模塊都掛接在它上面。數(shù)據(jù)和信息的流動都必須經(jīng)由io-net調(diào)度與轉(zhuǎn)發(fā),所有其它模塊所面對的就是一個單一主體。這樣的中心交換結(jié)構(gòu),屏蔽了各個模塊間相互協(xié)調(diào)的復(fù)雜細節(jié),在很大程序上方便了模塊的編寫工作;同時,io-net還是QNX的網(wǎng)絡(luò)管理中心。任何網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)設(shè)備驅(qū)動程序都必須向io-net注冊,由它來加載,并接受io-net的配置和管理,用戶對網(wǎng)絡(luò)狀態(tài)的查詢和管理也是通過io-net來實現(xiàn)的。

    3 QNX網(wǎng)絡(luò)設(shè)備驅(qū)動

    QNX網(wǎng)絡(luò)設(shè)備驅(qū)動模塊處于網(wǎng)絡(luò)硬件和io-net模塊之間。驅(qū)動模塊負(fù)責(zé)配置硬件使其正常工作,向io-net報告數(shù)據(jù)收發(fā)情況,接收和傳遞數(shù)據(jù),接受io-net的調(diào)度和管理。QNX網(wǎng)絡(luò)設(shè)備驅(qū)動程序依照以上功能,分為初始化、接收發(fā)送數(shù)據(jù)、網(wǎng)絡(luò)設(shè)備信息統(tǒng)計幾個功能塊。要使網(wǎng)絡(luò)設(shè)備工作正常,驅(qū)動程序就要對它進行一定的寄存器配置,同時,還要向QNX網(wǎng)絡(luò)子系統(tǒng)注冊自己,表明網(wǎng)絡(luò)設(shè)備的存在和網(wǎng)絡(luò)通信能力,才能為系統(tǒng)和應(yīng)用程序所用。在初始化工作完成以后,網(wǎng)絡(luò)設(shè)備就進入了工作狀態(tài),收發(fā)數(shù)據(jù)。設(shè)備信息的統(tǒng)計也是由設(shè)備驅(qū)動程序來完成的。

    (1)初始化

    初始化包括兩個方面,一方面是初始化網(wǎng)絡(luò)設(shè)備,使其正常工作;另一個方面,是向io-net正確注冊驅(qū)動模塊,表明自己的屬性,方便上層正確操作。網(wǎng)絡(luò)設(shè)備的初始化工作和硬件緊密相關(guān),這里就不一一描述。

    驅(qū)動模塊向io-net加載自己的時候,系統(tǒng)遵循如下工作流程:

    ①io-net搜索全局的符合io_net_dll_entry。它定義了驅(qū)動的初始化函數(shù),io-net會直接調(diào)用這個函數(shù)。

    ②初始化函數(shù)向io-net注冊驅(qū)動和相應(yīng)的函數(shù)。

    ③初始化函數(shù)告訴io-net和它的模塊自己的通信能力。

    經(jīng)過以上流程以后,io-net中就建立起有關(guān)此驅(qū)動程序的數(shù)據(jù)和函數(shù)調(diào)用列表。驅(qū)動程序必須正確編寫初始化函數(shù),并將該函數(shù)正確鏈接至io_net_dll_entry。

    【QNX操作系統(tǒng)及網(wǎng)絡(luò)設(shè)備驅(qū)動模塊】相關(guān)文章:

    新型IGBT/MOSFET驅(qū)動模塊SKHI22A/B03-19

    無驅(qū)動USB認(rèn)證模塊在電子商務(wù)中的應(yīng)用03-07

    基于ARM9微處理器與Linux操作系統(tǒng)的SD驅(qū)動開發(fā)03-07

    I2C總線在uClinux操作系統(tǒng)下的驅(qū)動程序設(shè)計11-22

    項目驅(qū)動式模塊化教學(xué)在《常用工具軟件》中的應(yīng)用03-21

    組件機制與操作系統(tǒng)的實現(xiàn)03-18

    STN-LCD彩屏模塊03-21

    ERP中的物流模塊研究12-04

    智能網(wǎng)絡(luò)設(shè)備開發(fā)中的硬件設(shè)計03-20