PIC32 Boot Loader 竟然可以用了,不过有点问题!

2020-02-08 09:03发布

环境:MPLAB_IDE_8_50    MPLAB C Compiler for PIC32 MCUs V1.10(B)


1. 下载Microchip官方网站提供的“pic32mx_serial_boot_loader_v1_0_00”

2. 安装pic32mx_serial_boot_loader_v1_0_00.exe,路径默认。

3. 打开“C:pic32_solutionsserial_boot_loadersourceoot_loader”文件里的MPLAB工程文件。选择好MCU类型(我的是PIC32MX440F256H)。
   编译后用烧写工具(我的是ICD3)program到MCU里。这就把BOOT LOADER的引导代码写到了MCU的boot区域。

4. 打开“C:pic32_solutionsserial_boot_loadersourcedemo_application”文件里的MPLAB工程文件。同样要选择MCU类型,编译后会生成一个HEX文件。

5. 将第3步中烧写了代码的MCU目标板通过UART2与电脑的RS232连接,波特率选38400。打开“C:Program FilesPIC32BL”里的PIC32BL.exe。选择好COM端口,
   波特率当然是38400。

6. 目标板上电,点击第5步中所打开软件的“Connect to Device”,如果连接成功就会显示MCU的型号。

7. 之后Open HEX File,把第4步中生成的HEX文件载入。载入成功后PIC32 Boot Loader这个软件的窗口中灰 {MOD}框框会变成彩 {MOD}。

8. 最后点击“Write Device”就会把刚才载入的HEX文件,烧写到MCU的PFM区域里。再点击“Launch User Application”,或者重启目标板。
   MCU就会先从BOOT区启动,然后跳转到PFM区域执行应用代码。

注意事项:
一。 我按照PIC32 serial Boot Loader Help文档里所说:
     “The following are necessary steps to create a user application that is compatible with the boot loader:

      1. Create MPLAB project and select the PIC32 device of your choice.
      2. Add a C Source file in your project.
      3. Copy fuse (pragma) settings from the the Boot Loader main.c file (located at SourceootLdr) and paste it in your project C source
         file.
      4. Copy procdefs.ld from C:Program FilesMicrochipMPLAB C32pic32-libsproc<PIC32 Part Number> to your project folder.
      5.Edit the procdefs.ld file in your project folder and make the following changes..........................”
      在我的应用程序中,编译始终不成功,后来才知道procdefs.ld 这个文件不是完整的连接文件,用附件中的linkerscript.ld才编译通过。

二。demo_application这个工程生成的HEX文件才可以通过BOOT引导到PFM,我自己的应用程序引导时总是弹出:“run-time error'6'”这个东东,始终写不
     不能引导。不知道是因为我的应用程序生成的HEX文件太大(538k),还是以为PIC32 Boot Loader这个VB程序有问题。

说明:我的BOOT代码(即“C:pic32_solutionsserial_boot_loadersourceoot_loader”文件下的)让RF0外接的一个绿 {MOD}LED闪烁。
      我的APP代码(即“C:pic32_solutionsserial_boot_loadersourcedemo_application”文件下的)让RF1外接的一个红 {MOD}LED闪烁。
      所以,如果程序只运行在BOOT区,只有绿 {MOD}LED闪烁;一旦程序运行在PFM区,就只有红 {MOD}LED闪烁。


Microchip网上的例子:ourdev_548065.rar(文件大小:2.27M) (原文件名:pic32mx_serial_boot_loader_v1_0_00.rar)
在应用程序中需要添加的连接文件ourdev_548066.rar(文件大小:4K) (原文件名:linkerscript.rar)
我更改过的Boot Loaderourdev_548067.rar(文件大小:58K) (原文件名:boot_loader_eagle.rar)
我更改过的Demo Applicaionourdev_548068.rar(文件大小:41K) (原文件名:demo_application_eagle.rar)


希望高手们指点一下,若有不清楚的地方,可以看PIC32 serial Boot Loader Help帮助文件,或者给我留言!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。