- 博客(79)
- 资源 (6)
- 问答 (4)
- 收藏
- 关注
原创 git错误:fatal: detected dubious ownership in repository at xxxxxx
这个错误通常是由于Git仓库目录的拥有者或权限问题引起的。Git检测到仓库目录的所有权可能存在不一致或不安全的情况。
2025-03-31 20:24:55
270
原创 pip安装库时warning: retrying (retry(total=4, connect=none, read=none, redirect=none, status=none)) 解决
使用pip安装python相关库时有时会遇到此类报错,主要原因就是访问代理超时,针对此类问题解决方案总结如下。
2025-02-25 20:09:38
1827
原创 Android SoundTrigger架构学习
SoundTriggerHelper是一个应用辅助工具类,它是应用和服务(这里是SoundTriggerSerivice)之间的适配层,其内部封装了常用的API接口,供APP直接调用;SoundTriggerHelper与SoundTriggerService之间使用HIDL/AIDL 进行交互;它是SoundTrigger架构的服务核心,运行在system server进程下,负责SoundTrigger整个系统的调度;registerSoundModel() // 模型注册。
2025-02-22 18:15:25
670
原创 安装python相关的whl(wheel)包操作指导
在Python中, 文件(即wheel文件)是一种用于分发和安装Python包的二进制格式;Wheel文件是一个压缩包,内部包含包的代码、依赖信息以及其他必要的元数据;Wheel文件的作用是提供一种高效、方便的Python包安装方式,尤其适用于包含编译代码的包。功能说明:Wheel文件可以针对特定的平台(如Windows、Linux、macOS)和Python版本进行分发,确保兼容性。由于Wheel文件已经包含了编译好的二进制文件,安装时可以直接使用,不需要额外的编译步骤;Wheel文件通常包含所有必要的依
2025-02-08 11:07:27
1239
原创 借助python解析android log及UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte xxx: invalid continuation
android开发中,经常遇到分析android日志的场景,一般情况下可以借助Notepad++等工具进行log关键字筛选分析;有时候针对log量较大的场景,分析起来比较吃力;此时就想先进行log解析,把一些关键log筛选出来,然后针对筛选的log再进行二次分析;本文尝试使用python完成log的初步解析和筛选,相关总结如下,仅供参考。我们知道android log都是有一定规律的,如下:基于上述log,我们借助python中的re模块,可以指定如下筛选格式:2.2、定义一个解析log函数,并
2025-02-05 20:46:43
350
原创 Android 版本号、代号、API级别对应关系汇总
Android API 级别 是指 Android 操作系统中不同版本的应用程序接口(API)的编号。每个 Android 版本都有一个唯一的 API 级别,用于标识该版本中可用的功能和特性。开发者在编写 Android 应用时,可以通过指定 API 级别来确保应用在特定版本的 Android 系统上正常运行。特点:API 级别允许开发者使用较新版本的功能,同时确保应用在较旧版本的 Android 系统上也能运行;3、当前最新的android 版本是Android 15,代号V,API级别35。
2024-12-27 12:06:30
2706
原创 Android音频中常用的BT Format和Profile介绍
2.1、HFP规范HFP 是基于SCO(Synchronous Connection Oriented)链路用于双向传输通话语音。SCO链路具有同步传输特性,但无线传输有错误风险为保证同步性数据的完整、正确性就无法保障所以HFP采用的编码器需要具备容错能力。2.2、A2DP规范A2DP(Advanced Audio Distribution Profile),蓝牙立体声音频传输规范,典型应用为蓝牙耳机。
2024-12-21 16:36:36
835
原创 Linux/Unix系统调用fork()学习
(1)当fork()出来的父子进程,均为执行写操作时,此时父子进程内存空间大致如下:(2)当fork()出来的父子进程,任意一个执行执行写操作时,此时父子进程内存空间大致如下:子进程是父进程的副本,拥有相同的代码段、数据段和堆栈段,但它们有各自的进程ID和内存空间。进程控制块(Process Control Block, PCB) 是操作系统中用于管理进程的重要数据结构。它包含了与进程相关的所有信息,操作系统通过 PCB 来跟踪和控制进程的状态。
2024-11-25 17:07:17
1305
原创 Android系统中init进程、zygote进程和SystemServer进程简单学习总结
Android系统中,init、zygote和SystemServer进程是系统启动和运行的关键进程,它们之间有着密切的关系,本文针对这三个进程的学习做一个简单汇总,方便后续查询。
2024-11-24 16:56:27
614
原创 关于GCC内联汇编(也可以叫内嵌汇编)的简单学习
asm("汇编语句": 输出部分: 输入部分: 会被修改的部分);共四个部分,其中汇编语句必不可少,其他三部分可选,如果使用了后面的部分,而前面部分为空,也需要用“:”格开,相应部分内容为空。
2024-11-14 20:29:55
847
原创 linux中三个常用查询符号表的命令
这个是最常用的命令,可以用于查询二进制文件中的符号表,包括目标文件(.o)、静态库(.a、.lib)和动态库(.so)等;该命令除了可以查看符号表外,还有一些其他操作,使用时可以借助objdump --help查看。该命令可以用来处理多种文件格式,如ELF、COFF、目标文件、静态库、动态库等;(1)显示文件头信息:可以查看可执行文件或目标文件的头部信息,包括格式、架构等;(6)显示调试信息,如果文件包含调试信息,可以使用如下命令查看。可以查看文件中各个节(section)及大小、地址等;
2024-11-05 11:27:37
990
1
原创 Scons简介
1、前言提到Scons就不得不提一下make,因为两者都是做项目管理常用的编译工具。make 这个工具自上个世纪 70 年代 Stuart Feldman 在贝尔实验室开发出以来,就一直是类 UNIX 程序员的最爱之一。通过检查文件的修改时间,make 工具可以知道编译目标文件所要依赖的其他文件。在复杂的项目中,如果只有少数几个文件修改过,make 工具知道仅仅需要对哪些文件重新编译就可以确保目标程序被正确的编译链接。这样做的好处就是在编译中,不仅可以节省大量的重复输入,还可以确保程序可以被正确的链
2022-01-02 20:14:29
2644
原创 【算法题解析】给定一个整形数组,存在两个不同的数只出现一次,其他数都出现两次,如何找到这两个数?
给定一个整形数组中,存在两个不同的数只出现一次,其他数都出现两次,如何找到这两个数。
2021-12-02 21:29:18
506
原创 【学点心理学】16个终身受用的思维
1、蓝斯登原则在你往上爬的时候,一定要保证梯子的整洁,否则当你下来的时候,可能会摔倒。(1)提出者:美国管理学家蓝斯登。(2)感悟:进退有度,才不至于进退维谷;宠辱皆忘,才能宠辱不惊。2、卢维斯定理谦虚不是把自己想的很糟,而是完全不想自己。(1)提出者:美国心理学家h.卢维斯(2)感悟:越是把自己想的过于完美,就越容易把别人想的很糟糕。3、托利得定理:测验一个人的智力是否属于上乘,只看脑子里能否同时容纳两种相反的思想而无碍于其处世行事。(1)提出者:法国
2021-09-21 20:26:17
276
原创 [C/C++语言]全局变量、局部变量、静态全局变量和静态局部变量运行时内存分配方式研究
0、前言在分析一个程序的堆栈、bss段、text段、RO、RW、ZI等概念时,首先区分一下程序进程和程序文件,同时区分一下哈佛结构和冯诺依曼结构。程序进程就是程序运行时的程序,程序文件是编译后生成的可执行文件,比如.bin文件等。哈佛结构和冯诺依曼结构的主要区别就是处理器能不能实现取指令和取数据的并发进行。嵌入式芯片中主要是哈佛结构,PC机上是冯诺依曼结构。(1)经典的哈佛结构:程序存储器和数据存储器是各自独立的存储器。处理器应该有两套总线,一套是程序存储器的数据和地址总线,一套是数据存.
2021-09-15 23:32:03
2877
原创 漫谈CPU缓存与主存
1、概述每一个现代处理器(CPU)都配置高速缓存(Cache)。目前CPU高速缓存级别主要分为L1/L2/L3三个级别;三个级别的高速缓存,缓存大小逐级增加同时访问速度逐次降低。高速缓存存在的主要原因是解决CPU寄存器与主存在处理速度上不匹配问题,从而极大提高CPU使用效率。2、缓存和主存之间的区别通常情况下,高速缓存均是依托于静态随机访问存储器(SRAM),而主存一般是依托于动态随机访问存储器(DRAM),即两个依赖的硬件不同。那么SRAM和DRAM又有何不同呢?(1)SRAM的访问速度要
2021-09-14 17:40:07
4548
原创 Linux下以普通用户执行sudo命令时提示“xxxx is not in the sudoers file. This incident will be reported.”问题
1、问题描述Linux下以普通用户zhangsan执行sudo命令时提示“zhangsanis not in the sudoers file. This incident will be reported.”。2、问题原因该用户zhangsan没有在 /etc/sudoers file里面.3、问题解决方法(1)切换到root用户,否则没有访问/etc/sudoers 文件的权限su root(2)修改/etc/sudoers文件访问权限chmod 777 /et...
2021-08-28 16:11:53
1574
2
原创 【追风筝的人】ADB常用命令使用总结
0、修改计算云的写权限命令chown -R 用户管理组:用户/mnt/disk/honor_zh,例如:chown -R zhanghui:zhanghui /mnt/disk/honor_zh1、adb shell(1)进入到shell,可以进行设备信息管理、查看等操作(2)有些命令的执行需要root权限,所以如果执行失败请确认设备是否执行了root操作 # - -root $ -- 普通用户2、adb remount将设备修改为可读可写提示remount成功...
2021-07-17 18:37:50
1188
原创 So We‘ll Go No More A-Roving
So We’ll Go No More A-Roving–George Gordon, Lord ByronSo we’ll go no more a-rovingSo late into the night,Though the heart still be as loving, And the moon still be as bright.For the sword outwears its sheath,And the soul outwears the breast,And the
2021-06-27 16:33:44
201
原创 【linux命令学习-001】 grep命令解析
1、简介grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是
2021-06-23 22:58:25
613
原创 关于linux内核中jiffies和jiffies_64解析
1、前言linux内核中定义了jiffies变量来记录从系统启动到当前时刻系统时钟所产生的tick数。jiffies变量是一个无符号整型数值,即unsigned long类型。 它的声明如下(在 include/linux/jiffies.h 中): 假定HZ=1000,那么jiffies只需要约49.7天就会产生回绕(溢出),这是因为jiffies本身是unsigned long 类型,因此在32位系统中支持的最大值为(2^32)-1=4294967295,又因为HZ是100...
2021-06-22 22:37:17
3232
1
原创 Linux内核驱动 --ioctl函数解析
1、前言当我们在讨论linux内核驱动开发时,就不得不提到ioctl这个及其重要的函数。它是设备驱动程序中实现对设备控制的接口之一。当我们在用户空间中使用ioctl函数时,
2021-06-19 12:12:43
7447
1
原创 001_Linux内核驱动之杂项设备(miscellaneous device)的misc.c源码解析
0、写在开头 在Linux系统中,存在一类字符设备,他们共享一个主设备号(10),但次设备号不同,我们称这类设备为杂项设备(miscdeivce)。 查看/proc/device中可以看到一个名为misc的主设备号为10.所有的杂项设备形成一个链表,对设备访问时内核根据次设备号找到对应的miscdevice设备。(1)linux 内核使用struct miscdeivcemiao描述一个杂项设备: a)linux源码中位置:/kernel-4.14/include/linux/mi...
2021-06-09 21:29:19
1712
原创 【问题解决】计算云执行reboot操作后无法正常访问,但是可以正常ping通问题分析及解决
1、问题描述计算云上执行reboot操作后,无法正常访问;但是可以正常ping通。2、问题分析首先计算云的访问使用的是22端口,ping命令使用的是ICMP协议,默认访问的是80端口或21端口。在执行reboot操作前,本人执行了关闭防火墙以及重新打开防火墙的操作。由于关闭防火墙,再开启防火墙导致22端口不允许访问了,所以导致此问题的出现。3、解决思路找计算云配置的相关人(要有权限),通过VNC访问云服务器将对应的防火墙关闭或者设置防火墙允许访问22端口即可。4、参考连接ht
2021-05-07 21:59:18
2047
原创 【问题解决】解决Linux下“Can‘t locate XML/LibXML.pm,you may need to install the XML::LibXML module”问题的一个思路
1、【问题描述】Can't locate XML/LibXML.pm in @INC (you may need to install the XML::LibXML module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.26.1 /usr/lib/x86_64-linux-gnu/perl5/5.26 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.26 /
2021-05-07 20:27:10
5531
原创 C语言字节对齐与GNU __attribute__、__align()__选项使用说明
1、什么是字节对齐?对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好等于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个int 型变量iNum的地址为0x00000004或0x00000008,那它就是自然对齐的;但是如果iNum的地址为0x0000 0006或0x0000 00009(假定从0x0000 0000 ---0x0000 0005内存存放的是其他数据),那么就不是自然对齐。2、字节对齐的优缺点优点:需要字节对齐的根本原因在于CPU访问数据的效率问.
2021-04-29 11:35:53
2874
原创 Visual Studio Code 配置C/C++编译环境流程及问题解决(Win10环境)
1、Visual Studio Code简介VS Code实际上一个功能强大的文本编辑器,在借助安装插件的基础上亦可实现编译功能。支持Windows,OS X和Linux,内置JavaScript、TypeScript和Node.js支持,而且拥有丰富的插件生态系统,可通过安装插件来支持C++、C#、Python、PHP等其他语言。VS Code官方网站:https://code.visualstudio.com/docs/cpp/config-mingw#_prerequisites2、V
2021-04-23 14:40:41
5625
1
原创 【算法题解析】给定一个非空数组,除某一个元素出现一次外,其他元素出现两次,找出这个只出现一次的元素并返回
1、算法描述给定一个非空数组,除某一个元素出现一次外,其他元素出现两次,找出这个只出现一次的元素并返回。例如给定[2,2,3,3,4,4,5],则返回值为5;例如给定[4,4,5,5,-1],则返回值为-1;例如给定[4,4,5,5,0],则返回值为0;题解要求:算法具有线性复杂度,并且不适用额外存储空间。2、算法解析通过分析题目可知,其他元素都是出现两次,那么针对这出现两次的元素做什么操作可以实现将此元素从数组中剔除的操作呢?答案就是使用我们的按位操作符中的异或(^),即相同b
2021-03-30 10:29:57
794
原创 【学点心理学】八本值得反复阅读的心理类书籍推荐
阅读改变人生!^_^1、《荣格自传:回忆·梦·思考》作者:卡尔·古斯塔夫·荣格作者介绍:瑞士心理学家。1907年开始与弗洛伊德合作,发展及推广精神分析学说长达6年之久,之后与弗洛伊德理念不和,分道扬镳,创立了荣格人格分析心理学理论,出“情结“的概念,把人格分为内倾和外倾两种,主张把人格分为意识、个人无意识和集体无意识三层。经典美文:三十年后,我又站到了那道斜坡上。这时,我已结了婚,有了孩子和自己的房子,有了地位,也有了一个一种充满各种思想和计划的头脑。但突然,我又变成了那个曾经的.
2021-01-10 17:29:27
950
2
原创 【linux设备驱动程序--001】第一篇:设备驱动程序简介
【声明】本文内容为学习《LINUX设备驱动程序》一书的笔记,在书籍内容基础上加入了个人学习的理解与总结,以便后续复习回顾。Linux内核代码由大量复杂的代码结构组成,通常Linux设备驱动程序是进入Linux内核世界的大门。设备驱动程序在Linux内核中扮演着特殊的角色,它们是一个个独立的“黑盒子”,使某个特定的硬件响应一个定义良好的内部编程接口,这些接口完全隐藏了设备工作的细节。Linux系统自开发到现在,已经存在许多良好可用的设备驱动模块,那么是什么原因导致许多人对Linux驱动开发感兴趣..
2021-01-10 13:07:25
561
原创 字符串中找出连续最长的数字串,返回找到的字符串和长度
题目描述:请一个在字符串中找出连续最长的数字串,并把这个串的长度返回;如果存在长度相同的连续数字串,返回最后一个连续数字串;注意:数字串只需要是数字组成的就可以,并不要求顺序,比如数字串“1234”的长度就小于数字串“1359055”,如果没有数字,则返回空字符串(“”)而不是NULL!样例输入abcd12345ed125ss123058789abcd12345ss54761样例输出输出123058789,函数返回值9输出54761,函数返回值5 接口说明函数原型: .
2020-12-27 20:41:18
1494
原创 【Linux学习】shell ls命令尝试代码实现
本文旨在通过不同预言实现linux shell下的ls命令功能。1、python 源码实现import osdef ls(path): 'ls funciton' for root,dirs,files in os.walk(path): for dir_name in dirs: print os.path.join(root,dir_name) for file_name in files: pr
2020-10-22 11:44:03
590
原创 【linux+gcov+lcov】linux下借助gcov和lcov工具实现单元测试覆盖率统计练习
1、gcovLinux下代码覆盖率工具,属于gcc工具集之一,随gcc一起发布,不需要独立安装。使用gcov -v 可以查看gcov的版本信息,如下:2、lcovlcov是gcov的图形化工具,可生成html格式的代码覆盖率报告,提高覆盖率检测结果的可读性。lcov需要自己下载的开源软件,下载地址如下:https://sourceforge.net/projects/ltp/files/Coverage%20Analysis/3、lcov的手动安装(1)进入到.tar.g
2020-10-15 19:23:06
4850
1
原创 Intel Optane(tm) Memory Pinning ,无法加载 DLL ´iaStorAfsServiceApi.dll´ : 找不到指定的模块。
1、使用 Win10 的用户可能会遇到这个问题,右下角经常弹出提示,标题为 Intel Optane™ Memory Pinning ,内容是——无法加载 DLL ´iaStorAfsServiceApi.dll´ : 找不到指定的模块。 ( 异常来自 HRESULT : 0x8007007E)。2、这个问题是英特尔快速存储技术(IRST)驱动,或着 Optane Pinning Explorer Extensions 出现故障导致。3、方案一:卸载傲腾扩展(1)右键点击开始菜单,打开【应用和功能
2020-10-15 07:04:18
2848
原创 【C语言】一些常用标准库函数的介绍
1、snprintf()函数(1)函数描述C 库函数int snprintf(char *str, size_t size, const char *format, ...)设将可变参数(...)按照 format 格式化成字符串,并将字符串复制到 str 中,size 为要写入的字符的最大数目,超过 size 会被截断。(2)函数声明int snprintf ( char * str, size_t size, const char * format, ... );其中,str-..
2020-10-13 16:07:59
965
原创 pyinstaller打包时遇到的“no module named ****”问题的解决方法
pyinstaller打包时遇到的问题的解决方法问题描述问题原因常用命令问题描述使用pyinstaller打包时,提示“no module named ***”,缺少相应的依赖库,导致无法正常打包或及时打包OK,但是运行时也会出现问题。问题原因1、原因1我们安装的python环境上的确缺少这个依赖的第三方库,此时要解决这个问题就必须从python官网上下载对应的库,然后再使用pyinstaller进行打包。2、原因2我们使用的python环境本身已经安装了所依赖的第三方库,此时打包时还提示有
2020-09-08 14:23:19
30318
5
原创 经典学习网站汇总(持续更新)
1、NO1:studytonight网站链接:https://www.studytonight.com/operating-system/evolution-of-os网站界面:2、NO2:
2020-08-27 10:24:11
1851
原创 【数据库】关系数据库与非关系数据库的优缺点汇总
1、关系数据库1.1、什么是关系数据库?关系型数据库是依据关系模型来创建的数据库。 所谓关系模型就是“一对一、一对多、多对多”等关系模型,关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。 关系型数据可以很好地存储一些关系模型的数据,比如学校老师和学生的数据(“多对多”),一本书对应多个作者(“一对多”),一本书对应一个出版日期(“一对一”)。 关系模型是我们生活中能经常遇见的模型,存储这类数据一般用关系型数据库。 关系模型包括数据结构(数据存储的
2020-08-12 17:19:59
4518
FreeRTOSV10.2.1.7z
2019-09-24
三个人各存有一个随机数,如何在数据不泄漏的情况下计算三个随机数的平均数
2020-08-16
对于常用的MCU来讲,运行过程中会出现RAM中的数据异常丢失的情况吗?
2020-07-20
如何在C#中调用MATLAB中的内置函数?
2016-12-19
校招面试遇到的非技术问题,求大神指点
2016-06-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人