STM32内部架构
ST公司负责设计除内核以为的硬件,ARM公司负责设计内核架构。ARM公司设计了许多内核架构,不同STM32系列芯片对应的架构也不一样,例如F103系列采用的是Cortex-M3架构,指令集相较于M4会更精简一些。
STM32 内核外设,片内片外外设三者之间的区别
早起由于IC集成工艺不发达,很多东西都是外设的,比如PWM、ADC、CAN等DSP芯片,原本都是需要芯片外接的,即使是现在,仍然有独立的ADC芯片,比如ADS8364等等。但是现在,PWM、ADC等等东西都已经集成在DSP芯片内,当然,无论如何,芯片总还是会需要外接一些设备实现某种系统,为了与那些外设相区别,就将集成在芯片内,但是又不属于芯片本身(比如DSP,是一种微处理器,因此芯片中不属于微处理器的部分都是外设)的称为“片上外设”。
举个例子,我们知道STM32单片机是ST公司基于Contex-Mx开发生产的芯片,而ST公司用ARM内核设计芯片的过程中添加的独立于内核的东西(比如串口模块、Flash、IIC模块、SPI通信模块、ADC、DAC模块等等)对于内核来说就是“外设”,由于是集成在芯片内部的,所以叫片上外设。我们拿到ST公司设计生产的STM32芯片,开发各种应用系统,在我们自己开发的系统上独立于STM32芯片的外部设备(比如显示屏、SD卡等)都是片外外设。
而内核外设是指,在内核中的外设,例如STM32中的SysTick—系统定时器是属于 CM3 内核中的一个外设,内嵌在 NVIC 中。