自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 写到最前面的话——研究生毕业论文致谢

研究生三年时光真的是非常快,从入学重大开始重新学习C++,开始自己做深度学习相关的项目,并且选修计算机学院、光电学院和通信学院的课程。以这样的方式进入计算机或者说信号处理行业对我自己来说无疑是非常幸运和有很大难度的。难度在于自己本科学的是能源与动力工程内燃机方向,研究生完全转向另外一个计算机相关的方向,一点本科基础没有就开始去上研究生的课程,想到最开始在数字信号处理和DSP实验课程的教室上自己那种......

2020-03-27 18:21:55 865

原创 Android Camera SDK NDK NDK_vendor介绍

本篇博客是想介绍Android camera从application layer到camera service layer整个框架中,能够使用的所有接口方式。

2023-03-08 19:18:24 1319

原创 Camera Java Native Interface(JNI)介绍

Android系统按语言来划分由两个世界组成,分别是Java世界和Native世界。JNI就是为了解决当应用程序不能完全用Java编写时所需要的工具。因为在Java诞生之前,就有很多程序和库都是由Native语言写的。为了更好的复用之前native语言写的库所以设计出这套interface,JNI相当于链接两个世界的纽带。

2023-03-01 14:53:50 649

原创 Android 13 VTS HIDL interface 解析

Android 13已经发布,VTS testcase发生很多变化,在此博客中对其每个测试项目进行流程介绍。

2022-12-11 14:41:45 1507

原创 Android Camera APP preview buffer 总体流程

Camera sensor获取自然图像(图像代表着image data buffer)通过ISP处理之后到显示器显示,这个过程代表着buffer从camera到display的传输,也是camera module中一个重要的流程,在此博客中和大家分享。

2022-07-28 20:19:13 1441

原创 snapdragon camera APP 辅摄白名单

获取camera application aux camera whitelist

2022-06-15 15:55:30 920 6

原创 Snapdragon APP Warm Start功能算法流程

为了让snapdragon camera APP启动之后,能够更快的恢复到退出之前同样场景,需要记忆退出camera 之前很多参数。为能在退出snapdragon APP时保存参数并且reopen之后可以快速获取到,设计出Warm Start机制。

2022-06-09 14:11:34 456

原创 camera部门中软件(software)、画质调优(tuning)、算法(algorithm)小组之间的关系

毕业就进入camera group做software开发,camera group一供分了三个小组:软件(software)、画质调优(tuning)、算法(algorithm),一直在思考三个小组之间是怎么一种关系,谁更重要一些?通过一个camera pro mode 调整EV的bug对这个问题有了更深入的理解,先说结论:software and algorithm都是对tuning服务的!bug的场景:camera 进入pro mode设置EV为-4,最小化camera APP然后重新进入(热启动.

2022-04-27 16:22:46 822

原创 fastboot与fastbootd介绍

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档fastboot与fastbootd介绍前言一、fastboot和fastbootd介绍?二、fastbootd与fastbootd区别参考文献前言在项目中遇到使用fastboot刷机场景,刷vendor分区出现异常,从而对fastboot和fastbootd有一个更深入的了解,进行一个总结。一、fastboot和fastbootd介绍?fastboot:fastboot是一种用于Android设备上的刷机协议,便于系统开发者快.

2022-04-08 16:52:30 18657 1

原创 Camera HIDL接口实现camera preview功能

Camera HIDL接口实现preview功能

2022-01-23 23:24:27 2812 2

原创 使用Vendor NDK实现Android Camera preview

使用Vendor NDK实现Android Camera preview,并且解析NDK和VNDK基础概念,并且说明为什么只能使用VNDK interface。给出代码分析项目流程,建立binder进程间通信

2022-01-09 17:36:21 3785

原创 类模板实现原子性达到单例统一

文章目录前言一、首先对前言中名次进行解释类模板是什么:原子性:单例模式:二、实现步骤1.引入库2.实现的类模板以上代码实现类模板的建立:类模板实例化过程前言通过类模板实现很好的代码复用性,以达到每次实现相似类的时候代码统一可读性高,避免个人实现个人的类,代码重复,并且保证在类的成员函数中实现的原子性操作代码,也就是保证代码执行的连贯性与顺序性。并且保证创建的类为单例模式。一、首先对前言中名次进行解释类模板是什么:所谓类模板,实际上是建立一个通用类,其数据成员、成员函数的返回值类型和形参..

2021-04-05 13:38:56 171

原创 vector<T>::size_type使用目的

vector::size_type使用目的size_type使用目的在C++ reference中vector中对size_type的介绍如下:an unsigned integral type that can represent any non-negative value of difference_type表示无符号最大整数类型的类型。size_type使用目的size_type 就是当前使用的vector 的 size 的类型。vector中的vector.size()函数能够获取vec

2021-02-26 17:02:14 945

原创 server端双socket 设计方式

server端双socket 设计方式项目场景:设计目的与意义:项目场景:设计一个socket server端传输数据,在server传输线程中设计两个server socket套接字。主要是想阐述为什么设计两个socket server,设计两个socket server的目的。 设计目的与意义:一个server端是现实和外部的建立socket 通信连接,一个server端实现对相应端口进行数据传输。 代码如下:ServerSocket server (m_port, m_pipe

2020-11-29 22:49:22 523

原创 (void **)&p 含义理解

很多时候会用到(void **)&p,尤其是在调用某些函数作为入口参数的时候。(void**)&p 是空类型void * 是无类型指针void ** 是无类型指针的指针&p 是p变量取地址运算符(类型) 为强转类型运算(void **)&p 变量,就是把变量p地址强制转化无类型指针的指针这样做的好处是对于任何类型调用无需考虑变量原类型。在项目中实际应用到的例子如下:* (void**)&(cam_info->usr_lib.get_nu

2020-11-21 20:34:03 1372 1

原创 清华大学软件工程课程总结

软件工程课程总结单元测试内容单元测试原则:单元测试应该有返回值来判断是否成功!单元测试框架: CppUnit(C++)

2020-11-11 20:29:34 1147

原创 Qt开发图形界面上位机软件显示通过TCP接受数据图像,执行bash命令启动Geant 4

图像界面上位机软件上位机软件功能上位机软件功能本人设计的上位机主要分为信号图像显示区、按键和参数设置区和文字信息区三大部分。 整个上位机软件主要分为三部分: 1. 启动和关闭 Geant4 物理仿真软件并且设置相关参数。 2. 显示探测器能量沉积数字信号。 3. 显示 TCP连接状态信息和 Geant 4 探测器能量沉积。但是有一点我很不理解,为了实现每次接收到TCP数据帧,都能够更新信号图像,我把new空间放到了header文件中,在cpp文件的doProcessNewConnect函数中怎么都没有

2020-06-12 14:28:58 2042

原创 高斯曲线拟合原理以及Python源码

高斯曲线拟合原理以及Python源码高斯函数曲线拟合数学基础Python求解高斯函数代码结论高斯函数曲线拟合数学基础为了更好的对实验数据更好的拟合使用高斯函数曲线进行拟合。使用高斯函数拟合比多项式拟合更加合适,多项式拟合必须把曲线分为两段,高斯函数拟合是对所有数据进行整体拟合,更能够反映出数据的总体变化情况,而多项式拟合只能对数据进行分段拟合,对数据的变化趋势进行割裂。一下给出高斯函数拟合的数值基础:证明X^T X矩阵非奇异是很有意义的需要证明在你的数据集上最小二乘法优化方式是可行的,但是我的

2020-06-11 11:24:09 14946 13

原创 Linux设备驱动程序总结

Linux设备驱动程序总结核心模块新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入核心模块Linux内核编程...

2020-05-07 14:23:54 345

原创 Linux 内核分析与应用课程总结

Linux内核使用哈希表结构,特点是hlist_node有一个pprev的二级指针,指向前面节点的next一级指针。如果改变为一级指针就不能指向第一个hlist_node *first指针,而在散列表中使用指针是为了只需要保存地址,而不需要保存数据,节约空间(和总数据是一个数量级)。...

2020-04-30 18:43:15 305

原创 Geant 4创建TCP客户端,自定义宏命令,输出探测器能量

我在Geant 4软件中主要完成三大功能需求:构建自己所需要的探测器模型;建立TCP客户端;自定义宏命令来输出指定探测器能量沉积。Geant 4中的蒙特卡罗方法是指一个粒子发射出去之后,会和周围的环境发生反应,一直到发射出去的粒子和它产生的次级粒子都完全发生反应并且泯灭之后,才会发射下面一个粒子,两个事件的发射粒子之间不会发生任何反应,并且Geant 4软件本身不做模拟计算,所有产生的数据都是...

2020-04-29 11:34:48 560 2

原创 Image Signal Processor(ISP)技术总结

CMOS传感器分类[1].CMOS图像传感器是高倾频高分辨率CMOS相机系统的核也组成部分,是整个系统的"眼睛"。CMOS图像传感器将外界可见光信号通过感光二极管转换成电荷信号,再通过内部量化等处理转换成电压信号或者电流信号,使其能被后续电路系统组件识别。CMOS无源像素图像传感器由一个反向偏置的光电二极管、MOS场效应复位管和CMOS场效应开关管组成。CMOS无源像素图像传感器像元结构具有...

2020-04-28 21:35:04 1487

原创 Python读取txt文件并且画出图像,在曲线label中添加上下标

import matplotlib.pyplot as pltimport numpy as npfrom matplotlib.pyplot import MultipleLocatordef padding_data(x): array1 = [] up_coefficient = [1.122e-08, - 5.613e-06 , 0.0008606, - 0.0...

2020-03-19 13:56:17 1358

原创 DMA技术和及其SG模式

DMA技术 AXI直接数值存取(Drect Memory Access,DMA)IP核在AXI4内存映射和AXI4流IP接口之间提供高带宽的直接内存访问。DMA可以选择分散收集(Scatter Gather,SG)功能还可以将数据移动任务从位于于处理器系统中的中央处理器(CPU)中卸载出来。可以通过一个AXI4-Lite从接口访问初始化、状态和管理寄存器。如图4. 8展现了DMA IP的功...

2020-03-02 10:47:35 9957

原创 ZYNQ芯片AXI 协议和PL和PS接口互联

AXI 协议 Zynq可扩展平台的性能不仅在于PS与PL的功能强大,最大的优势在于能把二者联合起来使用以形成完整体系。其中,起到至关重要作用的就是通过AXI总线协议实现两部分的紧密联合。在介绍AXI协议之前先介绍先进的微控制器总线结构(Advanced Microcontroller Bus Architecture,AMBA)。AMBA是一个开放标准,概述了如何在SoC中连接和管理...

2020-03-02 10:41:44 3561 2

原创 TCP win客户端发送数据

// tcp协议传输部分借鉴代码,改动部分为把文件中读取的十六进制数据转化为char数组进行传输#define _WINSOCK_DEPRECATED_NO_WARNINGS #define _CRT_SECURE_NO_WARNINGS#include <stdio.h> #include <direct.h> #include <iostrea...

2020-01-05 15:03:02 906

原创 浮点数转化为十六进制数

// The purpose of this code is to convert decimal floating point Numbers to hexadecimal//把浮点数normalize到2000到3FFF的区间上#include <iostream>#include <assert.h>#include <cassert>#in...

2020-01-05 14:58:57 1010

原创 解决geant 4中could not find X11 Xmu library and/or headers等问题!

我在使用Ubuntu16.04系统安装geant 4软件到达cmake编译的阶段:cmake -D CMAKE_INSTALL_PREFIX=/home/zx/geant4_10_05/geant4_10_05_build -DGEANT4_INSTALL_DATADIR=/home/zx/geant4_10_05/geant4_10_05_data-DGEANT4_BUILD_MULT...

2019-10-22 16:43:05 2933 1

原创 从文件中读取浮点数输出十六进制数据保存在文件中

// The purpose of this code is to convert decimal floating point Numbers to hexadecimal//#include <iostream>#include <assert.h>#include <cassert>#include <fstream>#incl...

2019-09-24 16:19:00 481

原创 输入一段字符串按出现次数排序

#pragma warning(disable:4996)#include <stdio.h>#include<iostream>#include<vector>#include<string>using namespace std;using std::cout;using std::cin;using std::vector;...

2019-09-03 17:10:32 535

原创 char*和char[]的理解

在C++中常量不能赋值,变量才能赋值。C++使用char* 实际上是指向字符串首地址的指针变量。可以把其他字符串赋值给char*,实际上的操作是把其他字符串的首地址存放到char*指针变量里。char * pstr = "hello world";pstr = "maoge";上面两句代码对char*字符串的操作,是把字符串指针 pstr 指向的首地址从hello world 变换...

2019-08-12 11:20:26 537

原创 ZYNQ 在Linux系统层上通过DMA传输数据(安装控制DMA驱动的设备驱动)

编译Linux 驱动有两种方法,一种是使用petalinux直接编译进入内核中,第二种是在外部通过arm内核编译之后,insmod加载进入内核。我使用的是ZYNQ芯片,在芯片中跑Linux系统,我想解决的目标是通过DMA驱动从PS端传输数据到PL端。因为DMA驱动位于设备驱动的下一层,用户模式在设备驱动的上一层;而且DMA驱动对硬件的地址有要求,必须分配连续的物理内存,而在用户层只能分配非连续...

2019-08-05 19:41:05 8862 9

原创 char数组转化为十进制整数

通过一些通信方式传输的数据(比如:串口传输),有时候会保存为char类型的数据数据,我们需要把char数组中的所有数据转化为int整数,方法一是直接通过移位运算来实现:char c[4] = { 0x3,0x0f,0xf,0xf }; char t; int num = 0; int len = sizeof(c) / 2; char d[sizeof(c) / 2]{ 0 ...

2019-07-24 14:41:45 4813 1

原创 vivado调试问题,下载问题

我使用的是uart串口程序,Vivado的程序通过SDK下载之后,串口接收不到从FPGA上传的信息。先对之前的SDK文件夹进行删除,重新生成bit文件,之后打开SDK程序,新建工程文件,然后复制uart的C代码到工程中,进行SDK的程序下载,还是无法接收到串口上传的信息,最后发现问题是:system debugger对应的elf文件出错了,一定需要新建立一个system deb...

2019-07-23 11:26:14 722

原创 cache和register的区别

cache:为高速数据缓冲区,包含已经被发射到储存单元二还没有完成的储存操作的地址和数据,因为这些数据经常使用,保存在cache中比访问内存中速度要快,使用的是SRAM作为物理存储介质,SRAM是门电路组成D锁存器组成的,不需要提供电流不停的去刷新数据,register:register是CPU拥有的一小块数据空间,也是CPU能直接操作的数据,操作指令空间,寄存器的基本单元是 由C...

2019-07-20 21:41:26 3059

原创 SPI和I2C总线协议

SPI总线协议https://blog.csdn.net/ivy_reny/article/details/78189058I2C总线传输协议https://blog.csdn.net/jasonchen_gbd/article/details/77431951I2C总线只需要两根线来传输数据,一根SCl时钟线,一根SDA数据线,是在地址信息之后附加上数据信息,对地址的位数有特殊的...

2019-07-15 08:46:44 411

原创 PS 端控制GPIO 控制PL端外设

通过PS 端控制GPIO 控制PL端外设这篇文章不错,推荐大家去看:PYNQ上手笔记 | ③PS端+PL端点灯板卡商提供了PL和PS的LED灯,区别在于PS_LED直接接的是PS端的引脚,可以通过PS端引出的MIO管脚进行控制(s2 第一章), PL_LED只能通过PL端的GPIO IP核来控制。AXI_GPIO_0在硬件上分配好了地址,最好还是一个GPIO channel分配...

2019-07-09 20:39:31 2811

原创 SDK直接输出打印 hello world

通过PS端的MIO接口连接uart,直接打印出hello world,以下为SDK代码部分解释:int main(){ //对平台进行初始化, init_platform(); //初始化完成之后,直接使用函数printf就可以把字符打印到串口上显示, print("Hello World\n\r"); //对平台进行清除,主要是对寄存器进行清除 cleanu...

2019-07-09 15:48:55 2506

原创 MII、RMII、GMII接口的详细介绍

MII、RMII、GMII接口的详细介绍https://blog.csdn.net/reille/article/details/6312156因为MII接口为连接MAC(Media Access Control)和PHY(Physical interface transceiver)所以也必须要了解MAC和PHY的关系,以太网芯片MAC和PHY的关系https://www.cnb...

2019-07-08 15:46:54 799

interplot.py

使用Python对数据进行高斯拟合,在 Geant 4 软件中为更方便的计算数值填充数值,对纵坐标进行数值归一化计 算之后拟合高斯函数曲线。 为使峰值点与 Geant 4 模拟出的最大值点相对应,需要 求解出高斯函数曲线的峰值横坐标得到峰值。 由于公式的复杂性, 无法求解出解析 解进而求解数值解。 高斯函数曲线先增加后减少的特性, 对公式 5.13 进行求导后 得出的函数表达式在数据横坐标区间上一定有一个零点, 通过二分法迭代求解法 控制绝对值误差小于 0.0001 的条件求解峰值点的横坐标。

2020-06-15

空空如也

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

TA关注的人

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