打印

ARM数据宽度的疑问

[复制链接]
1726|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tc9148|  楼主 | 2009-1-20 23:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ARM是RISC指令,是16bit/32bit机器码,但是为什么可以支持8位、16位、32位的flash数据宽度?我买的开发板的核心板nand flash是一片64M x 8位的,我有点不明白。

拿51来说,指令和数据宽度都是8位,由于使用CISC指令,复杂的指令可以翻译成多个8位机器码实现。

相关帖子

沙发
tc9148|  楼主 | 2009-1-21 09:15 | 只看该作者

可能是我没说清楚。

简单点就是我从书上没有看到可以flash兼容8bit的内容,只有SDRAM通过指令兼容,但是我的板子上却只有一片64M x 8bit的flash。

使用特权

评论回复
板凳
阿南| | 2009-1-21 09:29 | 只看该作者

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

数据,还有控制命令,倒有点像IIC的E2ROM那种形式

使用特权

评论回复
地板
tc9148|  楼主 | 2009-1-21 11:33 | 只看该作者

阿南

  阿南 发表于 2009-1-21 09:29 ARM 论坛  ←返回版面  按此察看该网友的资料 按此把**加入收藏夹 按此编辑本帖

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

数据,还有控制命令,倒有点像IIC的E2ROM那种形式


--那么ARM的16bit/32bit机器码与NAND的8位指令如何兼容?我在书上没看到关于ARM的8位机器码介绍。

使用特权

评论回复
5
computer00| | 2009-1-21 12:05 | 只看该作者

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

并复制到内部RAM中,然后在RAM中运行32/16位的指令。

这跟你运行U盘或者移动硬盘中的程序原理差不多,由一个程序将这些数据先复制到系统内部的
RAM,才能执行它们,而不能直接在上面执行程序。其实PC的硬盘中的程序也是通过磁盘驱动程序
复制数据到主存中才能运行的,而不能在硬盘上执行程序。所以,我通常把硬盘分类到外设当中,
而不是存储器。

有的ARM支持从NAND FLASH启动,那么这个负责复制数据的“驱动”就由这个ARM处理器
本身集成的一个模块来完成,上电时它会自动执行复制NAND FLASH代码到内部RAM的功能,
然后并运行它们。

使用特权

评论回复
6
tc9148|  楼主 | 2009-1-21 12:36 | 只看该作者

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

使用特权

评论回复
7
阿南| | 2009-1-22 00:26 | 只看该作者

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

先将NAND Flash里的程序读出到32位的SDRAM中,然后再执行

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

137

主题

589

帖子

1

粉丝