CN103034581B - 一种嵌入式系统跟踪调试方法及装置 - Google Patents

一种嵌入式系统跟踪调试方法及装置 Download PDF

Info

Publication number
CN103034581B
CN103034581B CN201110300526.8A CN201110300526A CN103034581B CN 103034581 B CN103034581 B CN 103034581B CN 201110300526 A CN201110300526 A CN 201110300526A CN 103034581 B CN103034581 B CN 103034581B
Authority
CN
China
Prior art keywords
trace information
information
storage area
task
trace
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
Application number
CN201110300526.8A
Other languages
English (en)
Other versions
CN103034581A (zh
Inventor
周勃
钱思园
佘广桥
彭涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Spreadtrum Communications Shanghai Co Ltd
Original Assignee
Chongqing Cyit Communication Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chongqing Cyit Communication Technologies Co Ltd filed Critical Chongqing Cyit Communication Technologies Co Ltd
Priority to CN201110300526.8A priority Critical patent/CN103034581B/zh
Publication of CN103034581A publication Critical patent/CN103034581A/zh
Application granted granted Critical
Publication of CN103034581B publication Critical patent/CN103034581B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种嵌入式系统跟踪调试方法,在任务调用跟踪模块开始跟踪后,在跟踪信息缓存区为调用跟踪模块的任务分配特定的信息存储区;跟踪模块获取该任务的跟踪信息数据,组装跟踪信息,将跟踪信息写入该信息存储区;跟踪信息发送模块读取缓存的跟踪信息,发送到分析设备进行跟踪信息分析。本发明还公开了一种与该方法相适应的嵌入式系统跟踪调试装置,本发明的技术方案可有效的避免嵌入式系统跟踪调试中出现跟踪信息缓存冲突的问题。

Description

一种嵌入式系统跟踪调试方法及装置
技术领域
本发明设计到嵌入式系统开发中的软件调试技术,特别涉及到一种嵌入式系统跟踪调试方法及装置。
背景技术
嵌入式系统在开发过程中需要对软件进行调试,目前主要的嵌入式系统软件调试方法有两种。
一种是在线调试(简称,JATGDebug),在线调试的主要手段是通过设置断点的方式来观察系统状态,从而找出软件设计中存在的问题。在线调试可以通过调试器观测到系统当前代码执行情况、内存数据、中断状态、硬件状态等信息和运行时调试信息进行问题分析定位。在线调试的问题在于:在调试对时序严格要求的系统软件时,若断点观察系统状态,则系统无法再按正常时序运行;同时,在线调试无法监测到系统顺序执行的状态变迁,只能观察到某一时刻点的系统状态。
另一种调试方法是跟踪调试,其主要手段是预先在软件程序中插入跟踪点,在跟踪点调用跟踪模块获取跟踪点执行时刻的系统状态信息,可以监测系统变量、内存、状态机、函数执行情况、任务调度情况等等内容。跟踪调试的方法不需要打断系统的运行,可以对系统顺序执行的状态变迁信息进行检测,因而在实时嵌入式系统的软件调试中应用非常广泛。
为了满足系统的实时性要求,在嵌入式系统中会设置多个优先级,例如,简单的任务优先级设置至少包括低级中断、高级中断、一般任务三个优先级。在系统运行过程中,高优先级任务会打断低优先级任务的执行,抢占系统资源,如,在一般任务执行过程中,如果有高级中断发生,则高级中断会打断一般任务的执行,抢占系统资源执行高级中断。
现有的嵌入式系统跟踪调试方法包括:
1、任务(包括定时器、中断、一般任务等),在跟踪点调用跟踪模块;
2、跟踪模块获取需要跟踪输出的数据,按照一定的格式组装成跟踪信息;
跟踪信息通常包括跟踪头标识、跟踪信息类型、跟踪数据序号、跟踪时间戳、跟踪数据长度、跟踪数据内容;跟踪数据的具体内容,可以是字符串、数组、变量、代号编码等信息内容;
3、跟踪模块将跟踪信息顺序写入跟踪信息缓存区的空闲缓存区中;
跟踪信息缓存区通常采用循环缓存的方式对数据进行缓存,所有跟踪源的跟踪数据全部写入该跟踪缓存区中;
4、跟踪信息发送模块从跟踪信息缓存区中读取跟踪信息发送到分析设备;
5、分析设备对跟踪信息进行分析。
现有技术的跟踪调试方法存在的问题是,当低优先级任务正在调用跟踪模块缓存跟踪信息时,如果有高优先级任务发生,高优先级任务会抢占系统资源,优先执行;而如果该高优先级任务也需要输出跟踪信息,就会产生跟踪信息缓存冲突,如果高优先级任务直接调用跟踪模块缓存其跟踪信息,会造成跟踪信息缓存区中缓存数据的乱序,如图1所示,这种乱序排列的跟踪信息会大大提高跟踪信息处理的复杂度;如果丢弃高优先级任务中的跟踪请求,又会造成高优先级任务跟踪信息丢失。
发明内容
有鉴于此,本发明提出了一种嵌入式系统跟踪调试方法及装置,以解决由于高优先级任务打断低优先级任务而带来的跟踪信息缓存冲突的问题。
本发明的嵌入式系统跟踪调试方法包括:
任务调用跟踪模块开始跟踪;
在跟踪信息缓存区为调用跟踪模块的任务分配特定的信息存储区;
跟踪模块获取该任务的跟踪信息数据,组装跟踪信息,将跟踪信息写入该信息存储区;
跟踪信息发送模块读取缓存的跟踪信息,发送到分析设备进行跟踪信息分析。
所述在跟踪信息缓存区为调用跟踪模块的任务分配特定的信息存储区进一步包括:
根据系统任务优先级将跟踪信息缓存区划分为多个信息存储区,每个信息存储区对应一个系统优先级;
根据调用跟踪模块的任务的优先级选择相应的信息存储区分配给该任务。
所述将跟踪信息写入分配给该任务的信息存储区进一步包括:
将该任务的跟踪信息从分配给该任务的信息存储区的空闲缓存区的第一个存储单元开始写入该信息存储区;
所述空闲缓存区指信息存储区中没有保存未读取的跟踪信息的缓存区。
优选的,预先分别将各信息存储区最后一部分存储单元设置为该信息存储区的溢出缓存区;在将跟踪信息写入分配给该任务的信息存储区时,如果该信息存储区的空闲缓存区包括溢出缓存区之前的最后一个存储单元,且从该空闲缓存区的第一个存储单元到溢出缓存区之前的最后一个存储单元的长度小于跟踪信息长度,将跟踪信息从空闲缓存区的第一个存储单元开始顺序写入空闲缓存区及溢出缓存区;
所述溢出缓存区的长度不小于该信息存储区对应优先级的各任务的最大跟踪信息长度-1。
所述跟踪信息发送模块读取缓存的跟踪信息进一步包括:
跟踪信息发送模块选择保存跟踪信息最多的信息存储区,从该信息存储区中读取跟踪信息。
所述在跟踪信息缓存区为调用跟踪模块的任务分配特定的信息存储区进一步包括:
在跟踪信息缓存区的空闲缓存区中为该任务分配信息存储区;该信息存储区的长度为跟踪信息长度;
所述空闲缓存区为跟踪信息缓存区中没有保存未读取的跟踪信息也没有分配给其他任务的缓存区。
所述在跟踪信息缓存区的空闲缓存区中为该任务分配信息存储区进一步包括:
从所述空闲缓存区的第一个存储单元开始分配连续的缓存区作为该任务的信息存储区。
优选的,预先将所述跟踪信息缓存区最后一部分存储单元设置为溢出缓存区;在为该任务分配信息存储区时,如果所述空闲缓存区包括所述溢出缓存区之前的最后一个存储单元且从所述空闲缓存区的第一个存储单元到所述溢出缓存区之前的最后一个存储单元的长度小于跟踪信息长度,则从所述空闲缓存区的第一个存储单元开始在所述空闲缓存区以及溢出缓存区中为该任务分配长度为跟踪信息长度的连续缓存区作为该任务的信息存储区;
所述溢出缓存区的长度不小于系统的最大跟踪信息长度-1。
所述方法进一步包括:
在跟踪信息缓存区为调用跟踪模块的任务分配特定的信息存储区之后,将跟踪模块调用次数加1;
完成将跟踪信息写入分配给该任务的信息存储区之后,将跟踪模块调用次数减1;
当跟踪模块调用次数为0时,控制跟踪信息发送模块读取跟踪信息缓存区中未读取的跟踪信息。
本发明还提供了一种嵌入式系统跟踪调试装置,包括:
跟踪模块,获取任务跟踪信息数据,组装跟踪信息,将跟踪信息写入跟踪信息缓存区中该任务的信息存储区;
信息存储区分配模块,在跟踪信息缓存区中为任务分配信息存储区,发送所分配的信息存储区信息给跟踪模块;
跟踪信息缓存区,用于缓存任务跟踪信息;
跟踪信息发送模块,从跟踪信息缓存区读取跟踪信息数据并发送给分析设备;
分析设备,分析跟踪信息。
所述跟踪信息缓存区包括多个信息存储区,每个信息存储区对应一个系统优先级。
所述信息存储区进一步包括位于该信息存储区尾部的溢出缓存区,所述溢出缓存区的长度不小于该信息存储区对应优先级的各任务的最大跟踪信息长度-1。
所述信息存储区分配模块进一步包括:
任务优先级获取单元,用于获取任务优先级;
信息存储区选择单元,用于根据获取的任务优先级选择信息存储区,
信息存储区分配单元,获取所述信息存储区选择单元所选择的信息存储区的空闲缓存区的首地址并发送给所述跟踪模块。
所述信息存储区分配模块进一步包括:
跟踪信息长度获取单元,获取任务本次跟踪信息长度;
信息存储区分配单元,在所述跟踪信息缓存区的空闲缓存区中分配长度为跟踪信息长度的缓存区作为任务信息存储区,将所述任务信息存储区的首地址发送给跟踪模块。
所述任务信息存储区的首地址为空闲缓存区的第一个存储单元的地址。
所述跟踪信息缓存区进一步包括位于其尾部的溢出缓存区,所述溢出缓存区的长度不小于系统的最大跟踪信息长度-1。
所述跟踪模块进一步包括:
跟踪信息获取单元,获取任务跟踪信息数据;
跟踪信息组装单元,将跟踪信息获取单元获取的数据组装成跟踪信息;
跟踪信息写入单元,将跟踪信息写入跟踪信息缓存区中该任务的信息存储区;
跟踪模块调用计数单元,记录跟踪模块调用次数,在信息存储区分配模块为任务分配信息存储区后将跟踪模块调用次数加1,完成跟踪信息写入后将跟踪模块调用次数减1;
跟踪模块调用次数检测单元,在跟踪模块调用计数单元完成跟踪模块调用次数减1操作后检测跟踪模块调用次数,当跟踪模块调用次数为0时,控制跟踪信息发送单元开始读取跟踪信息。
本发明的技术方案在跟踪模块开始获取跟踪数据之前为本次调用该跟踪模块的任务分配了信息存储区;这样,如果在任务1(低优先级)跟踪信息缓存过程中有任务2(高优先级)需要进行跟踪信息缓存时,由于任务1跟踪信息所需的缓存区已被分配,任务2的跟踪信息会写入另外分配给任务2的缓存区,当任务2结束,任务1重新获得调度时,可以继续在分配给任务1的缓存区中连续写入跟踪信息,从而避免了跟踪信息缓存冲突而造成的跟踪信息数据乱序排列或跟踪信息丢失的问题。
附图说明
图1是跟踪信息缓存区数据乱序场景图;
图2是本发明跟踪调试方法总体流程图;
图3是具体实施例1信息存储区分配及跟踪信息写入优选实现方法流程图;
图4是具体实施例2信息存储区分配优选实现方法流程图;
图5是本发明嵌入式系统跟踪调试装置结构图;
图6是具体实施例3信息存储区分配模块结构图;
图7是具体实施例3跟踪信息缓存区优选实现方式结构图;
图8是具体实施例4信息存储区分配模块结构图;
图9是具体实施例4跟踪模块优选实现方式结构图;
图10是具体实施例4跟踪信息缓存区优选实现方式结构图;
具体实施方式
为进一步说明本发明的技术方案,下面给出具体实施例并结合附图详细说明。
具体实施例1
本实施例为本发明嵌入式系统跟踪调试方法的一种优选实施方式,总体流程如图2所示,包括:
1、任务在跟踪点调用跟踪模块,开始跟踪;
2、在跟踪信息缓存区为调用跟踪模块的任务分配特定的信息存储区;
本实施例中,本步骤在跟踪信息缓存区预先划分的各优先级信息存储区中选择该任务优先级对应的信息存储区分配给该任务;
3、跟踪模块获取该任务的跟踪信息数据,组装跟踪信息,将跟踪信息写入该信息存储区;
跟踪信息可以写入该信息存储区的空闲缓存区的任意位置;
一种优选实施方式为从该空闲缓存区的第一个存储单元开始顺序写入该空闲缓存区;
进一步的,本发明还可以预先分别将各信息存储区最后一部分存储单元设置为该信息存储区的溢出缓存区;在将跟踪信息写入分配给该任务的信息存储区时,如果该信息存储区的空闲缓存区包括溢出缓存区之前的最后一个存储单元,且从该空闲缓存区的第一个存储单元到溢出缓存区之前的最后一个存储单元的长度小于跟踪信息长度,将跟踪信息从空闲缓存区的第一个存储单元开始顺序写入空闲缓存区及溢出缓存区;
所述溢出缓存区的长度不小于该信息存储区对应优先级的各任务的最大跟踪信息长度-1;
4、跟踪信息发送模块读取缓存的跟踪信息,发送到分析设备进行跟踪信息分析。
跟踪信息发送模块可以读取任意一个保存有未读取跟踪信息的信息存储区中的数据并发送,一种优选实施方式为读取保存未读取跟踪信息数量最多的信息存储区;
5、分析设备对跟踪信息进行分析。
本实施例中,根据优先级预先将跟踪缓存区划分为不同的信息存储区,每个任务的跟踪信息只会写入其优先级对应的信息存储区,而相同优先级的任务不会发生抢占的情况,因而也就不会发生由于任务抢占资源而出现跟踪信息写入冲突的问题。为了避免跟踪信息读取发送占用过多的系统资源,本发明的跟踪信息发送模块读取及发送跟踪信息优选采用DMA传输。而DMA传输不能实现在同一次传输中读取非连续存储的数据,本实施例的优选跟踪信息写入方式可以确保信息存储区中数据存储的连续性,从而减少DMA的启动次数,减少了启动DMA对系统资源的占用。各优先级的信息存储区采用的是循环缓存,在没有溢出缓存区的情况下,当信息存储区尾部的空闲缓存区长度不足以保存一条完整跟踪信息时,只能将跟踪信息超出长度的部分保存到信息存储区的头部,在采用DMA传输时,由于DMA传输的方式限制,该跟踪信息只能分为两次读取发送,这样会造成分析设备接收到不完整的跟踪信息。在本实施例进一步优选实现方式中,在每个信息存储区的尾部设置了一个溢出缓存区,当溢出缓存区之前的空闲缓存区长度不足以保存一条完整的跟踪信息时,可以将超出长度部分的跟踪信息连续保存到溢出缓存区;这样,一条跟踪信息在信息存储区中可以连续的完整保存;从而保证了每条跟踪信息都能够在一次DMA传输过程中被完整的发送。
具体实施例2
本实施例为本发明嵌入式系统跟踪调试方法的一种优选实施方式,总体流程如图2所示,包括:
1、任务在跟踪点调用跟踪模块,开始跟踪;
2、在跟踪信息缓存区为调用跟踪模块的任务分配特定的信息存储区;
本实施例中,本步骤在跟踪信息缓存区的空闲缓存区中为该任务分配一个长度为跟踪信息长度的缓存区作为该任务的信息存储区;
一种优选实施方式为从所述空闲缓存区的第一个存储单元开始分配连续的缓存区作为该任务的信息存储区;与具体实施例1的优选实施方式相似,采用本优先实施方式可以使得跟踪信息缓存区中分配的信息存储区是连续的,从而减少启动DMA的次数,降低对系统资源的占用;
进一步的,本发明还可以预先将所述跟踪信息缓存区最后一部分存储单元设置为溢出缓存区;在为该任务分配信息存储区时,如果所述空闲缓存区包括所述溢出缓存区之前的最后一个存储单元且从所述空闲缓存区的第一个存储单元到所述溢出缓存区之前的最后一个存储单元的长度小于跟踪信息长度,则从所述空闲缓存区的第一个存储单元开始在所述空闲缓存区以及溢出缓存区中为该任务分配长度为该任务本次跟踪信息长度的连续缓存区作为该任务的信息存储区;采用本优选方案保证了每条跟踪信息都能够在一次DMA传输过程中被完整的发送。
所述溢出缓存区的长度不小于系统的最大跟踪信息长度-1;
3、跟踪模块获取该任务的跟踪信息数据,组装跟踪信息,将跟踪信息写入该信息存储区;
4、跟踪信息发送模块读取缓存的跟踪信息,发送到分析设备进行跟踪信息分析。
5、分析设备对跟踪信息进行分析。
本实施例还可以进一步包括如下优选方案:
设置一个跟踪模块调用次数计数器,初始计数值为0;
在步骤2之后,将跟踪模块调用次数加1,
在步骤3之后,将跟踪模块调用次数减1;检测跟踪模块调用次数,当跟踪模块调用次数为0时,才执行步骤4及步骤5。
采用该优选方案可以保证在跟踪信息发送模块读取跟踪信息缓存区的数据时,所有已分配的信息存储区都保存有完整的跟踪信息,避免了数据读取开始时由于还有任务未完成跟踪信息写入而造成的跟踪信息缓存区保存的未读取数据不连续的情况,减少了DMA传输方式下读取数据时DMA启动次数。
具体实施例3
本实施例为本发明嵌入式系统跟踪调试装置的一种优选实施方式,具体结构如图5所示,包括:
跟踪模块,获取任务跟踪信息数据,组装跟踪信息,将跟踪信息写入该任务的信息存储区;
信息存储区分配模块,在跟踪信息缓存区中为任务分配信息存储区;
跟踪信息缓存区,用于缓存任务跟踪信息;
跟踪信息发送模块,从跟踪信息缓存区读取跟踪信息数据并发送给分析设备;
分析设备,分析跟踪信息。
其中,信息存储区分配模块如图6所示,包括:
任务优先级获取单元,用于获取任务优先级;
信息存储区选择单元,用于根据获取的任务优先级选择信息存储区,
信息存储区分配单元,获取所述信息存储区选择单元所选择的信息存储区的空闲缓存区的首地址并发送给所述跟踪模块。
所述跟踪信息缓存区划分为多个信息存储区,每个信息存储区对应一个系统优先级。
每个信息存储区还可以优选的包括一个位于该信息存储区尾部的溢出缓存区,所述溢出缓存区的长度不小于该信息存储区对应优先级的各任务的最大跟踪信息长度-1,如图7所示。
具体实施例4
本实施例为本发明嵌入式系统跟踪调试装置的另一种优选实施方式,具体结构如图4所示。
本实施例装置的总体结构与具体实施例3相同。
其中,所述信息存储区分配模块如图8所示,包括:
跟踪信息长度获取单元,获取任务本次跟踪信息长度;
信息存储区分配单元,在所述跟踪信息缓存区的空闲缓存区中分配长度为跟踪信息长度的缓存区作为任务信息存储区,将所述任务信息存储区的首地址发送给跟踪模块;
信息存储区的首地址优选为空闲缓存区的第一个存储单元的地址。
跟踪模块的结构如图9所示,包括:
跟踪信息获取单元,获取任务跟踪信息数据;
跟踪信息组装单元,将跟踪信息获取单元获取的数据组装成跟踪信息;
跟踪信息写入单元,将跟踪信息写入该任务的信息存储区;
跟踪模块调用计数单元,记录跟踪模块调用次数,在信息存储区分配模块为任务分配信息存储区后将跟踪模块调用次数加1,完成跟踪信息写入后将跟踪模块调用次数减1。
跟踪模块调用次数检测单元,在跟踪模块调用计数单元完成跟踪模块调用次数减1操作后检测跟踪模块调用次数,当跟踪模块调用次数为0时,控制跟踪信息发送单元开始读取跟踪信息。
跟踪信息缓存区优选包括一个位于其尾部的溢出缓存区,如图10所示,所述溢出缓存区的长度不小于系统的最大跟踪信息长度-1。
本领域的一般技术人员显然应该清楚并且理解,本发明方法所举的以上实施例仅用于说明本发明方法,而并不用于限制本发明方法。在不背离本发明方法的精神及其实质的情况下,本领域技术人员当可根据本发明方法做出各种相应的改变或变形,但这些相应的改变或变形均属于本发明方法的权利要求保护范围。

Claims (13)

1.一种嵌入式系统跟踪调试方法,其特征在于,包括:
任务调用跟踪模块开始跟踪;
在跟踪信息缓存区为调用跟踪模块的任务分配特定的信息存储区;
跟踪模块获取该任务的跟踪信息数据,组装跟踪信息,将跟踪信息写入该信息存储区;
跟踪信息发送模块读取缓存的跟踪信息,发送到分析设备进行跟踪信息分析;
所述在跟踪信息缓存区为调用跟踪模块的任务分配特定的信息存储区包括:
根据系统任务优先级将跟踪信息缓存区划分为多个信息存储区,每个信息存储区对应一个系统优先级;
根据调用跟踪模块的任务的优先级选择相应的信息存储区分配给该任务;
设置溢出缓存区,所述溢出缓存区为预先保留的各信息存储区最后一部分存储单元,其长度不小于该信息存储区对应优先级的各任务的最大跟踪信息长度-1;
设置溢出缓存区,所述溢出缓存区为预先保留的跟踪信息缓存区的最后一部分存储单元,其长度不小于系统的最大跟踪信息长度-1。
2.根据权利要求1所述的方法,其特征在于,在跟踪信息缓存区为调用跟踪模块的任务分配特定的信息存储区包括根据系统任务优先级将跟踪信息缓存区划分为多个信息存储区时,所述将跟踪信息写入该信息存储区包括:
将该任务的跟踪信息从分配给该任务的信息存储区的空闲缓存区的第一个存储单元开始写入该信息存储区;
所述空闲缓存区指信息存储区中没有保存未读取的跟踪信息的缓存区。
3.根据权利要求2所述的方法,其特征在于,还包括:
在将跟踪信息写入分配给该任务的信息存储区时,如果该信息存储区的空闲缓存区包括溢出缓存区之前的最后一个存储单元,且从该空闲缓存区的第一个存储单元到溢出缓存区之前的最后一个存储单元的长度小于跟踪信息长度,将跟踪信息从空闲缓存区的第一个存储单元开始顺序写入空闲缓存区及溢出缓存区。
4.根据权利要求2~3中任一项所述的方法,其特征在于,所述跟踪信息发送模块读取缓存的跟踪信息进一步包括:
跟踪信息发送模块选择保存跟踪信息最多的信息存储区,从该信息存储区中读取跟踪信息。
5.根据权利要求1所述的方法,其特征在于,在直接设置溢出缓存区,溢出缓存区为预先保留的跟踪信息缓存区的最后一部分存储单元时,所述在跟踪信息缓存区为调用跟踪模块的任务分配特定的信息存储区进一步包括:
在跟踪信息缓存区的空闲缓存区中为该任务分配信息存储区;该信息存储区的长度为跟踪信息长度;
所述空闲缓存区为跟踪信息缓存区中没有保存未读取的跟踪信息也没有分配给其他任务的缓存区。
6.根据权利要求5所述的方法,其特征在于,所述在跟踪信息缓存区的空闲缓存区中为该任务分配信息存储区进一步包括:
从所述空闲缓存区的第一个存储单元开始分配连续的缓存区作为该任务的信息存储区。
7.根据权利要求6所述的方法,其特征在于,还包括:
在为该任务分配信息存储区时,如果所述空闲缓存区包括所述溢出缓存区之前的最后一个存储单元且从所述空闲缓存区的第一个存储单元到所述溢出缓存区之前的最后一个存储单元的长度小于跟踪信息长度,则从所述空闲缓存区的第一个存储单元开始在所述空闲缓存区以及溢出缓存区中为该任务分配长度为跟踪信息长度的连续缓存区作为该任务的信息存储区。
8.根据权利要求5~7中任一项所述的方法,其特征在于,还包括:
在跟踪信息缓存区为调用跟踪模块的任务分配特定的信息存储区之后,将跟踪模块调用次数加1;
完成将跟踪信息写入分配给该任务的信息存储区之后,将跟踪模块调用次数减1;
当跟踪模块调用次数为0时,控制跟踪信息发送模块读取跟踪信息缓存区中未读取的跟踪信息。
9.一种嵌入式系统跟踪调试装置,其特征在于,包括:
跟踪模块,获取任务跟踪信息数据,组装跟踪信息,将跟踪信息写入跟踪信息缓存区中该任务的信息存储区;
信息存储区分配模块,在跟踪信息缓存区中为任务分配信息存储区,发送所分配的信息存储区信息给跟踪模块;
跟踪信息缓存区,用于缓存任务跟踪信息;所述跟踪信息缓存区包括多个信息存储区,每一个信息存储区对应一个系统优先级,所述每一个信息存储区包括位于该信息存储区尾部的溢出缓存区,所述溢出缓存区的长度不小于该信息存储区对应优先级的各任务的最大跟踪信息长度-1;或
所述跟踪信息缓存区包括位于其尾部的溢出缓存区,所述溢出缓存区的长度不小于系统的最大跟踪信息长度-1;
跟踪信息发送模块,从跟踪信息缓存区读取跟踪信息数据并发送给分析设备;
分析设备,分析跟踪信息。
10.根据权利要求9所述的装置,其特征在于,当所述跟踪信息缓存区包括多个信息存储区时,所述信息存储区分配模块包括:
任务优先级获取单元,用于获取任务优先级;
信息存储区选择单元,用于根据获取的任务优先级选择信息存储区;
信息存储区分配单元,获取所述信息存储区选择单元选择的信息存储区的空闲缓存区的首地址并发送给所述跟踪模块;
所述空闲缓存区指信息存储区中没有保存未读取的跟踪信息的缓存区。
11.根据权利要求9所述的装置,其特征在于,当所述跟踪信息缓存区包括位于其尾部的溢出缓存区时,所述信息存储区分配模块进一步包括:
跟踪信息长度获取单元,获取任务本次跟踪信息长度;
信息存储区分配单元,在所述跟踪信息缓存区的空闲缓存区中分配长度为跟踪信息长度的缓存区作为任务信息存储区,将所述任务信息存储区的首地址发送给跟踪模块;
所述空闲缓存区为跟踪信息缓存区中没有保存未读取的跟踪信息也没有分配给其他任务的缓存区。
12.根据权利要求11所述的装置,其特征在于,所述任务信息存储区的首地址为空闲缓存区的第一个存储单元的地址。
13.根据权利要求10-12中任一项所述的装置,其特征在于,所述跟踪模块包括:
跟踪信息获取单元,获取任务跟踪信息数据;
跟踪信息组装单元,将跟踪信息获取单元获取的数据组装成跟踪信息;
跟踪信息写入单元,将跟踪信息写入跟踪信息缓存区中该任务的信息存储区;
跟踪模块调用计数单元,记录跟踪模块调用次数,在信息存储区分配模块为任务分配信息存储区后将跟踪模块调用次数加1,完成跟踪信息写入后将跟踪模块调用次数减1;
跟踪模块调用次数检测单元,在跟踪模块调用计数单元完成跟踪模块调用次数减1操作后检测跟踪模块调用次数,当跟踪模块调用次数为0时,控制跟踪信息发送单元开始读取跟踪信息。
CN201110300526.8A 2011-09-30 2011-09-30 一种嵌入式系统跟踪调试方法及装置 Active CN103034581B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110300526.8A CN103034581B (zh) 2011-09-30 2011-09-30 一种嵌入式系统跟踪调试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110300526.8A CN103034581B (zh) 2011-09-30 2011-09-30 一种嵌入式系统跟踪调试方法及装置

Publications (2)

Publication Number Publication Date
CN103034581A CN103034581A (zh) 2013-04-10
CN103034581B true CN103034581B (zh) 2016-03-02

Family

ID=48021496

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110300526.8A Active CN103034581B (zh) 2011-09-30 2011-09-30 一种嵌入式系统跟踪调试方法及装置

Country Status (1)

Country Link
CN (1) CN103034581B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572515B (zh) * 2013-10-28 2019-05-31 锐迪科(重庆)微电子科技有限公司 跟踪模块、方法、系统和片上系统芯片
CN103984655A (zh) * 2014-04-29 2014-08-13 三星半导体(中国)研究开发有限公司 数据访问的处理方法和装置
CN105786685B (zh) * 2014-12-18 2018-05-25 青岛海信移动通信技术股份有限公司 一种移动终端在线调试和诊断的方法及终端
CN105528261B (zh) * 2015-11-30 2018-10-09 武汉烽火网络有限责任公司 一种嵌入式设备中智能输出调试信息的方法及系统
CN106339286B (zh) * 2016-08-24 2019-11-22 广州芯德通信科技股份有限公司 一种嵌入式系统黑盒子调试的实现方法
CN108255692B (zh) * 2016-12-28 2021-02-26 新华三技术有限公司 信息处理方法及装置
GB201809542D0 (en) * 2018-06-11 2018-07-25 Nordic Semiconductor Asa Software-trace message sink peripheral
CN112667514B (zh) * 2020-12-31 2024-08-20 海光信息技术股份有限公司 一种微程序的调试方法及其调试装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6708173B1 (en) * 2000-10-18 2004-03-16 Unisys Corporation Method and apparatus for multiple application trace streams
CN101452404A (zh) * 2008-12-09 2009-06-10 中兴通讯股份有限公司 一种嵌入式操作系统的任务调度装置及方法
CN101593218A (zh) * 2008-05-28 2009-12-02 中兴通讯股份有限公司 芯片维护方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6708173B1 (en) * 2000-10-18 2004-03-16 Unisys Corporation Method and apparatus for multiple application trace streams
CN101593218A (zh) * 2008-05-28 2009-12-02 中兴通讯股份有限公司 芯片维护方法
CN101452404A (zh) * 2008-12-09 2009-06-10 中兴通讯股份有限公司 一种嵌入式操作系统的任务调度装置及方法

Also Published As

Publication number Publication date
CN103034581A (zh) 2013-04-10

Similar Documents

Publication Publication Date Title
CN103034581B (zh) 一种嵌入式系统跟踪调试方法及装置
CN107527317B (zh) 基于图像处理的数据传输系统
CN103838859B (zh) 一种减少linux下多进程间数据拷贝的方法
US7987393B2 (en) Determining operating context of an executed instruction
US7707395B2 (en) Data processing system with trace co-processor
CN103064807B (zh) 多通道直接存储器存取控制器
CN110018914B (zh) 基于共享内存的消息采集方法及装置
CN111431757B (zh) 虚拟网络的流量采集方法及装置
CN104111870B (zh) 一种中断处理装置及中断处理方法
US9026871B2 (en) Prioritizing transport of debug data on an integrated circuit chip by data type
US20150377965A1 (en) Debug architecture
EP1482412A1 (en) Shared storage arbitration
CN112148221A (zh) 一种磁盘冗余阵列的巡检方法、装置、设备及存储介质
US20080195793A1 (en) Microcontroller with memory trace module
US7373557B1 (en) Performance monitor for data processing systems
CN116760821A (zh) 一种分布式文件下载方法、系统、电子设备及存储介质
CN115145864B (zh) 数据处理方法、系统、电子设备和存储介质
CN110830385A (zh) 一种捕包处理方法、网络设备、服务器及存储介质
CN107911317B (zh) 一种报文调度方法及装置
CN117499351A (zh) 报文转发装置及方法、通信芯片及网络设备
CN108011751B (zh) 一种机载FlexRay通信接口装置与方法
CN108107750B (zh) 一种电力系统仿真的实时io数据处理方法及系统
CN116917876A (zh) 一种数据处理方法及装置
CN101950277B (zh) 用于微控制单元的数据传输方法与装置以及数据传输系统
CN117009265B (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
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20170426

Address after: Nanping Street 400060 Chongqing Nan'an District Nancheng Road No. 199 left attached to the floor 403

Patentee after: Keen (Chongqing) Microelectronics Technology Co.,Ltd.

Address before: 400065 Chongqing Nan'an District huangjuezhen pass Fort Park No. 1

Patentee before: CHONGQING CYIT COMMUNICATION TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20181105

Address after: 201203 Building 1, exhibition hall, 2288 lane, 2288 Chong, road, Zhangjiang hi tech park, Shanghai

Patentee after: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

Address before: 400060 Nanping Road 199, Nanping Street, Nan'an District, Chongqing, 403

Patentee before: Keen (Chongqing) Microelectronics Technology Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190322

Address after: 361006 Xiamen Free Trade Pilot Area, Xiamen, Fujian Province, Unit X, 8th Floor, Unit 05, Building D, Xiamen International Shipping Center, 97 Xiangyu Road, Xiamen Section

Patentee after: Xinxin Finance Leasing (Xiamen) Co.,Ltd.

Address before: 201203 Building 1, exhibition hall, 2288 lane, 2288 Chong, road, Zhangjiang hi tech park, Shanghai

Patentee before: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20130410

Assignee: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

Assignor: Xinxin Finance Leasing (Xiamen) Co.,Ltd.

Contract record no.: X2021110000009

Denomination of invention: A tracking debugging method and device for embedded system

Granted publication date: 20160302

License type: Exclusive License

Record date: 20210317

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20221026

Address after: 201203 Shanghai city Zuchongzhi road Pudong New Area Zhangjiang hi tech park, Spreadtrum Center Building 1, Lane 2288

Patentee after: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

Address before: 361006 Xiamen Free Trade Pilot Area, Xiamen, Fujian Province, Unit X, 8th Floor, Unit 05, Building D, Xiamen International Shipping Center, 97 Xiangyu Road, Xiamen Section

Patentee before: Xinxin Finance Leasing (Xiamen) Co.,Ltd.