随笔分类 -  Linux驱动相关

Linux设备树(5)—实现
摘要:一、DeviceTree简介 1. 将内核当做一个黑盒,那么其输入参数应该包括: (1) 识别platform的信息(2) runtime的配置参数(3) 设备的拓扑结构以及特性 对于嵌入式系统,在系统启动阶段,bootloader会加载内核并将控制权转交给内核,此外,还需要把上述的三个参数信息传递 阅读全文

posted @ 2024-06-24 18:39 Hello-World3 阅读(79) 评论(0) 推荐(0) 编辑

signal()信号-3-实验
摘要:一、信号监控 #include <stdio.h> #include <unistd.h> #include <signal.h> #include <stdlib.h> #define LOG_TAG "Ham: " #include <log/log.h> int smenu[] = { 1, 阅读全文

posted @ 2024-03-28 11:44 Hello-World3 阅读(17) 评论(0) 推荐(0) 编辑

seq_file笔记—1—seq_file.txt 翻译
摘要:1. seq_file 接口 版权所有 2003 Jonathan Corbet <corbet@lwn.net> 该文件最初来自 LWN.net 驱动程序移植系列,网址为:http://lwn.net/Articles/driver-porting/ 设备驱动程序(或其他内核组件)可以通过多种方式 阅读全文

posted @ 2023-12-29 18:00 Hello-World3 阅读(94) 评论(0) 推荐(0) 编辑

驱动模块(6)_Kconfig语法
摘要:一、格式 菜单入口 "菜单入口名" [依赖] [反向依赖] [引入其它Kconfig文件] ... ... [帮助] 配置项 symbol 值类型 [输入提示] [默认值] [依赖] [反向依赖] ... ... [帮助] 二、属性 1. 值类型,有 bool/tristate/int/hex/st 阅读全文

posted @ 2022-12-26 17:52 Hello-World3 阅读(725) 评论(0) 推荐(0) 编辑

mtk task_turbo 阅读笔记
摘要:基于MTK linux-4.14,后续新版本内核已经废弃task turbo。 1. 代码位置: drivers/misc/mediatek/task_turbo/task_turbo.c drivers/misc/mediatek/include/mt-plat/turbo_common.h 2. 阅读全文

posted @ 2022-06-03 20:55 Hello-World3 阅读(558) 评论(0) 推荐(0) 编辑

gcc中__builtin_return_address学习与使用
摘要:一、说明 Built-in函数格式 void * __builtin_return_address(unsigned int level) 此函数返回当前函数或其调用者之一的返回地址。 level 参数是向上扫描调用堆栈的帧数。 值 0 产生当前函数的返回地址,值 1 产生当前函数调用者的返回地址, 阅读全文

posted @ 2022-02-12 18:24 Hello-World3 阅读(2659) 评论(0) 推荐(0) 编辑

static-keys.txt 翻译
摘要:静态键 作者:Jason Baron <jbaron@redhat.com> 0) 摘要 静态键允许通过 GCC 功能和代码修补技术在对性能敏感的快速路径内核代码中包含很少使用的功能。 一个简单的例子: struct static_key key = STATIC_KEY_INIT_FALSE; . 阅读全文

posted @ 2021-07-18 14:46 Hello-World3 阅读(235) 评论(0) 推荐(0) 编辑

dynamic_debug和pr_debug()打印
摘要:一、简介 动态打印一般在userdebug版本上使能,运行用户通过命令行决定是否进行打印。需要使能 CONFIG_DYNAMIC_DEBUG。 二、实现 1. pr_debug()定义 //msm-5.4/include/linux/printk.h /* If you are writing a 阅读全文

posted @ 2021-05-08 21:02 Hello-World3 阅读(1223) 评论(0) 推荐(0) 编辑

Linux内核中的数据结构杂记
摘要:1. list 2. hlist 3. rbtree 4. quick string //struct qstr, fs/namei.c中的struct nameidata结构中有使用,快速字符串不仅包含字符串,还包含长度和散列值。 5. 基数树radix tree 基数树是n叉树,内核为n提供了两 阅读全文

posted @ 2021-04-17 17:11 Hello-World3 阅读(270) 评论(0) 推荐(0) 编辑

内核中读写文件
摘要:1. 插曲 阅读Linux内核源码,可以知道read 和 write 这两个系统调用陷入内核实际执行的是 sys_read 和 sys_write 这两个函数,但是这两个函数没有使用 EXPORT_SYMBOL 导出,也就是说其他模块不能使用。 read系统调用的调用号定义: //include\u 阅读全文

posted @ 2021-04-13 23:51 Hello-World3 阅读(1494) 评论(0) 推荐(1) 编辑

驱动杂记
摘要:1. kernel中可以使用“%pf”(4.14以后版本要改为使用%pS)格式控制,通过函数指针打印函数的名字。(测试用户空间无效) 2. 使用"__setup"指定命令行启动参数的解析函数,如下面指定根文件系统存储设备的参数。 __setup("root=", root_dev_setup); _ 阅读全文

posted @ 2021-04-08 20:30 Hello-World3 阅读(103) 评论(0) 推荐(0) 编辑

MTK相关汇总
摘要:1. MTK提case网站:https://sso.mediatek.com/eai/Login.aspx 阅读全文

posted @ 2021-03-31 16:20 Hello-World3 阅读(578) 评论(0) 推荐(0) 编辑

Linux TV 学习笔记
摘要:1. Linux TV相关资料 4.14 Kernel:Linux Digital TV driver-specific documentation:https://www.kernel.org/doc/html/v4.14/media/dvb-drivers/index.htmlLinux Med 阅读全文

posted @ 2021-03-30 01:44 Hello-World3 阅读(325) 评论(0) 推荐(0) 编辑

Linux firmware子系统的实现机制学习笔记
摘要:一、Linux固件子系统概述 固件是硬件设备自身执行的一段程序。固件一般存放在设备flash内。而出于成本和便利性的考虑,通常是先将硬件设备的运行程序打包为一个特定格式的固件文件,存储到终端系统内,通过终端系统给硬件设备进行升级。Linux内核开发过程中,开发人员调试外设驱动设备,比如触控,充电,线 阅读全文

posted @ 2021-03-29 23:32 Hello-World3 阅读(3384) 评论(0) 推荐(0) 编辑

sysctl内核变量驱动实现分析
摘要:Sysctl是一种用户应用来设置和获得运行时内核的配置参数的一种有效方式,实现位置kernel/sysctl.c,通过这种方式,用户应用可以在内核运行的任何时刻来改变内核的配置参数,也可以在任何时候获得内核的配置参数。 通常,内核的这些配置参数也出现在proc文件系统的/proc/sys目录下,用户 阅读全文

posted @ 2020-10-25 23:58 Hello-World3 阅读(1878) 评论(0) 推荐(0) 编辑

【文件系统】实现一个小的文件系统
摘要:1. 实现文件系统要记住两个重要链表 a.文件系统链表。b.每一个文件系统的mount挂载点链表。 2. 注意vfs提供的三类接口 a.和POSIX系统调用有关的接口 即实现open/read/write的操作的接口。b.和底层介质有关的接口 即下接块设备层的接口。c.如何管理自身的接口,即何时以及 阅读全文

posted @ 2020-05-31 18:35 Hello-World3 阅读(1502) 评论(0) 推荐(0) 编辑

pinctrl(2)——驱动实现与设备树配置
摘要:一、pinctrl子系统简介 1. pin control subsystem驱动的硬件叫做pin controller,主要功能包括:(1) pin multiplexing,pin引脚复用。(2) pin configuration,这些配置参数包括 pull-up/down电阻的设定, tri 阅读全文

posted @ 2020-05-24 18:07 Hello-World3 阅读(5448) 评论(0) 推荐(0) 编辑

导航