下面开始具体操作(稍微带一点理论,研究不深)

编译环境:mplab x ide v5.5 mhc:harmoney v3.0

第一步:创建BootLoader工程

创建工程(如图1)这里不展开讲,只讲注意点,

注意:

1、配置好板子上对应引脚(如图2),不然无法工作

2、注销掉按键代码(如图3)

3、检查宏定义(如图4),这个宏定义如果没有会导致app检测到固件更新按键,重启后一直烧写,不跳转到新app

BIOS串口设置在哪 串口bootloader_固件

图1

BIOS串口设置在哪 串口bootloader_配置文件_02

图2

BIOS串口设置在哪 串口bootloader_单片机_03

图3

BIOS串口设置在哪 串口bootloader_配置文件_04

图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文件也正常,就是无法运行,我尝试了好久不行。

BIOS串口设置在哪 串口bootloader_固件_05

图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这个旁边,跟它在同一个文件夹中

BIOS串口设置在哪 串口bootloader_BIOS串口设置在哪_06

图6

第三步:实战

1、用烧写器(比如kit3.5/kit4)烧写Bootloader代码

2、编译app程序生成bin文件

3、打开bat文件烧写bin文件(如图7)

4、烧写完检查程序是否运行,是否是你app程序,如果没有对照上述文档检查一下,祝你们调试一次成功!

5、按住固件更新开关,等待板子重启,进入BootLoader程序下载模式,然后再到3步骤用bat文件烧写bin文件,这样就大功告成了,不用烧写器也可以下载更新固件了。

BIOS串口设置在哪 串口bootloader_固件_07

图7