999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于UEFI的數據傳輸工具的研究與實現

2020-08-06 15:01:03朱勇洪
計算機時代 2020年7期
關鍵詞:數據傳輸

朱勇洪

摘要:由于UEFI框架下沒有提供數據傳輸的模塊,使得測試或者調試開發時需要經常對數據文件進行人工拷貝,導致了實現測試自動化或遠程調試的不便。采用Socket數據傳輸方式設計并實現了UEFI下數據傳輸的工具,通過使用串口線來連接Host端和UEFI端,實現UEFI下的Application和Hostt端協同工作來達到Host端和uEFI端通信的目的,從而使得從Host端編譯出來的文件可以直接傳輸到UEFI端的設備中去,減少人工操作方便實現測試自動化。最后本文通過Intel 945G Express Chioset平臺來驗證工具的正確性。

關鍵詞:UEFI;數據傳輸;Application;串口;Socket

中圖分類號:TP311.56 文獻標識碼:A 文章編號:1006-8228(2020)07-26-04

0引言

數據傳輸,顧名思義,就是要將數據從一個地方傳送到另一個地方的通信過程。目前,UEFI框架下并沒有提供數據傳輸的工具,導致開發人員、測試人員將UEFIBIOS文件編譯出來之后,需要手動拷貝該文件到UEFI主板設備中,大量的人工操作導致了實現自動化測試或者遠程調試的不便?;谶@樣的實用背景,本文通過采用Socket的數據傳輸方式,實現UEFI端的Application協同Host端進行工作,達到Host端和UEFI端之間的通信的功能,從而可以輕松的將文件在兩端互傳,避免了手動操作,為遠程調試和測試自動化提供基礎。

1UEFl Application簡介

UEFI的Application指系統的核心應用和調用程序,如BIOS的設置、一些應用程式以及配置管理等等,它與UEFI庫函數結合在一起,可以提供基本控制臺I/O,基本磁盤I/O,內存管理以及字符串操作的功能。它是不依賴于系統軟硬件的跨平臺擴展Firmware,以.eft文件形式存在,它在執行完成后會返回控制權,不會駐留在系統內存中,因而能夠方便地移植到各個不同的平臺上(例如,IA32、IA64、Intel-64、Apple*,Duet模擬器等等)。UEFI Application的編程模型主要分為兩大類,一類是基于EFI模型的,它的代碼比較小,因為它僅僅需要使用EFI的數據結構;另一類是基于便攜式模型開發的,與前一類相比較,它是一種更容易導入ANSI/POSIX編程模型的程序,并且它擁有常用的c語言的Library和c語言編程接口程序。

UEFI Application的執行流程分為三個部分,首先它必須經過UEFI Loader來進行加載,然后進入到Application的入口函數處,最后通過Exit()退出應用并返回Application的UEFI Component。

2基于UEFl的數據傳輸工具的研發

數據傳輸的方式一般有以下幾種:最簡單交互的socket方式,適合大數據量交互的邱/文件共享服務器方式,數據庫共享數據方式以及Message數據傳輸方式。本文采用socket方式,因為該方式通用性比較強,且易于編程實現,通過傳輸層協議容易加密傳輸的數據,使得安全性更高,同時UEFI下需要傳輸的文件量很小,數據交互量少,也比較適用該方式。

2.1設計架構分析

通過使用串口線纜來連接Host端和UEFI端,Host端使用Windows 10 Enterprise系統,通過標準的c++語言開發程序,UEFI端使用支持UEFI啟動的主板,使用c語言編寫并通過編譯產生一個備數據傳輸功能的UEFI Application的應用程序,此處所使用的c語言在庫函數、框架結構、調用的服務類型等方面需參照Platform Initialization Spec。

Host端主要由以下四個部分組成:基本信息部分、串口控制部分、線程控制部分、文件傳輸部分。

(1)基本信息部分:通過運行ReadSetuplnfo()函數來讀取串口的相關配置信息,主要包括串口的名稱、波特率和串口的流控信息,并將這些信息存入到指定的數據結構中。

(2)串口控制部分:創建一個CSerial類來負責串口的初始化并獲得句柄進行串口的讀寫操作。在該類中封裝了初始化串口和控制串口運行過程中需要使用的一些變量以及讀寫串口時需要的相關函數。

(3)線程控制部分:設計主線程、讀線程和寫線程。主線程主要負責創建讀寫線程,后續將不再進行其他操作,可留作后續開發的拓展使用。在使用串口進行數據的讀寫傳輸時,讀線程負責讀取UEFI端通過串口線纜發送過來的信息,并將這些信息顯示在屏幕上;寫線程則負責將用戶輸入的信息(例如,需要傳輸的文件名)通過串口線纜發送到UEFI端。

(4)文件傳輸部分:包括從Host端發送單個文件到UEFI端和從UEFI端接收單個文件兩部分,這個過程需要UEFI端的Application配合使用。

UEFI端是一個基于UEFI的Application應用程序,參考EDKIIINFSpec、DSCSpec、DECspec提供該程序所需要的模塊文件(.inf)及c文件,平臺描述文件(.dsc)和平臺聲明文件(.dec),其功能是為了配合Host端的文件傳輸部分,其中UEFI端主要實現了從Host端接收單個文件和發送單個文件到Host端這兩個部分的功能。

2.2數據傳輸實現過程分析

對于數據的傳輸,其實現過程主要包括四個部分:Host端發送單個文件,Host端接收單個文件,UEFI端發送單個文件以及UEFI端接收單個文件。以Host端發送單個文件為例,其過程主要包括①讀取用戶輸入的文件名,并將文件打開;②將讀取到的文件名轉換成傳輸至UEFI端的路徑、文件名組合;③計算該文件名的長度以及文件的長度;④調用TestSpeed H to_T()函數來測試Host端向UEFI端傳輸數據的速度;⑤按照上一步獲得的數據來設置傳輸包的長度以及包的傳輸時間間隔;⑥按照包封裝的形式發送包含文件名、文件名長度、文件長度的數據包至UEFI端;⑦按照包封裝的形式發送文件內容至UEFI端;⑧釋放所使用的相關資源,從Host端到UEFI端的數據傳輸到此結束。在該過程中,主函數TransferHostFile()首先調用SafeSendData()函數來發送包含文件名、文件名長度、文件長度的數據包至UEFI端,然后再次調用SafeSendData()函數來發送文件內容至UEFI端。而SafeSendData()函數則會將所得到的所有數據分裝成數據包的形式,然后將數據包進行Md5 CheckSum的計算來檢驗在傳輸過程中數據包的正確性。圖1顯示了Host端傳輸文件至UEFI端的流程。

在UEFI端的Application其實現過程需要將其代碼添加到UEFI的源代碼結構中進行編譯,首先需要建立一個存放該Application源代碼的子目錄和一個與Application源代碼相關的.inf文件,對于Application的源文件,可以放在工作目錄的任何地方,而該文件的存放路徑則需要在所開發模塊的.inf文件中指出。一個模塊的.inf文件主要是為了定義單個項目所需要的所有信息,包括了一些源文件,庫或者庫類,以及一些編譯相關的組件等,用它來產生的二進制文件要么是原始的二進制文件,要么是具有PE32/PE32+/COFF格式的可以在UEFIShell環境下執行的文件。

3數據傳輸工具的測試檢驗

該檢驗過程分別以Windows 10 Enterprise系統和Intel 945G Express Chipset平臺作為實驗檢測的Host端和UEFI端,通過串口連接兩端,同時在UEFI端配備有外圍設備u盤。將Intel 945G Express Chipset平臺啟動到UEFI Shell的模式下,運行處于Host端的程序,在彈出的運行窗口中運行處于UEFI端u盤中的UEFI Application-FDTTargetWithShell.efi,此時便可以進行Host端和UEFI端的相互通信功能,進行單個文件的收發功能。

在Host端執行數據傳輸工具,首先會獲得串口相關信息,然后進)kUEFI端的Shell環境,由此可進入處于UEFI端的外圍設備u盤中,在運行了u盤中的FDTTargetWithShell.eft這個Application之后便可以在Host端和UEFI端進行數據傳輸了。此時狀態如圖3。

數據傳輸工具提供了單個文件的收發功能,可以通過輸入操作數1、2分別進行選擇。圖4給出了選擇單個文件從Host端發送到UEFI端的過程,圖5給出了文件成功傳輸時的狀態。最后通過檢查u盤中的文件來確認文件已經從Host端傳輸到UEFI端,同時對接收到的文件與Host端的發送的文件進行比較,來確認數據在傳輸過程中的完整性。

在選擇輸入操作功能2的情況下,實現了從UEFI端發送單個文件到Host端的功能。圖6給出了選擇單個文件從UEFI端發送到Host端的過程,而圖7則給出了雙端通信過程中文件傳輸成功時的狀態。

4結束語

本文采用Socket數據傳輸的方式設計了UEFI下的數據傳輸工具進行UEFI端和Host端的單個文件的傳輸功能,可以方便開發人員進行遠程調試的工作,也可以方便測試人員使用該工具實現測試自動化。下一步可以嘗試對數據傳輸的圖形化界面的設計與實現,嘗試支持豐富的窗口創建、控件的支持和顯示顏色特效的添加。目前圖形化界面僅僅負責對配置選項進行簡單的控制,當然選用的圖形化界面語言范圍可以再進一步擴展,不僅僅局限于UEFI BIOS系統當前支持的VFR語言。

猜你喜歡
數據傳輸
具有物聯網功能的醫用恒溫反應箱的研制
具有物聯網功能的醫用恒溫反應箱的研制
基于Ad Hoc的微震監測數據傳輸系統設計
網絡視頻監控系統總體架構設計
短波中低速數據傳輸技術
基于ZigBee 的井下探測小助手設計
ATM技術在民航通信領域中的運用
科技資訊(2015年36期)2016-06-15 21:30:32
GPRS DTU的應用經驗淺析
科技視界(2016年11期)2016-05-23 17:44:00
北斗衛星導航定位系統在數字林業的應用
新型高速復合數據傳輸線纜的研究與開發
科學家(2015年10期)2015-12-26 15:35:43
主站蜘蛛池模板: 久久99精品久久久久纯品| 四虎永久在线视频| 亚洲成网777777国产精品| 久久成人国产精品免费软件| 一区二区三区高清视频国产女人| 久久综合丝袜日本网| 成人福利在线免费观看| 久久久久久国产精品mv| 波多野结衣视频网站| 精品免费在线视频| 国产精品视频导航| 天天摸天天操免费播放小视频| 亚洲第七页| 久久精品波多野结衣| 国产一二三区视频| 综合色在线| 亚洲欧洲日产国产无码AV| 亚洲国产看片基地久久1024| 久久中文字幕av不卡一区二区| 欧美国产日韩在线观看| 蜜臀av性久久久久蜜臀aⅴ麻豆| 久久国产亚洲欧美日韩精品| 国产乱人免费视频| A级毛片高清免费视频就| 国产乱人免费视频| 美女一级免费毛片| 亚洲综合二区| 国产亚洲高清视频| 欧美爱爱网| 国产乱视频网站| 欧美激情第一欧美在线| 手机精品福利在线观看| 国产综合日韩另类一区二区| 国产99免费视频| 色婷婷亚洲综合五月| 中文无码精品a∨在线观看| 日本精品一在线观看视频| 99精品福利视频| 亚洲福利一区二区三区| 国产97视频在线观看| 九色免费视频| 三级欧美在线| 中文字幕 91| 91无码网站| 久久综合AV免费观看| 亚洲最黄视频| 一本一道波多野结衣一区二区 | 欧美日韩国产系列在线观看| 国产精品理论片| 国产亚洲欧美日韩在线一区二区三区| 国产成人精品视频一区二区电影 | 欧美中文一区| 精品撒尿视频一区二区三区| 伊人色婷婷| 夜夜爽免费视频| 毛片免费观看视频| 噜噜噜久久| 亚洲一区第一页| 欧美日韩一区二区在线播放| 人妻丰满熟妇αv无码| 小蝌蚪亚洲精品国产| 国产a v无码专区亚洲av| 在线观看免费AV网| 亚洲aⅴ天堂| 亚洲视频影院| 国产成年无码AⅤ片在线| 五月丁香伊人啪啪手机免费观看| 99青青青精品视频在线| 免费一级无码在线网站| 欧美日韩国产高清一区二区三区| 国产成人禁片在线观看| 性欧美在线| 精久久久久无码区中文字幕| 2021国产精品自拍| 国产视频入口| 国产在线观看第二页| 中文字幕亚洲电影| 亚洲va在线∨a天堂va欧美va| 国产不卡一级毛片视频| 国产成人精品男人的天堂下载 | 999国内精品久久免费视频| 国产女人在线视频|