随笔 - 26,  文章 - 0,  评论 - 0,  阅读 - 6185

自从研究stm32以来,对mcu的运行速度一直没有一个明确的概念,困惑一直卡在这,很烦,最近有了一点心得,记录一下。

stm32的官方数据为1.25MIPS/MHZ,即每秒执行的汇编指令数应该是主频的1.25倍。

stm32f103  72M主频,所以一秒执行90M汇编指令,

stm32H743 480M主频,一秒的指令只会大于600M指令,因为有cache的存在。

执行一条c语言指令大概花费10~100ns(f103),那么H7的性能只会高于100/(480/72) = 15ns,因此,stm32 h7的性能至少为一秒50M的C语言指令。

stm32 f103的中断频率性能极限是500KHZ,H743的中断频率极限为12.5MHZ。

因此如果f103到了1K以上的中断频率也许就需要注意了,H743的则应该是10K。如果有些周期性中断中断频率达到了1K以上也许就应该重点注意它。

 

 

 

中断的触发实时的,在中断信号产生之后的一个时钟周期内(对应外设的内核时钟)中断状态寄存器就会被置位,因此中断信号的产生与被识别到基本是无时间差的,

中断寄存器在外设中,其触发nvic中断请求线,到mcu内核收到中断请求,这大概有一些时间差(很小,应该也可以忽略不计)。

mcu内核接收到中断请求,立刻开始处理中断,它需要

1.读取中断向量表,

2.跳转到中断处理函数,

3.保存寄存器,

4.读取中断函数里的第一条指令

直到开始执行,在内存零延迟的情况下(D-cache,I-cache, 即cpu在一个时钟周期内完成存取动作),这些时间统称为interrupt lentcy---中断延迟,

在《Cortex M3与M4权威指南》里明确为12个时钟周期。

 

关于H7的延时未查到,应该也是12个时钟周期吧。

 

posted on   __诗酒趁年华  阅读(3089)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示