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
驱动开发学习
【IMX6ULL
驱动开发学习
】18.中断下半部(tasklet、工作队列、中断线程化)
下图表述了Linux内核的中断处理机制,为了在中断执行时间尽量短和中断处理需完成的工作尽量大之间找到一个平衡点,Linux将中断处理程序分解为两个半部:顶半部(TopHalf)和底半部(BottomHalf)。顶半部:用于完成尽量少的比较紧急的功能,它往往只是简单地读取寄存器中的中断状态,并在清除中断标志后就进行“登记中断”的工作。“登记中断意味着将底半部处理程序挂到该设备的底半部执行队列中去。这
晨少爱学习
·
2023-07-14 04:45
IMX6ULL
驱动开发
中断
tasklet
工作队列
中断线程化
imx6ull
中断下半部
【IMX6ULL
驱动开发学习
】15.IMX6ULL驱动开发问题记录(sleep被kill_fasync打断)
发现问题的契机:学习异步通知的时候,自己实现一个功能:按键控制蜂鸣器,同时LED灯在闪烁结果:LED好像也同时被按键控制了最后调试结果发现:应用层的sleep被驱动层的kill_fasync打断,所以sleep没有执行完就重新进入下一次循环了修改代码后解决该问题解决逻辑就是:既然休眠函数会被打断,则让每次休眠的时间短一点解释:sleep函数是可以被中断的,也就是说当进程在睡眠的过程中,如果被中断,
晨少爱学习
·
2023-07-14 04:15
IMX6ULL
驱动开发
学习
IMX6ULL
fasync
【IMX6ULL
驱动开发学习
】17.内核定时器(按键消抖)
1.内核定时器初始化setup_timer(structtimer_list*timer,void(*function)(unsignedlong),unsignedlongdata);timer:定时器结构体structtimer_listfunction:定时器处理函数data:参数2.设置定时器的超时时间timer.expires=0;3.注册内核定时器,将定时器加人到内核动态定时器链表中a
晨少爱学习
·
2023-07-14 04:15
IMX6ULL
驱动开发
定时器
内核定时器
按键消抖
imx6ull
Linux驱动
【IMX6ULL
驱动开发学习
】09.Linux驱动之GPIO中断(附SR501人体红外感应驱动代码)
Linux驱动的GPIO中断编程主要有以下几个步骤:1、通过GPIO号获取软件中断号(中断编程不需要设置GPIO输入输出,当然申请GPIO,设置输入也没问题)intgpio_to_irq(unsignedintgpio)参数含义gpioGPIO引脚编号2、注册中断处理函数,设置中断触发方式(上升沿、下降沿等)intrequest_irq(unsignedintirq,irq_handler_tha
晨少爱学习
·
2023-06-18 22:29
IMX6ULL
驱动开发
linux
IRQ
中断
SR501
【IMX6ULL
驱动开发学习
】02.IMX6ULL烧写Linux系统
由于我买的是正点原子的IMX6ULL阿尔法开发板,但是我是看韦东山老师视频学习的驱动所以这里我烧录的方法是按照韦东山老师的课程来的这里给出烧写Linux系统用到的工具链接:https://pan.baidu.com/s/1bD-xxn3K8xQAVkJSaJmTzQ提取码:af6w下载解压后,可以看到烧写工具烧写Linux系统到SD卡中由于我这边使用韦东山老师的工具烧写到EMMC总是失败所以尝试烧
晨少爱学习
·
2023-06-18 05:57
IMX6ULL
驱动开发
学习
linux
IMX6ULL
【IMX6ULL
驱动开发学习
】07.cdev注册驱动设备_设置次设备号范围
一、register_chrdev在之前的hello驱动中,注册驱动设备的方式如下/*初始化设备方法1:自动分配设备号,占用所有次设备号*/major=register_chrdev(0,"hello_drv",&hello_fops);使用register_chrdev分配设备号的方式比较简单直接,但是会导致设备占用所有的次设备号举个例子:比如我的hello驱动主设备号是240,次设备号是0,如
晨少爱学习
·
2023-06-14 03:07
IMX6ULL
驱动开发
cdev
次设备号
驱动
【IMX6ULL
驱动开发学习
】08.IMX6ULL通过GPIO子系统函数点亮LED
通过GPIO子系统函数点亮LED1、GPIO子系统函数1.1确定led的GPIO标号,查看内核中的gpiochip查看gpiochip,以正点原子的IMX6ULL阿尔法开发板为例[root@100ask:/sys/class/gpio]#cat/sys/kernel/debug/gpio查看原理图,发现led接的引脚是GPIO1_IO3,对应/sys/kernel/debug/gpio中的gpio
晨少爱学习
·
2023-06-14 03:06
IMX6ULL
驱动开发
IMX6ULL
点灯
GPIO子系统
LED驱动
【IMX6ULL
驱动开发学习
】04.IMX6ULL开发板与虚拟机互传文件
互传文件前提:IMX6ULL开发板和虚拟机能够互相ping通,即在同一网段下且能够互ping可参考这篇博客:设置IMX6ULL开发板与虚拟机在同一网段目录一、使用SCP命令二、通过SFTP服务传输文件(使用Xftp等工具)三、通过NFS挂载虚拟机目录到开发板(推荐推荐推荐推荐推荐)一、使用SCP命令SCP命令的使用方法需要知道远端的用户名和IP,上面命令可以将远端的一个目录拷贝到当前设备下当然也可
晨少爱学习
·
2023-06-11 20:32
IMX6ULL
驱动开发
linux
NFS
SFTP
SCP
【IMX6ULL
驱动开发学习
】05.IMX6ULL驱动开发_编写第一个hello驱动【熬夜肝】
经过以下四个步骤,终于可以开始驱动开发了01.安装交叉编译环境【附下载地址】02.IMX6ULL烧写Linux系统03.设置IMX6ULL开发板与虚拟机在同一网段04.IMX6ULL开发板与虚拟机互传文件目录一、获取内核、编译内核二、创建vscode工作区,添加内核目录和个人目录三、了解驱动程序编写流程四、第一个驱动程序-hello驱动五、IMX6ULL验证hello驱动一、获取内核、编译内核1、
晨少爱学习
·
2023-06-11 20:32
IMX6ULL
驱动开发
linux驱动
第一个驱动程序
IMX6ULL
insmod
【IMX6ULL
驱动开发学习
】03.设置IMX6ULL开发板与虚拟机在同一网段
为什么要设置IMX6ULL与虚拟机通信?因为要把在虚拟机下编译的文件传到IMX6ULL开发板上运行设置好同一网段,可以互ping后,可以参考这篇博客,实现开发板与虚拟机的文件互传IMX6ULL开发板与虚拟机互传文件目录一、设置windows有线网卡二、配置虚拟机双网卡(原本有一个NAT网卡了)三、设置虚拟机静态IP四、设置IMX6ULL开发板静态IP一、设置windows有线网卡设置window下
晨少爱学习
·
2023-06-11 20:32
IMX6ULL
驱动开发
学习
IMX6ULL
虚拟机
ubuntu
【IMX6ULL
驱动开发学习
】06.APP与驱动程序传输数据_自动创建设备节点(hello驱动)
一、APP与驱动之间传输数据/*驱动从APP获取数据*/unsignedlongcopy_from_user(void*to,constvoid*from,unsignedlongn)/*驱动传输数据到APP*/unsignedlongcopy_to_user(void*to,constvoid*from,unsignedlongn)二、使用copy_to_user、copy_from_user在
晨少爱学习
·
2023-06-11 20:31
IMX6ULL
驱动开发
APP与驱动传输数据
自动创建设备节点
copy_to_user
copy_from_user
【基于IMX6ULL
驱动开发学习
】ARM开发板nfs挂载虚拟机目录
虚拟机端1)执行以下命令安装nfssudoapt-getinstallnfs-kernel-serverportmap2)配置nfs共享目录配置文件为/etc/exports,打开配置文件屏配置共享目录sudogedit/etc/exports修改配置文件,在文件里面增加以下内容/home/me/Linux_ARM/IMX6ULL/hello_driver*(rw,sync,no_root_squ
晨少爱学习
·
2023-06-08 06:16
IMX6ULL
arm开发
NFS
挂载
IMX6ULL
mount
【基于IMX6ULL
驱动开发学习
】01.安装交叉编译环境【附下载地址】
第一步(下载工具链):从官网上下载交叉编译工具链https://snapshots.linaro.org/gnu-toolchain/按照以下步骤选择可以选择最新的(我也忘记我用的哪个版本了,都可以用问题不大)第二步(将工具链拷贝到固定目录下保存好):其实将工具链放到哪个目录下都行,但是为了养成好习惯,我们把工具链放到/usr/local下下载之后,拷贝到虚拟机里,并解压解压后得到的文件夹便是我们
晨少爱学习
·
2023-06-08 05:44
IMX6ULL
驱动开发
linux
交叉编译
IMX6ULL
linux
驱动开发学习
笔记十四:pinctrl子系统介绍
一、前言之前已经介绍过关于设备树的一些基本概念,相信对设备数已经有了一些了解。我们知道在驱动开发过程中设备树是非常重要的,但是在使用pinctrl和gpio子系统之前,其实我们写驱动的方式,就拿点亮一个led来说,还是和裸机开发非常类似。因为我们仍然相当于直接操作的寄存器,和不使用设备树相比无疑只是将寄存器的地址写到了节点属性里,然后我们去读取而已。其实对于大多数的32位SOC而言,引脚的设置基本
耐心的小黑
·
2023-04-05 23:16
#
Linux驱动开发学习笔记
linux
(零)Linux
驱动开发学习
(零)Linux
驱动开发学习
一、系列简介该系列文章记录了我学习Linux驱动开发的过程。
达芬奇放假回家
·
2023-04-04 19:11
Linux驱动
驱动开发
linux
学习
linux
驱动开发学习
笔记一:关于linux内核的一些基本概念
一、什么是linux内核?Linux是一种开源电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。操作系统是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。计算机的硬件,含有外围设备、处理器、内存、硬盘和其他的电子设备组成计算机的发动机。但是没有软件来操作和控制它,自身是不能工作的。完成这
耐心的小黑
·
2023-04-04 19:47
#
Linux驱动开发学习笔记
linux
操作系统
内核
linux
驱动开发学习
笔记十七:并发与竞争
一、并发与竞争并发与竞争简介Linux系统是个多任务操作系统,会存在多个任务同时访问同一片内存区域,这些任务可能会相互覆盖这段内存中的数据,造成内存数据混乱。针对这个问题必须要做处理,严重的话可能会导致系统崩溃。现在的Linux系统并发产生的原因很复杂,总结一下有下面几个主要原因:①、多线程并发访问,Linux是多任务(线程)的系统,所以多线程访问是最基本的原因。②、抢占式并发访问,从2.6版本内
耐心的小黑
·
2023-03-30 12:46
#
Linux驱动开发学习笔记
内核
linux
Linux
驱动开发学习
笔记-电容触摸屏驱动
电容触摸屏驱动其实是以下几种linux驱动框架的组合:①IIC设备驱动,因为电容触摸IC基本都是IIC接口的,因此大框架就是IIC设备驱动。②通过中断引脚(INT)向linux内核上报触摸信息,因此需要用到linux中断驱动框架。坐标的上报在中断服务函数中完成。③触摸屏的坐标信息、屏幕按下和抬起信息都属于linux的input子系统,因此向linux内核上报触摸屏坐标信息就得使用input子系统。
细佬好嘢
·
2023-01-09 10:19
linux
驱动开发
学习
Linux
驱动开发学习
笔记02
主题:1./proc文件系统的作用(驱动调试)2.创建自己的proc文件3.内核的链表(list_head)使用4.结合内核链表和proc文件实现例子1.proc文件系统=======================由内核实现的文件系统。当用户态访问/proc下文件时,实际上是调用内核中和该文件对应的特定函数。一般用proc文件来实现内核/驱动的调试。大部分proc文件是只读的,用于获取内核信息;
铁路十六宿舍
·
2022-11-28 19:20
嵌入式Linux
linux
Linux
驱动开发学习
笔记03
主题:1.char/block/网络驱动的简介2.VFS的核心结构体3.char驱动的设计4.基于缓冲区的char驱动例子1.char/block/网络驱动的简介==============================讨论linux世界中如何对设备进行分类;为什么用char/block/网络来分类设备?还有哪些分类方式三类驱动最主要的区别就是数据的交互模式:通过字节流,数据块和数据包交互在实际
铁路十六宿舍
·
2022-11-28 19:20
嵌入式Linux
linux
Linux
驱动开发学习
笔记-块设备驱动
块设备是针对存储设备的,比如SD卡、EMMC、NANDFlash、NorFlash、SPIFlash、机械硬盘、固态硬盘等。块设备驱动相比字符设备驱动的主要区别如下:①块设备只能以块为单位进行读写访问,块是linux虚拟文件系统(VFS)基本的数据传输单位。字符设备是以字节为单位进行数据传输的,不需要缓冲。②块设备在结构上是可以进行随机访问的,对于这些设备的读写都是按块进行的,块设备使用缓冲区来暂
细佬好嘢
·
2022-11-18 20:09
linux
驱动开发
学习
Linux驱动开发(十四)---USB
驱动开发学习
(键盘+鼠标)
前文回顾《Linux驱动开发(一)—环境搭建与helloworld》《Linux驱动开发(二)—驱动与设备的分离设计》《Linux驱动开发(三)—设备树》《Linux驱动开发(四)—树莓派内核编译》《Linux驱动开发(五)—树莓派设备树配合驱动开发》《Linux驱动开发(六)—树莓派配合硬件进行字符驱动开发》《Linux驱动开发(七)—树莓派按键驱动开发》《Linux驱动开发(八)—树莓派SR0
胖哥王老师
·
2022-08-13 17:30
驱动开发
操作系统
linux知识
驱动开发
linux
键盘鼠标
usb驱动
我的前言
为了更加有效地进行Windows
驱动开发学习
,特开设这个专题,与大家一起学习,与君共勉!2016年6月15日22:26:26
云满笔记
·
2022-02-12 00:08
2021-02-26
linux
驱动开发学习
的第一天:—————阅读宋华宝的《linux设备驱动开发详解》今天是我拿到书的第一天,就迫不及待的阅读了第一章;简单的看完了第一章,其实第一章也没有讲什么,就是重点讲了以下由裸机驱动到
啥都想干好&&啥都干不好
·
2021-02-26 18:18
Linux驱动
Linux和树莓派
嵌入式
编程语言
linux
驱动开发学习
笔记二:linux系统目录以及linux内核源码目录分析
一、Linux系统目录分析登录系统后,在当前命令窗口下输入命令:ls/你会得到如下的信息:树状目录结构:以下对这些目录进行简单的解释:/bin:bin是Binary的缩写,这个目录存放着最经常使用的命令。/boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。/dev:dev是Device(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备
万能的小黑Alex
·
2020-09-14 15:07
Linux驱动开发学习笔记
内核
linux
Linux内核与
驱动开发学习
总结:自旋锁和信号量(五)
1、自旋锁和信号量使用自旋锁的进程不能睡眠,使用信号量的进程可以睡眠。中断服务例程中的互斥使用的是自旋锁,原因是在中断处理例程中,硬中断是关闭的,这样会丢失可能到来的中断。2、RCU锁http://blog.sina.com.cn/s/blog_6d7fa49b01014q9s.html讨论的内容包括原子操作;自旋锁,内存屏障;读写自旋锁,顺序锁;信号量,读写信号量,完成量;互斥量;RCU机制;B
fenggui
·
2020-09-13 05:22
Linux内核与驱动
PHP 规范开发(二):测试
预期学习目标PHPUnit的安装单元测试的编写TDD测试
驱动开发学习
Mock的使用测试覆盖率安装PHPUnitPHPunit中文文档(可以对照着英文的一起看)版本的选择PHPUnit版本PHP版本PHPUnit8PHP7.2
半斤桃花
·
2020-08-24 14:12
phpunit
mock
tdd
linux 设备
驱动开发学习
笔记(一):并发控制
转载:http://www.cnblogs.com/chen-farsight/p/6139416.html基本概念并发(concurrency):指的是多个执行单元同时、并行被执行,而并发的执行单元对共享资源(硬件资源和软件资源上的全局变量、静态变量等)的访问则很容易导致竞态(racecondition);竞态(racecondition):简单来讲,竞态就是指多个执行序列同时访问同一个共享资源
雪山飞狐_matix
·
2020-08-21 23:33
linux驱动开发
linux 设备
驱动开发学习
笔记(一):最简单的内核模块
linux模块机制模块本身不被编译入内核映像,控制了内核的大小。模块一旦被加载就和内核中的其他部分完全一样。一个最简单的HelloWorld内核模块//hello.c#include#includestaticint__inithello_init(void){printk(KERN_INFO"HelloWorldenter\n");return0;}module_init(hello_init)
雪山飞狐_matix
·
2020-08-21 23:33
linux驱动开发
驱动开发
linux
内核
Android底层HAL
驱动开发学习
笔记
2017.3.271.确定任务:加快摄像头的信息获取速率:缩减驱动程序、减小帧的大小,缩减一个像素点的比特流(6/8/10bit)2.重点了解函数:camerabuffer*buffer=mPreviewBufs.keyAt(index)可做定义intStride:16(4*4)GET:安卓手机在调试模式下直接做真机测试(3.30补:开发者选项打开步骤见Android开发实战教程-http://e
Hanabi_Hey
·
2020-08-16 20:18
安卓驱动
Linux内核中LED驱动框架
------朱有鹏老师
驱动开发学习
笔记1、读写LED设备属性文件----->LED设备属性的show和store方法-------->LED设备驱动程序--------->操作LED硬件设备;2、led_classdev
qq_27630885
·
2020-08-15 07:28
linux
Linux字符
驱动开发学习
总结
linux驱动编写(虚拟字符设备编写)昨天我们说了一些简单模块编写方法,但是终归没有涉及到设备的编写内容,今天我们就可以了解一下相关方面的内容,并且用一个实例来说明在linux上面设备是如何编写的。因为我们是在pclinux上学习驱动的,因此暂时没有真实的外接设备可以使用,但是这丝毫不影响我们学习的热情。通过定时器、进程,我们可以仿真出真实设备的各种需求,所以对于系统来说,它是无所谓真设备、假设备
bcbobo21cn
·
2020-08-14 16:28
转载
操作系统研发和研究
linux spi
驱动开发学习
(四)-----spi驱动程序完整流程分析
所有的应用程序使用dev/目录下创建的设备,这些字符设备的操作函数集在文件spidev.c中实现。点击(此处)折叠或打开staticconststructfile_operationsspidev_fops={.owner=THIS_MODULE,/*REVISITswitchtoaioprimitives,sothatuserspace*getsmorecompleteAPIcoverage.I
wjs1033
·
2020-08-14 04:25
linux
适合初学者的linux开发板
学习步骤:1系统安装学习Ubuntu系统安装、基础操作以及常用命令的使用2编译烧写搭建开发环境,编译和烧写系统3裸机例程学习裸机例程4应用开发学习Linux应用程序的开发5
驱动开发学习
Linux驱动程序的开发
zjq77700
·
2020-08-14 01:09
Linux
驱动开发学习
的一些必要步骤
1.学会写简单的makefile2.编一应用程序,可以用makefile跑起来3.学会写驱动的makefile4.写一简单char驱动,makefile编译通过,可以insmod,lsmod,rmmod.在驱动的init函数里打印helloworld,insmod后应该能够通过dmesg看到输出。5.写一完整驱动,加上read,write,ioctl,polling等各种函数的驱动实现。在ioct
luobin1984
·
2020-08-14 01:14
驱动开发
Linux
驱动开发学习
(一)
[一]、Linux驱动1.软件驱动驱动硬件,使硬件处于某种工作模式,提供控制硬件方法2.驱动的地位驱动是连接内核与设备的桥梁[二]、设备分类1.字符设备--->>>字符设备驱动--->>>字符设备文件2.网络设备--->>>网络设备驱动3.块设备--->>>块设备驱动--->>>块设备文件[三]、字符设备驱动1.驱动编写2.驱动编译3.驱动使用[四)、模块编写三要素:1.入口(加载)module_
甜航一直在
·
2020-08-12 17:13
笔记
学习
驱动开发
linux
驱动开发学习
笔记十二:设备树中节点的命名格式和常见属性
一、节点的命名格式1/{2aliases{3can0=&flexcan1;4};56cpus{7#address-cells=;8#size-cells=;910cpu0:cpu@0{11compatible="arm,cortex-a7";12device_type="cpu";13reg=;14};15};1617intc:interrupt-controller@00a01000{18com
万能的小黑Alex
·
2020-08-07 17:13
Linux驱动开发学习笔记
linux
驱动开发学习
笔记十一:初识设备树
一、什么是设备树?在Linux3.x之前的内核源码中,存在大量对板级细节信息描述的代码。这些代码充斥在/arch/arm/plat-xxx和/arch/arm/mach-xxx目录中。每年新出的ARM架构芯片少说都有数十、数百款,每一款芯片又会有很多款基于该芯片的板子,这些板子上的设备又不相同,每一块板子都要有自己的板级信息文件,所以Linux内核下板级信息文件将会成指数级增长!关键是这些板级信息
万能的小黑Alex
·
2020-08-07 17:13
Linux驱动开发学习笔记
Linux
驱动开发学习
笔记【3】:设备树
目录一、什么是设备树二、DTS、DTB和DTC的关系三、DTS基本语法四、创建小型的设备树模板五、设备树在系统中的体现六、特殊节点1、aliases节点2、chosen节点七、特殊的属性1、compatible属性(兼容性属性)2、model属性3、status属性4、#address-cells和#size-cells属性5、reg属性6、ranges属性7、device_type属性八、Lin
hurryddd
·
2020-08-07 15:05
Linux
Linux
驱动开发学习
笔记【6】:自动创建设备节点+通过设备树获取寄存器信息+pinctrl和gpio子系统的LED灯驱动
目录前言一、pinctrl子系统添加pin信息二、gpio子系统节点添加三、驱动修改前言在正点原子阿尔法Linux开发板LED灯驱动开发(自动创建设备节点+通过设备树获取寄存器信息)基础上,通过设备树pinctrl子系统来设置pin的复用功能(复用为GPIO)和电气属性(上/下拉、速度、驱动能力等),通过gpio子系统来完成led所用GPIO的配置和读写。一、pinctrl子系统添加pin信息在i
hurryddd
·
2020-08-07 15:04
Linux
Asio
驱动开发学习
笔记(1)
Asio驱动的最大特点是高速,它绕开了WDM框架,直接向硬件发送数据,最重要的是省略了KMixer步骤,这一步最费时间。此驱动开发很小众,一般只有高端声卡厂商才会支持Asio驱动。Asio驱动用户层接口是COM接口,所以驱动开发人员也必须提供标准的COM接口。那么,就无法绕开以下几个函数:DllRegisterServerDllUnregisterServerDllCanUnloadNowDllG
u013569110
·
2020-08-05 20:37
【13】Linux
驱动开发学习
总结【第一阶段:20200608 ——202000719】
目录1、添加字符设备驱动方式2、将驱动编译成.ko的模块及其注册注销方式3、驱动模块加载使用方式4、设备树及设备树节点添加,dts语法,of函数的使用5、Linux并发与竞争6、嵌入式调试环境搭建7、Linux内核中断8、内核定时器使用9、Linux阻塞与非阻塞IO10、Linux异步通知11、platform平台设备驱动12、pinctl和gpio子系统13、杂项驱动14、input子系统15、
hurryddd
·
2020-07-28 03:59
Linux
Linux
epoll
设备树
Linux驱动
Linux
驱动开发学习
笔记【12】:Linux自带LED灯驱动
目录一、内核自带LED驱动使能二、内核自带LED驱动分析三、内核自带LED驱动使用一、内核自带LED驱动使能在Linux内核中,已经自带了LED灯的驱动程序,使用的就是platform平台驱动,在使用之前,需要通过makemenuconfig配置内核,使能LED灯的驱动保存退出会在目录下的.config配置文件中多处CONFIG_LEDS_GPIO=y的宏,y表示编译进内核,如果是m则表示编译成模
hurryddd
·
2020-07-28 03:59
Linux
linux
嵌入式
内核
Linux
驱动开发学习
笔记【11】:platform设备驱动
目录一、Linux驱动分离与分层1.1、驱动的分隔与分离1.2、驱动的分层二、驱动-总线-设备模型2.1总线2.2驱动2.3设备三、platform平台驱动模型3.1platform总线3.2platform驱动3.3platform设备3.4platform匹配过程四、platform平台驱动实验程序编写4.1无设备树4.2有设备树一、Linux驱动分离与分层为了方便驱动的编写,提高软件的重用以
hurryddd
·
2020-07-28 03:59
Linux
Linux
驱动开发学习
笔记【9】:Linux阻塞和非阻塞IO
目录一、阻塞和非阻塞IO二、应用程序阻塞与非阻塞方式三、等待队列1、等待队列头2、等待队列项3、队列项添加/移除等待队列头4、等待唤醒5、等待事件四、轮询1、select函数2、poll函数3、epoll函数五、Linux驱动下的poll操作函数六、阻塞式IO程序编写示例1、等待事件的方法2、添加等待队列项的方式七、非阻塞式IO程序编写示例一、阻塞和非阻塞IO这里的IO指的是Input/Outpu
hurryddd
·
2020-07-28 03:58
Linux
Linux
驱动开发学习
笔记【10】:Linux异步通知
目录一、信号二、同步IO、异步IO、阻塞IO、非阻塞IO之间的联系与区别三、实现过程1、应用程序2、驱动程序一、信号先来回顾一下“中断”,中断是处理器提供的一种异步机制,我们配置好中断以后就可以让处理器去处理其他的事情了,当中断发生以后会触发我们事先设置好的中断服务函数,在中断服务函数中做具体的处理。采用中断以后处理器就不需要时刻的去查看按键有没有被按下,因为按键按下以后会自动触发中断。同样的,L
hurryddd
·
2020-07-28 03:28
Linux
关于Makefile的生成
一、网上的博客文章《老手经验:Linux
驱动开发学习
步骤》(http://naiquan-hu.javaeye.com/blog/497741)(内容见附1)中提及makefile的编写二、本人的本科毕设中
shangyaowei
·
2020-07-10 01:57
Linux
TDD测试
驱动开发学习
心得
TDD测试
驱动开发学习
心得1:一些名词TDD:Test-DrivenDevelopment测试驱动开发BDD:BehaviorDrivenDevelopment行为驱动开发黑盒测试:也叫功能测试,将受测软件视为一个黑盒
码农初长成
·
2020-07-07 19:47
测试驱动开发
【正点原子I.MX6ULL
驱动开发学习
笔记】一、基础环境搭建,快速启动开发板
文章目录一、Windows、Ubuntu和开发板的网络设置(桥接方式)1.1、VMWare设置-有线网卡1.2、三者IP设置1.3、ping测试二、烧写u-boot到开发板2.1、确定SD卡分区2.2、赋予imxdownload脚本权限2.3、烧写u-boot.bin到SD卡三、设置u-boot环境变量,通过tftp下载zImage和设备树文件3.1、ubuntu安装配置tftp服务器3.2、验证
ReCclay
·
2020-07-06 23:58
#
【正点原子I.MX6ULL
驱动开发学习
笔记】二、配置交叉编译工具链,编译U-boot和Linux内核源码
文章目录一、配置交叉编译工具链1.1、交叉编译器安装1.2、安装相关库1.3、交叉编译器验证1.3.1、测试环境变量1.3.2、测试交叉编译器二、编译U-boot源码,生成u-boot.bin文件三、编译Linux内核源码,生成zImage和dtb文件下文所使用到的一些工具下载,提取码:rdw7一、配置交叉编译工具链1.1、交叉编译器安装将下载好的交叉编译工具链放到Ubuntu中,然后输入以下命令
ReCclay
·
2020-07-06 23:58
#
上一页
1
2
3
下一页
按字母分类:
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
其他