- 博客(66)
- 资源 (1)
- 收藏
- 关注
转载 Linux内核同步机制之completion
原文地址点击打开链接在Linux内核中,completion是一种简单的同步机制,标志"things may proceed"。要使用completion,必须在文件中包含,同时创建一个类型为struct completion的变量。[cpp] view plaincopy这个变量可以静态地声明和初始化: DECLARE
2014-06-10 11:47:10
642
转载 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
531
转载 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
1158
转载 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
511
原创 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
1062
转载 使用ts_calibrate校准触摸屏
原文地址:点击打开链接使用ts_lib包自带的ts_calibrate校准触摸屏非常简单实用,但在基于Xsever的GUI应用环境下,有两个问题存在: 1.校准后必须重新启动X,应用端才能生效。这样处理用户肯定不能接受,因为启动一次机器毕竟耗时。 2.在使用ts_calibrate校准触摸屏时,要触摸5个点,这时如果GUI应用端在运行其他响应触摸事件(鼠标事件)的程序就会出现错乱。
2014-01-02 10:45:20
5989
转载 C++在多重继承下的指针类型强制类型转换的一些问题
原文地址:http://www.cnblogs.com/fangyukuan/archive/2010/05/30/1747516.html在C/c++中,类型之间的转换是经常被遇到的,在C++中,经常会遇到指针的类型转换,比如将派生类指针转换为基类指针,将基类指针转换为派生类指针。指针的本质其实就是一个数字,用以记录进程虚拟内存空间中的地址编号,而指针的类型决定了编译器对其指向的内存空间
2013-11-20 11:56:31
1695
原创 linux开发板截图程序
今天因为工作需要,要截取开发板屏幕上面的图片,在网上找了几个可能是由于个人操作原因,都失败了,没办法自己想想吧,其实很简单,就是让屏幕显示的逆操作!/* * CAMIF test * * bushi@mizi.com * * $Id: cam2fb.c,v 1.1.1.1 2004/01/20 10:29:10 laputa Exp $ * */#include #inc
2013-11-09 11:51:17
1863
原创 谈谈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
843
原创 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
1450
原创 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
787
原创 利用uboot传递参数进行内核的不同配置
如果一个硬件有不同的驱动支持,那么每次还得重新编译内核才能重新加载驱动吗?内核提供了一种很方便的机制,可以让我们通过uboot的命令参数来传递,调用不同的内核驱动。 __setup("xxx=", xxx_setup);以内核下的文件Fbmem.c为例!/** * fb_get_options - get kernel boot parameters * @name: fram
2013-08-23 17:16:41
843
原创 安装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
762
原创 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
1631
原创 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
887
原创 编译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
3608
转载 编译的时候提示缺少头文件 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
1469
原创 stardup
strdup(复制字符串)相关函数 calloc,malloc,realloc,free表头文件 #include定义函数 char * strdup( const char *s);函数说明 strdup()会先用maolloc()配置与参数s字符串相同的空间大小,然后将参数s字符串的内容复制到该内存地址,然后把该地址返回。该地址最后可以利用free()来释放。返回值 返回一
2013-05-24 16:29:55
637
原创 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
914
1
转载 __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
646
原创 网络设备模板
网络设备与媒介层/* 寄存器定义 */#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
802
原创 设备驱动的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
1240
原创 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
696
原创 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
710
原创 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
848
转载 C语言中的typeof关键字
原文地址http://bbs.chinaunix.net/thread-3595195-1-1.html另一种引用一个表达式类型的方法就是使用typeof,使用这个关键字的语法看上去有点像使用sizeof,但从本质上讲,它更像是使用typedef定义一个类型名称。可以使用表达式或是一个类型名来引用类型。比如下面是一个使用表达式的例子:typeof (x[0](1
2013-03-30 21:18:11
3251
原创 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
631
原创 linux内核内存分配
1 kmalloc和 vmalloc 都是以字节为单位分配内存 kmalloc分配的内存都是位于3GB~high memory之间,这段内核空间与物理内存一一映射,即差为一固定值,vmalloc 分配的内存空间在VMALLOC_START~4GB之间,虚拟地址上连续物理地址上不一定连续. 一般情况下,只有硬件设备才需要物理地址连续的内存,因为硬件设备往往存在于MMU之外,不
2013-03-30 18:02:16
1089
原创 野指针
以前不小心,用到野指针也只不过会让程序贲快,或者别的什么的,今天真不容易呀,尽然有了野指针prinft(const char ,[arg])的功能都失常了,该函数尽然不接受参数为变量了!找了n久才发现竟然是他的问题,简直可恶!
2013-03-24 17:53:50
544
原创 几个越界的问题
#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
964
转载 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
1542
原创 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
1194
转载 Linux下 tar.xz格式文件的解压方法
原文地址http://blog.youkuaiyun.com/silvervi/article/details/6325698在很多找到的软件都是tar.xz的格式的,xz 是一个使用 LZMA压缩算法的无损数据压缩文件格式。 和gzip与bzip2一样,同样支持多文件压缩,但是约定不能将多于一个的目标文件压缩进同一个档案文件。 相反,xz通常作为一种归档文件自身的压缩格式,例如使用tar或cpi
2013-03-14 08:11:07
1005
转载 如何 make menuconfig 和 make xconfig
在ubuntu系统中,要编译内核,还需要安装一系列相应的工具才行。这篇文章,正是针对这一过程的一次记录,目标是可以通过 make menuconfig 或 make xconfig 配置内核参数--------------------------------------------------------------参考apt用法参考 《 UbuntuHelp:AptGet/How
2013-03-13 22:37:55
1373
原创 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
1834
原创 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
999
原创 函数
一程序中的顺序点顺序点:执行过程中修改变量值的最晚时刻,在程序达到顺序点的时候,之前所做的一切操作必须反映到后续的访问中。每个完整表达式结束时 &&, ||, ?:, 以及逗号表达式的每个运算对象计算之后 函数调用中对所有实际参数的求值完成之后(进入函数体之前)#include int main(){ int k = 2; int a =
2013-03-12 15:57:19
482
原创 内存管理
一动态内存分配包含在malloc所分配的是一块连续的内存,以字节为单位,并且不带任何的类型信息 free用于将动态内存归还系统void* malloc(size_t size);void free(void* pointer);参数为0时,没有任何作用。虽然malloc申请到的内存可能比实际的大,然而是不定的不能利用编译器的这一行为。如果分配时找不到足够大的内存块会返
2013-03-12 15:37:54
538
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人