- 博客(270)
- 资源 (36)
- 收藏
- 关注
原创 grpc 交叉编译之第三方package模式
目的: 不想用grpc自带的第三方版本,或已有其他已编译好的库(openssl) 已交叉编译好openssl, 在大型工程涉及多个团队时很有效,可以对齐openssl版本,避免问题,由于在工程遇到此问题,记录在此-DgRPC_SSL_PROVIDER=package -DOPENSSL_INCLUDE_DIR= #openssl 头文件所在位置 -DOPENSSL_CRYPTO_LIBRARY= # libcrypto.so所在位置+libcrypto.so-DOPENSSL_SSL_
2022-04-26 16:16:50
1491
原创 gperftools之cpu、memory消耗分析
1. 下载gpertoolshttps://github.com/gperftools/gperftools.git2. 编译./autogen.sh && ./configure && make -j32(如果交叉编译,自行添加参数,–host=arm-xxx, prefix=…)3. cpu 分析无需重新编译二进制环境变量设置CPUPROFILE=/path/xxx.prof #设置生成分析文件的位置LD_PRELOAD=/path/libp
2022-02-14 14:17:08
1585
原创 容器内生成coredump文件
ulimit -c unlimited 设置成功后,没有生成coredump文件????cat /proc/sys/kernel/core_pattern|/usr/share/apport/apport %p %s %c %P#把core相关信息通过管道传给apport,然而容器内没有这个服务,所以需要做一下修改,改为一个指定的地方,例如echo '/tmp/core.%t.%e.%p' >/proc/sys/kernel/core_pattern (t=time e=executable
2022-02-08 16:05:15
1050
转载 ARM Neon Intrinsics各函数介绍
#ifndef __ARM_NEON__ #error You must enable NEON instructions (e.g. -mfloat-abi=softfp -mfpu=neon) to use arm_neon.h #endif /*(1)、正常指令:生成大小相同且类型通常与操作数向量相同的结果向量; (2)、长指令:对双字向量操作数执行运算,生成四字向量的结果。所生成的元素一般是操作数元素宽度的两倍, 并属于同一类型; (3)、宽指令:一个双字向量操作数和一个四.
2021-11-01 19:31:56
1822
原创 linux intel 关闭睿频
intel 关闭睿频echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbointel_pstate 只有两种策略performance powersavepowersave 也可以在最低与最高之间跳动,不清楚其功能$ ls /sys/devices/system/cpu/intel_pstatemax_perf_pct min_perf_pct no_turbo num_pstates status turbo_pc
2021-06-03 15:55:56
3405
原创 ubuntu升级内核到指定版本
安装头文件、内核、内核模块例如:安装4.15.0-115版本内核apt updateapt install linux-headers-4.15.0-115-generic \linux-image-4.15.0-115-generic \linux-modules-4.15.0-115-generic \linux-modules-extra-4.15.0-115-generic查看当前已安装的内核dpkg --get-selections | grep linux-imagelin
2021-04-13 10:55:35
3251
转载 二叉查找树和二叉堆
A. 二叉查找树(Binary Search Tree),又称为有序二叉树,排序二叉树,满足以下性质:1)没有键值相等的节点。2)若左子树不为空,左子树上节点值均小于根节点的值。3)若右子树不为空,右子树上节点值均大于根节点的值。 二叉查找树中对于目标节点的查找过程类似与有序数组的二分查找,并且查找次数不会超过树的深度。设节点数目为n,树的深度为h,假设树的每层都被塞满(第L层有2^L个节点,层数从1开始),则根据等比数列公式可得h=log(n+1)。即最好的情况下,二叉查找树的查找效率为
2021-02-24 10:51:38
1966
原创 c++ placement new
placement new 是重载operator new的全局版本,不能被重载原型如下:void* operator new(size_t, void* p) throw() {return p;}在已经分配的内存中初始化一个对象,void* 指向一个已经分配好内存的首地址例如:int *p = new int;new(p) int(999);cout<<*p<<endl;...
2021-01-29 19:45:49
209
原创 eval命令
eval 扫描参数或命令进行替换,然后再执行,前后进行两次扫描例一test=9999show='the value: $test'echo $showeval echo $show## 执行结果## the value: $test## the value: 9999实用例子config.yaml.templateip=${HOST_IP}addr=${ADDR}config.sh#!/bin/bashHOST_IP="192.168.1.1"ADDR="123456
2021-01-26 16:16:09
344
原创 c/c++强符号与弱符号
定义编译器默认函数和初始化了的全局变量为强符号,未初始化的全局变量为弱符号,也可以通过GCC "__attribute__((weak))"来定义任何一个强符号变为弱符号。GCC 中,我们也可以通过使用"__attribute__((weakref))"这个扩展关键字来声明一个对外部函数的引用为弱引用。(__attribute__((weak)))void foo();链接器链接规则不允许强符号被多次定义,如果有多个强符号定义,则链接器报符号重定义如果一个符号在某个目标文件中是强符号,在其他文
2021-01-07 15:17:30
1151
原创 kernel OOM配置
使能OOM killerecho 1 > /proc/sys/vm/enable_oom_killer配置内存限制 ## 创建控制组 mkdir /sys/fs/cgroup/memory/test ##使能sv oom killer echo 0 > /sys/fs/cgroup/memory/test/memory.oom_control ## 限制1G echo 1G > /sys/fs/cgroup/memory/test/memory.limit_in_by
2020-12-23 16:25:29
565
原创 cmake 构建含有库版本的库
1. 源代码show.hpp#ifndef __SHOW_HPP__#define __SHOW_HPP__void show();#endifshow.cpp#include <iostream>#include "show.hpp"void show(){ std::cout<<"Hello World."<<std::endl;}2. cmakecmake_minimum_required(VERSION 2.8)project
2020-09-25 18:06:52
511
1
原创 快速幂方法
快速幂以下以求a的b次方来介绍:1. 把b转换成二进制数。2. 该二进制数第i位的权为2^(i-1)3. 例如 b=11 二进制为1011 通过二进制求十进制过程 2^0+2^1+2^3 = 11 a^11 = a^(2^0+2^1+2^3) 可以转化为 a^11 = a^(2^0) * a^(2^1) * a^(2^3)因此可以通过位来进制快速幂计算(先不考虑y<0的情况,如果考虑也很简单,如果为负取绝对值,返回1.0/res)double
2020-09-22 14:57:56
163
原创 rc0 - rc6 各启动级别的启动脚本
rc0 - rc6 各启动级别的启动脚本rc0: 停机(不能使用)rc1: 单用户模式rc2: 多用户模式,但是没有NFSrc3: 完全多用户模式rc4: 没有使用,系统预留rc5: 图形界面模式rc6: 重启模式(不能使用)init 系统启动超级进程rcS 单用户模式启动脚本init.d 启动脚本存放目录...
2020-09-04 17:30:31
473
翻译 构建arm64 的Ubuntu rootfs
构建ubuntu18.04 rootfs下载ubuntu arm64 base imagewget http://cdimage.ubuntu.com/ubuntu-base/releases/18.04/release/ubuntu-base-18.04-base-arm64.tar.gz构建ubuntu-rootfsmkdir ubuntu-rootfstar -xvf ubuntu-base-16.04.2-base-arm64.tar.gz -C ubuntu-rootfs安装 qe
2020-09-04 17:23:43
1939
原创 Ubuntu 18 LTS NetworkManager网络配置
修改/etc/network/interfaces 不生效问题Ubuntu 18LTS ifupdown has been replaced by netplan(5) on this systemNetworkManager已经废弃interfaces配置,用netplan 配置取代netplan 安装与配置apt install netplan.io详情请看man netplanDistribution installers, cloud instantiation, image b
2020-09-04 16:45:06
4025
原创 CUDA_VISIBLE_DEVICES 环境变量说明
CUDA_VISIBLE_DEVICES 环境变量说明If you are writing GPU enabled code, you would typically use a device query to select the desired GPUs. However, a quick and easy solution for testing is to use the environment variable CUDA_VISIBLE_DEVICES to restrict the devic
2020-08-25 11:43:27
3688
原创 FFmpeg intel GPU解码加速
FFmpeg intel GPU解码加速1. intel Media SDK提供接口调用GPU硬件架构图如下:各组件关系如上图所示。 i915 driver为内核自带。2. 环境搭建根据上图关系依次创建环境:-组件-- Repo--简述-libdrmapt install libdrm-dev (/dev/dri/render*)访问drm设备通用接口GMMLibhttps://github.com/intel/gmmlib图形内存管理库VAAPI
2020-08-13 14:47:52
4773
原创 unique_ptr, shared_prt,weak_ptr,make_shared 简单描述及使用
unique_ptr, shared_prt,weak_ptr,make_shared 简单描述及对比#include <iostream>#include <string>#include <vector>#include <memory>class test{ public: test(){std::cout<<"test constructor..."<<std::endl;}
2020-08-06 19:46:54
270
原创 ffmpeg nvidia nv-codec编译及运用
主流程,参考官网https://developer.nvidia.com/ffmpeg
2020-08-04 20:00:14
6702
2
原创 c++左值与右值
左值 与 右值/*左右值左值: 在内存中有确定位置的对象右值: 相反, 在内存中没有确定位置*/int a = 10;int& a_ref = a; //ok, 引用必须是左值int&& a_ref2 = a; //error, a是左值,只能对右值引用int && a_ref3 = move(a); //ok, 转换a变为右值,然后对其引用int &a_ref = int(10); //error, 为右值引用int &&
2020-07-29 17:21:37
128
原创 c++11新特性std::mem_fn
std::mem_fnmem_fn: 把成员函数转为函数对象,调用mem_fn时,可以使用对象引用,指针,智能指针#include <iostream>#include <functional>#include <memory>class test{ public: test()=default; test(int value):value(value){} virtual ~test()=default
2020-07-29 11:10:38
594
原创 shared_ptr 智能指针
shared_ptr 用法shared_ptr部分目的: 为了解决new动态分配的内存空间释放问题, shared_ptr可以把对象全权托管,shared_ptr对象在消亡时会自动执行delete,#include <iostream>#include <memory>class test{ public: test(){std::cout<<"test construct...."<<std::endl;}
2020-07-29 10:48:57
126
原创 ubuntu opencv安装
一. 安装基本编译相关工具sudo apt install cmake build-essential二. 安装图像及编解码缩放相关的ffmpeg库sudo apt install libtiff4-dev libswscale-dev libavcodec-dev libavformat-dev libjpeg-dev 三. 安装图像显示相关的库sudo apt install libgtk2.0-dev四. 下载opencv源码git clone https://github.co
2020-07-16 14:49:29
153
原创 linux jq 命令之替换内容
echo '{"hello":"world", "one":"two"}' | jq 'to_entries | map(if .key == "hello" then . + {"value":"WORLD"} elif .key == "one" then . + {"value":"three"} else . end ) | from_en...
2020-07-03 15:19:27
2087
原创 Glog简单使用
Glog是google一个开源的C++日志库1. 下载安装源码下载地址:https://github.com/google/glog.git./autogen.sh //生成configure./configure --prefix=DIR //指定安装目录,如果想交叉编译添加 --host= make && make install2. 实例...
2020-03-12 16:39:40
654
原创 Docker 多架构支持, 自已制做多架构支持
registry 地址: docker.io修改为自已的地址一. 创建各架构镜像arm: Dockerfile (base image: ubuntu:18.04)FROM ubuntu@sha256:60a99a670b980963e4a9d882f631cba5d26ba5d14ccba2aa82a4e1f4d084fb1f第一步,创建arm镜像,并上传dock...
2020-03-05 15:29:51
851
1
原创 C++ 静态变量初始化 “undefined reference”
静态变量 undefined reference1. c++头文件, 类中定义static 变量,不要在头文件内类外做初始化(头文件被多次包含,会引起多重定义),也不能在构构函数内初始化。(1.对于类中的静态成员是单独存储的,而不是对象的组成部分, 初始化语名指出了类型,并使用了作用域运算符,但并没有使用关键字static;2. 初始化应该放在方法文件中,而不是类声明文件中进行,因类...
2019-12-24 12:00:30
2978
原创 C++ 函数 显示模板 模板 优先级
1.void apple(int a, int b);2.template <class T>void apple(T &a, T&b);3.struct job { int age;};template <>void apple<job>(job &a, job &b);匹配优先级:...
2019-12-18 20:06:45
326
原创 chroot,pivot_root和switch_root 区别
一. chrootchroot 机制目的 为了进一步提高系统的安全性,linux引入了chroot机制,chroot是一个系统调用,可以更改一个进程所能看到的根目录。 类似创建一个沙盒,进程运行在沙盒之内,进程运行正常与否,并不会影响这个台器的其他进程。chroot(change to root) 改变根目录,也就是改变一个程序运行时参考的根目录位置。例如...
2019-10-15 13:59:28
10089
原创 resize2fs: Operation not permitted While trying to add group #25
嵌入式平台,在pc上制作好ext4 rootfs.img,然后烧写到嵌入式设备emmc上1.制作ext4 img使用命令make_ext4fs -l 2200M -L ROOTFS rootfs.img rootfs/制做一个2.2G的rootfs.img, Lable为:ROOTFS2. 命令 resize2fs /dev/mmcblk0p3,目的是为了扩容,出现以下问题...
2019-09-12 17:08:13
2259
原创 x509: certificate signed by unknown authority (k3s)
echo -n | openssl s_client -showcerts -connect registry-1.docker.io:443 2>/dev/null | \sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > \/usr/local/share/ca-certificates/docker.crt使用以...
2019-08-23 09:56:24
3650
原创 i2c-tools
一.介绍 i2c-tools是一款,可以将系统中所有i2c总线和总线上挂的设备列举出来,并且可以将i2c设备中的数据dump出来.二.包含的命令i2cdetect : 列举系统中所有的i2c adapter. i2cdump :dump i2c设备中所有的数据. i2cget : 获取指定i2c设备中指定地址的数据. i2cset :设置指定i2c设备中指...
2019-08-13 10:43:50
587
原创 内核等待队列相关实例(二)
一.通常有两种方式,其本质上是一样的,第二种更灵活一点,容易出错;第一种不易出错.第一种:static wait_queue_head_t wait_queue;static int is_empty = 0;void init(){ init_waitqueue_head(&wait_queue);}int read(){ if(is_e...
2019-08-09 15:22:20
256
dual flash driver 支持两个flash变单个设备访问
2018-06-05
TS协议分析与实际应用文档
2015-01-28
Hi3559CV100 ultra-HD Mobile Camera SoC 用户手册.pdf
2020-06-24
Hi3519AV100 4K Smart IP Camera SoC 用户指南.pdf
2020-06-24
eltt2 TPM驱动调试验证工具
2018-08-07
infineon spi TPM driver(RPi_3_SPI_TPM_Driver_And_Automatic_Driver_Load.patch)
2018-07-09
dbus 使用介绍,包含一个例子,包括配置文件介绍及自启动介绍
2018-07-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人