System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及汽車控制器,尤其是涉及一種bootloader中基于雙重校驗及自校驗的應用軟件有效性校驗方法。
技術介紹
1、汽車控制器中的bootloader軟件是維護和升級應用軟件的核心組成部分,其主要功能是引導加載應用軟件,以及通過基于uds診斷服務的bootloader刷寫流程來下載和更新應用軟件,最終實現車用控制器的應用軟件升級和維護。
2、現有的汽車控制器bootloader軟件存在以下幾個問題:
3、1、bootloader刷寫流程的安全性局限:在現有的bootloader刷寫流程中,一般是通過完整性校驗和兼容性校驗例程來校驗所下載的應用軟件的有效性。然而,上位機根據刷寫文件內容計算出來的完整性校驗碼,只能檢測出數據傳輸過程中出現的錯誤,當上位機對刷寫文件的內容出現解析錯誤時,bootloader流程中下載的數據就不是原始刷寫文件的數據,由上位機計算出來的這個完整性校驗碼也無法檢測出應用軟件完整性錯誤,此時bootloader軟件會誤判為應用軟件有效,在執行跳轉至應用軟件后,會出現控制器死機的問題。
4、2、控制器生產線的生產效率問題:現有的bootloader軟件,只有經過一次完整的bootloader刷寫流程,才會將應用軟件有效性標志位寫入到非易失存儲器中,然后才允許跳轉應用軟件。這就要求生產線在通過jtag口將bootloader軟件燒寫到控制器芯片中后,還需要通過bootloader流程將應用軟件刷寫到控制器芯片中,一次bootloader刷寫流程需要1到3分鐘,嚴重影響控
5、綜上所述,現有的bootloader軟件在bootloader軟件刷寫流程、控制器生產效率、軟件開發效率等方面還存在優化空間。
技術實現思路
1、本專利技術的目的是在于提供一種bootloader中基于雙重校驗及自校驗的應用軟件有效性校驗方法,提高了bootloader軟件刷寫的安全性,并且此方法允許生產線將bootloader軟件與應用軟件一次性燒寫到控制器芯片中,避免了二次刷寫步驟,提高了生產效率。同時,使用編譯腳本的方式自動生成指定格式的可刷寫文件,提高了版本可追溯性與軟件開發效率。
2、為實現上述目的,本專利技術提供了一種bootloader中基于雙重校驗及自校驗的應用軟件有效性校驗方法,包括bootloader初始化時的自校驗機制、bootloader刷寫流程中的雙重校驗機制、占用控制器芯片code?flash固定地址空間的應用軟件校驗信息以及應用軟件編譯完成后用于生成校驗信息和可刷寫文件的腳本。
3、bootloader軟件、應用軟件與應用軟件的校驗信息存儲于控制器芯片的codeflash中;應用軟件的有效性標志位存儲于控制器芯片的內部或外部非易失存儲器中,使用指定值表示應用軟件有效,該值在bootloader軟件代碼中的宏定義為flag_app_valid;使用另一個指定值表示應用軟件無效,該值在代碼中的宏定義為flag_app_invalid;
4、當bootloader軟件運行時,只有從非易失存儲器中讀取到應用軟件有效性標志位值等于flag_app_valid后,才允許從bootloader軟件跳轉至應用軟件;
5、bootloader軟件只能通過自校驗或者雙重校驗方式來校驗應用軟件的完整性和兼容性,當確認應用軟件的完整性和兼容性均有效后,bootloader向非易失存儲器中寫入應用軟件的有效性標志位,寫入有效性標志位值等于flag_app_valid。
6、優選的,bootloader對應用軟件完整性及兼容性的校驗方法的具體技術方案如下:
7、在控制器芯片的code?flash地址空間中,劃出一塊固定地址區域,用于存儲控制器應用軟件有效性及兼容性的校驗信息,包括應用軟件起始地址、應用軟件結束地址、應用軟件長度、應用軟件兼容性校驗碼以及應用軟件完整性校驗碼。該校驗信息是在應用軟件編譯完成后,根據編譯生成的可刷寫文件內容計算得出的,并且在計算完成后該校驗信息會被填充到應用軟件可刷寫文件的指定地址中。在控制器生產線上燒寫軟件時,或者在執行bootloader流程刷寫應用軟件時,該校驗信息應當作為應用軟件可刷寫文件的一部分,一起被下載到控制器芯片的code?flash指定地址中。校驗信息的地址空間不得與應用軟件代碼數據的地址空間重疊。
8、優選的,應用軟件的完整性校驗碼是根據編譯生成的可刷寫文件中的數據計算出來的完整性校驗碼,具體的校驗算法應當由軟件開發者根據自身需求以及客戶的需求而定,可選用crc32校驗碼或者md5哈希算法等。
9、優選的,應用軟件的兼容性校驗碼是由軟件開發者所指定的在控制器芯片的codeflash指定地址上存儲的軟件兼容性標識符。該兼容性校驗碼具體值應當由軟件開發者自行指定,其值可以包含軟件的項目信息,例如產品名稱、項目名稱、零件號、供應商代碼等。
10、優選的,在滿足指定條件時,bootloader軟件可以利用所述的應用軟件校驗信息執行雙重校驗或自校驗,從而校驗控制器code?flash中當前的應用軟件的完整性和兼容性。當成功校驗應用軟件的完整性和兼容性后,bootloader軟件應當向控制器的非易失存儲器中寫入應用軟件的有效性標志位。關于所述的應用軟件有效性標志位,應當使用指定字符表示應用軟件有效,該值在bootloader軟件代碼中的宏定義為flag_app_valid;使用另一個指定字符表示應用軟件無效,該值在bootloader軟件代碼中的宏定義為flag_app_invalid。其值的具體定義,可由軟件開發者自行決定。
11、優選的,當控制器的非易失存儲器中未存儲應用軟件有效標志位時,或者非易失存儲器存儲了應用軟件標志位但標志位的值不等于flag_app_valid時,bootloader軟件會在初始化時執行自校驗。所述的bootloader軟件的自校驗機制,包括以下步驟:
12、s1、讀取應用軟件有效性標志位:
13、在初始化階段,bootloader軟件嘗試從控制器的非易失存儲器中讀取應用軟件有效性標志位。若未能成功從非易失存儲器中讀取到有效性標志位,執行步驟s2;若成功從非易失存儲器中讀取到有效性標志位,但是其值不等于flag_app_valid,執行步驟s2;若成功從非易失存儲器中讀取到有效性標志位,并且其值等于flag_app_valid,執行步驟s8。
14、s2、獲取應用軟件校驗信息:
15、bootloader軟件從指定地址獲取應用軟件的校驗信息,包括應用軟件的起始地址、結束地址、長度、完整性校驗碼、兼容性校驗碼。接著,執行步驟s3。
16、s3、執行兼容性校驗:
17、對比應用軟件的兼容性校驗碼的值是否等于指定的兼容性標識符。若兼容性校驗碼的值等于指定的兼容性標識符,執行步驟s4;否則,執行步驟s10。本文檔來自技高網...
【技術保護點】
1.一種Bootloader中基于雙重校驗及自校驗的應用軟件有效性校驗方法,其特征在于,Bootloader軟件、應用軟件與應用軟件的校驗信息存儲于控制器芯片的Code?Flash中;應用軟件的有效性標志位存儲于控制器芯片的內部或外部非易失存儲器中;使用一個指定值表示應用軟件有效,該值在Bootloader軟件代碼中的宏定義為FLAG_APP_VALID;使用另一個指定值表示應用軟件無效,該值在Bootloader軟件代碼中的宏定義為FLAG_APP_INVALID;
2.根據權利要求1所述的一種Bootloader中基于雙重校驗及自校驗的應用軟件有效性校驗方法,其特征在于,在Bootloader軟件初始化后,首先從非易失存儲器中讀取應用軟件的有效性標志位,當成功讀取到應用軟件的有效性標志位,且有效性標志位值等于FLAG_APP_VALID時,Bootloader軟件不執行自校驗步驟;
3.根據權利要求2所述的一種Bootloader中基于雙重校驗及自校驗的應用軟件有效性校驗方法,其特征在于,Bootloader軟件雙重校驗方式包括第一重校驗和第二重校驗;
4.根據權利要求3所述的一種Bootloader中基于雙重校驗及自校驗的應用軟件有效性校驗方法,其特征在于,在控制器芯片的Code?Flash指定地址劃出一塊空間,使用固定的格式存儲應用軟件完整性和兼容性的校驗信息,校驗信息中應當包含應用軟件的起始地址、結束地址、長度、完整性校驗碼和兼容性校驗碼;這些校驗信息在Code?Flash中的存儲格式應當由軟件開發者自行決定,校驗信息的長度和存儲格式共同決定該地址空間的大小;
5.根據權利要求4所述的一種Bootloader中基于雙重校驗及自校驗的應用軟件有效性校驗方法,其特征在于,完整性校驗碼是根據編譯生成的可刷寫文件中的數據計算出來的。
6.根據權利要求5所述的一種Bootloader中基于雙重校驗及自校驗的應用軟件有效性校驗方法,其特征在于,兼容性校驗碼是由軟件開發者所指定的在控制器芯片的CodeFlash指定地址上存儲的軟件兼容性標識符。
7.根據權利要求6所述的一種Bootloader中基于雙重校驗及自校驗的應用軟件有效性校驗方法,其特征在于,在執行自校驗和第二重校驗時,均按照以下步驟來執行校驗:
8.根據權利要求7所述的一種Bootloader中基于雙重校驗及自校驗的應用軟件有效性校驗方法,其特征在于,腳本集成到編譯腳本中,當應用軟件工程編譯成功后,自動執行此生成校驗信息的腳本;
9.根據權利要求8所述的一種Bootloader中基于雙重校驗及自校驗的應用軟件有效性校驗方法,其特征在于,Customer文件包含應用軟件數據和應用軟件的校驗信息,當執行Bootloader刷寫流程時,使用Customer文件來刷寫應用軟件;
...【技術特征摘要】
1.一種bootloader中基于雙重校驗及自校驗的應用軟件有效性校驗方法,其特征在于,bootloader軟件、應用軟件與應用軟件的校驗信息存儲于控制器芯片的code?flash中;應用軟件的有效性標志位存儲于控制器芯片的內部或外部非易失存儲器中;使用一個指定值表示應用軟件有效,該值在bootloader軟件代碼中的宏定義為flag_app_valid;使用另一個指定值表示應用軟件無效,該值在bootloader軟件代碼中的宏定義為flag_app_invalid;
2.根據權利要求1所述的一種bootloader中基于雙重校驗及自校驗的應用軟件有效性校驗方法,其特征在于,在bootloader軟件初始化后,首先從非易失存儲器中讀取應用軟件的有效性標志位,當成功讀取到應用軟件的有效性標志位,且有效性標志位值等于flag_app_valid時,bootloader軟件不執行自校驗步驟;
3.根據權利要求2所述的一種bootloader中基于雙重校驗及自校驗的應用軟件有效性校驗方法,其特征在于,bootloader軟件雙重校驗方式包括第一重校驗和第二重校驗;
4.根據權利要求3所述的一種bootloader中基于雙重校驗及自校驗的應用軟件有效性校驗方法,其特征在于,在控制器芯片的code?flash指定地址劃出一塊空間,使用固定的格式存儲應用軟件完整性和兼容性的校驗信息,校驗信息...
【專利技術屬性】
技術研發人員:董作民,劉兆勇,王宇,薛凱,佀彤,鄭煜,閆文庭,
申請(專利權)人:格陸博科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。