fuzidage
专注嵌入式、linux驱动 、arm裸机研究

导航

 

2024年4月4日

摘要: 1 input 子系统介绍 按键、鼠标、键盘、触摸屏等都属于输入(input)设备,Linux 内核为此专门做了一个叫做 input子系统的框架来处理输入事件。 input 子系统分为 input 驱动层、input 核心层、input 事件处理层,最终给用户空间提供可访问的设备节点。 驱动层:输入 阅读全文
posted @ 2024-04-04 17:54 fuzidage 阅读(14) 评论(0) 推荐(0) 编辑
 
摘要: 1 LED子系统介绍 led 子系统相关描述可在内核源码 Documentation/leds/leds-class.txt 了解。 led 子系统是一个简单的 Linux 子系统 ,在目录 /sys/class/leds 下展示该子系统设备,每个设备都有自己的属性: brightness:设置 L 阅读全文
posted @ 2024-04-04 15:12 fuzidage 阅读(23) 评论(0) 推荐(0) 编辑
 

2024年3月23日

摘要: 1 kmalloc/vmalloc区别 函数 位置 特性 大小限制 kmalloc 物理内存映射区域 物理地址虚拟地址均连续 不能超过128K kzalloc 物理内存映射区域 物理地址虚拟地址均连续 不能超过128K vmalloc 虚拟内存映射区域 虚拟地址连续,物理地址不一定连续 无限制 vz 阅读全文
posted @ 2024-03-23 21:18 fuzidage 阅读(30) 评论(0) 推荐(0) 编辑
 
摘要: 1 pinctrl和gpio subsystem引入 Linux 驱动讲究驱动分离与分层,pinctrl 和 gpio 子系统就是驱动分离与分层思想下的产物。 pinctrl顾名思义就是引脚控制,用来配置比如引脚mux复用信息,引脚电器属性(比如上/下拉、速度、驱动能力等)信息。 gpio顾名思义就 阅读全文
posted @ 2024-03-23 00:17 fuzidage 阅读(12) 评论(0) 推荐(0) 编辑
 
摘要: 1 gpio 子系统引入 如果 pinctrl 子系统将一个 PIN 复用为 GPIO 的话,那么接下来要用到 gpio 子系统了。gpio 子系统顾名思义,就是用于初始化 GPIO 并且提供相应的 API 函数,比如设置 GPIO为输入输出,设置读取 GPIO 的值等。 gpio 子系统的主要目的 阅读全文
posted @ 2024-03-23 00:17 fuzidage 阅读(42) 评论(0) 推荐(0) 编辑
 

2024年3月2日

摘要: 参考资料 正点原子:http://www.openedv.com/docs/boards/arm-linux/zdyz-i.mx6ull.html 1 linux 命令 1.1 fdisk命令 1.1.1 查看分区 fdisk -l显示磁盘分区使用情况 1.1.2 删除分区 fdisk /dev/s 阅读全文
posted @ 2024-03-02 17:27 fuzidage 阅读(6) 评论(0) 推荐(0) 编辑
 

2024年2月21日

摘要: 1 根文件系统的引入 我们知道文件系统类型有 FATFS、FAT、EXT4、YAFFS 和 NTFS,squashfs等。文件系统可以让我们利用文件IO的形式对文件目录进行访问,而不用去访问flash存储地址,在使用上更为方便轻松。 根文件系统rootfs, 首先是内核启动时所 mount(挂载)的 阅读全文
posted @ 2024-02-21 16:33 fuzidage 阅读(40) 评论(0) 推荐(0) 编辑
 

2024年2月4日

摘要: 前言 基本安装 sudo apt-get install vim vim-scripts vim-doc vim-scripts是vim的一些基本插件,包括语法高亮的支持、缩进等等。 整体配置好后效果如下: 1 ctags + taglist安装配置 1.1 ctag作用 ctags 最先是用来生成 阅读全文
posted @ 2024-02-04 17:27 fuzidage 阅读(48) 评论(0) 推荐(0) 编辑
 

2024年1月31日

摘要: 1 链接脚本vmlinux.lds 先编译一下 Linux 源码,因为有很多文件是需要编译才会生成的。首先分析 Linux 内核的连接脚本文件 arch/arm/kernel/vmlinux.lds,通过链接脚本可以找到 Linux 内核的第一行程序是从哪里执行的。vmlinux.lds 中有如下代 阅读全文
posted @ 2024-01-31 19:48 fuzidage 阅读(36) 评论(0) 推荐(0) 编辑
 

2024年1月29日

摘要: 1 zImage编译 _all 是默认目标,如果使用命令make或者make all编译 Linux 的话此目标就会被匹配。 KBUILD_EXTMOD 为空的,因此194 行的代码成立, 因此_all依赖all。all又依赖vmlinux,开始编译vmlinux。 make ARCH=arm CR 阅读全文
posted @ 2024-01-29 17:38 fuzidage 阅读(24) 评论(0) 推荐(0) 编辑