mini2440

2024/4/14 22:06:57

Linux网卡驱动(1)-网卡驱动架构分析

1、Linux网络子系统 网络子系统采用分层的结构: 我们这里研究内核空间即可,在内核空间分成5层,分别是: 1、系统调用接口,它面向的客户是应用层序,为应用程序提供访问网络子系统的统一方法,比如…

Linux-视频监控系统(1)-产品设计规划

打算设计一个视频监控系统,可以实现以下功能: 1、在Linux的PC端实时查看当前视频 2、把采集到的视频存储到开发板的SD卡中 硬件平台:mini2440开发板(或者树莓派3) 传输方式:可以通过有线或者无线传输&am…

Linux串口驱动程序(2)-串口驱动程序初始化分析

1、串口驱动程序结构分析 对用户来讲,能够正常使用串口肯定是需要实现如下函数的: 1、串口设备文件的打开 2、串口设备文件的初始化 3、串口设备文件的读写 4、串口设备文件的控制 2、串口驱动中重要的数据结构 首先分析一下串口读写的流程 当用户…

Linux总线驱动设计(1)-总线驱动模型

1、总线模型概述 随着技术的不断进步,系统的拓扑结构也越来越复杂,对热插拔,跨平台移植性的要求也越来越高,2.4内核已经难以满足这些需求。为适应这种形势的需要,从Linux 2.6内核开始提供了全新的设备模型。 假如说现…

Linux串口驱动程序(1)-tty架构

1、tty概念分析 在Linux系统中,终端是一类字符型设备,它包括多种类型,通常使用tty来简称各种类型的终端设备。由于串口也是一种终端,因此这里引入终端这个概念 串口终端(/dev/ttyS*) 串口终端是使用计算机…

Linux按键驱动程序设计(4)-中断分层技术

1.中断嵌套 首先引入之前提到过的快速中断和慢速中断:快/慢速中断的主要区别在于:快速中断保证中断处理的原子性(不被打断),而慢速中断则不保证。换句话说,也就是“开启中断”标志位(处理器IF)在运行快速中断处理程序时是关闭的&a…

Linux串口驱动程序(3)-串口打开分析

先来分析一下串口打开的过程: 1、用户调用open函数打开串口设备文件 2、在内核中通过tty子系统,把open操作层层传递到串口驱动程序中 3、在串口驱动程序中的XX_open最终实现这个操作。 这里主要有2个点需要我们重点分析,一个是open函数的传…

Linux网卡驱动(2)-回环网卡的设计

1、回环网卡介绍 在Linux系统中有一个叫做lo的网卡,它的IP地址是127.0.0.1,当我们ping 127.0.0.2的时候他是可以ping通的。回环网卡和其他网卡最大的区别就是他的数据包不会真正的方式到网络上,而是通过网卡发送端发送到了自己的接收端。就…

Linux网卡驱动(3)-网卡驱动深层分析

之前我们介绍了网卡是怎么把一个数据包发送到网络上的,但是这只是Linux网络系统中的一个非常小的部分。对于内核怎么把用户数据传递给网卡,以及内核怎么把网卡收到的数据传递给用户是一个庞大的知识。 学过计算机网络的都知道,当用户需要发送…

Linux-Flash驱动(1)-块设备系统架构

1、块设备的体验 块设备快速体验:块设备是指只能以块为单位进行访问的设备,块大小一般是512个字节的整数倍。常见的块设备包括硬件,SD卡,光盘等。有同学会说,加入我需要通过硬盘访问1个字节的数据,难道无法…

Linux-Flash驱动(3)-简单块设备驱动设计

这节课的内容主要根据上一节课分析出来的块设备的初始化和操作流程,编写出自己的块设备驱动函数。因此这篇博文主要讲一下所用到函数的用法及其他框架。 1、编写一个模块框架 2、注册一个块设备major register_blkdev(major, "blk");它有2个参数&#…

Linux-Flash驱动(4)-MTD系统架构

1、什么是MTD系统架构 MTD(memory technology device 存储 技术设备 ) 是用于访问 memory 设备( ROM 、 flash )的 linux 的子系统。 MTD 的主要目的是为了使新的 memory 设备的驱动更加简单,为此它在硬件和上层之间提供了一个抽象的接口。 …

win7,win8,win10环境下如何使用dnw!

1. dnw存在的问题 已知64位win7系统可以安装dnw驱动,但是无法正常使用,主要问题出在dnw驱动没有数字签名! 2. 解决思路 (1)常规思路:64位windows无法正常安装dnw的解决方案 详见:http://blog…

Linux-视频监控系统(2)-Epoll的介绍及使用

1、什么是Epoll 1.1阻塞型IO和多路复用 假如说现在有一个进程需要对设备进行读写,但是这个过程一般需要时间不能马上完成,为了节约CPU资源,这时候一般进程都采取阻塞的方法,把自己挂起,等有设备已经完成操作了再自行…

Linux-视频监控系统(3)-Epoll框架的实现

采集端分为以下几个子系统: 1、采集端子系统 2、存储子系统 3、压缩子系统 4、传输子系统 5、配置子系统 6、主程序 首先对整体的程序框架做一个划分,对于每个子系统都建立一个.c文件,同时对每个子系统都建立一个结构体来描述,然…

Linux-视频监控系统(4)-摄像头子系统实现

这个子系统里需要实现摄像头的初始化,Epoll事件的添加,处理函数的编写以及开始采集函数,这里为了方便起见,先把处理函数设置为保存读取到的图片。 为了方便描述定义一个结构: struct v4l2_dev{int fd;//设备文件fd__u…

Linux-视频监控系统(5)-TCP传输子系统实现

传输子系统的协议打算采用TCP来完成,开发板充当服务器,PC机充当客户机。传输视频其实也就是传输一幅幅图片,因此接下来的任务就时在服务器和客户机之间传输图片。这里面又涉及到了传输协议,我们采用申请式的协议,客户机…

Linux按键驱动程序设计(3)-按键操作硬件实现

1、复习裸机按键操作驱动 #define GPGCON (volatile unsigned long *)0x56000060/** K1,K2,K3,K4对应GPG0、GPG3、GPG5、GPG6*/ #define GPG0_int (0x2<<(0*2)) #define GPG3_int (0x2<<(3*2)) #define GPG5_int (0x2<<(5*2)) #define GPG6_in…

Linux串口驱动程序(4)-串口发送分析

1、tty数据发送调用关系 怎么样才能找到发送数据所使用的函数呢&#xff1f;打开uart_register_driver函数&#xff0c;找到里面的tty_register_driver&#xff0c;转到定义&#xff0c;这里调用了tty_fops这个结构&#xff0c;这几结构里就保存了读写串口的函数tty_write&…

mini2440 tiny6410开发板网络设置(永久改变,重启后不恢复)

mini2440开发板网络设置最简单的办法就是进行ifconfig设置&#xff0c;不过这样设置以后&#xff0c;重启开发板ifconfig后的ip、网关等依然还是设置前的ip、网关。那么如何设置使得复位或重启开发板后ifconfig看到理想的ip呢&#xff1f;以下是设置步骤&#xff1a; 1、因为if…

mini2440 nand flash驱动移植--问题解决记录

今日根据《Mini2440_Linux移植开发实战指南》一文进行nandflash驱动 的移植出现了不少问题。不知道是我操作失误还是该文编写出现错漏导致的。 首先按照步骤修改相关信息之后执行make zImage出现了不少错误&#xff1a; 其中有代表性的错误如下&#xff1a; arch/arm/…

Linux-Flash驱动(2)-块设备驱动实例分析

在上一节课中&#xff0c;我们在内存中划分出512kB作为一个块设备&#xff0c;并对它实现读写的操作。现在我们来具体分析这段代码。 #include <linux/module.h> #include <linux/moduleparam.h> #include <linux/init.h>#include <linux/sched.h> #in…

Linux串口驱动程序(6)-串口驱动实现

在Linux驱动开发中&#xff0c;一般都不会从0开始写&#xff0c;我们做的更多的是移植和修改&#xff0c;有时候还需要对驱动程序进行优化。当然具备移植、修改驱动能力的基础是能够读懂驱动程序&#xff0c;同时需要对这个驱动程序的核心功能非常了解。接下来开始编写发送中断…

Linux串口驱动程序(5)-串口接收分析

1、tty数据接收流程分析 在用户调用read函数来读取设备的文件的数据时&#xff0c;首先得到响应的是tty_read&#xff0c;这个函数又是由n_tty_read来实现的 /*** n_tty_read - read function for tty* tty: tty device* file: file object* buf: userspace buffer pointer* …

华硕ASUS K43SD笔记本安装win7X64(ventoy为入口以支撑一盘多系统);友善之臂mini2440开发板学习

记录 老爷机 白色 华硕 K43SD 笔记本 安装 win7X64 1. MBR样式常规安装win7X64Sp1 (华硕 K43SD 安装 win7X64 ) 老爷机 白色 华硕 K43SD 笔记本 安装 win7X64 (常规安装) 设置: 禁用UEFI 启用AHCI ventoy制作MBR(非UEFI)方式的启动U盘 U盘中放cn_windows_7_ultimate_wit…

编译u-boot-mini2440

0 主机环境 Linux version 4.10.0-42-generic (builddlgw01-amd64-051) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5) ) #46~16.04.1-Ubuntu SMP Mon Dec 4 15:57:59 UTC 20171 交叉编译工具 安装&#xff1a; sudo apt-get install gcc-arm-linux-gnueabi…