文章分类 -  Linux Driver

摘要:netdev_ops比较复杂,另建一篇文章分析 struct net_device_ops { int (*ndo_init)(struct net_device *dev); void (*ndo_uninit)(struct net_device *dev); int (*ndo_open)(s 阅读全文
posted @ 2020-12-08 17:11 11YS 阅读(796) 评论(0) 推荐(0)
摘要:(1)分配设备号 使用register_chrdev注册字符设备需要事先给定主设备号,因此我们需要先确定哪些主设备号没有使用,并且分配一个主设备号将会使用下面所有的2^20的次设备号。alloc_chrdev_region 和register_chrdev_region提供一种自动分配设备号的方式。 阅读全文
posted @ 2020-12-08 13:16 11YS 阅读(93) 评论(0) 推荐(0)
摘要:1、什么是设备树 设备树(Device Tree),将这个词分开就是“设备”和“树”,描述设备树的文件叫做 DTS(Device Tree Source),这个 DTS 文件采用树形结构描述板级设备,也就是开发板上的设备信息,比如CPU 数量、 内存基地址、 IIC 接口上接了哪些设备、 SPI 接 阅读全文
posted @ 2020-12-08 09:44 11YS 阅读(923) 评论(0) 推荐(0)
摘要:bootcmd bootcmd保存默认的uboot命令,倒计时结束后会执行bootcmd命令,比如读取 EMMC 或者 NAND Flash 中的 Linux 内核镜像文件和设备树文件到 DRAM,然后启动内核。 在第一次启动内核的时候,都会按照include/env_default.h默认配置启动 阅读全文
posted @ 2020-12-07 11:06 11YS 阅读(277) 评论(0) 推荐(0)
摘要:Linux 的顶层 Makefile 和 uboot 的顶层 Makefile 非常相似,因为 uboot 参考了 Linux,前 600行几乎一样。 1.make ***_defconfig配置内核 config: scripts_basic outputmakefile FORCE $(Q)$( 阅读全文
posted @ 2020-12-04 10:25 11YS 阅读(304) 评论(0) 推荐(0)
摘要:1.help或者(?) 查看某一命令:?+命令 2.环境变量 (1)bdinfo 查询板子信息 (2)printenv 查看环境变量 (3)setenv setenv bootdelay 3 设置环境变量 saveenv saveen auther 'ytf' set auther //删除环境变量 阅读全文
posted @ 2020-12-03 09:46 11YS 阅读(210) 评论(0) 推荐(0)
摘要:概念 块设备将数据存储在固定大小的块中,每个块的大小通常在512到32768字节之间。 块设备和字节设备的区别:(1)块设备读取数据的基本单元为块,字符设备的基本单元是字节。(2)块设备能够随机访问,字符设备只能顺序访问。 VFS VFS对各种具体文件系统封装,为用户程序访问提供了统一的接口 Dis 阅读全文
posted @ 2020-11-26 14:59 11YS 阅读(79) 评论(0) 推荐(0)
摘要:pci总线描述 struct pci_driver { struct list_head node; char*name; conststruct pci_device_id *id_table; int(*probe)(struct pci_dev *dev,conststruct pci_dev 阅读全文
posted @ 2020-11-24 22:51 11YS 阅读(262) 评论(0) 推荐(0)
摘要:设备模型元素 总线 驱动 设备 总线是处理器和设备之间的通道,在设备模型中, 所有的设备都通过总线相连, 甚至是内部的虚拟“platform”总线。 在 Linux 设备模型中, 总线由 bus_type 结构表示, 定义在 <linux/device.h> struct bus_type { co 阅读全文
posted @ 2020-11-24 18:23 11YS 阅读(268) 评论(0) 推荐(0)
摘要:在不同平台的设备下需要主机驱动,如果每个设备都只提供一个设备驱动直接与主机相连,内核代码将会十分臃肿。将主机驱动和设备驱动分隔开,将会简化驱动的开发,linux提供总线(bus)、驱动(driver)和设备(device)模型。 当我们向系统注册一个驱动的时候,总线就会在右侧的设备中查找,看看有没有 阅读全文
posted @ 2020-11-24 10:30 11YS 阅读(1503) 评论(0) 推荐(0)
摘要:如果SOC不支持网络,指的是没有内置的MAC,需要外置MAC和PHY芯片,如:DM9000对SOC提供一个SRAM接口,SOC可以以SRAM方式操作DM9000。有些外置的网络芯片更强大,内部甚至集成了硬件 TCP/IP 协议栈,对外提供一个 SPI 接口,比如 W5500。这个一般用于单片机领域, 阅读全文
posted @ 2020-11-20 11:33 11YS 阅读(1060) 评论(0) 推荐(0)
摘要:一、BootLoader概念 嵌入式系统在软件角度分为三个层次:引导加载程序(固化在firmware中的boot程序和BootLoader)、Linux内核、文件系统 PC中引导加载程序由BIOS和GRUB,最后内核运行。 BootLoader在操作系统运行前,初始化硬件设备,为调用操作系统最准备。 阅读全文
posted @ 2020-11-19 13:43 11YS 阅读(987) 评论(0) 推荐(0)