This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

这个c2000 BootLoader思路是否可行?

看了一些串口烧写flash的项目和工具,基本上都要自己配置GPIO,实际上,C2000默认GPIO状态是boot to flash的,而选择引导方式不一定只有GPIO一种方式,对于很多已有的板卡,修改硬件加入跳线是一件很麻烦的事情。是否可以这样,保留一块FLASH,比如FLASHA,将写好的Bootloader放到这块FLASH中,每次上电先执行该bootloader中的代码,在一定时间内判断外设(SCI、SPI、IIC、CAN)是否有升级指令发送过来,过了这段时间没有升级指令,然后调用FLASHA之外的_c_int00。如果接收到升级指令,按照常规的方法升级FLASHA之外的用户程序。FLASHA和其余FLASH中的代码在JTAG烧写的时候注意区分。STC的单片机烧写内部FLASH应该就是这个思路。这样可以根据不同办卡硬件的编写不同的bootloader,而且按照经验c2000的MCU FLASH绝大多数时候都是绰绰有余的,拿出一块来做bootloader不是什么大的问题,用户代码传输方式也可以有多种选择,232,485都没有问题。bootloader写在普通flash而不是OTP中,可以多次写入,方便修改调整。