專利名稱:使用清單來記錄有效軟件和校準的存在的制作方法
技術(shù)領(lǐng)域:
本發(fā)明大體涉及一種用于在引導加載器將文件閃存到的控制器上的內(nèi)存中之后在允許操作軟件在控制器中執(zhí)行之前確定操作軟件和/或校準文件存在且有效的系統(tǒng)和方法,并且更具體地,涉及一種用于在引導加載器將文件閃存到的車輛電子控制單元(ECU)的內(nèi)存中之后在允許操作軟件在ECU中執(zhí)行之前確定操作軟件和/或校準文件存在且有效的系統(tǒng)和方法,其中該方法包括:在用于操作軟件和校準文件兩者的內(nèi)存段的開頭創(chuàng)建編程清單,從而識別在軟件和校準內(nèi)存段中的所有可編程部分是有效的。
背景技術(shù):
大多數(shù)現(xiàn)代車輛包括:電子控制單元(ECU);或控制諸如動力系、氣候控制系統(tǒng)、信息娛樂系統(tǒng)、車身系統(tǒng)、底盤系統(tǒng)等車輛系統(tǒng)的操作的控制器。這樣的控制器需要為特定目的設(shè)計的軟件以便執(zhí)行控制功能。隨著這些控制器的數(shù)量和復雜性的增加,以及由惡意軟件的開發(fā)者所構(gòu)成的威脅的增加,認證被加載在機動車控制器上的二進制文件的來源和內(nèi)容比以往更重要。在車輛控制器中使用未經(jīng)適當驗證的或者更糟地惡意設(shè)計的軟件的后果包括:車輛或其系統(tǒng)的非預期行為;車輛上的防盜特征的喪失;對諸如里程計的部件的可能的竄改;以及其它車輛特征和功能的喪失。一種已知的數(shù)字編碼技術(shù)被稱為非對稱密鑰密碼術(shù),其使用數(shù)字簽名以便認證被編程進控制器中的文件。如本領(lǐng)域的技術(shù)人員將容易理解的,非對稱密鑰密碼術(shù)使用被稱為私人密鑰和公共密鑰的一對算術(shù)相關(guān)的密鑰來對消息加密和解密。為了創(chuàng)建數(shù)字簽名,簽名人使用他的僅為他自己所知的私人密鑰來對消息加密。數(shù)字簽名可稍后由另一方使用與簽名人的私人密鑰成對的公共密鑰來解密。閃存(flashing)是用于將軟件、校準文件和其它應(yīng)用上傳到車輛E⑶的內(nèi)存或其它可編程裝置中的熟知的過程。引導加載器是在ECU的內(nèi)存上加載的嵌入式軟件程序,其在ECU和對軟件進行閃存的編程裝置之間提供接口。引導加載器將操作軟件和校準文件閃存到ECU內(nèi)存中,其中操作軟件提供促使各種車輛功能彼此結(jié)合操作的軟件,并且校準文件是各種車輛構(gòu)造和調(diào)諧參數(shù),諸如特定車輛系統(tǒng)的二進制開關(guān)、閾值等。在允許上傳到ECU或ECU的重新閃存之前,引導加載器通常利用非對稱密鑰加密并且存儲必須被用來對由編程裝置傳遞的數(shù)字簽名進行解碼的公共密鑰來防止惡意軟件或校準文件被上傳到ECU中。在E⑶通電和/或復位時,引導加載器可以通過校驗在軟件和/或校準文件內(nèi)存塊內(nèi)被稱為“存在模式”的特定數(shù)字模式的發(fā)生來確定操作軟件和/或校準文件存在且有效。然而,利用該閃存驗證過程存在幾個缺點。例如,引導加載器必須“知道”存在模式位于何處,即使所述模式可以固定內(nèi)存增量移動。此外,軟件和校準再分區(qū)可使得引導加載器與存儲在內(nèi)存中的軟件和校準文件不兼容。另外,因為所述存在模式被包括在軟件和校準文件中,所以所述模式在執(zhí)行完整性檢查之前存在。因此,在當存在模式被寫入時和當完整性檢查被執(zhí)行時之間存在機會窗,其中黑客可能將惡意軟件/校準寫入到ECU中并且諸如通過拔去電池停止編程操作。這將允許惡意軟件/校準得到執(zhí)行。—種已知的全球引導加載器規(guī)范協(xié)議允許引導加載器在完整性檢查在閃存完成之后通過之后寫入存在模式。然而,仍然存在如下問題:由于存在模式在上一個軟件或校準文件中,所以不知道什么文件在其它的在先的軟件或校準文件中。例如,個人可能擦除校準內(nèi)存段,在所有內(nèi)存段中的惡意文件中閃存(flash)并且寫入有效的存在模式。換句話說,用于在閃存過程期間閃存軟件和校準文件的已知的技術(shù)遵循如下程序:其中多個文件將被閃存,然后引導加載器將通過確保上一個文件被正確地閃存來驗證已閃存的文件的完整性。這呈現(xiàn)安全性問題,因為黑客會適當?shù)亻W存上一個文件,引導加載器在該上一個文件已經(jīng)被適當?shù)亻W存之前使用該上一個文件來驗證所有文件,其中黑客可能已經(jīng)在上一個文件之前惡意地閃存了不合適的軟件或校準文件。在該場景下,提供有效的上一個軟件或校準文件但是寫入惡意的前一個軟件或校準文件的黑客,可以促使引導加載器退出引導加載器以運行操作軟件,因為引導加載器將相信所有的文件已經(jīng)被正確地閃存。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的教義,公開了一種用于在引導加載器將文件閃存到在車輛ECU上的內(nèi)存之后在允許操作軟件執(zhí)行之前驗證操作軟件和校準文件存在且有效的系統(tǒng)和方法。ECU內(nèi)存限定用于操作軟件和校準文件中的每一個的內(nèi)存段。軟件清單設(shè)置在在ECU內(nèi)存中的操作軟件段之前的內(nèi)存槽中。類似地,校準清單設(shè)置在在ECU內(nèi)存中的校準段之前的內(nèi)存槽中。在軟件已經(jīng)被閃存到ECU內(nèi)存中之后,將軟件標記設(shè)置在軟件清單內(nèi)存槽中,并且每當校準文件被閃存時,將用于特定校準文件的校準標記設(shè)置在校準清單中。引導加載器檢查以看在閃存之后所有的標記是否已經(jīng)被適當?shù)卦O(shè)置以確定在引導加載器允許操作軟件執(zhí)行之前操作軟件和校準文件已經(jīng)被適當?shù)亻W存。本發(fā)明還提供如下方案:
1.一種用于在允許操作軟件在控制器中執(zhí)行之前驗證所述操作軟件和校準文件已經(jīng)被適當?shù)亻W存到所述控制器中的方法,所述方法包括:
在控制器內(nèi)存中限定內(nèi)存段以便存儲所述操作軟件和一個或多個校準文件;
為所述內(nèi)存段中的操作軟件保留軟件內(nèi)存區(qū)并且為所述一個或多個校準文件保留一個或多個校準文件內(nèi)存區(qū);
將所述操作軟件閃存到所述軟件內(nèi)存區(qū)中;
將軟件標記設(shè)置在所述軟件內(nèi)存區(qū)中的軟件清單內(nèi)存槽中,從而指示所述操作軟件已經(jīng)被適當?shù)亻W存和驗證;
將所述一個或多個校準文件閃存到所述一個或多個校準文件內(nèi)存區(qū)中;
將用于每個獨立的校準文件的校準標記設(shè)置在所述一個或多個校準文件內(nèi)存區(qū)中的至少一個校準文件清單內(nèi)存槽中,從而指示特定校準文件已經(jīng)被適當?shù)亻W存和驗證;以及 在允許所述操作軟件由所述控制器執(zhí)行之前,驗證所有的操作軟件和校準文件標記已經(jīng)被適當?shù)卦O(shè)置。2.根據(jù)方案I所述的方法,其特征在于,在所述軟件內(nèi)存區(qū)中所述軟件清單在所述操作軟件的前面。3.根據(jù)方案I所述的方法,其特征在于,在所述校準文件內(nèi)存區(qū)中所述至少一個校準文件清單在所述一個或多個校準文件的前面。4.根據(jù)方案I所述的方法,其特征在于,為所述一個或多個校準文件保留一個或多個校準文件內(nèi)存區(qū)包括為多個校準文件保留多個校準文件內(nèi)存區(qū),其中單個校準文件設(shè)置在每個校準文件內(nèi)存區(qū)中,并且其中將所述一個或多個校準文件閃存到所述一個或多個校準文件內(nèi)存區(qū)中包括將獨立的校準文件閃存到所述多個校準文件內(nèi)存區(qū)中的每一個中。5.根據(jù)方案4所述的方法,其特征在于,所述多個校準文件內(nèi)存區(qū)是彼此相連的。6.根據(jù)方案5所述的方法,其特征在于,為每個獨立的校準文件設(shè)置校準標記包括:將校準標記設(shè)置在單個校準文件清單內(nèi)存槽中,其存儲用于所有的校準文件的所有的校準標記。7.根據(jù)方案4所述的方法,其特征在于,為每個獨立的校準文件設(shè)置所述校準標記包括:為每個校準文件提供包括單個校準標記的獨立的校準文件內(nèi)存槽。8.根據(jù)方案7所述的方法,其特征在于,所述多個校準文件內(nèi)存區(qū)不是彼此相連的。9.根據(jù)方案I所述的方法,其特征在于,所述控制器是在車輛上的電子控制單元(ECU)。10.一種用于在允許一個或多個軟件文件在車輛上的電子控制單元(ECT)中被執(zhí)行之前驗證所述一個或多個軟件文件已經(jīng)被適當?shù)亻W存到所述ECU的內(nèi)存中的方法,所述方法包括:
在所述ECU的內(nèi)存中限定至少一個內(nèi)存段以便存儲至少一個軟件文件;
為所述內(nèi)存段中的所述至少一個軟件文件保留內(nèi)存區(qū);
將所述至少一個軟件文件閃存到所述內(nèi)存區(qū)中;
將至少一個軟件標記設(shè)置在所述軟件內(nèi)存區(qū)中的軟件清單內(nèi)存槽中,從而指示所述至少一個軟件文件已經(jīng)被適當?shù)亻W存;以及
在允許所述軟件文件由所述控制器執(zhí)行之前,驗證所述軟件標記已經(jīng)被適當?shù)卦O(shè)置。11.根據(jù)方案10所述的方法,其特征在于,限定至少一個內(nèi)存段包括限定用于存儲操作軟件的內(nèi)存段,并且其中為所述至少一個軟件文件保留內(nèi)存段包括為所述操作軟件保留內(nèi)存段,并且其中將所述至少一個軟件文件閃存到所述內(nèi)存段中包括將所述操作軟件閃存到所述內(nèi)存段中,并且其中將所述至少一個軟件標記設(shè)置在軟件清單內(nèi)存槽中包括將所述操作軟件標記設(shè)置在在所述內(nèi)存段的緊前面的操作軟件清單槽中。12.根據(jù)方案10所述的方法,其特征在于,限定至少一個內(nèi)存段包括限定用于存儲多個校準文件的內(nèi)存段,并且其中為所述至少一個軟件文件保留內(nèi)存段包括為所述校準文件中的每一個保留來自多個內(nèi)存段的獨立的內(nèi)存段,并且其中將所述至少一個軟件文件閃存到所述內(nèi)存段中包括將所述多個校準文件閃存到所述內(nèi)存段中,并且其中將所述至少一個軟件標記設(shè)置在軟件清單內(nèi)存槽中包括:將對于每個校準文件的獨立的校準標記設(shè)置在一個或多個校準標記清單槽中。13.根據(jù)方案12所述的方法,其特征在于,所述多個校準文件內(nèi)存區(qū)是彼此相連的。14.根據(jù)方案13所述的方法,其特征在于,設(shè)置用于每個獨立的校準文件的校準標記包括:將校準標記設(shè)置在存儲用于所有的校準文件的所有的校準標記的單個校準文件清單內(nèi)存槽中。15.根據(jù)方案12所述的方法,其特征在于,設(shè)置用于每個獨立的校準文件的所述校準標記包括:為每個校準文件提供包括單個校準標記的獨立的校準文件內(nèi)存槽。16.根據(jù)方案15所述的方法,其特征在于,所述多個校準文件內(nèi)存區(qū)不是彼此相連的。17.根據(jù)方案10所述的方法,其特征在于,所述內(nèi)存段存儲多個軟件文件,其中每個軟件文件包括獨立的軟件文件ID,并且其中閃存所述軟件文件包括基于所述ID以預定的序列將所述軟件文件閃存到所述內(nèi)存段中。18.一種用于在允許一個或多個軟件文件在控制器中被執(zhí)行之前驗證所述一個或多個軟件文件已經(jīng)被適當?shù)亻W存到所述控制器的內(nèi)存中的系統(tǒng),所述系統(tǒng)包括:
用于在所述控制器的內(nèi)存中限定至少一個內(nèi)存段以便存儲至少一個軟件文件的裝
置;
用于為所述內(nèi)存段中的所述至少一個軟件文件保留內(nèi)存段的裝置;
用于將所述至少一個軟件文件閃存到所述內(nèi)存段中的裝置;
用于將至少一個軟件標記設(shè)置在軟件內(nèi)存區(qū)中的軟件清單槽中指示所述至少一個軟件文件已經(jīng)被適當?shù)亻W存的裝置;以及
用于在允許所述軟件文件由所述控制器執(zhí)行之前驗證所述軟件標記已經(jīng)被適當?shù)卦O(shè)
置的裝置。19.根據(jù)方案18所述的系統(tǒng),其特征在于,用于限定至少一個內(nèi)存段的所述裝置限定用于存儲操作軟件的內(nèi)存段,并且其中用于為所述至少一個軟件文件保留內(nèi)存段的所述裝置為所述操作軟件保留內(nèi)存段,并且其中用于將所述至少一個軟件文件閃存到所述內(nèi)存段中的所述裝置將所述操作軟件閃存到所述內(nèi)存段中,并且其中用于將所述至少一個軟件標記設(shè)置在軟件清單內(nèi)存槽中的裝置將操作軟件標記設(shè)置在在所述內(nèi)存段的緊前面的操作軟件清單槽中。20.根據(jù)方案18所述的系統(tǒng),其特征在于,用于限定至少一個內(nèi)存段的裝置限定用于存儲多個校準文件的內(nèi)存段,并且其中用于為所述至少一個軟件文件保留內(nèi)存段的裝置為所述校準文件中的每一個保留來自多個內(nèi)存段的獨立的內(nèi)存段,并且其中用于將所述至少一個軟件文件閃存到所述內(nèi)存段中的裝置將所述多個校準文件閃存到所述內(nèi)存段中,并且其中用于將至少一個軟件標記設(shè)置在軟件清單內(nèi)存槽中的裝置將對于每一個校準文件的獨立的校準標記設(shè)置在一個或多個校準標記清單槽中。本發(fā)明的另外的特征將從結(jié)合附圖所作出的下列描述和所附權(quán)利要求變得明顯。
圖1是示出了數(shù)字簽名驗證過程的操作的系統(tǒng)的框 圖2是示出用于識別操作軟件和校準部分在ECU內(nèi)存中是否存在并有效以允許引導加載器執(zhí)行操作軟件的過程的流程 圖3是示出了包括識別軟件和校準文件存在并有效的標記的編程清單的ECU中的內(nèi)存的表征;以及
圖4是示出了包括識別軟件和校準文件存在并有效的標記的編程清單的ECU中的內(nèi)存的另一表征。
具體實施例方式對涉及用于在引導加載器已經(jīng)將操作軟件校準文件閃存到車輛ECU中之后在允許操作軟件執(zhí)行之前確定操作軟件和/或校準文件存在且有效的系統(tǒng)和方法的本發(fā)明實施例的下列討論,本質(zhì)上僅僅是示例性的,并且決不旨在限制本發(fā)明或其應(yīng)用或使用。例如,此處的討論涉及驗證軟件和校準文件已被適當?shù)亻W存到車輛E⑶。然而,如本領(lǐng)域的技術(shù)人員將了解的,該系統(tǒng)和方法可以具有針對將軟件和/或校準文件閃存到其它類型的控制器中的應(yīng)用。圖1是用于使用非對稱密鑰數(shù)字簽名以便認證被編程到控制器中的文件的已知方法的框圖10。如本領(lǐng)域的技術(shù)人員將理解的,非對稱密鑰密碼使用一對被稱為私人密鑰和公共密鑰的算術(shù)相關(guān)的密鑰來對消息加密和解密。為了創(chuàng)建數(shù)字簽名,簽名人使用他的僅為他自己所知的私人密鑰來對文件或消息加密。數(shù)字簽名可稍后由另一方使用與簽名人的私人密鑰成對的公共密鑰來解密以認證文件或消息。在簽名步驟12中,內(nèi)容文件14被提供,其中內(nèi)容文件14可能是一份軟件、校準文件、或?qū)⒃诳刂破髦惺褂玫钠渌败洸糠?soft-part)”內(nèi)容。哈希(hash)計算在內(nèi)容文件14上進行以產(chǎn)生哈希值16。然后,用簽名人的私人密鑰對哈希值16加密以產(chǎn)生數(shù)字簽名18,其中數(shù)字簽名18僅對那個特定的內(nèi)容文件14有效。數(shù)字簽名18和內(nèi)容文件14因此在驗證步驟20中被使用,該驗證步驟20將由在此處討論的應(yīng)用中的ECU中的引導加載器執(zhí)行。使用簽名人的公共密鑰來對數(shù)字簽名18解密以產(chǎn)生哈希值22。同時,由驗證器在內(nèi)容文件14上進行哈希計算以產(chǎn)生計算的哈希值24。在框26處,將解密的哈希值22與計算的哈希值24相比較。如果解密的哈希值22匹配計算的哈希值24,則有效的決定在橢圓形28處發(fā)出,并且內(nèi)容文件14被使用。如果解密的哈希值22不匹配計算的哈希值24,則無效的決定在橢圓形30處發(fā)出,并且內(nèi)容文件14被不使用。本發(fā)明提出了一種用于確認操作軟件通過使用引導加載器被適當?shù)亻W存到車輛ECU的內(nèi)存中的技術(shù)。該技術(shù)在內(nèi)存段中的第一軟件閃存段處為軟件分配預定的內(nèi)存空間,其中軟件代碼緊隨內(nèi)存空間。內(nèi)存空間被限定為識別操作軟件已經(jīng)例如通過將標記設(shè)置在軟件清單中而被適當?shù)亻W存的軟件編程清單(manifest)。第一內(nèi)存段被用作軟件清單,因為它在軟件重編程序期間首先被擦除以記錄軟件編程結(jié)果。用于清單的內(nèi)存空間是由引導加載器閃存允許的最小寫入尺寸的增量。被閃存的軟件不重寫該內(nèi)存空間。在引導加載器對軟件編程之后,諸如上述數(shù)字簽名驗證的完整性檢查的結(jié)果被記錄在清單中。本發(fā)明還提出了一種用于確認校準文件通過使用引導加載器被適當?shù)亻W存到車輛ECU的內(nèi)存中的技術(shù)。該技術(shù)在內(nèi)存段中的第一校準文件閃存段處為校準文件分配預定的內(nèi)存空間,其中校準文件代碼緊隨內(nèi)存空間。內(nèi)存空間被限定為識別校準文件已經(jīng)例如通過將標記設(shè)置在校準文件清單中而被適當?shù)亻W存的校準文件編程清單。第一內(nèi)存段被用作校準文件清單,因為它在校準文件重新編程期間首先被擦除以記錄校準文件結(jié)果。用于清單的內(nèi)存空間是由引導加載器閃存允許的最小寫入尺寸的增量。被閃存的校準文件不重寫該內(nèi)存空間。在引導加載器對每個校準文件編程之后,完整性檢查的結(jié)果被記錄在清單空間中。在ECU復位時,引導加載器將檢查軟件和校準文件清單中的所有軟件和校準標記。如果所有的標記是有效的,則允許轉(zhuǎn)移到操作軟件。另外,引導加載器保持在引導(boot)模式中。圖2是示出了用于當通過引導加載器閃存過程將操作軟件和/或校準文件閃存到在車輛ECU上的內(nèi)存時使用編程清單來記錄有效的軟件和/或校準文件的存在的過程的流程圖40。在框42處的引導加載器編程執(zhí)行控制引導加載器編程功能,并且該功能可以經(jīng)由在服務(wù)設(shè)施處的服務(wù)工具的請求而輸入。弓I導加載器編程執(zhí)行檢測請求以對軟件或校準編程并且進入框44以執(zhí)行一些操作,諸如針對特定車輛ECU上傳或閃存操作軟件和/或校準文件。每當引導加載器閃存操作軟件或校準文件時,它首先擦除(一個或多個)適當?shù)膬?nèi)存段,其在編程清單內(nèi)存空間中設(shè)置(一個或多個)標記指示軟件或特定的校準文件尚未被適當?shù)亻W存。在決策菱形46處,每當獨立份的軟件或校準文件通過確定標記已經(jīng)被適當?shù)卦O(shè)置在清單而被閃存時,引導加載器確定有效的閃存是否發(fā)生。如果在決策菱形46處操作軟件或校準文件已經(jīng)被適當?shù)亻W存,則在框48處引導加載器執(zhí)行完整性檢查并且更新編程清單。然后,在決策菱形50處引導加載器確定是否所有的操作軟件和校準文件已經(jīng)被適當?shù)亻W存,并且如果否,則恢復到在框42處的引導加載器編程執(zhí)行以閃存下一份軟件或校準文件。如果在決策菱形50處所有的軟件和/或校準文件被適當?shù)亻W存,則在決策菱形52處引導加載器確定在編程清單中的所有操作軟件和校準文件標記是否已經(jīng)被適當?shù)卦O(shè)置并且是有效的,并且如果是,則允許在框54處執(zhí)行操作軟件。如果在決策菱形46處特定的操作軟件校準文件的有效的閃存尚未發(fā)生或在決策菱形52處所有的編程標記是無效的,則引導加載器對在框56處的諸如編程工具的請求者發(fā)送指示閃存尚未適當?shù)匕l(fā)生的否定響應(yīng)消息。圖3是包括存儲由引導加載器閃存的操作軟件和校準文件的閃存內(nèi)存段62的ECU內(nèi)存60的一部分的表征。在閃存段62的該表征中,引導加載器存儲特定應(yīng)用的一個操作軟件文件和四個校準文件,這是一個非限制性實施例。操作軟件被閃存到內(nèi)存段64中,并且校準文件被閃存到內(nèi)存段66中。如上所討論的,編程清單被限定在內(nèi)存段62中用于操作軟件和校準文件兩者,并且該清單在操作軟件或校準文件的內(nèi)存段的開頭。在該示例中,軟件清單被存儲在在軟件內(nèi)存區(qū)64之前的內(nèi)存槽68處,并且僅包括單個軟件標記70,因為操作軟件即存儲在段64中的操作軟件僅包括單個部分。同樣地,校準清單被定位在在內(nèi)存段66中的校準文件之前的內(nèi)存槽72處,其中校準清單存儲用于獨立的校準文件中的每一個的校準標記74,其在該示例中將是四個校準標記。如上所提及,清單內(nèi)存空間被設(shè)置在操作軟件和校準文件的內(nèi)存段的開頭,因為如果操作軟件或特定的校準文件被用新的文件重新編程,則該空間將是待被擦除的內(nèi)存的第一部分,其中新的標記將需要被設(shè)置在清單中用于那些新的文件。注意由于校準文件均駐留在相同的內(nèi)存段中,所以所有的校準文件必須在任何校準閃存事件期間被編程,并且該段在寫入第一校準文件之前被擦除一次。圖4是E⑶內(nèi)存80的一部分的另一表征,其中與E⑶內(nèi)存60相似的元件由相同的附圖標記表示。在ECU內(nèi)存80中,代替在校準文件緊前面對于所有校準文件具有信號(單個)校準清單,包括校準標記的校準清單被設(shè)置成在校準文件中的每一個的緊前面。例如,在該實施例中,校準清單被設(shè)置在內(nèi)存槽82處用于存儲在內(nèi)存段84中的校準文件并且包括單個校準標記,校準清單被設(shè)置在內(nèi)存槽86處用于存儲在內(nèi)存段88的校準文件并且也包括單個校準標記,校準清單被設(shè)置在內(nèi)存槽90用于存儲在內(nèi)存段92中的校準文件并且也包括單個校準標記,并且校準清單被設(shè)置在內(nèi)存槽94處用于存儲在內(nèi)存段96中的校準文件并且也包括單個校準文件。ECU內(nèi)存80的構(gòu)造可以具有超過ECU內(nèi)存60的構(gòu)造的益處,因為校準文件可以被閃存到彼此不相連的不同的校準段,其中校準清單將被設(shè)置在獨立的校準段的開頭,從而在新的校準文件被下載時可以被重寫。在可以為E⑶內(nèi)存60和80的組合的另一實施例中,E⑶內(nèi)存中的哪些段被閃存用于一個或多個校準文件的知識可以確定在校準清單中有多少標記,其中一個閃存段可以包括單個校準文件,并且其它閃存段可以包括多個校準文件。在另一種方法中,可能存在用于整個閃存段的一個標記,無論在那個段中是否存在多于一個校準文件。引導加載器將確保:在那個標記通過強制執(zhí)行校準文件的編程序列而被設(shè)置之前所有的校準文件被編程。例如,每個校準文件將被給予特定的序列ID,并且校準文件的閃存將按那些ID的次序執(zhí)行。例如,具有3的序列ID的校準文件將不會在具有2的序列ID的校準文件之前被閃存。在該實施例中,在下一個校準文件被閃存之前,被閃存的校準文件的編程必須是成功的,即,簽名必須是有效的。在上一個校準文件被寫入和驗證之后,引導加載器設(shè)置標記以指示在那個段中的所有的校準文件的成功的編程。如本領(lǐng)域的技術(shù)人員將很好地理解的,此處所討論的用以描述本發(fā)明的若干和各個步驟和過程可以指由計算機、處理器或使用電現(xiàn)象操作和/或變換數(shù)據(jù)的其它電子計算裝置執(zhí)行的操作。那些計算機和電子裝置可以利用各種易失性和/或非易失性內(nèi)存,包括帶有在其上存儲的可執(zhí)行程序的非暫態(tài)計算機可讀介質(zhì),所述可執(zhí)行程序包括能夠由計算機或處理器執(zhí)行的各種代碼或可執(zhí)行指令,其中內(nèi)存和/或計算機可讀介質(zhì)可包括所有形式和類型的內(nèi)存以及其它計算機可讀介質(zhì)。上面的討論僅公開并描述了本發(fā)明的示例性實施例。根據(jù)這樣的討論以及根據(jù)附圖和權(quán)利要求,本領(lǐng)域的技術(shù)人員將容易地意識到,在不脫離如所附權(quán)利要求中所限定的本發(fā)明的精神和范圍的情況下,能夠在其中作出各種改變、修改和變型。
權(quán)利要求
1.一種用于在允許操作軟件在控制器中執(zhí)行之前驗證所述操作軟件和校準文件已經(jīng)被適當?shù)亻W存到所述控制器中的方法,所述方法包括: 在控制器內(nèi)存中限定內(nèi)存段以便存儲所述操作軟件和一個或多個校準文件; 為所述內(nèi)存段中的操作軟件保留軟件內(nèi)存區(qū)并且為所述一個或多個校準文件保留一個或多個校準文件內(nèi)存區(qū); 將所述操作軟件閃存到所述軟件內(nèi)存區(qū)中; 將軟件標記設(shè)置在所述軟件內(nèi)存區(qū)中的軟件清單內(nèi)存槽中,從而指示所述操作軟件已經(jīng)被適當?shù)亻W存和驗證; 將所述一個或多個校準文件閃存到所述一個或多個校準文件內(nèi)存區(qū)中; 將用于每個獨立的校準文件的校準標記設(shè)置在所述一個或多個校準文件內(nèi)存區(qū)中的至少一個校準文件清單內(nèi)存槽中,從而指示特定校準文件已經(jīng)被適當?shù)亻W存和驗證;以及在允許所述操作軟件由所述控制器執(zhí)行之前,驗證所有的操作軟件和校準文件標記已經(jīng)被適當?shù)卦O(shè)置。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述軟件內(nèi)存區(qū)中所述軟件清單在所述操作軟件的前面。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述校準文件內(nèi)存區(qū)中所述至少一個校準文件清單在所述一個或多個校準文件的前面。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,為所述一個或多個校準文件保留一個或多個校準文件內(nèi)存區(qū)包括為多個校準文件保留多個校準文件內(nèi)存區(qū),其中單個校準文件設(shè)置在每個校準文件內(nèi)存區(qū)中,并且其中將所述一個或多個校準文件閃存到所述一個或多個校準文件內(nèi)存區(qū)中包括 將獨立的校準文件閃存到所述多個校準文件內(nèi)存區(qū)中的每一個中。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述多個校準文件內(nèi)存區(qū)是彼此相連的。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,為每個獨立的校準文件設(shè)置校準標記包括:將校準標記設(shè)置在單個校準文件清單內(nèi)存槽中,其存儲用于所有的校準文件的所有的校準標記。
7.根據(jù)權(quán)利要求4所述的方法,其特征在于,為每個獨立的校準文件設(shè)置所述校準標記包括:為每個校準文件提供包括單個校準標記的獨立的校準文件內(nèi)存槽。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述多個校準文件內(nèi)存區(qū)不是彼此相連的。
9.一種用于在允許一個或多個軟件文件在車輛上的電子控制單元(ECU)中被執(zhí)行之前驗證所述一個或多個軟件文件已經(jīng)被適當?shù)亻W存到所述ECU的內(nèi)存中的方法,所述方法包括: 在所述ECU的內(nèi)存中限定至少一個內(nèi)存段以便存儲至少一個軟件文件; 為所述內(nèi)存段中的所述至少一個軟件文件保留內(nèi)存區(qū); 將所述至少一個軟件文件閃存到所述內(nèi)存區(qū)中; 將至少一個軟件標記設(shè)置在所述軟件內(nèi)存區(qū)中的軟件清單內(nèi)存槽中,從而指示所述至少一個軟件文件已經(jīng)被適當?shù)亻W存;以及 在允許所述軟件文件由所述控制器執(zhí)行之前,驗證所述軟件標記已經(jīng)被適當?shù)卦O(shè)置。
10.一種用于在允許一個或多個軟件文件在控制器中被執(zhí)行之前驗證所述一個或多個軟件文件已經(jīng)被適當?shù)亻W存到所述控制器的內(nèi)存中的系統(tǒng),所述系統(tǒng)包括: 用于在所述控制器的內(nèi)存中限定至少一個內(nèi)存段以便存儲至少一個軟件文件的裝置; 用于為所述內(nèi)存段中的所述至少一個軟件文件保留內(nèi)存段的裝置; 用于將所述至少一個軟件文件閃存到所述內(nèi)存段中的裝置; 用于將至少一個軟件標記設(shè)置在軟件內(nèi)存區(qū)中的軟件清單槽中指示所述至少一個軟件文件已經(jīng)被適當?shù)亻W存的裝置;以及 用于在允許所述軟件文件由所述控制器執(zhí)行之前驗證所述軟件標記已經(jīng)被適當?shù)卦O(shè)置的 裝置。
全文摘要
本發(fā)明涉及使用清單來記錄有效軟件和校準的存在,具體地,一種用于在引導加載器將文件閃存到在車輛ECU上的內(nèi)存中之后在允許操作軟件執(zhí)行之前驗證操作軟件和校準文件存在且有效的系統(tǒng)和方法。ECU內(nèi)存限定用于操作軟件和校準文件的內(nèi)存段。軟件清單設(shè)置在在內(nèi)存中的操作軟件段之前的內(nèi)存槽中。同樣地,校準清單設(shè)置在在ECU內(nèi)存中的校準段之前的內(nèi)存槽中。在軟件已經(jīng)被閃存到ECU內(nèi)存中之后,將軟件標記設(shè)置在軟件清單內(nèi)存槽中,并且每當校準文件被閃存時,將用于特定校準文件的校準標記設(shè)置在校準清單中。
文檔編號G06F21/78GK103198270SQ201210415290
公開日2013年7月10日 申請日期2012年10月26日 優(yōu)先權(quán)日2011年10月28日
發(fā)明者K.M.貝爾特斯, J.T.庫爾尼克, R.J.蓋尼耶, T.M.富里斯特, A.I.阿爾拉巴迪 申請人:通用汽車環(huán)球科技運作有限責任公司