新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于GPRS的单片机固件升级系统设计

基于GPRS的单片机固件升级系统设计

作者:时间:2010-08-09来源:网络收藏

2.1 软件
软件由两部分组成:主程序和程序,分别对应于Main工程和Update工程。Main工程负责与远端服务器进行通信,接收服务器发送的指令并进行相应操作;而Update工程编译、链接时,在其编译器链接选项中设置CODE(OxE000,PR?MAIN?UPDATE(0xE000)),可将Upd-ate工程编译、链接后生成的hex文件烧写到内部Flash以0xE000作为起始地址处,同时默认地将Main工程编译、链接生成的二进制文件烧写到内部Flash的起始地址处。在执行主程序过程中,检测到标志置1后,跳转到升级程序地址处执行升级程序;升级完毕后,复位单片机,程序又从内部Flash的零地址开始执行更新的程序。图4为主程序流程,图5为相应的升级程序流程。主程序在运行过程中受远程服务器的实时控制。当固件程序需要更新时,在服务器端将准备更新的固件编译、链接后生成的hex或bin文件放入某一固定目录内,启用FTP服务器(如FtpMan),通过TCP/IP协议发送远程升级指令给测试终端;终端收到升级指令后启动相应的FTP接收功能,将远端文件分解成多个数据包并逐个存储在外部Flash中;存储完毕后,主程序会对该接收文件进行CRC校验,若校验无误,则通过函数指针跳转到升级程序功能区,启动升级程序,将二进制文件从外部Flash中转移到内部Flash对应的地址空间中去。单片机复位重启后,就可以从内部Flash的起始地址处执行更新完毕的程序。

本文引用地址:http://www.eepw.com.cn/article/173268.htm


2.2 函数指针应用
当主程序检测到升级标志后,主程序跳转到升级程序地址处执行升级固件程序,此处使用了函数指针的功能。

结语
本文网络传输的终端固件升级,给出了合理的芯片选型,以及独立的固件升级程序。该升级系统已应用到实际产品应用中,并取得了很好的效果。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭