自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

bindingfly的博客

嵌入软件开发

  • 博客(93)
  • 资源 (20)
  • 收藏
  • 关注

原创 读书是一辈子的事

读书是一辈子的事,一个人读书不一定非得度世界各大名著,或者是非名著不可。读书是为了填补自己的知识空白,知识有空白就应该去读书,去请教有过研究的人;生活就是一门学问,读书不应该是局限在学校,不应该是局限在自己专业领域,自己工作范围领域。比如对于即将步入婚后生活的自己,对于婚后生活一无所知,为何就不能看看关于婚姻生活的书籍呢,那些书籍肯定有作者对于婚姻生活高于普通人的思考;比如对于有小孩之后的教育问题...

2018-11-03 16:45:18 575

原创 操作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 464

原创 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 778

原创 系统重启

系统操作控制指针导致系统重启: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]<&lt...

2018-05-09 12:07:59 1281

原创 CPU频率调节模式以及降频方法简介

在kernel中实现了两个driver,一个负责控制开关CPU的核数,叫做hot-plug驱动,另一个负责调整CPU的频率,叫做DVFS驱动。kernel中的driver会根据系统的负载,自动调整使用几个CPU和调整CPU频率。如果负载高了,提高频率,或者多开几个核,或者开大核。如果负载降下去了,就可以关大核,关核,降频。以下是两个知名手机厂商开源的config配置文档:60 CONFIG_CPU...

2018-03-12 19:04:40 19020

原创 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 1836

原创 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 909

原创 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 1111

原创 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 931

原创 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 3592

原创 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 2905 5

原创 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 44144 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 222

原创 怎样设置Virtual box 虚拟机的网络

断断续续用虚拟机,有时一些设置容易忘,比如设置网络。操作步骤如下,如有疑问可私信或微博私信我。打开vitual box找到设置点击设置找到网络,虚拟机的网络设置一般有四种方式,我们一般选择NAT方式,对于这四种方式感兴趣的可阅读附文点击高级设置展开,配置如下图即可这样虚拟机就可正常上网,如下图 附文:virtualBox的提供了四种网络接

2017-10-12 12:15:29 1157

原创 在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 542 1

原创 安装Docker环境来使用Battery History

以下均默认你可以上VPN:install docker,Docker环境Docker是一种容器,一般用于云计算和大数据平台。提倡的一种思想就是:软件即服务。一句话就可以将别人发布的docker服务环境一次全部copy过来(注意是整个软件环境哦,相当于复制了一台一模一样的主机,连软件都不要安装了,全有了。 安装好运行后运行下列命令:docker  run -p

2017-07-19 22:55:52 1065

原创 队列处理中断底半部

如果用一个词来形容底半部的功能,就是“延迟执行” 对于中断底半部的实现方式一共有三种:采用软中断的方式采用tasklet微线程采用队列 因为现在碰到的几个中断处理方式都是使用工作队列来实现的,所以这里主要讲解队列: 一、 工作队列      在Linux内核中,对下半部(或者说推后执行的工作)的处理方式有好几种,包括BH(bottom half),软中断,Taskl

2017-06-17 22:57:14 600

原创 ARM中断处理流程

这边文章主要是讲解一下,对ARM_Linux中断处理的一个流程介绍,在底层处理部分,不同的架构会有不一样处理,但Linux中断注册过程是一样的。 一、Linux中断的简易模型:当一个IRQ产生时,会发生什么?当一个IRQ产生后,CPU会首先自动跳转到IRQ的中断向量(这个中断向量是可设置的),在这个IRQ中断向量里又是一个跳转指令,CPU再次跳转,跳转后的代码主要完成的工作是保存一

2017-06-17 22:52:07 4674

原创 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 2206

转载 十年一觉程设梦[完整版]

http://www.programmer-club.com.tw/ShowSameTitleN/exp/13338.html作者 : weber 本文可视为“我的 DDK 学习经验”的续篇, 不谈软件技术, 而是写我在华硕 10 年的职场经验. 描述学会了 DDK 这套工具, 我是如何运用它, 在工作上落实创意, 供各位参考. 另外我的为官经验, 可说是失败中的失败, 各位可引以为鉴

2017-06-02 17:47:07 4908

转载 linux 内核空间 及 高端内存详解

转自:http://blog.csdn.net/tommy_wxie/article/details/17122923摘要:Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。用户空间的内存映射采用段页式,而内核空间有自己的规则;

2017-05-25 09:39:44 720

转载 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 856

原创 macbook 上怎样截图,以及对截图进行编辑

Mac 上截图快捷键:shift + command + 4操作完后,图片会保存在桌面,下面对图片进行编辑,点击箭头处,就可以对图片进行简单的编辑了。

2017-05-07 12:02:38 14426

原创 Mac 怎样往GitHub上传代码

该博客的前提是您的github已经添加了SSH keys,如下图一:图一接下来就是新建一个Repository,创建完之后,其实网页都是有提示的,提示界面如图二,按着操作就可以,图二$ echo "# text" >> README.md $ git init //初始化本地仓库

2017-05-07 11:28:05 518

原创 构造和运行模块

构造一个模块并不难,难的是如何把自己驱动的元件理解好,并最大化其性能,说的俗一点就是怎么利用好器件的功能。内核模块程序和应用程序:大多数的小规模应用程序都是从头到尾执行单个任务,而模块却只是先注册自己,以便服务以将来,接着它的初始化函数就立即结束。模块化程序运行在内核空间,是内核功能的一个扩展,一般来说,一个驱动程序一般要能执行两个基本任务,一是:系统调用,如read/write;一是中断响应

2017-03-05 11:30:40 714

原创 MTK battery 原理

参考文档:http://blog.csdn.net/zhandoushi1982/article/details/5804951http://blog.csdn.net/ollins136/article/details/52230722?locationNum=1http://blog.chinaunix.net/uid-9012903-id-2011559.html 在MT

2017-02-14 19:49:27 3086 2

原创 相机插值

微博搜索  bindingfly 欢迎关注==============插值的基本概念:插值(Interpolation),有时也称为“重置样本”,是在不生成像素的情况下增加图像像素大小的一种方法,在周围像素色彩的基础上用数学公式计算丢失像素的色彩。有些相机使用插值,人为地增加图像的分辨率在扫描过程中,根据所需的已知数值制作出估计的像素值,这一过程叫做插值。当

2017-02-14 19:40:59 1378

原创 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 438

原创 LCM 常识

==============微博搜索  bindingfly 欢迎关注==============1、像素 屏幕上所有的画面都是由一个个的小点组成的,这一个个的小点就称之为像素。一块方形的屏幕横向有多少个点,竖向有多少个点,相乘之后的数值就是这块屏幕的像素(数码相机的像素也是这么乘积出来的)。但是为了方便表示屏幕的大小,通常用横向像素×竖向像素的方式来表示,例如我们平时听到

2017-02-14 19:27:27 1338

原创 何为相机OTP

==============微博搜索  bindingfly 欢迎关注==============随着5Meg 、8Meg、12Meg等高像素摄像头在手机中的应用越来越广,终端客户对camera的成像效果和品质要求越来越高,如何提升摄像头模组的一致性和各方面的性能已显得尤为重要。今天就为大家介绍在高像素模组中被越来越广泛应用的OTP技术。1. 何谓OTP全称:OTP(O

2017-02-14 19:24:34 2516

转载 对mtk平台的一些认识

+++++++++++++++++++微博搜索 bindingfly 欢迎关注+++++++++++++++++++一、 目的      来到这里近两月,更近距离的接近了MTK。身处基于MTK平台的产品开发浪潮之中,让我对MTK有更多的了解,不光是在平台技术本身。就技术上,从软件 角度、系统角度,对MTK我应该能给出深度而全面的评价或看法。就产品上,我也有自己的一些见解

2017-02-06 22:37:07 9095

转载 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 4218 1

转载 Android性能分析工具整理汇总

把做Android开发以来碰到的一些不错的性能分析工具做个整理汇总...Debug GPU Overdraw类型:系统自带功能UI渲染检测功能(打开Settings,然后到 Developer Options -> Debug GPU Overdraw 选择 Show overdraw areas,手机系统设置中文的孩纸,自行对照翻译进去哈)作用:用来检测UI的重绘次数,开发者

2017-01-11 23:13:51 532

转载 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 3577

原创 Android功耗

这个栏目里要讲的Android功耗是在项目开发的时候,碰到的功耗问题,主要是底层出发来排除Android功耗问题。Android功耗问题在项目开发过程中是最容易发生扯皮的时候,而很不幸,一有功耗问题大家都爱把问题往驱动开发这边丢。        没办法,唯一解决这种问题的办法就是,自己都去学学,把问题整明白。碰到问题是自己的问题就解决了,不是自己的你得给人家讲清楚理由,给出不能解决的理由。

2017-01-11 23:02:44 731

原创 linux设备驱动的中断

1、设备驱动的基本概念在访问设备时,如果不管设备是否有数据都死等它的数据,那别的设备就得不到访问。因此在硬件设计中引进了中断机制。内核中对时钟的处理也采用中断方式,而内核软件定时器最终依赖于时钟中断。中断处理和进程是CPU上两类完全独立的执行体。中断处理例程和其他代码并发运行这就讲引起并发问题,对并发控制技术的透彻理解对处理中断来讲是非常重要。设备中断的到来会打

2017-01-10 16:04:54 434

原创 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 3113

原创 git的使用

更改检查已有的编辑并执行commit操作$ git status列出所有新建或者更改的文件,这些文件需要被commit$ git diff展示那些没有暂存文件的差异$ git add [file]将文件进行快照处理用于版本控制$ git diff --staged展示暂存文件与最新版本之间的不同$ git reset [file]将文

2016-09-01 22:52:33 265

原创 1、Linux设备的阻塞式和非阻塞式访问

1、休眠休眠的概念:休眠的进程会被搁置在一边,等待将来的某个事件发生。当进程休眠时,它期待某个条件未来为真,当一个休眠的进程被唤醒是,它必须再次检查它所等待的条件的确为真。休眠有简单休眠、高级休眠、手工休眠等。 1.1简单休眠Linux内核中最简单的休眠方式称为是wait_event的宏,它在休眠的同时也要检查进程等待的条件。以下是几种简单的休眠宏:

2016-08-07 15:35:23 1177

原创 Linux设备驱动中的并发

1、Linux中的并发与竞争Linux设备驱动中必须解决的一个问题:多进程对共享资源的并发问题,多个进程对同一个设备的并发访问,势必会导致对该设备资源的竞争。竞态发生的几种情况:1)、对称多处理器的多个CPU;2)、单CPU内进程与抢占它的进程;2)、中断(硬中断、软中断、tasklet、底半部)与进程之间并发的概念:多个执行单元同时、并行被执行,而并发执行单元对共

2016-08-06 21:49:13 1793

I2C总线简介

I2C总线,讲解得很到位。值得大家都参考下,不论你是老手还是新手都能找到参考的价值。

2017-11-07

很好的mtk平台资料

很好的mtk平台资料,共享给大家

2017-03-18

深入理解Android:卷I.rar

深入理解Android:卷I.rar,共享给大家,要的可以下载下来看看

2017-03-18

Android驱动开发与移植实战详解

Android凭借其开源性、优异的用户体验和极为方便的开发方式,赢得了广大用户和开发者的青睐,目前已经发展成为市场占有率很高的智能手机操作系统。, 李骏、陈小玉编著的《Android驱动开发与移植实战详解》分为18章,依次讲解了Android系统的基本知识, Linux内核的基本知识,分析了Android系统的源码,深入分析HAL层的基本知识,GoldFish下的驱动、MSM内核和驱动、OMAP内核和驱动、显示系统驱动、输入系统驱动、振动器系统驱动、音频系统驱动和视频输出系统驱动,多媒体框架,传感器系统、照相机系统、Wi-Fi系统、蓝牙系统、GPS系统和电话系统的知识。在每一章中,重点介绍了与Android驱动开发相关的底层知识,并对Android源码进行了详细的分析及驱动开发实现。, 《Android驱动开发与移植实战详解》适合Android程序员、研发人员及Android爱好者学习,也可以作为相关培训学校和大专院校相关专业的教学用书。

2017-03-05

计算机专业经典教材

这书都是计算机的经典书籍,没事下载下来看看。

2017-01-07

精简版apache服务器

精简版apache服务器,无需安装就可以直接使用,该文件夹下有使用说明。

2015-12-21

在Fedora22平台下将opencv移植到S3C6410

库及应用程序       libz:        zlib-1.2.8.tar.gz       libjpeg:      jpegsrc.v7       libpng:      libpng-1.5.10       libyasm:      yasm-1.2.0.tar.gz       opencv:        opencv-2.2.0 或者 opencv-3.0.0       libx264:      x264-snapshot-20120608-2245.tar.bz2       libxvid:      xvidcore-1.3.3.tar.gz       lffmpeg:      ffmpeg-2.8.tar.bz2       cmake:     cmake-3.3.2-linux-X86_64.tar.gz

2015-12-11

硬件课程体系框图

硬件课程体系框图,硬件学习过程和周期,机学习路线

2015-11-26

江西移动分公司笔试题目及答案

江西移动分公司笔试真题,含答案。要的拿走。

2015-10-10

Linux移植之Step By Step

Linux移植之Step By Step,大家都在推荐。

2015-08-25

《高质量C C编程指南》林锐

啥也不说,有质量的一本书,《高质量C C编程指南》林锐,不看后悔死你。

2015-08-25

嵌入式培训教材

此资料为国嵌培训教材,资料比较全,有一百多页。

2015-08-25

s3c6410的GPIO操作

给出全部源代码,相应博客说明,可直接运行。

2015-08-22

S3C6410中文手册

S3C6410_中文手册,麻麻再也不担心看不懂英文手册了。

2015-07-22

云台控制(包括源码)

云台控制技术,包括源码可作为参考。技术派尔高D

2015-07-22

sp3232资料

此为SP3232database及相关说明,资料比较全。对学习UART通信还是有帮助的。

2015-07-21

s3c6410测试程序

s3c6410的测试程序。都是测试通过的,很适合初学者进行学习。

2015-07-13

电子设计(入门到精通)

电子设计从入门到精通,该文档使用与电子技术的小白,真的很实用的。

2015-07-12

空空如也

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

TA关注的人

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