自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 资源 (8)
  • 收藏
  • 关注

原创 零长度数组

最近在准备分析Linux input子系统,发现内核代码里面有很多关于C语言的妙用。特此记录下,如有不足之处,敬请指正。

2016-07-20 21:01:36 5144

原创 Linux i2c子系统

一、前言因为自己在研发过程中经常要涉及到tp驱动程序,而tp驱动就涉及到i2c驱动。经常可以看到在驱动程序中会定义一个struct i2c_driver的数据结构,并实现里面的某些成员,比如probe、resume、suspend、remove、id_table,之后会在module_init()中调用i2c_add_driver()添加这个驱动。比如说像下面这个样子:static const st

2016-06-20 20:44:07 5178 1

原创 Rockchip平台TP驱动详解

本文描述在RK3126平台上添加一个新的TP驱动(gslx680驱动)以及详细的驱动代码信息。修改dts,添加新的i2c设备。在 arch/arm/boot/dts/rk312x-sdk-v2.2.dtsi中添加i2c设备的相关信息:ts@40 { compatible = "gslX680"; reg = <0x40>; wake-gpio = <&

2016-06-15 16:10:26 13721 6

原创 全志平台TP驱动

全志各平台的TP驱动移植可以参照全志A20平台CTP模块开发说明文档V2.0-20130628.pdf其中全志平台编译环境的搭建可以参照此为全志A31编译环境搭建

2016-06-14 20:39:59 4571

原创 MTK平台TP驱动详解

MTK平台tp驱动详解本博文将讲解基于goodix9157触控芯片的tp驱动程序。这里有对应的驱动程序。初始化static int __init tpd_driver_init(void){ GTP_INFO("MediaTek gt91xx touch panel driver init\n");#if defined(TPD_I2C_NUMBER) i2c_register

2016-05-10 11:52:58 19123 4

原创 全志A31编译环境搭建

平台:全志A31 内核版本:linux-3.3 gcc版本:arm-linux-gnueabi-gcc 4.6.1 操作系统:Ubantu 2.6.32-38-generic项目中需要编译A31平台的驱动并在pad上面运行,运行的环境如上所说的。此处只涉及到内核的编译问题,至于模块的配置以及boot的编译并不在此范围内。全志会提供两个压缩的内核文件,分别为android.tar.gz和lich

2015-07-28 18:39:19 4562

翻译 Qt信号与槽工作机制--译文

本文翻译自How Qt Signals and Slots Work。如有错误,敬请指正。 Qt is well known for its signals and slots mechanism. But how does it work? In this blog post, we will explore the internals of QObject and QMetaObject a

2015-05-28 21:05:24 2793

原创 Qt信号与槽机制源码分析

在前一篇中,我翻译了一篇关于信号与槽机制详解的文章Qt信号与槽工作机制–译文。在这一篇文章中,我将根据自己的理解从Qt源码中分析该机制。建议在看本文章之前先去看看前面提到的译文或者直接看原文原文How Qt Signals and Slots Work。本文只分析了大概的思路,很多细节并没有深究下去,如有错误,敬请大家指正。 以下所有代码的测试基于Qt5.4.0,MOC版本是67。测试代码同样,我

2015-05-28 17:37:34 5890 2

原创 C/C++语言面试题详细解答四

以下提到的题目全部来自C语言面试题大汇总.本文章将对其中的题目根据自己的理解进行详细的解答。存在不足或错误的地方敬请指正出来。结构体大小 问:设有以下说明和定义:typedef union{ long i; int k[5]; char c; } DATE;struct data{ int cat; DATE now; double do

2015-05-26 20:12:49 1580

原创 C/C++语言面试题详细解答三

以下提到的题目全部来自C语言面试题大汇总.本文章将对其中的题目根据自己的理解进行详细的解答。存在不足或错误的地方敬请指正出来。排序以下排序的内容大部分参照下面的文章进行整理: 数据结构复习之【排序】既然讲到排序,那就肯定要涉及到交换,我们先讲讲两数交换。两数交换1、参数为指针void swap(int *x, int *y){ int temp = 0; temp = *x;

2015-05-22 08:32:04 1972

原创 C/C++语言面试题详细解答二

以下提到的题目全部来自C语言面试题大汇总.本文章将对其中的题目根据自己的理解进行详细的解答。存在不足或错误的地方敬请指正出来。接着第一篇讲的,我们继续。问题三 问:描述实时系统的基本特性 答:在特定时间内完成特定的任务,实时性与可靠性这个问题对我来说非常非常的难,虽然说就只有简简单单的一句话,但是里面包含了N多的内容,不是我等小喽喽能够说得清的。在此我就简单的摘录以下两篇文章的内容吧。

2015-05-20 09:13:44 1865

原创 C/C++语言面试题详细解答一

以下提到的题目全部来自C语言面试题大汇总.本文章将对其中的题目根据自己的理解进行详细的解答。存在不足或错误的地方敬请指正出来。 问:static有什么用途?(请至少说明两种) 答: 1.限制变量的作用域 2.设置变量的存储域> http://blog.csdn.net/keyeagle/article/details/6708077http://bbs.csd

2015-05-05 18:34:49 3286

原创 <Head First Java>学习笔记--第六章:认识Java的API

书本在这一章的内容继续延续上一章的程序。我们不去讨论程序的内容,就说说新学到的一个类ArrayList。ArrayList概要public class ArrayList<E> extends AbstractList<E>implements List<E>, RandomAccess, Cloneable, Serializable List 接口的大小可变数组的实现。实

2015-05-04 13:52:14 1801

原创 <Head First Java>学习笔记--第五章:编写程序

这一章作者开始带我们写稍微复杂一点点的程序了。暂不去讨论里面的程序,我们来说说新学到的知识。加强版的for循环和String转化为int 好的,为了测试上面新学到的两个知识,写了如下代码TestForStatement.java:public class TestForStatement{ public static void main(String[] args)

2015-04-29 09:44:19 2449

原创 <Head First Java>学习笔记--第四章:方法操作实例变量 对象的行为

对象有状态和行为 类所描述的是对象知道什么(实例变量/属性)和执行什么(方法)。方法操作实例变量1、方法的参数既然说到参数,那么肯定要涉及到形参和实参。 方法运用形参,调用的一方会传入实参。按照我自己的理解: 形参是一种形式上的参数(变量),并不具体。 实参是指有实实在在的值传给方法。比如事例中的bark()方法:void bark(int numOfBarks){

2015-04-28 19:42:21 1500

原创 C语言移位运算符精度问题

如果有写过单片机或者嵌入式系统的裸机驱动,很多编译器对于除(/)操作需要执行多个指令才能完成。于是为了节省指令,经常把除(/)的操作转换成向右移位来完成。但是,在运用移位运算符的过程中需要考虑到精度的问题,有可能在移位的过程中,损失掉了精度。正是没注意到该问题的存在,导致了在一个项目中一个bug的产生。特此记录。等价左右移位大家都知道左移n位相当于乘以2的n次方,右移m位相当于除以2的m次方。

2015-04-23 22:37:40 3049 1

原创 <Head First Java>学习笔记--第三章:primitive主数据类型和引用

Java变量有两种:primitive主数据类型和引用。 变量就像是杯子,是一种容器,承载某些事物,它有大小与类型。声明变量Java注重类型,只有类型匹配的才能通过编译。像下面的就无法通过编译:// 你不能把一个长颈鹿的类型装进兔子类型的变量中Rabbit hopper = new Giraffe();下面这个才能通过编译:// 类型一定要相互匹配Rabbit rab = new Rab

2015-04-21 19:46:09 2561

原创 <Head First Java>学习笔记--第二章:类与对象

一、椅子大战这一部分形象生动的讲述了面向过程和面向对象的主要区别。1、程序需求(1)、第1次需求如下: (2)、第2次需求新增一个阿米巴形状的旋转和播放声音,并且旋转的中心点与其他形状的不一样。加上播放的声音文件格式也与其他的不一样。(3)、第3次需求也许还会有各种各样不同的需求2、面向过程思路要是我单单看到需求(1),我也会像阿珠那样思维定式(面向过程),首先写两个函数:// shapeNu

2015-04-14 18:58:51 2772

原创 <Head First Java>学习笔记--第一章:基本概念

本文章记录《Head Firs Java》的学习过程中的知识点,并根据自己的理解加以描述,在某些地方会加入相应的代码进行解释。如果有错误的地方,请加以指正。一、Java环境的安装这个不在本书的讲述范围之内,安装教程在这里可以找到。二、Java的工作方式 我们编写的以xxx.java为后缀形式的源文件,经过一个叫做javac的编译器(Java Compiler)编译 $java

2015-04-10 16:21:21 3464 2

原创 基于STM32的无线通信模块使用——HC_05蓝牙串口

注:以下某些资料来自于该模块淘宝店里有介绍,规格书没找到啊。模块介绍PC端配置模块,手机端连接模块STM32串口配置模块串口通信小结一、模块介绍1、供电电压3.3V~3.6V; 2、支持AT指令集配置模块; 3、采用CSR主流蓝牙芯片,蓝牙V2.0协议标准; 4、波特率最高为1382400bps; 5、配对以后当全双工串口使用,无需了解任何蓝牙协议,但仅支持...

2015-03-24 20:26:09 55576 6

原创 基于STM32的无线通信模块使用——A7130

基于STM32的无线通信模块使用—A71302.4G Hz的无线通信芯片A7130。本文简单介绍A7130的使用。A7130简介A7130 SPI接口A7130寄存器配置及初始化A7130数据传输A7130扩展A7130总结A7130简介 A7130 is a high performance and low cost 2.4GHz ISM band wireless transc

2015-03-19 14:28:19 17905

转载 Linux操作系统下源码阅读工具ctags+vim中ctags的安装

本文转载自:http://blog.chinaunix.net/uid-25299072-id-113828.html一,网络安装:b074@gliethttp:~/work/test/at_parsor2$ sudo apt-get install ctags二,源码安装1,安装ctags到http://ctags.sourceforge.net下载源码,解压后$ .

2015-03-09 21:57:03 2064 1

原创 Qt debug模式和release模式的区别

这几天因为一个bug纠结了很久,始终找不到问题所在。今天终于揪出“凶手”了,特此记录“缉凶”过程,当找到这个bug的原因,连我都不敢相信这是个低级错误造成的问题。一、现象1、编写的myapp.exe程序,无论是在debug模式还是在release模式下编译都正常。在debug模式下运行正常,但在release模式下运行,UI启动后Windows就弹出程序错误的警告,之后程序挂掉。2、即

2015-03-09 17:35:48 23448 1

原创 Qt USB通信--生成release版本

前面讲过Qt USB通信采用第三方开源库hidapi,那么当整个UI完成之后,我们就要发布我们的release版本。网上有众多Qt程序发布的资料,可以参考一下。生成.exe文件之后放到其他电脑无法执行。按照网上的资料说把改.exe文件所需要的dll添加到同一目录即可运行。但是这里有个较为特殊的情况,因为hidapi.dll文件有关联到Windows下其他的dll文件并且与microsoft v

2015-02-11 19:52:41 4641 4

转载 C 二维数组动态分配和释放

转载自:http://www.cnblogs.com/huashiyiqike/articles/2887082.htmlC 二维数组动态分配和释放(1)已知第二维Code-1char (*a)[N];//指向数组的指针a = (char (*)[N])malloc(sizeof(char *) * m);printf("%d\n", sizeof(a));//4,指针prin

2015-02-11 10:18:25 1531

原创 Qt USB通信--hidapi的使用

前面提高过Qt USB通信四种方案,这里详细介绍我使用的hidapi第三方库。从官网上下载到最新的压缩包hidapi-0.7.0.zip,解压后查看README.txt,里面介绍了三种Windows、Linux、MacOS三种平台下的编译方式:Download---------It can be downloaded from github git clone git://github.co

2015-02-07 15:42:08 35318 19

原创 QT USB通信--方案选择

在Windows下用Qt写UI程序,该程序与下位机通过USB进行通信。Qt类库没有自带的USB类,所以采用第三方库来进行USB通信。对于第三方库的选择,总共有如下几种:1、如果是在Windows下,那么采用Windows 的API函数去读取USB设备。2、使用开源库libusb

2015-02-06 20:52:41 30938 3

原创 MPlayer音量控制问题

开发板:mini2440操作系统:Linux2.6开发环境:Qt Creator

2014-08-24 21:03:00 5611 1

google-chrome-stable_current_amd64.deb

Ubuntu amd64的google chrome浏览器。

2016-10-16

全志A20平台CTP模块开发说明文档V2.0-20130628.pdf

本文档对CTP硬件以及软件相关的调试与移植过程做详细的讲解,同时对CTP的使用与测试做简要的讲解,为了达到能快速移植驱动与使用CTP的目的。

2016-06-14

A31_Android移植

A31_Android移植,包括: A31_Script_GPIO.pdf A31_Android内容定制说明文档V1.1_20130123.pdf A31s Android4.4快速移植指南(SDKv4.4).pdf

2015-07-28

HC-05 AT指令集

蓝牙串口模块,HC-05 AT指令集文档

2015-03-26

A7130手册及代码生成器

包括A7130 datasheet、配置文件生成器及使用说明

2015-03-19

uboot移植内核学习方法

uboot整个移植过程我们可以分为三个阶段: 一,移植可以从Nor flash启动的uboot 这个阶段是移植一个最简单的uboot,可以烧在Nor flash内运行. 二,移植支持Nand flash驱动的uboot 加入Nand flash驱动的支持,可以在uboot命令行下操作Nand flash.但还未能从Nand flash启动,只能在Nor flash内运行. 三,移植可以从Nor flash启动的uboot 可以烧录在Nand flash,并设置从Nand flash启动运行uboot.

2012-08-21

MTD结构分析

在Linux 系统中, 提供了MTD(Memory Technology Device , 内存技术设备)系统来建立 Flash 针对 Linux 的系统、抽象的接口, MTD 将文件系统 与 底层的Flash 存储器进行了隔离, 使 Flash 驱动工程师 无需关心Flash 作为字符设备和 块 设备与 LInux内核的接口。

2012-08-20

空空如也

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

TA关注的人

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