1167_ARM CORTEX-M0了解

40 篇文章 15 订阅

    全部学习汇总:https://github.com/GreyZhang/g_arm_cores

    CORTEX-M0的内核是一个32bit的RISC指令集架构。

    早期的ARM设计其实是在PC领域的,但是随着ARM在比如说手机这样的电池供电的系统中越来越流行的时候,ARM也开始向MCU转换。ARM7可能是最早用于设计MCU的一个内核,自带RAM、Flash以及一些其他的外设。而Atmel AT91以及ST的STR7可能是最早一批使用ARM核做MCU设计的。

    由于最初的目的是PC,ARM在设计上其实跟8051等架构有很大的区别。ARM只是一个内核而不是一个完整的MCU。

    由于最初的设计目标是微处理器而不是MCU,ARM7TDMI-S不包含任何GPIO、ADC、UART等外设的设计。采用这个内核做高端MCU的半导体厂商不得不去把大量的外设集成到ARM AHB总线上去。

    基于这样的条件,飞思卡尔以及ST都是借用了大量自己单片机的外设设计而atmel则是从头重新设计。ST在外设设计上,定时器是经过了重新设计的。

    如果在不同厂商的ARM MCU之间做切换,基本上没有什么兼容性,甚至说外设会是完全不一样的。

    M0系列只支持16bit精简指令集的一个子集,因此大小只有M3的三分之一,但是有一个完整的32bit ALU以及硬件乘法器。

    M0+是M0的一个改进,支持更快的两循环分支,因为流水线从3级改成了2级。可选择单循环的GPIO以及MPU等。此外还有一个Micro Trace Buffer,MTB,这是一个我之前没接触过的概念。

    ARM MCU的两大问题:1,代码的密度太低,这意味着同样的功能设计可能需要更多的存储。 2,ISR的延迟比较高,72MHz的32bit ARM甚至不如16MHz的八位机。后面这一条的确是让我吃惊了一下,没想到这部分做的这么弱。

    这下子似乎又多了一个理由,为什么Arduino会依然活着而且活得这么好,毕竟在实时性上还是有优势的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值