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 中的秒数自己实现转换年月日的函数方式。

英伟达Xavier调试记录_202209相关推荐

  1. 使用VMware对英伟达xavier nx2进行刷机

    刷机环境 宿主机版本:ubuntu20.04 :虚拟机ubuntu版本:18.04 :vmware版本VMware-workstation-full-17.0.0-20800274 ;sdkmange ...

  2. 英伟达驱动更新记录_GeForce Experience下载-英伟达显卡驱动更新器(NVIDIA GeForce Experience)下载v3.20.2.34 官方版-西西软件下载...

    英伟达显卡驱动更新器(NVIDIA GeForce Experience)用来检查你的计算机的英伟达geforce驱动程序,并且将其更新到最新的版本.更新显卡驱动有利于更稳定流畅的运行游戏. 让驱动程 ...

  3. 英伟达驱动更新记录_N卡驱动更新软件(NVIDIA GeForce Experience) v3.16.0.122 官方版

    NVIDIA GeForce Experience显卡驱动更新软件可以帮助你检查计算机的geforce驱动程序,并且将其更新到最新的版本.更新显卡驱动有利于更稳定流畅的运行游戏. 功能介绍 1.让驱动 ...

  4. 借力英伟达打造车规L3智能驾驶大脑,揭开德赛西威量产的“秘密”

    从Tier 1到Tier 0.5,汽车电子供应商德赛西威在自动驾驶技术浪潮的演变中完成转型. 11月20日-22日,在英伟达GPU技术大上,德赛西威研究院院长黄力发表了"智能驾驶,决胜未来- ...

  5. 英特尔AI芯片首次商用交货!推理性能3.7倍于英伟达T4,年贡献245亿涨250%

    李根 发自 旧金山  量子位 报道 | 公众号 QbitAI AI豪赌出业绩,产品启动商用--性能"吊打"友商. 今天(11月13日)在年度AI峰会上,老牌芯片霸主英特尔,交上最新 ...

  6. 英伟达联合芯片巨头ARM打造IOT设备的AI芯片

    今年的GTC 2018比较神奇,最为重磅的消息选择了在提前秘密发布,而不是在GTC Keynote现场--英伟达重磅宣布,将联合芯片巨头ARM打造IOT设备的AI芯片专用IP,这款机器学习IP集成到A ...

  7. 蔚来、威马抢装的英伟达Orin,正成为高端智能车标配

    不可否认,自动驾驶重构了我们定义汽车的方式. 正如评价一辆传统车的性能优良与否,我们不仅会看它的马力,还要看悬挂.刹车等综合要素.今天,一台具备自动驾驶的智能汽车,我们会关注它搭载的处理器的算力上限. ...

  8. 深度学习算法移动端部署设备--NVIDIA英伟达开发套件

    深度学习算法移动端部署设备--NVIDIA英伟达开发套件 简介 NVIDIA Jetson AGX Xavier CSI Camera USB or CSI 简介 以下产品分模块(module)和开发 ...

  9. WIN10环境英伟达9系显卡tensorflow安装记录及调试过程 CUDA8.0+tensorflow-gpu1.4+CuDNN6.0

    用sklearn学习完了机器学习之后,本来打算入坑深度学习.查阅了网上相关资料之后决定学习tensorflow进行入门,哪知安装就花费了一周的时间.深感老显卡安装不易,在此记录一下安装过程希望可以帮助 ...

最新文章

  1. 安全测试之xss攻击和mysql注入
  2. 学习 TList 类的实现[5]
  3. JavaWeb生成图片验证码
  4. 【图像处理】——图像内插法
  5. 期货大赛项目|九,fileinput插件的应用
  6. Qt开启本地事件循环(防止界面卡阻塞【卡死】)QEventLoop 的基本使用
  7. cartographer 前端两个方法:相干性匹配与非线性优化;以及回环检测方法:利用了分枝定界的相干性匹配
  8. java爬虫 抓取国家统计局:统计用区划代码和城乡划分代码(抓取省市区镇县办事处村委会数据)生成json
  9. 如何用sql语句创建一个表(简单基础)
  10. 96114198交易失败_通过工行网银向境外汇款提示“96111444,系统错误”,如何处理?...
  11. 基于python分析微信好友的性别分布,区域分布,词云分析,头像拼接
  12. TODA项目Part1—后端项目设置与连接数据库
  13. 数据融合技术——基本/常值增益/平方根/遗忘因子/自适应/限制k/扩大p的卡尔曼滤波
  14. Auto.js Pro安卓免ROOT引流脚本开发系列教程25网易公开课(3)-取用户性别
  15. Linux-进程控制详解(进程创建+进程终止+进程等待+进程程序替换)
  16. Java环境安装步骤
  17. 使用命令行登陆Mysql
  18. FTP主动和被动模式区别
  19. 钢铁侠2 蓝光BD高清下载
  20. ASP.NET Core中的环境Development、Staging、Production

热门文章

  1. 计算机专业英语(2013影印版)— KEY TERMS,关键术语(第1章——第6章)
  2. 魔兽私服服务端 MANGOS 数据库结构表中文解释
  3. CityEngine2018授权
  4. 东南亚各国电商生态分析及选品参考
  5. 跨境电商shopee的本土开店经验
  6. 钉钉企业微信集成免登录
  7. 世界最小量子计算机诞生,离子阱量子技术或成为最终赢家?
  8. 小米10至尊纪念版和华为P40 Pro+ 的区别 哪个好
  9. 蓝桥杯第十二讲--图论【习题】
  10. 嵌入式数据库 - SQLite