一种分布式环境下嵌入式硬件辅助追踪轨迹同步方法与流程

文档序号:18741460发布日期:2019-09-21 01:49阅读:481来源:国知局
一种分布式环境下嵌入式硬件辅助追踪轨迹同步方法与流程

本发明属于嵌入式系统评测领域,具体涉及一种分布式环境下嵌入式硬件辅助追踪轨迹同步方法,应对分布式嵌入式系统各个节点间的追踪轨迹数据不同步的问题。



背景技术:

对分布式嵌入式系统进行非侵入式系统状态评测,硬件辅助追踪是非常有限的技术手段,但是,硬件辅助追踪测试所得的由SWO(Serial Wire Output)接口输出的追踪轨迹数据本身是孤立的,不与外部时间关联;而且分布式嵌入式系统各个节点间的追踪轨迹数据也相互孤立,数据之间不同步,追踪轨迹数据连续、数据量大且不同步。虽然硬件辅助追踪单元可以输出内部增量时间戳,但其计数器只有21位,很快就会回零,不适用于长期记录,这就给完整程序的分析与系统状态评测带来了很大的阻碍,因此亟需一种有效的追踪轨迹同步方法。

相关技术中,在对分布式嵌入式系统进行评测时,4位GPIO(General-purpose input/output)向外输出追踪数据,在采集追踪数时,所有的分布式采集设备均需要带有独立的硬件触发功能以及时间戳标记功能的模块,这种方法仅能应对少量数据的同步需求且成本昂贵。



技术实现要素:

本发明的目的在于针对上述现有技术中的问题,提供一种分布式环境下嵌入式硬件辅助追踪轨迹同步方法,通过该轨迹同步方法为使用嵌入式硬件辅助追踪技术的测试者提供高可信、高稳定的硬件辅助追踪数据,从而极大程度上为系统评测与分析提供便利。

为了实现上述目的,本发明采用的技术方案包括以下步骤:

步骤一、向被测工程代码添加追踪配置以及周期性的GPIO翻转,进行交叉编译;

步骤二、将交叉编译后的结果下载至被测目标,将每个被测目标的SWO接口输出连接至每个分布式采集设备,分布式采集设备同时连接每个被测目标用作翻转的GPIO;

步骤三、建立NTP服务器并输入GPS数据,对NTP服务器完成GPS授时;

步骤四、将所有的分布式采集设备作为NTP客户端与NTP服务器,并且通过网络进行连接,完成所有分布式采集设备的时间同步;

步骤五、控制所有分布式采集设备同时启动被测目标,同时也启动时间戳采集以及SWO接口输出数据记录,记录所有GPIO翻转的Unix时间戳(从协调世界时1970年1月1日0时0分0秒起至这一次GPIO翻转时刻的总秒数)与SWO接口输出的追踪数据;

步骤六、执行脚本完成GPIO时间戳与SWO输出数据的对齐。

所述的步骤一执行被测工程代码的被测目标处理器内核为具有指令追踪宏单元ITM以及数据观察点与追踪单元DWT的ARM Cortex-M3/M4内核或更高级别内核。

所述的步骤一执行被测工程代码时,首先,开启指令追踪宏单元ITM以及数据观察点与追踪单元DWT并使能SWO接口,并配置数据观察点与追踪单元DWT监测GPIO翻转;

在程序运行时,指令追踪宏单元ITM将数据观察点与追踪单元DWT监测到的GPIO翻转事件记录在追踪轨迹内并通过被测目标的SWO接口向外发出。

所述的步骤六在进行GPIO时间戳与SWO输出数据对齐时,将观察点与追踪单元DWT记录的GPIO翻转以观察点的形式出现在追踪轨迹中,GPIO时间戳与这个观察点直接对齐。

所述的步骤六在进行GPIO时间戳与SWO输出数据对齐时,如果在被测目标启动阶段,被测目标不能输出完整的追踪轨迹,此时GPIO时间戳在追踪轨迹中没有与之相对应的观察点与追踪单元DWT记录,通过脚本程序筛选出这些时间戳并将其删除。

所述的指令追踪宏单元ITM内部增量时间戳由21位的计数器产生,记满后清0。

所述的步骤四将分布式采集设备通过以太网或者无线局域网连接。

所述的步骤五在记录GPIO翻转时,首先采取中断的方式采集GPIO翻转信号,然后再在中断的内部记录当前时刻的Unix时间戳作为GPIO时间戳。

与现有技术相比,本发明具有如下的有益效果:由于GPIO翻转能够被外部设备捕获并标记时间戳,同时在现代32位嵌入式处理器中执行一次GPIO翻转的速度大约为数十个纳秒,不额外占用更多的程序执行时间,对程序运行的影响可忽略不计;GPIO翻转同时还可以被硬件辅助追踪单元中的DWT(Data Watchpoint and Trace)记录并经ITM(Instrumentation Trace Macrocell)打包后由SWO接口输出,因此DWT可以作为桥梁,关联内外时间戳,而分布式采集设备间通过NTP(Network Time Protocol)协议完成时钟同步。本发明以DWT为桥梁,关联ITM记录追踪数据的内部时间戳与外部时间戳,同时消除ITM记录数据与真实事件间的是时间延迟,方便测试人员以较高的时间准确度评测分析分布式系统的运行状况。

附图说明

图1本发明的同步方法原理框图;

图2本发明实施例1的GPIO时间戳采集结果图;

图3本发明实施例2分布式采集设备上运行的脚本流程图;

图4本发明实施例2的GPIO时间戳采集结果图;

图5本发明实施例2被测目标SWO的DWT Watchpoint对齐Unix时间戳后结果图。

具体实施方式

下面结合附图对本发明做进一步的详细说明。

本发明分布式环境下嵌入式硬件辅助追踪轨迹同步方法,该方法用于同步追踪轨迹内外的时间戳,为追踪轨迹带来精确的时间度量,并消除追踪轨迹与真实事件间的时间延迟。

具体包括以下步骤:

步骤一、向被测工程代码添加追踪配置,开启ITM与DWT,同时向被测工程代码添加周期性的GPIO翻转,DWT监测这个用作翻转的GPIO,经过交叉编译后下载至被测目标;

步骤二、将每个被测目标的SWO输出连接至每个分布式采集设备,将每个被测目标用作翻转的GPIO连接至分布式采集设备,SWO与GPIO连接至同一分布式采集设备;

步骤三、建立NTP服务器,并将GPS连接至此NTP服务器,对NTP服务器完成GPS授时。NTP服务器通过与GPS模块的数据输出接口和PPS(Pulse Per Second)接口与卫星时钟保持一致,NTP服务器为局域网中的分布式采集提供精准的时钟源;

步骤四、所有的分布式采集设备作为NTP客户端与NTP服务器通过以太网/无线局域网连接,完成所有分布式采集设备的时间同步;

步骤五、控制器通过脚本控制所有分布式采集设备同时启动被测目标,启动时间戳采集软件与SWO输出数据记录软件,记录GPIO翻转的Unix时间戳与SWO输出的追踪数据;

步骤六、执行脚本完成GPIO时间戳与SWO输出数据的对齐;

步骤七、远程重启采集设备与目标,重复步骤一到步骤五,继续对目标进行测试。

步骤六中的对齐方法,可以包括以下步骤:在被测目标启动阶段,被测目标不能输出完整的追踪轨迹,此时GPIO时间戳在追踪轨迹中没有与之相对应的DWT记录,需要脚本程序筛选出这些时间戳并将其删除,将有DWT记录的GPIO时间戳选出并将二者一一对应。

实施例1

为了测试多个分布式采集设备间的同步误差,实验选定chrony软件与UM220-III北斗/GPS导航模块搭建NTP系统,选定1个树莓派3B+作为NTP服务器,2个树莓派3B作为分布式采集设备,1个STM32F103RCT6开发板作为被测目标。被测目标执行STM32CubeMx生成的标准邮箱队列工程代码并在其中添加周期为1ms的GPIO翻转代码,设定两个分布式采集设备在同一时刻运行GPIO采集程序采集被测目标的GPIO翻转,并使用sys/time.h中的gettimeofday函数标记Unix时间戳,最终采集结果如图2所示。时间戳格式为北京时间的年月日时分秒与其对应的Unix时间戳的组合。图2左侧为树莓派1最终标记到的被测目标GPIO翻转的Unix时间戳,图2右侧为树莓派2标记到的被测目标GPIO翻转的Unix时间戳;左右侧相同时刻下的Unix时间戳误差小于等于4us,能够有效证明NTP时钟同步,以及树莓派进行GPIO时间戳标记方案的有效性。除第一个时间戳外,其它时刻,两个采集设备采集的时间戳误差不超过10个微秒;而第一个时间戳由于受程序启动初始化中断等因素的印象,本身时间戳精准度欠佳,并不影响其余GPIO的采集与时间戳的标记。

实施例2

关联内外时间戳,实验选定1个树莓派3B作为分布式采集设备,1个STM32F103RCT6开发板作为被测目标,1个CY7C68013A进行追踪数据采集,且CY7C68013A通过USB接口与分布式采集设备连接,被测目标执行STM32CubeMx生成的标准邮箱队列工程代码,并在其中添加周期为1ms的GPIO翻转代码。参见图3,首先停止被测目标的运行并下载被测工程代码,然后启动GPIO采集程序(中断方式采集GPIO并标记Unix时间戳)与SWO采集程序(操纵CY7C68013A),由于没有恢复被测目标的运行,因而就没有GPIO翻转与追踪数据到来,这两个程序都进入就绪状态,随后恢复被测目标,被测目标执行程序,此时GPIO翻转与追踪数据均到来触发GPIO采集程序与SWO采集程序到运行状态,开始采集。最终结果如图4-5所示,图4为树莓派最终标记到的被测目标GPIO翻转的Unix时间戳,然后对采集到的SWO中的DWT Watchpoint赋予与其对应的Unix时间戳,最终部分结果如图5所示,从图中能够看出,通过本发明同步方法成功为DWT监测到的GPIO翻转标记Unix时间戳,关联内外时间,为原本没有标准时间度量的SWO数据带来标准化的时间度量标准。

由于ITM内部增量时间戳由21位的计数器产生,记满后便清0,所以适合用来计算两个时间戳数据间记录的事件执行了多少时间,无法用来对函数整个执行周期内的数据进行时间计量。与此同时,ITM记录数据与真实事件间存在时间延迟,且这个延迟是不固定的。

本发明以DWT为桥梁,关联ITM记录追踪数据的内部时间戳与外部时间戳,同时消除ITM记录数据与真实事件间的是时间延迟,为使用嵌入式硬件辅助追踪技术的测试者提供高可信、高稳定的硬件辅助追踪数据,极大程度上为系统评测与分析提供便利。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1