本文主要是介绍CH58X使用USB HID进行IAP注意事项——笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
CH58X使用USB HID进行IAP注意事项——笔记
一、背景
- 基础
单片机使用CH582M,并使用USB HID进行IAP升级。 - 方案
方案1:APP+BOOT方案,可以只安装APP就可以运行,APP中后续安装BOOT程序和后面更新也方便。
方案2:经典IAP方案,BOOT+APP,烧录BOOT后,再通过自己的上位机烧录APP。这样就可以保证只要不删除BOOT,可以一直不崩。上述程序如果烧录中断,导致APP出错需要ISP下载。同样,这种方案需要APP跳转BOOT,但是APP需要删除中断,很麻烦。 - 决定,采用方案2
二、踩坑
- 可以通过HID写入APP数据,但是,跳转APP程序一直失败。
三、注意事项
- 官方说,BOOT程序最好不要有中断。如果有中断,需要在跳转前,或者APP初始化时钟后马上删除中断标志位。因此,在循环中运行USB_DevTransProcess();
- 边erase边写是有问题的。开始想着不断写入,2048的位置自动erase后写入即可。但是后来发现,第一个pase写入后,数据还是和erase之后一样的数据,最终无法跳转成功。最终修改成单独的指令进行erase,在erase全部之后,再进行写入,最后进行跳转。
- 需要在LD文件中,设置合理的APP位置。
- 需要在BOOT程序中,程序前加入__HIGH_CODE标志,让其运行在ram中。
这篇关于CH58X使用USB HID进行IAP注意事项——笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!