[单片机芯片] 【CH32X035评估板测评】+IAP升级功能测试

[复制链接]
 楼主| forgot 发表于 2023-10-8 22:09 | 显示全部楼层 |阅读模式
在使用M3的片子的时候用串口ymodem协议和以太网的TFTP的IAP升级,所以对IAP的用法也算比较熟悉了。

M3在MDK下的APP固件烧写位置是在魔术棒里面进行填入,CH32X035的APP是要在工程下的Link.ld文件中更改FLASH和RAM起始位置和大小。
  1. ENTRY( _start )

  2. __stack_size = 2048;

  3. PROVIDE( _stack_size = __stack_size );


  4. MEMORY
  5. {  
  6.         FLASH (rx) : ORIGIN = 0x00005000, LENGTH = 42K
  7.         RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 20K
  8. }

M3在MDK下APP生成.BIN是用过一个内置的插件命令完成,MounRiver Studio中是通过如下图的配置可以生成.bin文件。
微信图片_20231008203547.png

以上两点是最大的区别了。其他都是雷同。
生产的BIN文件
微信图片_20231008203551.png
Demo给出了一个bootloader程序是检测PA0输入低电平进行APP跳转,并且可以通过USB进行APP的写入。这会用到一个WCHMcuIAP_WinAPP的USB写入工具,还算比较简单好用。
  1.     SystemCoreClockUpdate();
  2.     Delay_Init();
  3.     USART_Printf_Init(115200);
  4.     printf("SystemClk:%d\r\n", SystemCoreClock);
  5.     printf("ChipID:%08x\r\n", DBGMCU_GetCHIPID() );

  6.     if(PA0_Check() == 0){
  7.         Delay_Ms(10);
  8.         IAP_2_APP();
  9.         while(1);
  10.     }

微信图片_20231008203531.png

写入APP完成:
微信图片_20231008203542.png

如果在APP中写入升级的相关功能函数,如通讯口令或按键检测等就可以让设备进行软件复位后回到bootloader中进行再次的APP固件升级。
当然如果不采用这个USB工具就需要自己改写bootloader进行如串口或者其他的数据通讯方式进行固件的升级。


您需要登录后才可以回帖 登录 | 注册

本版积分规则

2064

主题

14488

帖子

59

粉丝
快速回复 在线客服 返回列表 返回顶部

2064

主题

14488

帖子

59

粉丝
快速回复 在线客服 返回列表 返回顶部