首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
S3C2440的SDRAM存储器驱动
2024-08-09
s3c2440存储控制器和地址以及启动的理解
转自:http://blog.sina.com.cn/s/blog_5ddb672b0100fkcf.html 1.首先应该先了解Flash ROM的种类 NOR FLASH地址线和数据线分开,来了地址和控制信号,数据就出来. NAND Flash地址线和数据线在一起,需要用程序来控制,才能出数据.通俗的说,只给地址不行,要先命令,再给地址,才能读到NAND的数据,在一个总线完成的. 结论是:ARM无法从NAND直接启动.除非装载完程序,才能使用NAND Flash. Nand Flash的命令
【转】S3C2440存储系统-SDRAM驱动
SDRAM(Synchronous Dynamic Random Access Memory,同步动态随机存储器)也就是通常所说的内存.内存的工作原理.控制时序.及相关控制器的配置方法一直是嵌入式系统学习.开发过程中的一个难点.我们从其硬件的角度来分析其原理,然后再引出SDRAM的驱动编写过程. 内存是代码的执行空间,以PC机为例,程序是以文件的形式保存在硬盘里面的,程序在运行之前先由操作系统装载入内存中,由于内存是RAM(随机访问存储器),可以通过地址去定位一个字节的数据,CPU在执行程序时将
十二、S3C2440 裸机 — SDRAM
12.1 SDRAM 介绍 12.1.1 SDRAM 定义 SDRAM(Synchronous Dynamic Random Access Memory):同步动态随机存储器-内存条 同步是指内存工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准: 动态是指存储阵列需要不断的刷新来保证数据不丢失: 对比:SRAM(静态的-触发器) 随机是指数据不是线性依次存储,而是自由指定地址进行数据读写 对比:Flash(块) DDR:DDR就是DDR SDRAM,是SDRAM的升级版.(DDR
基于S3C2440的嵌入式Linux驱动——看门狗(watchdog)驱动解读
本文将介绍看门狗驱动的实现. 目标平台:TQ2440 CPU:s3c2440 内核版本:2.6.30 1. 看门狗概述 看门狗其实就是一个定时器,当该定时器溢出前必须对看门狗进行"喂狗“,如果不这样做,定时器溢出后则将复位CPU. 因此,看门狗通常用于对处于异常状态的CPU进行复位. 具体的概念请自行百度. 2. S3C2440看门狗 s3c2440的看门狗的原理框图如下: 可以看出,看门狗定时器的频率由PCLK提供,其预分频器最大取值为255+1:另外,通过MUX,可以进一步降低频率. 定时器
【转】S3C2440与SDRAM NorFlash NandFlash连线分析
一.SDRAM(HY57V561620F)连线分析 1. S3C2440 有27根地址线ADDR[26:0],8根片选信号ngcs0-ngcs7,对应bank0-bank7,当访问bankx 的地址空间,ngcsx引脚为低电平,选中外设. 2^27=128MByte, 8*128Mbyte = 1Gbyte,所以S3C2440 总的寻址空间是1Gbyte.但市面上很少有32位宽度的单片SDRAM,一般选择2片16位SDRAM 扩展得到32位SDRAM. 2.这里选择的SDARM是HY57V56
S3C2440上RTC时钟驱动开发实例讲解(转载)
嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤.一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便.如有错误之处,谢请指正. 共享资源,欢迎转载:http://hbhuanggang.cublog.cn 一.开发环境 主 机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2 二.相关概念 1.平台设备:通常在Linux中,把SoC系统中集成
学习Linux下s3c2440的USB鼠标驱动笔记
1.ARM-Linux下USB驱动程序开发1.1.1.linux下USB配置:*********(MassStorage:存储设备)************************************ -> Device Drivers -> SCSI device support(通用设备) -> SCSI disk support (磁盘支持) -> SCSI device support(设备支持) -> Device Drivers -> USB suppo
s3c2440串口裸板驱动(使用fifo)
使用fifo的好处有: 1:串口的数据发送的数据量较大时,使用fifo可以大大降低MCU的开销.(有点类似串入并出的cput处理模型,本质上还是串行收发) 2:在某些特殊场合,例如制定较复杂的协议时,可以使用fifo特性来做协议简化,比如一包 数据包含8个字节,(并且fifo设置的长度为8),这样相当于把uart转换为类似CAN/以太网模型, 这样信息可扩展性得到了质的提高,当然,这里需要同步协调. fifo分析拓展: 1. 如果要用中断来处理接收到的数据,就是说,接收完数据然后产生中断,再于
S3C2440之IIC裸机驱动
花了两天的时间终于把这个搞定了,其实I2C的原理还是比较简单的,只是几个细节性的东西还是需要特别的注意,主要是需要注意一下几点: 1.rIICCON &= ~0x10; 清中断必须要在rIICDS = slvAddr; 和rIICSTAT = 0xf0; // 主设备,启动 之后 2.延时对于写外部的低速设备来说非常重要,比如while(flag)之后一定要加延时,还有在写数据时发现只能写入基数地址的数据,这也是由于延时导致的 3.开始调试的时候系统总是死在read的函数中,后来发现在数据手
Linux I2C总线控制器驱动(S3C2440)
s3c2440的i2c控制器驱动(精简DIY),直接上代码,注释很详细: #include <linux/kernel.h> #include <linux/module.h> #include <linux/i2c.h> #include <linux/init.h> #include <linux/time.h> #include <linux/interrupt.h> #include <linux/delay.h>
SDRAM基础知识
SDRAM知识普及 在学习SDRAM之前,必须先了解"SDRAM"这个概念性的东西,并有感性的认识转变到一种理性的认识,所谓理性的认识就是实质性的东西…….不多说,相信你已经迫不急待了.那我们就开始了. 初识SDRAM SDRAM的全称是:Synchronous Dynamic Random Access Memory,同步动态随机存储器,同步是指 Memory工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准:动态是指存储阵列需要不断的刷新来保证数据不丢失:随机是指数据不是线
(一)s3c2440 地址分配讲解 (很难很纠结)
mini2440的地址怎么分配.mini2440处理器的地址怎么分配. S3C2440处理器可以使用的物理地址空间可以达到4GB,其中前1GB的地址(也就是0x0000 0000--0x4000 0000)为外设地址空间,外设地址究竟怎么确定的呢??好烦?? 还有一部分为CPU内部使用的特殊功能寄存器地址空间(地址范围为0x4800 0000--0x5FFF FFFF),其余的地址空间没有使用. 下面用两个表格说明外设地址空间好特殊功能寄存器地址空间 3FF FFFF 共 26根地址线,也就是
JZ2440存储管理器--SDRAM
为了cpu访问外部设备,ARM提供一个存储管理器部件,提供访问外部设备的所需的信号(对SDRAM.网卡.nor等设备进行初始化,以便存储器管理器配合CPU进行与外设数据通讯). CPU通常读写一个外设仅仅发出地址,它不仔细过问其中的任何过程,地址发出后就交给了存储管理器,存储管理器就会根据地址判断是什么设备,并负责数据操作,把CPU想操作的数据反馈给CPU: S3C2440对外引出27根地址线ADDR0-ADDR26,因此从地址线数目来看S3C2440对外访问的范围只有128MB
SDRAM 学习笔记(三)
上图是terasic公司提供的SDRAM控制器,大部分已经封装好,我们需要修改其中部分代码,以此来实现我们自己需要的功能. 1.PLL时钟设定 首先上面的sdram_pll.v中产生上一篇博客所需要的“驱动时钟”和“控制时钟”,这两个时钟由于PCB走线延时,两个时钟会有一定的时间差,一般会设定在-3ns ~ 1ns之间.如下图所示: 上图是对SDRAM的PLL进行的更改,这个时钟差设定多少没有严格规定,可以先设定一个值,读取出图像进行调试,看图像是否帧错位或者图像显示不正确等原因,多是由
s3c2440地址分配
mini2440的地址怎么分配.mini2440处理器的地址怎么分配. S3C2440处理器可以使用的物理地址空间可以达到4GB,其中前1GB的地址为连接外设的地址空间.>1G的地址空间 分配给处理器的其他模块使用. 还有一部分为CPU内部使用的特殊功能寄存器地址空间(地址范围为0x4800 0000--0x5FFF FFFF),其余的地址 空间没有使用. 下面用两个表格说明外设地址空间好特殊功能寄存器地址空间 3FF FFFF 共 26根地址线,也就是 2^6=64 2^20=1M 那么
FMC—扩展外部 SDRAM
本章参考资料:< STM32F4xx 参考手册 2>.< STM32F4xx 规格书>.库帮助文档< stm32f4xx_dsp_stdperiph_lib_um.chm>.关于 SDRAM 存储器,请参考前面的“ 常用存储器介绍”章节,实验中 SDRAM 芯片的具体参数,请参考其规格书< IS42-45S16400J> 来了解. SDRAM 控制原理STM32 控制器芯片内部有一定大小的 SRAM 及 FLASH 作为内存和程序存储空间,但当程序较大,内存
第26章 FMC—扩展外部SDRAM
本章参考资料:<STM32F76xxx参考手册2>.<STM32F7xx规格书>.库帮助文档<STM32F779xx_User_Manual.chm>. 关于SDRAM存储器,请参考前面的“常用存储器介绍”章节,实验中SDRAM芯片的具体参数,请参考其规格书<W9825G6KH>来了解. 26.1 SDRAM控制原理 STM32控制器芯片内部有一定大小的SRAM及FLASH作为内存和程序存储空间,但当程序较大,内存和程序空间不足时,就需要在STM32芯片的
第26章 FMC—扩展外部SDRAM—零死角玩转STM32-F429系列
第26章 FMC—扩展外部SDRAM 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章参考资料:<STM32F4xx 中文参考手册2>.<STM32F4xx规格书>.库帮助文档<stm32f4xx_dsp_stdperiph_lib_um.chm>. 关于SDRAM存储器,请参考前面的"常用存储器介绍"章节,实验中SDR
SDRAM和dcfifo的联合
SDRAM和dcfifo的联合 设计原理 在"SDRAM突发读写页"实验中,留下了一个问题,就是从SDRAM读取数据的速度要与SDRAM的驱动时钟同步,这就造成了读出的数据的速率过快,我们很难通过在LED上观察其读出的结果. 在学习了dcfifo之后相信你已经了解了dcfifo的功能,没错这一节就是要用到dcfifo作为跨时域的桥梁,把100M的读时钟频率"降下来". 通过测试模块往SDRAM写入一页的数据,当写如完成后便进入到延迟状态(当然这个延迟我们可以不要),
linux之i2c子系统架构---总线驱动
编写i2c设备驱动(从设备)一般有两种方式: 1.用户自己编写独立的从设备驱动,应用程序直接使用即可. 2.linux内核内部已经实现了一个通用的设备驱动,利用通用设备驱动编写一个应用程序(用户态驱动),在应用程序中用到大量设备驱动提供的接口,通过应用程序来控制从设备. 总线驱动 4.1 概述 I2C总线驱动是I2C适配器的软件实现,提供I2C适配器与从设备间完成数据通信的能力,比如起始,停止,应答信号和master_xfer的实现函数. I2C总线驱动由i2c_adapter和i2c_algo
字符设备驱动4: ioremap
#define GPIO_OFT(x) ((x) - 0x56000000)#define GPFCON (*(volatile unsigned long *)(gpio_va + GPIO_OFT(0x56000050))) static int s3c24xx_leds_open(struct inode *inode, struct file *file) { int minor = MINOR(inode->i_rdev); //MINOR(inode->i_cdev); switc
热门专题
Resolve dependencies 耗时
STM32F030C8T6 TIM1的设置QA
android 日历 现实本星期
laravel 导出模板
xml文件<select>报错
算法设计与分析李春葆课后答案
宝塔admin数据库打不开
测序q30是什么意思
linux监控i2c数据
C#创建目录CreateDirectory 权限
nfs挂载有问题导致pod删除失败
android listview getView执行多次
window本地ping虚拟机
链接脚本 BLOCK用法
svn导出和检出的区别
linux定时执行接口
yml文件中怎么写数据
js 密码长度8-20位,由字母,数字或符号两种以上组合
mysql 连接 子查询 特别慢
centos6.10中文输入法切换不出来