手把手学STM32(三)虚拟串口在线升级IAP代码

本文深入解析STM32F407虚拟串口在线升级(IAP)的技术细节,涵盖升级代码实现、跳转机制及注意事项,指导如何在指定地址写入APP代码,确保程序稳定运行。

手把手学STM32(二)虚拟串口在线升级IAP代码篇

    在上一篇博客中我提到了STM32F407+虚拟串口在线升级的基本原理,这一篇我讲一下关于一些,在虚拟串口在线升级的代码和注意的一些细节。
    在线升级原理不清楚的请移步参考上一篇[我用一张图了解虚拟串口IAP](https://blog.youkuaiyun.com/cs111211/article/details/105142049)

1.升级代码讲解

  1)拷贝app代码到flash。
void STMFLASH_Write(u32 WriteAddr,u32 *pBuffer,u32 NumToWrite) 
{
   
    
  FLASH_Status status = FLASH_COMPLETE;
 u32 addrx=0;
 u32 endaddr=0; 
  if(WriteAddr<STM32_FLASH_BASE||WriteAddr%4)return; //非法地址
 FLASH_Unlock();         //解锁
  FLASH_DataCacheCmd(DISABLE);//FLASH擦除期间禁止数据缓存。
   
 addrx=WriteAddr;    //写入起始地址
 endaddr=WriteAddr+NumToWrite*4; //写入结束地址
 if(addrx<0X1FFF0000)   //只有主存储区才执行擦除操作 !
  while(addrx<endaddr)  //对非0xFF的地方先擦除
   if(STMFLASH_ReadWord(addrx)!=0XFFFFFFFF)//擦除非0XFFFFFFFF地方
   {
   
      
    status=FLASH_EraseSector
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值