SRAM,SDRAM,网卡有地址总线。由cpu统一编址。

NAND flash没有地址总线。 因 此有这两者寻址方式不同。

字符设备驱动程序的框架。
驱动程序 1.有led.read,led.write,led.open 这些函数,2.定义了—个结构体fileoperation,这个结构体包括指向led.read的.read 函数。包括指向led.write的.write函数,包括指向led.open 的.open函数。3.入口函数(把fileoperation结构体告诉内核的函数),通过register_chedev(main,name,fileoperation)。

编译驱动程序要依赖内核。
ioremap把物理地址映射为虚拟地址。

本来主设备号能够手动分配。但驱动程序也能够自己主动分配主设备号。
应用程序打开一个设备open("/dev/xxx"),这个设备哪里来的。

1.手工建立, 
mknod   /dev/xxx   c  主  次  
此时须要知道主设备号
2.自己主动创建,mdev(mdev是udev的—个简化版本号)依据系统信息创建设备节点。所以驱动程序要提前提供上面所需的系统信息,这样才干自己主动创建。

写一个驱动程序。

(用查询方式点亮led灯)
1.写出框架。
a.写出fileoperation结构体。里面有.open,.read,.write 等成员。
b.该结构体通过入口函数注冊到内核。同一时候须要出口函数。修饰入口函数。修饰出口函数。
c.给内核提供系统信息。这样udev机制能够自己主动创建设备节点。祥细步骤。在入口函数创建class,并创建clasd device 。

同一时候要在出口函数将这些东西卸载掉。
d.最后加上一个lisence。
2.硬件操作,
a.看原理图,确定是哪些引脚接到按键上。
b.看2440手冊,确定怎么操作这些引脚。以及操作什么寄存器。

c.编程。
上面三步在单片机里面基本同样。不同之处是单片机直接操作物理地址,而此时驱动程序採用虚拟地址。

VA=ioremap(PA,size)。
……………………………………………
写一个驱动程序(用中断方式点亮led灯)
1.在open函数将引脚配置为中断引脚,即request_irq()。
2.右fileoperation结构体里添加成员.release()函数 ( 用来释放中断引脚)。

即. .release()=second_drv_close();
3.实现函数second_drv_close()
4.实现request_irq()函数中的—个參数buttons_irq()。
5.添加头文件irq.h等。

在open函数配置引脚,在read函数读引脚状态(通过copy_to_user()函数将引脚状态传给用户)。

在入口函数进行地址映射。

在出口函数解除映关系。

top命令相当于任务管理器。

共享中断,中断来源有非常多种,共享同一个引脚。
中断是异常的—种。单片机下的中断处理过程:
1.分辨中断源。
2.调用对应的处理程序,
3.清中断。
在linux内核中,这三项由asm_do_IRQ()函数实现。

转载于:https://www.cnblogs.com/mengfanrong/p/5187015.html

SRAM,SDRAM,网卡相关推荐

  1. SRAM/SDRAM/DDR/Cache

    参考:正点原子<I.MX6U 嵌入式 Linux 驱动开发指南> 1.RAM 与 ROM RAM:随机存储器,可以随时进行读写操作,速度很快,掉电以后数据会丢失.比如内存条.SRAM.SD ...

  2. ROM, SRAM, SDRAM的区别

    ROM ROM是Read Only Memory的缩写,被称作"只读存储器". ROM所存数据一般是装入整机前事先写好的,整机工作过程中只能读出,而不可以改写.因此ROM内的数据很 ...

  3. SRAM SDRAM DDR 简介

    SRAM SDRAM DDR 简介 转载 SRAM SDRAM DDR 简介 https://blog.csdn.net/monkea123/article/details/103267121 SRA ...

  4. DRAM,SRAM,SDRAM的关系与区别

    存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据.计算机中全部信息,包括输入的原始数据.计算机程序.中间运行结果和最终运行结果都保存在存储器中.它根据控制器指定的位置存入和取出信息. ...

  5. RAM, SRAM, SDRAM工作原理

    存储原理: 为了便于不同层次的读者都能基本的理解本文,所以我先来介绍一下很多用户都知道的东西.RAM主要的作用就是存储代码和数据供CPU在需要的时候调用.但是这些数据并不是像用袋子盛米那么简单,更像是 ...

  6. DRAM, SRAM, SDRAM 的关系与区别

    DRAM,动态随机存取存储器,需要不断的刷新,才能保存数据.而且是行列地址复用的,许多都有页模式. SRAM,静态的随机存取存储器,加电情况下,不需要刷新,数据不会丢失,而且,一般不是行列地址复用的. ...

  7. RAM 大全-DRAM, SRAM, SDRAM的关系与区别

    ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写.ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是 ...

  8. SRAM,SDRAM,DRAM,ROM,EPROM,EEPROM

    SRAM : 静态RAM,不用刷新,速度可以非常快,像CPU内部的cache,都是静态RAM,缺点是一个内存单元需要的晶体管数量多,因而价格昂贵,容量不大. 什么是SRAM SRAM 的英文全称是'S ...

  9. RAM,SRAM,SDRAM工作原理(很长)

    存储原理: 为了便于不同层次的读者都能基本的理解本文,所以我先来介绍一下很多用户都知道的东西.RAM主要的作用就是存储代码和数据供CPU在需要的时候调用.但是这些数据并不是像用袋子盛米那么简单,更像是 ...

  10. RAM,ROM,SRAM,SDRAM,DDR内存

    一.RAM和ROM RAM: 随机存储器,可以随时进行读写操作,速度很快,掉电以后数据会丢失.比如内存条. SRAM. SDRAM. DDR 等都是 RAM. RAM 一般用来保存程序数据.中间结果, ...

最新文章

  1. redis开启远程连接
  2. Centos入门-3
  3. Vysor:安卓手机放到电脑上用
  4. 临界区、事件、互斥量、 信号量--四种控制多线程同步与互斥的方法
  5. Bioinfo:学习Python,做生信PartII 学习笔记
  6. 【性能优化】 之 10053 事件
  7. Groovy里的绕过getter方法直接访问类属性的办法
  8. java竖线分割_Java String类的Split以竖线作为分隔符
  9. 洛谷P2015 二叉苹果树【树形dp】
  10. 功率曲线k值_特性曲线在参数计算中的应用
  11. 移动应用占美国人移动设备使用时长80%
  12. Mac 连不上华为 p9 处理历程(一)
  13. python3 csv以追加方式写入_从拉入的JSON d向CSV追加和或写入
  14. 呦乐乐_百科讲解大全
  15. 你知识付费的钱打水漂,是课程的错吗?
  16. PS无痕修改文字技巧
  17. Speed Test隐私政策
  18. 创建通用 macOS 二进制文件
  19. Android 三种拨号方式(kotlin)
  20. itext将html转换为pdf,使用itext将html转换为pdf

热门文章

  1. 接入TapTap防沉迷系统的逻辑图
  2. mybatis中resultMap的几种用法
  3. 设计模式--迭代器模式(C++实现)
  4. CSDN Markdown帮助文档
  5. 嵌入式单片机STM32元器件晶振选型参考
  6. Matlab中的逻辑运算:“any”,“all”
  7. 配置codeblocks 的养眼colour theme ;鼠标颜色与型状配置,界面汉化,以及调试入门
  8. Docker网络一览
  9. [转]人像识别是个伪命题
  10. 用C#(asp.net)写出登录验证码!