大家好我是小火,想学习单片机的同学可以关注、私信我或者在评论区回复我要入门,我们经常会看到Cortex-M3经常伴随着STM32出现,那么Cortex-M3是什么东西呢?今天我们就来分享一下Cortex-M3是什么。Cortex-M3 处理器是STM32 的核心,作为一个标准化的微控制器结构拥有一个32 位CPU,它的结构是并行总线,嵌套中断向量控制单元,调试系统还有标准的存储映射。

stm32与cortex-m3的关系(的核心处理器Cortex-M3)(1)

嵌套中断向量控制器(Nested Vector Interrupt Controller,简称NVIC)是Cortex-M3 处理器中一个非常关键的组件,它的主要作用是为Cortex-M3 的微控制器提供了中断响应能力和中断架构,并且做为中断入口提供给中断源使用,每个中断源是可以赋予单独优先级的。运用NVIC 可以使中断响应速度非常快,从收到中断请求到执行中断任务开始只需要12 个周期。

因为Cortex-M3 内核对堆栈是自动处理机制所以才能拥有这么快的响应速度,这个机制是在CPU 内部的通过固化微代码实现的。另一方面,在中断请求连续出现的情况下,NVIC 使用“尾链”这个功能,使连续而来的中断可以在6 个时钟周期内得到服务。在中断的压栈阶段,更高优先级的中断可以不耗费任何额外的CPU 周期就能完成嵌入低优先级中断的动作。我们开发者可以通过设置CPU 自动进入低功耗状态,可以用中断来唤醒,CPU 在中断信号出现之前会一直处于睡眠状态。

Cortex-M3 的CPU 支持两种运行模式:线程模式(Thread Mode)与处理模式(Handler Mode)

这两种模式都拥有各自独立的堆栈。它们的目的是为了开发人员可以进行更为精密的程序设计,对实时操作系统的支持也就更好了。Cortex-M3 处理器还包含了一个24 位可自动重装载定的定时器,可以为内核(RTOS)提供一个周期中断。

ARM7 和ARM9 都有两种指令集(32位和16位指令集),而Cortex-M3系列处理器支持Thumb-2 指令集。由于Thumb-2 指令集融合了Thumb 指令集和ARM 指令集,从而让32位指令集的性能和16位指令集的代码密度之间取得了平衡。而且,ARM Thumb-2 专门为C/C 编译器设计,所以Cortex-M3 系列处理器的开发应用可以全部在C 语言环境去操作。

本期先分享到这里,想要学习单片机编程的同学可以持续关注小火,回复“我要入门”,与我们一起成长,喜欢的可以点个赞关注我们!

,