STM32/STM8技术论坛
直播中

张东

6年用户 4经验值
擅长:可编程逻辑 电源/新能源 模拟技术 嵌入式技术
私信 关注
[问答]

请问IAP远程烧录的主程序如何让其自动运行

各位大神你们好,我参考诸多大神东平西凑了一个STM32f4 IAP 程序 主要依靠正点原子的。 目前串口通讯良好,程序也可通过串口助手发送,就是无法运行app程序,求解:
贴上部分程序,以及源文件:
int main(void)
{
u16 oldcount=0;        //老串口接受数据
u16 applenth=0;        //接收到的app代码长度
Stm32_Clock_Init(336,8,2,7);
delay_init(168);
LED_Init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
My_USART2_Init();


while(1)
{        
   if(USART_RX_CNT)
  {
   if(oldcount==USART_RX_CNT)//新周期没有收到任何数据,认为本次数据接受完成
   {
    applenth=USART_RX_CNT;
    oldcount=0;
    USART_RX_CNT=0;
   }
   else
   {
    oldcount=USART_RX_CNT;                        
   }
  }

   if(((*(vu32*)(0X20001000+4))&0xFF000000)==0x08000000)//判断是否为0x8xxxxxx
  {         
   iap_write_appbin(FLASH_APP1_ADDR,USART_RX_BUF,applenth);//更新FLASH代码
  }

  if(((*(vu32*)(FLASH_APP1_ADDR+4))&0xFF000000)==0x08000000)//判断是否为0X08XXXXXX.
   {         
   iap_load_app(FLASH_APP1_ADDR);//执行FLASH APP代码
  }
}
}

    TEST.zip (2019-4-15 21:42 上传)

    10.54 MB, 下载次数: 36

更多回帖

发帖
×
20
完善资料,
赚取积分