- 博客(58)
- 资源 (16)
- 收藏
- 关注
原创 boot.img的生成过程,解析mkbootimg
Android系统镜像中boot.img如何生成,在此篇文章解开它的神秘面纱。源码位置:android/system/core/mkbootimg/boot.img是由文件头信息,内核数据以及文件系统数据组成,它们之间非页面对齐部分用0填充mkbootimg工具的使用:int usage(void){ fprintf(stderr,"usage: mkbootimg\...
2018-12-20 08:59:10 4990
原创 MSM8998(高通835处理器)外接指纹识别传感器linux驱动如何与设备树进行匹配
驱动名称:fpc1020.c平台:msm8998 描述指纹传感器设备的结构: struct fpc1020_data { struct device *dev; struct wake_lock ttw_wl; int irq_gpio; int rst_gpio; //复位gpio号 int irq_num; ...
2017-09-21 13:36:44 2301
原创 MSM8998(高通835处理器)外接指纹识别传感器linux驱动
/* * FPC1020 Fingerprint sensor device driver * * This driver will control the platform resources that the FPC fingerprint * sensor needs to operate. The major things are probing the sensor to chec
2017-09-21 09:36:30 2856 1
原创 共享内存
#include #include #include 共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc分配的内存一样。而如果某个进
2017-09-18 15:08:20 660
原创 platform平台device和driver如何匹配
device方面:platform_device_register(struct platform_device *dev)platform_device_add(pdev);device_add(&pdev->dev);bus_probe_device(dev);device_attach(dev); bus_for_each_drv(dev->bus, NULL, d
2017-09-11 15:41:45 1446
原创 驱动中添加参数进行调试和控制设备驱动
1.在加载驱动的时候向驱动传入参数:1.1传入字符型参数static char *name;module_param(name, charp, 0);MODULE_PARM_DESC(name, "param description");1.2传入无符号整型参数static unsigned rotate;module_param(rotate, uint, 0);
2017-09-11 15:36:11 840
原创 移植树莓派中的fbtft显示驱动到Linux开发板下(四)-fbtft中的数据结构
/* FBTFT主要数据结构 */struct fbtft_par { struct spi_device *spi; /* 设置spi设备 */ struct platform_device *pdev; /* 设置是否是平台设备 */ struct fb_info *info; /* 指向framebuffer fb_inf
2017-08-15 14:48:04 1838
原创 移植树莓派中的fbtft显示驱动到Linux开发板下(三)-参数传递
在fbtft显示驱动fbtft_device.c下有很多待传入的参数,如name设备名称,用它来匹配寻找你的对应的显示屏驱动了解一下传参的函数:module_param(name,type,perm);module_param 使用了 3 个参数: 变量名, 变量名的类型, 以及一个权限掩码用来做一个辅助的 sysfs 入口static char *name;
2017-08-15 14:43:00 1309
原创 移植树莓派中的fbtft显示驱动到Linux开发板下(二)
上一章节讲述了fbtft显示驱动移植到Linux中,被直接编译进去,但是怎么才能把他编译成模块呢?1. git clone https://github.com/notro/fbtft2. 修改fbtft.h,如下图(补丁文件)3.修改fbtft_device.c4.删除fbtft目录下的Makefile和Kconfig,增加编译模块的Makefile ifneq
2017-08-15 14:16:23 2239 1
原创 移植树莓派中的fbtft显示驱动到Linux开发板下(一)
fbtft来自树莓派系统中基于spi等接口的tft显示屏驱动下载fbtft驱动:https://github.com/notro/fbtft有两种方式加载到内核,一种是直接编译进内核,一种是直接编译成模块动态加载进内核1.直接编译进内核对于Linux3.10版本的内核(1).直接在driver/video下执行git clone https://github.c
2017-08-15 11:45:19 3925 2
原创 APxxx系列wifi驱动芯片移植笔记
/** Dave/> 2017-07-26撰写*/ Ap系列芯片设备树的移植:compatible = “wlan-platdata”表示Wifi_chip_type = “ap6212”表示使用wifi芯片的类型sdio_vref = //sdio电压电源管理芯片供电配置:power_pmu_regulator
2017-08-01 21:08:12 12129 6
原创 调试声卡ALC5631Q
/** Dave/<nova_wangwenbo@126.com>*/调试声卡ALC5631Q 设备树信息: rockchip-rt5631 { compatible = "rockchip-rt5631"; dais { dai0 { audio-codec = <&rt5631>; audio-cont...
2017-08-01 20:58:12 2064
原创 Xfce安装与移植
/** Dave/*/下载xfce源码包:wget http://archive.xfce.org/xfce/4.12/fat_tarballs/xfce-4.12.tar.bz2解压: tar xvjf xfce-4.12.tar.bz2打开解压的文件夹:cd src/解压各个模块: for i in `ls *.tar.bz2| awk '{print $NF}'`;
2017-08-01 20:56:57 3153 2
原创 wifi(rtl8188eu)移植及调试笔记
/* * Dave/nova_wangwenbo@126.com */wifi移植及调试笔记一.rtl8188eu1.修改设备树: 添加wifi ap电源控制引脚WIFI,power_ap_gpio = <&gpio3 GPIO_B5 GPIO_ACTIVE_LOW>;2.修改文件:include/linux/rfkill-wlan.h 增加gpio资源:struct r
2017-08-01 20:56:00 9565
原创 usb hub模块调试
1.usb hub设备树: hsic-usb-hub{ compatible = "hub_reset"; reset,pin =; // hub reset pin status = "disabled"; };2.对应的代码: #include #include #include #include #i
2017-08-01 20:47:45 2665
原创 使用busybox制作Linux文件系统(一)
1. busybox简介BusyBox 是一个集成了一百多个最常用Linux命令和工具的软件。BusyBox 包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例grep、find、mount以及telnet。有些人将BusyBox 称为 Linux 工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多
2017-07-15 15:43:43 409 1
原创 树莓派入门--安装系统
The Raspberry Pi 3 is the third generation Raspberry Pi. It replaced the Raspberry Pi 2 Model B in February 2016. Compared to the Raspberry Pi 2 it has:A 1.2GHz 64-bit quad-core ARMv8 CPU802.11n
2017-05-21 15:13:52 465
原创 (三)使用摄像头进行物体边缘检测
使用摄像头进行物体边缘检测运行环境:ubuntu14.04程序源码:test.cpp源码:编译:makeMakefile:在Linux中./test运行结果:
2017-03-27 14:43:13 1806 1
原创 驱动分析(1) -- 串口驱动的分析
1.uart_driver包含了串口设备名、串口驱动名、主次设备号、串口控制台(可选)等信息,还封装了tty_driver(底层串口驱动无需关心)struct uart_driver { struct module owner; / 拥有该uart_driver的模块,一般为THIS_MODULE / const char driver_name;
2017-03-01 14:52:43 603
原创 (二)opencv3.2之 图片显示
example code-01include<opencv2/opencv.hpp> using namespace cv; int main(int argc, char **argv) { Mat aImage; aImage = imread(“one.jpg”); imshow(photo1, aImage); waitKey(0
2017-02-23 10:01:16 497
原创 (一)Opencv3.2在Ubuntu14.04下的环境搭建
首先避免的是依赖关系库版本过高,出现依赖不兼容,笔者几次更新系统,才导致最终问题的存在,希望自己后面得到教训。废话不多说了……安装过程#:第一步:安装gcc/g++/gdb/make 等基本编程工具sudo apt-get install build-essential第二步:安装opencv所依赖的库、cmake和相关插件,主要是为了能够支持读写图片以及视频等。sudo apt-get insta
2017-02-23 09:56:02 3177
原创 设备树节点属性
device_type = "memory"就是一个属性,等号前边是属性,后边是值。节点是一个逻辑上相对独立的实体,属性是用来描述节点特性的,根据需要一个节点由0个,1个或多个属性表示节点的特性。一个属性由名字和值两部分组成。和节点的名字类似,规范要求属性名字由1到31个字符组成。和节点名字字符的种类有些区别,不允许有大写字母,增加了问号和井号两个字符。不清楚为什么没有和节
2016-12-16 10:22:06 2114
转载 设备树节点(node)的表示
首先说节点的表示方法,除了根节点只用一个斜杠“/”表示外,其他节点的表示形式如“node-name@unit-address”。@前边是节点名字,后边是节点地址。节点名字的长度范围是1到31,可以使用的字符在ePAPR规范中有说明,包括:0-9 数字a-z 小写字母A-Z 大写字母, 逗号. 句点(英)_
2016-12-16 10:03:02 1118
原创 设备树的起源
设备树(Device tree)是一套用来描述硬件属相的规则。ARM Linux采用设备树机制源于2011年3月份Linux创始人Linus Torvalds发的一封邮件,在这封邮件中他提倡ARM平台应该参考其他平台如PowerPC的设备树机制描述硬件。因为在此之前,ARM平台还是采用旧的机制,在kernel/arch/arm/plat-xxx目录和kernel/arch/arm/mach-x
2016-12-16 09:48:29 1222
原创 Linux文件系统管理(二)
字符串裁剪:cut -d "分隔符" -f 列号 filenamelinux@ubuntu:~$ grep "linux" -n /etc/passwd|cut -d ":" -f 1 找文件中的某行字符的行号修改文件的权限:chmod u/g/o/a +/- r/w/x a表示所有的用户u表示文件所有者g是同组用户文件掩码 :umask : 显示掩码
2016-12-14 22:26:38 369
原创 Linux文件系统管理(一)
文件系统的构成:/usr/bin 、/bin : 存放所有用户执行的命令/usr/sbin 、/sbin : 存放只有root可以执行的命令/hone : 用户的家(宿主)目录/proc : 虚拟文件系统,存放当前内存镜像/dev : 存放设备文件/lib : 存放系统程序运行所需的共享库/lost+found : 存放一些系统出错的检查
2016-12-14 22:25:18 378
原创 Linux文件的压缩与解压
文件解压缩命令:但是这个工具只能对单个文件做解压缩,不能压缩目录;tar命令(可以处理目录):-x解压缩-c 压缩一般形式表示:解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)———————————————.gz
2016-12-14 22:24:21 288
原创 Linux中的shell脚本编程
脚本:命令的有序集合shell脚本建工程过程(注:python ruby 一种脚本)建立shell文件 :touch shellname.sh赋予shell权限 : chmod u+x shellname.sh 或 bash ./shellname.sh编辑shell脚本 : vim shellname.sh编译shell脚本 : ./shellname.sh
2016-12-14 22:23:24 297
原创 Linux软件包管理
软件的离线管理:dpkg -i 软件包 : 安装本地上的软件(install)dpkg -r 软件包 : 移除一个安装了的软件包 (remove)dpkg -P 软件包 : 完全移除安装的软件包 (conpletely)dpkg -L软件包:列出软件包的安装清单 (list)dpkg -s 软件包:显示软件包的安装状态 (status)状态:unkown u 用户没有描述他对软件的描述instal
2016-12-14 22:21:24 285
原创 Linux的环境变量配置
环境变量的书写格式 : echo $环境变量名=内容1:内容2注:等号的两边不能有空格 环境变量名一般大写查看环境变量的PATH的内容 : echo $PATH添加环境变量使用命令 :export 分为永久添加和临时添加export PATH=路径:$PATH1.临时添加指对当时的终端有效,当终端关掉后 添加的环境变量就不存在了。2.永久添加 sudo gedit /etc
2016-12-14 22:20:23 357
原创 Linux系统中的基本操作命令
熟练使用pwd命令(1)浏览目录a. 当打开命令中断窗口,用户就处在自己的用户主目录的位置。b. 学习文件系统命令,就从自我定位开始(2)pwd命令a. pwd命令用户显示用户在文件系统中的当前位置,该命令没有任何选项和参数,命令执行结果显示为绝对路径名b. ~ 表示的是家目录的路径 /home/linux熟练使用ls命令(1)ls列目录内容
2016-12-14 22:15:52 1004
原创 usb的挂载
fdisk –l查看磁盘设备信息 fdisk –l /dev/sdb 查看磁盘设备信息如u盘 mount 挂载u盘和nfsmount -t nfs 主机ip:共享目录 挂载点 mount -t nfs 192.168.1.4:/arm2410s /mnt–onolock加文件锁 mount –t nfs –onolock 192.168.1
2016-12-14 22:14:39 914
原创 三大linux发行版的比较
任务Red Hat / FedoraDebian / Ubuntu添加、删除、更新软件包刷新软件包列表Yum每次运行自动刷新apt-get update从软件包库安装软件yum install package_nameapt-get install package_name从文件安装软件
2016-12-14 22:12:24 1964
原创 Linux用户管理
1.用户相关的文件:/etc/passwd 用户的属性清单/etc/shadow 和用户密码有关的文件/etc/group 和用户组有关的信息文件 /etc/adduser.conf 用户的配置文件2.id命令 查看用户属性:id username/etc/passwd man 5 passwd 查看用户属性清单的组织方式
2016-12-14 22:09:21 301
原创 Linux 下各个头文件的作用
QQ : 3492362066Email : 18892081962@163.com===========================================================1. #include /* printk() */2 #include /* kmalloc() */3. #include /* fi
2016-12-14 22:01:14 5060 1
原创 typedef函数指针和函数指针用法
/*形式1:返回类型(*函数名)(参数表) */#include char (*p_func)(int); //定义的指针函数 p_func是指向一个char返回值,形参为int型的函数char g_func(int a){ return 0;} int main(int argc, const char *argv[])
2016-09-22 10:47:37 427
原创 笔试中的static
关键字static 1.static 作用 1.1.全局静态变量 在全局变量之前加上关键字static,全局变量就被定义成为一个全局静态变量。 1)内存中的位置:静态存储区(静态存储区在整个程序运行期间都存在) 2)初始化:未经初始化的全局静态变量会被程序自动初始化为0(自动对象的值是任意的,除非他被显示初始化)
2016-09-22 10:36:38 303
原创 ++ -- 的执行优先级
#include #include #include int main(int argc,const char *argv[]){ int a = 10; int b = 0; b = a++; //先赋值再加一 ,等价于 b=a,a=a+1; printf("a = %d\tb = %d\n",a,b); b = a + 1;
2016-09-22 10:20:35 426
OpenCV.2.Computer.Vision.Application.Programming.Cookbook.pdf
2017-04-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人