• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 使用CLT 工具優化C6000 代碼

    使用CLT 工具優化C6000 代碼

    作者: 時間:2016-09-12 來源:網絡 收藏
    c6000

    本文引用地址:http://www.czjhyjcfj.com/article/201609/303829.htm

    同時在目錄下生成OBJ 和ASM 文件,這個和我們的實驗關系不大,可以不用關注。

    out 文件是一會需要下載到芯片里運行的可執行文件,而map 文件用于幫助我們定位profile 信息存放的內存地址。

    如果用戶使用CCS 編譯工具,則需要在Build 的屬性里指定Feedback 選項,然后正常編譯即可生成攜帶分析代碼的可執行文件。

    2. 獲取分析信息

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

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

    .ppdata 0 0081fecc 00000034 UNINITIALIZED

    .ppdata 段位于0x0081fecc 這個地址,長度是34 個byte。

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

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

    1) 選取Save Memory

    2) 存放路徑

    3) 確定數據地址和長度,如下圖

    4) 修改dat 文件

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

    1651 9 81fecc 0 d 1

    修改為

    1651 9 81fecc 0 34 1

    5) 轉換文件格式

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

    360截圖20150511135611640.jpg

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

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

    3. 重新編譯代碼

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

    將輸出的pfo.cmd 加入到項目的cmd 文件重新編譯輸出優化后的out 文件,cache 優化到此完成。

    對比優化結果,對于TCP/IP 的例子應用上,CLT 帶來了接近20%的提升,對于視頻編碼等應用CLT 也帶來了5%左右的提升。而且,用戶代碼量越大,則CLT 可能帶來的提升越明顯。

    4. 結論

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


    上一頁 1 2 下一頁

    關鍵詞: C6000

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 余姚市| 葫芦岛市| 白玉县| 怀远县| 曲周县| 泗阳县| 尤溪县| 巨鹿县| 阿克| 准格尔旗| 封开县| 新巴尔虎左旗| 离岛区| 芮城县| 远安县| 昂仁县| 河东区| 永康市| 侯马市| 阿拉善左旗| 吉安县| 长阳| 呼图壁县| 旬阳县| 中牟县| 邯郸市| 崇州市| 图片| 甘南县| 渝北区| 罗城| 太湖县| 黔江区| 内江市| 康定县| 简阳市| 禹城市| 常州市| 巴林右旗| 洛川县| 昆明市|