程序项目代做,有需求私信(小程序、网站、爬虫、电路板设计、驱动、应用程序开发、毕设疑难问题处理等)

随笔分类 -  s3c2440

摘要:一、CCF子系统概述 计算机硬件通过许多时钟设备提供时钟。从进入系统内部的 cpu core 时钟开始,使用数十种时钟,如 timer、i2c、uart 等。每个 ARM SoC都通过多个时钟设备驱动程序设置时钟,硬件千差万别。 linux内核采用了一个时钟子系统来解决这个问题。在linux 3.4 阅读全文
posted @ 2022-08-17 23:05 大奥特曼打小怪兽 阅读(2043) 评论(0) 推荐(0) 编辑
摘要:一、 知识回顾 在前面的几篇博客中,我们已经介绍了如下内容: usb子系统的初始化; usb主机控制器驱动的创建; 根hub设备的创建和注册,匹配hub接口驱动hub_driver,并执行hub_probe; 开启根hub端口监测,usb主机控制器通过定时轮询判断根hub端口是否有usb设备插入; 阅读全文
posted @ 2022-05-26 22:15 大奥特曼打小怪兽 阅读(1158) 评论(0) 推荐(0) 编辑
摘要:在linux驱动移植-usb驱动基础中我们介绍了USB主机控制器主要有OHCI、UHCI,EHCI,xHCI,其中HCI表示Host Controller Interface。usb主机控制器通过usb根集线器和其他的usb设备相连。 在linux驱动移植-usb总线设备驱动中我们介绍了usb子系统 阅读全文
posted @ 2022-05-16 22:30 大奥特曼打小怪兽 阅读(1397) 评论(0) 推荐(0) 编辑
摘要:我们之前在设备总线模型中介绍过,linux包含I2C、SPI、USB、UART、platform等总线,其中platform总线我们已经学习过了,这一些我们将会介绍USB总线。 一、usb总线 1.1 usb总线定义 在linux 设备模型中,总线由bus_type 结构表示,我们所用的 I2C、S 阅读全文
posted @ 2022-05-12 23:16 大奥特曼打小怪兽 阅读(1310) 评论(0) 推荐(0) 编辑
摘要:一、USB总线介绍 1.1 简介 我们之前接触过的通信协议有串口、I2C、SPI以及CAN总线,这里我们又去学习USB总线,那USB和之前我们介绍过那些总线有什么区别呢。 通用串行总线(英语:Universal Serial Bus,缩写:USB)是连接计算机系统与外部设备的一种串口总线标准,也是一 阅读全文
posted @ 2022-05-04 19:46 大奥特曼打小怪兽 阅读(3728) 评论(0) 推荐(0) 编辑
摘要:一、触摸屏种类 触摸屏的基本原理是,用手指或其他物体触摸安装在显示器前端的触控屏时,所触摸的位置(以坐标形式)由触摸屏控制器检测,并通过接口(如RS-232串行口)送到CPU,从而确定输入的信息。 触摸屏系统一般包括触摸屏控制器(卡)和触摸检测装置两个部分: 触控屏控制器(卡)的主要作用是从触摸点检 阅读全文
posted @ 2022-05-01 01:00 大奥特曼打小怪兽 阅读(1502) 评论(0) 推荐(0) 编辑
摘要:由于我使用的Mini2440开发板采用的LCD为TFT屏,型号为LCD-T35(TD035STEB4)。这一节,我们将参考s3c2410fb.c编写LCD驱动程序。 一、LCD驱动编写基础函数 1.1 dma_alloc_wc 该函数定义在include/linux/dma-mapping.h: s 阅读全文
posted @ 2022-04-20 22:44 大奥特曼打小怪兽 阅读(1059) 评论(0) 推荐(0) 编辑
摘要:一、LCD基础知识 1.1 LCD硬件原理 在Mini2440裸机开发之LCD基础我们介绍了LCD的硬件原理,有兴趣的可以去看看,这里我们仅仅简述一下LCD的原理。 下图是LCD示意图,里面的每个点就是一个像素点。它里面有一个电子枪,一边移动,一边发出各种颜色的光。用动态图表示如下: 电子枪是如何移 阅读全文
posted @ 2022-04-15 22:31 大奥特曼打小怪兽 阅读(1310) 评论(0) 推荐(0) 编辑
摘要:内核版本:linux 5.2.8根文件系统:busybox 1.25.0u-boot:2016.05 在上一节我们介绍了总线设备驱动模型的由来,以及platform总线设备驱动模型,并介绍了如何编写platform设备驱动。 如果我们学过面向对象编程的话,我们可以将总线-设备-驱动看做基类,而pla 阅读全文
posted @ 2022-04-14 21:36 大奥特曼打小怪兽 阅读(529) 评论(0) 推荐(0) 编辑
摘要:一、概述 在看到platform总线时,不知道你心里有没有疑问?platform总线是什么,有什么用?在解答这个问题之前,我们先聊点linux驱动的分离。 1.1 linux驱动的分离 我们知道linux操作系统可以运行在各种SOC上,比如我们熟知的SOC芯片S3C2440 S3C6410和S5PV 阅读全文
posted @ 2022-04-10 22:00 大奥特曼打小怪兽 阅读(882) 评论(0) 推荐(0) 编辑
摘要:在上一节我们介绍了linux系统的输入子系统的基本框架,并进行了源码分析。 这一节我们将尝试向input子系统注册设备驱动,这里我们编写按键驱动,通过MIni2440上的6个按键来模拟键盘中的A、B、C、D、E、F。 一、按键硬件资源 1.1 硬件接线 查看Mini2440原理图、S3C2440数据 阅读全文
posted @ 2022-04-09 22:24 大奥特曼打小怪兽 阅读(323) 评论(0) 推荐(0) 编辑
摘要:一、基本概念 在之前的章节,我们已经介绍了简单驱动的编写,并通过对应查询方式的按键驱动程序的不断改进,逐渐在程序中引入中断、poll、异步通知、互斥机制来完善驱动程序。 虽然我们编写的驱动也实现了读、写等功能,但是确很难被别人的应用程序无缝的链接,纵然别人的应用程序打开了/dev/button设备, 阅读全文
posted @ 2022-04-03 22:37 大奥特曼打小怪兽 阅读(366) 评论(0) 推荐(0) 编辑
摘要:一、中断顶-底半部分 1.1 什么是中断顶-底半部分 linux操作系统是多个进程执行,宏观上达到并行运行的状态,外设中断则会打断内核中任务调度和运行,如果中断函数耗时过长则使得系统实时性和并发性降低。 为保证系统实时性,中断服务程序必须足够简短,但实际应用中某些时候发生中断时必须处理大量的事务,这 阅读全文
posted @ 2022-03-21 22:37 大奥特曼打小怪兽 阅读(1177) 评论(0) 推荐(0) 编辑
摘要:在之前我们介绍了linux中断子系统向驱动程序提供了注册中断的API: request_threaded_irq; request_irq; 这一节我们将从源码层面介绍讲解它们的实现。 一、cascade IRQ和nested IRQ linux中断子系统在注册中断的时候,根据中断控制器的结构实际上 阅读全文
posted @ 2022-03-16 23:20 大奥特曼打小怪兽 阅读(1222) 评论(0) 推荐(0) 编辑
摘要:上一篇博客在最后,我们大致介绍了一下中断子系统的执行流程,这一节我们将从Linux源码层面去中断是如何原型。 一、裸机中断 我们首先回忆一下裸机程序中的中断流程是怎样的,以Mini2440按键K1外部中断为例: 1、使能外部,开启外部中断EINTMASK 、中断源INTMSK 、开启IRQ总中断; 阅读全文
posted @ 2022-03-01 23:40 大奥特曼打小怪兽 阅读(691) 评论(0) 推荐(0) 编辑
摘要:在之前的文章中,我们曾经学习过按键驱动的编写,其中我们就使用到了外部中断,我们是通过request_irq函数实现中断注册的。这一节我们将深入了解linux的中断实现机制。 一、中断介绍 1.1 什么是中断 中断是由软件或者硬件触发的一种事件,可以引起CPU的注意。 举个例子:当我们在键盘上按下一个 阅读全文
posted @ 2022-02-27 22:05 大奥特曼打小怪兽 阅读(793) 评论(0) 推荐(0) 编辑
摘要:在上一节中我们介绍了linux下的五种IO模型: 阻塞IO; 非阻塞IO; IO多路复用模型; 信号驱动IO模型; 异步IO; 并介绍了poll机制在按键驱动中的使用,这一节我们将重点介绍信号驱动IO模型如何在按键驱动的例子中的使用。 一、信号驱动IO模型 1.1 什么是信号驱动IO模型 我们举个例 阅读全文
posted @ 2022-02-18 22:53 大奥特曼打小怪兽 阅读(405) 评论(0) 推荐(0) 编辑
摘要:一、Linux IO模型 1.1 按键测试程序存在的问题 上一小节写到的中断方式获取按键值时,应用程序不停的查询是否有按键发生改变,大部分时间程序都处在read休眠的那个位置。 #include <sys/stat.h> #include <fcntl.h> #include <stdio.h> i 阅读全文
posted @ 2022-02-15 23:47 大奥特曼打小怪兽 阅读(624) 评论(0) 推荐(0) 编辑
摘要:一、按键硬件资源 1.1 硬件接线 查看Mini2440原理图、S3C2440数据手册,了解如何读取按键的状态。这里粗略介绍一下Mini2440 K1~K6的接线方式,以及寄存器的设置,这里简单说一下,就不具体介绍了: K1~K6依次对应引脚GPG0、GPG3、GPG5、GPG6、GPG7、GPG1 阅读全文
posted @ 2022-02-13 15:21 大奥特曼打小怪兽 阅读(568) 评论(0) 推荐(0) 编辑
摘要:我们在linux驱动基础概念这一节中粗略介绍了linux驱动的概念,以及应用程序是如何调用驱动程序的。 这一节我们将一点亮LED为例来介绍字符设备驱动的编写。 一、LED硬件资源 1.1 硬件接线 查看Mini2440原理图、S3C2440数据手册,了解如何点亮LED。在Mini2440裸机开发之点 阅读全文
posted @ 2022-02-10 22:44 大奥特曼打小怪兽 阅读(338) 评论(0) 推荐(0) 编辑

如果有任何技术小问题,欢迎大家交流沟通,共同进步

公告 & 打赏

>>

欢迎打赏支持我 ^_^

最新公告

程序项目代做,有需求私信(小程序、网站、爬虫、电路板设计、驱动、应用程序开发、毕设疑难问题处理等)。

了解更多

点击右上角即可分享
微信分享提示