c语言
文章平均质量分 81
JansonZhe
这个作者很懒,什么都没留下…
展开
-
基于V4L2驱动程序的USB摄像头Android(JNI)的编写(三)
在上两篇文章基于V4L2驱动程序的USB摄像头Android(JNI)的编写(一)和基于V4L2驱动程序的USB摄像头Android(JNI)的编写(二)中,我详细介绍了如何配置V4L2的环境、设置捕获视频数据的格式,以及视频流数据捕获的过程。但是由于我们捕获到的视频数据是YUYV422格式的,那么在这一篇文章中,我将主要介绍如何将YUYV422格式的数据转换成ARGB格式的数据,同时将ARGB格原创 2015-08-11 10:27:44 · 3499 阅读 · 1 评论 -
Linux内核:进程基础之进程ID与管理
Linux系统中的每一个进程都有一个唯一的标示——PID(Process ID),也叫进程ID。给每一进程设置一个标示的主要作用便是方便Linux系统管理数量庞大的进程,例如进程间的通信、判断子父进程、通过进程ID找到进程的task_struct等等,都需要使用到我们的进程ID。我们已经知道每一个进程都会有一个唯一的task_struct结构体来关联该进程相关的数据和结构体。Linux 内核所原创 2015-08-20 16:10:27 · 3101 阅读 · 2 评论 -
Linux内核:中断、软中断、tasklet
在之前我所写的Linux驱动程序中,会经常使用到中断机制,像CC1100高频驱动、倒车雷达驱动等等。但所用到的中断机制都基本上是用到中断的顶半部,即:编写中断处理函数,通过request_irq函数申请中断,这样当中断来临的时候,就会自动执行中断处理程序里面的内容。之所以没有使用到中断的底半部,是因为我们这些驱动程序中,中断处理函数一般都能被很快执行完,同时也不会存在有任何休眠的动作,因此使用中断原创 2015-09-28 16:21:24 · 3054 阅读 · 0 评论 -
编写JNI的两种应用层与JNI层方法映射方式
通常我们在编写的JNI 时,在定义上层应用层需要调用的函数中,我们需要对该函数进行应用层与JNI层方法之间的映射。这样上层的Android应用程序才能正确的调用我们的JNI函数,这种映射的方式一共有两种。在函数名中进行映射 在函数名中进行映射是最为简单的一种方法,因为只要我们知道调用我们JNI函数的Java文件所在的路径,那么我们就将该路径放在我们JNI对应函数的前面就可以了,同时还要在函数前面加原创 2015-09-22 11:11:04 · 2694 阅读 · 0 评论 -
Linux内核:工作队列
在我的上一篇文章Linux内核:中断、软中断、tasklet中,我们已经了解了中断底半部的两种实现方式,即软中断和tasklet微线程。但是这两种方式归根结底都是采用软中断机制的,其根本上还是在中断的上下文中执行,所以这也就要求了采用这两种方式编写中断底半部,不能出现一些可能导致程序休眠或者是延迟的函数(虽然当发生中断嵌套时会生成Ksoftirq线程,但这个是不确定的,所以我们在编写程序时,还是不原创 2015-10-02 10:26:21 · 5304 阅读 · 0 评论 -
C语言:数组指针、指针数组、指针的指针、函数指针
说到C语言的指针,可能大家都比较熟悉,基本上的都知道,指针就是存放地址的,无论是普通变量的地址,还是函数的地址都可以用指针表示。如果该指针用一个变量表示,那么这就是一个指针变量。所为指针变量就是这个指针所存放的地址是可以发生变化的,例如int i = 6;int j = 7;int *p;p = &i;p = &j;由上面的代码可以看出,首先int类型的指针p是指向变量i的地址的,但原创 2015-08-09 09:41:14 · 905 阅读 · 0 评论