2017-04-04 54 views
0

標題似乎有點奇怪,我也沒有得到什麼確切的,我應該寫在那裏,但希望我能夠讓你明白我想要做什麼! - 我將有主引導程序和輔助引導程序都將駐留在內存的不同區域(可能是引導閃存或程序閃存)。 - 其中一個引導加載程序一次處於活動狀態,另一個將處於非活動狀態。 - 考慮一下,主引導程序是活動的,現在我將下載我的應用程序固件。我還從應用程序固件中讀取活動的引導加載程序版本,以便檢查是否需要更新引導加載程序。 - 如果我需要更新引導加載程序,那麼不活動的引導加載程序將被激活,並且它將替換先前更新的引導加載程序。輔助引導程序將切換回不活動模式。因此,輔助引導加載程序只有在更新主引導加載程序時纔會激活。在整個過程中,我想爲主引導加載程序版本,輔助引導加載程序版本和一些具有固定內存位置的自定義配置數據保留一些內存區域,並且可以從主要,輔助以及應用程序固件訪問這些內存區域。同一個PIC32MZ中有多個引導加載程序?

回答

0

您需要了解鏈接器文件。我還沒有爲MX/MZ產品線做這件事,但我在許多dsPIC33上都沒有這樣的事情。非常類似於以下方式:Bootloader通常在單個頁面中獲取一定量的專用於.gld的閃存,因此更容易擦除(0x400),然後在實際加載時將Superboot加載器(輔助啓動加載器)僅加載到PIC中一個新的引導程序。因此,超級引導加載程序實際上是一個小型應用程序,旨在簡單更新引導加載程序,然後跳轉到引導加載程序的復位地址。我個人不會一直保留輔助/超級引導代碼,以避免以後出現混淆。您可以使用PIC之外的更新技術真正做到這一點。我可以再次提供PIC32產品線的直接幫助,但是如果您想查看dsPIC33產品線的示例鏈接器文件,我可以提供這些文件。

+0

PIC32MZ中有引導閃存,如果我使用實時更新引導程序,那麼它將如何工作? –

相關問題