这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 8位USB单片机CH552从用户程序以IAP跳转到Bootloader进行升级的

共1条 1/1 1 跳转至

8位USB单片机CH552从用户程序以IAP跳转到Bootloader进行升级的源码

工程师
2021-10-17 10:19:39     打赏

CH552是一款带USB接口功能的8位单片机,内置Bootlloader功能,用户的IAP 实现Bootloader 的方法、源码如下:


* Description        : 上电运行后P17LED灯闪烁,当检测“EnableIAP”脚为低电平后,将从用户程序跳转至BOOT,通过BOOT升级用户程序 

*******************************************************************************/

#include "./Public/CH554.H"                                                    

#include "./Public/Debug.H"


sbit EnableIAP  = P1^6;         

#define BOOT_ADDR  0x3800


#pragma NOAREGS


/*******************************************************************************

* Function Name  : main

* Description    : 主函数

*                :

* Input          : None

* Output         : None

* Return         : None

*******************************************************************************/

typedef void( *pTaskFn)( void );


pTaskFn tasksArr[1]; 

 

void main( void ) 

{

UINT16 i=0;

    while(1){

    SCK = ~SCK;                                                              //P17闪烁

    mDelaymS(50);

    if(EnableIAP == 0){                                                      //P16引脚检测到低电平跳转

      break;

    }

  }

  EA = 0;                                                                    //关闭总中断,必加

tasksArr[0] = BOOT_ADDR;

  mDelaymS( 100 );

  (tasksArr[0])( );                                                          //跳至BOOT升级程序,使用ISP工具升级

  while(1); 

}





关键词: CH552     Bootloader     IAP    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]