
IAP
文章平均质量分 65
IAP
PWRJOY
如对某些文章有见解/困惑,欢迎互相交流进步。
展开
-
M0_IAP
一个物联网的项目,主要就是MCU+4G模块,MCU通过AT指令使用4G模块,利用MQTT协议连接阿里云平台,嵌入式和后端通过阿里云平台交互数据;型号是HK32F030R8T6,M0内核,内部Flash大小64K,SRAM大小10K;IAP升级的流程是:平台把要更新的代码分成一个个包,通过阿里云平台给4G模块,4G模块再转发到MCU的串口,所以总体就是一个串口IAP的功能;...原创 2022-08-11 17:18:27 · 965 阅读 · 0 评论 -
IAP_6_内部Flash写
正点的代码,很好用哟。库函数也把很多工作都做了,直接调用即可,具体操作读手册。1、内部Flash写解锁,FLASH_Unlock();读要写的地址是否为0xFF,是则用FLASH_ProgramHalfWord写入数据,不是则页擦除FLASH_ErasePage后写入。大容量一页是2K字节,小容量一页是1K字节。上锁,FLASH_Lock();2、代码2.1、一页的容量#define STM32_FLASH_SIZE 128 //所选STM32的FLASH容量大小(.原创 2020-11-23 15:53:31 · 398 阅读 · 0 评论 -
IAP_5_读取内部Flash的数据
1、内部Flash2、读取内部Flash对于内部Flash,可以在通用地址空间直接寻址。直接寻址的意思就是,可以通过指针直接取地址的内容。读取 8位,*(uv8 *)ADDR;读取16位,*(uv16 *)ADDR;读取32位,*(uv32 *)ADDR;......原创 2020-11-21 17:47:23 · 1646 阅读 · 0 评论 -
IAP_4_串口通讯准备
1、多一个0x00STM32上电会多一个数据,0x00,用电脑的串口助手调试的时候是没有的哦,所以我用串口助手看没问题,直接上来就开始用单片机接收了,结果不对,把接收到的数据打印出来一看,前面多了一个0x00。直接把0x00去掉,并不是一个好的解决方式,在接收之前先进行一次通讯,做为开始传输的标志。STM32_TX发送0x56,做为开始传输的标志。STM32_RX接收到0x56,做为开始结束的标志。......原创 2020-11-21 10:26:08 · 412 阅读 · 0 评论 -
IAP_3_代码大小配置、生成bin文件
1、代码大小配置需要配置Bootloader和APP的程序起始地址和大小。所用STM32芯片的容量大小是128K,分配给Bootloader的大小是20K,剩下的108K分配给APP。2、生成bin文件生成bin文件需要在Keil的Options里配置一下,在编译之后调用生成bin文件的exe.E:\Keil_v5\ARM\ARMCC\bin\fromelf.exe --bin -o ..\OBJ\NAME.bin ..\OBJ\NAME.axf需要替换两部分,一个是安装Keil的from原创 2020-11-21 16:24:08 · 868 阅读 · 0 评论 -
IAP_2_IAP执行流程、实现思路
1、IAP的程序执行流程被更新的单片机要有两个程序,一个是“Bootloader”,一个是“APP”。首先执行“Bootloader”,用来决定是否更新APP,接收串口数据,然后跳转到真正想运行的“APP”,具体运行流程图如下。从栈顶地址开始,从“中断向量表1”找到复位中断,处理复位中断函数;执行IAP的main函数;跳转到“中断向量表2”,找到复位中断,处理复位中断函数;执行APP的main函数;2、关于bin文件2.1、为什么要用bin文件一般情况下,我们生成的是hex文件,he原创 2020-11-20 17:14:47 · 1373 阅读 · 2 评论 -
IAP_1_几种下载程序的方式
1、关于烧录程序1.1、串口ISP下载刚开始学习单片机的时候,用的是串口在线编程工具,软件上51用的是STC-ISP,STM32用的是MCU-ISP.这种方法就是,将电脑的USB口用CH340转成串口,这个串口与单片机的串口进行通讯,下载程序。51这个界面打开很怀念,初识那年我大一,今年我毕业了。这是用STM32的ISP下载软件。1.2、SWD下载这种方式是开发的时候常用的,一共需要四根线,VCC、GND、SWDIO、SWCLK.不需要CH340芯片,也不需要额外的ISP下载软件,直原创 2020-11-20 10:18:38 · 1775 阅读 · 0 评论