開發(fā)自己的項(xiàng)目中遇到文件升級(jí)不方便的問題,因此設(shè)計(jì)了一個(gè)在線升級(jí)方案,可以有效解決如下問題:
1. 當(dāng)產(chǎn)品已發(fā)出需要修復(fù)Bug時(shí),無法在線修復(fù)。
2. 無法判斷新老版本,當(dāng)數(shù)據(jù)文件沒有變化時(shí)執(zhí)行了重復(fù)升級(jí)。
3. 批量升級(jí)時(shí),每個(gè)設(shè)備需要單獨(dú)去插卡或者用電腦上位機(jī)升級(jí)。
設(shè)計(jì)思路
引導(dǎo)裝載升級(jí)程序,在系統(tǒng)中始終存在一段用于程序裝載的代碼,該代碼在啟動(dòng)時(shí)被運(yùn)行。根據(jù)Nor Flash版本號(hào)差異來判斷是運(yùn)行現(xiàn)有版本的程序還是從主機(jī)下載新程序。
- 當(dāng)?shù)衔钠辽想姀?fù)位時(shí),首先執(zhí)行片內(nèi)的裝載程序,在Nor Flash地址存放每個(gè)數(shù)據(jù)文件的當(dāng)前版本號(hào),作為下一次判斷是否需要更新該數(shù)據(jù)文件的依據(jù)。(注意一定要升級(jí)該數(shù)據(jù)文件成功后才保存該數(shù)據(jù)文件的當(dāng)前版本號(hào))。
- 主控板根據(jù)版本號(hào)的差異判斷迪文屏是否需要下載新程序。如果本地版本號(hào)與上一次更新的版本號(hào)不同時(shí),主控板向迪文屏發(fā)送更新程序的請(qǐng)求,內(nèi)核文件通過繼電器切換SD卡信號(hào)線的方式給到迪文屏。
- 迪文屏接收新的應(yīng)用程序內(nèi)容,并在最終確認(rèn)后寫入外部Flash內(nèi)。當(dāng)更新程序執(zhí)行完畢后,將DGUS系統(tǒng)復(fù)位,并執(zhí)行片內(nèi)RAM中的程序。如果再次復(fù)位,那么將重復(fù)上述裝載執(zhí)行過程。這里版本號(hào)有多少個(gè)不同,就會(huì)更新多少個(gè)文件,避免版本一致的重復(fù)更新。
設(shè)計(jì)框圖
資料下載
方案完整資料包下載可前往迪文開發(fā)者論壇獲?。篽ttp://inforum.dwin.com.cn:20080/forum.php?mod=viewthread&tid=6361&extra=&page=1
-
迪文屏
+關(guān)注
關(guān)注
3文章
78瀏覽量
5413
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論