SkyEye助力飞控软件Debug

article/2025/9/26 9:37:03

​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://chatgpt.dhexx.cn/article/wGSvMuyl.shtml

相关文章

手把手教你搭建国产嵌入式模拟器SkyEye开发环境

SkyEye介绍 SkyEye是一个开源软件(OpenSource Software)项目,中文名字是"天目"。SkyEye的目标是在通用的Linux和Windows平台上实现一个纯软件集成开发环境,模拟常见的嵌入式计算机系统(这里假定"仿真"和"…

【基于CentOS 7 的NFS服务】

目录 一、概述 二、应用场景 三、安装 四、启动服务 五、目录结构 1.nfs的主配置文件 2.存储配置文件 六、命令解析 1.共享存储管理命令 2.共享目录查看 七、配置 八、客户端访问 1.查看nfs服务器的共享目录 2.挂载 九、实际案例 一、概述 network filesystemt…

Linux——nfs服务配置

启动nfs,一定要先启动rpc Systemctl start rpcbind Systemctl start nfs 停止nfs Systemctl stop nfs 开机自启nfs Systemctl enable rpcbind Systemctl enable nfs 配置网络环境 服务端ens36,配置为192.168.100.254 客户端ens33,配…

安装NFS服务

NFS服务 mhcwz 已于 2022-04-29 19:43:54 修改 68 收藏 1 分类专栏: Linux 文章标签: 运维 linux 服务器 于 2022-03-17 19:33:17 首次发布 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文…

Linux-NFS服务器搭建

一、理论知识 1.NFS概念 NFS是Network File System(网络文件系统)。 主要功能是通过网络让不同的服务器之间可以共享文件或者 目录。 NFS客户端一般是应用服务器(比如web,负载均衡等),可以通…

Linux NFS服务

NFS服务 一、NFS简介 NFS(Network File System)即网络文件系统,它允许网络中的不同计算机相互之间共享资源。NFS客户端可以透明地读写远程NFS服务器上的文件,就像访问本地文件一样。 二、NFS服务概述 NFS是1980年由SUN发展出来在…

NFS服务

文章目录 一,NFS共享存储服务1.NFS网络文件系统2.NAS存储3.端口号4.特点 二,NFS配置实验步骤总结 三,ssh服务1.SSH远程登陆方式登陆方法一登录方法二 四,SSHD 服务支持两种验证方式1.密码验证2.密钥对验证3.公钥和私钥的关系4.构建…

NFS服务器原理、搭建、配置

目录 NFS服务简介 什么是NFS? NFS挂载原理: RPC与NFS通讯原理: NFS客户端和NFS服务器通讯过程: Linux下NFS服务器部署 NFS服务所需软件及主要配置文件: 服务端安装NFS服务步骤: NFS客户端挂载配置…

CentOS——nfs服务

一.在服务器端的操作(IP地址:192.168.2.200) 1.下载nfs服务 yum -y install rpcbind nfs-utils 2.关闭防火墙 systemctl stop firewalldc setenforce 0 ; 3. 编辑配置文件 vim /etc/exports 添加内容为: /data/…

NFS服务的搭建

NFS 目的是让不同计算机不同操作系统之间可以彼此共享文件。 采用服务器/客户端工作模式 在NFS服务器上将目录设置为输出目录(共享目录)后,客户端就可以将这个目录挂载到自己系统中的某个目录下。 什么是RPC守护进程 使用NFS服务&#xf…

NFS服务配置

1. 服务器端 (1)查看ip地址为192.168.1.103。 (2)先查找一下系统是否安装了nfs的软件包,使用rpm-qa来查看。 rpm –qa |grep nfs (3)编辑/etc/exports文件来设置服务器端的共享目录&#xff0…

NFS服务介绍

1. NFS服务介绍 1.1什么是NFS服务 NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问…

【ubuntu】nfs服务搭建

一、开篇 在嵌入式linux开发过程中,由于目标平台的资源限制,开发环境一般都不会放到目标板卡上(需要放在开发宿主机上),如果需要宿主机与目标板卡之间进行文件传输,该怎么办呢。这时候nfs就派生用场了。nf…

linux上搭建nfs服务

NFS(Network File System):它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。 NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看&…

Linux的nfs服务

目录 一、NFS 1、介绍NFS 2、NFS服务的实现 3、NFS服务的特点 4、NFS服务的作用 二、NFS案例 1、安装RPC依赖和nfs服务(rpcbind、nfs-utils) 2、修改配置文件( /etc/exports ) 3、开启服务并查看端口 4、挂载查看共享 …

NFS服务详解

文章目录 一.NFS概述二.NFS工作原理2.1NFS工作流程2.2挂载原理 三.NFS服务部署3.1常用命令3.2服务器端配置3.3客户端配置3.4服务测试 四.总结 一.NFS概述 1.概述 NFS是一种基于TCP/IP 传输的网络文件系统协议。通过使用NFS协议,客户机可以像访问本地目录一样访问远…

格兰因果模型可以分析哪些东西_论文实证经验分享|VAR模型实操步骤(上)

VAR模型操作步骤指南 简单来说,VAR模型就是用模型刻画向量间的数量关系。它的适用前提可概括为以下两点:①能进行回归。②向量之间存在一定数量关系(统计意义上的因果关系-格兰杰因果检验)。而满足以上两点的条件则是数据平稳,否则会发生伪回归,且无法进行格兰杰因果检验。…

用神经网络修正系统误差笔记

用神经网络综合修正传感器静态误差的连接方法如下图所示: 即误差修正模型的输出z与被测非电量x成线性关系,且与各环境参数无关。 只要使误差修正模型, 即可实现传感器静态误差的综合修正。 通常传感器模型 f(x;t) 及其反函数是复杂的&…

多元线性回归与高斯误差模型的同源关系

机器学习的起点——线性回归 一、线性回归的地位 首先,线性回归中最基础的概念是一元线性回归模型。 在回归模型中,线性回归模型是最简单的。其具备两个优势:第一是线性回归模型适合于大数据。训练时消耗的计算资源较少。第二是模型本身具备…

用R语言做单方程的误差修正模型(ECM)

># 单方程误差修正模型案例分析 > ########################### > # 数据的生成 > set.seed(12345) > u<-rnorm(500) > x<-cumsum(u)#求累积和&#xff0c;返回一个变量&#xff0c;它的第i个元素是从U&#xff08;1&#xff09;到U&#xff08;i&…