自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(158)
  • 资源 (3)
  • 收藏
  • 关注

原创 MTK平台充电模块梳理

一、原理图智能手机充电模块硬件原理图主要可以分为三个部分:电池连接器、充电IC以及电源管理芯片PMIC部分等。BAT_ID:不同电芯的电池区分管脚,一般就是外接的电阻不同,通过该管脚来区分加载不同的电池profile。 BAT_ON:电池是否在位检测管脚,也是电池NTC管脚。 CS_P:Fuel Gauge电流检测的正极管脚,10毫欧电阻的一端。 CS_N: Fuel Gauge...

2018-07-03 15:41:42 11080 3

原创 MT6739 充电&电量计代码架构变化梳理

GM30代码架构 \android\kernel-4.4\drivers\power\mediatek\Makefile 电量计3.0需要定义宏CONFIG_MTK_GAUGE_VERSION为30,之后代码全部编译 battery和charger两个目录下的文件,跟原来的电量计1.0和2.0文件不一样了. 其中\android\kernel-4.4\drivers\power...

2018-06-06 14:15:05 6786

原创 高通平台过压overvoltage分析

过压门限 过压门限有三个option,其中option A的典型值为6.4v,option B的典型值为7.15,option C的典型值为10.3v 上表显示寄存器13f1的bit0到bit2值不同会对应不同的过压门限。寄存器 主要是1310和13f1 代码实现 注册过压中断smbchg_request_irqsREQUEST_IRQ(chip, spmi_resource, chi

2017-09-19 09:53:23 1483

原创 【一】4412开发板编译环境搭建

基于的平台均为Tiny4412SDK 1312;4G EMMC; 1G DDR3准备编译工具链:arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz操作系统:ubuntu 14.04开始==>>1. 解压:tar zxvf arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz==>>2. 建议把编译链工具放在根目录下cp ./opt/* -rf /opt==>>3. 设置环境变量 sudo...

2020-08-21 08:45:44 531

原创 音频基础知识

###ASLA – Advanced Sound Linux Architecture###OSS – 以前的Linux音频体系结构,被ASLA取代并兼容###Codec – Coder/Decoder###I2S/PCM/AC97 – Codec与CPU间音频的通信协议/接口/总线###DAI – Digital Audio Interface 其实就是I2S/PCM/AC97###DAC – Digit to Analog Conversion###ADC – Analog to Digit

2020-07-17 13:29:41 503

原创 【linux性能优化】09-如何理解软中断

中断的概念中断是系统用来响应硬件设备请求的一种机制,它会打断进程的正常调度和执行,然后调用内核中的中断处理程序来响应设备的请求。中断其实是一种异步的事件处理机制,可以提高系统的并发处理能力。由于中断处理程序会打断其他进程的运行,所以,为了减少对正常进程运行调度的影响,中断处理程序就需要尽可能快地运行。如果中断本身要做的事情不多,那么处理起来也不会有太大问题;但如果中断要处理的事情很多,中断服务...

2019-12-24 23:14:14 565

原创 【网络编程】04-TCP三次握手

服务端准备连接的过程创建套接字:int socket(int domain, int type, int protocol)domain就是指PF_INET、PF_INET6、PF_LOCAL等,表示什么样的套接字type的可用的值如下:SOCK_STREAM:表示的是字节流,也就是TCPSOCK_DGRAM:表示的是数据报,也就是UDP。SOCK_RAW:表示的原始套接字。参数...

2019-12-21 07:17:43 348

原创 【linux性能优化5】某个应用CPU使用率很高

CPU使用率的概念CPU使用率是单位时间内CPU的使用情况,以百分比的方式展示。Linux是一个多任务的操作系统,将每个CPU的时间划分为很短的时间片,再通过调度器轮流分配给各个任务,为了维护CPU时间,Linux通过事先定义的节拍率,内核中用HZ表示,触发时间中断,并使用全局变量Jiffies记录开机以来的节拍数。每发生了一次中断,节拍数Jiffies就加1.节拍率HZ是内核的配置选项,可以...

2019-12-16 23:09:21 481

原创 tcpdump抓包注意事项

使用tcpdump进行抓包,然后用wireshark进行分析的时候,出现了”Packet size limited during capture”,也不算是错误,只是数据包里的内容无法完全查看清楚:经过查询,原因是因为我在Linux下进行抓包的时候没有设定截取包的长度,于是tcpdump默认采用了长度为68或96字节来进行抓包,导致一些数据稍多的包内容显示不全面。只要在tcpdump命令后加...

2019-12-04 21:54:35 571

原创 【网络编程】03-套接字和地址

Socket到底是什么?网络编程中到底如何理解socket,先看下面的图上面的图表达了网络编程中客户端和服务器模型的核心逻辑。服务器端:首选服务器端要先初始化号好socket,之后服务器端执行bind函数将自己的服务能力绑定在一个特定的地址和端口上,紧接着服务器端调用listen函数将原先的socket转化为服务端的socket,最后服务端阻塞在accept上等待客户端的连接。客户端:以...

2019-12-04 21:48:48 326

原创 【设计模式之美4】当我们谈论面向对象时都谈些什么

什么是面向对象编程和面向对象编程语言面向对象编程的缩写是OOP即Object Oriented Programming。对应的面向对象编程语言的缩写是OOPL 即Object Oriented Programming Language.面向对象有两个非常重要,非常基础的概念,那就是类(class)和对象(object)。面向对象编程的概念第一次被使用是在SmallTalk这种编程语言中,Sma...

2019-11-22 17:43:17 191

原创 【设计模式之美3】面向对象、设计原则、设计模式、编程规范、重构,这五者有何关系

要具备编写高质量代码的能力,需要学习一些编程方法论,其中就包括面向对象、设计原则、设计模式、编程规范和重构技巧等。面向对象 主流的编程范式或者编程风格有三种,分别是面向对过程、面向对象和函数式编程。面向对象又是最主流的,主要的编程语言也都支持面向对象。面向对象因为具有丰富的特性,诸如封装、抽象、继承、多态等可以实现很多复杂的设计思路,是很多设计原则、设计模式编码实现的编程基础。面向对象需要...

2019-11-05 22:12:29 390

原创 【linux性能优化15】Linux内存是怎么工作的

Linux的内存管理,是操作系统的最核心的功能 之一。内存主要用来存储系统和应用程序的指令数据和缓存等。内存映射通常我们所说的计算机内存大小如4Gb/8Gb,是指物理内存。当进程要访问内存时时如何访问的呢?是直接访问物理内存 吗?当然不是,linux系统给每一个进程都提供了一个独立的虚拟地址空间,而且这个空间是连续的,这样进程就可以很方便的访问内存空间,确切的是说是虚拟内存空间,也就是说...

2019-11-05 21:21:24 328

原创 Linux设置进程的调度策略和优先级

系统调用接口/** * sched_setscheduler - change the scheduling policy and/or RT priority of a thread. * @p: the task in question. * @policy: new policy. * @param: structure containing the new RT priority...

2019-09-18 22:11:29 1511

原创 linux内核初始化

Linux内核的启动从入口函数start_kernel开始,在init/main.c中,start_kernel就相当于内核的main函数。该函数中调用了很多的xxx_init函数。创建0号进程set_task_stack_end_magic(&init_task);init_task是系统创建第一个进程,也称为0号进程,这也是唯一一个没有使用fork或者kernel_thread...

2019-08-12 07:22:24 678

原创 Linux进程数据结构详解

Linux系统中无论是进程还是线程都统一叫任务,有一个统一的结构task_struct进行管理。linnux中关于task_struct的定义如下Struct task_struct{ /* -1 unrunnable, 0 runnable, >0 stopped: */ volatile long state; /* * This begins the randomiz...

2019-08-08 21:20:24 1752

原创 【Linux性能优化2】平均负载

什么是平均负载当系统响应变慢时,一般使用top或者uptime来查看系统负载情况。运行uptime命令的输出信息如下:其中 23:12:21 为当前系统时间up 42 min:为系统已经运行的时间2 users:当前登录的用户数load average:则是过去 1 分钟、5 分钟、15 分钟的平均负载。***平均负载***是单位时间内系统处于可运行状态和不可中断状态的平均进程数,也...

2019-07-05 20:38:45 2066

原创 关于break和continue的那些事

区别break 语句,它不仅可以跳出“循环体”,还可以跳出 switch。break 也只能用于这两种情况。break 语句不能用于循环语句和 switch 语句之外的任何其他语句中。不管是 for 循环,还是 while 循环,或者是 do…while 循环,都可以用 break 跳出来,但是 break 只能跳出一层循环。当有多层循环嵌套的时候,break只能跳出“包裹”它的最里面的那一...

2019-07-05 20:27:41 1597 2

原创 【Linux性能优化4】CPU上下文切换

如何查看系统的CPU上下文切换情况vmstat可以查看系统的CPU上下文切换情况。它是一个常用的系统性能分析工具,主要用来分析系统的内存情况,也常用来分析系统的CPU上下文切换和中断的次数。执行如下的命令:vmstat 5 (每隔5s输出一组数据)这里需要重点关注以下几列的具体内容:cs:即context switch 每秒钟上下文切换的次数,如上图中红色框。in:每秒钟中断的次数。...

2019-06-22 22:02:34 983

原创 关于大小端以及GCC堆栈保护

一、大小端写一段代码 测试机器是大端还是小端?#include <stdio.h>#include <stdlib.h>int main(){ int a=0x12345678; char c=a; printf("c=%x \n",c); printf("exit...\n");}在li...

2019-06-20 21:00:48 1105

原创 linux----自旋锁

什么是自旋锁?自旋锁(spinlock):是指当一个线程在获取锁的时候,如果锁已经被其它线程获取,那么该线程将循环等待,然后不断的判断锁是否能够被成功获取,直到获取到锁才会退出循环。获取锁的线程一直处于活跃状态,但是并没有执行任何有效的任务,使用这种锁会造成busy-waiting。它是为实现保护共享资源而提出一种锁机制。其实,自旋锁与互斥锁比较类似,它们都是为了解决对某项资源的互斥使用。无...

2019-05-22 21:17:33 200

原创 初识RTP协议(二)

一、H264网络传输的结构H264在网络传输的是NALU,NALU的结构是:NAL头 + RBSP(视频编码数据),实际传输中的数据流如同所示:二、分包结构RFC 3984文档中定义RTP包中携带H264的几种方式:STAP(STAP-A/B)一个RTP包中携带多个NALU单元,这些NALU的时间戳都一致。MTAP 一个RTP包中携带多个NALU单元,这些NALU的时间戳不一致。FU(...

2019-05-21 21:27:40 354

原创 初识RTP协议(一)

最近项目中需要用到rtp协议 之前对网络协议这块不太了解 最近学了一下基本协议 学习了极客时间的 趣谈网络协议专栏以及linux性能优化专栏的网络性能分析部分 受益匪浅 今天就做个简单的小结。一、 UDP协议Linux系统四层网络参考模型中的传输层两个重要协议就是TCP和UDP协议。其中UDP即User DataProgram Protocol用户数据报协议 它提供面向事物的简单的不可靠的...

2019-05-21 21:18:24 758

原创 git使用笔记

克隆仓库代码git clone git@xxx.git查看分支:git branch查看所所有分支 包括了本地分支和远程分支git branch -av新建本地分支并关联到远程分支git checkout -b 本地分支名 remotes/origin/远程分支名创建本地分支git branch 本地分支名称删除本地分支git branch -d 本地分支名切换到本...

2019-05-17 22:18:50 140

原创 多线程编程之线程同步与互斥实例

函数接口线程创建pthread_create()Create a threadSynopsis:#include &lt;pthread.h&gt;int pthread_create( pthread_t* thread, const pthread_attr_t* attr, void* (*star...

2019-03-05 22:40:33 838

原创 github上传本地代码的基本步骤

git init //把这个目录变成Git可以管理的仓库git add README.md //文件添加到仓库git add . //不但可以跟单一文件,还可以跟通配符,更可以跟目录。一个点就把当前目录下所有未追踪的文件全部add了git commit -m “first commit” //把文件提交到仓库git remote add origin git@github.com:xxx/...

2019-01-12 21:04:02 181

原创 QNC IPC---msg send receive example

qnx进程间通讯的示例代码msg_receive_server.c实现了 server端数据接收功能,并返回reply消息给client端。msg_send_client.c实现了 client端的数据发送功能,将数据发送给server端,并等待server的reply消息。server分别发送data 1和data2给client,client接收到data 1后返回replay消息 da...

2019-01-12 20:51:38 511

原创 QNX api总结

IPC API1、ChannelCreate(), ChannelCreate_r()Create a communications channelSynopsis:#include &lt;sys/neutrino.h&gt;int ChannelCreate( unsigned flags );int ChannelCreate_r( unsigned flags );Ar...

2018-12-29 21:17:53 2076

原创 命令行模式编译QNX工程代码

使用qnx ide开发环境新建一个C工程 起名为MyFirstQnxApp工程创建完成后 如下所示如果是在IDE环境下编译 只需要执行project下的build all即可对于习惯了linux环境的人来说更喜欢用命令行的模式来编译工程或者代码,现在说一下如何通过命令行来编译工程。在cmd命令提示符下进入qnx ide的安装目录 执行qnx660-env.bat 相当于linux环境...

2018-12-28 21:59:54 920 1

转载 HMI全液晶仪表时代-在QNX平台下的kanzi的UI设计解决方案

如果你看过新款奥迪 TT 的仪表盘,那么你应该会对这样酷炫的设计印象深刻。目前的趋势就是数字化仪表盘正在逐渐取代传统机械式的设计,但可能很少有人知道这样的数字化仪表盘是经过怎样的一个流程被设计出来的。其实这个仪表盘是使用了芬兰设计公司 Rightware 开发的 Kanzi 工具进行设计的,而这个工具的很大一部分应用就是设计汽车仪表。在很多人看来,射鸡湿和程序猿永远都是处在对立面的两类人。当...

2018-12-01 06:18:33 3793 1

转载 Linux Kernel 信号量、互斥锁、自旋锁

1.信号量1.1 概念信号量又称为信号灯(semaphore),它是用来协调不同进程间的数据对象的,本质上信号量是一个计数器,它用来记录对某个资源(如共享内存)的存取状况。一般说来,为了获得共享资源,进程需要执行下列操作:   (1) 测试控制该资源的信号量。   (2) 若此信号量的值为正,则允许进行使用该资源。进程将信号量减1。   (3) 若此信号量为0,则该资源目前不可用,进程进...

2018-11-06 08:57:49 514

原创 10.29 面试总结

1.请问运行main函数有什么样的结果?#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;char* getmemmory(void){char p[]=“hello world”;return p;}int main(int argc, char *argv[]) {char * str=NULL;str=getmemmory(...

2018-10-30 19:30:35 323

原创 字符设备驱动程序的三种写法

驱动工程师如何去写驱动程序?要看原理图。确定如何去操作硬件。对于点亮led灯来说,确定引脚,查看芯片手册,确定如何去操作引脚,要设置哪些寄存器,如何设置这些寄存器才可以让这个引脚输出高电平或者低电平。写驱动程序驱动程序起封装作用,如何封装。应用程序要操作硬件需要open某个设备文件。调用read函数获得led的状态。设置灯的状态可以调用write函数或者各种ioctl函数等。驱动程序就需要...

2018-10-27 06:46:13 3972

转载 基于Android系统的多点触摸屏(MultiTouchScreen)驱动

理论:输入子系统由来在Linux中, 应用层对于输入设备(鼠标、键盘、触摸屏等)的操作无非都是open、read、write、ioctl,然后调用驱动层的xxx_open、xxx_read、xxx_write、xxx_ioctl去操作具体的硬件输入设备。如果按照传统的思路,每个输入设备都按照这个套路写这些open、read等,是不是太过于累赘了。所以Linux就定义了一套标准,来标准化这些输入...

2018-10-24 15:30:30 1304

原创 Mysql数据库一

1.关系化数据库关系化数据库就是用来保存有实体关系的 数据的 软件.实际开发过程中,一套 标准的流程是 画E-R实体关系 图, 做数据库建模分析, 分析 实体之间的 关系, 确定需要的 属性信息, 最终 建立 不同的表, 从而完整的 去描述 实体 之间的关系.2.Mysql数据库的使用数据库只是一个软件, 这个软件 帮组咱们将 数据以特定的形式保存到硬盘上去了, 并且 可以使用 标...

2018-10-18 10:00:55 264

原创 【java复习】简单的记事本功能开发

主要界面 主要功能1、用户点击打开按钮可以打开电脑中的相应文件,文件内容可以在记事本界面中显示 2、用户修改文件内容点击保存可以保存修改后的文件内容。 3、用户点击关于查看记事本版本信息。实现代码/* * 记事本开发: * 主要功能:打开文件,编辑后可以保存 * 需要界面加功能开发 * */package com.fox.test9;i...

2018-08-21 16:51:33 843

原创 【java复习】文件操作

文件流—基本概念文件在程序中是以流的形式来操作的. 流:数据在数据源(文件)和程序(内存)之间经历的路径 输入流:数据从数据源(文件)到程序(内存)的路径. 输出流: 数据从程序(内存)到数据源(文件)的路径.Java IO类图文件流分类:字节流和字符流. 字节流:可以用于读写二进制文件以及任何类型的文件 字符流:可以用于读写文本文件,不能操作二进制文件 ...

2018-08-21 15:52:14 326

原创 【java复习】线程深入理解

线程对象只能启动一个对象示例代码/* * 演示 使用线程的注意事项 * * */package com.fox.test1;public class Demo11_1 { public static void main(String[] args) { // TODO Auto-generated method stub Cat ca...

2018-08-17 15:50:15 263

原创 【java复习】java界面开发2

面板组件JPanel为什么会有面板组件?在图形用户界面编程中,如果只是普通的组件布局,只用前面的三种布局管理器就可以解决,但是比较复杂的布局要求时就要使用布局管理器的组合使用,如下图: 一个界面只可以有一个JFrame组件但是可以有多个JPanel组件,而JPanel上也可以使用前面介绍的布局管理器,这样组合使用可以达到较复杂的布局效果./* * 演示JPanel使用,多种布局管理...

2018-08-13 17:48:04 215

原创 【java复习】java界面开发

Java界面开发演进Eclipse介绍Eclipse最早是IBM附属公司oti公司开发的,开发后后来捐给开源社区 Eclipse是一个开源的/可扩展的集成开发环境,已经成为目前java开发最主流的工具 Eclipse安装后就可以开发java se项目了,但是还不能开发java ee项目需要安装web插件.Swing组件swing组件主要包括Text相关组件/Menu相关...

2018-08-10 17:13:55 322

MTK_sensor_driver_kernel-4.4.pdf

mtk sensor driver sop

2019-08-14

SM5414-SM5414W-DS-CR-REV1.0.0.pdf

sm5414充电芯片资料

2019-08-14

ov9660 camera module software application notes

开发camera摄像头的很有用的资料 绝不是datasheet哦

2013-09-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除