Q1: Cortex-M3是什么?
A: 它是ARM在重视MCU市场后,设计的一个用于32位单片机的处理器内核。Cortex-M3一经推出就得到整个业界的追捧,其先进的架构和很多突破性的特性更是促使MCU业界迎来“新生代”。Cortex-M3对应的ARM架构版本号是ARMv7M(注意,不要与ARM7混淆,ARM7对应的ARM架构版本是ARMv4T)。和以前一样,ARM自己并不生产Cortex-M3芯片,而是由授权给与ARM合作的半导体厂家,并由它们根据自己的强项添加不同的片上外设,制造出各有千秋的Cortex-M3芯片。
Q2: 现在有哪些比较好的资料可以学习Cortex-M3?
A: 主要有三类文档
1. ARM提供的官方权威文档。主要的两本是《Cortex-M3 Technical Reference Manual》以及《ARMv7-M Architecture Application Level Reference Manual》。前者有周立功先生组织翻译的中文版。不管怎么说,这两本资料都是权威到“古文观止”级的,但同时也是天书,绝对能让大多数新手看得“老虎,老鼠,傻傻分不清楚”。推荐大家把它们作为后备的参考资料,待到遇到疑难杂症时再去求助它们。
2. 其他人写的讲解Cortex-M3的书籍。目前最著名的一本是《The Definitive Guide to the ARM Cortex-M3》。它从零开始讲,但又不知不觉把我们带到很深,阅读时强烈推荐顺序阅读。我翻译了本书,中文版名为《Cortex-M3权威指南》,并且把电子版放到了本站上。该电子版是一个初稿,里面肯定还有一些错误。我已经和北航出版社联系好本书的出版,大约是2008年11月,届时会尽可能改正错误并进行大量的润色。
3. 每个提供Cortex-M3芯片的厂商,也会提供芯片的datasheet、用户manual、外设驱动程序库、应用笔记等。但这些资料更侧重于具体讲解如何使用这款芯片,甚至是直接就可以移植的代码,它们不以讲解Cortex-M3本身的知识为重点。
Q3: Cortex-M3有哪些优点值得让我成为它的粉丝?
A: 这是个大问题。在这里只简要地说明几个重要的。
1. 从性能指标上讲,它高性能,低功耗,实时性好,调试机制完善、代码密度高、更对C程序的品位、带硬件乘除法、位操作强大……
2. 从商业模式上讲,它是开放的。有很多厂家提供CM3芯片。因此东方不亮西方亮,不会因某款芯片停产就陷入困境。而且竞争的环境也使价格更平易近人。
3. 从承前毖后上讲,它的指令集和开发环境都同以前的ARM产品一脉相承,转型成本低。
4. 最后还有一个最重要的,也可以认为是前3条的结果:它正一路飙红。这意味着容易找到知音,心里话有处说,本版面也力争做到一个讨论热烈、每个人都能积极各抒己见的地方。
Q4: 目前有哪些半导体厂家在提供Cortex-M3芯片?
A: 截至2008年7月18日,比较知名的,已经提供Cortex-M3芯片的有(按提供日期排序)LuminaryMicro公司,ST公司。
即将提供Cortex-M3芯片的还有ATMEL和NXP。它们已经把宝宝的名字取好了:ATMEL的以AT91SAM3开头,NXP的以LPC1000开头。我估计还有其它很多半导体厂商也在酝酿中。
每个厂家生产的CM3芯片都有自己的强项和特色,相信厂家的网站会不厌其烦地娓娓道来的
Q5: Cortex-M3现在正处于生命期的哪个阶段
A: 如果说Cortex-M3是一颗明星,它正处于进入“主星序”的阶段。如果说Cortex-M3是一个漂亮的小姑娘,她正从童年走向青年,但已经是魅力四射万众瞩目了。
Q6: Cortex-M3芯片大约卖多少钱?
A: 因为定位是MCU(单片机),所以无论脚数和价格都与中高档8位单片机在同一档次上。因为CM3内核占用硅片面积仅不到ARM7的1/4,所以比ARM7要便宜。决定芯片价格的主要还是存储器和外设特性。欲知最新详情,还请查阅半导体厂家的网站。
Q7: 如果使用Cortex-M3芯片,需要哪些开发工具?
A:
1. 在开发环境的选择上,可以使用KEIL出品的RealView MDK;还有IAR的Embedded workbench;亦可以使用codesourcery提供的免费GCC工具链。
2. 在仿真器的选择上,MDK标配ULINK2/ULINK-ME;IAR标配J-LINK。此外,半导体厂家也往往设计自己的仿真器,如ST公司的ST-LINK。
3. 在RTOS的选择上,非常丰富。主要是ARTX-ARM, CMX-RTX, PowerPac, threadX, FreeRTOS, uC/OS-II等。另外,来自日本的优异开源操作系统T-Kernel(TRON)也有望可以使用。
4. 在开发/评估板的选择上,国内主要有深圳英蓓特、南京万利、上海沁科、武汉力源等公司提供板子。如果手头富裕的话也可以使用ST的原装板。又因它与单片机的脚数差不多,有点PCB基础的朋友们也可以自己画板。
Q8: Cortex-M3难不难,有什么好的学习方法?
A: CM3是新生代32位处理器内核,如果非要了解CM3的每根毛孔不可,肯定是要学习很多内容的。但是,如果有单片机基础和C语言基础,只需了解很少很表面的东西,就可以开始做实验和开发项目了。动手是极其重要的。当年超女敢唱就会红,这里也一样,敢玩就会玩!其它问题,可以“边干边学”——连Linux都可以《边干边学》。在学习和工作的过程中如果碰了钉子,再参考大部头的资料也不迟。CM3的设计使得它与C语言是天仙配,再加上开发工具的智能功能,甚至让你不需要写一句汇编。因此,CM3是个上手容易,但又博大精深的小尤物。当你作为“唯物主义”者时,可以很快释放它的能量变成财富;而当你成为它的粉丝后,更可以发现它时常能激发你的创作灵感,用一次次的新惊喜来刷新易逝的感情。
Q9: 目前市面上还有哪些其它32位的,定位在MCU市场的处理器内核?
A:
ARM有ARM7
ATMEL有“AVR32”
Microchip和MIPS有“M4K”(做成了PIC32单片机)
FreeScale有“ColdFire”
日本瑞萨公布了RX系列的设计指标,指出2009年将有产品
ARM还有高端32位嵌入式处理器内核Cortex-R4/Cortex-R4F
Q10:你如何看待这些32位内核之间的关系,它们的涌现说明了什么现象?
A: 竞争肯定是大家都能想到的主打歌。虽然Cortex-M3作为通用处理器内核,其厂商支持度和公众关注度最高,但其它内核也有自己的独到之处,谁也不是谁的超集或子集,谁也不是“万能供血者”。每个人在选择品牌时,除了对各内核性能的主观认识,还与自己的行业风俗、使用经验、日久生情、初次邂逅以及项目机会有关。而这些内核的涌现,尤其是最新的Cortex-M3、M4K以及孕育中的RX,正推动8位/16位MCU市场继8051之后的再次蜕变——迎来以32位处理器为潮流的“美丽新世界”。因此它们之间也是互相推动的。