英伟达Xavier调试记录_202209

news/2025/1/12 8:38:16/
  1. 串口通信。和网口通信相比,不能一次返回接口协议定义的完整包。需要逐字节解析才能凑齐一包通信协议格式包。为防错,通常采用固定标识、长度校验、校验和的方式保证能够区分开数据。
  2. 线程调度。Linux线程调度分为实时和分时调度,实时包含SCHED_FIFO(优先级[1,99],越大级别越高)、SCHED_RR、SCHED_DEADLINE(更好的实时性);分时调度SCHED_OTHERS、SCHED_IDLE。默认是SCHED_OTHERS。在以时间戳做图片名称存图调试过程,存在周期不稳定,波动大现象。采图线程通过指定CPU和线程调度方式(设置SCHDE_FIFO)和优先级(设置 80)的方式期望提高实时性能,经过长时间反复测试发现,会出现超过期望的延时和波动(如周期3s,误差能到200ms),通过打印v4l2的buff的时间戳方式,分析42分钟内数据,发现两次buff间的最大误差是-400us 和 60us。因此,确定硬件可靠,数据到内核的延时可忽略,但是图片的名称相减得到延时却存在200ms。翻看8月17日挂飞40分钟的红外相机存图数据,不存在此现象。猜测是因为给线程指定CPU和优先级的方式在xavier这种8核arm结构 (Ubuntu 18.04  内核:4.9.201)不能保证期望的实时性。最终选择不指定CPU和不设置优先级(默认SCHED_OTHERS方式)组合。
设置优先级不设置优先级
指定CPU相邻2张照片周期波动大未做测试
不指定CPU未做测试相邻2张照片周期波动小
  1. V4l2视频框架。这篇很棒v4l2接口解析和摄像头数据采集_liujun3512159的博客-CSDN博客_v4l2视频采集详解。
  2. Select多路IO复用。此函数可以设置对1个文件句柄最长等待时间,参数有3种情况,NULL(一直阻塞等待,直到有数据);tv=0(调用一次后直接返回结果);tv ! = 0(最长等待时间为设置的值,其中有数据会结束等待、超时导致结束、异常结束)。Xavier是8核Arm的CPU,CPU0-7,由于我在可见光线程当中设置了CPU6运行线程采图且select设置的tv=0,造成CPU6一直进行运算,造成死循环假象。内核日志/var/log/kern.log 中显示BUG: workqueue lockup - pool cpus=6 node=0 flags=0x0 nice=0 stuck for 67s!。stuck是困住的意思。长时间(随机的,试验发现会有1小时、2小时、4小时)运行后,内核重启,造成最后写入硬盘的照片有名称但大小0KB的异常,相片张数大约在10张,每3秒/张。猜测内核发现长时间的CPU6死循环假象,到达某种程度后自己决定重启启动。kern.log日志中计时会从0重新开始计已经证明了这点。后期修改select中tv的值,发现kern.log中无此日志出现。
  3. 其他。在长时间的运行,发现追加在数据包当中通过 localtime函数获取本地时间,有一包数据记录的时间相差8小时,后改用gettimeofday 获取到的struct timeval 中的秒数自己实现转换年月日的函数方式。

http://www.ppmy.cn/news/488853.html

相关文章

centos6安装英伟达显卡绿屏 报错

centos安装排错,建议对版本没有要求的尽量安装比较新的版本,如果硬件比系统新,会出现各种问题, 最近centos6.8安装英伟达驱动,被nouveau折磨了好久,无法屏蔽掉,导致绿屏卡死,安装网上…

这个屏幕录制太好用了!

哈喽,大家好!今天给各位小伙伴测试了一屏幕录制的小工具——ApowerREC。它是一款专业同步录制屏幕画面及声音的录屏软件。界面简洁,操作简单,支持实时编辑屏幕录像、创建计划任务、录制摄像头高清视频等功能。废话不多说&#xff…

英伟达Flex-unity插件

好像有这么个库,可以用来流体仿真 官网是这个:NVIDIA FleX | NVIDIA 开发者 问题 但是现在好像没了: NVIDIA FleX for Unity (1.0 BETA) | 物理 | Unity Asset Store 百度 Unity 8.Oct.2021 Unfortunately, NVIDIA FleX for Unity (1.0 …

英伟达Jetson Nano的初步了解

前言:跑对比实验需要不同平台,所以需要采购一个Jetson nano,但看了一下有许多版本,不太了解,故简单调研一下。 采购平台:Jetson Nano B01 Jetson Nano b01国产开发套件测评-电子发烧友网 (elecfans.com) …

NVIDA英伟达公司--(夜的第一章)

Nvidia Corporation 是一家美国跨国技术公司,为游戏、专业可视化、数据中心和汽车市场设计和制造图形处理单元 (GPU)、片上系统 (SoC) 和其他计算机硬件组件。 Nvidia 于 1993 年 4 月由黄仁勋、Chris Malachowsky 和 ​​Curtis Priem 创立。 其中黄仁勋先生是主…

录屏怎么录,试试这三个电脑录屏方法

录屏是当前最常用的功能,它可以帮助我们将喜爱的视频片段、线上会议,网络课程以及不能被下载的视频都给录制下来。电脑录屏怎么录?我们可以用电脑自带的录屏工具,或者使用第三方专业的电脑录屏软件来录制。 下面小编就给大家分享3…

C#视觉检测-模板匹配

前几天一个学员在学习C#与视觉交互时,也不知道视觉可以用来做什么 。下面我们就详细讲讲C# 和视觉交互的相关知识。 C#和Halcon的视觉交互在工业生产和智能制造领域中得到了广泛应用。其中,模板匹配是一种简单但有效的图像处理技术,可以用于检测和定位物…

【编程语言 · C语言 · 指针和数组】

指针和数组 指针对于数组特别有用。 当定义各一个数组时, 系统会在内存中为该数组分配一个存储空间, 其数组的名称就是数组在内存中的首地址.若再定义各一个指针变量,并将数组的首地址传给指针变量,则该指针就指向了这个一维数组. 例如: int *p, a[5]; pa; 这里a是数组名,…