Yifannn~
努力找工作
展开
-
内核定时器
定时器是我们最常用到的功能,一般用来完成延时功能。下面我们来学习linux提供的几种内核延时方法。原创 2024-04-24 20:44:37 · 87 阅读 · 0 评论 -
ADC驱动怎么应用以及中断顶半部和底半部
今天这篇文章主要使用混杂设备驱动框架和查询方式实现ADC采集,实现的方法于之前的led实验类似首先定义三个指针变量用于操作adc的两个寄存器ADC驱动以及时钟驱动映射寄存器并初始化。原创 2024-04-24 20:36:13 · 217 阅读 · 0 评论 -
等待队列如何应用
模块加载点:init_waitqueue_head(&wq);初始化这个等待队列头:第32行:在进入阻塞前将条件设置为假第61行:进入阻塞状态,等待条件变为真第81行:在中断服务函数中唤醒,即解除阻塞状态。注意在唤醒前将。原创 2024-04-23 21:57:36 · 104 阅读 · 0 评论 -
按键驱动和中断方式的按键驱动
之前我们学习了字符设备驱动程序框架,按照这个办法编写一个按键程序也是的。但如果按照之前的知识编写按键驱动程序,大概率会编写出一个查询方式的按键驱动。这样的做法对整个系统来说效率比较低,使用中断方式是个不错的办法。接下来我们将学习。和字符驱动类似的,要使用linux内核中断必须要注册中断。总共5个参数,本质上很简单irq_handler_t是一个,这个函数指针必须指向返回值是,函数参数必须是int和void *的那种函数。那我们就写这么个函数给他不就行了?原创 2024-04-23 21:46:09 · 186 阅读 · 0 评论 -
混杂设备驱动
之前我们编写的是,看起来还是有点复杂的样子。linux,可以。的意思是的,因此 misc 驱动也叫做,misc 驱动其实就是。所有的 misc 设备驱动的。随着 Linux字符设备驱动的不断增加,,misc 设备驱动就用于解决此问题。misc 设备会,不需要像我们以前那样手动创建,因此。该函数需要一个。原创 2024-04-22 21:33:21 · 136 阅读 · 0 评论 -
设备号的获取以及如何自动添加设备节点
之前的代码中在注册字符设备驱动的时候我们使用了一个静态的主设备号200,很明显,200这个主设备号如何已经被使用了,那么我们就无法完成注册。最好的办法就是由系统给我们提供一个合法的设备号。原创 2024-04-22 20:09:27 · 175 阅读 · 0 评论 -
Led驱动程序
前几篇写的程序并没有真正控制什么,接下来我们编写第一个真正用于控制硬件的驱动程序,。本质上来说无论裸机程序还是linux驱动程序目前都是在。在编写驱动之前,我们需要先简单了解一下。。void指针。接下来就可以通过映射好的地址对2440的寄存器进行访问了。原创 2024-04-20 10:00:00 · 111 阅读 · 0 评论 -
Ctags的安装和使用
是一个代码跟踪软件由于在源码中,具有海量的代码,如果我们在源码中找特定的代码,需要大量时间,但是ctags则可以快速寻找。原创 2024-04-19 10:00:00 · 1348 阅读 · 0 评论 -
在mini2440上编写linux应用程序、字符设备驱动程序的编写与编译
字符设备是 Linux 驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺序的。比如我们最常见的点灯、按键、IIC、SPI、LCD 等等都是字符设备,这些设备的驱动就叫做字符设备驱动。在详细的学习字符设备驱动架构之前,我们先来简单的了解一下 Linux 下的应用程序是如何调用驱动程序的:linux系统中万物皆文件,驱动程序加载后会在/dev目录下生成一个对应的文件,如/dev/led。原创 2024-04-19 20:05:27 · 125 阅读 · 0 评论 -
arm编译、u-boot编译过程、linux内核编译
譬如linux版本,编译时间等等。问题在于之前编译好的内核我们下载到了0x30008000处,并且这个地址也是第一条指令的地址,称为入口地址。上面的修改将入口地址向后偏移了0x40-=64个字节,而这恰好就是正在的指令了,问题也就解决了。s3c2440的公板名为smdk2440,由三星公司设计,mini2440是在smdk2440的基础上,由友善之臂抄袭而来。linux源码公板配置文件在arch/arm/configs下,理论上我们直接使用该目录下的s3c2410_defconfig文件就可以。原创 2024-04-18 21:07:24 · 256 阅读 · 0 评论 -
linux启动minicom、u-boot的常用命令、网络命令tftp、nfs/根文件系统、u-boot的bootargs环境变量
既然u-boot可以使用tftp来下载任意文件,那么就可以使用tftp下载编译好的linux内核文件到mini2440中,并让mini2440引导linux系统。这里的根文件系统其实指的是一个文件夹,这个文件夹其实就是linux的系统根目录。NFS(Network File System)是一种用于分布式文件系统的协议,它允许计算机用户或者操作系统通过网络以NFS客户端形式访问远程服务器上的文件。因为我们需要通过该协议从电脑上下载linux内核程序,但是要使用tftp,就需要我们配置好网络相关的环境变量。原创 2024-04-18 20:43:26 · 380 阅读 · 0 评论 -
linux驱动编程相关介绍、u-boot的移植与下载
bootloader的本质是一个裸机程序。bootlood专门是为了能够正确地启动linux操作系统,在系统初上电时需要对系统做一些硬件的初始化操作。例如初始化内存,初始化时钟等等。最终bootloader会将linux内核(kernel)加载到ram中,并引导系统去执行linux代码,完成linux的启动。所以不难看出,bootloader在这里起到一个承上启下的作用。原创 2024-04-17 21:32:55 · 116 阅读 · 0 评论