打印

读后感:ARM Cortex-M3处理器简介

[复制链接]
3374|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dld2|  楼主 | 2008-1-23 16:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
原文链接:http://www.zlgmcu.com/luminary/Stellaris/ARM-Cortex-M3.pdf

首先谈谈我对这个系列先入为主的感觉。
Cortex-M3是ARM7的升级版本。
个人认为:ARM7本身并不是完全针对MCU来设计的,但是众多芯片厂家以ARM7为内核做了很多32位MCU芯片。例如Atmel和NXP的ARM7系列。Cortex-M3是真正针对MCU应用来设计的,这一点在功能取舍和性能偏向上得到反映。

那么与ARM7相比较,Cortex-M3有哪些区别和特点呢?

加速设计:
哈佛结构替代ARM7的冯.诺伊曼结构。
    哈佛结构就是指令和数据总线分开。
    这样取指令和取数据可以同时进行。
    很适合将指令放在片内FLASH,将数据放在片内SRAM的MCU结构。
在ARM7的3级流水线之上增加了分支预测。
    减少了程序跳转时流水线被打断的时间消耗。
ALU支持硬件乘法和硬件除法。数学计算能力增强。
    单周期32位乘法。
Bit-Band技术:
    简单地说,就是增强了位操作性能。
    SRAM中有专门的Bit-Band区域,可以按位进行寻址(使用别名地址)。
    而且,这样的位操作是原子操作。这在实现互斥功能时有用。
    一些DSP运算专用的位操作指令,比如bit翻转。

节省存储器使用量的技术:
    位寻址是可以节省bool型变量的存储器使用的。
    ARM7的short变量要16位对齐、int变量要32位对齐。Cortex-M3不用对齐。
        这个问题,一般看法是,对齐可以简化设计。
        个人认为这个好处有限。
    指令集的优化。现在叫Thumb-2了。
        ARM7有两种指令集:ARM和Thumb,两种指令模式可以切换。个人感觉比较怪。

处理器模式的简化:
    我们知道ARM7有很多种处理器模式,目的主要应该是支持复杂的操作系统。
    Cortex-M3的处理器模式现在有两个:Thread模式和handler模式。
    Thread模式相当于用户模式了,有两种访问方式:有特权方式和无特权方式。

结构区别:
    ARM7是个纯内核,中断控制器和存储器接口是芯片厂家扩展的。
    Cortex-M3包含了中断控制器(NVIC)和存储器接口单元。当然,在结构上仍然可以看作核心和外围两个部分。

最最重要的改变:中断处理
    ARM7只有两个中断请求信号:IRQ和FIQ。
        对多个外部中断请求的支持是通过不属于ARM7的外部的中断控制器实现的。
        不直接支持基于优先级的中断抢占。
    Cortex-M3的中断控制器叫NVIC,是Cortex-M3的一个完整的部分。
        可以支持一个NMI和32个物理中断。可抢占,有优先级。
        中断向量表可重定位。
    中断处理时的寄存器保护采用基于堆栈的方式,在响应中断和退出中断时,硬件自动对寄存器进行压栈和出栈。
    在连续处理两个中断时,通过末尾连锁(tail_chaining)技术,减少压栈和出栈的操作。
    所以,中断响应的延时显著减少了。这个对控制系统来说很重要。
    当然,增加复杂性容易出BUG。有待观察。

存储器保护单元MPU:
    可支持操作系统对进程空间的保护。
    个人对此持保留态度。
关于操作系统:
    个人认为,linux和wince在这个处理器上是无法运行的。这是它的产品定位。
    其它喜欢在扁平(flat)内存模式下运行的RTOS,要看怎么移植了。未必能充分使用Cortex-M3的特性。

总线接口:
    有说法它目前不支持外部存储器接口。这个好象有点严重。待确认。

有了新架构的处理器,就看开发环境、调试工具、操作系统对它的支持了。


最后,俺才疏学浅,又喜欢望文生义。有错误大家指出或一笑吧,谢谢。

相关帖子

沙发
dld2|  楼主 | 2008-1-23 16:24 | 只看该作者

沙发自己坐

使用特权

评论回复
板凳
machunshui| | 2008-1-23 16:35 | 只看该作者

学习

学习.

在响应中断和退出中断时,硬件自动对寄存器进行压栈和出栈,
不错,
会大大的加快中断响应速度。

位操作也很好.

使用特权

评论回复
地板
lelee007| | 2008-1-23 20:07 | 只看该作者

这个应该能撼动51了吧

哈哈,期待
不过老是当单片机或者一直玩单片机感觉没什么意思

使用特权

评论回复
5
mohanwei| | 2008-1-23 20:23 | 只看该作者

不同的应用,要求是不一样的,撼动51还远远谈不上

使用特权

评论回复
6
香水城| | 2008-1-23 20:40 | 只看该作者

楼主说的不错,值得关注,顶!

说的不错,但不全对;不过对推广这个新的内核是非常有益的。

使用特权

评论回复
7
hotpower| | 2008-1-24 08:15 | 只看该作者

哈哈~~俺被震撼彻底地放弃了51~~~

使用特权

评论回复
8
dld2|  楼主 | 2008-1-24 08:23 | 只看该作者

香大侠,如果有硬伤还请指出

俺也怕误导观众。

谢谢大家的支持了。看了更详细的资料后俺会继续补充。

使用特权

评论回复
9
香水城| | 2008-1-24 08:37 | 只看该作者

回8楼:没有原则性的错误

有些需要使用中才能体会出来,有些东西还是让事实说话比较好,哈哈~~~


做个小广告:STM32是目前少有的带Cortex-M3内核的MCU之一,欢迎各位试用评估。

使用特权

评论回复
10
zlgmcu| | 2008-1-24 10:13 | 只看该作者

这幅表格最能说明问题

使用特权

评论回复
11
群星2008| | 2008-1-24 10:38 | 只看该作者

看到了吧:《ARM Cortex-M3处理器简介》(中文)还是老周翻译的

《ARM Cortex-M3处理器简介》英文原文是ARM公司撰写的。目前做Cortex-M3的有Luminary、ST等公司。但上baidu/google搜搜,发现只有老周把这篇**及时地翻译成中文,这足以证明老周的推广实力!

使用特权

评论回复
12
wlq_9| | 2008-1-24 11:06 | 只看该作者

11楼的人

有点EX.

使用特权

评论回复
13
qjy_dali| | 2008-1-25 13:29 | 只看该作者

到时候我一定要跑OS的,这样以后开发就更容易了,哈哈

使用特权

评论回复
14
平常人| | 2008-1-25 16:00 | 只看该作者

哈哈,11楼的言外之意是。。。。

“我整理翻译了这张表格,我比老周更有推广实力。”

使用特权

评论回复
15
dandywang| | 2008-1-28 09:49 | 只看该作者

呵呵,11楼和老周应该是一家的吧

据说STM32正在免费送开发板,有没有这事?

使用特权

评论回复
16
ruraliter| | 2008-1-28 12:28 | 只看该作者

有点意思

考虑移植一下来看看

使用特权

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

本版积分规则

74

主题

2442

帖子

3

粉丝