【WCH蓝牙系列芯片】-基于CH582开发板-IAP应用编程

------------------------------------------------------------------------------------------------------------------------------------

  在沁恒的蓝牙芯片CH582开发过程中,用户可以使用IAP例程对MCU中的运行程序进行更新。要实现IAP在线升级,需要将IAP和APP程序配合使用。
  IAP也就是在程序中编程,通过任何一种通信接口下载程序或者将应用数据到储存器中。在IAP例程中提供两个通信接口下载,一个是USB,一个是UART。

 

  APP层的code代码是需要放在IAP层代码后部的,IAP层代码默认占用4K。将IAP大小限定在4k可以保护用户代码不被别人盗取。若烧录APP层的hex文件,hex文件中自带地址信息,上位机会自动识别hex中的地址是否往后偏移了0x1000;若烧录的是bin文件,bin文件中本身不带地址信息,是需要在IAP上位机中填写目标地址0x1000的,否则烧录会异常。
  IAP下载方式有别与原厂的下载方式,与boot按键没有直接联系。IAP下载相当于用户添加了一层自己的boot,与原厂boot无关,原厂的boot是无法修改的,与官方评估板上的BOOT/DOWNLOAD按键无关。进IAP烧录的触发机制由用户代码编写规定,例程中一般是APP层代码中按照按键中断执行复位,复位后从IAP代码开始运行,在IAP代码中接收固件。

  接下来使用CH582对例程中的两种通信方式进行操作演示。
一、APP+USB_IAP的方式:
第一步:利用ISP工具,将例程中的APP和USB_IAP的两个HEX文件同时下载到CH582芯片中。

 第二步:通过串口工具来观察程序运行情况,程序跳转到APP中运行时,会按累计的方式去打印i的值。

第三步:跳转到IAP程序进行程序升级,需要将PB4接地两次,这个时候串口打印的i的值才会停止。
  正好利用板子上KEY按键,因为接着就PB4引脚,直接就可以使用。

第四步:使用WCH单片机IAP下载演示工具进行程序升级操作。
  通过串口调试工具配合IAP升级工具,通过PB4接地之后,i不在计数,然后在通过IAP升级工具,查找设备—>指定下载文件—>程序下载。
  在通过串口可以看到程序升级之后,i在从0开始累加计数。这样利用APP+USB_IAP的方式就实现。

二、APP+UART_IAP的方式:
  在下载程序的时候,只需要将APP和UART_IAP的两个HEX文件同时下载到CH582芯片中。

   在IAP升级时,还是同样的方法,将PB4接地两次,然后通过IAP升级工具,配置串口升级的参数,查找设备—>指定下载文件—>程序下载。然后在串口调试工具那边观察升级之后i的数据从0开始又重新累加。

 注意:在利用串口升级时,由于串口打印和升级通信接口都是采用同一个接口,有时候会冲突,所以在升级的过程中,可以关闭串口打印,或者是换一个升级的通信接口,还可以换一个串口打印口。

posted on 2024-07-03 17:10  凡仕  阅读(120)  评论(0编辑  收藏  举报