经过chwb的几番提点,才发现自己看问题还是没有入门,我也终于见识到了高手看问题的角度和方法了。
我终于狂查资料,写下了以下信息:
Cortex-M3是新兴起来的一种ARM7的核,而ARM7TDMI是一种传统的经典的ARM内核。我们就抛开这一切,来比较一下两则的异同。
我们就在以下平台上比较吧:
STMicoelectronics:STM32F101 36M极限频率,6到16K SRAM,32到128K flash , 1*12位ADC , 80个快速IO口。
NXP:LPC21303 ,、,70MHz, 8K SRAM, 2 UART , 2 I2C , 8*10位ADC ,32k FLASH。
而且价格上STM32要比NXP系列要贵。
这样看来是不是NXP2103占据一定的优势呢?它便宜,更快,有更多的AD转换,但是我们下面将从另外的方面来比较一下,看看NXP的优势真的是不是那么明显?
我们再比较一下ARM7TDMI同ARM Cortem-M3,我们将发现以下有趣的现象:
Cortex-M3主要针对价格第三的应用场合,主要是代替性能强大的8位或者十六位微控制器的市场。
最值得注意的地方是整数运算,Cortex是运行在 1.25 DMIPS/MHz,而ARM7TDMI则是在0.95(在thumb指令下是0.74)DMIPS/MHz,如果我们再交以<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> DMIPS/MHz写入,则会从ATM7TDMI得到66.5 DMIPS,而从Cortex得到62.5 DMIPS,如果ARM7需要运行在thumb模式(如果代码空间有限的话),ARM7TDMI仅仅才51.8 DMIPS,使Cortex运行显得更快了(如果代码空间足够的话就显现不出来)这就算两则打平了。
第二是看两则的电源管理和功耗。ARM7TDMI内核有0.28mW/MHz,而Cortex是0.19 mW/MHz,在片内,LCP2103在1.8V的时候是转换到了50mA,(如果我的排除一切外围电路,只留PLL工作),在Cortex内核中我们得到的是更小的电流。
第三,在内核结构方面,NXP是冯诺依曼结构,而Cortex则是哈佛结构,它将代码区和数据区分开了,多了分枝预测,在运行for等语句的时候有优势,故有一定的优势。而且,Cortex支持一些比如位翻转的DSP指令,这在运行比如DFT的时候显得无比的有用。Cortex还包含了分枝结构,较大地减少了中断等等时间(比ARM7TDMI改进了2.5倍),这无疑Cortex占据了优势。
还有一些其它的方面值得注意,比如:Cortex有一些片内集成的模块,但这些在LPC芯片上要在外围另外接。比如:LDO,片内温度传感器等,这些功能看起来不怎么样,但是如果我们的PCB板面积有限的话,为节省外部的空间,这些功能就很重要了。第二,频率也显得比较重要,Cortex提供了50M频率输出,但是LPC的PCC只能够提供内部时钟倍频。
结论:两则还是各有千秋,所以,我们在选择型号的时候还得慎重。
(大部分根据英文翻译而来,如果有什么不妥,还请指出来)
daiqiumiao_806246054 2008-8-15 23:24
用户412121 2008-8-14 13:23
jizzll_617398179 2008-8-4 15:42
用户161023 2008-8-3 21:27
用户160109 2008-8-2 18:29
用户79986 2007-7-7 16:50