程序项目代做,有需求私信(vue、React、Java、爬虫、电路板设计、嵌入式linux等)
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 35 下一页
摘要: 一、原子操作 在之前介绍信号量的实现原理中,我们已经了解到获取信号量的操作会导致进程的休眠,也就是存在进程的切换,这样会带来很大的系统开销。 针对单个变量的独占访问我们可以采用原子锁的方式来实现进程的同步。原子锁采用原子操作来实现。 1.1 什么是原子操作 原子操作,顾名思义,就是说像原子一样不可再 阅读全文
posted @ 2022-02-23 19:40 大奥特曼打小怪兽 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 一、信号量(semaphore) 1.1 什么是信号量 信号量本质上是一个计数器,它用来记录对某个资源的存取状态。一般来说,为了获取共享资源,进程需要执行下列操作: 测试控制该资源的信号量; 如果信号量的值为正,则允许操作该资源,并且信号量值减1; 如果信号量为0,则资源目前不可用,进程进入休眠状态 阅读全文
posted @ 2022-02-23 19:32 大奥特曼打小怪兽 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 一、Linux进程内存空间 1.1 内核空间和用户空间 Linux采用两级保护机制:0级供内核使用、3级供用户程序使用。在32位Linux操作系统中,每个进程都有各自的私有用户空间(0~3GB),这个空间对系统中的其它进程是不可见的,最高的1GB虚拟内核空间为所有进程以及内核所共享。 针对linux 阅读全文
posted @ 2022-02-20 17:53 大奥特曼打小怪兽 阅读(439) 评论(0) 推荐(0) 编辑
摘要: 在上一节中我们介绍了linux下的五种IO模型: 阻塞IO; 非阻塞IO; IO多路复用模型; 信号驱动IO模型; 异步IO; 并介绍了poll机制在按键驱动中的使用,这一节我们将重点介绍信号驱动IO模型如何在按键驱动的例子中的使用。 一、信号驱动IO模型 1.1 什么是信号驱动IO模型 我们举个例 阅读全文
posted @ 2022-02-18 22:53 大奥特曼打小怪兽 阅读(320) 评论(0) 推荐(0) 编辑
摘要: 一、Linux IO模型 1.1 按键测试程序存在的问题 上一小节写到的中断方式获取按键值时,应用程序不停的查询是否有按键发生改变,大部分时间程序都处在read休眠的那个位置。 #include <sys/stat.h> #include <fcntl.h> #include <stdio.h> i 阅读全文
posted @ 2022-02-15 23:47 大奥特曼打小怪兽 阅读(545) 评论(0) 推荐(0) 编辑
摘要: 一、按键硬件资源 1.1 硬件接线 查看Mini2440原理图、S3C2440数据手册,了解如何读取按键的状态。这里粗略介绍一下Mini2440 K1~K6的接线方式,以及寄存器的设置,这里简单说一下,就不具体介绍了: K1~K6依次对应引脚GPG0、GPG3、GPG5、GPG6、GPG7、GPG1 阅读全文
posted @ 2022-02-13 15:21 大奥特曼打小怪兽 阅读(508) 评论(0) 推荐(0) 编辑
摘要: 我们在linux驱动基础概念这一节中粗略介绍了linux驱动的概念,以及应用程序是如何调用驱动程序的。 这一节我们将一点亮LED为例来介绍字符设备驱动的编写。 一、LED硬件资源 1.1 硬件接线 查看Mini2440原理图、S3C2440数据手册,了解如何点亮LED。在Mini2440裸机开发之点 阅读全文
posted @ 2022-02-10 22:44 大奥特曼打小怪兽 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 在Mini2440之linux内核移植文章中我们介绍了linux内核移植。并将最终修改后的内核代码保存到/work/sambashare/linux-5.2.8路径下。后续所有驱动也都将在这里修改。 root@zhengyang:/work/sambashare# ll drwxrwxr-x 25 阅读全文
posted @ 2022-02-10 21:55 大奥特曼打小怪兽 阅读(623) 评论(0) 推荐(0) 编辑
摘要: 在进行linux驱动开发之前,我们先来思考一下什么是linux驱动?我们在前面的文章中介绍过Mini2440裸机程序的开发,比如如何点亮LED、如何通过LCD显示图片。 但是如果我们开发板移植了linux内核之后,我还想点亮LED,那该怎么办呢? 由于我们编写的应用程序是无法和硬件直接打交道的,为此 阅读全文
posted @ 2022-02-09 20:22 大奥特曼打小怪兽 阅读(2024) 评论(0) 推荐(0) 编辑
摘要: 在某些情况下,如果我们没有Mini2440开发板,或者开发板某些硬件损坏了,这时候我们还要继续学习linux内核移植和驱动开发,我们应该怎么办,这里我们可以采用qemu搭建linux开发环境。 在之前的u-boot系列博客中我们已经介绍了u-boot的移植、以及linux内核移植、根文件系统制作。并 阅读全文
posted @ 2022-02-08 22:47 大奥特曼打小怪兽 阅读(977) 评论(0) 推荐(0) 编辑
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 35 下一页
如果有任何技术小问题,欢迎大家交流沟通,共同进步