<SPAN id="tt_tagDIV" style="word-break:break-all" class="tt_title">謝絕騷撓</SPAN>
謝絕騷撓
该博客的主人很懒,什么都没有留下。  
·PIC18单片机使用Boot...(2007-06-29)
·ZR36050(2007-06-27)
·通用变频器中基于DSP的数字...(2007-06-26)
·红旗飘飘(2007-03-29)
·杭州大厦(2007-03-29)

听月小轩/2008-04-04
精英团队欢迎你和你....
孙志强 (sunzhiqiang444)/2007-01-25
我也想在博客里打广....
洋子 (joyjurate)/2007-01-25
你是打广告的把
自由人 (shanpi2006)/2006-12-19
你是搞广告的啊,我....
金色波浪 (bojinwang123)/2006-11-29
什么乱七八糟的啊




PIC18单片机使用BootLoader
本文章转载中国电子市场(www.dzsc.com)
摘要:介绍在PIC18系列单片机中使用BootLoader的原理、方法及优点;介绍HI-TECH公司使用C语言实现BootLoader的程序,给出详细的使用方法和参数配置方法;针对程序中存在的问题进行探讨和修改,使修改后的程序实用、可靠。另外,探讨对程序数据进行加密、加快下载速度、在RS485/RS422中使用BootLoader的方法和思路。根据此方法,读者可以编写出适合自己使用的BootLoader程序。
     关键词:BootLoader PIC18 IAP 在线升级
     引 言
     PIC单片机的BootLoader属于需要自己写程序的那种,可以根据自己的需要写出各种功能的BootLoader程序来。目前,比较常见的BootLoader程序有Microchip公司的C18版本和著名的PICC编译器厂商HI-TECH公司(以下简称HI-TECH)的PICC18版本。它们的相似之处在于都占用了系统的0x00~0x1FF的程序空间。Microchip的版本是用纯汇编写的,而HI-TECH的版本是用C语言编写的。
     在PIC系列单片机中,只有PIC18系列和PIC16F87X系列的单片机才有IAP功能,才能够使用BootLoader功能。下面只介绍PIC18的BootLoader,PIC16F87X的BootLoader与它类似。
     1 BootLoader程序的工作原理
     BootLoader是一段引导程序,在单片机上电/复位后在用户程序之前先运行。运行后判断当前是否需要进入升级状态。如果不需要升级,就直接运行Flash中原有的程序;如果需要升级,首先擦除旧的程序,然后从串口接收用户程序,同时写入Flash中。接收数据时,需要进行校验,保证接收到的数据是正确的,避免将错误的程序写入到芯片中。
     PIC18单片机只有一块Flash,可以在Flash的任何位置擦写(甚至可以将BootLoader自身擦除);而51单片机一般都是两块Flash,只能够从一块Flash上擦写另一块Flash,而不能擦写自身。
     BootLoader程序原则上是可以放在整个程序空间中的任何位置的,但是为了简单方便、具有通用性和尽量减少对用户程序的影响,使用了从0x00开始的一段程序空间。
     BootLoader程序可以多种方式获取数据,包括串口、并口、I2C、SPI、USB等;但是从实际使用来看,使用串口无疑是最方便的。
     为了使得用户程序可以获得最大的程序空间,就需要BootLoader程序尽可能的简短。在这里,Microchip和HI-TECH都将BootLoader程序设计为小于200H个字节(100H个字)。使用0x00~0x1FF这个区域还有一个重要原因是,这个地址的空间有特殊的写保护特性。
     PIC18单片机虽然有多个中断源,但只支持两级中断,有两个中断向量,分别位于0x08和0x18;而BootLoader程序占用了0x00~0x1FF的空间,这意味着需要重新定位中断向量,使新的中断向量指向用户的中断程序,这样才能保证正常运行用户程序的中断程序。 详细信息请登陆www.dzsc.com

标签: 
作者 zhuhailong110 评论() | 人气()  | 引用(0) | 推荐 | 保存日志 | 问题日志 | 收藏到网摘 | 返回首页