自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

The CnSkyline Blog

when technology becomes absolute passion!

  • 博客(81)
  • 资源 (7)
  • 收藏
  • 关注

原创 Perf的原理、编译以及使用

​1、背景1.1 性能分析系统级性能优化通常包括两个阶段:性能剖析(performance profiling)和代码优化。性能剖析的目标是寻找性能瓶颈,查找引发性能问题的原因及热点代码。代码优化的目标是针对具体性能问题而优化代码或编译选项,以改善软件性能。一般在工作中比较关心的是性能瓶颈,特别是算法。当在系统全功能启动的时候,算法一般需要将设备的性能用到极限,而在这个过程中不免出现各类性能上的瓶颈,此时需要分析自身的一些性能瓶颈在什么地方就可以用到专门的性能分析工具perf。1.2 术语和缩

2021-01-04 23:05:40 7371

原创 Linux操作系统的概述与内核结构及编程

人们常常说操作系统这个名词啊,Windows\Linux\MacOS可以说是世间三大巨头了。小众的我们就不说了。 我们一般在生活中只能感受到应用层,像你打开微信等操作就是来自此次,当然你也可以直接操作屏幕,按键等硬件,但其实这些还是由操作系统进行管理,才能正常被使用的。 简而言之,操作系统就做两件事情。 对于整个计算机系统的软硬件资源进行管理 给用户提供服务 我们这些内核开发人员每次都在强调有什么最优解决方案。侧面说明了操作系统的目标就2个,一个是提高资源...

2020-11-19 18:35:17 626 1

原创 dts、dtb的那些事儿

笔者最近在支持新的案子,过于忙碌,好久没更新了,勿怪。1、设备树大变革故事 2011年3月17日的ARM Linux邮件列表有封邮件“this whole ARM thing is a fucking pain in the ass”引起了轩然大波,原来是我们的Linux之父Linus Torvalds对垃圾代码的极度指责。于是Linux社区扛过大旗,奥利给,搞起来,优化,优化,重构!!(大牛们就是大牛们,人家说优化重构是真优化真重构) 为何会有这事呢,这主要是以前啊,在arch...

2020-10-26 01:29:34 6001

原创 我的Linux网络内核之行1-基础网络知识

前言最近不光在解决项目的问题,也遇到过部分的网络问题,发现自己对于网络的知识还是非常匮乏的,因而在此做一些归纳,记录也是分享,当然我的分享应该不是最全的,但个人认为有些东西就算分享出来,用不到也是白折腾。在此系列中,我还是只介绍我个人用到的技术。Wi-Fi的相关名词介绍到一家店里面,以前我们经常喊:老板,你们这边的WIFI叫什么名字?身为一个技术人员嘛,我们当然得知道“WIFI”到底指的是什么。“WIFI”就是指SSID: Service Set Identifier(服务集标识)SSID是一个

2020-07-07 00:33:58 624

原创 yaff2util的解析1--mkyaffs2工具

下载源码目前在网络上还是以google提供的为主,其他的看上去好像不维护的样子,当然如果有读者看到的话,请帮忙提供一下。比这目前参考的是gitee上同步下来的code.google.com/p/yaffs2utils。目前笔者的VPN到期,只能拿别人的代码来分析了。当然放心,分析完,我也将源码附上。编译编译还是超级简单的。直接在项目根目录下make all即可。[外链图片转存失败,源站可能...

2020-05-08 01:10:38 1601

原创 我的react学习之行-03如何设计高质量的React组件

前言在写这个博客系统的时候,觉得有必要讲一下react的一些知识,因为怕在文档中会涉及到很多有关react的事情,然后想着还是方便各位看官,免得去百度撒的,更重要的是为后面我直接写code只讲思想打基础,而不是每次都要顾虑语法等等。设计组件的大体原则和方法划分组件边界的原则react组件的数据种类react组件的生命周期主要是要设计一个易于维护的组件。每一个组件就该有自己的要处理的...

2019-04-14 17:22:06 244

原创 浅谈hexo博客-01安装hexo与建立网站

安装的前置条件gitnodejsgit安装brew install gitnodejsbrew install node#安装hexonpm install -g hexo-cli#初始化建站hexo init cd npm install具体的目录为以下结构├── _config.yml├── package.json├── scaffold...

2019-04-01 12:58:27 296

原创 嵌入式开发扯淡系列1-浅谈uboot

uboot简介   U-boot是标准的开放源码,主要的作用是系统引导。Uboot支持多种嵌入式操作系统内核,如Linux、NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS, android, 支持多个处理器系列,如PowerPC、ARM、x86、MIPS。根据具体的项目情况,我们需要修改uboot代码,来支持实际的项目需求。&...

2019-03-27 18:56:22 991 4

原创 我的react学习之行-02总体设计与react组件header设计

webpack可以引入react环境安装依赖包 npm i babel-core babel-loader babel-preset-env react react-dom babel-preset-react –save-dev修改package.json文件的scripts用于对编译模式的变化 "scripts": { "test": "echo...

2018-08-28 23:59:08 812

原创 我的react学习之行-01webpack与react环境搭建

webpack的基本配置webpack在这里就不过多介绍了,就是对零散的前端后端文件进行打包,因而也不用太多注意它具体的实现,我们只要先会用就可以了。项目初始化首先你的先安装nodejs,在这里安装请自行百度一下,我们还有更主要的事情没有讲,即用nodejs带的npm命令做项目的打包动作。 npm init 这里会让你填写项目的内容项,直接回车就可以,当然也可以自己写 ...

2018-08-28 23:57:54 205

原创 音视频知多少(1)声音与视频的基础知识

声音的物理性质声音是由物体振动而产生的,它是一种压力波,使周围的空气产生书迷变化,形成疏密相间的纵波(可以想象成石头落入水中激起来的波纹)声音的三要素频率、振幅和波形,这是物理意义上的说法,生活中,音阶的高低其实是频率,响度代表振幅,音色代表波形,一般来讲,生活中经常用分贝来描述响度,当声音超过一定分贝会受不了。音色也好理解,就是当你听钢琴与小提琴的时候,能很容易分辨,因为它的音色...

2018-07-04 11:30:45 938

原创 我的BIOS之行(10)-传值修改setup中的值

前言今天我的module算是大功告成,基本上已经能够将该有的功能都写完整了,如果你是跟这我做了一边,那么恭喜你,基本上你已经在uefi上基本算是入门了,可以自己写个module什么的来练练手什么的。效果如下图 功能实现介绍上一文,我们讲到了还需要实现通过pcie读取相关device的device id并将值回填给setup的item。 首先你得知道一点,我们是通过prot...

2018-03-15 23:18:40 5287 5

原创 我的BIOS之行(9)-protocol的使用与创建

protocol简介从语言上来看,protocol包含了属性和函数指针的结构体,从功能上看,protocoll是提供者与使用者对服务方式的一种约定。其实我们不难看出UEFI中的Protocol引入了面向对象的思想。每一个protocol都必须要有一个唯一的GUID。如我的github上面的code一样,在github上我每章都有对应的提交,你可以通过我的提交看到我所完成的内容。如下就是我所...

2018-03-14 12:40:52 4377 5

原创 我的BIOS之行(8)-事件的使用

前言UEFI已经不再支持中断了,所有的异步操作都是要通过事件来完成的,所以我在这一章节会教如何使用事件来完成一个非常简单的事件处理。上一章节我们说到了hob,那么继续在这个上面来完善我们的code,需要做的是,在dex阶段通过event事件来驱动读取hob。简介一个来说事件会提供用于操作事件、定时器以及TPL(任务优先级)UEFI事件服务 * CreateEvent(生...

2018-03-13 09:37:28 2617

原创 我的BIOS之行(7)-hob的使用

HOB(hand off block)简介有些时候,我们需要将一些information从PEI阶段传递到DXE阶段,那么这个时候我们就需要hob当做桥梁来给我们进行传递了。总的来说,PEI生产HOB,DXE消费HOB,在这里需要注意HOB只有在PEI阶段是可修改的,在DXE阶段是只读的,每一个Block都有自己的GUID与Struct运作模式当PEI阶段的module需要传递...

2018-03-08 21:51:13 8820 2

原创 我的BIOS之行(6)-setup中建立选项

前言目前我在使用的是AMI的visualeBIOS做开发,主要做笔记本的BIOS研发工作,前期一直在学习中,BSP的工作放在了一边,今天主要是向大家介绍如何在最新的UEFI2.0中加入相关setup选项新建一个module作为老司机,应该自己建立一个module来解释,那么你可以自己在veb文件中添加一个module,当然也可以直接用IDE自带的进行新建,components(右击)-...

2018-03-06 14:58:05 12749 14

原创 Android Sensor详解(9)Sensor ADSP Sensor1 api使用

1.Initialize the Sensor1 Frameworksensor1_error_e error;error = sensor1_init();if(error != SENSOR1_SUCCESS){ALOGE(" sensor1_init returned %d\n", error);}2. Open a new Sensor1 connection sensor1_

2017-10-26 10:07:47 4254 2

原创 漫谈android系统(9)-androidO的Android Treble 计划与大的变动

Android O的大变更Android O这次来了一个大手笔,谷歌的人第一次到下游厂商进行宣导,并指出了并开始向各家厂商灌输谷歌的新理念:彻底解决Android版本碎片化的问题我有幸参加了这次宣讲,虽然由于临近国庆没有拿到谷歌爸爸的PPT。最让我听到最多的字眼是,解决大家升级难的问题,因为每次在升级android的时候,BSP不光要关心底层,还需要不断的关心framework层的一些变动,虽然这样

2017-09-30 22:10:56 4165

原创 批处理

什么是批处理批处理文件(batch file)包含一系列 DOS命令,通常用于自动执行重复性任务。用户只需双击批处理文件便可执行任务,而无需重复输入相同指令。 批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理。批处理文件的扩展名为bat。批处理命令简介echo打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。 ec

2017-09-08 01:37:26 490

原创 spi

spi协议简介SPI(Serial Peripheral Interface,串行外设接口)是Motorola公司提出的一种同步串行数据传输标准。 SPI 总线在物理上是通过接在外围设备微控制器(PICmicro) 上面的微处理控制单元 (MCU) 上叫作同步串行端口(Synchronous Serial Port) 的模块(Module)来实现的, 它允许 MCU 以全双工的同步串行方式, 与各种

2017-09-08 01:29:25 994

原创 小白做四轴前篇(2)设计电源与电池

与你相遇在我找资料的过程中,我见到了大四轴与小四轴,特别是crazepony的开源精神让我敬佩,我想做的就是一个小四轴,大四轴是我未来的想法,毕竟大四轴需要天地飞等比较贵的遥控器等,屌丝我表示买不起。四轴基本组成部分动力部分:电机、电机驱动、桨叶控制部分:MCU、sensor、无线通讯电源部分:电池、稳压模块 首先我可以确认的是我想用STM32来做飞控,这样可以学到不少知识。power部分

2017-09-06 21:30:00 1320

原创 带你玩遍c语言(1)关键字

c语言有多少关键字你知道C语言有多少关键字吗?你能一一说出它们的名字与作用吗? 肯定有许多人答不上来,那么让我告诉你C语言一共32个关键字,具体如下: 关键字 意义 auto 声明自动变量,缺省时编译器一般默认auto int 声明整型变量 double 声明双精度变量 long 声明长整型变量 char 声明字符型变量 float 声明浮点型

2017-09-06 11:20:27 448

原创 小白做四轴前篇(1)-心中的梦

想法手上有一个闲置的STMF103原子的战舰开发版,当然是大学时间的时候入手的,后来工作了也就没有再用了,于是我就想把它捡起来再玩一玩,当然我的精力也是有限的,因而现在即使是有一些基础在,也不能实时地更新自己的知识,特别是自从有了STM32官方出的cubemx,可以说是已经达到及其容易建立项目的方案,甚至更快地处理后项目,但我在学习的过程中,希望自己掌握的更多是硬件本身做了什么,因而食古不化地仍然自

2017-09-02 23:17:46 464

原创 我的BIOS之行(5)-UEFI的世界观

UEFI的世界观如果有人对BIOS有兴趣,那么不得不提UEFI了。当然笔者这边只是代码与说明的搬运工,通过UEFI组织的官方文档来带大家了解UEFI。当然您要是觉得笔者就是个DB,想直接翻UEFI的文档,不想看笔者的瞎逼文章的话,请直接点击这里,自行下载看就是了。UEFI的简介文章开头就开始介绍了UEFI的由来~~~,感觉风中在凌乱~并在构成介绍中说明第一章是 Introduces the UE

2017-08-16 00:41:42 2878 1

原创 Android Sensor详解(8)sensor hal层分析第一篇

前言高通的hal层其实分2种,一种是直接从kernel这边报数据上来,由sensorhal层来监听,另外一种是走ADSP的模式,HAL层通过qmi的形式进行监听的。hal层简介Google为Sensor提供了统一的HAL接口,不同的硬件厂商需要根据该接口来实现并完成具体的硬件抽象层,Android中Sensor的HAL接口定义在:hardware/libhardware/include/hardwa

2017-07-17 17:11:36 13103 3

原创 Android Sensor详解(7)sensor framework层详解第二篇

app注册传感器监听在上一篇我们就已经写了一点关于app是如何拿到acc sensor的一些demo code。那么这边再一次为大家解释一下这个过程。这点我们从app注册sensor监听开始,注册工作是有SystemSensorManager类的RegisterListener方法来完成 如下图 那么我们还可以看一下使能sensor与设置延时值的调用关系 建立service与manager的链

2017-05-15 10:27:39 3551

原创 Android Sensor详解(6)sensor framework层详解第一篇

sensor app获取如下表,如需要获取sensor,就需要获取相关的type,这里先给大家罗列一下 那么在ap中我们是如何使用数据的呢?导入 android.hardware 包实现 SensorEventListener 接口使用的步骤: 获取SensorManager: getSystemService(SENSOR_SERVICE) 获取传感器

2017-03-22 23:41:27 5979 5

原创 漫谈android系统(8)-唠嗑说说手机制造的过程

前言这一系列的漫谈android系统博客好久没更新了,上次写也差不多是在16年7月份了,那时的我正忙着工厂的事宜,主要进入到了最紧要的关头,真正意义上的量产,于是所有关于工厂事宜的优先级被提到最高,同时还在各种插入学习sensor部分,忙得焦头烂额,以至于后面都没有时间在csdn上写一点东西了。当初我也不知该如何起这头来写博文,也就直接开始写了,这个头现在也就补上。顺便唤起我更新博客的欲望。手机制造

2017-03-09 00:30:06 1070

原创 Android Sensor详解(5)搭建adsp firmware的环境

获取与安装hexagon tools首先你得要有高通的账号,通过高通官网下载相关的tool。 通过搜索tool,就可以找到祥光的hexagon tool,然后直接安装即可。具体安装方法可以参考高通的80-VB419-25。这里仅仅是简单介绍 cd Linux/72-NN231-6.4.03 chmod a+x Install_HEXAGON_Tools_6.4.03.bin sud

2017-03-06 23:52:55 5396 3

原创 STM32寄存器开发系列(2)在ubuntu上搭建开发环境

前言在Ubuntu下开发STM32,两个常用软件是必须的。一是我们的交叉编译器,arm-none-eabi-xxx。二是st-link的驱动。这里的st-link并不像我们windows下面用的那样,一路点Next就好了。这里我们需要从github上面下载源码,自己编译,安装。st-link不仅仅是我们下载代码的工具,更是我们使用gdb调试的基础。arm-none-eabi-xxx的安装下载地址 a

2017-03-06 00:04:55 739

原创 Android Sensor详解(4)driver的攻防战

kernel drvier架构注册驱动probe函数的家常驱动完善kernel drvier架构下面我将以psensor,light sensor为例具体说明整个sensor的driver是如何启动的注册驱动很多人在看driver的时候首先会去注意probe函数,仅知道这个是入口函数,其他的不在管了。当然在我开发过程中也确实如此,因为整个框架都是固定好的,一般是不会改变的。但身为一个rd就该知

2017-02-24 00:13:55 3824

原创 Android Sensor详解(3)porting drvier

kernel层porting复制kernel driver file到相关目录修改archarmbootdtsqcom下的dtsi问题修改makefile使能够编译driver修改相关权限HAL层porting编译改错kernel层porting复制kernel driver file到相关目录将cm36xxx.c复制到 drivers/input/misc中 将cm36xxx.h

2017-02-23 16:50:59 4449 2

原创 我的react学习之行-00mac搭建nodejs,mongodb环境

mac开发环境搭建首先得安装homebrew,这将帮忙我们去安装相关的库。/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"安装过xcode后直接将上面的复制到终端,按回车即可搭建nodejs mongodb re brew install nodej

2017-01-05 00:48:39 1383

原创 STM32寄存器开发系列(1)启动代码设计

遇到的问题直接引用startup_stm32f10x_hd.s的问题在有了main函数以后会有以下啊错误 ..\Output\athenaH.axf: Error: L6218E: Undefined symbol SystemInit (referred from startup_stm32f10x_h此问题错误提示已经十分清楚的告诉你错在哪里了,Undefined symbol Syste

2016-12-09 23:23:14 929

原创 AndroidVibrator(1)在lk如何启动vibrator

vibrator简单介绍现在市场上所使用的vibrator一共有两种,他们是LRA与EMB。LRA 线性振荡器EMB 离心振荡器这次主要为大家介绍的是LRA LRA是在单个轴上产生振荡力的振动电机,与直流偏心旋转质量电机(EMB)不同,LRA依靠交流电压来驱动压靠与弹簧连接的移动质量块的音圈。当音圈在弹簧的共振频率下被驱动时,整个传动器以可感知的力振动。虽可通过改变交流输入来调节LRA的频

2016-12-09 23:14:26 2940 5

原创 Android Sensor详解(2)如何portingADSP中的sensor

ADSP sensor overview在初略介绍sensor的时候,就有讲到sensor的架构,在此继续将其具体化,来看看高通的sensor架构。我们可以通过下图看具体sensor是如何进行运作的。该图我们可以非常明显地看到Sensor通过I2C或者是SPI将数据发到Sensor Driver中,drivers通过device driver framework将数据包装后发给Sensor Mana

2016-11-20 21:20:53 9523 5

原创 Android Sensor详解(1)简介与架构

序最近在学习有关如何porting sensor的东西,仅借此机会写博客来督促自己进步,当然如果,有人对博客提出不同的理解,我觉得这是极好的,大家可以共同进步。在这一期的博客中,将详细分析sensor的东西。从底层到上层,从fw到上层。至于<漫谈android系统>这系列的文章,我将会持续更新.Android Sensor框架由上图就可以看到现在的android系统的sensor很多都是走的adsp

2016-11-20 21:18:49 13282 3

原创 STM32学习笔记(1)如何移植FreeRTOS

STM32固体库创建demo下载相关文件keil5下载地址:keil5下载相关的pack包:Keil.STM32F1xx_DFP.2.1.0.pack移植所需的freertos源码:FreeRTOSv9.0.0.exe移植所需的STM32固件库:STM32F10x_StdPeriph_Lib_V3.5.0.rar建立固体库项目建立如下图所示的项目组: BSP目录放相关的driver.

2016-10-09 00:20:24 8751 1

原创 漫谈android系统(7)-log系统1

前言罗升阳的《Android系统源代码情景分析》一书,有关log是如何显示,那么真的在代码中是如何实现的呢?就该问题我想需要细细分析bootloader层的log在firmware中的log是如何产生的,我没有看过firmware的code,不清楚它是如何实现的,这是我的短板,回头得补上!在这里先分析lk中是如何实现的。从aboot.c着手相信在源码中看到bootable\bootloader\lk

2016-07-17 02:33:01 3307

原创 漫谈android系统(6)硬件抽象层kernel分析

前言最近在拜读罗升阳的《Android系统源代码情景分析》一书,相信有许多搞android系统的人会去看看本书,那么针对于第二章的硬件抽象层,联系一下实际的工作,有必要将自己学习的东西做一个总结分析。当然这部分将依据老罗的书的思路一一揭开硬件抽象层的面纱。文件系统接口一般kernel层会给用户层暴露相关的接口供用户空间去使用。大致上可以被分为三类。proc文件系统接口传统设备文件系统接口dev

2016-07-01 01:45:57 5497

grabserial

用于对linux log时间计算和对开发中需求对linux进行分析

2018-11-29

RwPortableX64V1.6.9

RwPortableX64V1.6.9,RW帮助BIOS查看相关的信息RwPortableX64V1.6.9,RW帮助BIOS查看相关的信息RwPortableX64V1.6.9,RW帮助BIOS查看相关的信息

2017-09-13

Beyond_BIOS英文版本

Beyond_BIOS英文版本,Beyond_BIOS英文版本Beyond_BIOS英文版本,Beyond_BIOS英文版本Beyond_BIOS英文版本Beyond_BIOS英文版本

2017-09-06

cpuz的中文版

cpu-z 1.8桌面版

2017-08-24

PCI Local Bus Specification Rev3.0

PCI規範

2017-07-25

30天自制操作系统

30天自制操作系统

2015-09-30

空空如也

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

TA关注的人

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