自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 资源 (1)
  • 收藏
  • 关注

转载 Linux内核基础--事件通知链(notifier chain)

原文

2014-06-10 11:52:14 541

转载 Linux内核同步机制之completion

原文地址点击打开链接在Linux内核中,completion是一种简单的同步机制,标志"things may proceed"。要使用completion,必须在文件中包含,同时创建一个类型为struct completion的变量。[cpp] view plaincopy这个变量可以静态地声明和初始化:  DECLARE

2014-06-10 11:47:10 597

转载 Android签名

文件位置:可以在platform/build/target/product/security/中找到platform.pk8 platform.x509.pem等签名文件,对应不同的权限。signapk.jar:由/platform/build/tools/signapk/编译产出,可以在/out/host/linux-x86/framework/中找到。签名:java -jar

2014-04-04 17:20:10 484

转载 system/build.prop

大家如果想改的话可以直接用RE管理器修改sysytem-build.prop,长按build.prop使用文本编辑器打开来修改  ro.build.version.release=4.04 android版本修改4.04改为4.12 想改为5.0,6.0都可以  ro.build.date=三 12月 15 20:41:26 CST 2012 时区时间CST可以代表4个时区,这个百

2014-04-03 17:49:59 1117

转载 history

History命令主要用于显示历史指令记录内容, 下达历史纪录中的指令 。1>History命令语法: [test@linux]# history [n][test@linux]# history [-c][test@linux]# history [-raw] histfiles参数:n   :数字,要列出最近的 n 笔命令列表-c  :将目前的shell中的所有 h

2014-02-24 17:35:43 481

原创 real6410调试串口作为普通串口使用

#include #include #include #include #include #include #include #include int main(void){ int fp,err; unsigned char buff[20]; unsigned char send_buff[20]; struct termios options; printf("

2014-02-14 14:42:51 1023

转载 使用ts_calibrate校准触摸屏

原文地址:点击打开链接使用ts_lib包自带的ts_calibrate校准触摸屏非常简单实用,但在基于Xsever的GUI应用环境下,有两个问题存在:  1.校准后必须重新启动X,应用端才能生效。这样处理用户肯定不能接受,因为启动一次机器毕竟耗时。  2.在使用ts_calibrate校准触摸屏时,要触摸5个点,这时如果GUI应用端在运行其他响应触摸事件(鼠标事件)的程序就会出现错乱。

2014-01-02 10:45:20 5845

转载 C++在多重继承下的指针类型强制类型转换的一些问题

原文地址:http://www.cnblogs.com/fangyukuan/archive/2010/05/30/1747516.html在C/c++中,类型之间的转换是经常被遇到的,在C++中,经常会遇到指针的类型转换,比如将派生类指针转换为基类指针,将基类指针转换为派生类指针。指针的本质其实就是一个数字,用以记录进程虚拟内存空间中的地址编号,而指针的类型决定了编译器对其指向的内存空间

2013-11-20 11:56:31 1622

原创 linux开发板截图程序

今天因为工作需要,要截取开发板屏幕上面的图片,在网上找了几个可能是由于个人操作原因,都失败了,没办法自己想想吧,其实很简单,就是让屏幕显示的逆操作!/* * CAMIF test * * [email protected] * * $Id: cam2fb.c,v 1.1.1.1 2004/01/20 10:29:10 laputa Exp $ * */#include #inc

2013-11-09 11:51:17 1743 2

原创 数组和指针的区别

发现好多人搞不清楚数组和指针的区别,以我浅薄的了解谈一谈吧。

2013-10-23 13:24:28 2082 1

原创 谈谈C++中的const

const修饰变量还是先从C谈起吧,在学习C语言的时候就知道const修饰的是常量,其值是不可改变的,真的是这样吗?int main(){ const int a = 1; int *b = (int *)&a; *b = 2; printf("a = %d\n",a); return 0;}结果是2,但是a = 2则会报错,表明在C中const修饰

2013-10-11 17:53:45 808

原创 V4L2编程实例

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define REQ_BUF_NUM 4 //申请的缓冲区个数,最多5个,缓冲区太少可能会导致图像有间断unsi

2013-08-27 16:22:30 1391

原创 Ubuntu下eclipse安装

安装好eclipse后启动,按照提示得出如下信息SESSION 2013-08-27 13:27:15.659 -----------------------------------------------eclipse.buildId=I20110613-1736java.version=1.7.0_25java.vendor=Oracle CorporationBootLoader

2013-08-27 13:42:51 754

原创 利用uboot传递参数进行内核的不同配置

如果一个硬件有不同的驱动支持,那么每次还得重新编译内核才能重新加载驱动吗?内核提供了一种很方便的机制,可以让我们通过uboot的命令参数来传递,调用不同的内核驱动。   __setup("xxx=", xxx_setup);以内核下的文件Fbmem.c为例!/** * fb_get_options - get kernel boot parameters * @name: fram

2013-08-23 17:16:41 792

原创 安装QT集成开发环境

上一篇文章已讲到了QT在三种不同硬件平台上的安装,为了更方便的使用,这里我们安装QT的集成开发环境!@    准备QT的集成开发环境qt-creator-linux-x86-opensource-1.3.1.bin  进入该文件所在目录./ qt-creator-linux-x86-opensource-1.3.1.bin开始安装,安装过程中一直点next,安装结束点击finish。桌

2013-08-22 10:15:39 720

原创 Redhat6.0,ubuntu下安装QT及qvfb

最近几天安装QT出现了一系列的问题,最终依靠强大的网络得以解决,有需要的可以参考!  QT为适应不同的平台开发了众多的安装包,ftp://ftp.qt.nokia.com/qt/source/我们选取qt-everywhere-opensource-src-4.7.3.tar.gz,该包可支持不同的硬件平台,只需在配置时添加不同的命令参数即可!   为了适应嵌入式的开发我们需要安装三个包,

2013-08-22 09:57:52 1559

原创 S3C6410端口配置S3C64XX_GPL_OUTPUT(x)

以前没怎么注意,今天测试个驱动发现s3c_gpio_cfgpin(S3C64XX_GPL(13), S3C64XX_GPL_OUTPUT(13));没用,怎么回事啊,查源码#define S3C64XX_GPL_OUTPUT(__gpio) (0x1 怎么感觉怪怪的啊,GPL端口的配置是占四位的啊,别人占两位*2说的通他应该不行吧,于是#define S3C64XX_GPL

2013-08-19 19:41:51 852

原创 编译QTmake:arm-linux-g++:Command not found

编译QT时按开发板的说明手册执行老是出现make:arm-linux-g++:Command not found,可是我明明是安了的单独执行tab 键arm-linux-g+会出现arm-linux-g++,到底是什么问题呢?可能是识别不了环境变量吧。于是编辑/usr/local/Trolltech/QtEmbedded-4.7.3-arm/mkspecs/qws/linux-arm-g++/qm

2013-08-18 17:54:49 3524

转载 编译的时候提示缺少头文件 mmzone.h ....bounds.h

前两天新到手一个6410的板子,按照说明在上面跑了一下android和QT,都成了。今天想试试helloworld模块的装载发现了一些需要注意的问题。 出现的问题:编译的时候提示缺少头文件 mmzone.h ....bounds.h...等 include/linux/mmzone.h:18:26: error: linux/bounds.h: No such fi

2013-07-27 20:33:36 1369

原创 stardup

strdup(复制字符串)相关函数 calloc,malloc,realloc,free表头文件 #include定义函数 char * strdup( const char *s);函数说明 strdup()会先用maolloc()配置与参数s字符串相同的空间大小,然后将参数s字符串的内容复制到该内存地址,然后把该地址返回。该地址最后可以利用free()来释放。返回值 返回一

2013-05-24 16:29:55 607

原创 linux内核返回错误参数

一直都想找一份linux内核返回错误参数的文档,但是太笨了,都没想起来去内核代码中看看,丢人啊!#ifndef _ASM_GENERIC_ERRNO_BASE_H#define _ASM_GENERIC_ERRNO_BASE_H#define EPERM 1 /* Operation not permitted */#define ENOENT 2 /* No such file

2013-05-11 10:11:55 818

转载 __builtin_constant_p()

Gcc的内建函数 __builtin_constant_p 用于判断一个值是否为编译时常数,如果参数EXP 的值是常数,函数返回 1,否则返回 0。例如:++++ include/asm-i386/bitops.h249: #define test_bit(nr,addr) /250: (__builtin_constant_p(nr) ? /251: consta

2013-05-03 11:06:35 608

原创 网络设备模板

网络设备与媒介层/* 寄存器定义 */#define DATA_REG 0x0004#define CMD_REG 0x0008 /* 寄存器读写函数*/static u16 xxx_readword(u32 base_addr,int portno){ /* 读寄存器的值并返回 */}static void xxx_writeword(u32 base_addr

2013-05-02 23:32:24 760

原创 设备驱动的ioctl函数

驱动程序中除了需要具备读写的能力外,还需具备对硬件的控制能力。在用户空间使用ioctl来控制设备,其原型如下int ioctl(int fd,usnigned long cmd...)ioctl 驱动实现方法int (*ioctl)(struct inode *inode,struct file *filp,unsigned int cmd,unsigned long arg);

2013-04-26 15:38:57 1165

原创 linux字符设备注册

头文件:#include #include #include #include #include #include #include #include #include #include #include #include 相关内容2.6内核中使用cdev结构描述一个字符设备。struct cdev { struct kobject kobj

2013-04-26 11:33:39 646

原创 typedef的使用

一般书籍上关于type得分的描述,都不怎么全面,仅知道typedef是为变量命名别名。于是,下面的一些命名也是便于理解的。typedef int my_int;my_int iint; // 定义一个int型变量typedef char* c_point;c_point my_point; //定义一个char*指针但是遇到类似于typedef char *p 貌

2013-04-19 12:38:24 655

原创 linux内核定时器

linux/timer.h头文件中定义了timer_list来描述一个内核定时器struct timer_list { /* * All fields that change during normal runtime grouped to the * same cacheline */ struct list_head entry;//双向链表元素,用于将多个定时器连接成一条双向

2013-03-31 09:35:12 823

转载 C语言中的typeof关键字

原文地址http://bbs.chinaunix.net/thread-3595195-1-1.html另一种引用一个表达式类型的方法就是使用typeof,使用这个关键字的语法看上去有点像使用sizeof,但从本质上讲,它更像是使用typedef定义一个类型名称。可以使用表达式或是一个类型名来引用类型。比如下面是一个使用表达式的例子:typeof (x[0](1

2013-03-30 21:18:11 3120

原创 linux内核链表操作

与linux链表有关的操作定义在linux/list.h链表头:struct list_head { struct list_head *next, *prev;};该结构体为链接结构中的成员,这样将链表的指针域与链表的数据域分开链表头的初始化1.#define LIST_HEAD_INIT(name) { &(name), &(name) }#define LIST_HE

2013-03-30 20:52:36 592

原创 linux内核内存分配

1 kmalloc和 vmalloc  都是以字节为单位分配内存  kmalloc分配的内存都是位于3GB~high memory之间,这段内核空间与物理内存一一映射,即差为一固定值,vmalloc  分配的内存空间在VMALLOC_START~4GB之间,虚拟地址上连续物理地址上不一定连续.  一般情况下,只有硬件设备才需要物理地址连续的内存,因为硬件设备往往存在于MMU之外,不

2013-03-30 18:02:16 998

原创 野指针

以前不小心,用到野指针也只不过会让程序贲快,或者别的什么的,今天真不容易呀,尽然有了野指针prinft(const char ,[arg])的功能都失常了,该函数尽然不接受参数为变量了!找了n久才发现竟然是他的问题,简直可恶!

2013-03-24 17:53:50 501

原创 几个越界的问题

#include #include int main(){ char a[1000]; int i; for(i=0; i<1000; i++) { a[i] = -1-i; } printf("%d",strlen(a)); return 0;}  上述结果255,在计算机种采用补码的方式存储负数,补码即为原码取反加1,故-1的补码为0xff,同时可以得到一结

2013-03-17 21:57:32 870

转载 mkinitrd 与 mkinitramfs

在进行内核编译时,需要进行制作initrd.img.在Fedora下面一般是用mkinitrd,而在Ubuntu/Debian下是用mkintramfs.它们的用法稍微有些不一样,如下所示:mkinitrd /boot/initrd.img 2.6.26mkintramfs 2.6.26 -o /boot/initrd.img

2013-03-14 10:41:31 1460

原创 ubuntu设置为静态ip无法上网

为与开发板连接的便利,将ubuntu的ip设置为静态,主要是DNS设置的问题,解决办法有一下两个:1sudo vim /etc/network/interfaces  配置静态ipauto eth0iface eth0 inet static address 192.168.1.155 netmask 255.255.255.0 gateway 192.168

2013-03-14 09:10:06 1108

转载 Linux下 tar.xz格式文件的解压方法

原文地址http://blog.csdn.net/silvervi/article/details/6325698在很多找到的软件都是tar.xz的格式的,xz 是一个使用 LZMA压缩算法的无损数据压缩文件格式。 和gzip与bzip2一样,同样支持多文件压缩,但是约定不能将多于一个的目标文件压缩进同一个档案文件。 相反,xz通常作为一种归档文件自身的压缩格式,例如使用tar或cpi

2013-03-14 08:11:07 865

转载 如何 make menuconfig 和 make xconfig

在ubuntu系统中,要编译内核,还需要安装一系列相应的工具才行。这篇文章,正是针对这一过程的一次记录,目标是可以通过 make menuconfig 或 make xconfig 配置内核参数--------------------------------------------------------------参考apt用法参考 《 UbuntuHelp:AptGet/How

2013-03-13 22:37:55 1309

原创 C语言中的布尔值

C89中没有定义布尔类型,只能int flag = 0;flag = 1;然而flag可能被赋予别的值,或者#define TRUE 1#define FALSE 0flag = TRUE ;...flag = FALSE;在C99中定义了Bool型,故这一版本中,布尔变量可以申名为:_Bool flag;_Bool是整数类型,更准确的说是无符号整型,但是和一般整形不同,只能被赋值

2013-03-13 07:47:54 1748

原创 V + = e不等价于 v = v + e

计算v + = e只会求一次v的值,而计算 v = v + e则会求两次v的值。在后一种情况下,对v的求职可能的副作用会出现两次。在下面的例子中,i值自增一次。a[i++] += 2;a[i++] = a[i++] +2i的值在别处被修改和使用了,因此上述语句的结果是未定义的。i的值可能被修改两次,但我们无法确定结果会发生神马!

2013-03-12 21:59:25 956

原创 函数

一程序中的顺序点顺序点:执行过程中修改变量值的最晚时刻,在程序达到顺序点的时候,之前所做的一切操作必须反映到后续的访问中。每个完整表达式结束时 &&, ||, ?:, 以及逗号表达式的每个运算对象计算之后 函数调用中对所有实际参数的求值完成之后(进入函数体之前)#include int main(){ int k = 2; int a =

2013-03-12 15:57:19 455

原创 内存管理

一动态内存分配包含在malloc所分配的是一块连续的内存,以字节为单位,并且不带任何的类型信息 free用于将动态内存归还系统void* malloc(size_t size);void free(void* pointer);参数为0时,没有任何作用。虽然malloc申请到的内存可能比实际的大,然而是不定的不能利用编译器的这一行为。如果分配时找不到足够大的内存块会返

2013-03-12 15:37:54 507

1602+1302+18b20万年历

模块化编程,可显示负温度,大量运用指针运算

2012-04-24

空空如也

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

TA关注的人

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