- 博客(36)
- 资源 (3)
- 收藏
- 关注
原创 ITS FAIL test_sensor_fusion.py实时调试经验以及测试脚本修改
[ITS]sensor_fusion test_sensor_fusion.py Fail,测试gyro senor和camera sensor看到同一点位的时间和位置的同步。打印log,4350 android12 和845平台差不多:enable3ADebugData=TRUElogInfoMask=0xFFFFFFFFlogWarningMask=0xFFFFFFFFlogVerboseMask=0xFFFFFFFFlogCoreCfgMask=0xFFFFFFFFlogCo
2022-03-05 10:58:16
1334
原创 安卓编译1:envsetup.sh
build/make/envsetup.shfunction hmm() {cat <<EOFRun "m help" for help with the build system itself.Invoke ". build/envsetup.sh" from your shell to add the following functions to your environment:- lunch: lunch <product_name>-<bui...
2021-11-15 18:04:44
2318
原创 ubuntu18.04 VirtualBox5.2 Kernel driver not installed (rc=-1908) VERR_VM_DRIVER_NOT_INSTALLED解决方案
一:Kernel driver not installed (rc=-1908)The VirtualBox Linux kernel driver is either not loaded or not set up correctly. Please reinstall virtualbox-dkms package and load the kernel module by executing'modprobe vboxdrv'as root.If your system has E
2021-11-12 14:48:36
2155
原创 Android中 sp<> 以及函数后跟const
Android中定义了两种智能指针类型,一种是强指针sp(strong pointer),另外一种是弱指针(weak pointer)。其实称之为强引用和弱引用更合适一些。强指针与一般意义的智能指针概念相同,通过引用计数来记录有多少使用者在使用一个对象,如果所有使用者都放弃了对该对象的引用,则该对象将被自动销毁。弱指针也指向一个对象,但是弱指针仅仅记录该对象的地址,不能通过弱指针来访问该对象,也就是说不能通过弱智真来调用对象的成员函数或访问对象的成员变量。要想访问弱指针所指向的对象,需首先通过w..
2021-10-28 16:30:06
880
原创 git apply 打补丁
一:生成patch 和打patch有这样的 目录层次 x/xx/xxx/xxx/ttt.c我的当前位置是在 x/ 下 ,执行git diff> test.patch在test.patch补丁文件里的路径信息是这样的:- - - a/xx/xxx/xxx +++b/xx/xxx/xxx 如果 应用 test.patch 的时候的 位置 是在 x/ 下,那么 执行 patch -p1 < test.patch--------------------------...
2021-10-28 14:51:03
6528
原创 关于new的用法: classA & p = *new A;
// frameworks/native/libs/binder/static.cppMutex& gProcessMutex = *new Mutex;sp<ProcessState> gProcess;new其实就是告诉计算机开辟一段新的空间,但是和一般的声明不同的是,new开辟的空间在堆上,而一般声明的变量存放在栈上。通常来说,当在局部函数中new出一段新的空间,该段空间在局部函数调用结束后仍然能够使用,可以用来向主函数传递参数。另外需要注意的是,new的使用格
2021-10-28 10:52:41
3035
2
原创 [深入理解Android卷一全文-第六章]深入理解Binder
转载:https://blog.youkuaiyun.com/innost/article/details/47208049第6章 深入理解Binder本章主要内容· 以MediaServer为切入点,对Binder的工作机制进行分析。· 剖析ServiceManager的原理。· 以MediaPlayerService为切入点对Client和Service的交互进行分析。· 学以致用,探讨如何写自己的Service。本章涉及的源代码文件名及位置下面是我们本章分析的源码文...
2021-10-27 09:48:35
6526
原创 libgcc_s.so.1: version `GCC_7.0.0‘ not found 错误解决方法
新电脑装了ubuntu18.04 然后编译高通429项目,AP 可以编译通过,但是CP编译提示如下错误,看起来和gcc 版本有关,但是哪怕自己安装了gcc-4.8 / gcc-6 /gcc-7 依然解决不了。编译log:libgcc_s.so.1:version`GCC_7.0.0'notfound(requiredby/usr/lib/i386-linux-gnu/libstdc++.so.6 File "/media/pxs10/E/10proj/watch/AMSS/ads...
2021-10-18 21:21:08
5945
原创 如何开启ccache缓存机制加速编译
一般ccache开启后,第一次编译是和常规编译没多大区别的,后期的增量编译或者删除out后对同一套代码编译的话,差不多可以提速20%。但如果在不同代码之间来回切换,因为在不停的刷新缓存,所以也没多大提速了。sudo apt install ccache -y然后追加如下内容到 ~/.bashrc 文件下export CCACHE_EXEC=$(command -v ccache)export PATH="$CCACHE_EXEC:$PATH"export USE_CCACHE=tr
2021-09-27 09:49:31
1322
原创 高通see架构ppg测试流程sns_client_test_cpp
一:浅析高通see架构测试流程。sns_client_test_cpp 命令vendor\qcom\proprietary\sensors-see\test\sns_client_example\src\sns_client_test.cpp通过log 来分析流程比较容易一些:msm8937_32go:/ # sns_client_test_cpp pah813xselftest 7starting sensors test for press ctrl-C to stop pah813xse
2021-09-03 10:40:49
2080
原创 882@for (auto x : nums)遍历时const auto& 和auto的区别
auto 和const auto&1、auto即 for(auto x:range) 这样会拷贝一份range元素,而不会改变range中元素;2、当只想读取range中元素时,使用const auto&。如:for(const auto&x:range),它不会进行拷贝,也不会修改range,效率会比用auto快一点 想要拷贝元素:for(auto x:range) 想要修改元素:for(auto &&x:range) 想要...
2021-09-01 20:29:08
5932
2
原创 系统属性文件 ro.hardware值
一:hardware/libhardware/hardware.c01/**02*Thereareasetofvariantfilenameformodules.Theformofthefilename03*is"<MODULE_ID>.variant.so"sofortheledmoduletheDreamvariants04*ofbase"ro.product.board","ro.board.platform"and...
2021-08-13 12:14:34
6749
转载 getSystemService 流程分析
getSystemService追根溯源在安卓开发过程中,我们经常会用到getSystemService方法来获取各种系统服务,比如下面几种常见的获取服务代码:NetworkInfo networkInfo = ((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();TelephonyManager tm = (TelephonyManager).
2021-08-03 14:28:12
1590
转载 SystemServer流程解析
SystemServer类解析安卓系统有一个system_server 进程,该进程由zygote进程创建,负责运行所有的系统服务,该进程的入口类是 frameworks/base/services/java/com/android/server/SystemServer.java。下面来解析一下该类的主要功能。该类有一个main方法,说起main方法学过java的都熟悉,main方法是一段java程序的入口,也可以说是一个java进程的入口。我们来看一下该方法源码(源码版本是android.
2021-08-02 14:31:26
772
原创 004@ kernel 的配置和编译总结 分析2
sudo chmod 777 * -rkernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND);kernel_init是要执行的函数的指针,NULL表示传递给该函数的参数为空,CLONE_FS |CLONE_SIGHAND 为do_fork 产生线程时的标志,表示进程间的fs信息共享,信号处理和块信号共享start_kernel--->vfs_caches_init----->mnt_init()m...
2021-07-07 11:22:36
660
原创 004@ kernel 的配置和编译总结 分析1
一:关于内核的配置和编译和uboot是一样的1 解压缩2 打patch3 配置内核4 编译配置内核有3种方法:1 make menuconfig这样就需要配置所有的配置项2 使用默认的配置,在其上面做修改。在arch/arm/configs下有很多默认的配置,XXX_defconfig,可以根据你板子所使用的芯片来选择以下相似的配置, 比如make s3c2410_defconfig,之后再make menuconfig,make menuconfig是需...
2021-07-07 11:21:51
717
原创 003@ uboot第二阶段分析(下)
对于uboot两阶段的小结,很重要!!!第一阶段:在脚本uboot.lds中 ENTRY(_start) _start的地址一般是TEXT_BASE设置异常向量表 进入svc管理模式 arm状态 关看门狗 关中断 时钟初始化 cpu初始化(关mmu 关数据和指令缓存 cpu速率)和内存初始化 在函数cpu_init_crit中完成 重定位 设置栈 清bss断 跳入到start_armboot函数第二阶段 就进入到lib_arm/boa...
2021-07-07 10:10:54
485
原创 003@ uboot第一阶段分析(上)
1:第一阶段:-> 硬件的初始化,关看门狗,关中断,设置cpu 频率,设置时钟,ram 初始化。-> 为加载第二阶段code,开辟内存空间-> 复制第二阶段code 到 RAM 空间-> 设置好 栈-> 跳转到 第二阶段的 c 代码入口点。 (在跳转之前要清 BSS 段,初始值为0的全局变量和 静态变量放到此处)2:第二阶段:-> 初始化本阶段的硬件-> 检查系统内存映射,(确定板上使用了多少内存,地址空间是什么)...
2021-07-07 10:08:57
576
原创 001@ uboot的配置和编译
1:uboot的配置和编译:配置:make XXXX_config编译:make之后会生成4个文件,分别是 uboot ,uboot.srec ,uboot.bin,uboot.map.其中,对于我们最重要的是uboot.bin二进制文件,它可以直接烧录到机器里,进行启动,打开串口,会看到打印信息,当然,如果你对uboot进行改写了,让它在3秒倒数计时里按下空格键,进入到uboot的命令行。配置:make XXXX_config //进入makefi...
2021-07-07 10:05:40
678
原创 883@ container of() 函数解析
container of()在linux 内核编程中,会经常见到一个宏函数container_of(ptr,type,member)已知结构体 type 的成员 member 的地址 ptr,求解结构体type的起始地址。type的起始地址 = ptr - size (这里需要都转换为char *,因为它为单位字节)。container of函数原型:#define container_of(ptr, type, member) ({ \ ......
2021-07-06 16:42:55
114
原创 882@ 指针函数和函数指针
指针函数与函数指针的区别1、指针函数是指 指向指针的函数,即本质是一个函数。 函数返回类型是某一类型的指针类型标识符 *函数名(参数表) int *f(x,y);2、函数指针是指向函数的指针变量,即本质是一个 指针变量。int (*f) (int x); /*声明一个函数指针*/f=func; /*将func函数的首地址赋给指针f */...
2021-07-05 19:24:11
156
原创 881@ snprintf函数使用总结
【依赖头文件】#include<stdio.h>【函数原型】int snprintf(char *str, size_t size, const char *format, …);【函数参数】str:目标字符串;size:拷贝字节数(Bytes); format:源字符串; …格式【函数功能】最多从源字符串format中拷贝size字节的内容(含字符串结尾标志’\0’)到目标字符串The functions snprintf() write at most s..
2021-07-03 20:01:03
1447
原创 050@ 高通845平台抓取3a log
adb wait-for-deviceadb rootadb wait-for-deviceadb remountadb wait-for-deviceadb shell setenforce 0adb shell rm /vendor/etc/camera/camxoverridesettings.txtadb shell mkdir /vendor/etc/cameraadb shell chmod 777 -R /vendor/etc/cameraadb shell touch /v
2021-05-10 10:11:23
1610
原创 001@ubuntu 18无法编译Android 7/8问题
android7/8 默认启用jack-server, 对代码进行预编译和处理,加快系统编译和构建,弊端是同一台机器不允许多用户同时编译,经常出现端口冲突,内存不足和溢出现象<android 10之后该功能默认被禁用了>。另外ubuntu系统默认开启了自动升级功能,因此默认会升级相关软件包或依赖包,从而出现无法编译代码问题。主要问题如下:ubuntu 16.04 Linux 4.15.0-142-generic gcc 5.4.x1)java 8u292 ...
2021-05-10 09:30:50
180
原创 BeyondCompare3提示许可密钥过期
方法/步骤 这是个存在时间很长的问题了,网上转载最多的方法是删除“”C:\Users\[Your User Name]\AppData\Roaming\Scooter Software“文件夹再重新注册。 这种方法能解决3281-0350,但之前的历史记录和各种配置全部丢失,对于做代码维护类工作损失巨大,今天介绍一种以最小代价修复3821-0350的方法: 用任意文本编辑软件打开“C:\Users\[Your User Name]\AppData\Roaming\Scoot...
2021-03-09 15:40:16
527
转载 11@ cameraService的注册
cameraService的注册在ServiceManager的初始化过程中,会启动MediaService进程,而在MediaService进程中会初始化一系列的服务,这其中就包括CameraService.int main(int argc __unused, char** argv){...sp<ProcessState> proc(ProcessState::self());s...
2018-04-17 20:59:34
455
转载 02@ V4L2框架分析学习二
v4l2_devicev4l2_device在v4l2 框架中充当所有 v4l2_subdev的 父设备,管理着注册在其下的子设备。 以下是v4l2_device结构体原型( 去掉了无关的成员 ):1234567891011struct v4l2_device { structlist_head subdevs; //用链表管理注册的subdev ...
2018-04-17 19:41:21
687
转载 01@ V4L2框架分析学习一
1、概述.Video4Linux2是Linux内核中关于视频设备的内核驱动框架,为上层的访问底层的视频设备提供了统一的接口。凡是内核中的子系统都有抽象底层硬件的差异,为上层提供统一的接口和提取出公共代码避免代码冗余等好处。就像公司的老板一般都不会直接找底层的员工谈话,而是找部门经理了解情况,一个是因为底层屌丝人数多,意见各有不同,措辞也不准,部门经理会把情况汇总后再向上汇报;二个是老板时间宝贵。V...
2018-04-17 19:38:26
511
转载 PBL-SBL1-(bootloader)LK-Android启动过程详解之一(高通MSM8953启动实例)
对于嵌入式工程师了解芯片启动过程是十分有必要的,在分析、调试各种问题的时候都有可能涉及到这方面的知识。同时这部分知识也是比较复杂的,因为其中涉及到芯片内部架构,启动各个阶段软件代码执行顺序,启动模式等等。下面以比较常用的Qualcomm MSM8953芯片的启动过程为例,进行宏观分析(大部分翻译了高通的手册^-^),下一篇文章进行代码分析。处理器核心可以看到MS
2018-04-14 14:22:43
10330
1
原创 005@ arm-linux之uboot向内核传递参数(setup_arch分析)
arm-linux之uboot向内核传递参数(setup_arch分析)抛开uboot不谈,先看看uboot给内核传递的参数是什么样的东西,在arch/arm/kernel/setup.h 文件中的struct tag结构体:struct tag { struct tag_header hdr; union { struct tag_core...
2018-04-12 22:33:20
454
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人