10 2014 档案
摘要:1.test.c:59:5: warning: incompatible implicit declaration of built-in function ‘memset’ [enabled by default]添加头文件: #include, 解决。2.implicit declaration...
阅读全文
摘要:六、线程的作用域函数pthread_attr_setscope和pthread_attr_getscope分别用来设置和得到线程的作用域,这两个函数的定义如下:7.名称::pthread_attr_setscopepthread_attr_getscope功能:获得/设置线程的作用域头文件:#inc...
阅读全文
摘要:一.线程属性线程具有属性,用pthread_attr_t表示,在对该结构进行处理之前必须进行初始化,在使用后需要对其去除初始化。我们用pthread_attr_init函数对其初始化,用pthread_attr_destroy对其去除初始化。1.名称::pthread_attr_init/pthre...
阅读全文
摘要:6.名称::pthread_detach功能:使线程进入分离状态。头文件:#include 函数原形:int pthread_detach(pthread_t tid);参数:返回值:若成功则返回0,否则返回错误编号。在默认情况下,线程的终止状态会保存到对该线程调用pthread_join,如果线程...
阅读全文
摘要:一.什么是线程在一个程序里的多个执行路线就叫做线程。更准确的定义是:线程是“一个进程内部的一个控制序列”。典型的unix进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情。有了多个控制线程以后,在程序设计时可以把进程设计成在同一时刻能够做不止一件事,每个线程处理各只独立的任务。二.线程的优...
阅读全文
摘要:TI-AM3359 I2C适配器实例分析I2C Spec简述特性:兼容飞利浦I2C 2.1版本规格支持标准模式(100K bits/s)和快速模式(400K bits/s)多路接收、发送模式支持7bit、10bit设备地址模式32字节FIFO缓冲区可编程时钟发生器双DMA通道,一条中断线三个I2C模...
阅读全文
摘要:在(一)中简述了Linux I2C子系统的三个主要成员i2c_adapter、i2c_driver、i2c_client。三者的关系也在上一节进行了描述。应该已经算是对Linux I2C子系统有了初步的了解。下面再对他们之间的关系进行代码层的深入分析,我认为对他们的关系了解的越好,越有助于I2C设备...
阅读全文
摘要:在Linux驱动中I2C系统中主要包含以下几个成员:I2C adapter 即I2C适配器I2C driver 某个I2C设备的设备驱动,可以以driver理解。I2C client 某个I2C设备的设备声明,可以以device理解。I2C adapter是CPU集成或外接的I2C适配器,用来控制...
阅读全文
摘要:Device Tree常用方法解析Device Tree在Linux内核驱动中的使用源于2011年3月17日Linus Torvalds在ARM Linux邮件列表中的一封邮件,他宣称“this whole ARM thing is a f*cking pain in the ass”,并提倡学习P...
阅读全文
摘要:转载:http://blog.csdn.net/21cnbao/article/details/84575461. ARM Device Tree起源Linus Torvalds在2011年3月17日的ARM Linux邮件列表宣称“this whole ARM thing is a f*cking...
阅读全文
摘要:电源管理芯片可以为多设备供电,且这些设备电压电流有所不同。为这些设备提供的稳压器代码模型即为regulator。说白了regulator就是稳压器,它提供电源供给.简单的可以gpio操作,高电平开电,低电平关电.一般的还包括电流值,电压值等.一般regulator有两种不同的电源,即:ldo和sd....
阅读全文
摘要:devicetree中数据和structdevice有什么关系总体来说,devicetree与structdevice的关系应该还是在其生成platformdevice的时候,一直传递的structdevice *parent参数。下面先把其源码中传递过程描述如下(仍以At91rm9200为例):1...
阅读全文
摘要:Linux kernel 是怎么将 devicetree中的内容生成plateform_device1,实现场景(以Versatile Express V2M为例说明其过程)以arch/arm/mach-vexpress/v2m.c 为例,在该文件中的v2m_dt_init函数的作用就是利用 dt(...
阅读全文
摘要:本文以At91rm9200平台为例,从源码实现的角度来分析驱动加载时,Device tree的属性是如何取得的。一:系统级初始化DT_MACHINE_START 主要是定义"struct machine_desc"的类型,放在 section(".arch.info.init"),是初始化数据,Ke...
阅读全文
摘要:一,主要问题:系统在启动的时候,是怎么加载 dts的;Lk,kernel中都应调查。二:参考文字dts加载流程如下图所示:启动过程中,bootloader(默认是bootable/bootloader/lk)会根据机器硬件信息选择合适的devicetree装入内存,把地址等相关信息传给kernel。...
阅读全文
摘要:devicetree的书写规范下面从节点,属性,reg,ranges,中断控制器等几个方面叙述devicetree的书写规范。1,dts的基本元素:节点.dts(或者其include的.dtsi)基本元素为结点和属性。举例说明节点的概念:/ { node1 { a-string-...
阅读全文
摘要:DTS结构及其编译方法一:主要问题1,需要了解dtsi与dts的关系2,dts的结构模型3,dts是如何被编译的,以及编译后会生成一个什么文件.二:参考文字1,DTS(device tree source).dts文件是一种ASCII文本格式的DeviceTree描述。基本上,在ARMLinux内,...
阅读全文
摘要:container_of宏剖析//该宏位于include/linux/kernel.h1.定义格式/** * container_of - cast a member of a structure out to the containing structure * * @ptr: th...
阅读全文
摘要:工作队列和tasklet的区别;中断上下文;工作队列的使用;为什么还需要工作队列?工作队列(work queue)是另外一种将中断的部分工作推后的一种方式,它可以实现一些tasklet不能实现的工作,比如工作队列机制可以睡眠。这种差异的本质原因是,在工作队列机制中,将推后的工作交给一个称之为工作者线...
阅读全文
摘要:所谓原子操作,就是该操作绝不会在执行完毕前被任何其他任务或事件打断,也就说,它的最小的执行单位,不可能有比它更小的执行单位,因此这里的原子实际是使用了物理学里的物质微粒的概念。 原子操作需要硬件的支持,因此是架构相关的,其API和原子类型的定义都定义在内核源码树的include/asm/atomi...
阅读全文
摘要:关于中断的顶半部和底半部我们要把中断处理中需要做的工作区分开来:中断处理程序中,只处理那些有严格时间限制的工作,比如复位硬件,对中断进行应答等。而那些可以拖到后面做的,或者说有可能睡眠的处理,都应当放到下半部去处理这样做的目的很显然,就是让中断处理程序尽可能的简洁明快在适当的时机,下半部会开中断执行...
阅读全文
摘要:Bayer数据,其一般格式为:奇数扫描行输出RGRG……偶数扫描行输出GBGB…… 根据人眼对彩色的响应带宽不高的大面积着色特点,每个像素没有必要同时输出3种颜色。因此,数据采样时,奇数扫描行的第1,2,3,4,…象素分别采样和输出R,G,R,G,…数据;偶数扫描行的第1,2,3,4,…象素分别采...
阅读全文
摘要:上一篇一步一步写一个简单通用的makefile(二)里面的makefile 实现对通用的代码进行编译,这一章我将会对上一次的makefile 进行进一步的优化.优化后的makefile:#Hellomake#Magnum, 2014-10-20# 指令编译器和选项CC=gccCFLAGS=-Wall...
阅读全文
摘要:Makefile 中:= ?= += =的区别转载自:http://www.cnblogs.com/wanqieddy/archive/2011/09/21/2184257.html在Makefile中我们经常看到 = := ?= +=这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验新建...
阅读全文
摘要:这一篇源代码沿用上一篇的源代码hellomake.c hellofunc.c hellofunc.h makefile但是代码内容和结构有变化,如下:.├── include│ └── hellofunc.h├── makefile└── src ├── hellofunc.c └── ...
阅读全文
摘要:通常要把我们自己的的代码编译成在android里面编译的可执行文件,我们通常是建一个文件夹.├── Android.mk├── Application.mk├── convolve.cl├── convolve_cl.cpp├── convolve_cl.cpp~├── inter_ocl│ └──...
阅读全文
摘要:经常会用写一些小的程序有的是作为测试,但是每次都需要写一些简单的GCC 命令,有的时候移植一些项目中的部分代码到小程序里面进行测试,这个时候GCC 命令并不好些,如果写啦一个比较常用的makefile的模板,然后把文件添加进来,简单的修改一下makefile即可以完成测试任务何乐而不为。源代码有三个...
阅读全文
摘要:我们用gcc编译程序时,可能会用到“-I”(大写i),“-L”(大写l),“-l”(小写l)等参数,下面做个记录:例:gcc -o hello hello.c -I /home/hello/include -L /home/hello/lib -lworld上面这句表示在编译hello.c时:-I ...
阅读全文
摘要:掌握下面的对GCC会有一个比较清晰的大致的了解:不经意间,GCC已发展到了4.3的版本,尽管在软件开发社区之外乏人闻问,但因为GCC在几乎所有开源软件和自由软件中都会用到,因此它的编译性能的涨落会直接影响到Linux 、Firefox 乃至于OpenOffice.org和Apache等几千个项目的开...
阅读全文
摘要:转载自:http://www.cnblogs.com/mikewolf2002/archive/2011/12/18/2291584.html当我们用clCreateBuffer, clCreateImage创建OpenCL memory object时候,我们需要输入一个flag参数,这个参数决定...
阅读全文
摘要:本文转载自:http://www.cnblogs.com/mikewolf2002/archive/2011/12/17/2291239.html这篇日志是学习AMD OpenCL文档时候的总结。 OpenCL用memory object在host和device之间传输数据,memory objec...
阅读全文
摘要:转载自:http://www.cnblogs.com/mikewolf2002/archive/2011/12/18/2291741.html首先我们了解一些优化时候的术语及其定义:1、deferred allocation(延迟分配),在第一次使用memory object传输数据时,runtim...
阅读全文
摘要:在Android平台下做开发,adb总是需要使用到的,同时,因为linux没有windows这样操作傻瓜化,有些东西还是需要自行设置的,否则将会连接不上。 关于这些内容,google也有一定的描述,可以参考http://developer.android.com/tools/device.html ...
阅读全文