<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > TI:使用CLT工具優(yōu)化C6000代碼

TI:使用CLT工具優(yōu)化C6000代碼

作者: 時(shí)間:2015-05-14 來(lái)源:網(wǎng)絡(luò ) 收藏

  2.獲取分析信息

本文引用地址:http://dyxdggzs.com/article/274177.htm

  根據用戶(hù)獲取分析數據的不同,這里有兩種方法,第一種方法適用于持續運行的程序,比如在基于SYS/BIOS的程序里,有些任務(wù)是以循環(huán)的方式存在的,這時(shí)用戶(hù)需要自己從DSP內存里讀取分析數據。

  首先打開(kāi)map文件,可以找到.ppdata段的內存地址,這個(gè)地址就是profile信息存放處,在例子中

  ppdata 0 0081fecc 00000034 UNINIALIZED

  ppdata段位于0x0081fecc這個(gè)地址,長(cháng)度是34個(gè)byte。

  啟動(dòng)CCS,連接EVM板,下載out文件到DSP上,在main函數末尾加上調試斷點(diǎn),可以讓程序到這里暫停(實(shí)際上,在用戶(hù)代碼中,可以把斷點(diǎn)設置在需要的任何地方,profile的信息是實(shí)時(shí)更新的)。

  

 

  運行該程序,到達斷點(diǎn)后,在View菜單里打開(kāi)memory browser,將地址設定為0x0081fecc, 可以讀到.ppdata 的信息,參考以下步驟將其存到工程目錄下。

  1)選取Save Memory

  

 

  2)存放路徑

  

 

  3)確定數據地址和長(cháng)度,如下圖

  

 

  4)修改dat文件

  打開(kāi)剛才存下的dat文件,注意到文件頭的數據長(cháng)度是以32比特字為單位的,我們需要以8比特字節為單位,如

  1651 9 81fecc 0 d 1

  修改為

  1651 9 81fecc 0 34 1

  5)轉換文件格式

  對剛才的運行profile信息進(jìn)行分析,得到優(yōu)化后的cmd 內存排布文件,該文件內容如下,用戶(hù)可根據自己的程序進(jìn)行修改

  

 

  如果是大端,則將-le選項改為-be選項。

  第二種方法,針對于只需運行一次流程的程序,CCS可以自動(dòng)生成pdat文件,需要注意的是,生成pdat文件的分析代碼是在用戶(hù)程序結束也就是exit()程序執行時(shí)進(jìn)行,因此用戶(hù)要保證自己的程序能完整運行到主函數出口結束,否則無(wú)法生成pdat文件,需要用第一種方法來(lái)獲取數據。

  3.重新編譯代碼

  首先使用pdd6x從數據文件里提取prf文件作為重編譯的輸入文件

  

 

  在命令行形式下,可以以以下形式調用輸入文件生成csv文件,

  

 

  在CCS環(huán)境下,只需要在CCS里指定需要的數據文件后產(chǎn)生csv文件,

  

 

  Figure 5.CCS重編譯的選項

  通過(guò)調用clt6x生成內存排布

  

 

  將輸出的pfo.cmd加入到項目的cmd文件重新編譯輸出優(yōu)化后的out文件,cache優(yōu)化到此完成。對比優(yōu)化結果,對于TCP/IP的例子應用上,CLT帶來(lái)了接近20%的提升,對于視頻編碼等應用CLT也帶來(lái)了5%左右的提升。而且,用戶(hù)代碼量越大,則CLT可能帶來(lái)的提升越明顯。

  4.結論

  通過(guò)使用CLT工具,可以方便快捷的對用戶(hù)代碼的Cache 分配進(jìn)行優(yōu)化,用戶(hù)不需要了解DSP Cache分配的詳細信息,只需要在Simulator或者硬件板卡上運行定制的代碼,就可以方便快捷地得到Cache的詳細信息,并自動(dòng)根據這些信息對程序在內存的分布進(jìn)行配置已達到提升性能的效果。

  參考文獻

  1.TMS320C66x DSP CorePac User Guide(SPRUGW0)

  2.KeyStone Architecture Multicore Shared Memory Controller(MSMC)User Guide(SPRUGW7)

  3.KeyStone Architecture DDR3 Memory Controller User Guide(SPRUGV8)

  4.Cache Layout Tools Example

存儲器相關(guān)文章:存儲器原理


塵埃粒子計數器相關(guān)文章:塵埃粒子計數器原理

上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: TI C6000

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>