程序在norflash中执行的速度?

tempusr   2009-3-23 15:15 楼主
版主,您好
请问一下,程序在nor flash中执行的速度为什么会比在内部flash中的执行下降很多呢,同样的代码,是不是读取指令的速度不够?

回复评论 (14)

看看STM32的整体框图,这就是哈佛结构的特点

关于哈佛结构的优点我就不说了。

内部Flash的接口缓冲也起了很大作用,请看我的博客:【分析】STM32从Flash中运行程序的时序分析 
点赞  2009-3-23 15:40

相同的代码的跑马灯程序,

我用相同的代码的跑马灯程序,
下载到内部flash中运行与下载到norflash中运行速度差的太远。
怎么解决呢,是不是我还有什么需要设置的东西呢?
点赞  2009-3-23 17:40

请看2楼的图,这是哈佛结构的特点

                                 程序放在片外,肯定比放在内置Flash的运行速度慢。
点赞  2009-3-23 17:48

偶都是加载到RAM里跑

                                  
点赞  2009-3-23 20:37

nor

                                 的速度在那里摆着呢.除了加载到快速的RAM里面,基本上就没有办法了.
点赞  2009-3-24 09:40

请问ls,怎么把nor中的数据考到内部flash中执行啊?

                                 谢谢
点赞  2009-3-24 10:14

没人这么用的楼上!

                                  
点赞  2009-3-24 10:21

要求速度的部分尽量加载到RAM里跑

                                  
点赞  2009-3-24 10:37

方法

                                 地方看见了饭
点赞  2009-3-24 19:15

还没有测试过相关的差异,差多少?

                                  
点赞  2009-3-24 22:07

如果再把程序掉到SRAM中执行的话…………

如果再把程序掉到SRAM中执行的话,要就要外扩SRAM了,而且要很大的空间。因为既然用norflash存程序代码,那就意味着程序代码应该不小,RAM小了还不行,除非代码程序能分块的执行,也就是分块的调入SRAM中。
这样做好烦麻哟
所以可能NORflash的用处可能最大用处在于存数据用,何况一般的情况下512K的代码也差不多了。
如果在NORflash中直接执行的话,那速度太慢了,STM32的好多好处就没有了,我认为MCU速度还是很重要的。
不知我理解的对不对?
点赞  2009-3-25 19:14

把常数表

放到外部nor里面,程序放到片内flash运行,不就结了.
一般片内的flash足够用了.大的一般都是常数表.
点赞  2009-3-25 20:50

最好不要把程序放在norflash中

片外程序不保险,很容易被盗版,(除非你的程序没有盗版的意义)
片内虽还是可能被盗版,但成本大得多,有一定意义
norflash容易有坏区,放数据较为合理
内部ram用做程序,恐怕你得考虑"穿小鞋"带来的"迈步"问题,即大程序的分块和跳转切换问题
点赞  2009-3-28 13:36


同意 楼上看法函数切换很难受。我昨天算感受到了。
有解决办法就是都用函数指针,不过容易出错
点赞  2010-5-7 09:48
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复