自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 资源 (1)
  • 收藏
  • 关注

原创 linux内存之系统命令

通过vmalloc分配的内存都统计在/proc/meminfo的vmallocused值中,但是要注意,这个值不止包括了分配的物理内存,还统计了VM_IOREMAP、VM_MAP等操作的值,辟如VM_IOREMAP是把IO地址映射到内核空间,并未消耗物理内存,所以要把他排除在外,从物理内存的分配角度,只关心VM_ALLOC操作,这可以从/proc/vmallocinfo中的vmalloc记录看到。可以看出,min_free_kbytes随着内存的增大不是线性增长,没有必要也线性的预留出过多的内。

2024-06-12 13:20:30 779

原创 一、linux内存泛解

本文对内存有一个基本的了解

2024-05-10 13:40:54 881

原创 Android中常用的几种容器视图的使用

线性布局、相对布局、帧布局

2022-08-30 22:21:28 920 1

原创 Android开发-视图view讲解

view视图、容器、子view、view共有属性、代码创建view视图

2022-08-30 21:17:12 1396

原创 Android开发之Gradle文件

Android Studio build gradle

2022-08-05 15:48:29 615

原创 Android开发之工程目录介绍

Android开发 工程目录介绍

2022-07-23 12:11:10 1106

原创 c++线程之 线程返回值、future、async

线程返回值、future、异步线async

2022-07-16 09:56:09 412 1

原创 c++线程之 条件变量、wait、notify

条件变量wait、notify

2022-07-14 17:12:56 1014

原创 c++线程之创建单例类、单例设计模式

c++ 线程、单例

2022-07-10 15:12:04 345

原创 C++并发线程之 互斥量、lock_guard类模板、死锁

C++并发线程之 互斥量、lock_guard类模板、死锁

2022-07-01 15:05:38 532

原创 C++线程之 创建多个线程

c++并发线程、创建多个线程访问共享内存

2022-07-01 11:31:34 2185

原创 c++并发线程之创建线程、 join、detach、joinable、线程临时变量问题、ref使用

c++并发线程之创建线程、 join、detach、joinable、线程临时变量问题、ref使用

2022-06-30 17:20:02 204

原创 8、vector容器

c++ vector容器 增删 查 改

2022-06-29 10:59:42 61

原创 7、string容器

c++ string容器的 =、assign、append

2022-06-28 17:39:56 101

原创 6、STL、迭代器、容器

STL、vector

2022-06-28 14:18:27 275

原创 CMOS曝光时间、积分时间

曝光时间 曝光行

2022-06-20 19:48:30 10336 10

原创 Camra sensor BringUp

camera bringup

2022-06-08 09:54:36 996

原创 Python的异常处理机制

Python提供了异常处理机制

2022-06-01 16:12:08 178

原创 Python 常见类型BUG

Python 常见错误类型错误案例正确案例未定义赋值的变量 进行比较错误案例正确案例== 是比较 =是赋值错误案例正确案例索引越界append()方法使用错误案例正确案例

2022-06-01 15:03:54 157

原创 八、V4L2 ioctl 控制接口 调用流程

V4L2 ioctl 控制接口 调用流程当 使用v4l2打开配置好video节点后,还可能需要对设备进行参数 sensor 或者ISP的参数配置,例如自动对焦、自动曝光、亮度、对比度、锐度、色度、白平衡、测试图案等等V4L2_CID_BRIGHTNESS我们举例 设置亮度static void set_sensor_brightness(int videofd, int brightness){ struct v4l2_control ctrl; ctrl.id = V4L2_C

2022-05-11 17:10:45 1963 2

原创 七、V4L2 ioctl 标准接口 调用流程

V4L2 ioctl调用流程当video节点注册完成之后,用户层就会通过 该节点的字符设备接口接入到内核中去在 三、video设备初始化中就讲解了video的初始化,vdev->cdev->ops = &v4l2_fops; 代表着用户层的ioctl会调用到v4l2_fops的unlocked_ioctl = v4l2_ioctl;结构体 file_operationsstatic const struct file_operations v4l2_fops = {

2022-05-11 16:46:32 2106

原创 二、安装Android studio 之 下载安装 Android Studio

一、下载Android Studio进入官网https://developer.android.com/studio点击Downloade下载即可二、安装Android Studio双击下载好的文件安装完后会提示不能访问Android SDK,先不管,直接Cancel选择自定义安装Android SDK 安装路径左边列表中 带红*需要全部点accept,不然 finish是灰色的,点击不了...

2022-05-11 15:36:24 744 2

原创 六、v4l2 ctrl 函数初始化---增加自定义接口v4l2_ctrl_new_custom

v4l2_ctrl_new_custom每一个ISP都有自定义的功能,例如 bypass某个算法模块、内部测试图案等等//v4l2_ctrl_new_custom( hdl_cst_ctrl, xxx_v4l2_ctrl_test_pattern , null);/*static const struct v4l2_ctrl_config xxx_v4l2_ctrl_test_pattern = { .ops = &isp_v4l2_ctrl_ops_custom, .id

2022-05-11 15:30:59 1234 2

原创 一、安装Android Studio 之 下载 & 安装 JDK

一、下载Android JDK进入https://www.oracle.com/index.html 官网点击Products点击Java点击 DownLoad Java点击 Java archive选择一个你需要的JDK版本选择你电脑系统的安装版本如果你没有oracle账号,需要注册一个账号才能下载二、安装JDK下载完的JDK如下图,双击开始安装自定义一个安装目录后面会提示 jre的安装向导直接退出即可,jdk中包含了jre安装成功...

2022-05-09 14:47:00 5155

原创 四、V4L2 control结构框架图

首先介绍下几个核心的结构体struct v4l2_ctrl:control的结构体抽象,一个control就用一个实例化的v4l2_ctrl变量来表示struct v4l2_ctrl_ref:一个实例化的v4l2_ctrl的引用,可以看到该结构体里面包含一个struct v4l2_ctrl*类型的指针变量,该指针成员指向的就是与之一一对应的v4l2_ctrl实例化对象struct v4l2_ctrl_handler:control的集合,就比如一个设备他有很多个control,这些这些众多的contr

2022-05-06 14:41:31 1055

原创 五、v4l2 ctrl 函数初始化---增加标准接口v4l2_ctrl_new_std

xxx_v4l2_ctrl结构体定义struct xxx_v4l2_ctrl { struct v4l2_device *v4l2_dev; struct video_device *video_dev; uint32_t ctx_id; struct v4l2_ctrl_handler ctrl_hdl_std_ctrl; struct v4l2_ctrl_handler ctrl_hdl_cst_ctrl;};v4l2_ctrl_handler结构体定义struct v4l2_ctr

2022-05-05 19:54:41 3718

原创 三、video设备初始化

video_device结构体struct video_device{#if defined (CONFIG_MEDIA_CONTROLLER) struct media_entity entity; struct media_intf_devnode *intf_devnode; struct media_pipeline pipe;#endif const struct v4l2_file_operations *fops; u32 device_caps;

2022-05-05 18:56:53 1578

原创 二、V4L2设备注册

v4l2_device 结构体struct v4l2_device { struct device *dev; struct media_device *mdev; struct list_head subdevs; spinlock_t lock; char name[V4L2_DEVICE_NAME_SIZE]; void (*notify)(struct v4l2_subdev *sd,

2022-05-05 16:50:34 987

原创 一、V4L2应用层调用流程

1、打开设备相机设备基本上都是videox节点,以/dev/video0节点为例 int fd = open("/dev/video0",O_RDWR);2. 获取摄像支持的格式 struct v4l2_fmtdesc v4l2fmt; v4l2fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; int i = 0; while(1) { v4l2fmt.index = i++; ioctl(fd, VIDIOC_ENUM_FMT, &v4l2f

2022-04-28 17:21:48 1645

原创 三、CameraService总流程

1、Camera provider启动camara provider 服务启动,等待上层调用它camara provider在启动的时候,就已经调用了自己的initialize()函数2、camera service 启动camera service 启动,最后会调用到 CameraProviderManager::initialize–>providerInfo→initialize();frameworks/av/services/camera/libcameraservice/comm

2022-01-04 20:07:24 3062

原创 二、CameraProvider启动流程

在第一节中讲解完了 camera service的启动后,再讲解provier的启动流程1、启动脚本hardware/interfaces/camera/provider/2.4/default/android.hardware.camera.provider@2.4-service.rcservice vendor.camera-provider-2-4 /vendor/bin/hw/android.hardware.camera.provider@2.4-service class ha

2021-12-29 15:57:06 2042

原创 一、CameraService启动流程

1、启动脚本//framework/av/camera/cameraserver/cameraserver.rc//通过init进程启动cameraserver进程,启动路径为/system/bin/cameraserverservice cameraserver /system/bin/cameraserver class main user cameraserver group audio camera input drmrpc io

2021-12-27 20:05:20 2630

原创 CameraService之服务流程图

CameraService之服务流程图一、CameraService启动流程二、CameraProvider启动流程三、CameraService总流程

2021-12-27 19:43:00 636

原创 make编译 出错常见问题

1、defined but not used [-Werror=unused-variabl]在Makefile中添加如下命令即可ccflags-y += -Wno-unused-variable

2021-11-26 11:43:19 819

原创 Makefile独立编译ko文件

在工作的过程中,经常需要编译一些Ko模块,如果是单个的c文件编译直接在内核源码里面 obj-m=xxx.o就好如果这个ko文件需要多个c文件共同编译生成的话,最好以如下的模板来完成编译较好#首先指定好编译链工具CROSS_COMPILE=/opt/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-#指定用哪个内核去编译KDIR=/mnt/nfsroot/zhengshuai.zhu/IPCSDK/ipc-

2021-11-25 21:14:53 5711

原创 linux下添加PATH环境变量

$PATH$PATH决定了shell将到哪些目录去寻找命令或程序,PATH的值是一系列目录,当您运行一个程序时,Linux在这些目录下进行搜寻编译链接查看PATJ环境变量1、命令行下直接输入export会看到所有的环境变量2、echo $PATH 指令可以单独看到环境变量信息添加环境变量PATH1、一次性添加环境变量,关闭终端就会失效export PATH=路径: $PATH查看命令: echo $PATH2、永久添加环境变量,关机后也生效在/etc/profile中来修改PATHv

2021-11-25 20:24:00 589

原创 RGB转NV21/YUYV转NV21/UYVY转NV21

RGB_2_NV21static void rgb8888_2_nv21(unsigned char *s, unsigned char *iYuv, int width, int height) { int ui = width * height; int i = 0; int j, k; unsigned char sR,sG,sB; for (j = 0; j < height; j++) { for (k = 0; k < width;

2021-10-29 18:57:09 1144

原创 raw/rgb/yuv/nv21图像格式总结

1、RAWraw格式sensor的输出格式,是sensor将光信号转换为电信号时的电平高低的原始记录,没有经过处理的原始数据raw数据在输出的时候使用一定的顺序的,主要有四种: GRBG, RGGB, BGGR, GBRGraw数据主要有3中常见的格式: raw8, raw10, raw122、RGBrgb格式:即每一个像素由三原色R、G、B蓝色组成RGB565 每个像素用16位表示,RGB分量分别使用5位、6位、5位RGB555 每个像素用16位表示,RGB分量分别使用5位、5位、5位(剩

2021-10-29 18:50:43 6532

原创 5 文件操作

程序运行时产生的数据都是属于临时数据,程序一旦运行结束都会被释放通过文件可以将数据持久化c++中对文件操作需要包含头文件 fstream文件的类型分为两种:1、文本文件 - 文件以文本的ASCII码形式存储在计算机中2、二进制文件 - 文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂操作文件的三大类ofstream: 写操作ifstream: 读操作fstream: 读写操作写文件void test01(){ //1、 包含头文件 //2、 创建流对象 ofst

2021-09-23 13:24:24 181

原创 4.7多态

c++多态的使用、虚函数virtual

2021-09-22 15:07:55 210

x3_build.sh

编译androd 系统的各个模块的脚本,uboot模块、boot模块、dtb模块。节约了大量的编译是时间

2019-09-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除