新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 离线加密编程器中的BootLoader程序设计

离线加密编程器中的BootLoader程序设计

作者: 时间:2011-01-19 来源:网络 收藏


2.3 文件类型

整个工作过程涉及以下几种文件:

①加密下载文件:该文件是HEX文件经过加密后得到的文件,其中包含密钥信息和编程数据。
②注册申请文件:该文件包含申请注册所需编程器的内部信息及客户信息。
③注册文件:该文件是在注册申请文件的基础上,IP拥有方添加注册信息,包括各种参数。
④授权申请文件:该文件用来向IP拥有方购买授权下载次数,内容包括编程器信息、客户信息,以及交易达成的各种协议。
⑤授权文件:该文件在授权申请文件的基础上添加授权次数及说明。
注:其中注册申请文件、授权申请文件是通过客户端软件从编程器中提取的;注册文件、授权文件通过客户端软件下载到编程器。

3 编程器工作流程

编程器的工作流程如图2所示。下载到编程器的加密数据需要存入具有SPI接口的大容量外存AT45DB041B 中,然而Atmegal69P(V)的SPI接口需要用来对目标板进行编程,所以只能采用软件模拟SPI接口来对AT45DB041B进行读写操作。对目标板进行编程时,为了防止通过抓取SPI接口的时序来得到有效的编程数据,首先编程目标板的引导程序,然后对目标板下载加密数据,通过引导程序对数据进行解密后再进行目标板的编程操作。这样做的好处是,通过数据加密,使得SPI总线上传输的数据均为加密信息,即使得到SPI总线上的时序,也不能使用。目标板的BootLoader程序将接收到的加密数据进行解密,然后将数据存储。这些操作都在单片机内部进行,不会被破解。

3.1 主程序

主程序要完成系统的初始化、中断设置、全局变量设置等。在初始化结束后,系统进入主查询循环过程以判断当前进行的操作,并进入相应的功能模块。系统主程序流程如图3所示。

3.gif

本文引用地址:https://www.eepw.com.cn/article/151069.htm



3.2 编程器与目标板的通信

编程器通过SPI总线与目标板建立连接。当进行目标板的编程时,首先编程目标板的 BootLoader区引导程序。引导区程序编程完毕后,编程器与目标板进行通信,将加密数据传送给目标板。目标板的BootLoader程序接收到加密数据后进行CRC校验。如果校验失败,Boot—Loader要求编程器重新发送数据;如果校验通过,对加密数据进行解密,然后写入Flash。编程器与目标板通信流程如图4所示。

4.gif



4 BootLoader编程设计

4.1 BootLoader。介绍

BootLoader区位于单片机内部Flash的最高地址,BootLoader存储器空间的大小可以通过熔丝位进行配置。BootLoader为通过 MCU本身来下载和上载程序代码提供了一个真正的同时读一写自编程机制(Read—While—Write,RWW)。这一特点使得系统可以在MCU的控制下,通过驻留于程序Flash的BootLoader,灵活地进行应用软件升级。BootLoader可以使用任何器件具有的数据接口和相关的协议获得代码并把代码(程序)写入闪存,或者是从程序存储器读取代码。BootLoader区的程序可以操作整个闪存,包括BootLoader区,因而 BootLoader可以对其自身进行修改,甚至将自己擦除。如果系统已经不再需要BootLoader,则可以通过指令控制BootLoader程序,将BootLoader区擦除。



关键词:

评论


相关推荐

技术专区

关闭