1. gzyueqian
      13352868059

      嵌入式開發:技巧和竅門——設計強大的引導加載程序的7個技巧

      更新時間: 2022-07-25 09:37:30來源: 粵嵌教育瀏覽量:7440

        嵌入式軟件永遠不會結束,該軟件總是需要一些調整,增加功能或修復錯誤。嵌入式開發人員可以將產品退回給制造商進行更新,或者可以向產品派遣技術人員。無論哪種方式都很貴!有些產品的構造方式使得訪問微控制器的編程端口需要完全拆除系統。引導加載程序是這兩種情況的完美解決方案。

        引導加載程序已經成為幾乎每個嵌入式系統的必需品,但不幸的是,它們很少受到關注。對于大多數開發人員來說,更新固件的能力是事后才想到的,而不是事先想到的,這種疏忽的結果是在最后一刻放棄將任何更新功能構建到系統中。錯誤悄悄進入系統,并且由于缺乏測試,毫無疑問地進入了領域。有7個技巧可以遵循,以確保引導加載程序不僅更新固件,而且每次都正確。

        技巧1——盡早添加引導加載程序

        在設計的早期就開始啟動引導加載程序,最好是在項目得到正式資助的概念驗證階段之后。嵌入式開發人員盡早將引導加載加載程序集成到系統中,不僅可以進行徹底的測試,還可以限制在集成過程中可能需要對應用程序進行的更改。

        技巧2——檢查復位向量

        引導加載程序的目的之一是讓系統進入一個已知的狀態,并決定是跳到應用程序還是等待編程指令。在引導加載程序決定應該啟動應用程序的情況下,到應用程序向量的跳轉不應該是盲目的。系統閃存可能之前已被擦除,從而使復位向量的唯一位置為0xFFFFFFFF。如果執行這個重置向量,系統會發生什么?

        在啟動應用程序之前,可以對其執行的最簡單的檢查是確保復位向量已被編程為一個值,即未被擦除。一個被編程的重置向量給出了一個最低程度的信心,即程序不會跳到雜草中。下面的圖1給出了一個例子。嵌入式開發人員甚至想變得更好,對可能的有效復位向量進行邊界檢查。邊界檢查將有助于確保復位向量不僅被編程,而且被指向有效的位置。

        

        技巧3——執行CRC校驗

        重置向量檢查是驗證應用程序存在的良好開端,但重置向量本身并不能說明全部情況。如果固件更新中途中止會發生什么?復位向量可能已寫入閃存,但應用程序本身已損壞。向應用程序添加CRC校驗是驗證應用程序的一個很好的方法。引導加載程序可以在啟動時對應用程序空間執行快速CRC檢查,如果檢查成功,引導加載程序可以假定應用程序空間是完整的。

        技巧4——鎖定引導加載程序

        在現場更新引導加載程序是一項極其危險的工作。電源故障、雜散的宇宙射線或臟兮兮的外觀都可能導致內存的引導加載程序部分損壞和無法使用。結果是一個嵌入式系統被阻塞了,直到被更復雜的編程工具所拯救。引導裝載程序應該是一個小的、簡單的和健壯的應用程序,不需要功能升級或錯誤修復。嵌入式開發人員應該將引導加載程序放在受保護的內存部分,以確保它不會以任何方式、形狀或形式被意外刪除或覆蓋。

        技巧5——將閃存分成多個應用插槽

        嵌入式系統有時會有復雜的需求,例如在應用程序仍在運行時更新固件,或者在更新失敗時能夠恢復到以前的版本。如果不將閃存空間分成多個應用程序段,這些要求將很難實現。例如,閃存空間可以被分割以包括受保護存儲器中的引導加載程序和原始固件,然后是用于更新固件的兩個備用應用部分。引導加載程序將對備用插槽之一進行編程,如果成功,則可以切換到使用該應用程序。在失敗的情況下,引導裝載程序可以總是退回到原始的或者存儲在備份插槽中的應用程序。

        

        技巧6——使用握手協議

        編譯器將生成應用程序的表示,該表示被分解成記錄。這些記錄可以以多種格式生成,但一個共同的特征是每個記錄代表應用程序的一個較小的塊,并且包含校驗和。開發人員可以創建一個協議,一次發送一條記錄,驗證記錄,將其寫入閃存,然后用確認響應更新工具。一旦工具收到確認,就可以發送下一條記錄。使用握手將刷新過程分成可管理的塊,并且在出現錯誤時,系統可以立即處理它,而不是在更新周期結束時。

        技巧7——使用Delta發生器

        傳統的微控制器引導程序會在更新過程中完全擦除應用閃存空間。如果僅對軟件進行微小的更改,更新固件可能會浪費時間。在大型計算機系統中經常采用的方法是確定應用文件之間的增量或差異,并且僅更新那些已經改變的文件或存儲器部分。嵌入式開發人員使用Delta發生器還可以用來最大限度地縮短更新微控制器應用所需的時間。

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 日韩专区日本一区 | 亚洲欧美日韩卡通动漫一区 | 一区二区三区亚洲中文字幕 | 日韩综合永久久网 | 真人AV片免费在线看 | 一级a性色生活片久久无 |