
Linux 驱动
文章平均质量分 73
Joymine
Come on!
展开
-
配置学习总结高通平台GPIO
前言:近期在BSP的工作学习中,Group Leader 给安排了一项任务,就是分别在Android项目代码里面的SBL1,LK,以及各自负责的驱动模块代码(我是Audio驱动)中间配置GPIO ,使用循环语句,控制GPIO的输出电压,从而通过示波器得到相应的电压变化方波。因为之前对这方面没有接触过,所以在一边查询资料,一边在前辈的指导下尝试,完成了任务的一大半,下面将是我这一周对于在高通平台原创 2015-09-01 18:59:39 · 12207 阅读 · 2 评论 -
【Linux进程通信】管道,FIFO
简介进程通信最基本的一种通信机制,是进程之间一个单向数据流:一个进程写入管道的所有数据都由内核定向流入到另外一个进程。(如果多进程使用管道通信,则需要通过锁来控制)。管道的特点:基于一组VFS对象,因而没有对应的磁盘映像(匿名管道对用户不可见,但是FIFO是以终端用户认可的文件存在的)POSIX只定义半双工管道,因而简历通信管道时,每个管道的文件描述符是单向的。所以pipe系统调用需要返回两个描原创 2017-10-20 10:52:15 · 1929 阅读 · 0 评论 -
【linux进程通信】信号的使用
关于信号:信号的作用: 1,通知进程一些特定的事件 2,强迫进程执行他自己代码中间的对信号的处理程序进程以三种方式对一个信号作出应答: 1,显示忽略 2,执行信号相关的缺省操作terminate 终止Dump 终止并且保存信息用于调试Ignore 忽略Stop 停止,进程状态为 TASK_STOPPEDContinue 如果进程停止,就将状态置为 TASK_RUNNING3,原创 2017-10-19 17:11:50 · 1889 阅读 · 0 评论 -
【Android】从libavenhancements.so的调用分析高通封装
**c++ 泛型****函数指针**形式1:返回类型(*函数名)(参数表) 形式2:typedef 返回类型(*新类型)(参数表)**static_cast、dynamic_cast、const_cast和reinterpret_cast****dlsym 、dlopen,dlclose**原创 2017-08-18 17:09:30 · 3221 阅读 · 1 评论 -
【C/C++】消费-生产者模型
关于PV,信号量,同步,互斥的说明互斥: 是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。同步: 是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问,更强调进程间的协作,如同生产者消费者问题。PV原语 PV操作是典型的同步机制之一。用一个信号量与一个消 息联系起来,当信 号量的值为0时,表示期 望的消原创 2017-07-17 13:50:21 · 665 阅读 · 0 评论 -
【Linux API】Sysfs & sysfs_notify文件系统
Sysfs是表现设备驱动模型的文件系统,涉及的结构体。原创 2017-07-13 12:05:11 · 5847 阅读 · 0 评论 -
[Linux API]linux 工作队列workqueue
1,功能描述:Linux中的Workqueue机制就是为了简化内核线程的创建。通过调用workqueue的接口就能创建内核线程。并且可以根据当前系统CPU的个 数创建线程的数量,使得线程处理的事务能够并行化。workqueue是内核中实现简单而有效的机制,他显然简化了内核daemon的创建,方便了用户的 编程。工作队列(workqueue)是另外一种将工作推后执行的形式.工作队列可以把工作推后,交由原创 2017-07-13 11:26:49 · 2450 阅读 · 0 评论 -
【Linux API】kthread的使用
一,内核实例分析先来分析一下一个实例,这个例子主要是创建一个内核线程,用来打印GPIO信息,当线程没有收到停止的指令时,一直打印。int config_gpio_thread(void *tmp_gpio_num) //回调函数,返回值必须是int ,且参数必须是void *{ int gpio_num = *((int *)tmp_gpio_num);//类型强转,由void*原创 2017-07-13 10:57:50 · 2434 阅读 · 1 评论 -
【Linxux API】计时器add_event_timer & hrtimer
简介Hrtimer,一种高精度时间计时器,主要实现技术:红黑树;其实现依赖于timekeeper(时间维护者)和clock_event_device(定时器引擎);hrtimer系统需要通过timekeeper获取当前的时间,计算与到期时间的差值,并根据该差值,设定该cpu的tick_device(clock_event_device)的下一次的到期时间,时间一到,在clock_event_devi原创 2017-07-13 10:42:53 · 990 阅读 · 0 评论 -
Android——hal库加载操作流程
系统是如何区分平台,加载操作指定平台的相应的HAL库文件的?以加载audio.primary.msm8909.so为例: 高通平台,audio primary库文件是有两个的,但是具体加载哪一个呢? audio.primary.default.so audio.primary.msm8909.soAudioFlinger开始的调用流程:audio_module_handle_t Au原创 2017-07-10 17:43:18 · 2089 阅读 · 0 评论 -
【Android】关于selinux等引起的权限问题
本文章会持续更新问题背景1:在系统中间增加一个parameter分区,主要用来存储音频参数等硬件参数。但是在audioserver进程访问的时候出现权限问题 相关信息:Android N+MTK 如何创建分区打包成镜像放到手机? 在build/core/Makefile中间的修改如下:## Generate an ext4 imageTARGET_PARAMETER_OUT := $(PR原创 2017-11-01 15:08:04 · 2419 阅读 · 0 评论