ARM数据宽度的疑问

[复制链接]
 楼主| tc9148 发表于 2009-1-20 23:45 | 显示全部楼层 |阅读模式
ARM是RISC指令,是16bit/32bit机器码,但是为什么可以支持8位、16位、32位的flash数据宽度?我买的开发板的核心板nand&nbsp;flash是一片64M&nbsp;x&nbsp;8位的,我有点不明白。<br /><br />拿51来说,指令和数据宽度都是8位,由于使用CISC指令,复杂的指令可以翻译成多个8位机器码实现。
 楼主| tc9148 发表于 2009-1-21 09:15 | 显示全部楼层

可能是我没说清楚。

简单点就是我从书上没有看到可以flash兼容8bit的内容,只有SDRAM通过指令兼容,但是我的板子上却只有一片64M&nbsp;x&nbsp;8bit的flash。
阿南 发表于 2009-1-21 09:29 | 显示全部楼层

NAND 的8位与通常51的8位 线性Flash不一样,在这8位中不仅传送

数据,还有控制命令,倒有点像IIC的E2ROM那种形式
 楼主| tc9148 发表于 2009-1-21 11:33 | 显示全部楼层

阿南

&nbsp;&nbsp;阿南&nbsp;发表于&nbsp;2009-1-21&nbsp;09:29&nbsp;ARM&nbsp;论坛&nbsp;&nbsp;←返回版面&nbsp;&nbsp;按此察看该网友的资料&nbsp;按此把**加入收藏夹&nbsp;按此编辑本帖<br /><br />3楼:&nbsp;NAND&nbsp;的8位与通常51的8位&nbsp;线性Flash不一样,在这8位中不仅传送<br /><br />数据,还有控制命令,倒有点像IIC的E2ROM那种形式<br /><br /><br />--那么ARM的16bit/32bit机器码与NAND的8位指令如何兼容?我在书上没看到关于ARM的8位机器码介绍。
computer00 发表于 2009-1-21 12:05 | 显示全部楼层

这个是要有一个驱动的,驱动会将这些数据从NAND FLASH读出

并复制到内部RAM中,然后在RAM中运行32/16位的指令。<br /><br />这跟你运行U盘或者移动硬盘中的程序原理差不多,由一个程序将这些数据先复制到系统内部的<br />RAM,才能执行它们,而不能直接在上面执行程序。其实PC的硬盘中的程序也是通过磁盘驱动程序<br />复制数据到主存中才能运行的,而不能在硬盘上执行程序。所以,我通常把硬盘分类到外设当中,<br />而不是存储器。<br /><br />有的ARM支持从NAND&nbsp;FLASH启动,那么这个负责复制数据的“驱动”就由这个ARM处理器<br />本身集成的一个模块来完成,上电时它会自动执行复制NAND&nbsp;FLASH代码到内部RAM的功能,<br />然后并运行它们。
 楼主| tc9148 发表于 2009-1-21 12:36 | 显示全部楼层

5楼的解释我有点理解了。

  
阿南 发表于 2009-1-22 00:26 | 显示全部楼层

是不能直接在NAND Flash里执行程序的,正如OO所说

先将NAND&nbsp;Flash里的程序读出到32位的SDRAM中,然后再执行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

137

主题

589

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部