powerpc是哈佛还是冯诺依曼 哈佛结构

他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)【点评阅读】ARM 架构、ARM7、ARM9、STM32、Cortex M3 M4 、51、AVR... - 活动 - Microchip技术社区
后使用快捷导航没有帐号?
查看: 3244|回复: 20
【点评阅读】ARM 架构、ARM7、ARM9、STM32、Cortex M3 M4 、51、AVR...
ARM 架构、ARM7、ARM9、STM32、Cortex M3 M4 、51、AVR 之间有什么区别和联系
u=,&fm=21&gp=0.jpg (17.57 KB, 下载次数: 0)
17:14 上传
ARM架构: 由英国ARM公司设计的一系列32位的RISC微处理器架构总称,现有ARMv1~ARMv8种类。
ARM7: 一类采用ARMv3或ARMv4架构的,使用冯诺依曼结构的内核。
ARM9: 一类采用ARMv4或ARMv5架构的,使用哈佛结构的内核。
Cortex M3: 采用了ARMv7架构的,使用哈佛结构的内核。
Cortex M4: 采用了ARMv7架构的,使用哈佛结构的内核。(较前者最大区:别增加了一个DSP处理功能,SIMD单指令多数据功能。其他区别请自己在实际项目开发中体验)
STM32: 意法半导体公司(ST)推出的系列基于Cortex-M0/Cortex-M3/Cortex-M4等内核的微处理器/微控制器芯片。
51: Intel在1981年推出的由8031微控制器芯片改造升级的、使用CISC指令集的、冯诺依曼架构的、8位的8051微控制器。后Intel将8051微控制器的内核授权给其他芯片厂商,使得市面上广泛出现类似于8051的芯片,这种采用8051内核的芯片被简称为51。
AVR:一系列由ATMEL公司在九十年代出推出的系列8位的、采用改进哈佛结构的、使用RISC指令集的微处理器芯片。
最开始的Intel公司都是自己从头研发处理器芯片。从、……TI公司的TMS 1000……还有其他的公司研发的可编程芯片。因为是不同公司,而且个公司之间也不可能有交流(防止商业秘密泄露),所以各自做的都芯片都有在内部CPU、总线、存储单元、指令集上的不同(如果有相同,那就是专利侵权了,比如INTEL当年锲而不舍控告AMD)。但每个公司研发的新老芯片之间都有一定的结构和技术是上的传承,所以出现了不同公司研发的芯片中有不同的架构。
架构 architecture:是一个抽象的概念,是一个结构内的元素及元素间关系的一种主观映射的产物。比如我们常说的计算机处理器有486、Ivy Bridge、Pentium M……这就是架构的不同(其都从属于x86架构),维基的内容里只提到了计算机处理器中的常见硬件架构,而没提到你想了解的、常用语嵌入式系统中的微处理器/微控制器芯片所用到的架构。而你说的联系,就是我前面用分割线隔离开来的:ARM架构到STM32这些名称都属于ARM架构的范畴。
内核 IP core: 概念请看IP核。可以说IP核是硬件架构这个抽象概念在芯片内的具体实现。上面说了,最开始都是各个厂家自己做,从架构研发到芯片成型,这种好处是自己完全掌握了核心技术。但劣势是投入巨大,一旦大投入但设计出来的芯片因为架构的不合理而导致市场流失,那之前的投入就打水漂了。
而当年INTEL的在嵌入式工控领域热卖(其实现在还有些工控领域坚持用8031,因为稳定,这个以后有空再说)。而intel可能是从生产成本和扩展领域方面的考虑(人家做计算机微处理器比这赚钱多了),自己逐渐放弃了8051芯片的生产,转而允许授权其他公司生产。集成芯片内部就是一堆晶体管的集合,用硬件描述语言来规定晶体管的排列组合从而实现中央处理器、总线,存储单元……,Intel把如何实现8051架构的硬件描述语言授权卖给其他公司(买内核),获授权的公司就能生产具有8051内核的芯片了。
微控制器MCU/微处理器μP:
一开始只有小型微型计算机所使用的微处理器,后来Intel从4004发展到8086阶段中衍生除了专门用于工业控制方面的,然后是用于计算机的微处理器慢慢发展向超高集成度、大容量、高频率、大处理能力以符合计算机技术的日益发展需求。而8051则平稳发展向了高稳定性、多功能集成度的微控制器,以满足工业控制领域对内存需求相对不是太大,但稳定性高、外设功能较多、占用面积小的要求。
最开始的区分就是微控制器带有内部RAM(等同于计算机的内存条,当然芯片内集成不会有那么大的内存,一般撑死了128K内存)、和ROM(等同于计算机的硬盘,当然也不会有想硬盘大的容量),以及其他的外设功能(如串口、spi、I2C等功能)。简单的说就是把一个缩小资源容量的计算机放到一个芯片内。也因为这样单芯片集成了一个完整的计算机系统在里面,大陆地区在80、90年代的电子工程师将其称为“单片机”,然后影响至今。
(注意,一个完整的计算机系统是处理器、总线、存储结构、输入输出结构,所以不要跟我说为啥没有显示器和鼠标键盘它单片机也敢说继承了一个计算机系统,你可以翻翻《计算机系统原理》课本)
而计算机微处理器因为需要从处理数据角度考虑,纯粹只做处理方面的升级,所以在一开始的区分中,微处理器是不集成RAM、ROM、和其他 外设功能的。只是因为PowerPC往嵌入式发展,以及后来ARM的出现,开始慢慢的又缩小了微处理器和微控制器的区别,这些微处理器也开始集成了RAM、ROM、其他外设……但现在国际上也没有一个统一的,通用的标准说微处理器和微处理器之间的区别是什么。跟“单片机”一样,都是工程师自己叫出来的。也有人把8051也成为微处理器的……
而从我做过的Ti的DSP、ARM7、ARM9等芯片来看:微处理器μP是需要通过并口外扩RAM、ROM,并且程序从外部ROM启动,在外部RAM运行的。微控制器MCU通过内部ROM启动程序,在内部或外部RAM运行程序的。这只是我的个人见解,因为有的芯片可以被配置为微处理器,也可以被配置为微控制器,其配置后的区别就是程序从哪里启动在哪里运行。比如德州仪器TI的TMS320F2812 DSP芯片。BTW:DSP芯片本质上其实也是一个微处理器/微控制器芯片,只是它内含了DSP数字信号处理功能,比如上面说到的Cortex-M4也是集成了DSP数字信号处理功能呢,但ARM公司不称呼它为DSP,这都是工程师自己称的。没有统一标准。我在另外一个回答里提到了。我就不粘贴过来了。ARM 和 Intel 谁能代替 DSP?
关于冯诺依曼结构
冯诺依曼结构:是一种将程序指令存储器和数据存储器合并在一起的电脑设计概念结构。应该说ARMv3之类的内核的存储结构模式和寻址模式使用了这种冯诺依曼结构,一个完整的微处理器架构还需要指令集等其他系列结构。
插一个关于嵌入式概念的补充
IEEE和IEC对于嵌入式系统(Embedded System)的诠释,从最早期的、8051,直到现在流行的ARM和很难学的PowerPC,这些芯片如果应用在“用于控制、监视或者辅助操作机器和设备的装置”上时,都应该是属于嵌入式。(还有人曾将X86架构的80386用于嵌入式系统的)所以不要再来问我如何从单片机转向嵌入式这种问题了。因为做单片机开发本身就是嵌入式开发。要问请问清楚你是想宗8051转向ARM还是PowerPC。
最后,我想提一下CPU这个概念:一般人听到CPU都会想到个人电脑里面的那个被散热片、风扇重压的大芯片。其实严格来说这是一个错误的概念。严格来说CPU只是指微处理器/微控制器芯片内部的中央处理器这个模块,但人都有把某主要功能夸大、忽略其他必备的辅助功能的这种思维。所以有的时候听到了某个电子工程师、嵌入式工程师说CPU输出什么什么东西的时候,不要以为他在说电脑里的那颗大芯片,他可能是在说ARM、PowerPC、51、AVR之类的芯片。
ARMv8是64位的ISA
ARMv8是64位的ISA
ARMv8是64位的ISA
Cortex有A,R,M三个系列。再通俗简单的解释:指令集ISA:就是指令的集合,一般是本书(手册)。ARMv8就是64位的指令集。 Cortex-A57, Cortex-A53, APM X-gene, 都是实现ARMv8的指令集的。软件不做任何修改在三个core上跑通。芯片:就是物理上的一个封装好,有大小有实体有管脚,需要加电能运行的一个芯片。微架构/内核:基本上可以认为是相同的名词。是一堆RTL的代码,描述一个处理器的流水,执行单元,缓存什么的。 Cortex-A57, Intel haswell都是一个微架构/内核。拿这个微架构/内核做出的芯片,例如高通的8xx,海思的麒麟xx, Xeon 26xx,就多去了。
以上来源知乎
大家看完之后大家有什么补充么。大家还有更详细的解释吗,说出的点评获取高分哦&&
要是能详细解释好标题问题的关系 送出G53开发板一块
上文中对于 8031 跟 8051 之间的描述跟我所了解的是有所不同,这方面我说明一下:
1.&&当年的 8051 是属于 MCS-51 系列的一种,除了 8051 之外还有 8052, wiki 上的说明如下:
Intel 原厂发行过的型号:
无 ROM,只有 RAM(资料记忆体),需外接程序记忆体,EA须接地。
这是 MASK ROM 型,为了大量生产,芯片厂把客户的程式码,直接在制造时 MASK(光罩)在晶片上的型号。
此为 EPROM 型,在IC包装(芯片的外壳)上有设置有石英玻璃的透明窗口者,可用工业级的紫外线灯,照射窗口内的芯片 10~30 分钟以清除资料,就能再重新烧录。此型为工程师设计用或小量生产打样用。由于有窗口的陶瓷包装比较贵,所以其后也有出品无窗口的树脂包装,因为对芯片厂而言,不管有没有窗口,里面的芯片都一样,故称无窗口的为 OTP(一次烧录型)的 8751。因为对使用者而言,OTP 的使用方式,就跟 PROM 一样,所以也有人称为 PROM 型的 8751。
8051 内部有 4KB 的ROM,128B 的 RAM。
8052 内部有 8KB 的ROM,256B 的 RAM。
2.&&8031 跟 8051 之间的不同只是在于 8031 内部没有 ROM 而 8051 内部有 4K 的 ROM,除此之外其他的功能都是一样的。因此上文中 (其实现在还有些工控领域坚持用8031,因为稳定,这个以后有空再说) 这段话是不正确的。
3.&&为什么过去很多的板子上会使用
呢?这纯粹只是价格上的问题,由于
是属于 MASK ROM 工艺,只有大量生产时才会使用,而有窗口的
价格又太贵(真的很贵),并且烧录次数是有限制的,一般烧录几十次之后就很难再烧录了,无窗口的
又只能烧录一次,万一要修改程序这颗芯片就无法再使用了,所以当年的硬件设计大都会选择
外加 ROM 的电路架构。
4.&&过去很多板子上也会看到
+ ROM 或是
+ ROM 的电路架构,原因有 2 种,一种是把
使用,也就是将 EA 脚接地 (其实很多芯片厂会将生产过多的
来卖)。另一种原因就是将部份已经稳定且不会再修改的程序放在 CPU 内部,而外部的 ROM 存放其他部份的程序,当程序需要修改时只需更动到外部的 ROM,这样也就达到了程序保护的目的。
5.&&MCS-51 系列之前还有一个 MCS-48 系统,主要的型号有:
8035& & none& && && && &64B RAM
8039& & none& && && && &128B RAM
8048& & 1KB ROM& && && &64B RAM
8049& & 2KB ROM& && && &128B RAM
8748& & 1KB EPROM& && & 64B RAM
8749& & 2KB EPROM& && & 128B RAM
1、ARM7和ARM9是采用ARM架构的未处理器内核,只不过ARM7采用的冯诺依曼结构,而ARM9采用的是哈佛结构;
2、STM32是意法半导体推出的一系列采用ARM架构的微处理器总称,其内核称为Cortex M3、Cortex M4;Cortex M4较前者最大区别增加了一个DSP处理功能,SIMD单指令多数据功能。
3、51同样为采用8051内核的微处理器总称;
4、AVR是ATMEL公司推出的系列8位的、采用改进哈佛结构的、使用RISC指令集的微处理器总称;其中也包括采用的51内核的单片机。
X86架构跟ARM架构的区别:
X86架构是X86指令集,它属于CISC指令集。ARM架构是ARM指令集,属于RISC指令集。
X86是冯若依曼结构,ARM是哈弗结构,这个不一定,比如ARM7TDMI用的就是冯若依曼结构。
其实都是差不多,X86指令多,应用范围广,但效率就显得低一点,ARM指令少,应用范围小,效率显得高。
本帖最后由 hyfly99 于
19:22 编辑
ARM 架构、ARM7、ARM9、STM32、Cortex M3 M4 、51、AVR 之间有什么
冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构是一种实现简单,成本低的总线结构。
哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。这种分离的程序总线和数据总线可允许在一个机器周期内同时获得指令字(来自程序存储器)和操作数(来自数据存储器),从而提高了执行速度,提高了数据的吞吐率。由于程序存储器和数据存储器采用不同的总线,从而提供了较大的存储器带宽,使数据的移动和交换更加方便,尤其提供了较高的数字信号处理性能。
联系:32位的RISC微处理器,RISC,精简指令集计算机。特点是所有指令的格式都是一致的,所有指令的指令周期也是相同的,并且采用流水线技术。ARMv8是64位的ISA,ARM进入64位时代。
楼上说的很详细,我分享一张ARM各个阶段发展的图片
arm.jpg (39.58 KB, 下载次数: 0)
20:53 上传
(289.19 KB, 下载次数: 13)
22:32 上传
点击文件名下载附件
要想搞清楚题目的问题,首先需要理解下面2个基本的概念:计算机组成原理和计算机体系结构。不要困、烦,我这里不是上课,尽量通俗易懂。 计算机组成原理主要是讲述计算机由运算器、控制器、存储器、输入设备和输出设备等5部分组成,再分别展开细述这5部分,并且由总线把这5部分联系起来。 计算机体系结构是程序员所看到的计算机的属性,即概念性结构与功能特性。这个概念比较抽象,举个例子解释:汇编程序员与C程序员所看到的计算机的体系结构就是不同的。这些不同体现在如下8个属性:&&1&&数据表示比如能够处理8位数据?16位数据?32、64位数据?2寻址方式比如直接寄存器寻址、间接寻址等。3寄存器组织比如寄存器的位长和数量等。4指令系统流水线技术;CISC、RISC等。5存储系统编址单位、寻址空间等。6中断机构中断类型及响应方式等。7输入输出结构比如I/O连接方式、单指令流单数据流SISD、单指令流多数据流SIMD等。8信息保护硬件保护机制等。 一般讲述体系结构都是从上述8个属性展开讲述的。越是高级的编程语言越是更加抽象,越是远离这些属性,即使是汇编语言也是对体系结构的一种抽象,而C++程序员基本不会考虑计算机的指令系统是什么?中断机构如何等等。目前,有2种体系结构基本涵盖了绝大部分现有的处理器:冯诺依曼体系结构和哈佛体系结构。2者的唯一区别就是数据存储和指令存储是否是分开的[1]。冯诺依曼体系结构的数据存储和指令存储是统一的,而哈弗体系结构的数据存储和指令存储是分开的。基于这2个体系结构及一些不同的属性,半导体公司生产多种多样的处理器,从小的单片机,到复杂些的微控制器,再到大型机器用的CPU等。这些不同的处理器根据应用的场景不同,结合对成本的控制,就会有多种多样的产品型号。比如Intel就是自己涉及并制作处理器,包括Core系列的、Atom系列的、Xeon系列的等等。ARM公司并不自己生产处理器,而是自己设计处理器并出售版权。 现在我们就可以比较清晰的搞清楚题目的问题了:所谓的ARM架构,需要根据ARM不同时期推出的不同内核架构来理解。参考下图[2]:
QQ截图01.jpg (60.02 KB, 下载次数: 0)
22:31 上传
通过上图可以看出,ARM7是基于v4架构的一系列处理器,ARM9是基于v5/v5E架构的一系列处理器,Cortex-M3和Cortex-M4都是基于ARMv7-M架构的内核。上图可以看出ARMv7被分为了3个不同的路线,即面向应用的Cortex-A内核,面向高实时性的Cortex-R内核和面向通用嵌入式的Cortex-M内核。STM32是ST-意法半导体推出的一系列基于ARM架构的处理器,涵盖了Cortex-M0到Cortex-M7内核的微控制器。上述基于ARM架构的处理器都是32位处理器。 51最早是Intel推出一款处理器,51是一个8位的处理器,可以包含一个串行通信口和非常小的存储器。AVR是由ATMEL公司推出的一款增强型8位处理器。相比51增强了诸如流水线技术、提升了存储器容量等。 这些处理器都可以从体系结构的属性出发,来定义和区分,并且针对不同的应用场景和成本,来服务于大众。 参考资料:[1].第18集 冯诺依曼系统结构和电子计算机的发明,吴军,[2].《TheDefinitive Guide to Arm Cortex-M3 and Cortex-M4 Processors》,page20。
楼上说的很详细,我分享一张ARM各个阶段发展的图片
这个图不错
标题好绕口啊,难解难分啊
按不同的厂家分类
1:ARM架构(ARM7/9/11,CORTEX-M0/3/4,CORTEX-A5/7/8/9/15等)
我还是按应用市场分类把- -!
51,AVR等传统的产品一般用在简单控制上比较多;ARM7,ARM9比较老的产品,ARM7一般不大多用了,目前ARM9工控应用依旧比较多;CORTEX-M0目标替代传统51架构产品;M3,M4目标单芯片高性能微控制器(集性能,价格,实用,方便于一身,STM32就是靠他火起来了);CORTEX-A犀利目标为中,高性能,多媒体的处理器。
如今的ARM从低到高,到处有他的声影,无所不能,传统的51等用他的稳定,便捷便宜依旧牢牢统治者最需要它的地方。
无论什么时候,市场永远决定着产品,产品服务于市场,特性与价格绝对着选型,总之他们就是为我们的产品服务的!
(语文不好,见笑了)
本帖最后由 slotg 于
00:32 编辑
ARM 是一家嵌入式处理器 IP 的供应商,使用授权的商业模式来让各厂家使用 ARM 内核架构发展自家的处理器芯片。
ARM7 不是第一个 ARM 芯片但应该是第一个成功的 ARM 系列,当时有多家厂商推出几款成功的芯片,如 Samsung、Atmel...不过 ARM 公司官网上已经不建议在新的设计上使用 ARM7 处理器系列。
P01.JPG (68.05 KB, 下载次数: 0)
23:25 上传
ARM9 是比 ARM7 性能更强、跑的更快的处理器系列。
P02.JPG (51.74 KB, 下载次数: 0)
23:25 上传
STM32 是意法半导体公司 (ST) 所推出基于 Cortex-M 内核的微处理器/微控制器芯片,第一个推出的是在 2007 年基于 Cortex-M3 的 STM32 系列产品,其 M3 的产品到目前还没有一家厂家可以与其竞争。(大部份的厂家只做 M0/M4 不做 M3 了)
MCU - 微控制器单元 (Micro Control Unit)。
MPU - 微处理器单元 (Micro Processor Unit)。
其中,MCU 集成了片上外围器件,而 MPU 不带外围器件(例如存储器阵列),是高度集成的通用结构的处理器,是去除了集成外设的 MCU。
Cortex M4 是比 M3 性能更强、跑的更快的 MCU,最大的差别是比 M3 增加了 DSP 与 FPU 处理器功能,是目前各大厂家主力竞争的产品。
51 是一个稳定成熟的 8位 MCU 架构,目前依然还有很多厂家推出功能更为强大的产品,市场上还是有相当的份额,我个人认为 51 架构至少还可以再战 10 年。
AVR 是 Atmel 公司最成功的 8位 ~ 32位 MCU 架构,Atmel 公司自从推出 AVR 系列后就不再将重心放在 51 系列上,AVR 比 51 有更好的执行效率,著名的 Arduino 使用了 AVR 芯片开启了全世界开源平台的风行,是众多 MAKER 都会使用到的开发板。32位的 AVR 也是有很杰出的性能,只可惜目前市场上 ARM 内核当道,AVR 还需要持续的努力。
站长推荐 /5
代码+原理图,开源项目集锦!
( ̄▽ ̄)~*φ(>ω<*) ?(?????)?ヾ(?°?°?)??点进来看看嘛
模拟实在是太太太难?那么,先把这些经典资料收集起来吧~会有一些帮助哒
PIC图书集合!基础原理、c语言、模块详解,超全书单任你选
新年大礼包!官方视频/封装文件/文档/开源项目/图书,资料多多,收藏起来~ヾ(?°?°?)??
历年Microchip精英年会资料!高清PDF下载;对于想去年会而囿于环境限制的朋友们来说,是非常好的资料
&2018 Microchip Corporation
Tel: 3-8072
备案号: 苏ICP备号-2
Powered by嵌入式系统设计原理及应用ppt下载_PPTOKPowerPC概念体系结构
在电子工程世界为您找到如下关于“PowerPC概念体系结构”的新闻
PowerPC概念体系结构资料下载
7.5 小结 280
7.6 习题 280
第8章 内核引导 281
8.1 BIOS和Open Firmware 282
8.2 引导加载程序 282
8.2.1 GRUB 283
8.2.2 LILO 286
8.2.3 PowerPC和Yaboot 286
8.3 与体系结构相关的内存初始化 287
8.3.1 PowerPC的硬件内存管理 287
Capability结构
10.2 PowerPC处理器如何处理MSI中断请求
10.2.1 I中断机制使用的寄存器
10.2.2 系统软件如何初始化PCIe设备的MSI Capability结构
10.3 x86处理器如何处理MSI-X中断请求
10.3.1 Message Address字段和Message Data字段的格式
10.3.2 FSB Interrupt Message总线...
PowerPC处理器如何处理MSI中断请求
10.2.1 I中断机制使用的寄存器
10.2.2 系统软件如何初始化PCIe设备的MSI Capability结构
10.3 x86处理器如何处理MSI-X中断请求
10.3.1 Message Address字段和Message Data字段的格式
10.3.2 FSB Interrupt Message总线事务
详细说明:PowerPC概念体系结构与设计,介绍了POWERPC的基础知识和应用环境。...
·详细说明:PowerPC概念体系结构与设计,介绍了POWERPC的基础知识和应用环境。...
PowerPC概念体系结构相关帖子
PowerPC概念体系结构视频
你可能感兴趣的标签
热门资源推荐嵌入式系统复习题
嵌入式系统复习题
一、填空题:
1、试列举三种主流的嵌入式处理器:( ARM )、( MIPS )、(PowerPC)。
2、ARM处理器共有(37)个寄存器,其中包括(31个通用寄存器)和(6个状态寄存器)。
3、寄存器R13在ARM指令中(堆栈指针SP
)。R14也称(程序连接寄存器LR)在程序里的作用是(程序计数器PC的备份)。当发生中断或异常时,对应分组寄存器分别是(R14_svc、R14_irq、R14_fiq、R14_abt和R14_und用来保存R15的返回值)。
4、ARM微处理器支持两种指令集:(ARM)和(Thumb)。
5、寄存器R15用作(程序计数器PC)。该寄存器在ARM状态下,(位[1:0]为00),位[31:2]用于保存PC;在Thumb状态下,(位[0]为0),位[31:1]用于保存PC。
6、CPSR用作(& 状态寄存器
),CPSR可在任何运行模式下被访问。每一种运行模式下又都有一个专用的物理状态寄存器,称为(程序状态保存寄存器SPSR)。
7、Thumb状态下的寄存器集是ARM状态下寄存器集的一个子集,程序可以直接访问的通用寄存器是(R0—R7,PC,SP,LR,CPSR)。
8、ARM指令中条件执行功能是通过( 指令中添加条件码)来实现的,包含的条件码位于指令的最高(四)位。
9、试列举五种以上常见的嵌入式操作系统:(μC/OS-II)、(Vxworks)、(WinCE)、(Linux/μCLinux)、(PalmOS)。
10、计算机结构中,哈佛结构和冯?诺依曼结构的主要区别是(指令与数据分开),ARM7采用(冯?诺依曼结构),ARM9采用(哈佛结构)。
11、ARM处理器采用(Thumb指令)操作来访问SFR。&SFR内部寄存器&
12、在ARM汇编语言程序设计中,语句一般是由(指令操作码)、(指令的条件码)、(目标寄存器编码)和(包含第一个操作数的寄存器编码)组成。
二、名词解释:
ARM处理器:Advanced RISC Machine。先进的RISC指令集处理器。
交叉编译:在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,这个编译过程就叫交叉编译。
异常:是指CPU在执行指令时出现的错误,即不正常的情况。异常是与当前所执行的程序有关的。如存取数据或指令错误、计算结果溢出等。
大端格式:字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。
小端格式:低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。
寻址方式:处理器根据指令中给出的(地址)信息,寻找操作数(物理地址)的方式。
嵌入式系统:广义上:凡是不用于通用目的的可编程计算机设备,就可以算是嵌入式计算机系统。狭义上而言,嵌入式系统是指以应用为核心,以计算机技术为基础,软硬件可裁剪,对功能、可靠性、成本、体积和功耗严格要求的专用计算机系统。
GNU:GNU(GNU’s Not
Unix),它的目标是建立可自由发布和可移植的类Unix操作系统。
伪指令:是汇编语言程序里的特殊指令助记符,在汇编时被合适的机器指令替代。
伪操作:为汇编程序所用,在源程序进行汇编时由汇编程序处理,只在汇编过程起作用,不参与程序运行。
RTOS :实时系统,能够对外部事件做出及时响应的系统。
三、简答题:
1、 简述采用RISC架构的ARM微处理器的特点。
a.采用固定长度的指令格式,指令规整,简单,基本寻址2~3种
b.使用单周期指令,便于流水线操作
c.大量使用寄存器,提高指令的执行效率
d.所有的指令都可以根据前面的执行后,决定是否执行从而提高指令的执行效率
e.可以加载/存储指令,批量传输数据,以提高数据的传输效率
2、 选择嵌入式微处理器时,应考虑那些因素?
调查市场上已有的CPU供应商。
CPU的处理速度
技术指标。
处理器的低功耗。
处理器的软件支持工具。
处理器是否内置调试工具。
处理器供应商是否提供评估板
片内存储容量
3、 若允许FIQ、IRQ中断,CPSR如何设置?
FIQ: CPSR[4:0]=0B10001& IRQ:
CPSR[4:0]=0B10010
4、 举例说明ARM的各种寻址方式。
寄存器寻址:LDR R1,R2
寄存器间接寻址:LDR R1,[R2]
寄存器偏移寻址:LDR R1,[R2,-R4,LSL#3]
立即寻址:LDR,R3,#34
多寄存寻址:LDMIA R0,{R1,R3,R4,R5}
5、 对比说明ADR、ADRL与LDR的区别与联系。
ADR:小范围的地址读取伪指令。
ADRL:中等范围的地址读取伪指令。
LDR:大范围的地址读取伪指令。
ADR伪指令功能:将基于PC相对偏移的地址值或基于寄存器相对偏移的地址值读取到寄存器中。
ADRL伪指令功能:将基于PC相对偏移的地址值或基于寄存器相对偏移的地址值读取到寄存器中,比ADR伪指令可以读取更大范围的地址。
LDR伪指令功能:用于加载32位立即数或一个地址值到指定的寄存器。
6、 比较ARM920T和ARM720T的主要异同。
ARM9 &5级流水线 独立的指令总线哈佛结构
ARM7& 3级流水线& 数据与指令一起
冯·诺依曼结构
8、 简述S3C2410 Nand flash存储器的启动过程。
(1)完成复位
(2)如果自动启动模式使能,NAND Flash存储器的前4KB自动复制到Steppingstone内部缓冲器中
(3)Steppingstone映射到nGCS0
(4)CPU在Steppingstone的4KB内部缓冲器中开始执行启动代码
9、 请从广义和狭义两个方面简述嵌入式系统的含义。
答案:嵌入式系统:Embedded System
广义上:凡是不用于通用目的的可编程计算机设备,就可以算是嵌入式计算机系统。
狭义上而言,嵌入式系统是指以应用为核心,以计算机技术为基础,软硬件可裁剪,对功能、可靠性、成本、体积和功耗严格要求的专用计算机系统。
10、简述Bootloader启动过程。
1、第一阶段
(1)、基本的硬件设备初始化
(2)、为阶段2代码准备RAM空间
(3)、拷贝阶段2代码到RAM空间
(4)、设置好堆栈
(5)、跳转到阶段2的C程序入口点
2、第二阶段
(1)、初始化本阶段要使用到的硬件
(2)、检测系统内存映射(memory map)
(3)、将kernel和根文件系统映像从flash读到RAM空间
(4)、为kernel设置启动参数
(5)、调用内核
12、ARM7指令是几级流水线,各阶级执行什么操作?
ARM7的三级流水线
1取指:从程序存储器中取指令,放入指令流水线。(占用存储器访问操作)
2译码:指令译码。(占用译码逻辑)
3执行:执行指令/读写REG。(占用ALU及数据路径)
13、请简述嵌入式软件Bootloader的两种工作模式。
启动加载模式:启动加载模式称为“自举”(Autonomous)模式。即Bootloader从目标机上的某个固态存储设备上将操作系统加载到
RAM 中运行,整个过程并没有用户的介入。启动加载模式是
Bootloader的正常工作模式,在嵌入式产品发布的时侯,Bootloader必须工作在这种模式下。
下载模式:在这种模式下,目标机上的Bootloader将通过串口连接或网络连接等通信手段从主机下载文件。下载内容及存储:主要是下载内核映像和根文件系统映像等。从主机下载的文件通常首先被Bootloader保存到目标机的RAM中,然后再被
Bootloader写到目标机上的FLASH 类固态存储设备中。
14、写出不少于12类嵌入式产品中的常用接口。
UART接口、SPI接口、I2C接口、ADC和触摸屏接口、USB接口、以太网接口、外存接口、LCD接口、时钟接口、PWM接口、中断接口、JTAG接口、VGA接口、音频接口
15、简述ARM9处理器的7种运行模式。
1、用户模式(usr):非特权模式,大部分任务执行在这种模式。——正常程序执行的模式
2、快速中断模式(fiq):当一个高优先级(fast)中断产生时将会进入这种模式。——高速数据传输或通道处理
3、外部中断模式(irq):当一个低优先级(normal)中断产生时将会进入这种模式。——通常的中断处理
4、管理模式(svc):当复位或软中断指令执行时将会进入这种模式。——供操作系统使用的一种保护模式
5、中止模式(abt):当存取异常时将会进入这种模式。——虚拟存储及存储保护
6、未定义模式(und):当执行未定义指令时会进入这种模式——软件仿真硬件协处理器
7、系统模式(sys):供需要访问系统资源的操作系统任务使用——特权级的操作系统任务
16、ARM9处理器的寻址方式有那些?
立即寻址、寄存器寻址、寄存器间接寻址、基址寻址、堆栈寻址 、块拷贝寻址、相对寻址
17、ARM9有哪些处理器模式?哪些是特权模式?哪些是异常模式?
异常模式:除用户模式、系统模式之外的五种模式称为异常模式。特点:以各自的中断或异常方式进入,并且处理各自的中断或异常。
特权模式:除用户模式之外的工作模式又称为特权模式 特点:应用程序可以访问所有的系统资源,可以任意地进行处理器模式的切换
18、ARM7在ARM状态下有多少个寄存器?通常堆栈指针使用哪个寄存器?连接寄存器LR有什么功能?
有37个32位的寄存器其中31个为通用寄存器;6个为状态寄存器。
R13:寄存器R13在ARM指令中常用作堆栈指针SP。而在Thumb指令集中,某些指令强制性的要求使用R13作为堆栈指针。
R14:寄存器R14也称作子程序链接寄存器(Subroutine Link
Register)或链接寄存器LR。当执行BL子程序调用指令时,R14中得到R15(程序计数器PC)的备份。其他情况下,R14用作通用寄存器。
20、Linux的主要特点有那些?
开放性、多用户、多任务、良好的用户界面、设备独立性、丰富的网络功能、可靠的安全系统、良好的可移植性。
21、常用的Bootloader有那些?
2、RedBoot&&&
3、U-Boot&&&
22、Makefile和Make各实现什么功能?
Makefile文件内容&&
按照规则,对系统中本目录下的文件(.c、.s、.o、.h、.lib等)根据相互关系和要求进行组织,设定各自的编译方法,指定所生成的目标。
Makefile是一种文本格式文件。
Make是Makefile文件的解释器
Make对Makefile文件解释后,生成Linux的shell命令和gcc编译命令,接着对命令执行,最终生成目标文件。
Makefile是工程系统编译批处理文件。
23、Linux文件系统目录树结构是怎样的?
Linux文件系统是一个目录树结构,最上层是根目录,其他的所有目录都是从根目录出发而生成的。Linux下,任何一个目录都可以是一个分区。因此,在分区时,必须将一个分区安装在树根下面。Linux不仅将分区安装为一个目录,而且还将所有的硬件设备都安装成一个个设备文件。对设备的操作是通过文件的操作完成的。
24、CPSR各位的含义及作用。
31& 30& 29&
(保留)&&&
M3& M2& M1&
1、条件码标志位(保存ALU中的当前操作信息)
&&& N:正负号/大小
Z:零标志位
C:进位/借位/移出位
V:溢出标志位
I、F中断控制位——控制允许和禁止中断
T控制(标志)位——反映处理器的运行状态
M控制位——决定了处理器的运行模式
25、S3C2410存储器组织及地址分配。
S3C2410X的存储器管理器提供访问外部存储器的所有控制信号:26位地址信号、32位数据信号、8个片选信号、以及读/写控制信号等。
S3C2410X的存储空间分成8组,最大容量是1GB,bank0---bank5为固定128MB,bank6和bank7的容量可编程改变,可以是2、4、8、16、32、64、128MB,并且bank7的开始地址与bank6的结束地址相连接,但是二者的容量必须相等。
bank0可以作为引导ROM,其数据线宽只能是16位和32位,复位时由OM0、OM1引脚确定;其它存储器的数据线宽可以是8位、16位和32位。
S3C2410X的存储器格式,可以编程设置为大端格式,也可以设置为小端格式。
26、ARM有哪两种工作状态,怎样有指令进行切换?
从ARM状态切换到Thumb状态
有两种情况ARM处理器自动切换到Thumb状态。
(1)执行BX指令,当操作数寄存器的位[0]为1时,则微处理器从ARM状态切换到Thumb状态。此为主动切换。
(2)当处理器处于Thumb状态时发生异常(如IRQ、FIQ等),处理完异常后,在异常处理返回时,自动切换到Thumb状态。此为自动切换。
从Thumb状态切换到ARM状态
有两种情况ARM处理器自动切换到Thumb状态。
(1)执行BX指令,当操作数寄存器的位[0]为0时,则微处理器从Thumb状态切换到ARM状态。
(2)当处理器在Thumb状态时发生异常(如IRQ、FIQ等),则处理器从Thumb状态自动切换到ARM状态进行异常处理
27、Linux常用命令。
ls---文件及子目录名列表
cat---连续显示
cd---改变工作目录(目录切换)
cp---复制文件和目录
28、嵌入式处理器ARM7/9TDMI中TDMI的基本含义是什么?
ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。TDMI的基本含义为(对其它系列也适用):
T: 支持16位压缩指令集Thumb,称为T变种
D: 支持片上Debug,称为D变种
M:内嵌硬件乘法器 Multiplier,称为M变种
I: 嵌入式ICE,支持片上断点和调试,称为I变种
29、S3C2410有那些数据通信接口?
UART接口 、SPI接口、IIC接口、JTAG接口、以太网接口、USB接口
四、编程题:
1、编写一个汇编程序,在ARM程序代码中调用Thumb子程序,并返回ARM程序完成其功能。
2、将存储器中0x开始的200字节的数据,传送到地址从0x开始的某接口电路的存储区域。
LDR R0,=0X
LDR R1,=0X
LDRB R2,[R0],#1
STRB R2,[R1],#1
ADD R4,R4,#1
CMP R4,#200
3、编写一简单ARM汇编程序段,实现1+2+…+1000的累加运算。
ADD R0,R0,#1
ADD R1,R1,R0
CMP R0,#1000
4、将内存中从0x30000FFF开始的100个字数据相加,其结果存于R3、R2中。
LDR R0,=0X
LDR R5 , [R0],#4
ADDS R3, R3,R5
ADDC R2, R2,#0
ADD R4,R4,#1
CMP R4,#100
5、编写一程序,查找存储器从0x开始的100个字中为0的数目,将其结果存到0x中。
LDR R0,=0X
LDR R1,=0X
LDR R2,[R0],#4
ADD R3,R3,#1
ADDEQ R4,R4,#1
CMP R3,#100
STR R4,[R1]
6、R0和R1中有两个32位无符号数,若R0&R1,则R0=R0-R1;若R0&R1,则R1=R1-R0;若R0=R1,则R1、R0保持不变。
SUBHS R0,R0,R1
SUBCC R1,R1,R0
7、试编写程序,实现计算2+4+6+8+…+2N的值。
LABLE EQU #0X2300000
MOV LABLE,#300
ADD R3,R3,#2
ADD R4,R4,R3
ADD R5,R5,#1
CMP R5,#LABLE
9、编程实现S3C2410工作模式的切换。
MRS R0,CPRS
BIC R0,R0,#&1F
ORR R0,R0,#&12
MSR CPSR_C R0
10、UART初始化编程。
LDR R0,=UFCON0
LDR R1,=0X0
STR R1,[R0]
LDR R0,=ULCON0
LDR R1,=0X3
STR R1,[R0]
LDR R0,=UCON0
LDR R1,=0X245
STR R1,[R0]
LDR R0,=PCLK
MOV R1,[R0]
填空20分;单项选择20分;名词解释12分;简答题20分;编程题28分。
跳转指令:
B BL BLX BX
B/BL{cond} label
BLX{cond} Rm/lable
MOV MVN 移位指令& 2
ADD ADC 加法指令 3
SUB SBC& 减法指令 3
RSB RSC 逆向减法 3
ORR EOR AND 逻辑 3
CMP CMN TST TEQ 测试 2
BIC 位测试 3
{cond} {s} Rd ,Rm
{cond} {s} Rd ,Rm Rn LSL #3
{cond} {s} Rd ,Rm,# LABLE
TEQ (NE,EQ)
MUL& 32 {cond} {S}& Rd, Rm
MLA& 32 {cond} {S}& Rd, Rm
SMULL/ SMLAL
UMULL/UMLAL
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 诺依曼还是睡眠博士好 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信