17-STM32物聯網開發WIFI(ESP8266)+GPRS(Air202)系統方案升級篇(單片機升級總結)

http://www.javashuo.com/article/p-qrkdgsiu-cv.htmlhtml

 

爲了讓你們會用我寫的程序,並且敢用,因此我詳細介紹一下個人單片機程序流程服務器

這裏只說明穩定精簡版的STM32程序,由於全部的都是在此基礎上增長的.網絡

很基礎的東西自行修煉:函數

空閒接收數據: http://www.cnblogs.com/yangfengwu/p/8912072.html測試

環形隊列:        http://www.javashuo.com/article/p-nwtjwudm-dc.html spa

單片機IAP:     http://www.javashuo.com/article/p-dlcvocfk-gc.html3d

1-2節服務器:  https://www.cnblogs.com/yangfengwu/category/1383497.html  htm

以這一節爲例:我只是感受這一節應該通用性比較強,AT指令版控制升級,並且回覆的數據須要剔除網絡模塊自身增長的數據blog

http://www.javashuo.com/article/p-uprjcmls-hk.html隊列

 

 

注:

 

 

程序啓動先檢查上次更新的狀態:

上次剛寫完用戶程序;寫入數據頭地址不對;數據接收有誤;用戶程序沒運行起來

 

 

 關於那個0x04:

更新完成是0x01,而後寫入0x04,更新完成會執行咱更新的用戶程序,咱用戶程序裏面再把這個標誌修改成0x00

 

 

若是執行了

 

 到下面就會進入

 本身的模塊已經連接上TCP了,如今就是發http協議,下載數據

 

 

 

 而後根據http獲取的雲端版本號,判斷是否是須要升級

 

 

 而後看串口接收:

我寫的串口接收就是肯定接收到HTTP的頭數據,同時解析出來HTTP發過來的數據個數

而後判斷若是 Status == 2,下次的數據就寫入環形隊列

 

 

 

 若是本身的模塊是http發過來什麼就打印什麼,直接能夠

 

 若是模塊自行添加了數據就須要剔除(只要保證往環形隊列裏面寫的是用戶程序就能夠)

 

 在往環形隊列裏面寫的時候,主函數裏面同時讀出來往Flash裏面寫

 

 寫完,修改寫的狀態,復位重啓

 

其實須要用戶修改的只是

 

 

 

 

 

還有一點 ,64K到256K(不包括)用此程序沒有問題,,256K及其以上的還沒測試,正在作一塊STM32F103RET6的板子,512KB Flash  將用這塊板子測試

我用的64K的

 

 

能夠自行更改,

 

 我爲了你們方便修改用戶程序

你們修改完,IAP程序會打印一下兩個用戶程序的配置

 

 而後配置下

只看一下用戶程序1

 

 

 

 用戶程序生成BIN就能夠了,而後放到雲端

 

升級篇就先到這裏.....學海無涯.

相關文章
相關標籤/搜索