您的位置 首页 报告

如何用C言语完成自己的PIC16 serial bootloader

如何用C语言实现自己的PIC16 serial bootloader-Serial bootloader是一种非常方便使用并且低成本的程序烧写的方法。一般情况,每次烧写Microchip单片机我们都需要将烧录器PICKit3或ICD3接上目标板,然后在电脑上使用Microchip IPE或MPLAB X就可以直接烧写Hex文件到目标板中。使用serial bootloader 就可以不需要插拔烧录器,对开发工程师来讲非常的方便。Serial bootloader需要用到单片机的串口,所以单片机端需要如下硬件电路,其中DB9串口是和电脑的串口相连。

我的第一款自己的serial bootloader是为Microchip PIC16单片机写的UART bootloader,我命其名为HyperBootloader_PIC16. 为什么取这个姓名,下面会讲。许多朋友可能会问为什么要自己写bootloader, 百度上一搜,有不少下载下来直接就能够用。比方ds30_Loader 就很不错,免费,还支撑Microchip许多系列的单片机。是没错,可是网上搜到的bootloader用C言语写的少得不幸,或许不能用,或许不是用XC8编译的(Microchip 的C编译器)。它们绝大多数都是用汇编写的,包含ds30_Loader。关于不怎么用汇编的我感觉很头疼,这些bootloader也不太好修正,比方增加个自己需求的功用都比较困难。所以我决议自己用C言语写PIC16 serial bootloader。说干就干,原本以为是小菜一碟,没想到写一个安稳好用又节约空间的bootloader也不简单,这是后话。在讲怎么完成自己的PIC16 serial bootloader之前,我先讲下serial bootloader的基础知识。假如不需求了解的,请越过这部分。

Serial bootloader之ABC

Serial bootloader是一种十分便利运用而且低成本的程序烧写的办法。一般状况,每次烧写Microchip单片机咱们都需求将烧录器PICKit3或ICD3接上方针板,然后在电脑上运用Microchip IPE或MPLAB X就能够直接烧写Hex文件到方针板中。运用serial bootloader 就能够不需求插拔烧录器,对开发工程师来讲十分的便利。Serial bootloader需求用到单片机的串口,所以单片机端需求如下硬件电路,其间DB9串口是和电脑的串口相连。

怎么用C言语完成自己的P%&&&&&%16 serial bootloader

Serial bootloader 和应用程序相同也是烧录到程序存储器中,serial bootloader 和应用程序在程序存储器中需求分隔放置。所以serial bootloader一般有两种放置方法,一种是放置在程序存储器头部,另一种是放置在程序存储器底部,如下图所示。

怎么用C言语完成自己的P%&&&&&%16 serial bootloader

Serial bootloader 能够运用烧录器PICkit3或ICD3烧到方针板上,之后更新应用程序就不需求烧录器了。方针板和电脑经过串口相连,电脑上运转一个串口通讯程序,将应用程序的Hex文件经过串口传给serial bootloader, serial bootloader 再将接收到的Hex数据烧录到程序存储器的正确的方位上。接下来便是讲今日的主角HyperBootloader_PIC16——我自己写的第一款PIC16单片机C言语 serial bootloader。

HyperBootloader_PIC16

HyperBootloader_PIC16我是仿照HI-TECH的PICC bootloader,因为我是用XC8的编译器的,所以有许多改动。上面有说到bootloader在程序存储器中要么是在头部要么是在底部,而HyperBootloader_PIC16 是在程序存储器的底部。与它通讯的电脑端的串口通讯程序是超级终端——HyperTerminal. 这也是它命名的由来。

首要代码段

HyerBootloader_PIC16是一款用C言语写的只占很少空间的serial bootloader。不到0x200程序字空间。 完成逻辑也很简单,首要代码段如下。

/*receiveahexfileviatheserialportandwriteittoprogrammemory*/for(;;)//loopunTIlendoffile{typedefunion{unsignedintword

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/baogao/346864.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部