网站大量收购独家精品文档,联系QQ:2885784924

《PIC单片机的Bootoader.docVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《PIC单片机的Bootoader

摘要:介绍在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的空间,这意味着需要重新定位中断向量,使新的中断向量指向用户的中断程序,这样才能保证正常运行用户程序的中断程序。 2 程序的使用方法   (1) HI-TECH的BootLoader程序   在HI-TECH的PICC18编译器的examples文件夹下,有一个Bootldr子文件夹,里面就是HI-TECH的BootLoader程序。这是一个完整的程序,可以直接进行编译,编译后的HEX可以用编程器下载到芯片中。   (2) 用户系统的要求   如果需要使用BootLoader,要求用户系统中有一个RS232串口可以和计算机进行通信。   (3) 程序的配置   下面是程序的主要参数,如果它们设置得不正确,会影响程序的使用。   VERB0:冗余模式,有更多的提示,但是会占用更多的程序空间,建议不用。   BOOT_TIMEOUT:等待超时的时间,0~9s(再长了也没有意义),默认为5s。   BAUD:串口通信的波特率,默认是9 600。   FOSC:用户系统的时钟频率,默认是4 MHz。   NINE:通信是否使用第9位数据位,默认不使用。   FILL_BYTE:程序空间擦除时使用的填充数据,默认值是0xFF。   PROG_START:用户程序的起始位置,默认是0x200。   其他的参数可以先不用管,在需要时再修改,它们不影响通信和下载。   (4) 程序的编译   有两种方法对BootLoader程序进行编译:    命令行方式。使用命令行时,典型的用法是:   picc18 -8f452 bootldr.c -o -zg -noerrata   上面的最后一个参数 -noerrata是PIC18Fxx2系列单片机需要的,若是其他型号,就不用

文档评论(0)

yingrong + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档