在对STM32存储器结构及相关常识了解后,咱们就可以进行IAP的规划了。
在上一篇笔记中,进行了一个简略的IAP程序结构,以及和User App程序的彼此联络的体系规划。
本篇对IAP完成的细节进行了较为具体的论说,包含源码结构的规划;咱们从上位机(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开发环境;
运用STM32F103C8-PKT开发板进行调试和验证;
上位机(指的是PC构成的PC体系):
本上位机体系运用C#言语进行编程,项目功用是合作下位机完成IAP;
上位机运用Visual Studio 2008开发环境;
运用一般的PC机进行调试和验证;
上位机和下位机通讯(串口通讯):
上下位机之间经过串口进行通讯;
上位及通讯必定的通讯协议将需求更新的程序经过串口传输给IAP程序,再由IAP程序将数据写到用户的Flash区域;然后到达IAP功用,如图所示:
2 STM32和上位机的通讯协议
怎么将更新程序的bin文件数据传输到STM32体系内部?
怎么将串口接纳到的一连串数据给解析出来,进行有用数据的写Flash?
怎么得知数据传输的开端?
又怎么得知数据传输的完毕?
……
以上的种种疑问,都是咱们必需求关怀的问题;而这些问题都隐藏着相同的实质——怎么获取PC端有用的信息?
关于怎么获取有用信息,有几个问题需求考虑:
经过何种方法获取?——咱们选用USART;
何种数据才是有用的?——咱们指定一个简略的协议;
又是怎么完成IAP程序和APP程序的切换的;
在硬件上,USART的完成较为简略;咱们要点在于协议的规划和了解;
3 STM32—IAP程序的完成
1、IAP经过USART和上位机通讯,完成数据的下发和在使用编程;如图:
2、上位机和STM32体系USART之间经过一个简略的协议进行衔接;
当接连收到4次0xBB后,表明开端接纳用户代码;
当接连收到4次0xEE后,表明完毕接纳用户代码;如图: