




摘 要:機載軟件在飛行安全、系統性能優化和新功能支持方面起著關鍵作用。為適應不斷變化的飛行環境和操作需求,機載軟件需要定期升級,并及時修復軟件漏洞和消除安全隱患,以降低潛在飛行風險。然而,傳統升級方式存在速度慢、需人工頻繁操作、易出錯且無法自動生成完整升級記錄的問題,難以滿足快速響應和高效維護的需求。基于此,提出了一種基于天脈3 RamDisk組件的機載軟件快速升級方案,在ACoreIDE環境下構建在線升級集成框架,實現拖拽式升級流程,并自動生成完整的升級日志。該方案提高了升級效率和系統可靠性,簡化了操作流程,減少了對人員專業性的依賴,為機載系統的高效維護提供了技術支持。
關鍵詞:天脈3操作系統;RamDisk組件;機載軟件;快速升級;嵌入式系統
中圖分類號:TP319" " 文獻標志碼:A" " 文章編號:1671-0797(2025)07-0035-05
DOI:10.19514/j.cnki.cn32-1628/tm.2025.07.009
0" " 引言
機載嵌入式系統通常負責飛機控制、導航、通信、發動機管理、傳感器數據處理等關鍵功能。機載嵌入式軟件升級是指飛機或其他航行器上運行的嵌入式系統軟件進行更新或迭代的過程。機載嵌入式軟件需定期進行升級,以滿足新型任務要求、優化系統性能、修補安全漏洞,從而適應不斷更新的適航規范要求。
1" " 技術回顧與現狀分析
1.1" " 機載軟件升級方案
文獻[1]采用Zynq7045處理器,依賴主備映像冗余和完整性檢查提高可靠性,該方案主要依賴于有線網絡進行升級,未涉及大規模部署時的自動化批量升級功能,且升級流程仍需人工反復觸發和監控,難以完全滿足大規模機群或大量配置項的升級需求。文獻[2]通過Wi-Fi實現無線升級,減少了人工干預,提高了升級的便捷性,但無線網絡的穩定性和安全性在航空環境中可能存在挑戰,同時未涉及大規模并行升級和集中管理。文獻[3]依托光纖網絡,支持智能化版本管理和數據加載,減少了人工操作,但主要適用于單機或小規模系統,且光纖網絡的適用性受限。
綜合來看,現有方案均圍繞提高升級的可靠性、減少人工操作這一目標展開,但在網絡環境適應性、自動化程度及大規模機群管理方面仍有待優化。
本文提出的方案主要面向有線傳輸場景,旨在實現極小化人工干預的自動化升級流程。針對多分區操作系統的映像結構,即存在大量二進制文件(bin文件)的情況下,本方法通過設計高效的配置文件解析機制、多分區映像管理策略以及日志記錄功能,確保升級過程的自動化、可靠性和可追溯性。
1.2" " ACoreOSMP653操作系統
ACoreOSMP653是專門為新一代的航空電子系統而開發的,支持綜合化航空電子系統的多核嵌入式實時操作系統[4-5]。ACoreOSMP653操作系統是基于分區的高安全、高可靠的操作系統,并提供了符合ARINC653 AVIONICS APPLICATION SOFTWARE STANDARD INTERFACE規范的APEC接口,同時滿足GJB 5357—2005《航空電子應用軟件接口要求》接口標準,為綜合化系統中應用軟件的開發提供分區、進程、調度、通信、健康監控、文件系統等功能,有效降低了分區應用間的相互干擾,確保了應用系統的安全運行。為了發揮ACoreOSMP/ACoreOSMP653軟件的功能并設計出可靠、高效的多核嵌入式系統,ACoreOSMP653提供了配套集成開發環境ACoreIDE,包含目標機管理、調試、系統監視等工具。
對于常見的基于ACoreOSMP653的機載應用軟件[6],其映像結構如表1所示。
1.3" " RamDisk工作原理
RamDisk(也叫RAM磁盤)是一個利用計算機的RAM(隨機存取內存)來模擬硬盤驅動器的虛擬磁盤。換句話說,RamDisk是一種將內存空間劃分為一個虛擬磁盤的技術,這個虛擬磁盤在計算機中表現得像一個傳統硬盤(HDD)或固態硬盤(SSD),但其數據實際上是存儲在計算機的內存中。計算機啟動時,操作系統會分配一部分RAM來作為虛擬硬盤使用。操作系統通過驅動程序將這個內存區域呈現給用戶或應用程序,使其像普通的磁盤一樣操作。因為數據存儲在RAM中,讀寫速度極快,通常遠快于傳統硬盤或固態硬盤。然而,RamDisk也是易失性存儲:當計算機關閉或重啟時,存儲在RamDisk中的數據會丟失,除非通過其他手段將其備份到非易失性存儲中。ACoreOSMP653提供了RamDisk組件,可根據實際需要使能并配置RamDisk存儲大小和文件系統。
綜上所述,在ACoreOSMP653操作系統下,假設機載軟件只包含一個分區,每次升級則需要固化5個文件,若采用常見的串口升級方式,則需進行5次獨立的人工交互,這不僅增加了工作負擔,也可能由于人為操作的不可控性,影響系統的穩定性和可靠性。
2" " 軟件的設計與實現
為了滿足嵌入式機載軟件頻繁升級的需求,本文設計并實現了一種基于天脈3 RamDisk組件的快速升級方案。該方案通過優化升級流程、簡化操作步驟以及確保升級過程的可靠性和高效性,顯著提升了軟件升級的速度和穩定性。
軟件的設計與實現分為PC端和目標機端,模塊劃分如圖1所示,PC端主要為提取配置文件模塊,目標機端主要包括RamDisk配置模塊、解析配置文件模塊、文件校驗與固化模塊、日志記錄模塊等。
提取配置文件模塊旨在從天脈3自動生成的xml配置中提取升級所需要的信息;RamDisk配置模塊實現RamDisk使能和容量配置;解析配置文件模塊主要描述本文所設計的配置文件結構,其中加入了MD5碼校驗,可以在固化階段實現文件校驗;最后本設計實現了日志記錄模塊,升級日志可以幫助故障排查,詳細的升級日志可以幫助開發人員快速定位故障原因,縮短排查時間。通過上述模塊設計,可以在人工極少干預的情況下實現大量機載軟件配置項的快速升級,并記錄升級過程中的各項操作和結果,滿足安全審計和合規性要求,確保系統的可靠性和安全性。
本文以單一模塊的上電運行過程為粒度,簡要介紹系統運行過程及如何設置和操作讓目標機跳轉至在線升級的入口,如圖2所示。
系統上電后,駐留于目標機內部的BOOT軟件首先執行啟動流程,完成基本的硬件初始化及主要驅動的加載與配置。BOOT軟件運行結束后,將依據地/開離散量的狀態進行模式切換。若系統處于“空中態”,則直接運行空中態應用軟件,此時不可進行軟件升級或維護;若系統處于“地面態”,則可選擇進入RAM部署集成項目。本文主要研究在地面態條件下,通過熱部署方式快速升級集成項目。具體實現過程中,操作人員可在ACoreIDE的目標機管理界面中定位到RamDisk設備對應的存儲盤符,并將所有待升級的可執行文件及配置文件拖入該存儲區域,目標機端即可自動執行燒寫流程。此外,升級過程的完整日志可通過串口輸出,同時簡要的升級記錄也會存儲于RamDisk以支持后續追溯。為進一步提高數據管理效率,可結合主機文件系統,實現升級日志的自動化備份。
2.1" " RamDisk配置模塊設計與實現
2.1.1" " RamDisk使能配置
在ACoreOSMP653 RamDisk組件使能的情況下,嵌入式目標機啟動時,操作系統會分配一部分RAM來作為虛擬硬盤使用,在設計和實現階段可根據實際需要使能并配置RamDisk存儲大小和文件系統。
以ACoreOSMP653集成項目為例,在os.cfg配置文件中展開設備管理條目,使能RamDisk。綜合考慮單次最大可能升級的可執行文件大小以及目標機內存容量估算RamDisk容量,并配置RamDisk掛載盤符和文件系統,配置過程示意如表2所示。
通過上述配置,系統將啟用RamDisk,并設定其大小為32 MB,掛載點為/mnt/A,文件系統類型為FAT32。
2.1.2" " RamDisk容量估算
本文中RamDisk容量估算與配置主要取決于以下兩個方面:
1)單次最大升級文件大小:依據系統需求,估算單次升級所需的最大可執行文件大小。例如,如果最大升級文件為16 MB,建議RamDisk容量至少配置為32 MB,以提供充足的空間用于臨時文件和操作系統的緩沖。
2)目標機內存容量:在RamDisk配置時需綜合考慮目標機的可用內存資源,以避免對系統正常運行產生影響。例如,若目標機配備2 GB內存,則RamDisk設置為32 MB既能滿足升級需求,又不會占用過多的內存資源,從而保證系統的整體性能。
2.2" " 解析配置文件模塊設計與實現
在機載嵌入式軟件升級過程中,每次向目標機上傳升級文件時,需同步上傳對應的配置文件。該配置文件包含文件路徑、固化地址等關鍵信息,能指導目標機查找升級文件并執行固化操作。解析配置文件模塊的核心功能是解析該文件,提取關鍵信息,并將其傳遞至固化模塊,以確保升級過程的準確性與自動化。
本節將詳細闡述解析配置文件模塊的設計與實現,包括配置文件結構定義、解析算法設計以及錯誤處理機制。該模塊的引入可提高目標機對升級文件的定位與固化效率,減少人工干預,提高升級的自動化水平與可靠性。
解析配置文件模塊的設計遵循以下原則,以確保升級過程的高效性、靈活性和可靠性:
1)自動化升級流程:通過解析配置文件中的升級文件路徑與固化地址,實現文件定位與固化的自動化,減少人工干預,提高升級效率。
2)靈活性與可擴展性:采用JSON格式作為配置文件存儲結構,便于擴展和修改,支持多文件升級及復雜場景的適配,以滿足不同系統需求。
3)安全性與可靠性:通過MD5校驗機制確保升級文件的完整性和正確性,防止因文件損壞或篡改導致的升級失敗,從而提升系統穩定性。
為提高解析效率和系統兼容性,本文采用JSON格式作為配置文件的存儲結構。JSON格式具有結構清晰、易于解析、可讀性強等優點,適用于配置數據的存儲和管理。此外,JSON格式支持嵌套結構與動態擴展,能夠適應未來多文件升級或復雜配置的需求,為系統的靈活性與可維護性提供保障。
本文給出一個update_v1.json示例,如下所示:
{
\"upgrade_files\": [
{
\"file_path\": \"/mnt/ramdisk/upgrade_v1.0.bin\",
\"burn_address\": \"0x1100000\",
\"md5\": \"d41d8cd98f00b204e9800998ecf8427e\"
}
]
}
2.3" " 文件校驗與固化模塊設計與實現
基于2.2所提到的update_v1.json文件,文件校驗與固化模塊旨在將待升級文件從RamDisk中正式寫入到目標系統的指定位置。為確保系統在升級過程中的穩定性和數據完整性,固化過程需要遵循嚴格的步驟和機制。具體實現如圖3所示。
1)關閉系統調度:在固化升級文件之前,首先需要關閉系統調度,以防在固化過程中發生任務切換或資源競爭,確保固化過程的順利進行。
2)文件固化:自動解析,根據解析后的配置文件,將升級文件從RamDisk復制到目標地址。這一過程需要確保文件的完整性和正確性,防止因傳輸錯誤導致系統文件損壞。
3)計算與統計信息:固化完成后,系統需要計算和統計相關信息,包括文件大小、固化時間、數據完整性校驗結果等。這些信息將用于生成升級日志,便于后續的追溯和分析。
4)恢復系統調度。
2.4" " 日志記錄模塊設計與實現
升級日志是記錄整個升級過程的重要文件,包含了升級的各項細節和統計信息,方便了開發人員和運維人員進行后續的追溯、分析和問題排查。本節從日志格式設計、日志生成流程和日志存儲與管理三個方面進行介紹。
2.4.1" " 日志格式設計
升級日志需要清晰、結構化地記錄升級過程中的各個環節,包括時間戳、文件名、文件路徑、操作類型、文件大小、校驗結果等。常見的日志格式可以采用JSON或CSV格式,方便機器讀取和人工分析。
JSON日志格式示例:
{
\"upgrade_id\": \"20240923-110420\",
\"timestamp\": \"2024-09-23-11:04:20\",
\"operator\": \"XXX\",
\"upgrade_files\": [
{
\"file_path\": \"/usr/local/bin/application_v1.0\",
\"file_size\": 4096,
\"checksum\": \"9e107d9d372bb6826bd81d3542a4
19d6\",
\"status\": \"success\"
},
{
\"file_path\": \"/etc/application/config_v1.0.cfg\",
\"file_size\": 2048,
\"checksum\": \"e4d909c290d0fb1ca068ffaddf22cb
d0\",
\"status\": \"success\"
}
],
\"summary\": {
\"total_files\": 2,
\"total_size\": 4096 + 2048,
\"success_count\": 2,
\"failure_count\": 0,
\"upgrade_duration_seconds\": 120
}
}
2.4.2" " 日志生成流程
在固化升級文件并收集統計信息后,系統將自動生成升級日志。具體流程如下:
1)收集統計信息:包括每個升級文件的路徑、大小、校驗和等。
2)記錄操作時間:記錄每個操作的開始和結束時間,計算升級過程的總時長。
3)記錄操作結果:記錄每個文件固化的狀態(成功或失敗),并記錄詳細的錯誤信息(約定好的錯誤碼)。
2.4.3" " 日志存儲與管理
1)存儲位置:升級日志應存放在RamDisk的指定目錄中,如/mnt/Alogs/,以便后續讀取和管理。
2)日志備份:為了防止日志丟失,升級結束后應將日志文件備份到主機文件系統,確保日志的持久性和可追溯性。該步驟可通過天脈3配置主機文件系統,實現自動化備份。
3" " 驗證與分析
3.1" " 場景驗證
本文所提出的升級方案旨在減少人工干預,實現機載軟件配置項的高效自動化升級。為評估本方案在減少人工操作方面的優勢,本節以某綜合處理機的升級過程為例進行分析。
該綜合處理機包含10個模塊,其中8個模塊均運行包含4個分區的軟件,每個軟件包含8個.bin文件。依據前文所述ACoreOSMP653機載軟件映像結構,可知傳統串口升級方式需執行以下人工操作:
1)文件選擇:每個模塊的可執行文件(8個/模塊)均需進行8次獨立的手動選擇。
2)固化地址輸入:每個文件需手動輸入固化地址,共8次。
3)模塊間重復操作:由于8個模塊需分別升級,該過程共涉及8×8=64次人工交互。
相比之下,采用本文提出的基于天脈3 RamDisk和ACoreIDE的快速升級方案,可顯著減少人工操作,提高升級效率。其優化策略如下:
1)文件批量傳輸:所有待升級的可執行文件可一次性批量拖拽至指定目錄,自動完成傳輸。
2)固化地址自動解析:通過解析升級配置文件,自動獲取固化地址,無須人工輸入,提高了升級準確性。
3)日志自動生成:系統自動生成升級日志,便于后續追溯和維護,提升了可維護性。
在此場景下,人工交互次數由64次降低至8次,降幅87.5%,同時操作流程顯著簡化,降低了人為操作誤差的風險。經多輪實驗驗證,本方案能夠有效提升升級效率,增強自動化程度,為機載軟件的快速部署與維護提供可靠的技術支持。
3.2" " 特殊場景適用性
在操作系統(OS)映像及各分區映像地址均已固定的情況下,每次升級僅涉及單個分區或OS映像。此時,原有的升級流程已相對簡潔,且升級文件及固化地址較為固定。盡管采用本方案仍可保持較高的自動化優勢,但相較于上述綜合處理機示例,其提升效果可能不如預期顯著。然而,該方案仍具有重要價值,其可確保升級日志記錄完整,為后續的維護和追溯提供可靠的數據支持。
4" " 總結與展望
為進一步完善機載軟件的升級與維護能力,未來研究可圍繞以下方向展開:
1)可信執行環境:結合安全加固技術與遠程運維管理,構建可信的軟件升級框架,使升級流程與系統安全策略深度融合,從而提升系統的可靠性與安全防護能力。
2)統一入口的升級管理:針對多種類型的外設及嵌入式設備,建立統一的升級入口與管理機制,提高跨設備升級的一致性與可維護性,增強系統的可擴展性。
綜上所述,本文提出的升級方案通過優化升級流程、減少人工交互,并自動生成詳盡的升級日志,為機載軟件的更新迭代提供了高效、可靠且可追溯的技術支持。在不斷發展的航空電子領域,未來可進一步引入可信執行環境及遠程管理等關鍵技術,以提升機載軟件的可維護性、安全性及升級效率,從而為機載系統提供更廣闊的應用前景。
[參考文獻]
[1] 李萬軍.一種機載嵌入式模塊在線升級方案[J].單片機與嵌入式系統應用,2022,22(11):42-45.
[2] 曾麗君,魏麗.航空機載嵌入式軟件無線升級技術研究[J].航空計算技術,2018,48(6):91-95.
[3] 崔明明,朱劍鋒.機載軟件在線維護系統研究與設計[J].航空電子技術,2017,48(4):27-31.
[4] 周昊,王銘,徐杰.基于天脈操作系統的在線加載軟件設計[J].信息技術與信息化,2023(3):58-61.
[5] 王丹丹,王婷,王碩.一種機載高性能系統管理軟件的設計與實現[J].電腦編程技巧與維護,2024(5):25-27.
[6] 吳姣,戴小氐,張鋯.IMA架構航電系統綜合核心處理機平臺軟件設計[J].航空計算技術,2020,50(3):87-90.
收稿日期:2025-02-19
作者簡介:王柯皓(1997—),男,河南人,助理工程師,研究方向:航空領域嵌入式軟件。