自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

涛声依旧的专栏

勤能补拙

  • 博客(42)
  • 资源 (9)
  • 收藏
  • 关注

原创 MSM8909平台UIM驱动流程

UIM卡上电需要满足下面的时序。                                      UIM上电时序                                                          UIM下电时序MSM8909平台UIM初始化流程如下。在initialize_intctrl中设置了UART接收数据的中断服务程序为uimIntctrlIsr,当...

2018-03-20 14:36:09 2833

原创 MSM8909开机logo显示(1)---LCD背光的控制

在MSM8909平台上,PWM信号由PMU的MPP2输出,MPP的全称是Multi Purpose Pin,即多用途管脚。在文档80-NN174-64中,说明了MPP2的性质:PMU输出PWM非常地简单,MSM8909可参考80-NP409,只需配置10个寄存器。对于PWM的输出频率和占空比,高通提供了一个公式来计算:PWM_FREQ_CLK_SELECT和PWM_SIZE由寄存器0x1BC41配...

2018-03-14 00:00:40 3973 2

原创 VS2008编译libpng

1.下载lpng1630.zip和zlib1211.zip的源码包,解压到同一目录下,将zlib-1.2.11目录重命名为zlib。2.打开lpng1630\projects\visualc71目录下的工程文件libpng.sln,按照VS向导将版本转换成当前电脑安装的VS版本。3.删除Solution中的pngtest工程,以免编译报错。4.配置libpng工程属性,选中libp

2017-08-14 18:04:16 876

原创 J-link V8在win7 64位系统下刷固件方法

1.安装sam-ba_2.16.exe,2.J-link通过USB连接至电脑,短接PCB上标号为ERASE的焊盘10秒,断开ERASE两个焊盘后,拔下USB线。3.短接PCB上标号为TST的两个焊盘,插上USB线10秒后,拔下USB线,再断开TST的两个焊盘。4.J-link通过USB连接至电脑,打开设备管理器,安装驱动,驱动位置:C:\Program Files (x86)\At

2017-07-24 18:03:21 6068

原创 高通平台EFS的制作

用来制作EFS的机器称为A,用来验证EFS的机器称为B。1.在modem_proc/core/storage/efs/inc/fs_config_i.h中增加以下三行:#ifndef FEATURE_EFS_ENABLE_FACTORY_IMAGE_SECURITY_HOLE#define FEATURE_EFS_ENABLE_FACTORY_IMAGE_SECURITY_HOLE

2017-05-19 14:37:46 8727

原创 高通Secure Boot调试流程记录

参考文档KBA-161109181347-how_to_enable_secure_boot_step_by_step.pdf。1.新建临时目录tmp:   mkdir tmp    cd tmp2.复制opensslroot.cfg和v3.ext到tmp目录:    cp ~/work/M1503-6.0.1-01610/LINUX/android/vendor/qcom/p

2017-03-23 18:01:56 23239 9

原创 高通平台开机logo的修改

方法一:准备一张和LCD分辨率一样大小的png图片logo.png,在高通源码目录device/qcom/common/display/logo下面,有readme.txt文件,里面有说明生成镜像文件的方法:执行命令:python ./logo_gen.py logo.png,在当前目录下面会生成splash.img,用flash工具将splash.img刷进splash分区即可。

2017-03-07 10:05:17 8046

原创 Android中getevent和sendevent的应用

进入shell,以触摸屏为例,执行getevent -p /dev/input/event0,输出如下:add device 1: /dev/input/event0 name: "MSG21XX Touchscreen" events: KEY (0001): 008b 009e 00ac 00d9 ABS (0003): 002f : va

2017-02-20 21:31:22 2221 1

原创 Android消息处理机制---Looper、Handler、Message之间的关系

从一个应用程序的实例来理解安卓线程间的通信比较容易。class MyThread extends Thread { private Looper mLooper; @Override public void run() { super.run(); Looper.prepare(); synchronized (this)

2017-02-20 00:09:24 953

原创 Java中使用反射机制操作硬件

使用使用"mmm frameworks/base/"命令编译frameworks/base/core/java/android/os/ILedService.aidl文件,在out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/core/java/android/os/目录下会生成ILedService.java文件,内容

2017-02-06 19:35:41 785

原创 Android使用HAL操作硬件

1.新建hardware/libhardware/include/hardware/led_hal.h文件:#ifndef ANDROID_LED_INTERFACE_H#define ANDROID_LED_INTERFACE_H#include <stdint.h>#include <sys/cdefs.h>#include <sys/types.h&g...

2017-02-04 22:27:35 1183

原创 Android问题汇总

1.在frameworks/base/services/java/com/android/server/SystemServer.java文件中添加:Slog.i(TAG, "Led Service");ServiceManager.addService("led", new LedService());系统无法启动,通过logcat查看,报错如下:E/SELinux ( 298): avc:...

2017-02-03 20:40:27 4403 1

原创 Android中APK直接通过JNI访问驱动

1.新建文件LED-JNI.c,内容如下:#include   /* /usr/lib/jvm/java-1.7.0-openjdk-amd64/include/ */#include #include #include #include #include #include #include   /* liblog *///__android_log_p

2017-02-03 19:07:04 1717

原创 Android硬件访问服务---APK编写

开发环境:AndroidStudio2.0,MainActivity.java源码如下:package com.example.lawson.myapplication3;import android.os.RemoteException;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;

2017-02-03 15:09:39 507

原创 Android硬件访问服务---添加Service

1.在frameworks/base/core/java/android/os/目录下新建ILedService.aidl文件,这个aidl文件是让安卓系统自动生成ILedService.java文件,这个java文件给app使用,来调用jni提供的ledCrtl函数,app只需要点灯或者灭灯,它不需要其他操作,所以只需要实现ledCtrl方法:package android.os;/** {...

2017-02-03 11:29:56 986

原创 高通平台dts的匹配过程分析

在arch/arm/mach-msm/board-8909.c中:DT_MACHINE_START(MSM8909_DT,    "Qualcomm Technologies, Inc. MSM 8909 (Flattened Device Tree)")    .map_io = msm8909_map_io,    .init_machine = msm8909_init,

2017-01-10 14:57:00 6681

原创 高通平台device tree生成platform device的过程(MSM8909)

在arch/arm/kernel/setup.c中,通过customize_machine函数中的machine_desc->init_machine();来调用高通平台的machine初始化代码:static int __init customize_machine(void){    /*     * customizes platform devices, or adds n

2017-01-10 10:54:12 2729

原创 Linux驱动中module_init宏的解析

内核include/linux/init.h中,module_init展开如下:#define module_init(x) __initcall(x);__initcall(x)展开如下:#define __initcall(fn) device_initcall(fn)device_initcall(fn)展开如下:#define device_initcall(fn)

2017-01-09 21:34:01 765

原创 alsa-lib和alsa-util在TQ2416上的移植

下载alsa-lib-1.0.25.tar.bz2和alsa-utils-1.0.25.tar.bz2

2016-11-16 19:51:22 911

原创 QT4.8.6移植到TQ2440

交叉编译器用的是arm-linux-gcc4.3.2。1.安装依赖:sudo apt-get install libX11-dev libXext-dev libXtst-dev2.下载:qt-everywhere-opensource-src-4.8.6.tar.gz,网址:http://download.qt.io/archive/qt/3.解压:tar zxf qt-everyw

2016-10-25 15:46:29 2927 1

原创 Sensor在Linux内核中的驱动分析

内核中对sensor的抽象:drivers/sensors/sensors_class.c模块初始化函数:static int __init sensors_init(void){ sensors_class = class_create(THIS_MODULE, "sensors"); if (IS_ERR(sensors_class)) return PTR_ERR(sens

2016-10-17 18:38:47 7343

原创 tslib-1.4在TQ2440上的移植

1.解压:tar zxf tslib-1.4.tar.gz2.cd tslib/3.运行autogen.sh脚本:./autogen.sh4.echo "ac_cv_func_malloc_0_nonnull=yes">arm-linux.cache5.配置:./configure --host=arm-linux --cache-file=arm-linux.cache --en

2016-10-16 21:24:34 787

原创 在Ubunut12.04上搭建TFTP和NFS服务器

安装tftp-server:sudo apt-get install tftpd-hpa安装tftp-client(根据需要安装):sudo apt-get install tftp-hpa配置TFTP服务器:sudo vim /etc/default/tftpd-hpa,修改为如下内容:TFTP_USERNAME="tftp"TFTP_DIRECTORY="/home/yunta

2016-10-06 14:25:25 371

原创 lib-jpeg在TQ2440上的移植

tar zxf libjpeg-turbo-1.2.1.tar.gzcd libjpeg-turbo-1.2.1/./configure --prefix=$PWD/tmp/ --host=arm-linux./configure --prefix=$PWD/tmp/ --host=arm-linuxmake -j8make installcd tmp/lib/cp *

2016-10-01 00:12:20 291

原创 FreeType在TQ2440上的移植

主机:Ubuntu 14.04.1 LTS,交叉编译器:arm-linux-gcc4.3.2。cd freetype-2.4.10/./configure --host=arm-linux报错:GNU make (>= 3.80) or makepp (>= 1.19) is required to build FreeType2.Please try  `GNUMAKE=

2016-09-25 21:37:21 727

原创 JLink烧写2440的NOR配置

打开SEGGER\JLinkARM_V408k目录下的JFlashARM.exe。选择File->New Project新建工程,选择Options->Project settings,切换到CPU页,勾选Use target RAM(如果不勾选这个,烧写时就不会利用2440片内的SRAM,导致烧写速度会非常慢),Addr填入40000000(2440从Nor启动时,片内的SRAM地址映射到0

2016-09-25 12:12:12 2445

原创 Git服务器搭建

1. 在服务器端新建仓库目录,比如linux-3.0.35-fastboot。2. 初始化服务器仓库为裸仓库:    cd linux-3.0.35-fastboot    git--bare init3. 在本地创建仓库目录,比如linux-3.0.35。4. 提交代码:    cd linux-3.0.35    git add .    gitcommit -

2016-09-23 16:29:34 368

原创 VS2008 问题汇总

1.中文乱码问题:在资源视图中,右击对话框IDD,选择属性,将语言更改为Chinese (Simplified, PRC)即可。 或者在新建工程时,资源语言选择中文:2.编译报错,需要编译两次才可以通过:Project--->xxx Property Pages--->Configuration Properties--->Linker中的Enable Incremen

2016-08-29 11:23:32 677

原创 LCD在打电话时不灭屏的解决方法

环境:MSM8909+Android6.0.1+STK33101.打开QSensorTest app,用手靠近和远离P-sensor,sensor均能正常上报数据。2.打电话时查看kernel日志,发现enable函数没有被调用。P-sensor采用的轮训的方式上报数据,说明上层没有调用sensor的enable函数,在frameworks/base/core/java/and

2016-07-20 17:56:00 2888

原创 OTM1287A在MSM8909上的移植

高通平台是根据board-id来匹配dts文件,查看lk日志,找到如下log,由此可以断定board-id=8B -    262971 - CDT version:3,Platform ID:8,Major ID:1,Minor ID:0,Subtype:0查看kernel/arch/arm/boot/dts/qcom/msm8909-1gb-mtp.dts文件发现,高通默认的dts配置

2016-07-08 19:21:56 3996

原创 Linux内核定时器的使用

内核定时器的结构体定义在include/linux/timer.h:struct timer_list { /* * All fields that change during normal runtime grouped to the * same cacheline */ struct list_head entry; unsigned long expires; st

2016-06-29 10:47:40 594

原创 Workqueue的应用

工作队列允许内核代码请求某个函数在未来的时间被调用,具有很好的灵活性,其运行在特殊的内核线程,该线程没有对应的用户空间可以访问,因此,工作队列函数不能访问用户空间,但是可以休眠。TP的私有数据结构:struct msg21xx_ts_data { struct input_dev *input; struct hrtimer timer; struct work_struct wor

2016-06-28 14:56:20 532

原创 Linux中seq_file的应用

seq_file和seq_operations结构体定义在include/linux/seq_file.h:struct seq_file { char *buf; size_t size; size_t from; size_t count; size_t pad_until; loff_t index; loff_t read_pos; u64 version; stru

2016-06-28 14:09:35 2178 1

原创 Linux的notifier机制在TP中的应用

在linux内核系统中,各个模块、子系统之间是相互独立的。Linux内核可以通过通知链机制来获取由其它模块或子系统产生的它感兴趣的某些事件。notifier_block结构体在include/linux/notifier.h中定义:struct notifier_block { notifier_fn_t notifier_call; struct notifier_block __r

2016-06-27 22:00:35 3641

原创 Linux中miscdevice的分析

当字符设备不符合预先确定的字符设备范畴时,就可以采用Linux的杂项设备,这类设备用得比较多,misc device用主设备号为10来调用misc_register注册。misc device的实现在drivers/char/misc.c文件中,先看它的init函数。static int __init misc_init(void){ int err;#ifdef CONFIG_PRO

2016-06-27 19:41:02 2208 1

原创 Linux中debugfs的解析

debugfs_create_dir和debugfs_create_file定义在fs/debugfs/inode.c,声明在include/linux/debugfs.h。struct dentry *debugfs_create_dir(const char *name, struct dentry *parent){ return __create_file(name, S_IF

2016-06-27 17:56:17 6522

原创 Linux中debugfs的应用实例

struct ft5x06_ts_data {    struct i2c_client *client;    struct input_dev *input_dev;    const struct ft5x06_ts_platform_data *pdata;    struct ft5x06_psensor_platform_data *psensor_pdata;

2016-06-27 16:02:56 904

原创 sysfs_create_group使用

include/linux/sysfs.h中对attribute和attribute_group结构体的定义:struct attribute {    const char        *name;    umode_t            mode;#ifdef CONFIG_DEBUG_LOCK_ALLOC    bool            ignore_lock

2016-06-26 16:10:54 10338

原创 device_create_file的使用

DEVICE_ATTR是一个宏,其定义在include/linux/device.h:#define DEVICE_ATTR(_name, _mode, _show, _store) \ struct device_attribute dev_attr_##_name = __ATTR(_name, _mode, _show, _store)__ATTR宏定义在include/linux/...

2016-06-26 14:21:20 11857 1

原创 配置Linux内核支持yaffs2文件系统

1.使用git工具下载yaffs2源码:git clone git://www.aleph1.co.uk/yaffs22.进入yaffs2目录,执行patch-ker.sh脚本,将文件复制到linux内核的fs目录下。cd yaffs2/./patch-ker.sh c m ~/work/linux-3.10.4/输出如下信息,标明脚本执行成功。Updating /home/y

2016-05-24 15:27:28 2016

bresenham算法画直线和元

bresenham算法画直线和圆,计算机图形学

2013-02-03

手机距离感应的原理

距离感应器又叫位移传感器,距离感应器一般都在手机听筒的两侧或者是在手机听筒凹槽中,这样便于它的工作

2013-02-03

手机内置传感器揭秘

去年可谓智能手机的双核年,各大手机厂商都相继推出了各自的多款双核手机,连苹果都没能免俗

2013-02-03

二维数组动态分配

指针是c和c++的精华,也是永远的痛,利用指针进行二维数组动态分配

2013-02-03

led全彩显示屏单元板电路图

led全彩显示屏单元板电路图,sm16126列驱动,4953行驱动

2013-02-03

led双色显示屏单元板电路图

led双色显示屏单元板电路图,595列驱动,4953行驱动,138译码

2013-02-03

P10单元板电路图

led单色显示屏P10单元板电路图,16*32分辨率,595列驱动,4953行驱动

2013-02-03

LED显示屏控制卡原理图

控制器:stm32f103,单双色显示屏控制卡电路图

2012-11-29

空空如也

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

TA关注的人

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