09 2018 档案
摘要:一 :确认手机状态 手机系统死机白屏后,使用USB线 连接手机和计算机。打开计算机设备管理器 ,当其中与手机相关的端口只有DIAG 口 项(9006端口)时,表明手机处于DUMP 模式,可以抓DUMP LOG. 注意Diag口为死机端口 Dol端口为下载端口 二 : 抓取DUMP LOG 打开 QP
阅读全文
摘要:一、驱动部分 首先向NXP 的 fae要android 6.0 bring up的代码,如: 结构目录如下: 1. 添加驱动文件 高通平台需使用 节点,所以将驱动中的设备节点名字修改为 即可; 2. 修改平台配置 在init.qcom.rc中增加节点的权限,并创建 文件夹 3. 修改HAL代码: 替
阅读全文
摘要:上报设备 1. headset :听筒mic 2. headphone:听筒没有mic 3. Lineout:声音输出没有mic 上报方式 1. 输入子系统: 可上报输入事件 上报开关事件 2. switch state:uevent 编写输入系统驱动 1. 分配input_dev; 2. 设置:
阅读全文
摘要:1 分析思路 1. Thread如何创建? AudioPolicyService是策略的制定者,AudioFlinger是策略的执行者, 所以: AudioPolicyService根据配置文件使唤AudioFlinger来创建Thread 2. Thread对应output, output对应哪些
阅读全文
摘要:调度器面对的情形就是这样, 其任务是在程序之间共享CPU时间, 创造并行执行的错觉, 该任务分为两个不同的部分, 其中一个涉及 调度策略 , 另外一个涉及 上下文切换 . 1 背景知识 1.1 什么是调度器 通常来说,操作系统是应用程序和可用资源之间的媒介。 典型的资源有内存和物理设备。但是CPU也
阅读全文
摘要:SPI由于接口相对简单(只需要4根线),用途算是比较广泛,主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。即一个SPI的Master通过SPI与一个从设备,即上述的那些Flash,ADC等,进行通讯。而主从设备之间通过SPI进行通讯,首先要保证两者
阅读全文
摘要:Linux进程的退出 linux下进程退出的方式 正常退出 从main函数返回return 调用exit 调用_exit 异常退出 调用abort 由信号终止 _exit, exit和_Exit的区别和联系 _exit是linux系统调用,关闭所有文件描述符,然后退出进程。 exit是c语言的库函数
阅读全文
摘要:加载和动态链接 从编译/链接和运行的角度看,应用程序和库程序的连接有两种方式。 一种是固定的、静态的连接,就是把需要用到的库函数的目标代码(二进制)代码从程序库中抽取出来,链接进应用软件的目标映像中; 另一种是动态链接,是指库函数的代码并不进入应用软件的目标映像,应用软件在编译/链接阶段并不完成跟库
阅读全文
摘要:execve系统调用 execve系统调用 我们前面提到了, fork, vfork等复制出来的进程是父进程的一个副本, 那么如何我们想加载新的程序, 可以通过execve来加载和启动新的程序。 x86架构下, 其实还实现了一个新的exec的系统调用叫做execveat(自linux 3.19后进入
阅读全文
摘要:内核线程 为什么需要内核线程 Linux内核可以看作一个服务进程(管理软硬件资源,响应用户进程的种种合理以及不合理的请求)。 内核需要多个执行流并行,为了防止可能的阻塞,支持多线程是必要的。 内核线程就是内核的分身,一个分身可以处理一件特定事情。内核线程的调度由内核负责,一个内核线程处于阻塞状态时不
阅读全文
摘要:Unix标准的复制进程的系统调用时fork(即分叉),但是Linux,BSD等操作系统并不止实现这一个,确切的说linux实现了三个,fork,vfork,clone(确切说vfork创造出来的是轻量级进程,也叫线程,是共享资源的进程) 系统调用 | 描述 | fork | fork创造的子进程是父
阅读全文
摘要:2号进程 内核初始化rest_init函数中,由进程 0 (swapper 进程)创建了两个process init 进程 (pid = 1, ppid = 0) kthreadd (pid = 2, ppid = 0) 所有其它的内核线程的ppid 都是 2,也就是说它们都是由kthreadd t
阅读全文
摘要:前面我们了解到了0号进程是系统所有进程的先祖, 它的进程描述符init_task是内核静态创建的, 而它在进行初始化的时候, 通过kernel_thread的方式创建了两个内核线程,分别是kernel_init和kthreadd,其中kernel_init进程号为1 start_kernel在其最后
阅读全文
摘要:前言 Linux下有3个特殊的进程,idle进程(PID = 0), init进程(PID = 1)和kthreadd(PID = 2) idle进程由系统自动创建, 运行在内核态 idle进程其pid=0,其前身是系统创建的第一个进程,也是唯一一个没有通过fork或者kernel_thread产生
阅读全文
摘要:动态链接 要解决空间浪费和更新困难这两个问题最简单的办法就是把程序的模块相互分割开来,形成独立的文件,而不再将它们静态地链接在一起。简单地讲,就是不对那些组成程序的目标文件进行链接,等到程序要运行时才进行链接。也就是说,把链接这个过程推迟到了运行时再进行,这就是动态链接( Dynamic Linki
阅读全文
摘要:本文中出现的,内核线程,轻量级进程,用户进程,用户线程等概念,如果不太熟悉, 可以参见 "内核线程、轻量级进程、用户线程三种线程概念解惑(线程≠轻量级进程)" Linux进程类别 虽然我们在区分Linux进程类别, 但是我还是想说Linux下只有一种类型的进程,那就是task_struct,当然我也
阅读全文
摘要:Linux 内核使用 task_struct 数据结构来关联所有与进程有关的数据和结构,Linux 内核所有涉及到进程和程序的所有算法都是围绕该数据结构建立的,是内核中最重要的数据结构之一。 该数据结构在内核文件include/linux/sched.h中定义,在目前最新的Linux 4.5(截至目
阅读全文
摘要:转自:[LCD显示异常分析——撕裂(tear effect) ](https://blog.csdn.net/hexiaolong2009/article/details/79319512) 概述 在上一篇《 "LCD显示异常分析——开机闪现花屏" 》中,我们一起分析了开机花屏的问题,在这一篇中,我
阅读全文
摘要:转自[LCD显示异常分析——开机闪现花屏 ](https://blog.csdn.net/hexiaolong2009/article/details/79190789) 最近在工作中,有同事遇到LCD开机瞬间会闪现雪花屏的问题,而这类问题都有个共同点,那就是都发生在带GRAM的屏上,同样的问题,在
阅读全文
摘要:Linux Namespaces机制提供一种资源隔离方案。 PID,IPC,Network等系统资源不再是全局性的,而是属于特定的Namespace。每个Namespace里面的资源对其他Namespace都是透明的。 要创建新的Namespace,只需要在调用clone时指定相应的flag。 Li
阅读全文
摘要:优先级 table th:nth of type(1){ width: 10%; } table th:nth of type(2){ width: 20% ; } table th:nth of type(3){ width: 10% ; 字段 | 描述 | static_prio | 用于保存静
阅读全文