E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
【linux驱动】
linux驱动
由浅入深系列:PBL-SBL1-(bootloader)LK-Android启动过程详解之一(高通MSM8953启动实例)
对于嵌入式工程师了解芯片启动过程是十分有必要的,在分析、调试各种问题的时候都有可能涉及到这方面的知识。同时这部分知识也是比较复杂的,因为其中涉及到芯片内部架构,启动各个阶段软件代码执行顺序,启动模式等等。下面以比较常用的QualcommMSM8953芯片的启动过程为例,进行宏观分析(大部分翻译了高通的手册^-^),下一篇文章进行代码分析。处理器核心可以看到MSM8953中的处理器有5个,分别为:1
二进制橙子
·
2020-07-31 14:25
linux驱动由浅入深系列
Linux驱动
的platform机制
最近在看SPI、I2C这样简单点的总线驱动程序,从Linux2.6起,内核引入了一套新的驱动管理和注册机制:Platform_device和Platform_driver。现在Linux中大部分的设备驱动都可以使用这套机制,总线为platform_bus,设备用platform_device表示,驱动用platform_driver进行注册。Linux的这种platformdriver机制和传统的
JuanA1
·
2020-07-31 14:38
Linux学习
【入门级别】linux内核驱动三种写法之——platform分离机制
platform分离机制前言框架图实例代码硬件信息部分led_dev.c软件信息部分led_drv.c遇到问题补充linux内核符号表kallsyms开启kallsyms第二列的类型:前言关于想追本溯源理清楚
linux
Auv开心
·
2020-07-31 10:37
个人技术成长记录
linux驱动
学习笔记
【入门级别】
linux驱动
的三种写法之前言——裸机程序
linux驱动
的三种写法之前言——裸机程序引子软硬件平台裸板编程编程准备编程思路编译烧录及运行遇到问题及其解决引子最近想要系统地学习下
linux驱动
程序的设备树的知识。
Auv开心
·
2020-07-31 10:37
学习笔记
个人技术成长记录
Linux驱动
mmap内存映射
mmap在linux哪里?什么是mmap?上图说了,mmap是操作这些设备的一种方法,所谓操作设备,比如IO端口(点亮一个LED)、LCD控制器、磁盘控制器,实际上就是往设备的物理地址读写数据。但是,由于应用程序不能直接操作设备硬件地址,所以操作系统提供了这样的一种机制——内存映射,把设备地址映射到进程虚拟地址,mmap就是实现内存映射的接口。操作设备还有很多方法,如ioctl、ioremapmm
zuixin369
·
2020-07-30 22:54
Linux
Linux驱动
程序安装步骤(包括PC上及开发板上)
Linux驱动
程序安装步骤(包括PC上及开发板上)2011-04-0719:27:14分类:LINUX一.PC机上Ubuntu9.10系统下1.驱动程序源码及Makefile如下:#------源程序-
hwmt2012
·
2020-07-30 15:33
Linux驱动
程序记录时间差的方法--jiffies和do_gettimeofday()区别。
Linux驱动
程序记录时间差的方法常用的Linux内核空间记录一个事务的时间差有两种方法–使用jiffies变量和do_gettimeofday()函数。
迷离的猫
·
2020-07-30 13:39
Linux设备驱动程序
Linux驱动
模块编写
Linux驱动
直接写函数,init,exit不需要想windows指定函数名,但是需要注册函数。
kernweak
·
2020-07-30 13:58
Linux
内核
软件调试
linux下驱动模块化编译,动态加载以及卸载
Linux驱动
模块化编译、加载、卸载2010-8-27硬件平台:OMAPL-138软件平台:linux2.6.32+Ubuntu步骤::1、编写first_driver_hello.c文件,将其放在/linux2.6.32
yhf19881015
·
2020-07-30 13:53
嵌入式
linux驱动
编写编译要点(只适合新手看)
以一个简单的LED驱动及按键驱动编写为例1.驱动编写要点:linux2.6以上版本很多函数的名称和以前有所不同,如果学习资料年份比较早,按此操作可能会出现很多问题,这会让初学者感到非常困惑:为什么完全按照视频/书中操作,视频/书中没有问题,我的总是出现很多错误?驱动程序有以下几个函数有更新:a设备节点创建class_device_create更新为device_create格式举例:ledsdrv
子衿_Mike
·
2020-07-30 12:26
Linux驱动
中获取系统时间
最近在做VoIP方面的驱动,总共有16个FXS口和FXO口依次初始化,耗用的时间较多。准备将其改为多线程,首先需要确定哪个环节消耗的时间多,这就需要获取系统时间。#include/*头文件*/structtimevaltime_now;unsignedlonginttime_num;//获取的时间do_gettimeofday(&time_now);time_num=time_now.tv_sec
weixin_33889665
·
2020-07-30 12:57
Linux驱动
之LCD驱动编写
在
Linux驱动
之内核自带的S3C2440的LCD驱动分析这篇博客中已经分析了编写LCD驱动的步骤,接下来就按照这个步骤来字尝试字节编写LCD驱动。用的LCD屏幕为tft屏,每个像素点为16bit。
weixin_30652491
·
2020-07-30 12:19
Linux驱动
第一篇-----最简单的内核模块
最简单的内核模块就是从Helloworld开始的:首先看下Linux的内核结构再看下Linux目录结构:Linux内核源码采用树形结构。功能相关的文件放到不同的子目录下面,使程序更具有可读行arch目录–arch目录是平台目录。内核支持的所有CPU架构,在该目录下都有对应的子目录。每个CPU的子目录,又进一步分解为boot,mm,kernel等子目录,分别控制系统引导,内存管理,系统调用。还有动态
birate_小小人生
·
2020-07-30 12:33
linux
Linux驱动
的两种加载方式过程分析
一、概念简述在Linux下可以通过两种方式加载驱动程序:静态加载和动态加载。静态加载就是把驱动程序直接编译进内核,系统启动后可以直接调用。静态加载的缺点是调试起来比较麻烦,每次修改一个地方都要重新编译和下载内核,效率较低。若采用静态加载的驱动较多,会导致内核容量很大,浪费存储空间。动态加载利用了Linux的module特性,可以在系统启动后用insmod命令添加模块(.ko),在不需要的时候用rm
njust_sxy
·
2020-07-30 12:36
Linux
linux驱动
之:模块基本知识
作为驱动的开始,我们来看一看:1.底层函数和上层函数的不同:app(c)驱动模块入口函数main加载函数库应用层的库(usr/lib)内核API运行空间用户空间(高3G的内存)内核空间(低1G)释放资源要求释放必须释放2.写一个模块要有的三要素:模块许可证的声明MODULE_LICENSE("GPL");模块加载函数__init标识,或者module_init(xx)模块卸载函数__exit标识,
qqliyunpeng
·
2020-07-30 12:59
linux驱动
嵌入式
linux驱动
模块编译(初学者)
linux模块编译步骤(转)本文将直接了当的带你进入linux的模块编译。当然在介绍的过程当中,我也会添加一些必要的注释,以便初学者能够看懂。之所以要写这篇文章,主要是因为从书本上学的话,可能要花更长的时间才能学会整个过程,因为看书的话是一个学习过程,而我这篇文章更像是一个培训。所以实践性和总结性更强。通过本文你将会学到编译一个模块和模块makefile的基本知识。以及加载(卸载)模块,查看系统消
skdkjzz
·
2020-07-30 12:06
嵌入式
Linux驱动
编译
1、Linux内核的整体结构非常庞大,包含组件也非常多,使用所需的组件有两种方法:(1)编译为内核模块,随时安装,随时卸载。(2)直接编译进内核。2、驱动源码和Makefile:驱动源码:hello.c#include#includestaticinthello_init(void){printk(KERN_WARNING"Hello,world!\n");return0;}staticvoidh
夏公瑾
·
2020-07-30 12:33
驱动
Linux
最简单的嵌入式
Linux驱动
程序模块
注意:开发Arm平台的驱动,需要Arm平台的源码树;注意:ARM平台的linux内核源码需要先编译,否则无法编译驱动;一、第一种编译驱动方式,共6步第1步:建立源码树解压安装Linux内核源代码在工作目录/opt/FriendlyARM/mini2440中执行:#cd/opt/FriendlyARM/mini2440#tarxvzf/tmp/linux/linux-2.6.32.2-mini244
iteye_17686
·
2020-07-30 12:50
linux驱动
安装
在Linux下可以通过两种方式加载驱动程序:静态加载和动态加载。静态加载就是把驱动程序直接编译进内核,系统启动后可以直接调用。静态加载的缺点是调试起来比较麻烦,每次修改一个地方都要重新编译和下载内核,效率较低。若采用静态加载的驱动较多,会导致内核容量很大,浪费存储空间。动态加载利用了Linux的module特性,可以在系统启动后用insmod命令添加模块(.ko),在不需要的时候用rmmod命令卸
enchanterblue
·
2020-07-30 12:11
linux安装
简单的
linux驱动
模块编写
刚开始接触Linux的驱动,暂时只是从
Linux驱动
模块的角度出发,编写最简单的
linux驱动
模块,先贴代码~~~一个驱动模块有一下几部分组成:1、头文件2、模块的装载函数和卸载函数的实现3、模块的装载函数和卸载函数的声明
fenglang1233307
·
2020-07-30 12:23
嵌入式
linux驱动
编写(lcd驱动)
【声明:版权所有,欢迎转载,请勿用于商业用途。联系信箱:
[email protected]
】有些嵌入式设备是不需要lcd的,比如路由器。但是,还有些设备是需要lcd显示内容的,比如游戏机、测试仪、智能手表等等。所以,今天我们就看看lcd驱动在linux上是怎么进行的。1、代码目录drivers/video2、查看video下的Makefile文件#SPDX-License-Identifier
费晓行
·
2020-07-30 12:22
linux驱动编写
Linux驱动
程序如何编译进内核
很多刚接触
Linux驱动
的初学者,肯定有这样的疑问,如何把自己写的驱动程序编译进内核使之可以驱动我的设备呢?
ToureYaya
·
2020-07-30 12:34
linux
驱动
Linux内核模块静态加载的顺序
内核模块静态加载的顺序
Linux驱动
先注册总线,总线上可以先挂device,也可以先挂driver,那么究竟怎么控制先后的顺序呢?Linux系统使用两种方式去加载系统中的模块:动态和静态。
LoneHugo
·
2020-07-30 11:37
Linux
Linux驱动
程序模块编译流程
Linux驱动
程序模块编译流程
Linux驱动
程序可以在内核配置时直接编译进内核或者以模块编译成生.ko文件动态加载。下面以arm开发板上光感驱动程序为例子,说明模块编译,动态加载的流程。
vopo123
·
2020-07-30 11:06
Linux驱动
从串口驱动到
Linux驱动
模型
大学的时候,帮朋友写的操作系统调研的作业,最近整理过去的文档时候偶然发现,遂作为博客发出来。从串口驱动到Linux的tty子系统驱动模型简要分析基于ARM920T核心Samsung的S3C2440芯片本文通过对Linux下串口驱动的分析。由最上层的C库。到操作系统系统调用层的封装。再到tty子系统的核心。再到一系列线路规程。再到最底层的硬件操作。对Linux中的tty子系统进行简要的说明。从理论到
Linkerist
·
2020-07-30 11:53
Linux 最简单内核模块 Hello World 示例
Linux最简单内核模块HelloWorld示例2015年04月28日08:38:33a_ran阅读数:6761标签:kernel
linux驱动
内核HelloWorld更多个人分类:C/C++驱动Linuxkernel
huadeerxiao
·
2020-07-30 11:56
IoT开发
linux驱动
模块编译(初学者)
linux模块编译步骤(转)本文将直接了当的带你进入linux的模块编译。当然在介绍的过程当中,我也会添加一些必要的注释,以便初学者能够看懂。之所以要写这篇文章,主要是因为从书本上学的话,可能要花更长的时间才能学会整个过程,因为看书的话是一个学习过程,而我这篇文章更像是一个培训。所以实践性和总结性更强。通过本文你将会学到编译一个模块和模块makefile的基本知识。以及加载(卸载)模块,查看系统消
tangchao198507
·
2020-07-30 11:06
【
linux驱动
】spi framebuffer驱动(切换并显示虚拟终端)
1.framebuffer驱动2.spiframebuffer驱动3.spiframebuffer驱动(切换并显示虚拟终端)切换终端输出接这上一节spiframebuffer驱动实现了,但是只有刷屏。6个虚拟终端并没有显示在屏幕上,要想办法让虚拟终端显示到我们的fb上面来。最总虚拟终端的源代码(过程不详述),发现了这么个地方:/driver/video/console/fbcon.cstatici
mini-coco
·
2020-07-30 11:57
Linux
kernel
linux驱动
framebuffer
spi
ILI9488
【
linux驱动
】一文读懂linux设备驱动模型(常见总线bus)
总线分类接上一篇讲了总线模型,总线从代码角度看都是虚拟概念,但是有的总线对应有实体硬件,有的没有。platform总线就没有实体硬件,这种称作虚拟总线。SPI,IIC这种有实体硬件的应该是真正的总线了=。=platform总线总线的设计是为了代码的复用,其中platform总线是最经常使用的虚拟总线,任何直接与CPU打交道的设备都挂接在platform虚拟总线上。platform总线已经实现好的,
mini-coco
·
2020-07-30 11:57
Linux
kernel
linux驱动
spi
pl022
驱动模型
总线
【
linux驱动
】spi framebuffer驱动
1.framebuffer驱动2.spiframebuffer驱动3.spiframebuffer驱动(切换并显示虚拟终端)spiframebuffer驱动上一节实现了一个framebuffer驱动,但是没有具体操作硬件,这节做一个SPI屏驱动,整个代码作为一个spi驱动去写。spi相关内容可以看一文读懂linux设备驱动模型(常见总线bus)。首先是spi驱动,屏幕的操作由厂家C51代码改编而来
mini-coco
·
2020-07-30 11:26
Linux
kernel
spi
spi
framebuffer
linux内核
Linux驱动
【
linux驱动
】framebuffer驱动
1.framebuffer驱动2.spiframebuffer驱动3.spiframebuffer驱动(切换并显示虚拟终端)framebuffer驱动framebuffer最基本的驱动只需要填充并注册fb_info结构体structfb_info{atomic_tcount;intnode;intflags;structmutexlock;/*Lockforopen/release/ioctlfu
mini-coco
·
2020-07-30 11:25
Linux
kernel
linux驱动
driver
framebuffer
【
linux驱动
】一文读懂linux设备驱动模型(总线bus)
总线模型简单的设备驱动都是一个文件,init_module,exit_module之后就是一通操作。但是总线这个词常常听说,但是却不明所以然。下面大话一下如何从最基本的驱动一步步演变成为总线模型的。首先从代码的角度看,代码分为数据(设备地址,初始参数,依赖的GPIO)和逻辑,为了复用逻辑于是吧数据单独拿出来。这样就可以实现多个设备共用一套逻辑,最后这些数据在内核代码中就被称为了设备,而逻辑就被称为
mini-coco
·
2020-07-30 11:25
Linux
kernel
linux内核
linux驱动
驱动模型
linux I2C 驱动之----i2c_driver的注册
分类:
linux驱动
在linuxI2C驱动之----i2c_client的注册中介绍了i2c_client的注册,现在再来说说i2c_driver的注册过程。
夏豆芽
·
2020-07-30 06:21
全网络对Linux input子系统最清晰、详尽的分析
Linuxinput分析之二:解构input_handler、input_core、input_device输入输出是用户和产品交互的手段,因此输入驱动开发在
Linux驱动
开发中很常见。
吴跃前
·
2020-07-30 06:32
LINUX内核
驱动
Linux驱动
之i2c用户态函数调用
一、概述I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL.正因为这样,它方便了工程人员的布线.二、用户态实现设备驱动在Linux内核代码文件i2c-dev.c中实现了I2C适配器设备文件的功能,针对每个适配器生成一个主设备号为89的设备节点(次设备号为0-255),I2c-dev.c并没有针对特定的设备而设计,只是提供了通用的read(),write(),和ioctl()等文件操作接口
wnn_0919
·
2020-07-30 05:39
LInux
树梅派linux编成,i2c读取mpu9250数据
最近刚买了块树梅派3b,打算重新玩下
linux驱动
等,正好身边有mpu9250模块,用来研究正好。
好玩的树莓派实验室
·
2020-07-30 04:39
树梅派
手把手教你写Linux I2C设备驱动
LinuxI2C驱动是嵌入式
Linux驱动
开发人员经常需要编写的一种驱动,因为凡是系统中使用到的I2C设备,几乎都需要编写相应的I2C驱动去配置和控制它,例如RTC实时时钟芯片、音视频采集芯片、音视频输出芯片
weixin_33726313
·
2020-07-30 03:43
Ethernet PHY芯片AR8035驱动
因此,在
Linux驱动
中有通用的PHY驱动,3288之前的芯片所配套的SDK中使用的
若问来客_清风与我
·
2020-07-30 02:12
Linux内核
Linux驱动
开发19之spi驱动模型的数据结构
1.SPI传输模式(各定义在include/linux/spi.h)先看一下这些和时序有关的:00075:#defineSPI_CPHA0x01/*clockphase*///时钟相位,数据采样时刻对应着的SCLK是第一个(0)还是第二个边沿(1)00076:#defineSPI_CPOL0x02/*clockpolarity*///时钟极性,SCLK空闲时候的电压,是0还是1,CPHA和CPOL
wangdapao12138
·
2020-07-30 02:29
linux驱动编程
Linux驱动
开发12之再论I2C 驱动模型之device
1.驱动工程师所关心的东西首先作为驱动工程师移植I2C驱动的时候,除了I2C驱动框架之外,最关心的是什么?使用的是哪个管脚,如果更改怎么办?I2C的时钟哪里来?I2C的速率是多大?怎样修改?时序怎样?I2C主从模式怎样设置的?在控制台命令行,怎样验证I2C驱动的移植是正确的,有哪些方法?怎样验证通过I2C去读写一个设备的寄存器?一条总线上挂载多个设备,怎样移植?如果I2C的管脚使用的是gpio模拟
wangdapao12138
·
2020-07-30 02:28
linux驱动编程
linux驱动
开发8设备驱动模型
linux驱动
开发8设备驱动模型1.什么是设备驱动模型1)类class、总线bus、设备device、驱动driver。驱动模型中四个概念,也是四个结构体。
wangdapao12138
·
2020-07-30 02:28
linux驱动编程
linux驱动
开发1之什么是驱动?
2.什么是
linux驱动
驱动的本质是电力驱动,而驱动代码只是给出了操作方法。
wangdapao12138
·
2020-07-30 02:28
linux驱动编程
Linux驱动
编写入门-新解
1.驱动编写后是一个C文件,通过make命令对其进行编译,生成.KO文件,这个文件就是可执行的驱动文件,通过使用insmodxx.ko即可执行此驱动文件。如下为一个完整的驱动程序C文件。(用的是讯为开发板教程文件)#include#include/*驱动注册的头文件,包含驱动的结构体和注册和卸载的函数*/#include#defineDRIVER_NAME"hello_ctl"MODULE_LIC
w942401053
·
2020-07-30 02:14
Linux学习
Linux
驱动开发
设备节点
驱动调用
Linux驱动
之I2C驱动架构
一、Linux的I2C体系结构主要由三部分组成:(1)I2C核心提供I2C控制器和设备驱动的注册和注销方法,I2C通信方法,与适配器无关的代码以及探测设备等。(2)I2C控制器驱动(适配器)(3)I2C设备驱动二、重要的结构体i2c_adapter//i2c控制器(适配器)structi2c_adapter{structmodule*owner;unsignedintclass;/*classes
挣钱养梦
·
2020-07-30 01:08
Linux驱动
linux驱动
——input输入子系统(3)——evdev
linux驱动
——input输入子系统(1)—输入子系统核心层(InputCore)的地址链接
linux驱动
——input输入子系统(2)——handler的地址链接evdev输入事件驱动,为输入子系统提供了一个默认的事件处理方法
tianxiawuzhei
·
2020-07-30 00:28
linux驱动
2020-02-06-Linux设备驱动开发0-环境搭建
layouttitlesubtitledateauthorheader-imgcatalogtagspostLinux设备驱动开发0-环境搭建学习
Linux驱动
开发,当然得有一个自己的练兵台了!
Aaron_Shen_Gao
·
2020-07-30 00:59
linux内核开发
树莓派-底层开发(1)-
linux驱动
hello world
最近想鼓捣一下Linux,手头刚买一块树莓派3B+,笔者以前只干过单片机,我想是否可以像单片机那样,从读写寄存器这个角度进行学习理解。首先希望实现硬件的驱动编写,网上这方面资料杂并且久,水平较低折腾了一天,终于写了一个可以跑的驱动模块,整理在这里,备忘并供需要的朋友参考。开发环境PC:ubuntu64位ssh接入显示信息如下WelcometoUbuntu18.04.2LTS(GNU/Linux4.
shanglin163
·
2020-07-30 00:15
linux
linux驱动
开发延迟函数:msleep、mdelay、udelay介绍
linux延迟函数:msleep、mdelay、udelay等介绍一、这里介绍一下延时函数msleep、mdelay、udelay等,写驱动的时候偶尔会用到,简单说明他们之间的区别。二、这几个函数在kernel-3.18\include\linux\delay.h定义。三、虽然这些函数都有延迟的作用,他们的区别如下:(1)对于模块本身,mdelay是忙等待函数,在延迟过程中无法运行其他任务.这个延
海月汐辰
·
2020-07-29 22:39
Linux驱动编程
firefly-rk3288开发板
Linux驱动
——LED驱动
本文主要介绍两个部分的内容:一、准备SDK源码二、LED设备驱动的实现。由于firefly官方一直在对源码进行更新,所以本文只以我正在用的版本介绍。此外,官方提供的下载工具版本不同需要准备的镜像文件(.img文件)也不同,因此,这里也只介绍我正在使用的版本。SDK版本:firefly-sdk-20200629.7z下载工具版本:AndroidToolv2.58U-Boot:2017.09Linux
Ruler.
·
2020-07-29 22:01
#
Firefly
RK3288
Vulkan
Linux驱动
源代码即将开源
当时听说AMD的Vulkan
Linux驱动
一开始将作为闭源产品,然后在准备好时再向市场开源。这听起来像是只需几个月左右的时间,但直到现在Vulkan驱动仍然属于闭源产品。不过,我们终于迎来了好消息。
study-linux
·
2020-07-29 21:40
上一页
34
35
36
37
38
39
40
41
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他