自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (1)
  • 收藏
  • 关注

原创 Windows 内核驱动精准延时函数

Windows 内核驱动精准延时函数。

2023-11-08 16:48:25 192

原创 Windows dll socket通讯

dll socket编程

2023-10-24 15:38:46 135

原创 矩阵XY轴翻转

buf = [ -1, 90, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 600, 890, 700, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1080, 1200, 860, ..

2022-05-14 21:00:49 313

原创 Android 读取bin文件方法

找了比较多的资料,发现读出来的bin文件内容,和实际有差异,经调试发现如下:问题:底层C读bin文件可以按一个字节一个字节读出来,但是java读出来的是,一个int类型,打印出来是负值。这就很奇怪了。bin文件如图,我们要读第一个字节的内容为 0xF0分析:1. Java代码:返回值是 -16,看到这里发现没道理啊,为什么呢? static String readBinFile(String name, int len) { String pa..

2021-10-24 16:25:29 6942

原创 Android TextView 空格显示不对齐问题

当我们想要在TextView设置字符串的时候里面包含多个空格,并且想要用空格来填充对齐时,往往达不到我们想要的效果,查了比较多的资料发现,其实很简单,只需要设置一个属性即可想要的效果:实际的效果:如果遇到这种情况,请在textview属性上加上,等宽字体的属性。android:typeface="monospace"这样就能满足要求啦如果对你有帮助,请帮忙点赞啦,感谢!...

2021-10-24 16:03:26 3060

原创 Toast 重复显示 解决办法

问题描述: 当连续点击按钮后,Toast会连续显示,直到响应完所有点击,这不是我们想要的效果。 我们想要的是,每次点击后取消上一次的toast,立即响应这一次的点击编写一个方法如下:只需要在显示之前取消当前的toast,然后再显示即可!!! private static Toast toast = null; static void toastShow(Context context, String text, int duration) {...

2021-10-22 16:30:13 571

原创 Bin文件和Hex文件相互转换

代码如下:#!/usr/bin/python# -*- coding: UTF-8 -*-# 文件名:server.pyimport sysimport osimport pyperclipprint()print("*****************************************************")print("* USAGE: python binToHex [bin_file] [hex_file_name] *")print("*********

2021-09-23 14:57:45 2611

原创 git 创建远程新分支(没有提交记录的)

1. 创建本地没有提交历史记录的空分支git checkout --orphan <branchname>2. 创建远程新分支git push origin localbranch:remote_new_branch_name3. 删除远程分支git push origin -d remote_branch_name

2021-09-16 11:00:12 585

原创 PDE_DATA定义说明

1. 找到原型,文件路径kernel/fs/proc/generic.cvoid *PDE_DATA(const struct inode *inode){ return __PDE_DATA(inode);}EXPORT_SYMBOL(PDE_DATA);2. 按calltrace最终找到调用container_of,到这里大家都熟悉了吧! 通过结构体中的一个成员变量的地址获得该结构体的首地址。文件路径:kernel/fs/proc/internal.hstati...

2021-09-13 14:52:40 984 2

原创 SPI原理(物理层-协议层-驱动层)

SPI物理层、协议层和驱动层介绍1.物理层 1.1 SPI概述 1.2 SPI接口 1.3 SPI互联 1.4 内部结构2.协议层 2.1 SPI时序 2.2 SPI数据格式 2.3 SPI主从模式 2.4 SPI发送和接收数据 2.5 [使用DMA的SPI通讯]3.Linux SPI子系统SPI物理层、协议层和驱动层介绍1.物理层1.1 SPI概述 全双工同步串行通讯接口,能够实现主设备和从设备之间...

2021-08-30 16:49:02 1621

原创 strsep函数用法

1. 位置:在kernel/lib/string.c中,头文件<linux/string.h>中2. 函数功能:破坏性分割字符串,返回分割前一部分,后一部分保存在原字符中3. 函数原型:char * strsep(char **,const char *);/** * strsep - Split a string into tokens * @s: The string to be searched * @ct: The characters to search for

2021-08-20 12:14:24 6964 2

原创 PC端程序和安卓应用进行socket通讯

实现功能:1.PC端发送命令给app2.app收到后,根据命令执行操作3.app将操作的结果返回给PC首先来看PC端发送接收程序代码(文件名Client.java):1. connect/reconnect: 建立和app端的连接2.Client_listen:PC端监听来自app端的数据模块3.Client_send:PC端发送给app端的数据模块4. 查看手机的ip地址(我的:10.1.1.18,端口设置为9911)(注意,pc和手机连接同一个wifi)impo

2021-08-07 16:44:57 2872 13

原创 Hikey960 代码拉取命令和环境配置

Hikey960 env build:1.System base: Ubuntu 18.04 server2.download repo: a. mkdir ~/bin b. PATH=~/bin:$PATH c. curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo d. chmod a+x ~/bin/repo3.download aosp and hikey960 ...

2021-07-30 18:18:50 198

原创 Ubuntu 18.04 LTS server 编译环境配置(For sda810):

Ubuntu 18.04 LTS server ENV Settings(For sda810):0.install packages: sudo apt-get install bc bison build-essential sudo apt-get install curl flex g++-multilib gcc-multilib sudo apt-get install gnupg gperf imagemagick lib32ncurses5-dev sud...

2021-07-30 18:15:32 181

原创 Android应用通过JNI调用ioctl操作设备驱动

前提背景:1. 底层设备驱动已经实现ioctl相关操作接口2. 本篇主要讲如何实现JNI层和应用层的ioctl相关内容3. 这里是基于sda810开发板调试,其他arm开发板搭载安卓系统均可以调试NDK环境搭建和Demo代码实现环境搭建下载NDK包和配置环境变量1.到官网下载android-ndk-r13b-windows-x86_64.zip(我用的是这个版本,最新版本)2.解压缩后将目录添加到PATH中,我这里是d:\android-ndk-r13b\......

2021-07-30 17:49:49 2492 6

原创 Linux内核中断子系统学习笔记

一直想写一篇关于Linux 中断子系统文章,终于有时间可以静下心来写一些,前后预计花费15天左右的时间来完成这个文章,希望能帮助到有需要的人,先写一部分内容,后面再补充进来。目录中断1.中断类型a.同步中断和异常 b.异步中断2.硬件IRQ3.处理中断 a.进入和退出任务b.中断处理程序4.数据结构 a.IRQ控制器抽象 b.处理程序函数的表示5.中断电流处理 a.设置控制器硬件 b.电流处理6.初始...

2020-08-28 22:40:14 318

原创 proc文件系统下创建节点的两种方法

##创建只读节点文件###第一种static ssize_t vendor_read(struct file *file, char *buf, size_t len, loff_t *pos){ ssize_t ret = 0; if (!PROC_SEND_FLAG) { ret += snprintf(buf_tmp + ret, sizeof(buf_tmp) - ret, "FW_VER = 0x%2.2X\n", ic_data->vendor_fw_

2020-08-01 10:42:28 979

原创 python实现递归查找文件中的字符串

先贴完整代码,功能描述见代码中的备注运行命令:python grep.py D:\linux-master touch脚本名为:grep.py参数1:文件夹路径(D:\linux-master)参数2:要检索的关键字(touch)import osimport reimport sys# 遍历当前路径下所有的文件路径,并保存到names里面def find_files(path, names): for root,dirs,files in os.walk(path):

2020-07-02 16:12:24 1415

原创 union和struct使用小技巧

联合体中的所有成员共用一块内存区域,这个区域的长度取决于占用空间最长的成员看代码效果,比较直观/* * arr 和 addr共用一块空间,空间长度为32bit * 如果arr类型是uint16_t,那么此空间长度就是16*4=64(bit) */struct addr { union { uint32_t addr; uint8_t arr[4]; };};/** * union中的struct和addr共用一块空间,struct用__pa.

2020-07-02 14:43:06 432

原创 linux通过改变系统属性值来触发行为

1. 找到system/core/init/stable_properties.h文件,添加only_for_test属性 static const std::set<std::string> kExportedActionableProperties = { "dev.bootcomplete", "init.svc.console", "init.svc.mediadrm", "init.svc.surfaceflinger", "in.

2020-06-24 16:38:47 1487

原创 创建linux可执行程序

背景有些时候我们需要定制一些功能来debug,而/system/bin下没有我们想要的可执行程序,这个时候就需要我们自己来封装一个此demo主要功能是循环读取proc/目录下某个文件,然后在控制台show出来环境编译环境(ubuntu),开发板源码(我自己的qcom,mtk都可)步骤1.在vendor/rockchip目录下创建工程目录himax2.目录结构如下: |--himax.mk |--sepolicy/ |--file_contexts |--hima

2020-06-24 10:44:52 756

原创 Linux内存泄漏调试

背景循环压力测试驱动某个模块功能时,会出现alloc不到memory情况工具利用Linux自带的工具(kmemleak),进行调试怎样编译出工具配置config,默认配置如下:CONFIG_DEBUG_KMEMLEAK=yCONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=4000CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y修改后:CONFIG_DEBUG_KMEMLEAK=yCONFIG_DEBUG_KMEMLEAK_EARL

2020-06-23 17:54:09 605

android保存log方法

有需要可以看看,动态将想要的数据通过该接口直接写到本地文件

2018-05-01

空空如也

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

TA关注的人

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