打印
[单片机芯片]

【CH32X035评估板测评】+IAP升级功能测试

[复制链接]
325|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
forgot|  楼主 | 2023-10-8 22:09 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
在使用M3的片子的时候用串口ymodem协议和以太网的TFTP的IAP升级,所以对IAP的用法也算比较熟悉了。

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

__stack_size = 2048;

PROVIDE( _stack_size = __stack_size );


MEMORY
{  
        FLASH (rx) : ORIGIN = 0x00005000, LENGTH = 42K
        RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 20K
}

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

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

    if(PA0_Check() == 0){
        Delay_Ms(10);
        IAP_2_APP();
        while(1);
    }


写入APP完成:

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


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1257

主题

10847

帖子

51

粉丝