- 博客(65)
- 收藏
- 关注
原创 C++ string内存解析
由于工作需要,最近温习一下c++;当看到c++的string类时,不禁有些疑惑,我们先看看令我疑惑的代码:#include <iostream>#include <string>using namespace std;int main(){ string s1; string s2 = "hello"; s1 = s2; return 0;}我们创建了两个string对象,第一个string对象没有初始化,第二个对象初始化为"hello",然后将s
2021-03-17 22:04:05 1115
原创 如何分析kernel oops
如何分析kernel oops?1. 什么是oops? 例如,非法地址访问等,在arm的手册里,这类异常会将cpu trap到异常特权级。2. 分析流程 笔者基于qemu环境,模拟arm32环境。自己制造一个oops,追踪oops的分析流程。 oops“制作”方法: *(int *)5 = 4; 即,在自己的kernel module中,插入这样的代码,制造一个非法地址写入。 oops现场 Unhandled faul...
2021-01-12 08:39:16 1575 1
原创 linux c backtrace
调试过程中,可能需要打印某一时刻的调用栈(当然你说用IDE那当我没说),那么你可以参考本文:#include <execinfo.h>#define MAX_STACK_DEPTH (20)void print_stackframe(void){ void * buffer[MAX_STACK_DEPTH]; int depth = backtrace(...
2019-10-06 16:54:54 828
原创 ARM APCS 学习笔记
最近在学习arm体系架构,先简单了解一下APCS。什么是APCS?http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042f/IHI0042F_aapcs.pdf具体的概念随后理解下,先提供一个汇编和反汇编的方法,以供实验。之后会详细写APCS的东西。获取arm gnu工具链之后,我们写一个简单的c代码。int func0(...
2019-04-09 08:53:03 522 2
转载 抄的 Hal Vendor 共享
研究导向: open camera过程中有些初始化设置参数需要从vendor层获取,而vendor与hal隶属于不同进程,通过ION机制设置共享内存来实现不同进程间数据共享,下面简要介绍流程:在初始化过程中hal层会通过socket将消息发送至vendor层-通知vendor map共享内存。ION初始化过程: vim hardware/qcom/camera/QCam
2017-12-13 13:14:12 552
原创 进程学习笔记(一)
今天初步学习了一下内核进程设计思想 , 简单的做一下记录。(1)概念 进程:程序执行程度以及信息的数据结构的结合。 轻量级线程:线程之间可以共享资源,两个线程修改共享资源,双方都能查看到修改。当然,每个线程,都可以由内核独立调度。(2)进程描述符 task_struct结构体,在sched.h中,内容多,咱们就不贴在这里了。 但是,书
2017-10-15 17:47:22 310
原创 6th Maximal Rectangle
这里仍旧使用暴力求解法,求出矩阵中的最大的矩形面积。/*calc max rect in a matrixeg:1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0res: 6*/int buf_all[4][5] = {1 ,1 ,1 ,1 ,1 , 1 ,1 ,1 ,1 ,1 , 1 ,1 ,1 ,1 ,1 ,
2017-10-07 11:10:38 245
原创 4th Largest Rectangle in Histogram
这个题目十分简单,直接循环就可求出来。#include #include int calc_rect(int cof1 , int cof2){ if(cof1 <= cof2 ) return 2*cof1; else return 2*cof2;}int process(int *buf , int lens){ int k=0,f=k+1 , max_rec
2017-10-06 22:21:23 232
原创 5th IP address restore
这次欠债比较多,所以,这次的代码风格很差。方法是最暴力的暴力求解法。//ip restore//if input is 19216811//out put should be 192.168.1.1 or 19.216.8.11 or some_str available else#include #include #include #define LOG_FLAG 1/*
2017-10-06 13:12:00 278
原创 3th Validate Binary Search Tree
用递归做得,遇到的坑是用cygwin带的gcc编译,总是遇到各种莫名其妙的段溢出。。。珍爱生命,远离cygwin。。#include "stdio.h"#include "stdlib.h"#include "string.h" //Definition for a binary tree node. struct TreeNode { char val;
2017-09-11 00:40:31 330
转载 偷来的AWB原理
本文转载wzwxiaozheng的白平衡算法,主要包括两部分:色温曲线和色温计算。原文http://blog.csdn.NET/wzwxiaozheng/article/details/384343911,白平衡算法---色温曲线本文大体讲解了白平衡的算法流程,适用于想了解和学习白平衡原理的筒子们.一般情况下要实现AWB算法需要专业的图像和算法基础,本文力图通过多图的方式,
2017-09-03 16:47:49 2357 2
原创 2th roma int
这个仍旧使用查表法,比较简单,直接上代码:#include #include #include "string.h"#include "math.h"char lut_1[10][8] = {"I","II","III","IV","V","VI","VII","VIII","IX"};char lut_10[10][8] = {"X","XX","XXX","XL","L","L
2017-09-03 11:41:11 549
原创 1th 整数 罗马数 转换
代码很简单,采用查表法做。所以直接贴出来吧。#include #include #include "string.h"char lut_1[10][8] = {"I","II","III","IV","V","VI","VII","VIII","IX"};char lut_10[10][8] = {"X","XX","XXX","XL","L","LX","LXX","LXXX","XC
2017-09-03 00:25:48 342
转载 gpio_set_value
gpio_set_value(port_num,0/1) 一般只是在这个GPIO口的寄存器上写上某个值,至于这个端口是否设置为输出,它就管不了!而gpio_direction_output (port_num,0/1),在某个GPIO口写上某个值之后,还会把这个端口设置为输出模式。 因此,有人也许就会建议,把gpio_set_value这个函数直接去掉不用,是否可以,显然是可以的。
2017-08-08 14:16:36 5993
转载 抄的camera流程
高通新的camera驱动架构设计发生了一些变化,借用互联网上常用的一种结构,大致的原理如此:将camera的所有功能划分为不同的模块,让模块自己来决定自己的事情(高内聚,低耦合),模块需要有统一的接口和格式。模块中有端口,通过端口把模块连接起来,又把模块挂在总线上。每一个端口的连接就是一个流,把这些流用pipeline来管理。每次启动一个camera就创建一个会话,由这个会话来管理此camera的
2017-07-26 20:46:39 1661 2
转载 opencv HDR(COPY)
简介 本篇主要是利用三张图片:过曝(相机设置exposure+1)、正常(相机设置exposure+0)、欠曝(相机设置exposure-1),来合成一张在亮出和暗处细节都清晰的图片,来简易实现图片的HDR功能。具体实现实现代码#include
2017-07-25 16:46:42 764
转载 actuator 基础
1.概述actuator驱动信息文件是指vendor目录下的$ActuatorName_actuator.h文件(如gigaset_actuator.h)。此信息文件就是一个actuator_driver_ctrl_t结构体。包括actuator_params与actuator_tuned_params两部分,即driver与tunning两部分。文档以目前最主流的VCM为例进行参数的介绍
2017-05-09 20:20:17 919
转载 高通camera架构讲解
转自:http://www.cnblogs.com/thjfk/p/4086001.html Camera原理:外部光线穿过lens后,经过color filter滤波后照射到sensor面上,sensor将从lens上传到过来的光线转换成电信号,再通过内部的AD转换为数字信号,如果sensor没有集成DSP,则通过DVP的方式传输到baseband,此时的数据格式是RAW DATA
2017-04-03 16:33:28 9344
原创 git 打patch
假如我们现在在master分支,创建文件mast.c , 写入 hello_master然后我们现在切换到king 分支,然后修改mast.c , 写入bb_king提交之后,通过git diff master > ../king.patch ,生成一个king.patch然后切换到master分支,然后运行:git apply ../king.patch 就可以把king的
2017-03-29 22:09:52 268
原创 图像学习 -- Sobel算子检测图像边缘
边缘提取有一个最简单的思路,就是寻找灰度变化明显的地方。假设,一幅图像的灰度分布如下:255 254 253 255 2 2 0 1253 252 255 255 2 1 1 0254 253 252 255 1 0 2 3255 254 255 255 2 1 0 1sobel算子有两个,一个是水平检测:-1 -2 -1 0 0 0 1 2 1
2017-03-25 20:17:55 1095
转载 BMP图片格式解析
BMP文件格式,又称为Bitmap(位图)或是DIB(Device-Independent Device,设备无关位图),是Windows系统中广泛使用的图像文件格式。由于它可以不作任何变换地保存图像像素域的数据,因此成为我们取得RAW数据的重要来源。Windows的图形用户界面(graphical user interfaces)也在它的内建图像子系统GDI中对BMP格式提供了支持。下面
2017-03-25 12:13:39 966
转载 camra 架构
1 camera基本代码架构 高通平台对于camera的代码组织,大体上还是遵循Android的框架:即上层应用和HAL层交互,高通平台在HAL层里面实现自己的一套管理策略;在kernel中实现sensor的底层驱动。但是,对于最核心的sensor端的底层设置、ISP效果相关等代码则是单独进行了抽离,放在了一个daemon进程中进行管理:图1 Qualcomm平台cam
2017-03-23 17:57:36 523
原创 操作系统学习 -- 概论
(一)概论篇操作系统主要功能可以概括为:(1)fork() -> 开启新的进程;(2)time-share -> 实现多任务;(3)isolation between processes -> 所有的进程之间是独立的;(4)work with each other ->进程之间的通信,比如pipe总结起来就是三点:多任务,独立进程块,相互通信设计的不是太好
2017-03-12 20:28:58 319
原创 《OpenCV从入门到放弃》 -- 2th 图像二值化
接着上回的来说,今天记录一下图像的二值化。图像二值化的思路是:加载图像 -> 转为灰度图 -> 转为二值化图-> 显示出来加载图像与显示图像上一篇已经有讲了,这里不赘述;转为灰度图:g_pGrayImage = cvCreateImage(cvGetSize(src), IPL_DEPTH_8U, 1); //src是读入的图片cvCvtColor(src, g_p
2017-03-05 18:14:15 805
原创 《Opencv从入门到放弃》-- 1th 显示图像
今天开始更新博客系列文章《Opencv从入门到放弃》。你看到的是本系列的第一节 显示图像本人用的开发环境是UBUNTU16.04,版本是OPENCV2.3.1,具体怎么装我的博客里面有。废话不多说,直接复制一个官方sample,然后改代码,省去MAKEFILE的麻烦。具体操作如下:cd opencvdir/samples/ccp -rf example_cmake my_exp
2017-02-28 11:16:29 516
原创 camera视频学习笔记(1)
韦东山CAMERA:1.硬件参数: (1)感光阵列每个感光点只能感受R,G,B一种颜色; (2)相同像素的镜头,镜头尺寸越小,对应的像素点颗粒的大小越小,感光性质越差; (3)扫描模式: 逐行扫描:一行一行的扫描,720P 隔行扫描(INTERVEL):EG:第一次扫奇数行,第二次扫偶数行 ,1080I2.数据流程: (1) ISC -- image
2017-02-15 20:35:33 543
原创 OV7670 OVERVIEW
OV7670学习笔记: 1.各个部分描述: (1)Image Sensor Array 7670有640*480像素的传感器阵列; (2)Timing Genarator 产生帧; 内部时钟信号产生; 帧频率; AEC(自动曝光控制); 外部时钟信号输出:VSYNC,HSYNC/HREF,PCLK。 (3)Ana
2017-02-14 13:45:32 613
转载 Bayer RGB和RGB Raw
Bayer RGB和RGB Raw 对于SENSOR来说,Bayer RGB和RGB Raw两者的图象结构都是BG/GR的(Bayer pattern说的是COLOR FILTER的结构,分为两种:STD Bayer pattern 与Pair pattern,其中STD Bayer pattern的结构是BG/GR的,而Pair Pattern顾名思义是指BGBG/GRGR的结构,即以
2017-02-14 11:49:36 619
转载 如果交叉编译工具出现 没有那个文件或目录
如果 Linux 交叉编译工具验证安装时可能出现。./arm-none-linux-gnueabi-gcc: 没有那个文件或目录。 解决方法是执行:sudo apt-get install lsb-coreLSB(Linux Standards Base)是一套核心标准,它保证了LINUX发行版同LINUX
2017-02-12 07:18:17 2394
转载 ubuntu virtualbox win7 USB
出现这种问题,很多人主要是摸不清方向,不知道到底是ubuntu这端出问题,还是windows端出问题!其实很简单。1、首先在ubuntu一定要发现设备。lsusb。2、vitualbox要勾选 USB2.0(EHCI)控制器。 勾选EHCI后,出现无法启动win7系统的问题,提示Implementation of the USB 2.0 controller not fou
2017-02-09 13:03:38 746
原创 2017电子设计攻略_控制类
2017年电子设计大赛准备攻略(控制类) Author: 靳皓屹 中北大学1. 组队 组队是一件非常重要的事情。在组队之前,一定要想清楚: (1)三个人中间是否有一位核心成员(具有决断力,能够定好团队的方向);(2)分工问题;个人认为最合理的分工是这样的:硬件+驱动+APP,之后会详细的谈这
2017-02-06 17:56:57 8331 5
原创 qt 移植到2440
QT移植手册: 毕设上面用到了QT,所以得移植啊移植。 其实QT移植到arm linux系统只需要两步,第一是tslib的移植,第二是qt-everywhere的移植。可以这么讲,tslib是一个环境,QT只是一个库。 废话不多说了,开始说正儿八经的。1 tslib的移植 (1)保证LCD驱动和触摸屏驱动OK,这个就不多说了,至少有/de
2017-02-04 11:08:53 1072
转载 HSV
HSV格式的图片的各通道取值范围 H:0-360 S:0-1 V:0-1 然而在Opencv中的8Bit取值最大只能到255(32Bit的没事),所以在转换时,被除了2,范围变成了0-180. 而S和V通道则为0-255.以下会以标准的HSV来说,用到Opencv里转化下就好。HSV中的H通道时保存的色调,从0-360依次为红,橙,黄,绿,青,蓝,紫。但是分布不是均匀的
2017-01-19 17:04:45 990
原创 RICO BOARD驱动探索之旅_环境搭建与点亮LED
今天开始更新我的博客,一个专题: RICO BOARD驱动探索之旅机缘巧合,我申请到了RICO BOARD,一直想自己玩玩,现在开播!!!这款板的渊源我就不赘述了,它是以TI Sitara AM437X为处理器,优点我也省略,反正我是小白。既然是小白,我就以小白的目光来开发这一套板的驱动(基于LINUX)驱动开发准备工作:(1)编译内核 我用的是官方带的内核,按
2017-01-16 00:37:31 711 2
转载 Ubuntu 进入 initramfs
由于电脑跑了两天没关机,出了些问题,所以重启了一下,却发现ubuntu14.04再也进不去了。进去之后就是initramfs提示符,在之前还显示错误信息:initramfs target filesystem doesn't have sbininit。输入exit之后,又报错:initramfs panic occurred switching back to text console
2017-01-01 09:20:43 2450
原创 minicom退出方法
1)需使用Ctrl+a 进入设置状态2)按z进入设置菜单(1)S键:发送文件到目标系统中;(2)W键:自动卷屏。当显示的内容超过一行之後,自动将後面的内容换行。这个功能在查看内核的啓动信息时很有用。(3)C键:清除屏幕的显示内容;(4)B键:浏览minicom的历史显示;(5)X键:退出mInicom,会提示确认退出。
2016-12-11 11:40:33 36094 1
转载 linux assemble environment
1、下载nasm安装包#wget http://www.nasm.us/pub/nasm/releasebuilds/2.11.08/nasm-2.11.08.tar.gz2、解压安装nasm#tar -xzvf nasm-2.11.08.tar.gz#cd nasm-2.11.08#./configure#make#make install3、编写hello.as
2016-12-10 22:11:54 377
转载 MJPG-STREAMER 移植+BUG
Mjpg‐streamer是一个开源软件,用于从webcam摄像头采集图像,把它们以流的形式通过基于ip的网络传输到浏览器如Firefox,Cambozola,VLC播放器,Windows的移动设备或者其他拥有浏览器的移动设备;关于它的介绍网上有一大堆,读者可自行了解;网上关于它的移植也很多,下面给出移植的过程与在编译过程中出现的一些问题与解决方法。在移植Mjpg-streamer之前必须移植
2016-12-07 16:16:22 436
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人