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()函数实现。

时间: 2024-10-10 06:13:41

SRAM,SDRAM,网卡的相关文章

【转】RAM 大全-DRAM, SRAM, SDRAM的关系与区别

ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写.ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存. RAM 有两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲.另一种称为动态RAM(Dynamic RAM/

DDR2学习之SRAM,SDRAM,DDR,DDR2的区别

第一次写博客,写博客的目的是为了将自己的学习过程记录下来,方便自己今后进行复习.最近在做一个视频采集压缩系统,现在正学习到了DDR2的配置,等系统调出来会将之前的部分记录下来.废话不多说,正文开始. SRAM:异步静态随机存储器,一个SRAM单元由4-6个CMOS晶体管组成,数据只有在新的数据来或者断电才会丢失,单片SRAM芯片容量低,价格昂贵.SRAM不需要刷新,速度可以非常快,现在基本可以和CPU主频同速,其工作时不需要外部提供时钟. SDRAM:同步动态随机存储器,SDRAM使用电荷存储数

15年5月嵌入式学习笔记之驱动程序

poll机制(查询机制),隔一段时间查询-下有没有中断. 第四个驱动程序增加poll机制. 应用程序里面open() 函数,read() 函数,write ()函数,poll() 函数分别对应drv_open(),drv_read(),drv_write(),drv_poll()函数. 读取按键的多种方式, 1.查询方式,耗资源. 2.中断方式,如果没有按键按下,read()函数一直等待,永远不会返回. 3.poll机制,指定-段时间后返回. 这三种方法有-个共同的特点,都是应用程序主动去查询.

SRAM与SDRAM的区别

SDRAM SDRAM(Synchronous Dynamic Random Access Memory)同步动态随机存取存储器,同步是指Memory工作需要步时钟,内部的命令的发送与数据的传输都以它为基准:动态是指存储阵列需要不断的刷新来保证数据不丢失:随机是指数据不是线性依次存储,而是由指定地址进行数据读写.目前的168线64bit带宽内存基本上都采用SDRAM芯片,工作电压3.3V电压,存取速度高达7.5ns,而EDO内存最快为15ns.并将RAM与CPU以相同时钟频率控制,使RAM与CP

二、存储管理器--SDRAM

2.1 硬件结构 2.1.1 硬件框图 CPU 通过存储管理器来读取 SDRAM 网卡 等外部设备,CPU不管外部设备是怎么样的,只是读存储管理器中的地址 CPU从0x30000000地址读取数据. 1 mov R1, #0x30000000 2 ldr R0, [R1] 存储管理器会根据配置信息来访问外部的设备. 配置信息包括: 外部设备的地址 外部设备的数据,数据宽度是多少位(8位/16位/32位) 时钟信号频率 外部设备相关的特性,SDRAM包括行地址,列地址和bank SDRAM的存储结

JZ2440开发板之存储管理器

2440可以外接8个设备,(8条片选信号), 要使用SDRAM,就要先进行设置,包括:数据位宽,行 列数,刷新周期,bank SRAM SDRAM DDR是三种存储设备,SRAM操作简单,直接给出地址信号就可以读取相应位的数据:SDRAM需要给出行列地址,操作复杂:2440不支持DDR SRAM , 网卡,NOR都是 RAM like 设备.可以接到0~5这6个片选信号上, 但是,SDRAM必须接到6~7 这两个片选信号上,因为这两个的寄存器针对SDRAM做了更好的处理

STM32学习1

arm汇编启动文件. 汇编注释用";" ;* - Set the initial SP ;* - Set the initial PC == Reset_Handler;* - Set the vector table entries with the exceptions ISR address;* - Configure the system clock and the external SRAM/SDRAM mounted on STM324x9I-EVAL boards to

nand flash的实现(摘,参考)

首先明确一下我们的编程步骤. (1).加电在nand_flash加载boot.s中4K以内的程序.这4k将自动拷贝到SRAM(片内RAM)执行. (2).我们需要用这4k的程序实现nand-flash中4K以后的程序的拷贝(当然,拷贝到SDRAM基址为0x30000000处)继续执行(main.o部分的程序).对于SDRAM的初始化和Watchdog的禁用已经在前一个实验中使用到了,这里就不再详细叙述.主要来看一下nand-flash的初始化和使用. 查阅一下s3c2440的空间布局.查看手册图

嵌入式学习笔记005-flash

flash是用来存储程序的,类似PC机的硬盘,U盘之类的,即使断电数据也不会丢失,与之对应的就是SRAM/SDRAM,而目前嵌入式用的flash主要有nor flash和nand flash两类,nor flash接口可以直接与处理器的地址线相连直接访问,像访问SDRAM那样,所以如果考虑成本的话可以让程序直接上电后从nor flash启动,不过现在追求更快的运行速度,所以都是极小部分运行后将其余所有code copy到SDRAM以求更快的运行速度,nor的缺点也挺多的,价格贵,容量小,更要命的