新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > STM32實現IAP“>STM32存儲器 — STM32實現IAP

STM32實現IAP“>STM32存儲器 — STM32實現IAP

作者: 時間:2016-11-28 來源:網絡 收藏
在對STM32存儲器結構及相關知識了解后,我們就可以進行IAP的設計了。

在上一篇筆記中,進行了一個簡單的IAP程序結構,以及和User App程序的相互聯系的系統設計。

本文引用地址:http://2s4d.com/article/201611/322624.htm

本篇對IAP實現的細節(jié)進行了較為詳細的論述,包括源碼結構的設計;我們從上位機(PC—C#)和下位機(MCU—C)共同描述IAP功能的實現過程。

1 STM32的IAP實現平臺

IAP功能的實現需要兩個方面(上位機和STM32上的IAP程序)的密切合作。因此,我們除了需要知道STM32芯片上的IAP程序結構,我們還需要了解上位機的程序結構,這樣才能使上位機和STM32很好的相互工作。

下位機(指的是STM32構成的單片機系統):

本下位機系統使用C語言進行編程,項目功能是實現IAP(In Application Programming);

下位機使用IAR Embedded Workbench for ARM 6.10 Kick start開發(fā)環(huán)境;

使用STM32F103C8-PKT開發(fā)板進行調試和驗證;

上位機(指的是PC構成的PC系統):

本上位機系統使用C#語言進行編程,項目功能是配合下位機實現IAP;

上位機使用Visual Studio 2008開發(fā)環(huán)境;

使用一般的PC機進行調試和驗證;

上位機和下位機通訊(串口通訊):

上下位機之間通過串口進行通訊;

上位及通訊一定的通訊協議將需要更新的程序通過串口傳輸給IAP程序,再由IAP程序將數據寫到用戶的Flash區(qū)域;從而達到IAP功能,如圖所示:

2 STM32和上位機的通訊協議

如何將更新程序的bin文件數據傳輸到STM32系統內部?

如何將串口接收到的一連串數據給解析出來,進行有效數據的寫Flash?

如何得知數據傳輸的開始?

又如何得知數據傳輸的結束?

……

以上的種種疑惑,都是我們必須要關心的問題;而這些問題都隱藏著一樣的本質——如何獲取PC端有用的信息?

對于如何獲取有用信息,有幾個問題需要考慮:

通過何種方式獲取?——我們采用USART;

何種數據才是有用的?——我們指定一個簡單的協議;

又是如何實現IAP程序和APP程序的切換的;

在硬件上,USART的實現較為簡單;我們重點在于協議的設計和理解;

3 STM32—IAP程序的實現

1、IAP通過USART和上位機通訊,實現數據的下發(fā)和在應用編程;如圖:

2、上位機和STM32系統USART之間通過一個簡單的協議進行連接;

當連續(xù)收到4次0xBB后,表示開始接收用戶代碼;

當連續(xù)收到4次0xEE后,表示結束接收用戶代碼;如圖:


上一頁 1 2 下一頁

關鍵詞: STM32存儲器IA

評論


技術專區(qū)

關閉