- 博客(93)
- 资源 (20)
- 收藏
- 关注
原创 读书是一辈子的事
读书是一辈子的事,一个人读书不一定非得度世界各大名著,或者是非名著不可。读书是为了填补自己的知识空白,知识有空白就应该去读书,去请教有过研究的人;生活就是一门学问,读书不应该是局限在学校,不应该是局限在自己专业领域,自己工作范围领域。比如对于即将步入婚后生活的自己,对于婚后生活一无所知,为何就不能看看关于婚姻生活的书籍呢,那些书籍肯定有作者对于婚姻生活高于普通人的思考;比如对于有小孩之后的教育问题...
2018-11-03 16:45:18
623
原创 操作GPIO
MTK操作GPIOTo show GPIO status: adb shell "cat /sys/devices/virtual/misc/mtgpio/pin"To change GPIO status: adb shell "echo \"-w=99:0 1 0 0 0 1 0\" >/sys/devices/virtual/misc/mtgpio/pin" 每行分别对应: ...
2018-07-07 23:43:21
520
原创 vim 操作备份
vim是一个很强大的编辑器在vim下可以同时代打开多个文件一、在vim编辑器中可以同时打开多个文件,基本命令如下:假设你现在想编辑 a.txt文件 和 b.txt文件1)vi a.txt b.txt 2): n 下一个文件;3):N 上一个文件 ;4):wq! 全保存并退出 ;5):split (简写 :sp)设置水平分屏;6):vsplit(简写 :vsp)设置垂直分屏 ;7):on...
2018-05-09 12:17:52
841
原创 系统重启
系统操作控制指针导致系统重启:oops 示例:[ 293.370251] <0>.(0)[1:init]<<-hx5706_lxm_hxgd-f-ke>> [0274] [@tps65132_shutdown] tps65132_shutdown() is entry![ 293.371540] <0>.(0)[1:init]<<...
2018-05-09 12:07:59
1484
原创 CPU频率调节模式以及降频方法简介
在kernel中实现了两个driver,一个负责控制开关CPU的核数,叫做hot-plug驱动,另一个负责调整CPU的频率,叫做DVFS驱动。kernel中的driver会根据系统的负载,自动调整使用几个CPU和调整CPU频率。如果负载高了,提高频率,或者多开几个核,或者开大核。如果负载降下去了,就可以关大核,关核,降频。以下是两个知名手机厂商开源的config配置文档:60 CONFIG_CPU...
2018-03-12 19:04:40
20265
原创 OPTEE CA接口及数据结构
Linux userspace 中使用的API都按照GP标准进行定义,这些接口基本能够满足用户在userspace层面的需求,在系统中这部分会被编译成libteec库的形式存在。一、参数宏定义:/* * Defines the number of available memory references in an open session or * invoke command operati...
2018-02-08 10:12:11
2116
原创 OPTEE 目录结构
repo sync 取下的代码目录如下,(如果取不下或者编不过可私信我,可把我的虚拟机百度网盘地方发你)1、bios_qemu_tz_arm可以理解为BootLoader,用来加载Linux内核, OP-TEE 系统,文件系统,并启动linux kernel和OP-TEE OS,但在qemu_V8下不需要这个目录,在这个阶段kernel是还没起来的,所以它需要实现一些基本驱动比
2018-02-02 17:10:13
1013
原创 OPTEE Secure 启动log分析
secure log//soc_term目录下来实现端口监听listening on port 54321qsoc_term: accepted fd 4soc_term: read fd EOFsoc_term: accepted fd 4//mmu相关操作core/arch/arm/kernel/generic_entry_a32.S +431 core_init_mmu
2018-02-02 16:59:27
1207
原创 OPTEE Normal 环境启动log分析
//soc_term目录下来实现端口监听listening on port 54320soc_term: accepted fd 4soc_term: read fd EOFsoc_term: accepted fd 4Normal 环境下的启动log,包括Linux加载log和linux启动log/**find DTB(device tree database)/#define
2018-02-02 16:58:17
1053
原创 OPTEE下,CA和TA通信实现
这里以optee_examples中的hello_world为例,该例是实现整数加一操作。1、 CA 需要与 OPTEE OS 之间建立一个 Context(InitializeContext),以后此 CA 与 TEE 环境的所有通信均基于此 Context来实现的;/* Initialize a context connecting us to the TEE */ res = TE
2018-01-27 10:47:14
3769
原创 OP-TEE项目编译
一、使用qemu跑op-tee 关于OP-TEE的源码在https://github.com/OP-TEE/可以查看,关于怎么取代码编代码在qemu怎么跑,参考https://github.com/OP-TEE/build这个目录文件,基本都没什么大问题。但是我在这个过程中还是碰到各式各样的问题,如大家有碰到问题可给我私信,我尽量帮忙一起解决。1、准备取代码工具repo,可从这里下
2018-01-22 15:15:23
3094
3
原创 Android adb shell input 命令详解
在实体 TP 无法操作时,可用adb shell input 模拟TP操作,来判读是否TP出现问题,adb shell text 该命令主要是用于向获得焦点的EditText控件输入内容,Eg : adb shell input text "hello,world" adb input keyevent 该命令主要是向系统发送一个按键指令,实现模拟用户在
2018-01-19 16:02:58
47995
2
原创 Valid Palindrome
Valid Palindrome 判定回文字符串这里可以通过维护两个指针来实现,即一个从左边开始遍历,一个指针从右边开始遍历,在遍历的时候需要处理空格。源码如下:C++版本:class Solution {public: bool isPalindrome(string s) { int start=0, end=s.length()-1;
2017-12-04 11:41:44
260
原创 怎样设置Virtual box 虚拟机的网络
断断续续用虚拟机,有时一些设置容易忘,比如设置网络。操作步骤如下,如有疑问可私信或微博私信我。打开vitual box找到设置点击设置找到网络,虚拟机的网络设置一般有四种方式,我们一般选择NAT方式,对于这四种方式感兴趣的可阅读附文点击高级设置展开,配置如下图即可这样虚拟机就可正常上网,如下图 附文:virtualBox的提供了四种网络接
2017-10-12 12:15:29
1240
原创 在Mac pro上如何配置adb命令?
启动终端 进入当前用户的HOME目录,命令如下:cd $HOME 更新.bash_profile文件(当该文件存在时),如果该文件不存在,可通过如下命令创建:touch .bash_profile 打开.bash_profile文件,对其内容进行编辑,命令如下:open -e .bash_profile 此时文本编辑器会打开一个文本,编辑内容如下:export PATH=${PAT
2017-07-19 23:02:14
622
1
原创 安装Docker环境来使用Battery History
以下均默认你可以上VPN:install docker,Docker环境Docker是一种容器,一般用于云计算和大数据平台。提倡的一种思想就是:软件即服务。一句话就可以将别人发布的docker服务环境一次全部copy过来(注意是整个软件环境哦,相当于复制了一台一模一样的主机,连软件都不要安装了,全有了。 安装好运行后运行下列命令:docker run -p
2017-07-19 22:55:52
1141
原创 队列处理中断底半部
如果用一个词来形容底半部的功能,就是“延迟执行” 对于中断底半部的实现方式一共有三种:采用软中断的方式采用tasklet微线程采用队列 因为现在碰到的几个中断处理方式都是使用工作队列来实现的,所以这里主要讲解队列: 一、 工作队列 在Linux内核中,对下半部(或者说推后执行的工作)的处理方式有好几种,包括BH(bottom half),软中断,Taskl
2017-06-17 22:57:14
656
原创 ARM中断处理流程
这边文章主要是讲解一下,对ARM_Linux中断处理的一个流程介绍,在底层处理部分,不同的架构会有不一样处理,但Linux中断注册过程是一样的。 一、Linux中断的简易模型:当一个IRQ产生时,会发生什么?当一个IRQ产生后,CPU会首先自动跳转到IRQ的中断向量(这个中断向量是可设置的),在这个IRQ中断向量里又是一个跳转指令,CPU再次跳转,跳转后的代码主要完成的工作是保存一
2017-06-17 22:52:07
4892
原创 AP和BP概念——手机
大多数的手机都含有两个处理器。操作系统、用户界面和应用程序都在Application Processor(AP)上执行,AP一般采用ARM芯片的CPU。而手机射频通讯控制软件,则运行在另一个分开的CPU上,这个CPU称为Baseband Processor(BP)。MTK文档中会写AP MCU和MODEM MCU把射频功能放在BP上执行的主要原因是:射频控制函数(信号调制、编码、射频位移等
2017-06-17 22:42:46
2452
转载 十年一觉程设梦[完整版]
http://www.programmer-club.com.tw/ShowSameTitleN/exp/13338.html作者 : weber 本文可视为“我的 DDK 学习经验”的续篇, 不谈软件技术, 而是写我在华硕 10 年的职场经验. 描述学会了 DDK 这套工具, 我是如何运用它, 在工作上落实创意, 供各位参考. 另外我的为官经验, 可说是失败中的失败, 各位可引以为鉴
2017-06-02 17:47:07
5254
转载 linux 内核空间 及 高端内存详解
转自:http://blog.youkuaiyun.com/tommy_wxie/article/details/17122923摘要:Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。用户空间的内存映射采用段页式,而内核空间有自己的规则;
2017-05-25 09:39:44
782
转载 cat /proc/meminfo
cat /proc/meminfo 读出的内核信息进行解释:MemTotal: 507480 kBMemFree: 10800 kBBuffers: 34728 kBCached: 98852 kBSwapCached: 128 kBActive: 304248 kBInac
2017-05-25 09:32:47
899
原创 macbook 上怎样截图,以及对截图进行编辑
Mac 上截图快捷键:shift + command + 4操作完后,图片会保存在桌面,下面对图片进行编辑,点击箭头处,就可以对图片进行简单的编辑了。
2017-05-07 12:02:38
16498
原创 Mac 怎样往GitHub上传代码
该博客的前提是您的github已经添加了SSH keys,如下图一:图一接下来就是新建一个Repository,创建完之后,其实网页都是有提示的,提示界面如图二,按着操作就可以,图二$ echo "# text" >> README.md $ git init //初始化本地仓库
2017-05-07 11:28:05
577
原创 构造和运行模块
构造一个模块并不难,难的是如何把自己驱动的元件理解好,并最大化其性能,说的俗一点就是怎么利用好器件的功能。内核模块程序和应用程序:大多数的小规模应用程序都是从头到尾执行单个任务,而模块却只是先注册自己,以便服务以将来,接着它的初始化函数就立即结束。模块化程序运行在内核空间,是内核功能的一个扩展,一般来说,一个驱动程序一般要能执行两个基本任务,一是:系统调用,如read/write;一是中断响应
2017-03-05 11:30:40
775
原创 MTK battery 原理
参考文档:http://blog.youkuaiyun.com/zhandoushi1982/article/details/5804951http://blog.youkuaiyun.com/ollins136/article/details/52230722?locationNum=1http://blog.chinaunix.net/uid-9012903-id-2011559.html 在MT
2017-02-14 19:49:27
3229
原创 相机插值
微博搜索 bindingfly 欢迎关注==============插值的基本概念:插值(Interpolation),有时也称为“重置样本”,是在不生成像素的情况下增加图像像素大小的一种方法,在周围像素色彩的基础上用数学公式计算丢失像素的色彩。有些相机使用插值,人为地增加图像的分辨率在扫描过程中,根据所需的已知数值制作出估计的像素值,这一过程叫做插值。当
2017-02-14 19:40:59
1500
原创 Sensor system驱动
微博搜索 bindingfly 欢迎关注==============The corepart for new device driver including five parts :Hardware initial Read sensor dataChoose interrupt mode or polling modeAttribute filesT
2017-02-14 19:34:01
492
原创 LCM 常识
==============微博搜索 bindingfly 欢迎关注==============1、像素 屏幕上所有的画面都是由一个个的小点组成的,这一个个的小点就称之为像素。一块方形的屏幕横向有多少个点,竖向有多少个点,相乘之后的数值就是这块屏幕的像素(数码相机的像素也是这么乘积出来的)。但是为了方便表示屏幕的大小,通常用横向像素×竖向像素的方式来表示,例如我们平时听到
2017-02-14 19:27:27
1623
原创 何为相机OTP
==============微博搜索 bindingfly 欢迎关注==============随着5Meg 、8Meg、12Meg等高像素摄像头在手机中的应用越来越广,终端客户对camera的成像效果和品质要求越来越高,如何提升摄像头模组的一致性和各方面的性能已显得尤为重要。今天就为大家介绍在高像素模组中被越来越广泛应用的OTP技术。1. 何谓OTP全称:OTP(O
2017-02-14 19:24:34
2726
转载 对mtk平台的一些认识
+++++++++++++++++++微博搜索 bindingfly 欢迎关注+++++++++++++++++++一、 目的 来到这里近两月,更近距离的接近了MTK。身处基于MTK平台的产品开发浪潮之中,让我对MTK有更多的了解,不光是在平台技术本身。就技术上,从软件 角度、系统角度,对MTK我应该能给出深度而全面的评价或看法。就产品上,我也有自己的一些见解
2017-02-06 22:37:07
9606
转载 Android Driver知识大全
==============微博搜索 bindingfly 欢迎关注==============一、Display1.lcm 相关概念1.1) MIPI接口:一共有三种接口:DBI(也做CPU或MCU接口)、DPI(也叫RGB接口)、DSI.在使用DSI接口时,目前75/77都只支持到2条data lane,加上一条clock lane.使用DPI接口时,根据LCM
2017-02-06 22:24:32
4480
1
转载 Android性能分析工具整理汇总
把做Android开发以来碰到的一些不错的性能分析工具做个整理汇总...Debug GPU Overdraw类型:系统自带功能UI渲染检测功能(打开Settings,然后到 Developer Options -> Debug GPU Overdraw 选择 Show overdraw areas,手机系统设置中文的孩纸,自行对照翻译进去哈)作用:用来检测UI的重绘次数,开发者
2017-01-11 23:13:51
581
转载 android 功耗分析方法和优化
1、底电流调试(Rock Bottom Current Optimization)底电流在手机飞行模式下调试。每个平台的底电流数据可能不一样,具体可以参考release出来的Current Consumption Data文档或者release note。一般情况下的底电流参考数据上限是:512M RAM 1.5mA; 1G RAM 2mA; 2G RAM 2.6mA
2017-01-11 23:06:50
3682
原创 Android功耗
这个栏目里要讲的Android功耗是在项目开发的时候,碰到的功耗问题,主要是底层出发来排除Android功耗问题。Android功耗问题在项目开发过程中是最容易发生扯皮的时候,而很不幸,一有功耗问题大家都爱把问题往驱动开发这边丢。 没办法,唯一解决这种问题的办法就是,自己都去学学,把问题整明白。碰到问题是自己的问题就解决了,不是自己的你得给人家讲清楚理由,给出不能解决的理由。
2017-01-11 23:02:44
791
原创 linux设备驱动的中断
1、设备驱动的基本概念在访问设备时,如果不管设备是否有数据都死等它的数据,那别的设备就得不到访问。因此在硬件设计中引进了中断机制。内核中对时钟的处理也采用中断方式,而内核软件定时器最终依赖于时钟中断。中断处理和进程是CPU上两类完全独立的执行体。中断处理例程和其他代码并发运行这就讲引起并发问题,对并发控制技术的透彻理解对处理中断来讲是非常重要。设备中断的到来会打
2017-01-10 16:04:54
469
原创 lcm驱动流程
/*bindingfly */如果自己没有研究,那就不要往下看了,肯定不知所云。lcm驱动流程:lcm模组驱动,ili9881c_dsi_hd_vdo_dj_sp603_drv LCM_DRIVER ili9881c_dsi_hd_vdo_dj_sp603_drv = { .name = "ili9881c_dsi_hd_vdo_dj_sp603", .
2016-09-02 19:14:58
3244
原创 git的使用
更改检查已有的编辑并执行commit操作$ git status列出所有新建或者更改的文件,这些文件需要被commit$ git diff展示那些没有暂存文件的差异$ git add [file]将文件进行快照处理用于版本控制$ git diff --staged展示暂存文件与最新版本之间的不同$ git reset [file]将文
2016-09-01 22:52:33
304
原创 1、Linux设备的阻塞式和非阻塞式访问
1、休眠休眠的概念:休眠的进程会被搁置在一边,等待将来的某个事件发生。当进程休眠时,它期待某个条件未来为真,当一个休眠的进程被唤醒是,它必须再次检查它所等待的条件的确为真。休眠有简单休眠、高级休眠、手工休眠等。 1.1简单休眠Linux内核中最简单的休眠方式称为是wait_event的宏,它在休眠的同时也要检查进程等待的条件。以下是几种简单的休眠宏:
2016-08-07 15:35:23
1217
原创 Linux设备驱动中的并发
1、Linux中的并发与竞争Linux设备驱动中必须解决的一个问题:多进程对共享资源的并发问题,多个进程对同一个设备的并发访问,势必会导致对该设备资源的竞争。竞态发生的几种情况:1)、对称多处理器的多个CPU;2)、单CPU内进程与抢占它的进程;2)、中断(硬中断、软中断、tasklet、底半部)与进程之间并发的概念:多个执行单元同时、并行被执行,而并发执行单元对共
2016-08-06 21:49:13
2004
Android驱动开发与移植实战详解
2017-03-05
在Fedora22平台下将opencv移植到S3C6410
2015-12-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人