- 博客(59)
- 收藏
- 关注
原创 Android的硬件接口HAL-2 HIDL
4 在default中增加service.cpp。5 在default中增加Android.bp。3 生成Android.bp。不说废话,直接上干活。8 增加client。
2024-03-28 14:29:21 258
原创 BSP开发的内容
总之,BSP 是为特定硬件平台定制的软件支持包,旨在简化嵌入式软件开发过程,并为开发人员提供必要的软件基础设施和工具。:为特定硬件组件(如处理器、外设、传感器等)提供底层软件接口,允许操作系统或应用程序与硬件进行通信和控制。:可能包括操作系统内核和相应的 BSP 驱动程序,用于管理硬件资源、调度任务、提供文件系统支持等。:包括硬件规格、软件开发手册、API 文档、示例代码等,帮助开发人员理解和使用 BSP。:提供额外的软件功能和服务,例如图形界面、网络协议栈、文件系统、USB 支持等。
2024-03-27 01:43:26 79
原创 一个很好用的scp免密方法
命令ssh-copy-id,真的太好用了。user远程远端用户名,target_host是远端服务器。一般来说都有公钥,如果没有,生成一个就行。感觉生活又更美好了一丢丢。
2024-03-25 20:25:56 67
原创 GStreamer 1 简单看看
GStreamer的核心是pipeline,这块很强,很适合现在对视频流进行连续处理。下面的sources,sinks,containers,decoder就是一个个的插件,应该一个插件就是一个so动态链接库。我在想可能它家的机制在商业上也有一定好处,比如说插件之间可以比较独立,而且可以闭源发大财,所以现在很多大厂都基于它在搞。Comprehensive Core Library:核心库,提供插件API框架,应该涉及到线程管理,任务调度,同步,调试系统等等。从它家的主页来看,整个GS大概有以下4个部分。
2024-03-22 01:41:38 532
原创 高通平台初步
涉及到的部件主要有HLOS,MPSS(medem),aDSP&cDSP,XBL(Boot build),AOP,TZ,WLAN,BTFM,video,WiGig,VENUS,SLPI,CPE,Secure processor。前面都是开源,从TZ开始后面的都是给bin。首先是安装环境,一些常规的,主要是Ubuntu,JDK,repo,ARM交叉编译器,Python,Perl,Samba(可选)。上面的图有点小怪,主要是Libraies,Framework,App,这部分感觉应该是Google的。
2024-03-20 14:42:03 390
原创 Android VINF和兼容性矩阵
本质上其实就是两部分,设备提供什么能力,系统需要什么能力。然后看两者能否兼容匹配上。这两者都是使用xml进行描述。主要是Android8之后,system和vendor分离,为了确保两者的兼容性搞出来的。周末搞这玩意欲仙欲死,没办法只有看看。VINTF是供应商接口对象(VINTF 对象),准确的说,这个是属于兼容性矩阵概念。有点想起了以前看过的一个电影,异次元杀阵。下面是谷歌官方的图。我看说的一般是在/vendor/etc/vintf下面增加。说是下面这个命令可以列出所有接口。
2024-03-17 03:10:19 479
原创 NDK的一些概念
JNI我们都知道,存在很久的东西了,那么JNI和NDK有什么关系呢?我的理解,JNI只是NDK技术中的一个,谷歌对NDK的定义是一个开发包,没有像Linux中那么自由,但是好处是明显的,移动端最尴尬的就是跨平台,他把这事给你干了,编译器,调试器,底层库,都给你弄了,写代码之后自动就是ARM,X86多平台,一些库的选择事情他也给你干了,不用自己再去移植。对于想赚差价的中间商,也是有三个好处的。另一个是C/C++的代码更有通用性,移植到其它平台更方便。说到NDK,首先绕不过去的问题就是这玩意存在的意义。
2024-03-16 15:10:05 97
原创 安卓的OTA
然后在misc分区中写某个指令,misc应该是传统linux的uboot env分区,可以在里面写参数。OTA的全升级是system 分区、boot 分区和 recovery 分区,好像缺了好几个,vendor不升,product也不升,升级boot分区是因为在安卓中boot分区还包含了kernel。后面谷歌搞的AB分区,其实就是路由器的“烧不死”,两套系统,我以前也参与过类似东西的设计。当然,谷歌花活多,现在又加了动态分区和快照的技术,当然,严格来说这个其实也不算OTA的东西。
2024-03-14 01:38:07 396
原创 Android的编译系统
安卓的编译真的太多吐槽的地方了,有必须到croot下编译的,有随便改个.c就要七八分钟编译的。我有时候真的不知道这么多开发人员是怎么挺过来的。算了,下面这个写的很好了,我先看看吧。今晚简单看看这个编译系统soong吧。
2024-03-13 01:17:56 181
原创 [随笔]经验的护城河会毁于AI
基带的坑在于要和世界上各种乱七八糟的手机,基站匹配,你没有那么大的数据量,没有那么大的覆盖,很难做全。你规范做的再好,也会所有地方都照着你的要求弄,要么自己改,要么逼着别人改。基带是华为高通的杀手锏,浏览器是谷歌的,操作系统算是微软和谷歌的。浏览器和操作系统亦然,一个是要适配世界上数以亿计的网站,一个的是适配数千万的应用程序,反过来说那些天量的网站和应用程序也适配了你的浏览器和操作系统。我认为是,AI肯定会改变这一切,后台自己学习和适配,再多的内容需要的也只是算力和时间。毕竟,这是一个变革的时代。
2024-03-07 19:38:51 174
原创 V4L2学习(框架和上层)
上层有什么呢:GStreamer,FFmpeg,OpenCV,v4l-utils。当然,你直接调用ioctl写一个简单的也行,也不算复杂。最近才看了下V4L2,说起来V4L2实际上是一个接口标准。使用V4L2上层接口的应用,V4L2框架,以及使用V4L2下层接口的驱动。另外要值得看的是和GStreamer之间的接口处理,等到看GStreamer的时候再写写吧。上层总的来说不算复杂,10来个接口,照着写一遍就懂了,唯一就是BUF的处理可能会麻烦点。NVIDIA的这个图说的还比较简明扼要。
2024-03-04 01:56:31 403
原创 试手一下CameraX(APP)
name,contentValues,mediaStoreOutputOptions都是作为参数使用。在output中,好像是使用了lambda函数,弄了一些内置行为。name,contentValues,outputOptions都是作为参数传进去。大体的流程就是首先取得surface,然后使用cameraProvider.bindToLifecycle,将surface作为参数传进去。这个应该是camerax的控件。增加两个按键,分别是takephoto和capturevideo,并增加按键事件。
2024-03-03 22:22:28 255
原创 试手一下CameraX(基础)
有JDK的,有要翻墙下Gradle的,有dependencies的,总之就是很难顺利跑起来。记得之前还在上课,因为Gradle的问题也搞出来很多乌龙,折腾半天。真的,这玩意真的是我用过最难用的IDE,也许没有之一。IDE嘛,再加上应用程序框架,其实有很多,比如VC++,QT,IOS,安卓,甚至web也算一种,骨子里内容其实都是那些。GUI框架,各种控件,消息管理,大家你抄我我抄你,东西总的来说差别也不大。Android Studio神奇的是就算你现在别人的全套工程,在你本地也不一定跑的起来。
2024-03-02 13:53:28 103
原创 Android的硬件接口HAL-1 概述
首先IPC有很多种,管道,域套接字,message,共享内存,问题是谷歌为什么要搞出来一套新的呢?在接口中主要定义的还是函数,也就是说比管道这些更上层,更适合Java的调用。就算上层函数调用,其实也很多方式,比如COM,soap,rpc都是干这事的。有大神说直通式就是使用HAL,但还是在一个进程,绑定式是使用HAL,但是数据通过Binder转发。现代HAL(Conventional HAL),使用Iibhardware来管理so,同时下层的驱动使用一个单独的分区,vender.img,和system解绑。
2024-02-29 02:40:47 1078
原创 从嵌入式Linux到嵌入式Android
最近开始投入Android的怀抱。说来惭愧,08年就听说这东西,当时也有同事投入去看,因为恶心Java,始终对这玩意无感,没想到现在不会这个嵌入式都快要没法搞了。为了不中年失业,所以只能回过头又来学。首先还是说Android是基于Linux内核的,所以说骨子里还是linux,但是针对移动端,进行了深度优化。
2024-02-27 23:55:07 1009 2
原创 设备树学习(DOING)
尤其是嵌入式领域,设备多种多样,但是很多设备接口都是标准的,或者大同小异。后面linux内核就把这些做成公共库抽象出来,后面设备只需要传入“我是什么设备”,那么linux就可以从内核中公共库找到需要的驱动,避免了很多质量不一的冗余代码,而且也方便了管理。基本流程是编译前编写DTS(有一个DTSi,可以视为厂商的DTS头文件,可以提取一些共性数据),之后会通过DTC编译成DTB,通过Bootloader传给kernel。在设备树中,涉及到的文件主要是DTS,DTSI,还有DTB。3 DTS编写的规则。
2024-02-24 16:27:47 196
原创 ADB的使用
本质其实就是一个加强版的串口工具(这样理解大差不差)。adb命令其实对应一个server,在板子上有一个adb的守护进程。晚上大概试用了一下,就只是一个工具,真的是很乏善可陈。除此之外就是命令行工具,此外好像没啥了额。3 支持Android特色,可以安装apk。2 集成了ftp的功能,可以上传文件。1 支持网络,可以多客户端。
2024-02-22 23:43:36 82
原创 摄像头如何bring up(来自GPT)
在进行 Bring Up 时,仔细查看摄像头和系统的规格书、技术文档以及相关的硬件/软件工具,以确保每个步骤都按照规格和设计要求正确执行。摄像头的 Bring Up 涉及一系列步骤,以确保摄像头能够正确运作并与系统(硬件和软件)协同工作。- 检查摄像头的硬件配置,包括时序、时钟频率和其他配置参数。- 确保摄像头正确连接到相应的接口,如MIPI CSI-2接口或其他通信接口。- 将摄像头与其他系统组件进行集成测试,确保与整个系统的兼容性。- 验证摄像头的时钟和同步信号,确保与系统的其他部分同步。
2024-02-21 01:05:55 286
原创 正则表达式学习
综上可以看到,在一些复杂条件的判断,正则表达式还是很有优势。写代码去判断真的要搞半天,有些复杂的估计可以进leetcode了。最后,所有的表达式其实可以用GPT生成,也不用自己去写。。。懂一些基本概念即可。
2024-02-17 12:28:20 91 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人