一种eeprom在线烧写方法

文档序号:8361252阅读:1428来源:国知局
一种eeprom在线烧写方法
【技术领域】
[0001] 本发明涉及一种EEPROM在线烧写方法,属于程序设计领域。
【背景技术】
[0002] 如图1所示,传统的EEPROM在线烧写方法是利用自定义通讯协议,将EEPROM烧写 程序(简称烧写程序)和欲烧入EEPROM程序(简称待烧入程序)的二进制文件分别通过 串口加载至目标板指定的存储区中,加载完成后运行烧写程序,将待烧入程序的二进制文 件烧入EEPROM中。
[0003] 上述方法的缺点主要有:
[0004] (1)与地面测试计算机交互的通讯协议需要自定义。需要建立一套完整的数据传 输、校对协议,保证目标板收到的EEPROM烧写数据与源数据一致;
[0005] (2)由于上传的待烧入程序为二进制文件,若源程序发生更改,在烧写前需重新将 编译后的目标文件转换成二进制文件。

【发明内容】

[0006] 本发明的技术解决问题是:克服现有技术的不足,提供一种EEPROM在线烧写方 法,减少了中间环节,保证了数据的有效性和完整性,提高了EEPROM烧写的效率。
[0007] 本发明的技术解决方案是:一种EEPROM在线烧写方法,步骤如下:
[0008] (1)目标板加电启动后,目标板上的引导程序将地面测试计算机上传的基于GDB 协议的监控程序加载至目标板指定的存储区中并运行;
[0009] (2)监控程序根据地面测试计算机上传的程序加载命令,通过串口接收待烧入程 序的目标文件,在接收过程中监控程序将该目标文件转换成二进制文件,并存放到目标板 指定的存储区中;
[0010] (3)监控程序根据地面测试计算机上传的程序加载命令,通过串口接收烧写程序 的目标文件,在接收过程中监控程序将该目标文件转换成二进制文件,并存放到目标板指 定的存储区中;
[0011] (4)监控程序根据地面测试计算机上传的运行指令运行步骤(3)中烧写程序的二 进制文件,将步骤(2)中待烧入程序的二进制文件烧写至EEPROM中。
[0012] 所述基于GDB协议的监控程序包括命令接收模块、命令解析模块、程序加载模块、 调试模块、读写内存模块、全速运行模块以及查看寄存器模块;
[0013] 命令接收模块:用于接收地面测试计算机发送的命令,并将接收的命令发送给命 令解析模块;所述地面测试计算机发送的命令包括程序加载命令、调试命令、读写内存命 令、查看寄存器命令或运行命令;
[0014] 命令解析模块:对命令接收模块发送的命令进行解析,并根据解析后的命令调用 相应的模块工作:当解析后的命令为程序加载命令时,调用程序加载模块工作;当解析后 的命令为调试命令时,调用调试模块工作;当解析后的命令为读写内存命令时,调用读写内 存模块工作;解析后的命令为查看寄存器命令时,调用查看寄存器模块工作;解析后的命 令为运行命令时,调用全速运行模块工作;
[0015] 程序加载模块:接收待调试程序的目标文件,在接收的过程中读取该目标文件的 文本段、数据段以及程序进入点,并将文本段和数据段合成待调试程序的二进制文件,并将 其加载至程序进入点;
[0016] 调试模块:用于在待调试程序中设置断点,并对待调试程序进行单步或断点调 试;
[0017] 读写内存模块:用于读写监控程序运行后所使用的内存;
[0018] 查看寄存器模块:用于查看监控程序运行后的寄存器状态;
[0019] 全速运行模块:用于全速运行待调试程序的二进制文件。
[0020] 本发明相比现有技术具有如下优点:
[0021] ⑴本发明方法利用⑶B协议进行数据传输,保证了数据的有效性和完整性;
[0022] (2)本发明方法利用基于⑶B的监控程序,可以直接加载相关程序的目标文件,无 需预先将目标文件转换成二进制文件,减少了中间环节,降低了出错概率,并将烧写效率提 尚了 20 %。
【附图说明】
[0023] 图1为传统EEPROM在线烧写方法流程图;
[0024] 图2为本发明方法EEPROM在线烧写方法流程图;
[0025] 图3为基于⑶B协议的监控程序内部各模块示意图。
【具体实施方式】
[0026] 下面结合附图和具体芯片验证实施案例对本发明作进一步详细的描述:
[0027] 新的卫星控制计算机存储器架构越来越多的采用PROM+SRAM+EEPROM的方式。在 这种方式下,系统上电/复位后,固化在PROM中的引导程序将存储在EEPROM中的应用程序 加载到SRAM中,最终应用程序运行在SRAM中。由于EEPROM多为表贴器件,不易从目标板 上拆下,因此需要通过软件对EEPROM进行在线烧写。本发明提出了一种新的EEPROM在线 烧写方法,其流程图如图2所示。基于⑶B协议的监控程序在本发明中用来接收并转换烧 写程序和待烧入程序,提高了烧写效率,降低了传统方法中二进制转换的出错概率,可以快 速、正确的进行EEPROM在线烧写。
[0028] 如图3所示,基于GDB协议的监控程序包括命令接收模块、命令解析模块、程序加 载模块、调试模块、读写内存模块、全速运行模块以及查看寄存器模块;
[0029] 命令接收模块:用于接收地面测试计算机发送的命令,并将接收的命令发送给命 令解析模块;所述地面测试计算机发送的命令包括程序加载命令、调试命令、读写内存命 令、查看寄存器命令或运行命令;
[0030] 命令解析模块:对命令接收模块发送的命令进行解析,并根据解析后的命令调用 相应的模块工作:当解析后的命令为程序加载命令时,调用程序加载模块工作;当解析后 的命令为调试命令时,调用调试模块工作;当解析后的命令为读写内存命令时,调用读写内 存模块工作;解析后的命令为查看寄存器命令时,调用查看寄存器模块工作;解析后的命 令为运行命令时,调用全速运行模块工作;
[0031] 程序加载模块:接收待调试程序的目标文件,在接收的过程中读取该目标文件的 文本段、数据段以及程序进入点,并将文本段和数据段合成待调试程序的二进制文件,并将 其加载至程序进入点;
[0032] 调试模块:用于在待调试程序中设置断点,并对待调试程序进行单步调试;
[0033] 读写内存模块:用于读写监控程序运行后所使用的内存;
[0034] 查看寄存器模块:用于查看监控程序运行后的寄存器状态;
[0035] 全速运行模块:用于全速运行待调试程序的二进制文件。
[0036] 本发明方法针对的目标板为PROM+SRAM+EEPROM的存储架构,编写欲烧入EEPROM 中的程序,该程序经过编译后得到的目标文件为A.out;编写烧写EEPROM程序,该程序经 过编译后得到的目标文件经过编译后得到的目标文件为B.out;基于GDB协议的监控程序 mon.c的二进制可执行文件为Mon.bin;引导程序Load,bin预先被烧入目标板上的PROM 里。目标板加电后首先运行该程序。引导程序具有通过串口接收并运行地面测试计算机发 送的注入程序的能力。
[0037] 基于上述内容,本发明方法的具体步骤如下:
[0038] (1)目标板加电,引导程序Load,bin运行,地面测试计算机通过串口将监控程序 的二进制文件Mon.bin上传至目标板中,上传完成后监控程序Mon.bin开始运行,Mon.bin 由目标板中的引导程序接收并运行。
[0039] (2)监控程序根据地面测试计算机上传的程序加载命令,通过串口接收地面测试 计算机上传的待烧入程序目标文件A.out,监控程序在接收过程中将A.out文件转换成 A.bin后存放到其编译地址中;
[0040] 监控程序将A.out文件转换成A.bin文件的实现方法为:
[0041] -个标准的*.out文件格式信息为:
[0042]
【主权项】
1. 一种邸PROM在线烧写方法,其特征在于步骤如下: (1) 目标板加电启动后,目标板上的引导程序将地面测试计算机上传的基于GDB协议 的监控程序加载至目标板指定的存储区中并运行; (2) 监控程序根据地面测试计算机上传的程序加载命令,通过串口接收待烧入程序的 目标文件,在接收过程中监控程序将该目标文件转换成二进制文件,并存放到目标板指定 的存储区中; (3) 监控程序根据地面测试计算机上传的程序加载命令,通过串口接收烧写程序的目 标文件,在接收过程中监控程序将该目标文件转换成二进制文件,并存放到目标板指定的 存储区中; (4) 监控程序根据地面测试计算机上传的运行指令运行步骤(3)中烧写程序的二进制 文件,将步骤(2)中待烧入程序的二进制文件烧写至EEPR0M中。
2. 根据权利要求1所述的一种邸PROM在线烧写方法,其特征在于:所述基于GDB协议 的监控程序包括命令接收模块、命令解析模块、程序加载模块、调试模块、读写内存模块、全 速运行模块W及查看寄存器模块; 命令接收模块:用于接收地面测试计算机发送的命令,并将接收的命令发送给命令解 析模块;所述地面测试计算机发送的命令包括程序加载命令、调试命令、读写内存命令、查 看寄存器命令或运行命令; 命令解析模块:对命令接收模块发送的命令进行解析,并根据解析后的命令调用相应 的模块工作;当解析后的命令为程序加载命令时,调用程序加载模块工作;当解析后的命 令为调试命令时,调用调试模块工作;当解析后的命令为读写内存命令时,调用读写内存模 块工作;解析后的命令为查看寄存器命令时,调用查看寄存器模块工作;解析后的命令为 运行命令时,调用全速运行模块工作; 程序加载模块;接收待调试程序的目标文件,在接收的过程中读取该目标文件的文本 段、数据段W及程序进入点,并将文本段和数据段合成待调试程序的二进制文件,并将其加 载至程序进入点; 调试模块:用于在待调试程序中设置断点,并对待调试程序进行单步或断点调试; 读写内存模块;用于读写监控程序运行后所使用的内存; 查看寄存器模块;用于查看监控程序运行后的寄存器状态; 全速运行模块;用于全速运行待调试程序的二进制文件。
【专利摘要】本发明公开了一种EEPROM在线烧写方法,利用基于GDB协议的监控程序实现对烧写程序和待烧入程序的加载和运行,并将待烧入程序烧写至EEPROM中。本发明方法在数据接收过程中将目标文件转换成二进制文件,减少了中间环节,降低了出错概率,并将烧写效率提高了20%。同时本发明方法利用开源的GDB协议进行数据传输,保证了数据的有效性和完整性。
【IPC分类】G06F9-445
【公开号】CN104679557
【申请号】CN201510065202
【发明人】彭飞, 衣学慧, 刘超伟, 邢林峰, 郝金华, 杜辉, 田宇斌, 李鹤, 董筠
【申请人】北京控制工程研究所
【公开日】2015年6月3日
【申请日】2015年2月6日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1