![](https://img-blog.csdnimg.cn/direct/159095c69e214471aeaf62177faa4ec7.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
操作系统下驱动开发(s3c2440)
文章平均质量分 53
基于s3c2440环境下的驱动开发
Violet-1
这个作者很懒,什么都没留下…
展开
-
杂项设备驱动和自动创建设备结点
make uImage --------》 板子运行。misc_register 参数是我们上个结构体的地址。misc_deregister删除设备,驱动注销时也要写上。1.填充结构体 miscdevice。这个结构体我们就用前三个成员,如下。我们复制一个以前的驱动文件修改。2.注册杂项设备、生成设备结点。然后就可以向板子上添加了。原创 2024-04-12 13:09:30 · 155 阅读 · 0 评论 -
内核驱动更新
2.在Kconfig里面修改设备,bool(双态)-----》tristate(三态)4.编译内核 make modules。3.进入menuconfig修改为M。也许你会看到一个 .ko 文件。.c 文件末尾加上。5.复制到根目录文件下。1.声明我们是开源的。原创 2024-04-11 22:38:09 · 246 阅读 · 0 评论 -
arm内核驱动-中断
用wake_even_interruptible这个卡死就可以被中断,也可以用wake_even_timeout,设置超时时间,当时间到了还在之前的地方就会被强制打断,上图红字所示。这里用的wake_even_interruptible而不用wake_event,如果是wake_event,在进入底层后,程序调度无法影响到它。irq:中断号,就是我们上面第一张图所显示的,这里是K1的EINT8。后面两个参数就是中断的名字和我们给回调函数传的参数,不在赘述。handler:中断回调函数,懂的都懂。原创 2024-04-11 22:04:39 · 462 阅读 · 0 评论 -
linux内核驱动-在内核代码里添加设备结点
这是我们在编写内核驱动代码时特别的写法,目的就是告诉操作系统这个函数是内核的初始化以及追销的函数。我们在用户层用一些系统函数(如:fopen等等)时,会进入内核,内核会在字符注册了的设备号链表中查找。其实还是对寄存器的操作,然后把这些操作再移植到之前提到的系统给我们提供的函数(指针),最后去调用这些函数就行了。到这里我们的内核就添加了一个我们自己的驱动,但这个驱动文件里只有一些打印,我们想要实现硬件功能怎么办呢。我们在前面已经讲了怎么创建一个内核程序,我们在驱动文件的目录下创建我们自己的驱动程序。原创 2024-04-10 22:38:04 · 382 阅读 · 0 评论 -
linux启动流程(s3c2400)
大致流程:内核(kernel)都是由bootloader程序引导启动的,所以我们应该先烧进去bootloader程序。然后可以通过保存的内核代码或者通过远程连接(nfs/tftp)的主机下载再运行,再挂载根文件系统。原创 2024-04-09 17:09:48 · 323 阅读 · 0 评论