微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > ARM Cortex-M0与Cortex-M0+到底有什么区别呢

ARM Cortex-M0与Cortex-M0+到底有什么区别呢

时间:10-02 整理:3721RD 点击:
ARM Cortex-M0与Cortex-M0+到底有什么区别呢

1. 最引入注意的, 是 pipeline 的改变, 使用了在 8bit mcu 中常见的 2 stages pipeline. 我个人甚至怀疑这可能是 arm 的第一款 2-stage pipeline 的 architecture(未个人查证).

2. 2-stage 将带了实际的功耗的减小. 具体原因比方说, 因为更多 stage branch 指令可能会带了 fetch 的浪费. 而访问 flash 往往是导致 uController 功耗增加的重要原因之一.

3. m0+ 的文档在 arm info 上的公布是 2012年的事儿(就是近期), 这可能意味着 nxp, freescale, st 等推出的 m0+ 将带有更多的先进工艺(我特别指的是功耗).有理由相信, m0+ 的功耗可能比 m0 还要小 1/3 (动态功耗). 而个别厂家的静态功耗技术各有不同. 以上信息可能暗示

4. m0+ 引入了一个新的总线是 one-cycle io bus. 这个崭新技术, 应可使得我们在 1 cycle 操作 STR 的指令(想想看没有任何延迟, 随用随有, ahb-lite 同时可以做fetch 下一个指令毫无耽误), 对 fast io memory 的 peripheral address 进行操作. 越快的io 速度意味 io 性能的提高与系统的能耗降低(我们可以更快完成 what we want 后进入 sleep). 当然 fast io register 我想应该属于 peripherals, 所以显然的不能利用 io register 直接进行 uprocessor 的任何 data processor. 我们只能 ldr/str(这是我个人的发挥...).

5. 另外就是 mpu. 在 m0+ 的 ug 中, 首次作为 option 存在... 但是实际上, 类似的 optional 应该统统都被 m0+ 的生产厂家(nxp, freescale, st等)采纳吧. mpu 的作用就不提了, 在 embedded os 中, 它协助我们硬件方式而不用软件方式地完成对 memory 的非法引用的管理, 并明显的特别对 task stack 保护在硬件实现上提供便利(具体原理可以阅读 Jean 所著"嵌入式实时操作系统 uC/OS-III", 宫辉等译, 实际上 Jean 就是 uC/OS 的代码原作者).

6. m0+ 支持 MTB.当然的, 系统任何增加的新功能都会带给我们额外的便利, 首次的, 在 m0 基础上,我们现在 debug 甚至可以开始追踪更早先的 instruction flow information.

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top