linux驱动
文章平均质量分 92
eydwyz
AA123456123456
展开
-
linux驱动加载 动态加载 静态加载 自动加载
linux驱动加载 动态加载 静态加载 自动加载_luopandeng的博客-CSDN博客_linux驱动加载概述在Linux下可以通过两种方式加载驱动程序:静态加载和动态加载。静态加载就是把驱动程序直接编译进内核,系统启动后可以直接调用。动态加载利用了Linux的module特性,可以在系统启动后用insmod命令添加模块(.ko),在不需要的时候用rmmod命令卸载模块。驱动加载静态加载过程将模块的程序编译到Linux内核中,也就是咱们在编译内核时选择Y的模块,静态由do_initcall函数加载。先来转载 2022-06-30 15:33:20 · 2261 阅读 · 0 评论 -
linux内核驱动 DMA Engine使用
转https://blog.csdn.net/dragon101788/article/details/99673427转 http://www.wowotech.net/linux_kenrel/dma_engine_overview.htmlLinux DMA Engine framework(1)_概述一 DMA control 驱动1. 前言前面文章介绍“ Linux MMC framework ”的时候,涉及到了MMC数据传输,进而不可避免地遭遇了DMA(Direct Memory..转载 2021-05-22 15:54:36 · 1697 阅读 · 0 评论 -
如何编译Linux 内核模块
转载https://blog.csdn.net/u012247418/article/details/83684214本文主要介绍如何在内核外编译内核模块,即:how to build an out-of-tree kernel module.1. 代码hello.c#include <linux/module.h> //所有模块都需要的头文件#include <linux/init.h> // init&exit相关宏#include <...转载 2021-05-18 16:15:22 · 1398 阅读 · 0 评论 -
ARM Linux启动流程分析——内核自解压阶段
https://blog.csdn.net/luckyapple1028/article/details/44726131本文整理了ARM Linxu启动流程的第一阶段——内核自解压,内核版本为3.12.35。我以手上的树莓派b(ARM11)为平台示例来分析uboot跳转到Linux内核运行后做了哪些初始化动作,以及如何转入真正的内核开始运行。内核版本:Linux-3.12.35分析文件:linux/arch/arm/boot/compressed/head.S单板:...转载 2021-02-05 15:35:37 · 549 阅读 · 0 评论 -
ARM Linux启动流程分析——start_kernel前启动阶段(汇编部分)
https://blog.csdn.net/luckyapple1028/article/details/45287617本文整理了ARM Linxu启动流程的第二阶段——start_kernel前启动阶段(汇编部分),内核版本为3.12.35。我以手上的树莓派b(ARM11)为平台示例来分析Linux内核在自解压后到跳转运行start_kernel之前所做的主要初始化工作:包括参数有效性验证、创建初始页表和MMU初始化等。内核版本:Linux-3.12.35分析文件:arch/arm..转载 2021-02-05 15:32:50 · 674 阅读 · 0 评论 -
Linux设备驱动模块自加载示例与原理解析----good
https://blog.csdn.net/luckyapple1028/article/details/44261391本文介绍Linux设备驱动模块在设备注册时如何实现自动加载和创建设备节点。在Linux系统中,基于sysfs文件系统、设备驱动模型和udev工具可以实现在设备模块“冷、热”加载时自动加载设备对应的驱动程序,同时可以按需在/dev目录下创建设备节点。本文中我搭建好环境并写了两个简单的示例程序demo_device.c和device_driver.c来模拟“设备”与“驱...转载 2021-02-05 15:29:31 · 879 阅读 · 0 评论 -
eMMC之分区管理、总线协议和工作模式
一、eMMC 简介eMMC 是embedded MultiMediaCard的简称。MultiMediaCard,即MMC, 是一种闪存卡(Flash Memory Card)标准,它定义了 MMC 的架构以及访问 Flash Memory 的接口和协议。而eMMC 则是对 MMC 的一个拓展,以满足更高标准的性能、成本、体积、稳定、易用等的需求。eMMC 的整体架构如下图片所示:图片: eMMC 整体架构eMMC 内部主要可以分为Flash Memory、Flash Contro...转载 2021-02-03 17:49:54 · 1734 阅读 · 0 评论 -
Linux I2C设备驱动编写
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[-]I2C adapterSMBus 与 I2C的区别I2C driverI2C client在Linux驱动中I2C系统中主要包含以下几个成员:I2C adapter 即I2C适配器I2C driver 某个I2C设备的设备驱动,可以以driver理解。I2C cl转载 2017-05-02 18:06:44 · 3585 阅读 · 0 评论 -
Device Tree常用方法解析
目录(?)[-]Device Tree常用方法解析作用基本数据格式一些基本概念工作方式a 地址b 中断c 其他进阶例子相关资料及引用Device Tree常用方法解析Device Tree在Linux内核驱动中的使用源于2011年3月17日Linus Torvalds在ARM Linux邮件列表中的一封邮件,他宣称“this转载 2017-05-02 18:03:39 · 1389 阅读 · 0 评论 -
KBuild MakeFile介绍
从Linux内核2.6开始,Linux内核的编译采用Kbuild系统,这同过去的编译系统有很大的不同,尤其对于Linux内核模块的编译。在新的系统下,Linux编译系统会两次扫描Linux的Makefile:首先编译系统会读取Linux内核顶层的Makefile,然后根据读到的内容第二次读取Kbuild的Makefile来编译Linux内核。Linux内核Makefile分类·转载 2016-12-09 19:42:15 · 829 阅读 · 0 评论 -
linux驱动入门——模块参数和导出符号
驱动程序中lsmod命令实际读取的是/proc/modules文件 即与lsmod命令对应的结果是cat /proc/modules 内核中已经加载的模块的信息存在于/sys/module目录下 modprobe命令比insmod命令要强大,它在加载某模块时会同时加载该模块所依赖的其他模块 使用modprobe -r filename的方式卸载将同时其依赖的模块 mod转载 2016-12-09 17:35:15 · 1018 阅读 · 0 评论 -
编译某一个ko模块make modules SUBDIRS=drivers/xxx/
make modules SUBDIRS=drivers/usb/gadget/这样可以只是编译drivers/usb/gadget/目录下的ko模块---------------------------------------在drivers/char/Makefile文件中添加:obj-$ (CONFIG_S3C2410_GPIO_LED转载 2016-12-09 17:34:41 · 805 阅读 · 0 评论 -
2个分析input event事件的开源工具evtest,getevent
linux 的/etc/input/eventxx 设备可以用来方便地调试 鼠标、键盘、触摸板等输入设备有两个开源可用来读取input event事件的值,evtest与getevent(这个是从android中提取的)evtestEvtest.c点击(此处)折叠或打开/* * $Id: evtest.c,v 1.23 2005/02转载 2016-11-05 15:57:41 · 6846 阅读 · 0 评论