SkyEye助力飞控软件Debug

news2024/10/1 17:39:41

​01.Debug是什么?

1947年9月9日,美国著名科学家格蕾丝.霍普(Grace Hopper)与其同伴在对Mark II计算机进行研究时发现,导致计算机无法正常工作的罪魁祸首居然是一只粘在继电器上的小飞蛾。格蕾丝用镊子将飞蛾夹出,并用胶带固定到日志中,并在日志最后写了这样一句话:“First actual case of bug being found”。这是历史上第一次出现关于bug的记载,排除故障的过程被称为“Debug”,后被译为调试,并在之后的计算机领域内广为流传。

 在75年后的今天,计算机领域的软硬件调试技术经历了不断的发展和演进,对嵌入式领域而言已成为与开发、设计一样重要的存在。尤其在嵌入式系统飞速发展的飞行控制领域,软硬件紧耦合的尴尬处境使得具备优秀调试技术的工程师变得炙手可热:只有快速定位问题并找到问题出现的根本原因,才能最大程度地降低调试成本,缩短开发周期。

02.常规的调试步骤有哪些?

第一步 · 正确重现问题

当问题出现在本地时,工程师通常可以轻松实现问题复现,但当问题出现在设备所在地或远程站点时,调试工作便完全依赖于记录了设备各项参数设置的可靠日志。在实际操作中,此类情况的出现将对最终的调试结果造成直接影响——一旦复现的问题与实际存在出入,一切调试工作都将存在偏差,需要多次迭代才能最终解决问题。

第二步 · 缩小问题所在范围

一旦问题被正确复现,接下来的步骤就是细化问题所在区域。嵌入式系统通常可分为应用层、固件层、硬件层,这一过程便可通过获取这之中的数据流来完成:以应用层与固件层、硬件层的接口为抓手,获取数据流,并根据逻辑将数据流路径划分为更多的子级别。这一过程可独立检查、测试来确定每一层是否存在问题,并缩小问题所在范围。

第三步 · 修复每一个小问题

由于嵌入式系统通常存在高度耦合性,因此问题极有可能不仅仅存在于一处。需要根据设备逻辑纵观数据流完整路径,找到所有需要修改之处,并一一修改对应代码。

第四步 · 充分测试,确保Debug已完成

比与棘手的bug做斗争更为令人沮丧是,在工程师以为Debug完成后,bug还依然存在,且“解决方案”导致了更多bug的出现。解决此类问题的方法便是进行充分测试,但由于高耦合门槛的存在,常规的TypeScript、console.log、VS Code都无法应对当下复杂度极高的嵌入式系统。

03.仿真:飞控Debug的解决方案

对嵌入式系统整体过程进行全数字实时仿真,便可在很大程度上解决上述各种各样的调试问题。由迪捷软件自主研发的天目全数字实时仿真软件SkyEye,可在常见的桌面级操作系统上仿真嵌入式硬件芯片,模拟各类复杂嵌入式系统的被测环境,1:1还原真实硬件芯片内部的行为逻辑,通过运行真实的目标二进制程序,实现从真实硬件到仿真硬件开发、调试、测试验证的无缝过渡。

借助SkyEye,工程师可以在世界上任何地方快速搭建与远程设备相同的硬件仿真环境,轻松实现问题复现,还可实现远程代码开发、调试和测试工作。本地已有的系统环境可被快速发送给组内其他同事,完美解决因被测环境不同导致的现场难复现问题,避免复杂配置等各类环境因素带来的时间与资源的浪费。

对飞控领域而言,因其往往涉及多方资源协作,真实硬件整机系统的搭建往往需要花费大量时间来完成,而除了上述优势外,SkyEye自带的GDB调试工具,不仅支持底层驱动、消息中间件和上层应用软件代码的调试,还支持查看硬件内存、寄存器状态等各项指标,可实现替换昂贵的飞控调试器,且仍满足从硬件、固件代码到应用软件的所有调试工作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/128159.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在腾讯、阿里、字节技术岗工作十年能挣普通公务员一辈子的钱吗?

在腾讯、阿里、字节技术岗工作十年,能挣到普通公务员一辈子的钱,但不一定能存到普通公务员一辈子的钱。 大厂程序员 VS 普通公务员谁更香,一直是争论不断的话题,让我们站在程序员的角度,来回答这一问题。 大厂程序员V…

打造智慧社区数字孪生应用新范式

近日,民政部、中央政法委、中央网信办、国家发展改革委等部门印发了《关于深入推进智慧社区建设的意见》,明确指出依托智慧社区综合信息平台,创新政务服务、公共服务提供方式,推动就业、健康、卫生、等服务“指尖办”、“网上办”…

家装市场“攻守道”

不同于很多属于弹性需求的消费行业,“住”属于刚性需求,因此家装就成为了人们日常生活中的重要交易场景。据《疫情下的家居消费心态调查》问卷显示,60%以上的居民不会因为疫情而放弃装修。大量的装修需求激发了家装的活力,家装市场…

Node.js 模块化(二) 开发包/模块加载机制

1. 开发属于自己的包 1. 需要实现的功能 2. 初始化包的基本结构 3. 初始化 package.json 属性: name:包的名称(不能重复,在官网检索一下,避免重复) version:版本号 main:入口文件&a…

如何下载并生成等高线

如何下载并生成等高线 发布时间:2018-01-17 版权: 同步视频教程:下载高程等高线使用视频教程-Bigemap GIS Office 专题地图制作视频教程:地图数据应用(制作地图效果的基本过程)-Bigemap GIS Office 视频…

【vue】关于路由的使用

(1)路由步骤 根据官方的文档,我们的路由大概需要以下的几种构成 (1)首先引入组件 (2)创建routes布局 (3)创建router对象 (4)抛出 &#xff0…

最长公共子序列

最长公共子序列一、题目二、思路1、状态转移方程(1)状态表示(2)状态转移2、循环设计三、代码一、题目 二、思路 这道题是一个很经典的DP问题,那么我们来看一下如何分析。 DP问题我们需要考虑两个问题:第一…

【Javassist】快速入门系列11 当检测到显示类型转换时用代码块替换

系列文章目录 01 在方法体的开头或结尾插入代码 02 使用Javassist实现方法执行时间统计 03 使用Javassist实现方法异常处理 04 使用Javassist更改整个方法体 05 当有指定方法调用时替换方法调用的内容 06 当有构造方法调用时替换方法调用的内容 07 当检测到字段被访问时使用语…

深度剖析钓鱼网站域名识别工具dnstwist

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,科大讯飞比赛第三名,CCF比赛第四名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

漫途设备远程运维平台在制造业中的应用!

我国正处于从制造大国向制造强国迈进的关键时期,制造业的数字化、网络化、智能化以及绿色制造体系(双碳为代表)的打造事关制造业全局,是制造业高质量、可持续发展的关键与重要着力点。而设备智能运维是智能制造行业的短板。 存在以…

回归童年的美好 守住童年的回忆 那些年你玩过的游戏都有呢

时过迁境,曾经与我们一同玩耍的发小、同学,也因为工作、家庭原因早已各奔东西不在自己的身边。 还依稀记得孩童时期和小伙伴们一同蹲在大头电视前,快乐的玩着红白机的魂斗罗、超级玛丽还有炸弹人。稍微长大后,家里有了大头显示器…

ArcGIS基础实验操作100例--实验19按值修改栅格值

本实验专栏来自于汤国安教授《地理信息系统基础实验操作100例》一书 实验平台:ArcGIS 10.6 实验数据:请访问实验1(传送门) 基础编辑篇--实验19 按值修改栅格值 目录 一、实验背景 二、实验数据 三、实验步骤 (1&am…

Winsock套接字开发网络聊天室实例(C/S)模式

聊天室的基本要求 聊天器采用客户端/服务器(C/S)模式; 1,客户端利用UDP与服务器连接,客户端与客户端之间通过UDP互相通讯; 2,服务器端具有服务器端口设置,维护客户端个人信息&#…

SQL INNER JOIN:内连接

INNER JOIN 是 SQL 中最重要、最常用的表连接形式,只有当连接的两个或者多个表中都存在满足条件的记录时,才返回行。 SQL INNER JOIN 子句将 table1 和 table2 中的每一条记录进行比较,以找到满足条件的所有记录,然后将每一对满足…

YGG 公会发展计划(GAP)第二季总结

Yield Guild Games(YGG)正在结束其公会发展计划(GAP)的第二季,这是一个成就驱动的社区代币分配协议,奖励 YGG 成员通过优质贡献为公会提供价值。 第二季的 GAP 包括 117 个任务式的「成就」,为了…

有向图的概念和java代码实现

有向图定义 有向图是一副具有方向性的图,是由一组顶点和一组有方向的边组成的,每条方向的边都连着一对有序的顶点。 出度: 由某个顶点指出的边的个数称为该顶点的出度。 入度: 指向某个顶点的边的个数称为该顶点的入度。 有向路径…

重学redux之Redux Toolkit(四)

更新第四篇了,这篇是最终篇,没有基础的最好看看前几篇,篇幅有限,更多的是一个指导,如果有不清楚的地方,可评论区留言(最好自己找度娘问问),引用官方说话,先来了解一下 redux toolkit 是什么东西 Redux Toolkit 是什么? Redux Toolkit 是 Redux 官方强烈推荐,开箱…

用JavaScript实现网页雪花飘落特效

不知道大家有没有看到过别人的网页有雪花飘落的特效,我当时看到真的觉得好好看,于是乎就去借鉴别人做的特效代码,最终将这个特效成功放到自己做的网页上啦~代码放到下面啦,可以自己设置颜色,雪花形状的大小&#xff0c…

新政策|“信息科技”独立设置为新科目

近日,教育部印发义务教育课程方案和语文等16个课程标准(2022年版)。今天,教育部召开新闻发布会,介绍《义务教育课程方案和课程标准(2022年版)》。 教育部教材局局长田慧生表示,现行义务教育课程方案和课程…

Eth 02 -MAC如何访问PHY

文章目录 1 MII接口概述2 MDIO clause 223 MDIO Clause 45传送门 ==>> AutoSAR入门和实战系列总目录 1 MII接口概述 我们在【Eth 01 - Eth以太网控制器驱动概述和API讲解】已经提到了两个接口:MAC通过MII接口访问PHY芯片。 void Eth_WriteMii(uint8 CtrlIdx, uint8 T…