一種基於實時MCU的軟體引導固化方法與流程
2023-05-18 20:13:56 1

本發明屬於飛行器制導控制技術領域,涉及一種基於TMS320F28335晶片實時MCU(微處理器)的可實現固化和引導應用軟體運行的方法。
技術背景
TMS320F28335是TI公司的一款具有強大的控制和信號處理能力的32位浮點型數位訊號處理器,工作主頻最高150MHz,片內具有256K×16Bit的FLASH存儲器、34K×16Bit的SARAM,8K×16Bit的引導ROM,具有精度高、成本低、功耗小,外設集成度高、數據和程序存儲量大等優點,可廣泛應用於控制及通信等領域。目前,武器系統信息化程度越來越高,為了保證作戰系統的可靠、穩定、高效,相應的研發模式也在不斷的向模塊化、組件化、系列化轉變,這就要求各個分部件具有較高的運算處理能力,TMS320F28335因此可以在各制導控制分部件系統上得到廣泛應用。
一般情況下,武器系統各部件產品研製過程中,對開發的DSP嵌入式設備軟體的更新和維護也越來越頻繁,當進行軟體升級時,要擦除晶片內容並重新燒寫新的程序代碼和數據,通常使用TI公司的CCS燒寫插件並通過仿真器JTAG口對片上FLASH進行編程的方法。該傳統更新方式雖簡單易用,但一般只在程序開發和調試階段使用,而在全彈聯調及維護階段時需將分部件從彈體上拆除取下設備、連接 仿真器存在較大困難,過程複雜繁瑣且容易產生隱患,極大阻礙了武器系統的整體發展。本發明的可用於固化和引導應用軟體在TMS320F28335MCU上運行。
技術實現要素:
本發明的目的:提供了一種有效可行的軟體引導固化方法,固化和引導應用軟體在TMS320F28335MCU上運行,解決應用軟體在線升級需拆卸設備的難點,實現通過外部通訊接口完成應用軟體上傳固化,並在微處理器通電後引導運行固化的應用軟體。
本發明實現方法:
一種基於實時MCU的軟體引導固化方法,包括如下步驟:
步驟1、進行引導固化軟體和應用軟體在FLASH中的地址規劃分配;
步驟2、設定MCU啟動時運行引導固化軟體;
步驟3、引導固化軟體判斷是否需要進行FLASH燒寫來更新應用軟體,如果不需要,進行步驟8,如果需要,進行步驟4;
步驟4、判斷與PC機串口是否成功握手,如果不成功,進行步驟步驟8,如果成功,進行步驟5;
步驟5、將從PC機串口發來的新的應用程式代碼接收至片上RAM;
步驟6、將新的應用程式代碼燒寫至FLASH,進行更新;
步驟7、燒寫完畢,結束本方法;
步驟8、啟動應用軟體,結束本方法。
在步驟6中,調用FLASH28x_API庫進行FLASH燒寫。
在步驟1中,分配FLASH中的Sector A,32K×16Bit空間用於存儲引導固化軟體可執行文件;分配FLASH中空間Sector C、Sector D、Sector E用於應用軟體可執行文件;分配FLASH中剩餘空間作為備用空間存儲數據。
本發明的優點:滿足使用TMS320F28335為MCU的系統在線升級應用軟體和引導應用軟體的需求,軟體升級時不需對系統進行拆卸,提高了軟體升級能力和設備的可靠性及簡化維護流程。
附圖說明
附圖1為軟體FLASH扇區地址空間分配;
附圖2為跳轉到FLASH存儲器引導模式流程圖;
附圖3為軟體流程圖。
具體實施方式
下面結合附圖和具體實例對本發明做進一步的說明:
本發明屬於飛行器制導控制技術領域,涉及一種基於TMS320F28335晶片實時MCU(微處理器)的可實現固化和引導應用軟體運行的引導固化方法。
目的是通過本引導固化軟體,實現固化和引導應用軟體在TMS320F28335實時MCU系統上。本發明利用TMS320F28335MCU 內部存儲器的分頁分配管理技術,設計一種引導固化方法,實現引導固化軟體和應用軟體的物理空間分配和使用,完成應用軟體的固化升級及引導運行。
基於TMS320F28335MCU晶片內部256K×16Bit的FLASH存儲器、8K×16Bit的引導ROM,將其分為不同的頁進行操作,通過對這些內部存儲器的分頁分配管理,實現引導固化軟體和應用軟體的物理空間分配和使用。
TMS320F28335晶片採用從FLASH啟動方式運行軟體。FLASH啟動的復位入口地址是固定的,通過在此地址寫入轉移指令,跳轉到引導固化軟體的程序入口地址,實現引導固化軟體的引導運行。
在固化軟體運行後,利用重定位技術,將應用軟體的程序入口地址固定在內存分配的地址,引導固化軟體運行引導應用軟體功能時,通過轉移指令跳轉到應用軟體的程序入口地址,從而實現應用軟體的引導運行。即首先啟動固化軟體,然後引導應用軟體運行。
在應用軟體不需要運行時,既可以引導固化軟體的固化程序代碼功能,是通過外部通訊口將從上位機接收到的程序代碼數據燒寫在TMS320F28335晶片的內部FLASH對應空間上,覆蓋原有的應用軟體。
引導固化軟體和應用軟體分別固化在各自分配的不同FLASH空間。
具體實現過程中,本發明首先進行引導固化軟體和應用軟體在FLASH中的地址規劃分配,TMS320F28335MCU晶片內部256K×16Bit的FLASH存儲器扇區地址分配如附圖1所示,其中分配FLASH 中的Sector A(32K×16Bit)空間用於存儲引導固化軟體可執行文件;分配FLASH中空間Sector C、Sector D、Sector E用於應用軟體可執行文件;分配FLASH中剩餘空間作為備用空間存儲參數等其它數據等。根據存儲器的規劃分配,TMS320F28335系統每次上電復位後,首先採用跳轉到FLASH存儲器引導模式運行引導固化軟體,如附圖2所示。然後引導固化軟體程序判斷是否需要重新燒寫FLASH,如果需要,則將上位機通過外部串口發送的新的目標代碼燒寫自TMS320F28335應用軟體在FLASH中的指定扇區,對與應用軟體進行更新,如果不需要,則繼續執行原有用戶目標代碼,跳轉到應用軟體的程序入口地址最終引導應用軟體運行,如圖3所示。
本發明的關鍵點在於把收到的應用軟體程序,用已固化的引導固化軟體燒寫至FLASH。
已固化的引導固化軟體必須存儲於FLASH內指定扇區,這個扇區不允許擦除和更改,完全獨立於用戶應用程式的存儲區域。FLASH內已固化的引導固化軟體和用戶應用程式的區域劃分可以通過.cmd文件解決。
該引導固化方法的應用,解決了TMS320F28335系統在線升級應用軟體和引導應用軟體需對系統進行拆卸的難點,是實現軟體升級的重要環節。附圖2是該技術的軟體流程圖,標號1、2、3是該技術的3個關鍵點。關鍵點1:使用TMS320F28335晶片默認引導方式「Jump to Flash」,即上電復位後,直接運行引導固化軟體,用引導固化軟體判斷是否需要燒寫FLASH;關鍵點2:外部串口發送的應用程式信 息已被引導固化軟體解析,解析後的應用軟體信息包括以下信息:燒入FLASH的首地址,程序長度和對應16進位數據;關鍵點3:由於TMS320F28335片上FLASH不支持在其中一個扇區運行程序去擦除或燒寫其它扇區這種做法,所以,完成接收數據和燒寫FLASH工作的這部分程序必須搬移至片內RAM或片外RAM上運行。
本發明利用基於TMS320F28335晶片實時MCU(微處理器)的引導固化方法,在軟體運行期間進行程序入口地址重定位,實現引導應用軟體的運行;通過對內部FLASH存儲器的分頁分配管理,實現引導固化軟體和應用軟體的物理空間分配和使用,解決了軟體在運行期間無法對自身運行時域進行擦寫的難點,可滿足彈上軟體不拆卸升級的需求。
本發明實現簡單,滿足使用TMS320F28335為MCU的系統在線升級應用軟體和引導應用軟體的需求,軟體升級時不需對系統進行拆卸,提高了軟體升級能力和設備的可靠性及簡化維護流程。
上述說明並不是對本發明的限定,在不脫離本發明的主旨的範圍內,可以進行各種變形和變更,例如,最優化的方法可以在現有技術的各種方法中選擇。