CN104679557B - 一种eeprom在线烧写方法 - Google Patents
一种eeprom在线烧写方法 Download PDFInfo
- Publication number
- CN104679557B CN104679557B CN201510065202.9A CN201510065202A CN104679557B CN 104679557 B CN104679557 B CN 104679557B CN 201510065202 A CN201510065202 A CN 201510065202A CN 104679557 B CN104679557 B CN 104679557B
- Authority
- CN
- China
- Prior art keywords
- module
- program
- order
- command
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种EEPROM在线烧写方法,利用基于GDB协议的监控程序实现对烧写程序和待烧入程序的加载和运行,并将待烧入程序烧写至EEPROM中。本发明方法在数据接收过程中将目标文件转换成二进制文件,减少了中间环节,降低了出错概率,并将烧写效率提高了20%。同时本发明方法利用开源的GDB协议进行数据传输,保证了数据的有效性和完整性。
Description
技术领域
本发明涉及一种EEPROM在线烧写方法,属于程序设计领域。
背景技术
如图1所示,传统的EEPROM在线烧写方法是利用自定义通讯协议,将EEPROM烧写程序(简称烧写程序)和欲烧入EEPROM程序(简称待烧入程序)的二进制文件分别通过串口加载至目标板指定的存储区中,加载完成后运行烧写程序,将待烧入程序的二进制文件烧入EEPROM中。
上述方法的缺点主要有:
(1)与地面测试计算机交互的通讯协议需要自定义。需要建立一套完整的数据传输、校对协议,保证目标板收到的EEPROM烧写数据与源数据一致;
(2)由于上传的待烧入程序为二进制文件,若源程序发生更改,在烧写前需重新将编译后的目标文件转换成二进制文件。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供一种EEPROM在线烧写方法,减少了中间环节,保证了数据的有效性和完整性,提高了EEPROM烧写的效率。
本发明的技术解决方案是:一种EEPROM在线烧写方法,步骤如下:
(1)目标板加电启动后,目标板上的引导程序将地面测试计算机上传的基于GDB协议的监控程序加载至目标板指定的存储区中并运行;
(2)监控程序根据地面测试计算机上传的程序加载命令,通过串口接收待烧入程序的目标文件,在接收过程中监控程序将该目标文件转换成二进制文件,并存放到目标板指定的存储区中;
(3)监控程序根据地面测试计算机上传的程序加载命令,通过串口接收烧写程序的目标文件,在接收过程中监控程序将该目标文件转换成二进制文件,并存放到目标板指定的存储区中;
(4)监控程序根据地面测试计算机上传的运行指令运行步骤(3)中烧写程序的二进制文件,将步骤(2)中待烧入程序的二进制文件烧写至EEPROM中。
所述基于GDB协议的监控程序包括命令接收模块、命令解析模块、程序加载模块、调试模块、读写内存模块、全速运行模块以及查看寄存器模块;
命令接收模块:用于接收地面测试计算机发送的命令,并将接收的命令发送给命令解析模块;所述地面测试计算机发送的命令包括程序加载命令、调试命令、读写内存命令、查看寄存器命令或运行命令;
命令解析模块:对命令接收模块发送的命令进行解析,并根据解析后的命令调用相应的模块工作:当解析后的命令为程序加载命令时,调用程序加载模块工作;当解析后的命令为调试命令时,调用调试模块工作;当解析后的命令为读写内存命令时,调用读写内存模块工作;解析后的命令为查看寄存器命令时,调用查看寄存器模块工作;解析后的命令为运行命令时,调用全速运行模块工作;
程序加载模块:接收待调试程序的目标文件,在接收的过程中读取该目标文件的文本段、数据段以及程序进入点,并将文本段和数据段合成待调试程序的二进制文件,并将其加载至程序进入点;
调试模块:用于在待调试程序中设置断点,并对待调试程序进行单步或断点调试;
读写内存模块:用于读写监控程序运行后所使用的内存;
查看寄存器模块:用于查看监控程序运行后的寄存器状态;
全速运行模块:用于全速运行待调试程序的二进制文件。
本发明相比现有技术具有如下优点:
(1)本发明方法利用GDB协议进行数据传输,保证了数据的有效性和完整性;
(2)本发明方法利用基于GDB的监控程序,可以直接加载相关程序的目标文件,无需预先将目标文件转换成二进制文件,减少了中间环节,降低了出错概率,并将烧写效率提高了20%。
附图说明
图1为传统EEPROM在线烧写方法流程图;
图2为本发明方法EEPROM在线烧写方法流程图;
图3为基于GDB协议的监控程序内部各模块示意图。
具体实施方式
下面结合附图和具体芯片验证实施案例对本发明作进一步详细的描述:
新的卫星控制计算机存储器架构越来越多的采用PROM+SRAM+EEPROM的方式。在这种方式下,系统上电/复位后,固化在PROM中的引导程序将存储在EEPROM中的应用程序加载到SRAM中,最终应用程序运行在SRAM中。由于EEPROM多为表贴器件,不易从目标板上拆下,因此需要通过软件对EEPROM进行在线烧写。本发明提出了一种新的EEPROM在线烧写方法,其流程图如图2所示。基于GDB协议的监控程序在本发明中用来接收并转换烧写程序和待烧入程序,提高了烧写效率,降低了传统方法中二进制转换的出错概率,可以快速、正确的进行EEPROM在线烧写。
如图3所示,基于GDB协议的监控程序包括命令接收模块、命令解析模块、程序加载模块、调试模块、读写内存模块、全速运行模块以及查看寄存器模块;
命令接收模块:用于接收地面测试计算机发送的命令,并将接收的命令发送给命令解析模块;所述地面测试计算机发送的命令包括程序加载命令、调试命令、读写内存命令、查看寄存器命令或运行命令;
命令解析模块:对命令接收模块发送的命令进行解析,并根据解析后的命令调用相应的模块工作:当解析后的命令为程序加载命令时,调用程序加载模块工作;当解析后的命令为调试命令时,调用调试模块工作;当解析后的命令为读写内存命令时,调用读写内存模块工作;解析后的命令为查看寄存器命令时,调用查看寄存器模块工作;解析后的命令为运行命令时,调用全速运行模块工作;
程序加载模块:接收待调试程序的目标文件,在接收的过程中读取该目标文件的文本段、数据段以及程序进入点,并将文本段和数据段合成待调试程序的二进制文件,并将其加载至程序进入点;
调试模块:用于在待调试程序中设置断点,并对待调试程序进行单步调试;
读写内存模块:用于读写监控程序运行后所使用的内存;
查看寄存器模块:用于查看监控程序运行后的寄存器状态;
全速运行模块:用于全速运行待调试程序的二进制文件。
本发明方法针对的目标板为PROM+SRAM+EEPROM的存储架构,编写欲烧入EEPROM中的程序,该程序经过编译后得到的目标文件为A.out;编写烧写EEPROM程序,该程序经过编译后得到的目标文件经过编译后得到的目标文件为B.out;基于GDB协议的监控程序mon.c的二进制可执行文件为Mon.bin;引导程序Load.bin预先被烧入目标板上的PROM里。目标板加电后首先运行该程序。引导程序具有通过串口接收并运行地面测试计算机发送的注入程序的能力。
基于上述内容,本发明方法的具体步骤如下:
(1)目标板加电,引导程序Load.bin运行,地面测试计算机通过串口将监控程序的二进制文件Mon.bin上传至目标板中,上传完成后监控程序Mon.bin开始运行,Mon.bin由目标板中的引导程序接收并运行。
(2)监控程序根据地面测试计算机上传的程序加载命令,通过串口接收地面测试计算机上传的待烧入程序目标文件A.out,监控程序在接收过程中将A.out文件转换成A.bin后存放到其编译地址中;
监控程序将A.out文件转换成A.bin文件的实现方法为:
一个标准的*.out文件格式信息为:
文件头部(Exec header) |
文本段(text segment) |
数据段(data segment) |
文本重定位段(text relocations) |
数据重定位段(data relocations) |
符号表(symbol table) |
字符串表(string table) |
文件头部含有如下信息:
监控程序mon.c在接收A.out文件的过程中,读取*.out中文件头部信息,通过文本段的长度、数据段的长度和BSS段的长度以及程序进入点,从A.out文件中提取该文件的可执行二进制码,成为A.bin文件,并将其加载至程序进入点。
(3)监控程序通过串口接收地面测试计算机上传的烧写程序的目标文件B.out,监控程序在接收过程中将B.out文件转换成B.bin后存放到其编译地址中。
具体实现方式为:利用监控程序mon.c中的程序加载功能,依据*.out文件格式,读取烧写文件B.out中的文本段、数据段以及程序进入点,将文本段和数据段合成B.bin文件,并将其加载至程序进入点。
(4)监控程序根据地面测试计算机上传的指令运行EEPROM烧写程序B.bin,将A.bin烧入EEPROM中。
具体实现方式为:利用监控程序mon.c中的“全速运行指定程序”的功能,运行B.bin,该文件将A.bin烧写入EEPROM中。
以上所述,仅为本发明最佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。
Claims (2)
1.一种EEPROM在线烧写方法,其特征在于步骤如下:
(1)目标板加电启动后,目标板上的引导程序将地面测试计算机上传的基于GDB RSP协议的监控程序加载至目标板指定的存储区中并运行;
(2)监控程序根据地面测试计算机上传的程序加载命令,通过串口接收待烧入程序的目标文件,在接收过程中监控程序将该目标文件转换成二进制文件,并存放到目标板指定的存储区中;
(3)监控程序根据地面测试计算机上传的程序加载命令,通过串口接收烧写程序的目标文件,在接收过程中监控程序将该目标文件转换成二进制文件,并存放到目标板指定的存储区中;
(4)监控程序根据地面测试计算机上传的运行指令运行步骤(3)中烧写程序的二进制文件,将步骤(2)中待烧入程序的二进制文件烧写至EEPROM中。
2.根据权利要求1所述的一种EEPROM在线烧写方法,其特征在于:所述基于GDB RSP协议的监控程序包括命令接收模块、命令解析模块、程序加载模块、调试模块、读写内存模块、全速运行模块以及查看寄存器模块;
命令接收模块:用于接收地面测试计算机发送的命令,并将接收的命令发送给命令解析模块;所述地面测试计算机发送的命令包括程序加载命令、调试命令、读写内存命令、查看寄存器命令或运行命令;
命令解析模块:对命令接收模块发送的命令进行解析,并根据解析后的命令调用相应的模块工作:当解析后的命令为程序加载命令时,调用程序加载模块工作;当解析后的命令为调试命令时,调用调试模块工作;当解析后的命令为读写内存命令时,调用读写内存模块工作;解析后的命令为查看寄存器命令时,调用查看寄存器模块工作;解析后的命令为运行命令时,调用全速运行模块工作;
程序加载模块:接收待调试程序的目标文件,在接收的过程中读取该目标文件的文本段、数据段以及程序进入点,并将文本段和数据段合成待调试程序的二进制文件,并将其加载至程序进入点;
调试模块:用于在待调试程序中设置断点,并对待调试程序进行单步或断点调试;
读写内存模块:用于读写监控程序运行后所使用的内存;
查看寄存器模块:用于查看监控程序运行后的寄存器状态;
全速运行模块:用于全速运行待调试程序的二进制文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510065202.9A CN104679557B (zh) | 2015-02-06 | 2015-02-06 | 一种eeprom在线烧写方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510065202.9A CN104679557B (zh) | 2015-02-06 | 2015-02-06 | 一种eeprom在线烧写方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104679557A CN104679557A (zh) | 2015-06-03 |
CN104679557B true CN104679557B (zh) | 2018-04-10 |
Family
ID=53314654
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510065202.9A Active CN104679557B (zh) | 2015-02-06 | 2015-02-06 | 一种eeprom在线烧写方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104679557B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018218531A1 (zh) * | 2017-05-31 | 2018-12-06 | 深圳市爱夫卡科技股份有限公司 | 一种eeprom烧写系统及烧写方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1624665A (zh) * | 2003-12-02 | 2005-06-08 | 深圳创维-Rgb电子有限公司 | 一种烧写e2prom的方法和装置 |
CN103645920A (zh) * | 2013-12-19 | 2014-03-19 | 深圳市捷顺科技实业股份有限公司 | 一种嵌入式系统程序烧录方法及系统 |
CN103699452A (zh) * | 2013-11-29 | 2014-04-02 | 四川长虹电器股份有限公司 | 一种实现自动烧写eeprom的方法 |
CN103984583A (zh) * | 2014-06-05 | 2014-08-13 | 广州小微电子技术有限公司 | 一种数据烧录方法及其系统 |
CN104317622A (zh) * | 2014-10-30 | 2015-01-28 | 深圳市捷顺科技实业股份有限公司 | 一种嵌入式设备程序烧录处理方法和系统 |
-
2015
- 2015-02-06 CN CN201510065202.9A patent/CN104679557B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1624665A (zh) * | 2003-12-02 | 2005-06-08 | 深圳创维-Rgb电子有限公司 | 一种烧写e2prom的方法和装置 |
CN103699452A (zh) * | 2013-11-29 | 2014-04-02 | 四川长虹电器股份有限公司 | 一种实现自动烧写eeprom的方法 |
CN103645920A (zh) * | 2013-12-19 | 2014-03-19 | 深圳市捷顺科技实业股份有限公司 | 一种嵌入式系统程序烧录方法及系统 |
CN103984583A (zh) * | 2014-06-05 | 2014-08-13 | 广州小微电子技术有限公司 | 一种数据烧录方法及其系统 |
CN104317622A (zh) * | 2014-10-30 | 2015-01-28 | 深圳市捷顺科技实业股份有限公司 | 一种嵌入式设备程序烧录处理方法和系统 |
Non-Patent Citations (1)
Title |
---|
《TMS320VC5509A串行EEPROM自举的方法研究》;陈孟奇,严新荣;《舰船电子工程》;20120620(第6期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN104679557A (zh) | 2015-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112014726B (zh) | Dsp芯片测试装置及方法 | |
US8990780B2 (en) | Setting breakpoints in optimized instructions | |
CN104063325A (zh) | 一种针对嵌入式软件的测试用例自动化生成装置及其方法 | |
CN102479265B (zh) | 修改硬掩膜产品固件错误功能的方法 | |
CN104679572B (zh) | 基于预加载机制的插件支持方法 | |
CN103092662A (zh) | 一种基于嵌入式操作系统的终端设备的软件模块升级方法 | |
CN104346265A (zh) | 终端设备及其日志信息的获取方法和装置 | |
CN104820586A (zh) | 一种航天器嵌入式软件在轨维护方法 | |
CN105487952A (zh) | 一种基于fio的pcie-ssd自动化测试方法 | |
CN111506335A (zh) | 一种基于dsp+fpga的程序在线升级方法及系统 | |
CN104679557B (zh) | 一种eeprom在线烧写方法 | |
CN108153536B (zh) | 一种动态调整ram空间的dsp在线升级方法 | |
CN108845823B (zh) | 一种基于f2812芯片的软件在线升级方法 | |
CN107402885A (zh) | 一种程序调试方法及装置 | |
CN102629212A (zh) | 一种基于j-link间接烧写程序到nandflash的方法 | |
CN105824750A (zh) | 一种在NorFlash程序空间调试的软断点模拟方法 | |
CN117076296A (zh) | 网络嵌入式设备的控制系统、方法、设备及介质 | |
CN104536892B (zh) | 一种软件在线调试方法和系统 | |
CN109144853B (zh) | 一种软件定义无线电SoC芯片调试系统 | |
CN110750489A (zh) | 一种在fpga中部署算子的方法、设备及介质 | |
CN109960605A (zh) | 一种支持部分写的ecc内存及数据部分写入的方法 | |
CN106933577B (zh) | 基于Python实现的查询软件平台控制块的方法及系统 | |
CN114924947A (zh) | 代码测试方法、装置、电子设备及存储介质 | |
CN116204450B (zh) | 数据写入方法、处理器、器件、业务板及存储介质 | |
CN111930413B (zh) | 一种补丁自动生成方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |