日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀] 本發(fā)明涉及一種適用于動態(tài)充電系統(tǒng)的模塊化設計技術,有限的資源和能力它是能夠成功地描述所使用的技術核心(I)和(E)的描述模塊,并參考字段表作為基準和最終結論。

本發(fā)明涉及一種適用于動態(tài)充電系統(tǒng)的模塊化設計技術,有限的資源和能力它是能夠成功地描述所使用的技術核心(I)和(E)的描述模塊,并參考字段表作為基準和最終結論。

隨著電子技術的飛速發(fā)展,嵌人式設備應用越來越廣泛,復雜度也越來越高。這使得硬件和軟件設計比例發(fā)生了很大變化,軟件開發(fā)的比重越來越大。然而傳統(tǒng)嵌入式開發(fā)過程中需要將應用與操作系統(tǒng)編譯鏈接成一個整體,然后下載到目標機上運行。如果在調試過程中發(fā)現(xiàn)問題,需要重新編鏈接然后重復下載運行的過程。這樣的開發(fā)流程周期長而且繁瑣,已經(jīng)越來越不適應快速市場化的需要。

為了適應多樣化的嵌入式應用和加快嵌入式系統(tǒng)的開發(fā)過程,除了需要可靠的基礎平臺軟件的支持,如帶有文件系統(tǒng)、網(wǎng)絡協(xié)議棧的RTOS和配套的集成開發(fā)環(huán)境,更重要的是需要可以動態(tài)擴展的系統(tǒng)平臺。近年來,新一代的嵌入式操作系統(tǒng)已經(jīng)開始使用動態(tài)擴展技術:將基本系統(tǒng)(包括操作系統(tǒng)以及其他共享功能調用庫)和應用程序開發(fā)分開處理,支持模塊更新和動態(tài)加載技術。很多主流的傳統(tǒng)嵌入式操作系統(tǒng)廠商,如windRiver、Green HilIs、Lynxworks,都推出了面向航空航天、基礎通信設備等領域的高可靠、高性能的RTOS版本,支持應用和系統(tǒng)組件的動態(tài)加載和更新;而在消費電子領域,相關的操作系統(tǒng)廠商,如symbian、Palm、Microsoft,更是積極推出了具有相應功能的操作系統(tǒng),在新一代移動設備上得到了廣泛應用。

為了成為可動態(tài)擴展系統(tǒng)平臺,大部分嵌入式操作系統(tǒng)需要使用動態(tài)加載技術??偟膩碚f,動態(tài)加載是指應用或者系統(tǒng)在運行過程中需要使用某模塊的服務,于是通過一系列預定的動作將指定模塊加載到系統(tǒng)中,讓調用者繼續(xù)順利工作。它實現(xiàn)的關鍵就是加載與動態(tài)鏈接技術。因為加載和動態(tài)鏈接互相依賴,關系緊密,所以將兩者放在一起進行討論。

1 加載與動態(tài)鏈接機制

加載主要負責將模塊程序從二級存儲設備(比如硬盤或者Flash)搬移到指定內存空間,并且將模塊交由系統(tǒng)加載器統(tǒng)一管理。

程序鏈接分為靜態(tài)鏈接、加載時鏈接和運行時鏈接。靜態(tài)鏈接就是將程序和它運行所需的全部庫鏈接成一個執(zhí)行文件。它的優(yōu)點是可以獨立運行、速度快,但是它鏈接生成的代碼尺寸比較大。加載時鏈接是指程序在編譯鏈接時不會把它用到的庫鏈接到執(zhí)行程序中,而是在它被加載器加載時才解析執(zhí)行文件,依次把用到的庫裝載到系統(tǒng)中讓其運行。它的優(yōu)點是程序本身代碼量減小,但運行時程序占的內存并沒有減小,同時增加了加載器的工作量。動態(tài)鏈接是加載時鏈接的進一步發(fā)展,它是指將庫的加載過程延遲到程序運行時執(zhí)行。這種方式不會給程序引入額外的代碼,也不會增加加載器的開銷,只有當應用真正使用某庫時才會加載該庫,減少了不必要的空間占用。它的缺點是可能會有一些運行開銷。

嵌入式系統(tǒng)中動態(tài)加載和普通的動態(tài)鏈接概念類似,但是嵌入式系統(tǒng)中的加載鏈接器有其自身的特點:它是交叉加載,主機端做一部分工作,比如程序的重定位,執(zhí)行文件的解析等等;而目標機端相對簡單,主要做模塊搜索定位和空間分配,以及指定物理地址或者映射虛擬地址讓其運行。一部分嵌入式系統(tǒng)不支持虛擬內存,應用和內核共享存儲空間。當系統(tǒng)加載了多個應用到系統(tǒng)中時,一般需要使用overlap技術來解決內存空間有限的問題,即是當多個應用的運行地址空間沖突時,加載器會凍結當前暫時不運行的應用,讓新加載的應用使用指定的地址空間,PairnOS中就采用了這樣的設計。對于支持虛擬內存的嵌入式系統(tǒng),加載器的工作被大大簡化,每個應用都有可以運行在同樣的虛擬的空間,不需要加載器為其重定位或使用overlap技術,因此提高了工作效率。Vxworks6.O,WinCE都使用了這種設計。兩種方式在不同的領域都有比較多的應用。

文中提出的模塊動態(tài)加載技術是基于支持MMU(Memory Management Unit)的32位嵌入式操作系統(tǒng),采用了加載與動態(tài)鏈接技術。使用該技術構建的嵌人式系統(tǒng)面向高端市場,特別是對系統(tǒng)可靠性、安全性要求很高的領域。在DeltaOS新一代高可靠的版本HAR(High Available Reliable system)的研發(fā)過程中,即成功地實現(xiàn)了基于該設計的加載器LambdaLoader,達到了預期的性能要求。

2 模塊動態(tài)加載的設計

2.1 設計思路

首先定義一些概念:模塊、目標程序、接口函數(shù)地址表和調用庫(call Library)。

①模塊,主要是指加載器加載的一個單位,并且這里模塊的概念主要是強調它是為應用或者系統(tǒng)提供一系列服務的提供者。

②目標程序,是指模塊的使用者。它可以是應用,也可以是另一個模塊。

③接口函數(shù)地址表(文中也稱之為模塊重定位表),指在模塊中有一個數(shù)組表,該數(shù)組表的內容是該模塊對外提供的函數(shù)接口的地址。

④調用庫,是供模塊調用者鏈接使用的專有庫。它與相關模塊一一對應,將封裝了的模塊接口供目標程序使用。除此以外,它還有一個運行時才確定的模塊重定位表地址指針和模塊動態(tài)查找定位的代碼。

如果在系統(tǒng)中要實現(xiàn)動態(tài)加載,首先需要一種模塊定位機制,使得調用者能夠在系統(tǒng)中動態(tài)定位需要的模塊,其次是要能讓模塊與目標程序動態(tài)的關聯(lián)在一起,協(xié)調工作。為了解決這些問題,需要一系列相關的設計:規(guī)定模塊的聲明方式;簡化目標機端模塊地址空間定位的工作;重定位表的機制等等?;谶@樣的設計,系統(tǒng)可以比較順利地實現(xiàn)動態(tài)加載。模塊動態(tài)加載的工作流程如圖l所示。這里描述的主要是目標機端的工作。

2.2 模塊的聲明

模塊首先要定義它的相關屬性。這里使用模塊聲明文件來完成這個工作。模塊聲明文件中需要定義:模塊名字、版本、對外提供的API接口。在系統(tǒng)編譯模塊程序后,會調用一系列的script代碼。這些script會根據(jù)模塊名字查找模塊對應的模塊聲明文件,并根據(jù)該文件生成供模塊調用者使用的調用庫和與模塊一起鏈接的附加庫。

附加庫包含系統(tǒng)后臺通過調用script生成的接口函數(shù)地址表和模塊注冊函數(shù)。在每個模塊的初始化函數(shù)中,會調用一個模塊的注冊函數(shù)(該函數(shù)主要工作是向系統(tǒng)注冊模塊的名字和接口函數(shù)地址表地址)。當模塊被加載時,初始化函數(shù)會被系統(tǒng)調用,向系統(tǒng)注冊模塊信息,此后模塊交由加載器統(tǒng)一管理。

2.3 調用庫

每個模塊在提供一個模塊重定位表的同時,必須提供一個與之對應的模塊調用庫。別的目標程序必須并且只能通過調用庫來使用這個模塊提供的服務。每個調用庫都有一個存儲本模塊重定位表的地址指針變量。該變量在模塊被目標程序第一次使用時會被初始化為相應模塊重定位表地址。

在模塊第一次被目標程序使用即開始動態(tài)加載過程時,首先運行的是調用庫的庫初始化代碼(Library initialcode),它通過指定的系統(tǒng)調用來初始化庫中的模塊重定位表基地址指針。此后每次目標程序使用模塊提供的函數(shù)接口時,都通過以下公式得到該接口的實際地址:模塊接口實際地址=模塊重定位表基地址+函數(shù)index%26;#215;4

在該公式中,函數(shù)index是指對應函數(shù)在模塊重定位表中的數(shù)組下標值。因為根據(jù)模塊聲明文件生成的調用庫中已經(jīng)包含了每個函數(shù)的索引信息(index),同時在32位系統(tǒng)中需要乘以4得到準確的偏移量,所以當調用庫中重定位表地址被初始化后,可以通過這樣一個簡單計算得到指定接口實際地址,完成函數(shù)調用。

當一個目標程序使用了模塊,并正確動態(tài)加載后,其關系如圖2所示。目標程序中鏈接了調用庫,包含了函數(shù)跳轉表和指向模塊重定位表基地址的指針(ModuleBase);模塊中則鏈接了附加庫,包含了函數(shù)接口地址表(模塊重定位表)。調用模塊函數(shù)時,經(jīng)過動態(tài)加載模塊的過程以后,目標程序的模塊重定位表基址指針指向了對應模塊的函數(shù)接口表,然后函數(shù)調用就可以順利進行了。

2.4 兩級重定位表

在嵌入式領域,為了降低性能開銷和增加確定性,目標機端加載器不會做程序重定位,而將相關工作在主機端完成,所以目標機端加載的所有程序都是絕對定位后的程序.為了實現(xiàn)系統(tǒng)動態(tài)擴展,必須使各個模塊能夠單獨鏈接生成執(zhí)行程序,并且運行時不用關心彼此的定位,這樣即使一個模塊被動態(tài)替換后也能同其他程序一起協(xié)調運行。這里通過兩級重定位表機制來完成這個協(xié)調性的工作。

對于內核、操作系統(tǒng)組件模塊或提供服務給其他目標程序使用的模塊,要維護一張本模塊提供的接口函數(shù)地址表(即模塊重定位表,這里稱之為二級重定位表)。為了保證本模塊的向后兼容性,模塊必須保證其接口函數(shù)在模塊重定位表中的相對位置固定。即使今后不能提供這個接口函數(shù),也需要將其保留,以保證同以前版本的二進制兼容性。

在模塊的初始化代碼中,模塊通過系統(tǒng)調用向加載器注冊這個模塊重定位表的地址,注冊時需提供模塊名和模塊重定位表的地址。加載器中管理著一個稱為一級重定向表的表格。這個表的表項是“模塊名”到“模塊重定位表地址”的映射。因為這只是一個映射關系,所以各個模塊對應的表項在一級表中的具體位置是可以改變的。

二級重定位表如圖3所示。

使用兩級重定位表的規(guī)則如下:

①模塊可通過模塊重定位表向其他目標程序提供接口函數(shù);

②目標程序要使用別的模塊提供的接口函數(shù)必須通過對應模塊的調用庫來實現(xiàn);

③目標程序在使用別的模塊提供的接口函數(shù)之前,必須通過加載器提供的系統(tǒng)調用服務獲取對應模塊重定位表來基地址初始化對方的調用庫。

結 語

該設計實現(xiàn)了在嵌入式系統(tǒng)中的模塊動態(tài)加載與更新,使得在嵌入式軟件開發(fā)過程中,開發(fā)人員可以更有效的設計系統(tǒng),共享資源,達到提高效率、產品快速市場化的目的。在基于DeltaOS的實現(xiàn)中,可以完成應用的任意加載卸載,系統(tǒng)組件的動態(tài)更新;多個應用可以共享一個全局的模塊;一個應用可以同時使用多個模塊等等。整個系統(tǒng)擴展性和靈活性大大提高,較好地滿足了實際需要。但是設計中對容錯性、健壯性的考慮還不夠,在應用與模塊的間接調用處理上還有優(yōu)化的空間,所以在這些方面還需要進一步改進。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據(jù)LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉