- 博客(11)
- 收藏
- 关注
原创 Linux内核中如何增加自己的驱动
Linux内核中如何增加自己的驱动代码?本文给出了详细的步骤。其实本质上就是修改kconfig和makefile两个文件。先熟悉下kconfig的语法1.menumenuname 2.configuremyconfigurename 3.boolconfigurenametoshow 4.dependsonanotherconfigurename 5.default
2013-06-24 16:38:34 458
原创 增加hal加载路径
在源码\hardware\libhardware\hardware.c下#define HAL_LIBRARY_PATH1 "/system/lib/hw" 系统默认的#define HAL_LIBRARY_PATH2 "/vendor/lib/hw" 系统默认的#define HAL_LIBRARY_PATH3 "/flysystem/lib/hw" 用户自行添加的路
2013-06-24 16:30:23 408
转载 一个Linux下C线程池的实现
什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了。如果线程创建和销毁时间相比任务执行时间可以忽略不计,则没有必要使用线程池了。 下面是Linux系统下用C语言创建的一个线程池。线程池会维护一个任务链表(每个CThread_worker结构就是一个任务)。 p
2013-05-15 15:04:56 409
转载 信号量,互斥锁,条件变量的区别
信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在semtake的时候,就阻塞在哪里)。而互斥锁是用在多线程多任务互斥的,一个线程占用了某一个资源,那么别的线程就无法访问,直到这个线程unlock,其他的线程才开始可以利用这个资源。比如对全局变量的访问,有时要加锁,操作完了,在解锁。有的时候锁和信号量会同时使用的”也就是说,信号量不
2013-05-09 09:50:52 481
转载 C++ static 用法
1、什么是static? static 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。 2、为什么要引入static? 函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数中此变量的值保存至下一次调用时,如何实现? 最容易想
2013-04-26 10:19:59 297
转载 linux 不同进程间和线程间的同步
为允许在线程或进程间共享数据,同步通常是必须的。常见的同步方式有:互斥锁、条件变量、读写锁、信号量。另外,对于进程间的同步,也可以通过进程间通信的方式进行同步,包括管道(无名管道、有名管道)、信号量、消息队列、共享内存、远程过程调用,当然也可以通过Socket来进行网络控制。一. 互斥锁和条件变量是同步的基本组成部分 互斥锁和条件变量出自Posix.1线程标准,多用来同步一个进
2013-04-18 10:29:59 622
转载 linux 系统源码导读
像Linux内核这样庞大而复杂的程序看起来确实让人望而生畏,它象一个很大的球,没有起点和终点。在读源代码的过程中,你会遇到这样的情况,当读到内核的某一部分时又会涉及到其它更多的文件,当返回到原来的地方想继续往下读时,又忘了原来读的内容。在internet上,很多人为此付出了很大的努力,制作出了源代码导航器,这为源代码阅读提供了良好的条件,站点为:http://lxr.linux.no/source
2013-02-23 16:07:03 423
转载 线程同步mute
#include#include#includeint i=0;/*鍏变韩鍙橀噺*/pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER;/*浜掓枼閿?/void thread1(){ int ret; while(1) { ret=pthread_mutex_trylock(&mutex);/*鍒ゆ
2012-12-27 16:34:06 394
原创 模拟一个按键值 给系统处理
#include #include #include #include #include #include #include #include #include #define SIGUER 980 int fd;void my_signal_fun(int signum){ printf("my_signal_fun:signum=%d\
2012-12-27 16:25:51 244
转载 进程间通信--共享内存
sem.h#ifndef _SHM_COM_H#define _SHM_COM_H 1#define TEXT_SZ 2048struct shared_use_st{ int written_by_you; //char some_text[TEXT_SZ]; int a;};#endifsem1,c#include #i
2012-12-27 16:16:55 248
原创 sscanf的用法
sscanf的用法,我们首先要知道此接口的实现。 sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。格式转换形式请参考scanf()。转换后的结果存于对应的参数内。返回值 成功则返回参数数目,失败则返回-1,错误原因存于errno中。 返回0表示失败 否则,表示正确格式化数据的个数 例如:sscanf(str,"%d%d%s", &i,&i2,
2012-12-27 16:07:00 658
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人