PIC32mx bootloader_UART_485程序编写

今日头条

1142人已加入

描述

历时两天写PIC32的bootloader程序,一直想写,今天终于静下心来写了

1,,编译环境:MPLAB X IDE V3.55  pickit3  XC32 V1.42

2,,波特率115200 8N1 上位机用的官方的,单片机是PIC32MX695F512L

3,,直接运用harmony里的bootloader程序,因为不是用的官方开发板,当然要根据自己的板子来修改按键,LED,和bootloader存放位置,UART口等;

D:Microchipharmonyv1_06_02appsbootloaderbasic_695_boot bootloader程序

D:Microchipharmonyv1_06_02appsbootloaderbasic_695_app app程序

4,,bootloader和app的配置字要一模一样,不要有任何区别,否则可能会出错;

5.,,bootloader的位置要在boot区;需要修改linker script来放置bootloader,下面是bootloader链接脚本部分.注意:_RESET_ADDR =kseg1_boot_mem !!

/*************************************************************************

* Memory Address Equates

* _RESET_ADDR      -- Reset Vector

* _BEV_EXCPT_ADDR  -- Boot exception Vector

* _DBG_EXCPT_ADDR  -- In-circuit Debugging Exception Vector

* _DBG_CODE_ADDR   -- In-circuit Debug Executive address

* _DBG_CODE_SIZE   -- In-circuit Debug Executive size

* _GEN_EXCPT_ADDR  -- General Exception Vector

*************************************************************************/

_RESET_ADDR              = 0xBFC00000;

_BEV_EXCPT_ADDR          = (0xBFC00000 + 0x380);

_DBG_EXCPT_ADDR          = (0xBFC00000 + 0x480);

_DBG_CODE_ADDR          = 0xBFC02000;

_DBG_CODE_SIZE           = 0xFF0;

_GEN_EXCPT_ADDR          = _ebase_address + 0x180;

6,,.修改bootloader 主程序,改为按键启动bootloader

PIC32

7,,.通过harmony配置为UART4,并且用的是485自动收发,这样就不用在bootloader里面增加485使能控制脚了,并且485距离更远;

8,,.bootloader编译完就OK了,用pickit3下载到单片机里,按住按键重启就进入bootloader了,黄灯和蓝灯亮,绿灯闪烁,红灯是电源灯,因为按键不方便,所以我换成拨码盘上的一位了,接反双手,下面是板子

9,,.以后就可以在线升级了,不需要烧写器了,描述一下具体步骤,接上USB485转换器,485的A,B线接上单片机板子,拨码盘第六位拨上去,上电(如果已经上电的话,可以按复位键复位),打开PIC32UBL.exe,选择相应的串口,点击connect,出现bootloader版本号后,load hex,选择你的app程序,然后直接点击erase-program-verify 至此就成功了,拨码盘拨下来,单片机复位或者重启就好了,就会直接运行app程序哈哈,开心!!

PIC32

后记:

1,,我是先在MPLAB X IDE V4.00上实现的,但是由于不习惯4.0的环境和harmonyv2_04,改编成MPLAB IDE V3.55了,

2,,之前搞过PIC32MX230F064的,没成功,看手册上是比较特殊,况且用的USB,可能空间不够,下次有时间在升级考虑考虑吧.

3,,另外要注意进不了app的情况,查找出的原因是bootloader里面有个判断,如果按键没按下就要进去app里,而不是一直继续等待,源程序问题,要修改哈.另:485自动收发受波特率的限制最高115200,切记

4..经检验debug后会擦除所有程序,,包括bootloader,,并且调试时要把链接文件app.ld移除,调试好了,再放进去,一定要看AN1338文档,非常有用哈

5,,这次就先写bootloader的了,下次写app的,由于是很少写博客,写的不好请见谅,肯定有部分描述的不是很清楚,有任何疑问联系我或者留言哈

审核编辑 黄昊宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分