c++ 进程死锁排查
内存泄漏是比较常见的问题,下面记录一下我在遇到内存泄漏时的排查思路以及如何降低内存泄漏的风险。 排查示例 假如下面这样一个 c++ 程序出现了死锁 demo.cpp #include <iostream> #include <mutex> #include <thread> std::mutex mutex; void func2() { ...
内存泄漏是比较常见的问题,下面记录一下我在遇到内存泄漏时的排查思路以及如何降低内存泄漏的风险。 排查示例 假如下面这样一个 c++ 程序出现了死锁 demo.cpp #include <iostream> #include <mutex> #include <thread> std::mutex mutex; void func2() { ...
nvidia 的官方文档没有汇总的清单,查阅起来真的很头大,下面是我平时开发过程中有用到的一些资料,做一个简单的汇总。 计算 GPIO 编号 https://developer.nvidia.com/docs/drive/drive-os/6.0.8.1/public/drive-os-linux-sdk/common/topics/sys_components/Calculating...
之前在实现 SOTA 升级之前使用 Python 实现了签名认证的功能,今天采用 c++ 重构之前的代码,方便集成到 SOTA 代码里。 代码 ec_sig.cpp #include <iostream> #include <fstream> #include <vector> #include <openssl/evp.h> #incl...
有时候系统软件源里最新的 cmake 版本比较低,这时候想使用高版本就只能手动安装,下面是手动编译安装的详细步骤。 下载 wget https://cmake.org/files/v3.31/cmake-3.31.6.zip unzip cmake-3.31.6.zip 编译 cd cmake-3.31.6 ./configure make -j20 卸载旧版本 sudo ap...
BalenaEtcher是一个用于将镜像文件烧录到SD卡或USB驱动器的工具,支持 Windows、Linux、MacOS 等平台,简单易用,同时它也是 Ubuntu 官方推荐的一个烧写工具。 下载地址 https://etcher.balena.io/ 官网截图
打包 ros 功能包有两种方式, 一种是采用 python3-bloom, 一种是自己实现打包脚本, 各有优劣,一般来说采用 python3-bloom 实现起来比较简单, 但是自己实现打包脚本比较灵活,下面主要以 python3-bloom 的方式来讲解整个打包流程, 后续有时间再补充自己实现自己打包脚本的方式。 准备工作 1、安装必要工具 sudo apt-get install p...
在 Jni 开发过程中,可以采用 Docker 搭建编译环境来提升开发效率,避免因环境搭建而浪费时间。 构建 docker 镜像 构建脚本 # 基础镜像 FROM ubuntu:focal # 设置环境变量,避免交互式安装时的提示 ENV DEBIAN_FRONTEND=noninteractive # 工作空间 WORKDIR /workspace RUN apt update # ...
下面是我在 国家智能网联汽车创新中心 & 清华大学实验室 第二期训练营担任 段错误 小队队长时基于 r4l 内核驱动框架完成的作业 https://github.com/cicvedu/cicv-r4l-ziqing-x
本文主要介绍如何烧录 jetson orin 的 BSP 包和 RootFS,以及一些基础环境。 硬件说明 Nvidia Jetson Orin NX 系列模块面向 AI 智能系统的计算平台,具备 100 TOPS 浮点运算的 AI 处理能力,采用小巧的外形,具备优秀的散热能力,丰富的传感器接口和出色的性能,为所有嵌入式 AI 和边缘系统带来新功能。具有计算能力强、可靠性高、集成度高、...
在前面我介绍了如何查早资料并通过 libgpiod 来操作 GPIO。本篇主要是记录一下使用 sysfs 操作 GPIO,下面就以 jetson orin nx 为例讲述一下如何使用。 怎样计算 GPIO index? 在 “在 jetson orin nx 上 使用 libgpiod 库操作 gpio“ 中,通过 libgpiod 的命令行工具 gpioinfo 是可以输出 GPIO ...