參考文章:https://blog.csdn.net/duzhi2004/article/details/103560574
很久沒有更新博文了,本文接上篇關于單片機差分升級的內容,
很多開發者在讀上篇文章的時候,對這個差分技術比較感興趣,也有很多人跟我一起做交流探討,結合開發者問到的問題,我大概說一下
在單片機上實作差分升級的前置條件,
flash區塊劃分需求: 如下圖所示,一款flash空間為256KB的芯片,flash的劃分,boot一般 4K-6K, app1是應用程式的運行空間,app2應用存盤空間,patch壓縮包預留空間(一般為應用的1/3 - 1/2),
當然如果你有其他的存盤空間,app2 & patch可以放到相應的存盤空間,不受上述規定的制約, 做差分升級對 flash的要求比普通升級要大,如果這塊資源不夠肯定是沒辦法做的,
flash區塊劃分(256KB)
對記憶體的需求: 記憶體主要是跟壓縮演算法有關系,文章中采用的lz77解壓縮,對記憶體要求偏高,此種演算法必須要求單片機提供10KB左右的空間,
有些單片機的記憶體資源還沒辦法達到,針對這一塊需求,我最近正在改進壓縮演算法,新的解壓演算法預計可以做到對記憶體的需求控制在 1KB之內,
這樣覆寫的芯片范圍可以做到很廣,(壓縮率和解壓速度也有望得到提高)
關于壓縮演算法放在boot還是app的優缺點比較:
|
| Boot | App |
| 程式空間 | 演算法大小*1 | 演算法大小*2+ |
| 記憶體空間 | 可獨占,不影回應用記憶體空間 | 應用空間需要劃分預留 |
| 演算法維護 | 不可更新(沒有二級boot前提) | 可更新 |
| 開發便捷 | 固化在boot,應用開發無需關心解壓程序,只要做相應的下載既可 | 應用需要關心整個下載,解壓合并流程,不利于核心演算法的維護管理 |
|
|
|
|
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/225415.html
標籤:區塊鏈
下一篇:阿里云盤萬能邀請碼,某盤徹底慌了
