自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

转载 linux内核链接脚本vmlinux.lds分析续篇之 — initcall机制

https://www.codenong.com/cs106271442/

2024-07-12 16:43:42 28

转载 linux kernel操作GPIO函数

linux kernel操作GPIO函数 - 爱码网

2024-07-12 16:40:19 40

转载 I2C协议详解及裸机程序分析

I2C协议详解及裸机程序分析 - 简书

2024-07-12 16:39:10 24

转载 sysfs设备模型

https://www.cnblogs.com/jliuxin/p/14129383.html#_label0

2024-07-12 16:36:50 23

转载 设备树DTS 学习

https://www.cnblogs.com/schips/p/how_to_use_dts.html

2024-07-12 16:26:38 15

转载 如何用git命令生成Patch和打Patch

https://www.cnblogs.com/ArsenalfanInECNU/p/8931377.html

2024-07-12 16:24:55 84

原创 gdb-multiarch反编译方法

在服务器上安装gdb-multiarch工具,导入需要反编译的vmlinux。然后执行disassemble /sr xxx,(xxx是异常报错函数)通过0x340(转换为10进制是832行)定位到异常位置即可。在路径下执行gdb-multiarch vmlinux。

2024-07-12 16:16:02 166

原创 抓trace操作

Adb shellLscd events/LsLscd events/LsCd i2c/LsCd ..LsCd ..LsMkdir i2cCd i2c/Ls。

2024-07-12 16:12:28 169

原创 打patch操作

将patch合入文件中(到patch文件的根目录下):patch -p1 < xxx.patch。将修改内容打成patch:git diff xx/xx > xxx.patch。修改文件后查看路径下的修改内容:git diff xx/xx。删除修改:git checkout xx/xx。

2024-07-12 15:08:15 97

转载 ADB,Fastboot,Recovery,BootLoader的区别

ADB,Fastboot,Recovery,BootLoader的区别_fastboot和bootloader区别-CSDN博客

2024-07-12 15:05:54 65

原创 服务器编译/提交/同步常用命令

打开touch轨迹线 adb shell settings put system pointer_location 1。git push ssh://xxx.xxxx(user_name)@12.3.4.567:89101/远程仓 HEAD:refs/for/项目分支名。编译加2>&1 | tee build.log保存编译log。MTK打开串口echo 1 > /proc/mtprintk。GIT REWORK --NOCOMMIT 撤销。

2024-07-12 15:01:34 146

原创 打印信息函数

* printk与printf的一个区别printk是“行驱动”的,也就是说只有收到一个换行符数据才会真正输出到终端,否则就不会有任何信息输出。(四个数字分别对应控制台日志级别、默认的消息日志级别、最低的控制台日志级别和默认的控制台日志级别。** echo 8 > /proc/sys/kernel/printk 设置当前的日志级别。实际上,这部分是内核信息的日志级别,只有超过了当前日志级别的信息才会输出到终端。** 当前内核的日志级别可以在/proc/sys/kernel/printk文件中看到。

2024-07-12 14:57:26 220

原创 Linux清理命令

删除文件的范围比较:make clean < make mrproper < make distclean。make distclean: 相当于执行一次make mrproper,然后再删除编辑器备份和补丁文件。make clean: 删除大部分生成的文件但是保留配置文件和足够的构建外部模块的构建支持。make mrproper: 删除所有生成的文件,配置和各种各样备份的文件。

2024-07-03 17:20:56 115

原创 提交代码到远程仓库

(本地仓库)git push origin HEAD:refs/for/xxx。更新本地代码至跟远程服务器一样。将暂存区文件提交到本地仓库。可以查看本次提交的内容。

2024-07-03 17:20:26 285

原创 驱动框架流程

它判断缓存区大小是否足够,在读取数据的情况下,可能当前缓存区内没有数据可读,在这里先睡眠等待缓存区中有数据,如果在睡眠的时候,条件满足,是不会进行睡眠状态而直接返回的,然后根据read()提供的缓存区大小,将client中的数据(即上报的键值)写入到用户空间的缓存区中。connect调用input_register_handle将d_node挂到input_device的h_list,h_node挂到handler的h_list来连接input_dev、input_handler与input_handl)

2024-07-03 17:16:15 618

原创 常用驱动命令

printk是内核打印函数,默认模式下在中断下无法显示(当然,可以设置成打印到终端),我们可以在驱动程序添加一些辅助信息,例如作者 ,驱动描述等。dmesg 用dmesg可以查看一下打印到内核的信息。rmmod xxxx 注意不用带.ko。加载后就会执行xxxx_init函数。将生成驱动模块.ko文件加载,对应的卸载驱动的命令。1、加载驱动模块insmod。2、卸载驱动模块rmmod。3、查看内核中的模块信息。4、查看模块的描述信息。几个驱动中常用的命令。5、查看模块打印信息。

2024-07-03 16:58:32 261

原创 I2C传输读写函数

I2C中关于ACK和NACK的几点东西_i2c ack-CSDN博客I2C的数据格式几点注意事项

2024-07-03 16:43:45 239

原创 Notifier_block通知链

回调函数的函数签名定义为 int (*notifier_call)(struct notifier_block *nb, unsigned long action, void *data)。priority:这个字段决定了该 notifier block 相对于其他已注册 notifier block 的优先级。具有较高优先级值的 notifier block 将在具有较低优先级值的之前收到通知。Linux内核维护一个已注册的 notifier block 的链表,该字段使得可以遍历整个链表。

2024-07-03 16:42:34 396

原创 Linux驱动编写框架

static void __exit xxxx_exit(void) 卸载模块时的函数,也就是卸载某个驱动时要执行的函数。static int __init xxxx_init(void) 加载模块时的初始化函数,也就是驱动模块的入口函数。linux是开源的系统,那就要我们遵守一定的规范,我们一般用GPL规范,所以在驱动编写时都要声明一下。但是内核会提供自己的c库,在内核中我们用printk代替printf函数。驱动属于内核的一部分,我们此时还无法使用类似像printf这样的c库,

2024-06-27 15:43:00 345

原创 Linux常用命令

5).我下载了一个压缩文件large.zip,想验证一下这个压缩文件是否下载完全了。2. vim 模式:set nu 显示行号 set nonu 不显示行号。1. grep -rn "xxx"关键词查找符合条件的文件的行。-r 就是向下递归,不管有多少级目录,一并删除。-f 就是直接强行删除,不作任何提示的意思。表示一个字符,如果用*表示任意多个字符。3. rm -rf 目录名字 :删除非空文件夹。rm -f 文件名:删除文件。

2024-06-27 15:41:32 184

原创 Kconfig与Makfile语法

假如选择内建,就是直接编译成内核镜像,就会在.config中生成一个 CONFIG_HELLO_MODULE=y的配置。内核顶层makefile会调用.config文件,引用.config里的配置,进而选择性的编译内核驱动模块。然后在这个文件夹的上一层目录的Kconfig中source引入这个文件夹下的Kconfig文件。配置项被配置成Y、N、M会影响“.config”文件中的CONFIG_XXX变量的配置值。所以在menuconfig中如果找不到一个选项,但是这个选项在Kconfig中却是有的,

2024-06-27 15:40:02 613

原创 TP学习笔记(九)——Linux输入子系统(上)

其中input_dev用于数据的描述,input_handler用户事件的处理,input_handle用于沟通input_dev、input_handler,2. input_dev和input_handler的匹配:(file:kernel-3.18/drivers/input/input.c)总结:输入子系统的本质就是利用input_dev、input_handler、input_handle三个数据结构进行数据的转换和传递,就单纯使用而言,应用input subsystem 我们只需要做以下工作,

2024-06-27 15:29:13 377

原创 TP学习笔记(七)——Linux驱动的platform机制

内核启动初始化时的 main.c 文件中的 kernel_init()→do_basic_setup() →driver_init()→ platform_bus_init()→bus_register(&platform_bus_type) ,注册了一条 platform 总线(虚拟总线,platform_bus)。Platform_driver结构体描述了一个platform结构的驱动。不同类型的驱动,其match函数是不一样的,这个platform的驱动,比较的是dev和drv的名字。

2024-06-27 11:08:50 626

原创 TP学习笔记(五)——驱动添加/移植中涉及到的语法

而do_initcall_level(level)中则会遍历initcall_levels[level]中的每个函数指针,initcall_levels[level]实际上是对应的__initcall##level##_start指针变量,然后依次取出__initcall##level##_start指向地址存储的每个函数指针,并调用do_one_initcall(initcall_from_entry(fn))。2)所有的__init函数在区域.initcall.init中还保存了一份函数指针。

2024-06-26 17:27:28 704

原创 TP学习笔记(三)——在Linux内核中增加新驱动模块(Linux驱动框架)

在out\target\product\lahaina\obj文件夹下查看对应路径(out\target\product\lahaina\obj\kernel\msm-5.4\drivers),出现hello.o文件即编译成功。进入/drivers/

2024-06-26 16:12:06 121

原创 TP学习笔记(二)——Linux内核

这种内存管理模式使用 4KB 缓冲区为基数,然后从中分配结构,并跟踪内存页使用情况,比如哪些内存页是满的,哪些页面没有完全使用,哪些页面为空。可以在 ./linux/kernel 中找到进程管理的源代码,在 ./linux/arch 中可以找到依赖于体系结构的源代码。在 ./linux/kernel 中可以找到 SCI 的实现,并在 ./linux/arch 中找到依赖于体系结构的部分。2).从应用程序的层面讲,应用程序与硬件没有联系,只与内核有联系,内核是应用程序知道的层次中的最底层。

2024-06-26 16:06:38 495

原创 TP学习笔记(一)——安卓系统框架

Android应用都是用JAVA语言开发的,JAVA是一门解释性语言,它需要运行在虚拟机的环境下, Android Runtime和Dalvik都是解释器,Dalvik是Android 4.4以前的版本使用,ART是4.4以后的版本。,向上提供接口,屏蔽低层的实现细节。的形式来访问内核驱动 Linux内核提供各种驱动:USB,COM,WIFI,BT,CAMERA,AUDIO,FLASH。BP:Baseband Processor,无线通信,信道调制,编码,包括通话,语音,短信数据业务,在此芯片上进行。

2024-06-26 15:52:26 801

原创 软件测试基础——Linux

# 一、操作系统

2021-01-20 14:34:18 95

原创 软件测试基础——JS(七)

一、JS基础语法1、写script标签,放在HTML页面的最后位置;2、从script标签中间写alert;<script type="text/javascript"> alert('弹出窗口')</script>

2020-12-15 19:00:29 293

原创 软件测试基础——软件测试定义(六)

一、软件测试定义使用手工或自动手段来进行软件的测试,目的是查看预期结果与实际结果的差异;二、软件测试的作用与目的使用最少的人力、物力、财力,找到软件中的缺陷并修复,从而降低商业风险;三、软件测试原则1、测试能证明软件存在缺陷,不能证明软件不存在缺陷;2、不能进行穷举测试;3、测试工作要尽早介入;4、缺陷存在集群现象;5、某些测试依赖测试环境(系统或浏览器);6、杀虫剂现象:不能使用同一条测试案例来对软件进行问题查找,因为软件会产生“抗性”;7、“不存在缺陷”谬论;

2020-12-14 15:58:20 241

原创 软件测试基础——CSS(五)

一、优先级(权重)在给同一个标签设置样式的时候,才有所谓的优先级权重对比id选择器>类选择器>标签选择器

2020-12-12 16:06:09 199

原创 软件测试基础——CSS(四)

一、CSS样式样式表/级联样式表/层叠样式表代码:1、CSS代码要写在style标签中2、style标签放在head标签中间的最后位置(title标签下面)<style type="text/css"> div{width: 100px; height: 100px; background: beige;} textarea{resize: none;}</style>(px代表像素单位)二、标签选择器选择器定义:在页面中找元素、标签、标记的方

2020-12-11 14:43:04 134

原创 软件测试基础——HTML(三)

一、 超链接普通超链接点击后在本窗口打开页面:<a href="http://www.baidu.com">跳转去百度</a>也可实现点击后在新窗口打开页面:<a href="http://www.baidu.com" target="_blank">跳转去百度</a>空链接<a href="#" target="_blank">空链接</a>二、 表单定义:所有用户输入的用户名、密码、邮箱..

2020-12-11 10:49:04 173

原创 软件测试基础——HTML(二)

一、 HTML

2020-12-08 17:03:44 96

原创 软件测试基础——Web前端(一)

一、Web前端标准1.html 结构标准:负责网页结构的搭建2.css 样式标准/表现标准:负责网页的美化工作3.js 行为标准:负责网页的行为动作二、 专业名词解释1. web 也叫www,指代万维网2. http协议,超文本传输协议3. 多个网页(图片、文字、链接...)组成一个网站4. 网页在浏览器中运行(解析)三、 五大浏览器厂商ie、谷歌、火狐、欧朋、苹果测试细节:必须测试ie、谷歌、火狐(欧朋占有率低,苹果与谷歌最终效...

2020-12-08 09:15:57 559

空空如也

空空如也

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

TA关注的人

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