- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种通用的嵌入式ISP方法
随着嵌入式系统技术的发展,电可擦除的Flash芯片以容量大、价格低、编程方便等优势得到了广泛的应用。由于同一片Flash作业程序存储器的系统无法直接实现在系统编程(ISP)。为了方便现场调试和程序升级,可以采用集成ISP功能较新的MCU(如AVR、部分ARM芯片等),或者采用双Flash设计等方法实现ISP功能。但有不少系统仍然使用不具备直接ISP功能的MCU(如M68K、N80C196等),由于印制版面积、成本等原因的考虑也没有采用双Flash芯片,此类系统在程序升级时通常需要如编程器、仿真器等特定工具,在现场应用时不很方便。为解决这些系统的ISP问题,本文以MC68332平台为例提出了一种通用的ISP方案。
?????? 1 方法分析
对于使用M68K这类不具备ISP功能的MCU系统,进行ISP设计必须满足以下几个条件:
(1)程序空间和数据空间统一编址,程序可以在RAM中运行;
(2)Flash芯片正确连接了写信号;
(3)拥有能放下update程序并让其正常工作的额外程序/数据空间;
(4)具备某种通信能力(如以太网、串口、CAN、MODEM等);
满足了这四个条件,就可以按照本文的方法进行ISP设计。针对自编程过程中文件出错、断电等特殊情况的容错程度不同,可以有如下两种方案。
1.1 方案1——自编程过程是安全可靠的,不会出现异常情况
这种情况相对简单一些,整个程序可以分为两个独立的部分完成,一是升级程序(称为update程序),它通过通信接口从主机接收程序数据到RAM空间,并对数据进行CRC校验以保证数据的正确性,在校验正确后将数据写到程序存储器的指定地址空间。如果RAM空间较小,可以接收一页、校验一页、写入一页,分次完成。由于程序存储器写操作过程必须连续,不能被打断,所以update程序必须在链接时指定在RAM地址空间运行。
??? 另一部分是正常的程序(称为normal程序),这是正常编译的在程序存储器空间运行的程序,除了正常的工作之外它还需判断(通过通信命令或者查询一个输入状态等)是否应该转到升级模式,如果是,则将update程序复制到指定的RAM空间并转去执行update程序。
程序完成需要将update和normal通过编程通过编程工具分别固公到程序存储器上的指定地址(注意:在固化第二个程序时不可损坏第一个程序内容),也可将两个文件合并,一次固化到程序存储器,update程序作为normal程序的数据信息而存在,如图1所示。这样正常运行时程序运行在normal部分,update程序得不到运行;在升级模式时normal程序把程序存储器中的update部分复制到其运行空间(RAM)并执行。如果在自编程过程中出现灾难性故障,那么程序存储器旧的normal程序已经擦除而新的normal程序还未写入或者未完全写入,这都将导致程序存储器中的程序数据不再完整,此时必须用专用工具写normal程序,才能让系统可再次自编程。
1.2 方案——考虑自编程过程中的异常状况,做到障保护
这种情况下需要把整个工作分为三部分完成,第一是引导程序(称为BOOT程序);第二是升级程序(update程序);第三是正常程序(normal程序)。BOOT程序负责控制程序的运行模式:升级模式、正常模式。如果进入升级模式,BOOT程序需要将update程序复制到指定的运行空间,并转入执行update程序;如果进入正常模式,BOOT需要做的工作就十分简单,可以直接把控制权交给正常程序。为了使各个程序可以单独调试,不要依赖其它程序来初始化硬件。Update程序所要完成的功能与方案1中的相同,此时要注意update在自编程时不能破坏BOOT程序。此时normal程序不再负有复制update程序到指定运行空间的任务,完全按照正常的模式运行。
??? 按照这种方案,BOOT程序和update程序是自编程设计的核心内容,只要保证这部分数据的完整性,就能拥有在线编程的能力,要在软件对这部分数据区进行保护,保证在第一次写入程序存储器后就不会再被擦除。这样即使在自编程时发生灾难性故障,BOOT程序和update程序是不会被破坏的,仍然可以继续运行,保证下次仍然可以进行自编程。
同样,程序完成后也必须分别固化到程序存储器的指定空间,以保证程序的正常运行,程序分布如图2所示。
?????? 2 在MC68332目标平台上的实现(采用方案2)
目标平台的基本配置如下:
CPU为MC68332,Fl
ash为512KB(Am29F400B),RAM为1MB,通信口为10Mbps以太网。
在编写程序之前首先应该设计好程序在Flash和RAM空间的分布,按照方案2的思路考虑平台的硬件配置,具体设计如下:
(1)BOOT程序通过MC68332的一个I/O状态判定程序的
您可能关注的文档
最近下载
- 吊篮日常检查记录.doc VIP
- 16S401 管道和设备保温、防结露及电伴热.docx VIP
- 2025年黑龙江、吉林、辽宁、内蒙古高考地理试题评价分析与教学反思理试题评价分析与教学反思.docx
- 2019人教版高中数学A版 必修第2册《第九章 统计》大单元整体教学设计[2020课标].pdf
- 人教版(2024)八年级上册英语Unit 1 Happy Holiday教案.docx
- 建筑装饰设计基础第1章电子课件 .pptx VIP
- 心理健康教学课件:七年级上第1课走进心理健康课.pptx
- 天然气调压器切断阀介绍.ppt VIP
- 对外汉语时间教学.ppt VIP
- 《人造板工艺学》课件 第十三单元 生产工艺设计.ppt VIP
文档评论(0)