LXR | KVM | PM | Time | Interrupt | Systems Performance | Bootup Optimization

随笔分类 -  Linux常见模块

1

Linux NVMEM子系统:概述以及RK3588 OTP实例
摘要:NVMEM子系统为Non-Volatile类型存储提供统一内核处理框架。 1 NVMEM概述 NVMEM子系统为eeprom,otp,efuse类型设备提供统一的访问接口。一般都基于regmap实现读写。 NVMEM子系统初始化: nvmem_init bus_register--注册NVMEM总线 阅读全文

posted @ 2024-05-26 23:59 ArnoldLu 阅读(1075) 评论(0) 推荐(0) 编辑

squashfs配置和使用
摘要:Squashfs的设计是专门为一般的只读文件系统的使用而设计,它可应用于数据备份,或是系统资源紧张的电脑上使用。 最初版本的Squashfs采用 gzip 的数据压缩。版本 2.6.34 之后的Linux内核增加了对 LZMA[1] 和 LZO [2]压缩算法的支持,版本 2.6.38 的内核增加了 阅读全文

posted @ 2024-05-10 23:59 ArnoldLu 阅读(1540) 评论(0) 推荐(0) 编辑

Linux extcon概要记录
摘要:关键词:extcon、uevent等。 1 extcon介绍 extcon是External Connector的简称,用于抽象外部连接器,比如说Audio Jack、USB MicroB/TypeC接口等。 extcon驱动的主要功能是识别外部连接器状态变化,并将状态变化通知到与外部连接器相关的其 阅读全文

posted @ 2024-05-04 23:59 ArnoldLu 阅读(820) 评论(0) 推荐(0) 编辑

Linux IIO子系统概述(结合STM32 ADC/DAC驱动)
摘要:关键词:IIO、ADC、DAC、Trigger等等。 IIO(Industrial I/O)主要用于数字量和模拟量转换的IO接口设备。这些设备种类繁多,内部一般都会有一个ADC或者DAC。SOC对这些设备操作可以通过I2C/SPI,或者直接访问寄存器进行。 IIO子系统主要管理抽象这些类别设备: 模 阅读全文

posted @ 2024-02-07 23:59 ArnoldLu 阅读(2328) 评论(0) 推荐(0) 编辑

Linux线程proc信息解析
摘要:每个线程对应的/proc/xxx有助于分析线程的各种资源占用情况。之前零零散散做了一些分析,这里总结记录一下。 /proc/183/ |-- auxv |-- cgroup |-- clear_refs |-- cmdline--执行进程的命令行,包括启动参数等等。 |-- comm--进程名称。 阅读全文

posted @ 2024-02-06 23:59 ArnoldLu 阅读(521) 评论(0) 推荐(0) 编辑

Linux watchdog子系统概述
摘要:关键词:watchdog、pretimeout、governor、softdog等等。 watchdog子系统是内核为保证系统正常运行,将系统从死循环或者死锁等状态中退出并重启的一种机制。 内核中支持基于hrtimer的softdog和基于硬件的watchdog。硬件看门狗从dts读取配置,创建同样 阅读全文

posted @ 2024-02-03 15:33 ArnoldLu 阅读(2823) 评论(0) 推荐(1) 编辑

Linux RTC子系统概述
摘要:关键词:rtc、date、hwclock、Alarm、WakeAlarm、AIE、PIE、UIE等等。 1 rtc子系统框架 rtc子系统分为三部分: rtc core:负责rtc设备注册注销;对用户空间提供rtc字符设备文件,以及rtc类sysfs接口。 rtc driver:将rtc设备注册到r 阅读全文

posted @ 2024-01-21 23:59 ArnoldLu 阅读(601) 评论(0) 推荐(0) 编辑

Linux pwm子系统概述
摘要:关键词:pwm,period,duty_cycle,polarity,enable等。 1 pwm子系统框架 pwm子系统比较简单: pwm core:提供pwm_chip的添加删除,pwm_class类pwm_chip/pwm_device的sysfs创建。 pwm driver:根据pwm co 阅读全文

posted @ 2024-01-20 23:59 ArnoldLu 阅读(666) 评论(0) 推荐(0) 编辑

Linux input子系统概述
摘要:关键词:input、evdev、mousedev、joydev、rfkill、tslib、evtest等等。 input子系统处理Linux下输入设备。外设接收到输入事件,发送到input core;input core根据事件类型,将事件交给对应的input handler处理,上报用户空间;用户 阅读全文

posted @ 2024-01-19 23:59 ArnoldLu 阅读(1105) 评论(0) 推荐(0) 编辑

LED/GPIO/pinctrl子系统(3):pinctrl子系统概述
摘要:关键词:pinctrl、pinmux、pinconf等。 pinctrl可以归结为两类设置:一类是功能选择,比如是普通的GPIO或者专用功能引脚;另一类是上拉、下拉、驱动能力、速率等配置。 pinctrl子系统主要完成如下工作: 初始化pin contrroller,并为其每个pin命名和枚举。 处 阅读全文

posted @ 2024-01-07 23:59 ArnoldLu 阅读(1261) 评论(0) 推荐(0) 编辑

LED/GPIO/pinctrl子系统(2):GPIO子系统概述
摘要:关键词:gpiolib、pinctrl、gpio-keys等。 在了解pinctrl基础上,分析GPIO子系统按照如下几方面进行: GPIO总体框架、gpiolib主要文件、menuconfig配置GPIO。 了解gpiolib的主要数据结构和API(GPIO Controller和Consumer 阅读全文

posted @ 2024-01-06 23:59 ArnoldLu 阅读(573) 评论(0) 推荐(1) 编辑

LED/GPIO/pinctrl子系统(1):基于GPIO的LED子系统概述
摘要:关键词:led、gpio、led trigger(heartbeat/netdev/timer)等等。 本系列文档以LED为起点,结合GPIO LED首先了解LED子系统;然后梳理背后的GPIO子系统;进而梳理GPIO子系统背后的pinctrl子系统。 LED子系统为设备提供指示灯、闪光灯等功能,对 阅读全文

posted @ 2023-12-30 23:59 ArnoldLu 阅读(1194) 评论(0) 推荐(0) 编辑

Linux NAND Flash建立分区表的几种方式
摘要:关键词:cmdline parser、dts parser、cmdline、mtdparts等等。 MTD支持三种创建分区表的方式: cmdline:通过bootargs传入。 dts:在dts中编写。 struct mtd_partition结构体代码:代码中固定配置。 他们的优先级是:分区结构体 阅读全文

posted @ 2023-12-16 23:59 ArnoldLu 阅读(1467) 评论(0) 推荐(0) 编辑

Linux ARM32内嵌DTB实现
摘要:大多数方案是将dtb独立,uboot启动kernel时通过r2传递dtb的地址。kernel读取到__atags_pointer,后续解析dtb内容。 内核保留了.dtb.init.rodata用于保存dtb内容,借此实现ARM32下dtb内嵌功能。 1 ARM 32启动__atags_pointe 阅读全文

posted @ 2023-12-15 23:59 ArnoldLu 阅读(290) 评论(0) 推荐(0) 编辑

Linux下固件加载器Firmware Loader
摘要:某些Linux外设需要固件才能正常工作,或者调试过程中需要更换固件。为解决设备驱动程序从内核态或者用户态加载固件到外设中,Linux提供了Firmware Loader子系统。 如果固件比较稳定,可以通过builtin方式加载。如果需要经常变动,可放入文件系统指定目录中。如果都无法找到需要根据uev 阅读全文

posted @ 2023-12-02 23:59 ArnoldLu 阅读(1267) 评论(0) 推荐(0) 编辑

uboot/Linux下MMC/SD/SDIO阅读记录
摘要:1 uboot下MMC/SD/SDIO 1.1 uboot下MMC/SD/SDIO相关配置 uboot下关于MMC/SD/SDIO驱动以及工具配置: Device Drivers ->MMC Host controller Support MMC/SD/SDIO card support suppo 阅读全文

posted @ 2023-10-21 23:59 ArnoldLu 阅读(3405) 评论(0) 推荐(2) 编辑

以PMIC为例简析Linux MFD/Regmap/Regulator的使用
摘要:关键词:ADI、SPI、Regmap、MFD、Regulator、PMIC等等。 以SC27XX为例,梳理一个PMIC用到的内核模块。 1. MFD框架 MFD是Multi-Function Device,MFD子系统是Linux下一种用于管理和控制多功能设备的软件框架。他提供一种统一接口,使得多个 阅读全文

posted @ 2023-10-15 23:59 ArnoldLu 阅读(1863) 评论(0) 推荐(0) 编辑

基于现有dtb文件修改内容
摘要:当有修改dtb需要,又不想经过linux编译生成dtb时,可以通过dtc工具进行dtb->dts,dts->dtb的转换。 dtc工具可以进行dtb和dts之间的转换,dts是可编辑文本。 Ubuntu下安装dtc工具: sudo apt-get install device-tree-compil 阅读全文

posted @ 2023-10-06 23:59 ArnoldLu 阅读(991) 评论(0) 推荐(0) 编辑

NAND/MTD/UBI/UBIFS概念及使用方法
摘要:关键词:NAND,MLC/SLC,Page/SubPage,EraseBlock,OOB,ECC,BitFlip,MTD,UBI,wearing-level,LEB,PEB,EC/VID,Volume,UBIFS等等。 由于调试NAND Linux启动,记录NAND/MTD/UBI/UBIFS点点滴 阅读全文

posted @ 2023-09-16 23:59 ArnoldLu 阅读(9309) 评论(1) 推荐(1) 编辑

zImage自解压起始地址:ZRELADDR
摘要:由于内存较小,zImage的起始地址受限。按照内存规划,修改zImage的加载地址,但是解压后Linux运行产生异常,可能是DataAbort,或者PrefetchAbort,或者Undefined Instruction。 1. 定位zImage自解压后,Kernel启动异常问题 T32启动运行后 阅读全文

posted @ 2023-07-01 23:59 ArnoldLu 阅读(428) 评论(0) 推荐(0) 编辑

1

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示