像Ray LaMontagne一樣,我遇到了麻煩。智能手機麻煩,麻煩,麻煩,麻煩。我可以弄清楚我想要的應用程序,并且我已經(jīng)得到了我需要的游戲(等等,我可能會將這些優(yōu)先級向后),但是傳輸我的所有圖像和數(shù)據(jù)會更加困難。似乎總會留下音樂或者無論出于什么原因拒絕備份的圖像。我認為自己非常精明,但當我拿到一部新的智能手機時,我開始擔心,擔心,擔心,擔心。我甚至無法想象我是否正在嘗試從更大的設備傳輸數(shù)據(jù) - 從硬盤驅動器獲取所有文件或更大的文件似乎會讓我更多的循環(huán)。
當我購買新智能手機時,銷售團隊通過使用實用程序應用程序幫助我完成,該應用程序輕松地將我的數(shù)據(jù)從舊智能手機遷移到新智能手機。我不需要用三十根繩索和電纜掙扎,并且通過我的所有收藏品來搜索,以確定將要傳輸?shù)膬热荨,F(xiàn)在借鑒這些經(jīng)驗并將其應用到您的工作中:您需要多久更換一次微控制器的固件?你多久希望能避免插入電纜的笨拙過程?簡化此過程的一種方法是使用SD卡引導加載程序。
使用SD卡引導加載程序靈活更新
傳統(tǒng)上,使用編程電纜。如果您在空間受限的環(huán)境中工作,或者如果您像我一樣,并且您傾向于將未完成的任務留在整個地方,這可能會變得麻煩和繁瑣。此外,它適用于外部干擾。如果你乘坐電纜旅行并將桌子上的所有東西敲掉,該怎么辦?或者花幾個小時試圖找出為什么數(shù)據(jù)沒有傳輸只是為了意識到電纜沒有插入足夠緊的電纜?
在微控制器中,引導加載程序是一個特殊的程序,它接收來自的應用程序固件外部源并將其寫入內部程序存儲器。它往往占用空間小,位于程序存儲器的保留部分。當微控制器上電并嘗試讀取外部媒體或資源中存在的最新固件時,引導加載程序將擦除程序存儲器中的現(xiàn)有固件并將新固件寫入其中。
您可以自定義您的引導加載程序從串行接口,LAN,外部介質等獲取其新固件。但我個人偏好SD卡:它不需要是計算機上的復雜設置,它實際上是無線的。使用SD卡作為引導加載程序會將更新固件轉換為插入SD卡和重置微控制器的問題。
使用引導加載程序,可以在現(xiàn)場更新固件,并最大限度地中斷系統(tǒng)操作。此功能使引導加載程序,尤其是SD卡引導加載程序在嵌入式系統(tǒng)中非常有用,這些嵌入式系統(tǒng)可能需要在部署過程中進行更新或故障排除。如果固件的規(guī)格可能需要隨著時間的推移而發(fā)展或定期更新,那么SD卡引導程序將使這一過程變得更加容易。
確保微控制器有可用于引導加載程序和主應用程序的空間。
不要將自己擊倒再次
SD卡引導加載程序背后的主要思想是引導加載程序將從SD卡讀取主應用程序的二進制或十六進制文件,并將該文件寫入微控制器的程序存儲器中。記住這個核心過程,這里還有一些需要考慮的問題:
程序存儲器分配:雖然擁有SD卡引導加載程序有明顯的好處,但并非所有微控制器都可以加載引導加載程序。引導加載程序本身就是一個應用程序。因此,如果您使用的是具有較小內存空間或應用程序固件太大的微控制器,則需要一定數(shù)量的程序存儲空間。如果您計劃合并引導加載程序,則為引導加載程序和固件應用程序分配足夠的程序存儲空間。
實現(xiàn)SD卡接口:SD卡引導加載程序將需要在硬件上構建其他組件容納SD卡存儲。如果您的主應用程序不需要SD卡接口,則會產(chǎn)生額外費用。除此之外,您還需要在引導加載程序上實現(xiàn)文件分配表(FAT32)堆棧,以確保您的引導加載程序可以讀取新固件的二進制或十六進制文件。
程序存儲器閃存寫入順序:引導加載程序基本上重寫其內部閃存中的一系列地址,其中包含要加載的應用程序固件的信息字節(jié)。這將要求在特定寄存器上執(zhí)行正確的命令序列以擦除和寫入內部閃存。確保正在寫入正確的地址,并且引導加載程序實際上沒有錯誤地擦除自身。
將二進制文件映射到正確的地址:正常的應用程序通常寫在起始地址0x00000000上。但是,使用引導加載程序時,主應用程序或引導加載程序的起始地址可能會有所不同,具體取決于它們在程序存儲空間中的分配方式。修改內存鏈接文件以確保為正確的內存地址編譯兩個程序的十六進制文件。
嚴格測試:SD卡引導加載程序的目的是簡化現(xiàn)場固件更新,而不是添加過程中不必要的錯誤或困難。完全測試引導加載程序并確保引導加載程序和主應用程序都按預期運行非常重要。如果主應用程序寫入不正確或映射不正確,您可能會發(fā)現(xiàn)系統(tǒng)行為不正常。
您需要確保引導加載程序在正確的空間中編寫正確的代碼。
除了高質量的固件開發(fā)之外,使用引導加載程序還有其他好處。良好的硬件設計,特別是SD卡接口,將排除串擾和電氣干擾。 AltiumDesigner?的信號完整性分析工具可能非常方便。
使用引導加載程序簡化工作空間并靈活地進行必要的固件更新,并且能夠隨時隨地進行處理。與智能手機不同,SD卡引導程序的正確維護和設置可以比發(fā)布另一個手機升級前幾個月的時間更長。最好的部分是,每次需要使用它時,您都不需要致電客戶協(xié)助。
-
SD卡
+關注
關注
2文章
560瀏覽量
63812 -
bootloader
+關注
關注
2文章
234瀏覽量
45555 -
華強pcb線路板打樣
+關注
關注
5文章
14629瀏覽量
42988
發(fā)布評論請先 登錄
相關推薦
評論