今日头条
历时两天写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
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程序哈哈,开心!!
后记:
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的,由于是很少写博客,写的不好请见谅,肯定有部分描述的不是很清楚,有任何疑问联系我或者留言哈
审核编辑 黄昊宇
全部0条评论
快来发表一下你的评论吧 !