CN103034456B - 基于非易失sram存储的虚拟终端的实现方法 - Google Patents
基于非易失sram存储的虚拟终端的实现方法 Download PDFInfo
- Publication number
- CN103034456B CN103034456B CN201210543647.XA CN201210543647A CN103034456B CN 103034456 B CN103034456 B CN 103034456B CN 201210543647 A CN201210543647 A CN 201210543647A CN 103034456 B CN103034456 B CN 103034456B
- Authority
- CN
- China
- Prior art keywords
- sram
- virtual terminal
- information
- district
- stored
- 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.)
- Expired - Fee Related
Links
Landscapes
- Debugging And Monitoring (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开一种基于非易失SRAM存储的虚拟终端的实现方法,以非易失的SRAM作为虚拟终端的存储介质,在系统重新启动后可以显示历史的终端信息;在系统运行时本发明将新打印到终端的信息同时保存到非易失的SRAM中;本发明提供对虚拟终端进行操作的接口函数,实现对虚拟终端数据的打印显示功能。此方法所实现的虚拟终端可有效保存和获取嵌入式系统的历史运行信息,更好地满足嵌入式运行与调试的要求。
Description
技术领域
本发明属于在嵌入式系统领域,特别涉及一种获取嵌入式系统运行历史信息的调试方法。
背景技术
在嵌入式系统运行过程中,主要的调试终端为串口终端,嵌入式系统在启动或运行中将一些信息打印到串口终端上,通常在PC上使用串口设备与嵌入式系统相接获取这些信息。这种嵌入式终端方式在实际运行中通常不能始终与外部终端保持连接,只能通过外部终端重新连接后获取当前运行信息,而无法获得重新连接前的历史信息。在嵌入式系统运行异常情况下,如死机、重启等,该方法无法获取程序运行异常前的一些信息,在嵌入式运行调试过程中存在明显的不足。
发明内容
本发明的目的,在于提供一种基于非易失SRAM存储的虚拟终端的实现方法,其可获取嵌入式系统的历史运行信息,更好地满足嵌入式运行与调试的要求。
为了达成上述目的,本发明的解决方案是:
一种基于非易失SRAM存储的虚拟终端的实现方法,以非易失的SRAM作为虚拟终端的存储介质,在系统启动时恢复虚拟终端的历史打印信息;在系统运行时将新打印到虚拟终端的信息实时发送到实际终端,并同时记录到SRAM中。
以非易失的SRAM作为虚拟终端的存储介质,并将SRAM分为两个区,其中,前64字节为第一区,用来保存虚拟终端的特征信息;SRAM的剩余部分为第二区,用来存储虚拟终端的数据。第一区中存储的特征信息包括数据区即第二区的起始地址、数据区总长度、数据区中有效数据的头尾指针、有效数据长度等;第二区中存储的数据以单个字符为最小存储单位,将内核或应用程序打印的字符串按顺序存储到第二区中。
系统启动后,首先扫描SRAM的第一区,根据特征信息中存储的数据区起始地址、有效数据的头尾指针和有效数据长度等信息将第二区中存储的字符数据逐个字符读取出来并将其通过串口发送到实际终端中。
系统运行中,将被打印到虚拟终端中的信息发送到实际终端中,同时根据SRAM第一区中存储的数据区起始地址和有效数据的头指针将该信息保存到SRAM的第二区中,每保存一个字符相应的递增SRAM中的第一区的有效数据长度和有效数据头指针等信息;当头指针到达第二区的末尾时跳转到第二区的起始位置;当头指针到达尾指针的位置后,每写入一个字符头尾指针均递增(即覆盖最早的字符数据)直至将所有信息都存储到SRAM中。
采用上述方案后,本发明通过使用非易失的SRAM作为存储介质,不仅可以提供非易失并回显历史信息的功能,并具有不依赖操作系统的特性,可方便移植到多种嵌入式系统中,具有以下有益效果:
(1)提供了非易失历史终端信息的功能,并能在设备重新上电后恢复历史终端信息;
(2)提供独立于操作系统的操作接口函数,能够移植到多种嵌入式系统中,也可不依赖操作系统使用。
附图说明
图1是本发明的架构图。
具体实施方式
以下将结合附图,对本发明的技术方案进行详细说明。
本发明提供一种基于非易失SRAM存储的虚拟终端的实现方法,以非易失的SRAM作为虚拟终端的存储介质,并将SRAM分为两个区,其中前64字节为第一区,用来保存虚拟终端的一些特征信息,包括虚拟终端数据区的大小、虚拟终端数据区中有效数据的头尾指针、有效数据大小等;SRAM的剩余部分为第二区,第二个区是虚拟终端的数据存储区,其中的数据采用循环存储方式,即当数据存储区中的数据存储满后,会覆盖整个区中最旧的数据。
如图1所示,为本发明所述虚拟终端的架构框图,所述虚拟终端的数据处理过程如下:
(1)系统启动后首先扫描SRAM的第一区,根据特征信息中存储的数据区起始地址、有效数据的头尾指针和有效数据长度等信息将第二区中的存储的字符数据逐个字符读取出来并将其通过串口发送到实际终端中。
(2)系统运行中将内核或应用程序打印到虚拟终端中的信息发送到实际终端中,同时根据SRAM第一区中存储的数据区起始地址和有效数据的头指针将该信息保存到SRAM的第二区中,每保存一个字符相应的递增SRAM中的第一区的有效数据长度和有效数据头指针等信息;当头指针到达第二区的末尾时跳转到第二区的起始位置;当头指针到达尾指针的位置后,每写入一个字符头尾指针均递增直至将所有信息都存储到SRAM中。。
本发明所述的虚拟终端实现方法提供对虚拟终端进行读写及清除操作的接口函数;
(1)嵌入式应用软件开发人员直接调用写接口函数将信息打印到虚拟终端上,写接口函数会将数据存储到SRAM中并调用读接口函数将信息发送到实际的串口终端中;
(2)读接口函数用于将SRAM中存储的信息读取出来并打印到实际的串口终端中;
(3)清除接口函数会将虚拟终端中的信息清空,这里只将SRAM中的第一区的特征信息更新,第二区中的数据不作处理;
(4)此外所有的操作接口函数都添加了互斥功能以防止同时操作SRAM带来的同步问题。
如图1所示,为本发明所实现虚拟终端的架构框图,所述虚拟终端的主要功能分两个部分:
(1)SRAM存储管理模块:
a)SRAM空间管理模块。该模块将SRAM分成2个区进行管理,一个区存放特征信息,另一个区存放数据信息。
b)SRAM信息同步模块。该模块将SRAM中的数据信息与实际的串口终端进行同步。
(2)终端打印管理模块:
a)虚拟终端信息恢复:在系统重新上电时,通过读取SRAM的2个区内容将虚拟终端的历史信息恢复。
b)虚拟终端打印功能:在系统运行中,将打印信息保存到SRAM中同时发送到实际的串口上。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。
Claims (3)
1.一种基于非易失SRAM存储的虚拟终端的实现方法,其特征在于:以非易失的SRAM作为虚拟终端的存储介质,在系统启动时恢复虚拟终端的历史打印信息;在系统运行时将内核或应用程序输出到终端的信息同时记录存储到非易失的SRAM中,具体为:
将SRAM分为两个区,其中,前64字节为第一区,用来保存虚拟终端的特征信息;SRAM的剩余部分为第二区,用来存储虚拟终端的数据;第一区中存储的特征信息包括数据区即第二区的起始地址、数据区总长度、数据区中有效数据的头尾指针、有效数据长度;第二区中存储的数据以单个字符为最小存储单位,将内核或应用程序打印的字符串按顺序存储到第二区中;
系统启动后,首先扫描SRAM的第一区,根据特征信息中存储的数据区起始地址、有效数据的头尾指针和有效数据长度信息将第二区中存储的字符数据逐个字符读取出来并将其通过串口发送到实际终端中;
系统运行中,将被打印到虚拟终端中的信息发送到实际终端中,同时根据SRAM第一区中存储的数据区起始地址和有效数据的头指针将该信息保存到SRAM的第二区中,每保存一个字符相应的递增SRAM中的第一区的有效数据长度和有效数据头指针信息;当头指针到达第二区的末尾时跳转到第二区的起始位置;当头指针到达尾指针的位置后,每写入一个字符头尾指针均递增,直至将所有信息都存储到SRAM中。
2.如权利要求1所述的基于非易失SRAM存储的虚拟终端的实现方法,其特征在于:以可以由CPU直接访问并可高速读写的非易失SRAM作为存储介质。
3.如权利要求1所述的基于非易失SRAM存储的虚拟终端的实现方法,其特征在于:提供非易失的SRAM读取接口,在系统掉电重启以后,通过该接口读取存储在SRAM中的内核或应用程序输出的历史信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210543647.XA CN103034456B (zh) | 2012-12-14 | 2012-12-14 | 基于非易失sram存储的虚拟终端的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210543647.XA CN103034456B (zh) | 2012-12-14 | 2012-12-14 | 基于非易失sram存储的虚拟终端的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103034456A CN103034456A (zh) | 2013-04-10 |
CN103034456B true CN103034456B (zh) | 2015-09-02 |
Family
ID=48021391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210543647.XA Expired - Fee Related CN103034456B (zh) | 2012-12-14 | 2012-12-14 | 基于非易失sram存储的虚拟终端的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103034456B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124321B (zh) * | 2019-11-04 | 2020-09-08 | 深圳市金城保密技术有限公司 | 激光打印机的调试方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1976352A (zh) * | 2005-11-29 | 2007-06-06 | 国际商业机器公司 | 用于提供远程软件应用的支持的方法和系统 |
CN102541753A (zh) * | 2011-12-29 | 2012-07-04 | 上海爱信诺航芯电子科技有限公司 | 一种嵌入式存储器的读写优化方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7343588B2 (en) * | 2004-01-30 | 2008-03-11 | International Business Machines Corporation | Method of generating and utilizing debug history |
-
2012
- 2012-12-14 CN CN201210543647.XA patent/CN103034456B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1976352A (zh) * | 2005-11-29 | 2007-06-06 | 国际商业机器公司 | 用于提供远程软件应用的支持的方法和系统 |
CN102541753A (zh) * | 2011-12-29 | 2012-07-04 | 上海爱信诺航芯电子科技有限公司 | 一种嵌入式存储器的读写优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103034456A (zh) | 2013-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8892831B2 (en) | Memory subsystem hibernation | |
CN102567146B (zh) | 一种实现日志备份的方法及其装置、智能卡 | |
CN102158349B (zh) | 一种日志管理装置及方法 | |
US10061655B2 (en) | Volatile cache reconstruction after power failure | |
CN102411523B (zh) | 文件备份存储方法、装置及其文件系统备份方法 | |
US8448023B2 (en) | Approach for data integrity in an embedded device environment | |
EP2905706A1 (en) | Data processing device and data processing method | |
CN103577121A (zh) | 一种基于nand flash的高可靠线性文件存取方法 | |
WO2014139184A1 (zh) | 用于闪存存储器的数据擦除方法及装置 | |
CN102681959A (zh) | 一种服务器带内带外信息交互的方法 | |
US12061557B2 (en) | Method for storing L2P table, system, device, and medium | |
CN109683983B (zh) | 一种镜像文件的生成及加载方法、设备 | |
CN102033793A (zh) | 快照方法和固态硬盘 | |
WO2019047579A1 (zh) | 数据访问的方法及装置 | |
CN104750431A (zh) | 存储装置及存储装置系统、以及信息终端 | |
CN103412822A (zh) | 操作非易失性内存和数据操作的方法和相关装置 | |
CN101542480A (zh) | 组合日志/非日志文件系统 | |
CN102880530B (zh) | 终端和终端备份及恢复方法 | |
CN112540874A (zh) | 智能设备死机日志采集方法、系统、电子设备及存储介质 | |
CN104205229A (zh) | 功率损耗恢复中的固态驱动器管理 | |
CN104408126B (zh) | 一种数据库的持久化写入方法、装置和系统 | |
CN103034456B (zh) | 基于非易失sram存储的虚拟终端的实现方法 | |
CN103778024A (zh) | 服务器系统及其讯息处理方法 | |
CN103064800A (zh) | 一种掉电保护系统及其实现方法 | |
CN103617008A (zh) | 车载视频监控终端的双sd卡多媒体文件存储系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150902 Termination date: 20211214 |