- 博客(24)
- 收藏
- 关注
转载 Android HIDL 编程规范
目录结构和文件命名软件包名称版本导入接口名称函数结构体/联合字段名称类型名称枚举值备注文件备注TODO 备注接口/函数备注(文档字符串) 格式软件包声明函数声明注释枚举声明结构体声明数组声明矢量HIDL 代码样式类似于 Android 框架中的 C++ 代码,缩进 4 个空格,并且采用混用大小写的文件名。软件包声明、导入和文档字符串与 Ja...
2019-07-09 11:59:42 590
转载 Android HIDL学习(5) ---- 设计要素
Android HIDL学习(5) ---- 设计要素 <!-- 作者区域 --> <div class="author"> <a class="avatar" href="/u/f75d5c29779b"> <img src="//upload.jianshu.io/users/upload_...
2019-07-09 11:59:17 231
转载 Android HIDL学习(6)---Fast Message Queue
Android HIDL学习(6)---Fast Message Queue想聊聊FMQ的,无意中看到下面这篇文章,写的很好,所以就直接拿来用了,笑纳笑纳~https://www.jianshu.com/p/5c6e35c7c346快速消息队列 (FMQ)HIDL 的远程过程调用 (RPC) 基础架构使用 Binder 机制,这意味着调用涉及开销、需要内核操作,并且可以触...
2019-07-09 11:59:11 681
转载 Android HIDL 实例
前言:从Android HIDL 详解 一文得知HIDL 使用passthrough 模式,为了与原来的HAL 版本兼容。除了passthrough 模式,还有一种binderized模式。本文通过HIDL 中的Helloworld 进行实例分析,进一步了解HIDL 使用。本文source code 基于Android P。 Step 1 确定...
2019-07-09 11:58:31 1353
转载 Android HIDL学习(4) ---- 高性能比较(HIDL, FMQ, MMAP)
Android HIDL学习(4) ---- 高性能比较(HIDL, FMQ, MMAP)写在前面公司一些方案,在Andoird P上架构必须要修改成HIDL,不然会遇到一系列的Selinux的问题,所以决定还是按照标准的Android HIDL的架构重新写了方案(因为比较机密,所以不透露具体方案代码)。但是我们的这个模块对性能的要求非常高,不然咱们的设备怎么能打败竞争对手呢...
2019-07-09 11:58:02 877
转载 Android HIDL学习(3) ---- 注册回调
上一节我们学会了如何创建HIDL的server端和client端,对于那些没玩过Android O或者以上的BSP开发者而言,可以吹上一阵子牛逼了,毕竟比人家多了一个技能,面试的时候也可以装一下了_OK,我们还知道了在Android O或者以上的Android版本上创建一个HAL模块的一般流程是如何的,我们这一节来看一个比较简单的东西,也是每个模块基本必不可少的一个玩意儿,那就是回调函数。注册...
2019-07-09 11:57:51 1529 1
转载 Android HIDL学习(1) ---- 简介
HIDLHAL接口定义语言(简称HIDL)适用于指定HAL和其用户之间的接口的一种接口描述语言(IDL)。HIDL允许指定类型和方法调用。从更更烦的意义上来说HIDL适用于在独立编程的代码库之间通信的系统。HIDL旨在用于进程间通信(IPC)。进程之间的通信经过Binder化。对于必须与进程相关联的代码库,还可以使用直通模式。HIDL可指定数据...
2019-07-09 11:57:34 348
转载 Android O及以上版本hal程序书写
简介Android O的一项新元素是 Project Treble。这是 Android 操作系统框架在架构方面的一项重大改变,旨在让制造商以更低的成本更轻松、更快速地将设备更新到新版 Android 系统。在Android O之前,HAL是一个个的.so库,通过dlopen来进行打开,库和framework位于同一个进程。新的架构之下,framework和hal运行于不同的进程,所有的HA...
2019-07-09 11:57:19 1641
转载 ARM中的RO段、RW段和ZI段的区别
1 前言 一直以来对于ARM体系中所描述的RO,RW和ZI数据存在似是而非的理解,这段时间对其仔细了解了一番,发现了一些规律,理解了一些以前书本上有的但是不理解的东西,我想应该有不少人也有和我同样的困惑,因此将我的一些关于RO,RW和ZI的理解写出来,希望能对大家有所帮助。 要了解RO,RW和ZI需要首先了解以下知识。2 ARM程序的组成 此处所说的“ARM程序”是指在A...
2019-07-09 11:56:56 266
转载 Android HIDL学习(2) ---- HelloWorld
Android HIDL学习(2) ---- HelloWorld程序员有个癖好,无论是学习什么新知识,都喜欢以HelloWorld作为一个简单的例子来开头,咱们也不例外。OK,咱这里都是干货,废话就不多说啦,学习HIDL呢咱们还是需要一些准备工作和门槛的。准备工作:Android BSP编译环境Android设备的BSP代码Android设备,用来跑测试代码...
2019-07-09 11:51:11 429 2
原创 设备树(DTS)
1.DTS(device tree source)设备树的由来和使用设备树的由来 什么是设备树:设备树被用来描述板级信息,包括:CPU的数量和类别、内存基地址和大小、总线和桥、外设链接、中断控制器和中端使用情况、GPIP控制器和GPIO使用情况、Clock控制器和Clock使用情况等。 设备树信息被保存在一个ASCII文本文件中,适合人类的阅读习惯,类似于xml文件,在ARM...
2019-07-09 11:50:38 467
转载 Linux 中执行Shell 脚本的三种方式
Shell 脚本的执行方式通常有如下三种:(1)bash script-name 或者 sh script-name;(2)path/script-name或者./script-name;(3)sourcescript-name或者. script-name。下面,分别介绍下这三种方式的特点:(1)bash script-name或者sh script-name这是当脚本文件本身没有可执行权...
2019-07-09 11:49:52 656
转载 ADS1.2出现erro starting external process,Process error code 87(0x57)参数错误
系统是win8的,做了一个简单的程序make之后没有错误,然后debug,弹出窗口error starting external process process error code 87。(0x57)参数错误是系统兼容问题。在ADS的兼容性上选择xp sp3兼容模式,以管理员权限启用。就可以了解决了,如果debug还不行,就把ADX属性也设置一下兼容模式就解决了!!done转自:htt...
2019-07-05 14:41:43 1820
转载 ARM指令集详解
ARM指令集详解1. 汇编1.1.通用寄存器通用寄存器37个寄存器,31个通用寄存器,6个状态寄存器,R13堆栈指针sp,R14返回指针,R15为PC指针,cpsr_c代表的是这32位中的低8位,也就是控制位CPSR有4个8位区域:标志域(F)、状态域(S)、扩展域(X)、控制域(C)MSR - Load specified fields of...
2019-07-03 14:49:24 946
原创 Linux命令
在指定类型文件中搜索关键字:--include=xxxgrep -rns --include=*.h "CONFIG_SYS_TEXT_BASE"
2019-07-02 16:29:49 108
转载 硬件数据手册中如何表示信号高低电平有效?
在数据手册中,你常会看到,对于一个引脚定义,有些字母上面带一横杠的,那是说明此引脚/信号是低电平有效,比如你上面看到的RE头上有个横线,就是说明,此RE是低电平有效,此外,为了书写方便,在字母后面加“#”,也是表示低电平有效,比如我上面写的CE#;如果字母头上啥都没有,就是默认的高电平有效,比如上面的CLE,就是高电平有效。另外在原理图中通常还有如下标识方法表示低电平有效:如下:某款F...
2019-06-26 11:42:57 5293
转载 根据pc值确定出错的代码位置
我们知道在内核里面不能够处理指向0地址的指针,我们故意引入这样一个指针,并根据打印的出错信息来进行分析,下面是我们的程序:#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include &...
2019-06-21 14:57:04 4555 1
转载 根据oops信息确定出错的代码位置
在内核调试过程中,经常会出现kernel painc等错致命错误导致内核崩溃,遇到这种问题可以根据oops信息逐步推断出内核出错的位置,找出出错的代码。驱动程序一般分为作为模块通过 insmod加载 和直接编译进内核中两种。利用tiny4412开发板,故意...
2019-06-21 14:43:37 1041
转载 Pinctrl子系统之一了解基础概念
1.Linux Pinctrl子系统简介在许多soc内部都包含有pin控制器,通过pin控制器的寄存器,我们可以配置一个或者一组引脚的功能和特性。在软件方面,Linux内核提供了pinctrl子系统,目的是为了统一各soc厂商的pin脚管理。2.Linux P...
2019-06-21 13:39:09 770 1
原创 HAL库和fingerprintd整合进系统
添加一个HAL模块后修改hardware/libhardware/modules/Android.mk, 将hq_fm模块加进去但是android整体编译时不会生成so库。单独编译时是可以生成so库:一直以为添加了Android.mk后相应的文件的就会编译出来,然而事实并非如此,有Android.mk只表了这个模块有了编译规则,后续可以按照这个规则来进行编译,至于在全编整个项目时会不...
2019-06-14 11:23:46 183
原创 机器学习2--week3
这里写自定义目录标题Tensorflow简单教程及简单教程1 - Exploring the Tensorflow Library功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的...
2019-06-13 15:05:52 102
原创 Linux内核CONFIG_OF宏定义
之前看代码很多地方都看到CONFIG_OF宏,而且很多宏的创建都需要依赖这个宏的建立,找了下代码,发现这个宏默认是打开的,具体位置在kernel/arch/arm/Kconfig或kernel/arch/arm64/Kconfig,前面select关键字即设置为y...
2019-06-13 14:56:41 4396
原创 anaconda 更换默认官方镜像
使用anaconda创建虚拟环境,发现无法创建,报错如下:按照提示使用命令conda config --show channels,发现自己目前使用的是清华镜像:到清华镜像网站去发现清华因为没有得到官方授权,已经关闭了镜像通道,soga:没办法,更换回默认镜像:再进行操作即可...
2019-05-23 10:29:31 1277
转载 Fingerprint指纹识别学习
Fingerprint模块架构图如下,这里分为application,framework,fingerprintd和FingerprintHal这几个部分,不涉及指纹的IC库和驱动这部分,这部分逻辑由指纹厂商来实现,目前了解的并不多。 二、Fingerprint framework初始化流程在系统开机的时候,会启动各种Service,包括FingerprintService。从
2017-08-23 15:02:33 9500
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人