摘要:
一、LCD基础知识 1.1 LCD硬件原理 在Mini2440裸机开发之LCD基础我们介绍了LCD的硬件原理,有兴趣的可以去看看,这里我们仅仅简述一下LCD的原理。 下图是LCD示意图,里面的每个点就是一个像素点。它里面有一个电子枪,一边移动,一边发出各种颜色的光。用动态图表示如下: 电子枪是如何移 阅读全文
摘要:
内核版本:linux 5.2.8根文件系统:busybox 1.25.0u-boot:2016.05 在上一节我们介绍了总线设备驱动模型的由来,以及platform总线设备驱动模型,并介绍了如何编写platform设备驱动。 如果我们学过面向对象编程的话,我们可以将总线-设备-驱动看做基类,而pla 阅读全文
摘要:
一、概述 在看到platform总线时,不知道你心里有没有疑问?platform总线是什么,有什么用?在解答这个问题之前,我们先聊点linux驱动的分离。 1.1 linux驱动的分离 我们知道linux操作系统可以运行在各种SOC上,比如我们熟知的SOC芯片S3C2440 S3C6410和S5PV 阅读全文
摘要:
在上一节我们介绍了linux系统的输入子系统的基本框架,并进行了源码分析。 这一节我们将尝试向input子系统注册设备驱动,这里我们编写按键驱动,通过MIni2440上的6个按键来模拟键盘中的A、B、C、D、E、F。 一、按键硬件资源 1.1 硬件接线 查看Mini2440原理图、S3C2440数据 阅读全文
摘要:
一、基本概念 在之前的章节,我们已经介绍了简单驱动的编写,并通过对应查询方式的按键驱动程序的不断改进,逐渐在程序中引入中断、poll、异步通知、互斥机制来完善驱动程序。 虽然我们编写的驱动也实现了读、写等功能,但是确很难被别人的应用程序无缝的链接,纵然别人的应用程序打开了/dev/button设备, 阅读全文
摘要:
yolo v4源码是开源的,在github上可以下载,并且有很详细的使用说明,本文只是针对windows下环境的安装进行介绍。 一、环境搭建 本节将进行windows下环境的搭建,我们将需要安装下面各个软件,并且需要注意安装的软件是有版本要求的: Requirements for Windows, 阅读全文
摘要:
一、中断顶-底半部分 1.1 什么是中断顶-底半部分 linux操作系统是多个进程执行,宏观上达到并行运行的状态,外设中断则会打断内核中任务调度和运行,如果中断函数耗时过长则使得系统实时性和并发性降低。 为保证系统实时性,中断服务程序必须足够简短,但实际应用中某些时候发生中断时必须处理大量的事务,这 阅读全文
摘要:
在之前我们介绍了linux中断子系统向驱动程序提供了注册中断的API: request_threaded_irq; request_irq; 这一节我们将从源码层面介绍讲解它们的实现。 一、cascade IRQ和nested IRQ linux中断子系统在注册中断的时候,根据中断控制器的结构实际上 阅读全文
摘要:
上一篇博客在最后,我们大致介绍了一下中断子系统的执行流程,这一节我们将从Linux源码层面去中断是如何原型。 一、裸机中断 我们首先回忆一下裸机程序中的中断流程是怎样的,以Mini2440按键K1外部中断为例: 1、使能外部,开启外部中断EINTMASK 、中断源INTMSK 、开启IRQ总中断; 阅读全文
摘要:
在之前的文章中,我们曾经学习过按键驱动的编写,其中我们就使用到了外部中断,我们是通过request_irq函数实现中断注册的。这一节我们将深入了解linux的中断实现机制。 一、中断介绍 1.1 什么是中断 中断是由软件或者硬件触发的一种事件,可以引起CPU的注意。 举个例子:当我们在键盘上按下一个 阅读全文