SRAM,SDRAM,网卡
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()函数实现。
SRAM,SDRAM,网卡的更多相关文章
- 名词解释:DRAM, SRAM, SDRAM等
SRAM:静态RAM,不用刷新,速度可以非常快,像CPU内部的cache,都是静态RAM,缺点是一个内存单元需要的晶体管数量多,因而价格昂贵,容量不大. DRAM:动态RAM,需要刷新,容量大. SD ...
- FPGA系统中DRAM,SRAM,SDRAM,FLASH 区别(转)
原文:http://hi.baidu.com/abners/item/a9042ef35d3f005bc8f337f5 一般来说这几种存储器是一个nios系统都具有的,sram的好处是接口简单,速度快 ...
- 【转】RAM 大全-DRAM, SRAM, SDRAM的关系与区别
http://blog.csdn.net/huleide/article/details/5506698 ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是R ...
- RAM 大全-DRAM, SRAM, SDRAM的关系与区别
ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写.ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是 ...
- SRAM与SDRAM的区别
http://www.cnblogs.com/spartan/archive/2011/05/06/2038747.html SDRAM SDRAM(Synchronous Dynamic Rando ...
- SRAM与SDRAM的比较(转)
原文:http://blog.csdn.net/fg8181/article/details/2278100 内存在电脑中起着举足轻重的作用,一般采用半导体存储单元,包括随机存储器(RAM),只读存储 ...
- 二、存储管理器--SDRAM
2.1 硬件结构 2.1.1 硬件框图 CPU 通过存储管理器来读取 SDRAM 网卡 等外部设备,CPU不管外部设备是怎么样的,只是读存储管理器中的地址 CPU从0x30000000地址读取数据. ...
- FMC—扩展外部 SDRAM
本章参考资料:< STM32F4xx 参考手册 2>.< STM32F4xx 规格书>.库帮助文档< stm32f4xx_dsp_stdperiph_lib_um.chm ...
- 第26章 FMC—扩展外部SDRAM
本章参考资料:<STM32F76xxx参考手册2>.<STM32F7xx规格书>.库帮助文档<STM32F779xx_User_Manual.chm>. 关于SDR ...
随机推荐
- Struts2详解
struts2框架是SSH框架集中的框架之一,是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器层(Controller)来建立 ...
- 「OC」 封装
一.面向对象和封装 面向对象的三大特性:封装.继承和多态 在OC语言中,使用@interface和@implementation来处理类. @interface就好像暴露在外面的时钟表面,像外界提 ...
- Windows下配置Mysql
这里说的配置Mysql,是在安装时进行的,请先查看:Windows平台下安装Mysql 紧接上文,安装完成后将配置选项打上对勾,按下“Finish”,出现下面的界面,这里有一个很好的功能,mysql配 ...
- OpenStack里对VPN的支持
今天翻自己的笔记找到了点去年研究Cloudpipe的东西: 对于用VLAN隔开的项目内主机的访问,可以使用CloudPipe来进行VPN访问 其实就是把OpenStack和OpenVPN集成了一下,给 ...
- Qt程式异常崩溃处理技巧(Win)
这篇文章谈的是 Qt4 程式在视窗系统下的异常崩溃处理技巧.所以须要在头文件里包括"#include <Windows.h>". 首先,程式难免会有异常崩溃的时候.重要 ...
- ceph之crush map
编辑crush map: 1.获取crush map: 2.反编译crush map: 3.至少编辑一个设备,桶, 规则: 4.重新编译crush map: 5.重新注入crush map: 获取cr ...
- A. Case of the Zeros and Ones----解题报告
A. Case of the Zeros and Ones Description Andrewid the Android is a galaxy-famous detective. In his ...
- excel unixtime与北京时间互转
unixtime转北京时间,在单元格内输入:=INT((B2-70*365-19)*86400-8*3600) *.要设置一下单元格格式为y-m-d h:m:s才会正确显示 北京时间转unixti ...
- centos php扩展开发流程
原文:centos php扩展开发流程 一.安装php centos 默认 yum 安装 php 版本为 5.3, 很多php框架基本上要求5.4以上版本,这时候不能直接 用 yum install ...
- u-boot分析——struct gd_t与struct bd_t
gd_t和bd_t是u-boot中两个重要的数据结构,在初始化操作很多都要靠这两个数据结构来保存或传递.分别定义在./include/asm/global_data.h和./include/asm/u ...