自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一叶扁舟

负重前行

  • 博客(26)
  • 问答 (1)
  • 收藏
  • 关注

原创 Linux 执行脚本时&和&&

&表示在后台执行脚本,比如 ./ppp & 。&&表示前一条指令执行成功后再运行下一条指令,如果前一条指令执行失败,则后面的指令不执行。

2018-04-18 14:03:31 3387

原创 GIT使用备忘

一、GIT服务器地址IP:192.168.12.21用户名:git密码:123456 二、如何上传一个新的GIT仓库以RK3128为例:服务端:1、使用git用户登录GIT服务器,在根目录下新建目录:mkdir  rk312x_android6.0_v1.00.gitGIT仓库通常以.git结尾。2、执行初始化命令:git  init  --bare rk312x_android6.0_v1.00...

2018-03-19 09:34:49 231

转载 Linux设备模型(3)_Uevent

原文:http://www.wowotech.net/device_model/uevent.html1. Uevent的功能Uevent是Kobject的一部分,用于在Kobject状态发生改变时,例如增加、移除等,通知用户空间程序。用户空间程序收到这样的事件后,会做相应的处理。该机制通常是用来支持热拔插设备的,例如U盘插入后,USB相关的驱动软件会动态创建用于表示该U盘的device结构(相应...

2018-02-27 14:33:02 258

原创 详解container_of

    container_of宏在linux中的应用非常广泛,几乎随处可见,它的作用是通过一个结构体成员的地址来获得这个结构体的首地址。先来看一下定义:#undef offsetof#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)/** * container_of - cast a member ...

2018-02-27 14:31:17 286

原创 Android 电池管理系统-驱动部分

硬件平台:RK3128Android版本:6.0Kernel版本:3.10.92    Android电池管理,基于linux Power Supply架构,Battery驱动程序需要通过sys文件系统向用户空间提供接口,Linux标准的Power Supply驱动程序所使用的文件系统路径问/sys/class/power_supply,其中的每个子目录表示一种能源供应设备的名称。一、Power ...

2018-02-23 16:41:38 1576

原创 [RK3128][Android 6.0] OTA编译错误

使用make otapackage命令编译ota包时出现以下错误:Package target files: out/target/product/rk312x/obj/PACKAGING/target_files_intermediates/rk312x-target_files-user.wintec.20180130.164651.zipbuilding image from targ

2018-01-31 10:48:12 932

原创 Ubuntu 16.04 android 5.1编译错误

硬件平台:RK3288android版本:5.11、编译遇到如下错误:libnativehelper/JniInvocation.cpp:45: error: unsupported reloc 43libnativehelper/JniInvocation.cpp:165: error: unsupported reloc 43libnativehelper/Jn

2018-01-23 16:20:47 1629

转载 Linux内核空间内存申请函数kmalloc、kzalloc、vmalloc的区别

我们都知道在用户空间动态申请内存用的函数是 malloc(),这个函数在各种操作系统上的使用是一致的,对应的用户空间内存释放函数是 free()。注意:动态申请的内存使用完后必须要释放,否则会造成内存泄漏,如果内存泄漏发生在内核空间,则会造成系统崩溃。   那么,在内核空间中如何申请内存呢?一般我们会用到 kmalloc()、kzalloc()、vmalloc() 等,下面我们介绍一下这些函数

2018-01-23 13:08:53 521

转载 linux内核中的likely()和unlikely()宏的作用

在看linux内核代码的时候,经常会看到likely(x)和unlikely(x)宏的使用。那这两个宏有什么作用呢?这两个宏在内核中的定义如下:# define likely(x) __builtin_expect(!!(x), 1)# define unlikely(x) __builtin_expect(!!(x), 0)可见这里使用了gcc的内建函数__builtin

2018-01-23 13:06:52 494 1

原创 内核regmap机制

内核版本:3.10.92内核3.1引入了一套新的API机制:regmap,主要为I2C,SPI,IRQ等操作提供统一接口,提高代码可重用性,减少重复逻辑。以I2C为例:要让设备跟I2C通信,以前的办法是调用i2c_transfer接口,其实regmap最终还是调用到i2c_transfer,只不过中间加了一层缓冲,这样统一了接口,减少了底层I/O的操作次数。在初始化之前,要先填充r

2018-01-15 14:11:49 3864 2

原创 SC16IS752调试

硬件平台:RK3128Android版本:6.0Kernel版本:3.10.92I2C转UART芯片SC16IS752,支持I2C转接成双UART口,ttySC0和ttySC1,调试时发现,ttySC0可用,但ttySC1始终不可用,代码是kernel 3.16内核代码,后来找到原因,是因为在读写寄存器时有问题。原代码:regmap_raw_read(s->re

2018-01-15 10:48:51 3621 2

原创 [RK3128][Android 6.0] 3G模块调试

硬件平台:RK3128Android版本:6.0Kernel版本:3.10.92模块名:UC-15 3G模块一、驱动配置:1、添加PID,VID。修改kernel/drivers/usb/serial/option.c,添加:{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9090)}, //UC-152、上电使能:Dt

2017-12-18 16:47:40 1397

原创 [RK3128][Android 6.0] PWM backlight注册及调用流程

硬件平台:RK3128Android版本:6.0Kernel版本:3.10.92 首先来看pwm配置: pwm1: pwm@20050010 { compatible = "rockchip,rk-pwm"; reg = ; #pwm-cells = ;

2017-12-18 16:16:35 2419

原创 [RK3128][Android 6.0] RTC设备注册及调用流程

RTC设备注册及调用流程

2017-12-15 13:53:42 921

原创 [RK3128][Android 6.0] u-blox GPS芯片 MAX-7Q调试记录

硬件平台:RK3128Android版本:6.0Kernel版本:3.10.92 最近调试一款gps芯片,u-blox的MAX-7Q,支持I2C及UART接口,由于UART口不够用,只能用I2C接口,之前没有接触过I2C接口的gps芯片,并且在hardware层调用I2C也是第一次接触,故记录在此。 1、在hardware目录下新建文件夹u-blox,将客户提供的hal层源

2017-12-01 16:24:36 3717 2

转载 [转]mipi LCD 的CLK时钟频率与显示分辨率及帧率的关系

原文:http://blog.csdn.net/bmw7bmw7/article/details/45876487 我们先来看一个公式:Mipiclock = [ (width+hsync+hfp+hbp) x (height+vsync+vfp+vbp) ] x(bus_width) x fps/ (lane_num)/2即mipi 屏的传

2017-11-30 09:20:11 3664

原创 [RK3128][Android 6.0] RTC芯片PCF8563调试记录

硬件平台:RK3128Android版本:6.0Kernel版本:3.10.92 任务描述:Rk3128 Android 6.0平台调试rtc芯片PCF8563,本以为很容易,结果碰到一些问题,在此记录下来。 一、添加设备信息Dts中添加I2C设备:    rtc@51 {        compatible = "nxp,pcf8563";

2017-11-24 11:29:44 5508

原创 [RK3128][Android 6.0] 新增一个CIF Camera

硬件平台:RK3128Android 版本:6.0Kernel 版本:3.10.92本文以 gc2145 为例。一、添加驱动将要添加 camera 的驱动文件 gc2145.c 复制到 kernel/drivers/media/video/下,修改Makefile。二、添加宏定义在 kernel/arch/arm/mach-rockchip/

2017-11-22 15:36:25 2670

原创 使用adb调试串口

最近在rk3128上调试一颗I2C转UART芯片:SC16IS752,由于手上只有一块开发板,hdmi输出又搞坏了,无法连接屏幕,怎么验证调试效果呢,无奈之下用adb试试吧,果然有办法。准备工具:busybox,下载地址:https://busybox.net/downloads/binaries/  按照自己的平台下载,我是很久之前随便下了一个,挺好用。然后:adb rootad

2017-09-14 15:03:30 9692

转载 【转】MIPI Generic和DCS指令的区别

在读/写指令时,Generic指令 是不区分 Index 和 parameter 的,而 DCS 会默认把 data0 作为Index 然后计算 parameter 数目。原文:http://blog.csdn.net/qwaszx523/article/details/62884052

2017-09-11 16:09:22 4761

原创 android 6.0编译问题总结

ubuntu16.04安装jdk1.7,ubuntu换源,android编译

2017-08-15 16:43:48 2050

原创 编译Android 7.0遇到的问题

硬件平台:rk3128Android版本:7.0kernel版本:3.10.104ubuntu版本:ubuntu 16.04一、问题描述:编译kernel时错误:/bin/sh: 1: lzop: not found解决方法:这个碰到过好多次了,安装即可:sudo apt-get install lzop二、问题描述:编译android报错Out

2017-07-27 10:28:50 2905

原创 ubuntu 16.04 samba服务器快速配置

1、安装sambasudoapt-getinstallsambasamba-common2、备份配置文件sudocp/etc/samba/smb.conf/etc/samba/smb.conf.bak3、建立共享目录mkdir /home/share添加权限 sudo chmod -R a+rwx /home/share3、添加samba用户添加用户:

2017-07-27 10:07:55 297

原创 我的vim配置

vim是相当强大的文本编辑器,下面是我的vim配置。在根目录下新建文件.vimrc,复制以下代码到该文件即可。"搜索时高亮set hlsearch" 随着键入即时搜索 set incsearch"tab 键设置4个空格set tabstop=4set shiftwidth=4set expandtab"显示当前的行号列号:set rulerset show

2017-07-25 16:59:09 212

原创 Linux下i2c设备的注册过程

在linux内核下,我们通过i2c_add_driver注册i2c设备,注册成功之后会调用我们写好的probe函数,下面就来梳理一下i2c设备从注册到调用probe的过程。注册i2c设备,传入的参数是i2c_driver结构体指针。static int __init bq24296_battery_init(void){ int ret; ret = i2c_add_

2017-07-17 15:31:29 2273 1

原创 Android HAL调用流程

此文目前为半半半成品,待完善。本文以light为例,分析android调用底层驱动的流程,今天先从LightsService开始,应用的调用部分后面再补充。平台:rk3128android版本:android 5.1内核版本:3.10一、LightsService服务源码路径:frameworks/base/services/core/java/com/

2017-07-10 16:21:24 1386

空空如也

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

TA关注的人

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