- 博客(43)
- 收藏
- 关注
原创 ethtool 调用流程
2395.556646] bcmgenet_get_eee+0x24/0x88 [genet] //结束。[ 2395.556675] dev_ioctl+0xf8/0x288 //开始。
2024-05-10 19:48:37 479
原创 网络驱动- register_netdevice
2. 在 alloc_netdev_mqs 把init_net 赋值给 dev->nd_net->net。把net_device插入到全局变量init_net的dev_base_head 链表中。1. 定义init_net。
2024-05-09 09:08:45 218
原创 网路驱动 目录
注册: https://www.cnblogs.com/wanpengcoder/p/7526214.html。网络设备 结构体介绍。以太网控制器的ops。
2024-05-07 14:50:05 174
原创 spi 驱动总结
0. 源码 结构drivers/spi/spi.c 对应spi 核心drivers/spi/spidev.c 对应spi 设备驱动drivers/spi/spi-bcm2835.c 对应spi 控制器驱动1. 数据发送: ctrl->transfer_one 的实现2. 注册子设备int spi_register_controller(struct spi_controller
2024-05-06 18:23:40 161
转载 kthread_worker 和 kthread_work 机制
Linux Kernel 提供的 kthread_worker 和 kthread_work 机制,主要是定义了一种方便使用和管理内核线程的一种手段,依托 kthread_worker,内核的其他模块开发者(比如驱动开发)能够简单的实现内核线程的高效使用。本质上来说他们是一种内核线程使用和管理的方式,类似 work_struct 和 workqueue_struct 机制。
2024-05-06 13:35:50 34
原创 中断使用实例
irq_domain_translate(domain, fwspec, &hwirq, &type),获取硬件中断号。申请virq,该函数用于hw_irq和virq的映射处理。irq_create_fwspec_mapping函数主要功能是由下面五个函数组成的。
2024-04-30 14:40:25 126
原创 SPI 基础
一个时钟周期包含两个阶段:开始传输->开始采样开始采样时,clk 一定进行了 翻转如果开始传输,clk没有翻转则CPHA =0.首先拉高对应设备的SS线,选择对应的从设备通过SLCk产生时钟边沿变化,来告诉从设备读写主设备里的控制逻辑通过位移寄存器从高到低的方式移动给SDI总线上从设备接收到之后也通过位移寄存器的方式按照顺序移到DR寄存器中。
2024-04-30 13:41:43 160
原创 file_operations
32 位 程序 ->32位 kernel。64 位 程序 ->64位 kernel。32 位 程序 ->64位 kernel。
2024-04-29 17:14:03 302
原创 linux驱动-CCF-4 常见困惑
fixed-clock“ 节点 包含clock-frequency 属性,用于配置。注意区分assigned-clock-rate。答:clk_set_rate会向上传递,即设置它的父时钟频率。问题2: 设置时钟频率需要的参数。问题:设备树配置频率的问题。时钟controller。
2024-04-24 17:50:15 166
原创 linux驱动-CCF-0基础
晶振:提供基础时钟源的(可分为有源晶振、无源晶振两种);PLL: 用于倍频的锁相环;mux: 用于多路时钟源选择;Divider: 用于分频的;gate: 用于时钟使能的与门电路等。
2024-04-24 15:41:35 238
原创 linux驱动-CCF-3-consumer 接口
获取句柄#prepare 与enable//使能时钟,不会睡眠//使能时钟,不会睡眠int clk_prepare_enable(struct clk *clk) //使能时钟,可能会睡眠 void clk_disable_unprepare(struct clk *clk) //禁止时钟,可能会睡眠unsigned long clk_get_rate(struct clk *clk) //获取时钟频率。
2024-04-24 14:43:10 328
原创 linux驱动-CCF-1 provider 注册时钟
struct clk_hw_onecell_data onecell 填充到struct of_clk_provider *cp 中的data。struct clk_hw 组成 struct clk_hw_onecell_data onecell。b. 调用 of_clk_add_hw_provider 根据 进一步生成of_clk_provider ,并添加到全局列表。void *data;//对应 clk_hw_onecell_data(包含clk provider 注册的所有数组)
2024-04-24 13:38:14 447
原创 linux驱动-CCF-2 of_clk_provider
/provider 的设备节点//a.provider 根据 clksec 查找data 数据//b. clkspec->args[0]来自于 consumer节点的clocks属性的时钟说明符,//c. data 来自于 provider 特定的data数据void *data;
2024-04-24 09:21:05 587
原创 linux设备树-时钟
如果该provider的#clock-cells等于0,那么说明该provider就一个output,那么就不需要clock specifier来进一步描述。我们上面说过了,一个HW block(clock consumer)的时钟源可以通过phandle和clock specifier来描述,这里#clock-cells就是说明使用多少个cell(u32)来描述clock specifier。如果不提供这个属性,那么clock-output-names和index的对应关系就是0,1,2……
2024-04-23 14:57:53 731
原创 linux 驱动-匹配1 (platform_bus_type)
实例: echo "my_driver" > /sys/bus/platform/devices/my_device/driver_override。根据of_device_id 的 compatible, type, name顺序去匹配device_node的compatible, type, name。.of_match_table = bcm2835_rng_of_match, 方式2 /方式3().id_table = bcm2835_rng_devtype, 方式4。
2024-04-22 10:54:12 1063
原创 linux设备树-of_parse_phandle_with_args
index 表示 phandle 列 表的索引,0 代表第一个 phandle,1 代表第二个 phandle;cells_name 参数指明 phandle 指向的节点所含的 cells 个数;list_name 指向节点中 phandle 列表的属性名;out_args 参数用于存储 phandle 中的参数。即 #interrupt-cells = ;即interrupts。np 指向当前节点;即两个参数: 3 1。
2024-04-18 14:23:35 216
原创 linux设备树- device_node的 fwnode的作用
1. of_node_init(np)函数初始化了fwnode 变量2. 初始化fwnode.ops =of_fwnode_ops 结构体(实际包含一组函数)3. 类似 fwnode_xxx 的函数调用,实际调用了 ”of_fwnode_ops“结构体 提供的一组函数4. of_fwnode_ops“结构体的fw_fwnode_xxx 最终调用of_xxx 函数两个property.c 文件的说明。
2024-04-17 14:13:48 414
原创 IO扩展芯片-TCA9535
TCA9539-Q1 是一款 24 引脚器件,可为两线双向 I2C 总线(或 SMBus 协议)提供 16 位通用并行输入和输出 (I/O) 扩展。1. 支持 100kHz(I2C 标准模式)和 400kHz(I2C 快速模式)时钟频率2. 每当输入端口改变状态时在 INT 引脚上生成的中断3. A0 和 A1 硬件可选地址引脚允许同一 I2C 总线上最多四个 TCA9539-Q1 器件4. 通过硬件 RESET 引脚,将器件重置为其默认状态。
2024-03-28 10:58:03 697
原创 MIPI 简述
1. Camera 使用CSI(数据流方向 Camera -> SOC )Diaplay 使用DSI(数据流方向 SOC -> Display )2. CSI/ DSI 分为 发送器和接收器 (参照右图)3. CSI / DSI 的物理层均可以使用A-PHY ,C-PHY, D-PHY(常见).CSI与DSI。
2024-03-20 10:47:50 730
MIPI_Alliance_Specification_for_Camera_S (1).pdf
2024-03-21
AR0233.zip
2024-03-19
AR0233AT 1_2.5_Inch CMOS Digital Image Sensor_ Developer Gui.pdf
2024-03-19
IND-0623-GW5200-1.pdf
2024-03-18
自动驾驶领域 FAKRA 连接器
2024-03-15
汽车领域 HSD 连接器 手册
2024-03-15
PCI Express 6.0 规范,速度为 64.0 GT/s,采用 PAM-4 信令:低延迟、高带宽、高可靠性和经济高效
2024-03-14
2020-05-u-booting-securely-wp-final.pdf
2024-03-13
嵌入式开发-NXP-iMX-Working-with-Linux-and-uboot
2024-03-13
qpdf-11.9.0-mingw32.exe
2024-03-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人