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
- program
- module
- command
- file
- read
- 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
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000012360 testing method Methods 0.000 claims description 21
- 230000005540 biological transmission Effects 0.000 abstract description 3
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001915 proofreading effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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 |
---|---|---|
CN103136028A (zh) | 一种基于fpga的flash存储器远程在线升级方法 | |
CN107562504A (zh) | 一种dsp程序分段加载的串口实现方法 | |
CN102623069B (zh) | 随机激励闪存模型验证方法 | |
CN111221693B (zh) | 一种NOR flash配置模块验证方法、系统、装置和存储介质 | |
CN110413298A (zh) | 基于Labwindows平台进行单片机串行升级和调试的方法 | |
CN104461624A (zh) | 一种三维声波测井仪近探头测量模块的远程升级方法 | |
WO2018187771A3 (en) | Safe execution in place (xip) from flash memory | |
CN104077166A (zh) | 基于fpga中ip核的epcs与epcq存储器在线升级方法 | |
CN107301042A (zh) | 一种带自检功能的SoC应用程序引导方法 | |
CN103514014A (zh) | 一种嵌入式终端设备引导系统的设计方法 | |
WO2016187801A1 (zh) | 一种用于储存介质的数据管理方法及固态硬盘与控制芯片 | |
CN104679557B (zh) | 一种eeprom在线烧写方法 | |
CN105320510A (zh) | 一种自动追踪数据关系的方法及装置 | |
CN103729202A (zh) | 一种基于gel脚本的dsp可靠在线flash烧写方法 | |
CN100405323C (zh) | 一种在指令级随机测试中支持ejtag测试的实现方法 | |
CN102629212A (zh) | 一种基于j-link间接烧写程序到nandflash的方法 | |
CN111274120A (zh) | 一种接口文档的验证方法和装置 | |
CN110515645A (zh) | 一种bios的功能更新的实现方法及相关装置 | |
KR102116025B1 (ko) | 차량 ecu의 소프트웨어 디버깅 장치 및 방법 | |
Oh | Reverse engineering flash memory for fun and benefit | |
CN204423360U (zh) | 一种嵌入式系统的调试系统 | |
CN104111889B (zh) | 一种基于tmsvl的c语言实时系统运行形式化分析方法 | |
CN102736976A (zh) | 调试系统及其调试方法 | |
WO2021000535A1 (zh) | 一种升级单片机存储器内boot的方法 | |
CN104021010A (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 |