APP下载

嵌入式软件微驱动器远程虚拟调试与仿真

2022-10-25舒晓苓吴雪琴

计算机仿真 2022年9期
关键词:嵌入式软件驱动器调试

舒晓苓,吴雪琴

(电子科技大学成都学院,四川 成都611731)

1 引言

为迎合市场,需缩短嵌入式软件的开发周期,因此嵌入式软件缺陷出现概率增大。嵌入式软件微驱动器在各大领域应用最为广泛,对微驱动器的开发要求较为严格,既要考虑其工作频率,又要考虑其性能。为避免微驱动器出现现实缺陷问题,需研究远程调试方法。远程调试方法在微驱动器开发过程中具有重要地位,远程调试功能是判断一个开发工具好坏的关键指标。经过反复调试可获取更为安全可靠的微驱动器,令其在不同领域均能实现理想性能,在较低的微处理器使用功耗约束下,提升其工作频率。

聂佳等人为降低维护成本,针对设备故障设计远程调试方法,实现设备的远程调试;张根灿等人为实现质子注入器的远程调试,通过Python程序设计远程调试方法,实现质子注入器的远程调试。这两种方法均只能够完成一对一的调试过程,无法实现多个宿主机对同一嵌入式软件微处理器展开调试。

为此,研究嵌入式软件微驱动器虚拟远程调试仿真,实现多个宿主机对同一微处理器的虚拟远程调试,降低微驱动器功耗,提升其工作频率。

2 虚拟远程调试仿真

2.1 整体架构

基于调试代理的嵌入式软件微驱动器虚拟远程调试方法的整体架构如图1所示。

图1 基于调试代理的虚拟远程调试的整体架构

该方法中各开发人员在本地IDE编辑与连接源代码,利用虚拟USB设备连接调式代理和嵌入式软件微驱动器、调试器,实现虚拟远程调试。

嵌入式软件微驱动器利用监控单元实时监控其内部远程调试结果,通过时钟控制单元、数据处理单元与数据写回单元处理监控结果,并传输至调试代理。调试代理属于调试器与嵌入式微驱动器监控间数据传输的桥梁,调试代理利用虚拟USB设备接收全部宿主机的命令;数据解析单元通过矩阵概率检验算法检测接收命令中协议的安全性,剔除危险的协议,获取安全命令;利用数据分发单元与IP/端口线程表完成安全命令的精准分发;利用虚拟USB设备发送安全命令至调试器;利用调试器虚拟远程调试微驱动器;通过各宿主机内的调试器分析微驱动器程序和源程序间的映射,在本地微驱动器文件内存储调试完成的信息。

2.2 基于矩阵概率检验的协议安全检测

在协议的随机性测试时,通过矩阵元素概率分布衡量协议的随机性,为增强协议随机性检测的稳定性,设计一种规范的测试组织与序列划分方式,衡量协议序列的稳定性与加密强度。测试组织的设计步骤如下:

步骤1:对待检测协议序列展开分组,编号为1,2,…,;

步骤2:频数检验各组协议序列,检查所检验序列各部分的随机性,若待检测序列没有通过频数检验,那么检验结束,获取该序列不随机的结论,代表该协议没有展开加密处理,若通过频数检验,转至步骤3;

步骤3:以叠加序列的测试方式,展开矩阵概率检验,检查协议序列的随机平稳性,衡量协议加密程度的强弱。

频数检验具有检测效率快的优势,因此,利用频数检验进行先验,若未通过该检验,则结束检验,节约协议安全检测时间,具体步骤如下:

步骤1:将协议序列内的0码变更成-1码,1码变更成+1码,通过式(1)计算序列变更后的叠加和,指定变更为=2-1,序列内第个点是,序列最短长度≥100比特,计算序列变更后的叠加和公式如下

=++…+

(1)

步骤2:求解统计量,公式如下

(2)

步骤3:求解最终概率值-,公式如下

(3)

其中,(·)为余误差函数。

步骤4:对比分析-和显著性水平=001,若-≥,那么这个协议待检测序列通过频数检验,反之,没有通过频数检验,说明这个协议待检测序列为不随机的。

通过-值的均匀分布方法衡量协议序列的均匀分布特性,具体步骤如下:

步骤1:计算数个分组的待检测协议序列的-值的集合,通过检查-值的通过率与概率分布特性,评价协议加密强度,将强度等级等分成10个区间,取值区间为[0,1],因为-为区间[0,1]间的实数,因此在序列数量很多的情况下,-值应该均匀分布在10个区间中;

步骤2:记录各区间中与-相应的频次,那么

++…+=

(4)

其中,为序列数量。

求解统计量的分布,公式如下

(5)

步骤3:求解假设条件时形成的概率,公式如下

-=(92,2)

(6)

->00001,说明该协议待检测序列满足均匀分布特性,代表该协议随机性较佳。

通过频数检验后的协议序列,经由矩阵概率检验其随机性的强弱,检验步骤如下:

(7)

矩阵概率检验步骤如下:

步骤1:分割长度是的协议待检序列,获取两个=⎣2」比特的区块,这两个区块无交集,剔除余下的-2×比特;

步骤2:针对2个比特的区块,为其建立两个×的和,=,计算与内0码的出现比例,计算公式如下:

=(=0)=方阵内0码的数量

(8)

=(=0)=方阵内0码的数量

(9)

令方阵内的元素为二元序列,记作,1≤≤。

利用式(10)求解各方阵内0码的占比,公式如下

(10)

步骤3:求解内0码的统计比例即统计值,公式如下

()=(=0)=方阵内0码的数量

(11)

步骤4:求解相应的的期望值=(+-),在()差距近似于0情况下,代表该协议序列通过矩阵概率检验。

经过上述分析可知,若协议序列没有通过频数检验,那么说明该协议的随机性较差,代表其没有应用加密措施;若协议序列通过频数检验,且满足均匀分布特性,那么说明该协议的随机性较好,能够展开矩阵概率检验;若协议序列没有通过矩阵概率检验,那么说明该协议的加密机制安全性较低;若协议序列通过矩阵概率检验,那么说明该协议的随机性稳定性强,代表其加密机制安全性高。

2.3 嵌入式软件微驱动器虚拟远程调试的实现

嵌入式软件微驱动器虚拟远程调试实现的关键是调试代理的实现,负责分析全部宿主机的命令,处理目标机传回的数据。宿主机数量提升,导致调试代理出现缓冲区溢出问题,针对该问题,在调试代理部分设计两个线程与,与分别用于接收与分析报文,通过环形缓冲存储接收的报文,在接收一帧数据包情况下,调整写指针尺寸,设计环形缓冲尺寸,设计时需参考宿主机真实个数与报文流量;按照读写针尺寸衡量内有无需分析的数据包,完成分析后,调整读写针尺寸。因为仅需将接收数据存储至缓冲区,无需分析数据,所以可确保宿主机数据接收的实时性,可一直监控缓冲区,依据设置的协议分析监控区域数据。

宿主机数量提升,还会导致调试代理无法将监控结果精准分发至宿主机内,针对该问题,在调试代理中塑造一个宿主机地址至端口的线性映射表,在接收连接命令情况下,调试代理需要衡量该连接是否是新的,衡量依据是线性映射表,同时为其设置一个空闲端口。利用这个端口,宿主机传递命令至调试代理,调试代理为各个分配端口都塑造一个与。在目标机存在数据情况下,调试代理内相应端口的先衡量数据的精准性,再利用线性映射表将数据分发至相应宿主机,确保数据分析的实时性与数据分发的精准性。

3 仿真分析

3.1 仿真工具

为验证本文方法的有效性,利用MATLAB仿真工具对本文方法虚拟远程调试嵌入式软件微驱动器的调试结果展开仿真计算。MATLAB仿真工具具备优越的绘图功能、超快的计算能力与可视化操作等特点,属于一种易于操作的编程仿真工具,自带各种各样的函数,可扩展性强。MATLAB仿真工具的开发环境具有图形窗口与命令窗口等,通过帮助窗口提取不同命令与函数,利用编辑窗口建立并调整MATLAB脚本,依据图形窗口绘制图片,采用命令窗口输入命令,自动生成调试结果。

3.2 实验结果与分析

利用本文方法虚拟远程调试嵌入式软件微驱动器,经由MATLAB仿真工具呈现仿真调试结果,仿真远程调试部分结果如图2所示。

图2 仿真远程调试部分结果

根据图2可知,本文方法可有效完成数据分发,实现嵌入式软件微驱动器虚拟远程调试。

选择文献[4]的电机远程调试方法与文献[5]的质子注入器远程调试方法作为本次实验的对比方法,通过不同虚拟远程调试功能,仿真分析三种方法的时间性能,仿真分析结果如表1所示。

表1 时间性能仿真分析结果

根据表1可知,在不同调试功能时,本文方法的调试时间均显著低于其余两种方法,本文方法平均调试时间为62.36ms,其余两种方法的平均调试时间分别为116.23ms、100.68ms;本文方法调试时间较快的原因是:本次研究利用目标机实时监控调试过程,及时反馈监控结果至调试代理,加快调试时间。

为仿真分析本文方法协议安全检测的有效性,在嵌入式软件微驱动器虚拟远程调试过程中,随机选取两套协议当成待检测样本,这两套协议分别属于未采取加密措施与采取加密措施的协议,每个待检测样本中均包含20组50Byte的序列,显著性水平是0.01,利用本文方法对未采取加密措施协议的安全性展开频数检验,仿真分析结果如图3所示。

图3 仿真分析结果

根据图3可知,该协议内全部序列的-值均未超过001,说明这些序列均未通过频数检验,即该协议的随机性不佳,代表该协议未采取加密措施,与实际情况相符,这些序列为通过频数检验便无需进行后续的矩阵概率检验。

利用本文方法检测采取加密措施协议的安全性,仿真分析结果如图4所示。

图4 仿真分析结果

根据图4可知,该协议内全部序列的-值均高于001,说明该协议通过频数检验,同时-值在区间[0,1]间分布较为均匀,需要继续展开矩阵概率检验;根据矩阵概率检验结果可知,共有五个序列的期望值和统计值差距较大,没有通过矩阵概率检验,剩余序列期望值与统计值差距较小,均通过了矩阵概率检验,说明该协议采取了加密措施,随机性较佳,但加密强度较低。实验证明:本文方法能够有效检测出协议是否采取加密措施,并获取其加密强度,具备较优的协议安全检测效果。

仿真分析经过本文方法虚拟远程调试前后,微驱动器内部各单元的功耗与工作频率,仿真分析结果如图5所示。

图5 调试前后功耗与工作频率仿真分析结果

根据图5可知,利用本文方法虚拟远程调试后,微驱动器内各单元的功耗均明显低于调试前,各单元的工作频率均明显高于调试前,说明应用本文方法虚拟远程调试微驱动器后,可有效降低其功耗,提升其工作频率。

4 结论

嵌入式软件微处理器的更新速度显著加快,导致其开发周期缩短,加大了后期调试难度,一种好的远程调试方法对嵌入式软件微处理器的开发至关重要。为此,研究嵌入式软件微驱动器虚拟远程调试方法。设计虚拟远程调试架构,实现虚拟远程调试,利用矩阵概率检验检测发布命令协议安全性,剔除不安全的协议,确保虚拟远程调试的安全。

仿真结果表明:所研究方法可有效实现虚拟远程调试,缩短调试时间。本文采用虚拟USB设备实现嵌入式软件微处理器调试器、调试代理与目标机间的通信,其数据传输距离有限,日后可以研究远程调试通道扩展方法,延长数据传输距离,使虚拟远程调试方法在更多场合应用。

猜你喜欢

嵌入式软件驱动器调试
高温气冷堆示范工程TSI系统安装及调试
气动网络多腔室弯曲软体驱动器结构优化
电气仪表自动化安装与调试分析
调试新设备
藏起驱动器号确保数据安全
调试机械臂
嵌入式软件测试数据传输稳定性检测方式分析
浅析嵌入式软件技术的现状与发展动向
基于VPRS方法的汽车嵌入式软件品质评估
空间大载荷石蜡驱动器研制