下面开始具体操作(稍微带一点理论,研究不深)
编译环境:mplab x ide v5.5 mhc:harmoney v3.0
第一步:创建BootLoader工程
创建工程(如图1)这里不展开讲,只讲注意点,
注意:
1、配置好板子上对应引脚(如图2),不然无法工作
2、注销掉按键代码(如图3)
3、检查宏定义(如图4),这个宏定义如果没有会导致app检测到固件更新按键,重启后一直烧写,不跳转到新app
图1
图2
图3
图4
第二步:创建app工程
这里我用的是harmony自带的工程,工程路径(在Harmony3的安装路径里面)D:\Users\62589\Harmony3\bootloader_apps_uart\apps\uart_bootloader\test_app\firmware\pic32mk_gp_db.X
用它这个工程比较方便,里面写好了固件更新代码,不过里面的引脚配置需要改一下,改成适合自己板子的,也可以自己创建工程。
下面说说我遇到的问题,也是一般人过不去的坎(或者说需要很长时间才能过得去),那就是让新手非常头疼的linker files里的配置文件。
1、配置linker files
让新手非常头疼的linker files里的配置文件,是我公司的同事给我写的。配置文件我直接给出如下,大家下载下来直接替换掉就行了。
链接:https://pan.baidu.com/s/17Xt8r_nPuGooiED4Q7F6ig?pwd=8888
提取码:8888
2、bin文件生成
配置好了linker files,bin文件生成只需要在项目属性里配置一下就行了(如图5),bin文件指令
${MP_CC_DIR}/xc32-objcopy -I ihex -O binary ${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.hex ${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.bin
有人说生成的bin文件有45M那么大,没错开始我也是,后来用了同事给的linker files文件后就正常了,当然官方给的linker files生成的bin文件也正常,就是无法运行,我尝试了好久不行。
图5
3、配置【程序下载】上位机
我还是用的官方的python上位机(如图6),具体参考官方文档
MPLAB® Harmony 3 之基础篇(16)-- 如何使用 UART bootloader
这里直接给出我的bat文件类容
python D:\Users\62589\Harmony3\bootloader\tools\btl_host.py -v -i COM12 -d pic32mk -a 0x9D000000 -f pic32mk_gp_db.X.production.bin
pause
注意:
1、这里python需要调用这个路径D:\Users\62589\Harmony3\bootloader\tools\btl_host.py下的btl_host.py文件,你们可以打开这个文件看看,这就是上位机代码。
2、COM12这里你们改成自己的端口
3、pic32mk_gp_db.X.production.bin这个改成自己的bin文件名称
4、bat文件放在pic32mk_gp_db.X.production.bin这个旁边,跟它在同一个文件夹中
图6
第三步:实战
1、用烧写器(比如kit3.5/kit4)烧写Bootloader代码
2、编译app程序生成bin文件
3、打开bat文件烧写bin文件(如图7)
4、烧写完检查程序是否运行,是否是你app程序,如果没有对照上述文档检查一下,祝你们调试一次成功!
5、按住固件更新开关,等待板子重启,进入BootLoader程序下载模式,然后再到3步骤用bat文件烧写bin文件,这样就大功告成了,不用烧写器也可以下载更新固件了。
图7