打印

(修改)导致STM32芯片指令速度变化的问题分析过程

[复制链接]
楼主: ifreecoding
手机看帖
扫描二维码
随时随地手机跟帖
41
kseeker| | 2012-4-3 09:17 | 只看该作者 回帖奖励 |倒序浏览
37# ifreecoding

我觉得我们眼光应该放的远一点。嵌入式这东西这几年进步很快,复杂度已经超过当年的PC了,下面是cortex-a8的介绍,这东西的开发板现在卖的很火:
顺序,双发射,超标量微处理器内核,13级主整数流水线,集成的L2缓存,优化的L1缓存,动态分支预测。

如果你一开始就把自己的芯片当作一个“高级”的芯片“降级”使用,自然就能避免很多问题。在PC上你还会认为这是个Bug吗?不会吧?那么在stm32上出了这个东西,应该想到,stm32引入了某种同PC相同机制,具体原因是什么你甚至不需要去关心。STM32对内部Flash的访问那就是一个缓存。但这是否是唯一可能的原因呢?也许是,也许不是,这对开发来说并不怎么重要,重要的是同一指令执行时间不一定相同。

使用特权

评论回复
42
kseeker| | 2012-4-3 09:19 | 只看该作者
低级的MCU暂时还算简单,但我想用不了几年,诸如超标量之类的的东西就会成为标准配置。我的原则是把MCU看作低级的PC,而不是高级的“单片机”。

使用特权

评论回复
43
kseeker| | 2012-4-3 09:52 | 只看该作者
我对自己的评价是“还算合格”,也正因为如此,当我碰见一些系统奇怪的行为时,我会告诉自己,这里有些自己不知道的原因,而不是言之凿凿的说人家的东西有Bug。系统的bug是极为罕见的,9成9都只是自己不知道某些东西而已。
就好像前一阵子我按照datasheet上的参考设计做的电源模块效率奇低,我认为是自己水平不行,而不会说:Linear的东西太烂了。

使用特权

评论回复
44
ifreecoding|  楼主 | 2012-4-3 13:24 | 只看该作者
學習一下~
但為何不用sys tick?雖然會比較吃系統資源,但它卻是很準確的。
willwu0327 发表于 2012-4-3 08:49


我使用了sys tick,前面我说了我写了2个能调度的小操作系统内核,使用sys tick来触发tick调度,为了方便观察任务切换,我就用delay函数来延迟时间,模拟任务正在工作,当然真实的任务是不会这么工作的,只是为了方便观察任务切换。

使用特权

评论回复
45
ifreecoding|  楼主 | 2012-4-3 13:26 | 只看该作者
我对自己的评价是“还算合格”,也正因为如此,当我碰见一些系统奇怪的行为时,我会告诉自己,这里有些自己不知道的原因,而不是言之凿凿的说人家的东西有Bug。系统的bug是极为罕见的,9成9都只是自己不知道某些东西 ...
kseeker 发表于 2012-4-3 09:52


别说系统bug是极为罕见的,只能说你见的不多。编译器、芯片都是人做的

使用特权

评论回复
46
Simon21ic| | 2012-4-7 10:00 | 只看该作者
本帖最后由 Simon21ic 于 2012-4-7 10:03 编辑

终于看到汇编了,研究看看

可以做一个测试,在异常代码的循环前插入一个nop,确定确实是由于循环地址不同引起的,还是由于函数地址不同引起的。

使用特权

评论回复
47
秋天落叶| | 2012-4-7 19:19 | 只看该作者
分析的很有道理

使用特权

评论回复
48
yybj| | 2012-4-7 19:32 | 只看该作者
鼓励独立思考

使用特权

评论回复
49
bingye1086| | 2012-5-2 18:48 | 只看该作者
遇到类似的问题,赞同LZ 的观点

使用特权

评论回复
50
weikezhi| | 2012-10-19 15:31 | 只看该作者
支持楼上的说法。

使用特权

评论回复
51
xiangen| | 2014-6-23 15:59 | 只看该作者
学习了!

使用特权

评论回复
52
aydf369| | 2014-8-5 17:11 | 只看该作者
遇到类似的问题,赞同LZ 的观点,加一个NOP其他地方延时就不一样!

使用特权

评论回复
53
STM32初学者| | 2014-8-30 09:32 | 只看该作者
这个帖子不错,学习了

使用特权

评论回复
54
grace75| | 2014-8-30 10:17 | 只看该作者
这么测量准确不?

使用特权

评论回复
55
1398117027| | 2014-8-30 11:50 | 只看该作者
学习下!

使用特权

评论回复
56
xwuzi| | 2014-10-10 10:08 | 只看该作者
不知道LZ用的什么反汇编工具?可否分享一下?:D

使用特权

评论回复
57
bear1| | 2014-10-10 10:33 | 只看该作者
延时思路似乎不太对啊

使用特权

评论回复
58
Avrsilmx| | 2015-10-24 14:33 | 只看该作者
先mark。:Q好复杂 看不懂啊

使用特权

评论回复
59
小柚子| | 2024-3-22 12:24 | 只看该作者
请问楼主问题解决没,我也遇到同样的问题

使用特权

评论回复
60
szt1993| | 2024-3-25 14:40 | 只看该作者
是不是跟触发有关系或是表象这样,其实还有深层的原因

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则