上一页 1 ··· 29 30 31 32 33 34 35 36 37 ··· 107 下一页
摘要: platform_device 的创建 主要有两种方式 (1)在内核初始化时通过device_node转换为platform_device,这种是最新的实现方式,基于设备树,在内核初始化时将设备树中的节点转化为platform_device; of_platform_default_populate 阅读全文
posted @ 2023-03-11 23:19 流水灯 阅读(65) 评论(0) 推荐(0)
摘要: kernel_init(); kernel_init_freeable(); do_basic_setup(); driver_init(); platform_bus_init(); platform总线的注册就是在 /sys 文件下建立对应的文件夹和属性文件,并为全局变量 platform_bu 阅读全文
posted @ 2023-03-11 20:19 流水灯 阅读(65) 评论(0) 推荐(0)
摘要: list_head,这是linux中通用的链表形式,双向循环链表,功能强大,实现简单优雅。可如果您认为list_head就是链表的极致,应该在linux链表界一统天下,那可就错了。据我所知,linux内核代码中至少还有两种链表能占有一席之地。一种就是hlist,一种就是本节要介绍的klist。虽然三 阅读全文
posted @ 2023-03-11 17:01 流水灯 阅读(226) 评论(0) 推荐(0)
摘要: 1、前言 对于任何一个指针来说,必然有三种情况:一种是有效指针,一种是NULL,也就是空指针,一种是错误指针,也就是无效指针,在Linux内核中,所谓的错误指针就是指其已经到达了内核空间的最后一个page,例如,对于32bit的系统来说,内核空间最后地址为0xFFFF FFFF,那么最后一个page 阅读全文
posted @ 2023-03-10 22:34 流水灯 阅读(1214) 评论(0) 推荐(0)
摘要: kobject /sys 下的文件夹,比如 "dev"、"kernel" 是通过 kobject_create_and_add 创建 一个 struct kobject 类型变量,对应 /sys 内的一个文件夹,"dev" 是 kobject 的名字,也是文件夹的名字 创建 "block" 和 "c 阅读全文
posted @ 2023-03-05 19:40 流水灯 阅读(756) 评论(0) 推荐(0)
摘要: System.map linux kernel 编译后产生的 System.map 文件是通过如下命令生成的 nm vmlinux | sort | less 上图中的第二列表示符号类型,如果是小写字母,一般表示局部性,大写字母,一般表示全局性(外部) 其他字母表示的函数类型,可以查询 binuti 阅读全文
posted @ 2023-02-26 17:05 流水灯 阅读(273) 评论(0) 推荐(0)
摘要: 应用程序通过调用 select / poll 函数,可以实现非阻塞编程,以下举例: int main(int argc, char *argv[]) { int fd; int ret = 0; char *filename; struct pollfd fds; fd_set readfds; s 阅读全文
posted @ 2023-02-19 22:39 流水灯 阅读(221) 评论(0) 推荐(0)
摘要: GIC 是 ARM 公司给 Cortex-A/R 内核提供的一个中断控制器,类似 Cortex-M 内核(STM32)中的 NVIC。 GIC:Generic Interrupt Controller,通用中断控制器。 NVIC:Nested Vectored Interrupt Controlle 阅读全文
posted @ 2023-02-17 22:29 流水灯 阅读(1240) 评论(0) 推荐(1)
摘要: 概述 原子(atomic)本意是“不能被进一步分割的最小粒子”,而原子操作(atomic operation)意为“不可被中断的一个或一系列操作”,可以保证指令以原子的方式运行,即执行过程不被打断。 对一个整数的操作可以用原子函数,避免使用互斥锁、自旋锁等锁机制带来的线程阻塞、锁竞争、死锁、优先级反 阅读全文
posted @ 2023-02-12 23:18 流水灯 阅读(816) 评论(0) 推荐(0)
摘要: pin controller pin controller 是用来设置引脚上下拉、三态、驱动强度、复用功能的,作为一个设备树节点,如 testgrp iomuxc: pinctrl@20e0000 { compatible = "fsl,imx6ul-iomuxc"; reg = <0x020e00 阅读全文
posted @ 2023-02-12 17:06 流水灯 阅读(146) 评论(0) 推荐(0)
上一页 1 ··· 29 30 31 32 33 34 35 36 37 ··· 107 下一页