国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

STM32的代碼,跑在RAM里快?還是跑在Flash里快?

發(fā)布時(shí)間:2009-11-25 18:04    發(fā)布者:STM32
關(guān)鍵詞: Flash , RAM , 代碼
這肯定是很多人關(guān)心的問題,下面通過一個(gè)例子看看會(huì)有什么樣的結(jié)論:

測試手段如下:

主循環(huán)一直在做一個(gè)變量的自加(sum1++),當(dāng)然前提保證不會(huì)溢出。

Cortex-M3內(nèi)部的Systick計(jì)數(shù),以一秒鐘為限,這個(gè)sum1的數(shù)值大小,可以判斷哪種方式比較快。為了嚴(yán)密,我們觀察第一秒到第二秒之間的計(jì)數(shù)效果;而不是從第0秒到第1秒(因?yàn)槭鼓躍ystick到真正開始執(zhí)行sum1++可能有間隙)。在第一次進(jìn)入Systick的ISR時(shí),記錄下sum1的值;第二次進(jìn)入Systick的ISR時(shí),再次記錄sum1的值,兩次值之差即為一秒鐘間隔中sum1執(zhí)行了多少次自加。由此看出哪種方式比較快。

同樣的測試前提:Prefetch Buffer Enable + Flash Latenty="2" (根據(jù)Flash Programming Manual中要求的那樣,當(dāng)48MHz
測試結(jié)果如下:

不對(duì)代碼優(yōu)化,在RAM中執(zhí)行程序:sum1計(jì)數(shù)69467/秒
不對(duì)代碼優(yōu)化,在FLASH中執(zhí)行程序:sum1計(jì)數(shù)43274/秒 (Flash里跑得慢)

/***********循環(huán)體內(nèi)代碼為N個(gè)以下的block*************/
(1)LDR R0,[PC, #0x154]
(2)LDR R1,[PC, #0x154]

(3)LDR R1,[R1,#0]
(4)ADDS R1, R1,#0x1

(5)STR R1,[R0, #0]

    ......
/****************************************************/

打開速度優(yōu)化開關(guān),在RAM中執(zhí)行程序:sum1計(jì)數(shù)98993/秒
打開速度優(yōu)化開關(guān),在FLASH中執(zhí)行程序:sum1計(jì)數(shù)115334/秒 (Flash里跑得快)

/***********循環(huán)體內(nèi)代碼為N個(gè)以下的block*************/
(1)LDR R1,[R1,#4]
(2)ADDS R1, R1,#0x1
(3)STR R1,[R0, #0]
    ......
/****************************************************/

結(jié)論就是:

1)程序運(yùn)行在RAM里速度快還是運(yùn)行在Flash里速度快,不是絕對(duì)的一概而論的,取決于代碼;

2)就以上兩種具體的代碼情況來說,我覺得無優(yōu)化時(shí),如果在Flash里執(zhí)行:(1)(2)的取指(讀flash)->譯碼->執(zhí)行 (讀flash);取指和執(zhí)行階段flash的目標(biāo)地址不是連續(xù)的,因此是non-sequencial access,所以會(huì)很慢;
打開優(yōu)化時(shí),(1)(2)(3)都不會(huì)造成flash的non-sequential access,所以在flash里的優(yōu)勢(取指和取數(shù)據(jù)走不同的總線ICode和DCode以及Prefetch)就體現(xiàn)出來了。

再進(jìn)一步的分析,又有這樣一些結(jié)論:

沒有優(yōu)化時(shí),指令執(zhí)行時(shí)要到Flash中取常數(shù),結(jié)果造成指令預(yù)取隊(duì)列的取指中斷,取完常數(shù)后需要重新填充指令預(yù)取隊(duì)列,而Flash訪問需要插入等待周期,當(dāng)然時(shí)間就比較長了。

經(jīng)過代碼優(yōu)化后,指令執(zhí)行時(shí)不用再到Flash中取常數(shù),指令預(yù)取隊(duì)列不會(huì)被打斷,而Flash訪問需要插入等待周期的效應(yīng)被下面貼子中介紹的取指緩沖區(qū)抵消,所以自然速度就快了;而這個(gè)時(shí)候在RAM中執(zhí)行反而慢了是因?yàn)镽AM不在ICode總線上,從RAM取指需要繞一圈,當(dāng)然要比在ICode總線上的Flash慢了。

關(guān)于Flash的性能,請(qǐng)看我的另一篇分析:【分析】STM32從Flash中運(yùn)行程序的時(shí)序分析

另外,STR9與STM32的總線架構(gòu)是一樣的,這里有一個(gè)在STR9上實(shí)現(xiàn)的FFT函數(shù)的實(shí)測數(shù)據(jù),可以進(jìn)一步說明在Flash中運(yùn)行代碼可以比在RAM中快!

在ST的網(wǎng)站上有一個(gè)DSP的函數(shù)庫,這是它的文檔《STR91x DSP library (DSPLIB)》,在這篇文檔中有一節(jié)討論FFT運(yùn)算速度的,那里給出了實(shí)際的運(yùn)算時(shí)間比較,摘錄如下:

Radix-4
Complex FFT     Operation Mode     Cycle Count     Microseconds
64 Point     Program in Flash & Data in SRAM     2701     28.135
64 Point     Program & Data in SRAM     3432     35.75
64 Point     Program & Data in Flash     3705     38.594
256 Point     Program in Flash & Data in SRAM     13740     143.125
256 Point     Program & Data in SRAM     18079     188.323
256 Point     Program & Data in Flash     19908     207.375

最初發(fā)表日期:2008-8-28
本文地址:http://www.qingdxww.cn/thread-5774-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • 無線充電基礎(chǔ)知識(shí)及應(yīng)用培訓(xùn)教程2
  • 安靜高效的電機(jī)控制——這才是正確的方向!
  • 5分鐘詳解定時(shí)器/計(jì)數(shù)器E和波形擴(kuò)展!
  • 無線充電基礎(chǔ)知識(shí)及應(yīng)用培訓(xùn)教程3
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人免费观看男女羞羞视频 | 69视频在线下载 | 国产亚洲一欧美一区二区三区 | 五月婷婷深爱 | 日产乱码卡1卡2卡三卡四在线 | 国产成人欧美一区二区三区vr | 亚洲一区免费视频 | 青青青国产免费全部免费观看 | 2019天天操天天干天天透 | 国产码欧美日韩高清综合一区 | 久久一本热 | 国产精品v | 亚洲欧美日本在线 | 黄网站色年片在线观看 | 亚洲天堂一区二区三区四区 | 一区二区三区视频 | 亚洲欧美精品成人久久91 | 中文字幕毛片 | 亚洲b| 欧美一区在线播放 | 美女色影院| 国产精品欧美久久久久天天影视 | 神马天堂 | 五月婷婷六月丁香综合 | 久久亚洲欧美成人精品 | 欧美日韩另类视频 | 大伊香蕉在线精品视频人碰人 | 国产激情久久久久久影院 | 久久免费香蕉视频 | 99久久99这里只有免费的精品 | 美女视频在线观看免费网 | 国产免费久久精品 | 香蕉依依精品视频在线播放 | 久久精品免费大片国产大片 | 国产69精品久久久久999小说 | www亚洲天堂| 亚洲国产高清视频在线观看 | 色综合精品久久久久久久 | 成人一级黄色毛片 | 春意影院午夜免费入口 | 2019国产精品|