STM32F0 培训, 内核篇
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DSP, SIMD, FP 1.25 3 Yes
1-240 + NMI 8-256
8/4/0, 2/1/0 Yes (Option) Yes (Option)
No Yes Yes Yes Yes Yes Yes (Option) AHB Lite, APB Yes
Cortex-M系列各处理器的指令兼容性
Cortex-M0
V6M Thumb, Thumb-2 System Instructions
0.84 1
Yes 1-32 + NMI
4 4/2/0, 2/1/0
No No No Yes (Option) No Yes No No No AHB Lite Yes
Cortex-M3
v7M Thumb + Thumb-2
STM32F0 培训
2014年4月 上海
STM32F0片上资源一览
STM32F0
模拟外设
ADC
DAC
CMP
计数器
TIM
WDG
RTC
通信端口
SPI I2C USART
功能外设
TSC CRC CEC
基础、共用模块
Archi、Flash、PWR、RCC、EXTI、GPIO、DMA
内核 Core
2
Cortex-M0内核
Cortex-M系列的软件兼容性(1)
• 向上路径(M0->M3->M4)的移植直接了当
• Cortex-Mx内核的指令集是Cortex-My内核(x<y)指令集 的子集。软件可以直接移植过去,性能则随着MCU时 钟频率的提高以及冯诺依曼到哈佛架构的改进而得到 提升
• 推荐对代码进行重新编译 • 从M0内核升级到M3内核:重新编译可以充分利 用更高效的指令,比如硬件除法 • 从M0/M3内核升级到带FPU的M4内核:某些代码 需要使用intrinsic重新编写,以利用M4内核高级 的DSP/SIMD指令
• 微处理器架构
• 带跳转预测的3级流水线 • 1条 AHB-Lite总线接口
• 可配置的超低功耗模式
• 深度睡眠、唤醒中断控制器
• 针对广泛应用的灵活配置
• 可配置的中断控制器(带优先级的最多32个中断) • 不带内存保护单元MPU • 可选的调试&跟踪功能
M0 – 低成本的Cortex-M处理器
• 面向“低端”应用,替换8/16位MCU
• 和16位处理器差不多的门数 • 针对高端或处理密集型的应用,由于高代码密度所占用的存储空间小,而使得MCU价格比
大多数8/16位处理器更低 • 高性能,只比标准Cortex-M3架构的性能低25-30%
Cortex-M0与Cortex-M3相辅相成
Cortex-M3作为旗舰MCU处理器提供高性能
• 如果使用了汇编,某些指令不再被M0支持;对于C代码,某些指令如硬件除法,编译 器会自动调用C库函数来处理除法操作
• M0不支持非对齐数据传输 • M0不再具有M3所支持的位带操作 • 使用用户线程模式和MPU特性的应用则不能移植到M0内核上
Cortex-M0处理器的微架构
• ARMv6M架构
• Thumb-2指令 • 集成可配置的NVIC • 和Cortex-M3兼容
DMIPS/MHz Bus interfaces Integrated NVIC Number interrupts Interrupt priorities Breakpoints, Watchpoints Memory Protection Unit (MPU) Integrated trace option (ETM) Fault Robust Interface Single Cycle Multiply Hardware Divide WIC Support Bit banding support Single cycle DSP/SIMD Floating point hardware Bus protocol CMSIS Support
Cortex-M系列处理器
• 跨越传统单片机8/16/32位的界限 • 跨越所用应用的无缝架构 • 每个产品都针对超低功耗做了优化,且易于使用
Cortex-M0 Cortex-M3 Cortex-M4
“8/16-bit” applications
“16/32-bit” applications
“32-bit/DSC” applications
• 对于STM32家族内的产品,丰富的外设也相互兼容以 保证移植的顺畅
Cortex-M系列的软件兼容性(2)
• 向下路径(M3->M0)的移植需要注意
• M0内核的NVIC和SCB寄存器只能字访问,M3可支持字、半字、字节访问 • M3内核的某些NVIC和SCB寄存器在M0中没有
• Interrupt Active Status Register • Software Trigger Interrupt Register • Vector Table Offset Register • 某些 fault status registers
1.25 3 Yes 1-240 + NMI 8-256 8/4/0, 2/1/0 Yes (Option) Yes (Option) Yes (Option) Yes Yes Yes Yes No No AHB Lite, APB Yes
Cortex-M4
v7ME Thumb + Thumb-2,
优势在于高效、高性能
Cortex-M0更适合简单控制和通信
优势在于低功耗和低成本
注意:这里的功耗仅针对处理器本身;在整个系统级别上功耗相差无几
CORTEX-M0 ENERGY EFFICIENCY
CORTEX-M0ISED TO CORTEX-M3
Normalised Cortex-M3 performance and energy efficiency vs. Cortex-M0 for algorithm types. Energy efficiency based on Cortex-M3 and Cortex-M0 processor power estimates – ONLY reffers to CPU consumption, similar energy at system level
程序和开发工具都兼容
Cortex-M内核共同特性
针对微控制器应用
对功耗和硅片面积进一步优化
更适合低成本和低功耗的应用
发生中断和异常时自动保存现场
进出异常处理的软件开销很小
确定的指令执行时间
从确定性存储器运行代码时,指令执行的时间总是相同
Cortex-M各系列内核特性比较
Architecture Version Instruction set architecture
1-240 + NMI 8-256
8/4/0, 2/1/0 Yes (Option) Yes (Option)
No Yes Yes Yes Yes Yes Yes (Option) AHB Lite, APB Yes
Cortex-M系列各处理器的指令兼容性
Cortex-M0
V6M Thumb, Thumb-2 System Instructions
0.84 1
Yes 1-32 + NMI
4 4/2/0, 2/1/0
No No No Yes (Option) No Yes No No No AHB Lite Yes
Cortex-M3
v7M Thumb + Thumb-2
STM32F0 培训
2014年4月 上海
STM32F0片上资源一览
STM32F0
模拟外设
ADC
DAC
CMP
计数器
TIM
WDG
RTC
通信端口
SPI I2C USART
功能外设
TSC CRC CEC
基础、共用模块
Archi、Flash、PWR、RCC、EXTI、GPIO、DMA
内核 Core
2
Cortex-M0内核
Cortex-M系列的软件兼容性(1)
• 向上路径(M0->M3->M4)的移植直接了当
• Cortex-Mx内核的指令集是Cortex-My内核(x<y)指令集 的子集。软件可以直接移植过去,性能则随着MCU时 钟频率的提高以及冯诺依曼到哈佛架构的改进而得到 提升
• 推荐对代码进行重新编译 • 从M0内核升级到M3内核:重新编译可以充分利 用更高效的指令,比如硬件除法 • 从M0/M3内核升级到带FPU的M4内核:某些代码 需要使用intrinsic重新编写,以利用M4内核高级 的DSP/SIMD指令
• 微处理器架构
• 带跳转预测的3级流水线 • 1条 AHB-Lite总线接口
• 可配置的超低功耗模式
• 深度睡眠、唤醒中断控制器
• 针对广泛应用的灵活配置
• 可配置的中断控制器(带优先级的最多32个中断) • 不带内存保护单元MPU • 可选的调试&跟踪功能
M0 – 低成本的Cortex-M处理器
• 面向“低端”应用,替换8/16位MCU
• 和16位处理器差不多的门数 • 针对高端或处理密集型的应用,由于高代码密度所占用的存储空间小,而使得MCU价格比
大多数8/16位处理器更低 • 高性能,只比标准Cortex-M3架构的性能低25-30%
Cortex-M0与Cortex-M3相辅相成
Cortex-M3作为旗舰MCU处理器提供高性能
• 如果使用了汇编,某些指令不再被M0支持;对于C代码,某些指令如硬件除法,编译 器会自动调用C库函数来处理除法操作
• M0不支持非对齐数据传输 • M0不再具有M3所支持的位带操作 • 使用用户线程模式和MPU特性的应用则不能移植到M0内核上
Cortex-M0处理器的微架构
• ARMv6M架构
• Thumb-2指令 • 集成可配置的NVIC • 和Cortex-M3兼容
DMIPS/MHz Bus interfaces Integrated NVIC Number interrupts Interrupt priorities Breakpoints, Watchpoints Memory Protection Unit (MPU) Integrated trace option (ETM) Fault Robust Interface Single Cycle Multiply Hardware Divide WIC Support Bit banding support Single cycle DSP/SIMD Floating point hardware Bus protocol CMSIS Support
Cortex-M系列处理器
• 跨越传统单片机8/16/32位的界限 • 跨越所用应用的无缝架构 • 每个产品都针对超低功耗做了优化,且易于使用
Cortex-M0 Cortex-M3 Cortex-M4
“8/16-bit” applications
“16/32-bit” applications
“32-bit/DSC” applications
• 对于STM32家族内的产品,丰富的外设也相互兼容以 保证移植的顺畅
Cortex-M系列的软件兼容性(2)
• 向下路径(M3->M0)的移植需要注意
• M0内核的NVIC和SCB寄存器只能字访问,M3可支持字、半字、字节访问 • M3内核的某些NVIC和SCB寄存器在M0中没有
• Interrupt Active Status Register • Software Trigger Interrupt Register • Vector Table Offset Register • 某些 fault status registers
1.25 3 Yes 1-240 + NMI 8-256 8/4/0, 2/1/0 Yes (Option) Yes (Option) Yes (Option) Yes Yes Yes Yes No No AHB Lite, APB Yes
Cortex-M4
v7ME Thumb + Thumb-2,
优势在于高效、高性能
Cortex-M0更适合简单控制和通信
优势在于低功耗和低成本
注意:这里的功耗仅针对处理器本身;在整个系统级别上功耗相差无几
CORTEX-M0 ENERGY EFFICIENCY
CORTEX-M0ISED TO CORTEX-M3
Normalised Cortex-M3 performance and energy efficiency vs. Cortex-M0 for algorithm types. Energy efficiency based on Cortex-M3 and Cortex-M0 processor power estimates – ONLY reffers to CPU consumption, similar energy at system level
程序和开发工具都兼容
Cortex-M内核共同特性
针对微控制器应用
对功耗和硅片面积进一步优化
更适合低成本和低功耗的应用
发生中断和异常时自动保存现场
进出异常处理的软件开销很小
确定的指令执行时间
从确定性存储器运行代码时,指令执行的时间总是相同
Cortex-M各系列内核特性比较
Architecture Version Instruction set architecture