国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種防止重編程程序對應用程序干擾的方法及裝置的制作方法

      文檔序號:6367481閱讀:158來源:國知局
      專利名稱:一種防止重編程程序對應用程序干擾的方法及裝置的制作方法
      技術領域
      本發(fā)明涉及應用程序更新過程中防干擾技術,更具體的說,是涉及ー種防止重編程程序對應用程序干擾的方法及裝置。
      背景技術
      EQJ(Electronic Control Unit,電子控制單元)又稱“行車電腦”,是汽車專用的微機控制器。當車載ECU中的應用程序存在缺陷或者需要升級時,可以通過在線重編程的方法對ECU中的應用程序進行更新,具備在線重編程功能的ECU里除了應用程序外,還有重編程程序,從車載總線上接收到新的應用程序并且寫入ECU里。因此,E⑶有兩種運行模型重編程模式和應用程序模式;在重編程模式下,應用程序不運行,由重編程軟件下載新的應用程序,并寫入E⑶,對應用程序進行更新;當重編程完成后,跳轉到應用程序模式下,運行控制算法。重編程程序和應用程序共享ECU資源,如 MCU,存儲芯片、定時器和 EEPROM(Electrically Erasable Programmable Read-OnlyMemory,電可擦可編程只讀存儲器)等。當E⑶從重編程模式切換到應用程序模式時,重編程程序已經啟動MCU資源,如定時器、存儲器等已開始被使用,應用程序繼續(xù)使用這些資源時,有可能會發(fā)生錯誤,如應用程序定時時間不準確、存儲器訪問結果錯誤等。本發(fā)明在于提供ー種方法和裝置,解決重編程程序對應用程序造成的干擾,避免應用程序運行出現(xiàn)錯誤。

      發(fā)明內容
      有鑒于此,本發(fā)明提供了ー種防止重編程程序對應用程序干擾的方法及裝置,以解決現(xiàn)有技術中對應用程序更新時,重編程程序對應用程序造成的干擾,避免從重編程模式切換到應用程序時,應用程序出現(xiàn)運行錯誤的問題。為實現(xiàn)上述目的,本發(fā)明實施例提供如下技術方案ー種防止重編程程序對應用程序干擾的方法,包括初始化控制器的硬件環(huán)境和軟件環(huán)境;獲取重編程標識,并判斷所述重編程標識是否有效;如果所述重編程標識有效,則運行所述重編程程序;如果所述重編程標識無效,則獲取應用程序標識,并判斷所述應用程序標識是否有效;如果所述應用程序標識有效,則反初始化所述控制器的硬件環(huán)境,并運行所述應
      用程序。 進ー步地,所述判斷所述重編程標識是否有效,具體包括判斷所述重編程標識與預設的第一有效值是否相等,如果相等,則判定所述重編程標識有效;否則,判定所述重編程標識無效。進ー步地,所述判斷所述應用程序標識是否有效,具體包括判斷所述應用程序標識與預設的第二有效值是否相等,如果相等,則判定所述應用程序標識有效;否則,判定所述應用程序標識無效。進ー步地,所述初始化控制器的硬件環(huán)境和軟件環(huán)境,具體包括為所述控制器的定時器、EEPR0M、時鐘模塊和CAN模塊設置初始值。進ー步地,所述反初始化控制器的硬件環(huán)境,具體包括將所述控制器的定時器、EEPR0M、時鐘模塊和CAN模塊的寄存器的值恢復到默認 值。本發(fā)明實施例還提供了ー種防止重編程程序對應用程序干擾的裝置,該裝置包括初始化模塊,用于初始化控制器的硬件環(huán)境和軟件環(huán)境;重編程標識獲取和判斷模塊,用于獲取重編程標識,并判斷所述重編程標識是否有效;重編程程序模塊,用于當所述重編程標識有效時,運行重編程程序;應用程序標識獲取和判斷模塊,用于當所述重編程標識無效時,獲取應用程序標識,并判斷所述應用程序標識是否有效;應用程序模塊,用于當應用程序標識有效時,運行所述應用程序;反初始化模塊用于在運行所述應用程序之前,反初始化所述控制器的硬件環(huán)境。所述重編程標識獲取和判斷模塊,具體用于判斷所述重編程標識與預設的第一有效值是否相等,如果相等,則判定所述重編程標識有效;否則,判定所述重編程標識無效。所述應用程序標識獲取和判斷模塊,具體用于判斷所述應用程序標識與預設的第二有效值是否相等,如果相等,則判定所述應用程序標識有效;否則,判定所述應用程序標識無效。所述初始化模塊,具體用于為所述控制器的定時器、EEPR0M、時鐘模塊和CAN模塊設置初始值。所述反初始化模塊,具體用于在運行所述應用程序之前,將所述控制器的定時器、EEPR0M、時鐘模塊和CAN模塊的寄存器恢復到默認值。本發(fā)明公開的ー種防止重編程程序對應用程序干擾的方法及裝置,在控制器啟動時初始化控制器的硬件環(huán)境和軟件環(huán)境,通過判斷重編程標識是否有效,判定是否要執(zhí)行重編程程序,如重編程標識無效,則進一歩判斷應用程序標識是否有效,如應用程序標識有效,在啟動應用程序之前,為了防止重編程程序對應用程序造成干擾,則反初始化控制器的硬件環(huán)境,來消除重編程程序給應用程序帶來的干擾。


      為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。圖I為實施例一公開的ー種防止重編程程序對應用程序干擾的方法流程圖2是實施例ニ公開的ー種防止重編程程序對應用程序干擾的裝置示意圖。
      具體實施例方式為了引用和清楚起見,下文中使用的技術名詞的說明、簡寫或縮寫總結如下ECU !Electronic Control Unit,電子控制單兀;EEPROM Electrically Erasable Programmable Read-Only Memory,電可擦可編程只讀存儲器。 下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。E⑶中同時安裝有重編程程序和應用程序,同一時間只能運行兩種程序之一,即ECU有兩種工作模式重編程模式和應用程序模式。而重編程模式和應用程序模式共享ECU的資源,比如定時器、EEPR0M、時鐘模塊和CAN模塊等。實施例一請參閱附圖1,為本實施例公開的ー種防止重編程程序對應用程序干擾的方法流程圖SlOl :初始化控制器的硬件環(huán)境和軟件環(huán)境;具體地,初始化控制器的硬件環(huán)境,包括初始化CAN模塊、時鐘模塊,為定時器的寄存器賦予一定值,還包括將EEPROM設置在初始的讀取頁位置。初始化控制器的軟件環(huán)境,包括為ー些變量賦予初始值。S102 :獲取重編程標識,并判斷重編程標識是否有效;如果重編程標識有效,執(zhí)行步驟S103,否則,執(zhí)行步驟S104 ;在步驟S102中,重編程標識是判斷當前是否有重編程請求的標識。本實施例中,重編程標識存放在EEPROM第I頁,讀取EEPROM第I頁的內容,獲得重編程標識。當然,重編程標識不限制必須存放在EEPROM第I頁,也可以存放在EEPROM的其他頁,本實施例不予限制。判斷重編程標識是否有效,具體為將獲得的重編程標識與預設的第一有效值作比較,如果重編程標識與預設的第一有效值相等,則判定重編程標識有效;否則,判定重編程標識無效。需要說明的是,第一有效值是由軟件編程人員預設的,比如第一有效值可以為OxAA。當ECU從CAN總線上讀取到重編程請求的報文吋,即當有針對應用程序的重編程請求吋,重編程標識便被賦予第一有效值OxAA。S103 :運行重編程程序,E⑶轉入重編程模式;具體地,如果重編程標識有效,即根據(jù)步驟S102,當重編程標識與預設的第一有效值相等吋,則說明ECU從CAN總線上讀取到重編程請求的報文,即需要對應用程序進行更新。此時,運行重編程程序,由重編程程序從CAN總線上下載新的應用程序,并將下載的新的應用程序寫入ECU中,替代原有的應用程序。這個過程中,原有的應用程序是不運行的,此過程E⑶處于重編程模式。
      需要說明的是,步驟SlOl中已經對定時器和EEPROM等E⑶共用硬件資源初始化,在重編程模式下,上述硬件資源已經啟動。S104 :獲取應用程序標識,并判斷應用程序標識是否有效;如果應用程序標識有效,則執(zhí)行步驟S105,否則,執(zhí)行步驟S103 ;根據(jù)步驟S102,如果重編程標識無效,即重編程標識與預設的第一有效值不相等,則獲取應用程序標識,并判斷應用程序標識是否有效。本實施例中,應用程序標識存放在EEPROM第I頁,讀取EEPROM第I頁的內容,獲得應用程序標識。當然,應用程序標識不限制必須存放在EEPROM第I頁,也可以存放在EEPROM的其他頁,本實施例不予限制。
      判斷應用程序標識是否有效,具體為判斷應用程序標識與預設的第二有效值是否相等,如果相等,則判定應用程序標識有效;否則,判定應用程序標識無效。第二有效值是由編程人員預設的,比如第二有效值可以為0x55。如當獲取到應用程序更新完畢的報文后,應用程標識便被賦予第二有效值0x55。S105 :反初始化控制器的硬件環(huán)境;具體地,反初始化控制器的硬件環(huán)境包括將控制器的定時器、EEPR0M、時鐘模塊和CAN模塊的寄存器恢復到默認值。在上述步驟S103中,運行重編程程序時已經啟動了控制器的硬件環(huán)境和軟件環(huán)境,比如控制器的定時器和EEPR0M。在步驟S105中,為了防止運行應用程序時,出現(xiàn)錯誤,所以需要對控制器的硬件環(huán)境反初始化。例如EEPR0M反初始化,是為了防止E⑶從重編程模式轉入應用程序模式后,應用程序按默認方式訪問EEPR0M,結果訪問結果錯誤。因為當EEPROM存儲器存在分頁機制吋,若在E⑶進入應用程序模式前,重編程軟件訪問過EEPROM的某頁地址(非第O頁),EEPROM相關寄存器的狀態(tài)為非第O頁狀態(tài),那么當ECU進入應用程序模式后,若應用程序按默認方式訪問第O頁,則訪問結果出錯。所以必須在轉入應用程序模式之前,實現(xiàn)對EEPROM模塊相關寄存器恢復默認值設置。例如,F(xiàn)reescale MC9S08DZ60芯片的內置EEPROM為分頁資源,共分2頁。ECU重編程軟件的標示信息如應用程序有效標識等存放在EEPROM的第I頁,應用程序的信息存放在EEPROM的第O頁。當ECU重編程軟件在進入應用程序模式之前,需要訪問EEPR0M,讀取應用程序有效標志等信息,則設置了 EEPROM的分頁寄存器FCNFG為第I頁。當ECU重編程軟件進入應用程序模式后,若應用程序按MCU復位后寄存器默認狀態(tài)(即FCNFG位第O頁狀態(tài)),來訪問EEPROM分頁寄存器FCNFG,目的訪問地址為EEPROM的第O頁,那么由于E⑶重編程軟件進入應用程序后FCNFG仍為第I頁狀態(tài),則應用程序實際訪問的是EEPROM的第I頁,所以應用程序訪問結果錯誤。因此,為了防止運行應用程序時出現(xiàn)錯誤,需要對控制器的硬件環(huán)境反初始化。S106 :運行應用程序,E⑶轉入應用程序模式;在步驟S105中,提前反初始化控制器的硬件環(huán)境,為運行應用程序做準備。本實施例的ー種防止重編程程序對應用程序干擾的方法,通過反初始化控制器的硬件環(huán)境,來為運行應用程序創(chuàng)造環(huán)境,排除掉重編程程序對應用程序造成的干擾。實施例ニ請參見圖2,本實施例提供了ー種防止重編程程序對應用程序干擾的裝置,該裝置包括初始化模塊201,用于初始化控制器的硬件環(huán)境和軟件環(huán)境;重編程標識獲取和判斷模塊202,用于獲取重編程標識,并判斷重編程標識是否有效;重編程程序模塊203,用于當重編程標識有效時,運行重編程程序;應用程序標識獲取和判斷模塊204,用于當重編程標識無效吋,獲取應用程序標識,并判斷應用程序標識是否有效;應用程序模塊205,用于當應用程序標識有效時,運行應用程序;反初始化模塊206 :用于在運行應用程序之前,反初始化控制器的硬件環(huán)境。具體地,重編程標識獲取和判斷模塊202,具體用于判斷重編程標識與預設的第一有效值是否相等,如果相等,則判定重編程標識有效;否則,判定重編程標識無效。需要說明的是,重編程標識是判斷當前是否有重編程請求的標識。本實施例中,重編程標識存放在EEPROM第I頁,讀取EEPROM第I頁的內容,獲得重編程標識。當然,重編程標識不限制必須存放在EEPROM第I頁,也可以存放在EEPROM的其他頁,本實施例不予限制。另外,第一有效值是由軟件編程人員預設的,比如第一有效值可以為OxAA。當E⑶從CAN總線上讀取到重編程請求的報文吋,即當有針對應用程序的重編程請求吋,重編程標識便被賦予第一有效值OxAA。具體地,應用程序標識獲取和判斷模塊204,具體用于判斷應用程序標識與預設的第二有效值是否相等,如果相等,則判定應用程序標識有效;否則,判定應用程序標識無效。本實施例中,應用程序標識存放在EEPROM第I頁,讀取EEPROM第I頁的內容,獲得應用程序標識。當然,應用程序標識不限制必須存放在EEPROM第I頁,也可以存放在EEPROM的其他頁,本實施例不予限制。另外,第二有效值是由編程人員預設的,比如第二有效值可以為0x55。如當獲取到應用程序更新完畢的報文后,應用程標識便被賦予第二有效值0x55。具體地,反初始化模塊206,具體用于在運行應用程序之前,將控制器的定時器、EEPROM的寄存器恢復到默認值。本實施例提供的防止重編程程序對應用程序干擾的裝置,在重編程模式向應用程 序模式切換之前,對控制器的硬件環(huán)境進行反初始化,避免應用程序運行時出現(xiàn)錯誤,排除了重編程程序對應用程序的干擾。本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機存儲器(RAM)、內存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術領域內所公知的任意其它形式的存儲介質中。對所公開的實施例的上述說明,使本領域專業(yè)技術人員能夠實現(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領域的專業(yè)技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示 的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。
      權利要求
      1.ー種防止重編程程序對應用程序干擾的方法,其特征在干, 初始化控制器的硬件環(huán)境和軟件環(huán)境; 獲取重編程標識,并判斷所述重編程標識是否有效; 如果所述重編程標識有效,則運行所述重編程程序;如果所述重編程標識無效,則獲取應用程序標識,并判斷所述應用程序標識是否有效; 如果所述應用程序標識有效,則反初始化所述控制器的硬件環(huán)境,并運行所述應用程序。
      2.根據(jù)權利要求I所述的方法,其特征在于,所述判斷所述重編程標識是否有效,具體包括 判斷所述重編程標識與預設的第一有效值是否相等,如果相等,則判定所述重編程標識有效;否則,判定所述重編程標識無效。
      3.根據(jù)權利要求I所述的方法,其特征在于,所述判斷所述應用程序標識是否有效,具體包括 判斷所述應用程序標識與預設的第二有效值是否相等,如果相等,則判定所述應用程序標識有效;否則,判定所述應用程序標識無效。
      4.根據(jù)權利要求I所述的方法,其特征在于,所述初始化控制器的硬件環(huán)境和軟件環(huán)境,具體包括 為所述控制器的定時器、EEPROM、時鐘模塊和CAN模塊設置初始值。
      5.根據(jù)權利要求I所述的方法,其特征在于,所述反初始化控制器的硬件環(huán)境,具體包括 將所述控制器的定時器、EEPROM、時鐘模塊和CAN模塊的寄存器的值恢復到默認值。
      6.ー種防止重編程程序對應用程序干擾的裝置,其特征在于,所述裝置包括 初始化模塊,用于初始化控制器的硬件環(huán)境和軟件環(huán)境; 重編程標識獲取和判斷模塊,用于獲取重編程標識,并判斷所述重編程標識是否有效; 重編程程序模塊,用于當所述重編程標識有效時,運行重編程程序; 應用程序標識獲取和判斷模塊,用于當所述重編程標識無效時,獲取應用程序標識,并判斷所述應用程序標識是否有效; 應用程序模塊,用于當應用程序標識有效時,運行所述應用程序; 反初始化模塊用于在運行所述應用程序之前,反初始化所述控制器的硬件環(huán)境。
      7.根據(jù)權利要求6所述的裝置,其特征在于,所述重編程標識獲取和判斷模塊,具體用于 判斷所述重編程標識與預設的第一有效值是否相等,如果相等,則判定所述重編程標識有效;否則,判定所述重編程標識無效。
      8.根據(jù)權利要求6所述的裝置,其特征在于,所述應用程序標識獲取和判斷模塊,具體用干 判斷所述應用程序標識與預設的第二有效值是否相等,如果相等,則判定所述應用程序標識有效;否則,判定所述應用程序標識無效。
      9.根據(jù)權利要求6所述的裝置,其特征在于,所述初始化模塊,具體用于為所述控制器的定時器、EEPROM、時鐘模塊和CAN模塊設置初始值。
      10.根據(jù)權利要求6所述的裝置,其特征在于,所述反初始化模塊,具體用于 在運行所述應用程序之前,將所述控制器的定時器、EEPROM、時鐘模塊和CAN模塊的寄存器恢復到默認值。
      全文摘要
      本發(fā)明公開了一種防止重編程程序對應用程序干擾的方法及裝置,所述方法包括初始化控制器的硬件環(huán)境和軟件環(huán)境;獲取重編程標識,并判斷所述重編程標識是否有效;如果所述重編程標識有效,則運行所述重編程程序;如果所述重編程標識無效,則獲取應用程序標識,并判斷所述應用程序標識是否有效;如果所述應用程序標識有效,則反初始化所述控制器的硬件環(huán)境,并運行所述應用程序。本發(fā)明通過在從重編程模式向應用程序模式切換之前,對控制器的硬件環(huán)境和軟件環(huán)境進行初始化,避免應用程序運行過程中出現(xiàn)錯誤,排除了重編程程序對應用程序造成干擾。
      文檔編號G06F9/44GK102650939SQ20121009305
      公開日2012年8月29日 申請日期2012年3月31日 優(yōu)先權日2012年3月31日
      發(fā)明者胡娜, 陳昆盛 申請人:北京經緯恒潤科技有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1