详解CPU与Norflash电路连接图以及工作原理
问题1、CPU地址线与16位nandflash地址线连接时错开一个位的原因: 答:CPU发出的一个地址对应一个字节数据,而16位nandflash一个地址对应二个字节数据, CPU明白自己想读取哪一个字节数据,它就发送相应地址给nandflash,而nandflash是16位, 故nandflash总是每次返回2个字节的数据,这时由CPU片上的nandflash控制器将CPU要的那个数据传给CPU。 同理,若是32位nandflash,则地址线连接需错开两个位。 ? ? CPU的地址加1的1代表一个字节的偏移量,而存储器的地址加1的1代表存储器位宽的偏移量。 如16位ddr的地址+1,中的1代表2个字节;32位ddr的地址+1,中的1代表4个字节。 问题2、地址线、数据线上通常不止接一个设备,那么如何做到访问目标设备而不影响其它设备? 答:每个设备都有自己的片选引脚,每个片选引脚都对应一段地址空间, CPU发送地址给设备控制器,设备控制器会根据地址范围来自动选中总线上的设备。 没选中的设备不能工作,也不会受影响。 S3C2440 有27根地址线ADDR[26:0],8根片选信号ngcs0-ngcs7,对应bank0-bank7, 当访问bankx?的地址空间,ngcsx引脚为低电平,选中外设。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- cocos2dx JS localStorage
- 解决AJAX中使用UpdatePanel后再用Response.Write();等无法弹
- ORA-01000: maximum open cursors exceeded
- objective-c – XCode 4.2为什么我在.h和.m文件中看到@inte
- 设计模式入门一之单一单一职责原则(SRP)
- ruby-on-rails – 什么“需要File.expand_path(‘../../ co
- Oracle rank和dense_rank排名函数
- U-Boot的常用命令详解
- JSON.stringify(value[, replacer [, space]])
- Kettle 生成的XML格式数据保存到Oracle 数据库的BLOB类型字