標題: CCS5.2下CMD文件導致的DM648自啟動問題 [打印本頁]

作者: liuyy    時間: 2015-1-12 23:14
標題: CCS5.2下CMD文件導致的DM648自啟動問題
以前一直使用CCS3.3,因為軟件太容易導致藍屏、死機,用虛擬機又嚴重影響仿真器速度。所以改用了CCS5.2。
CCS5使用的ECLIPS架構(gòu),跟以前的CCS3.3幾乎完全接不上茬……DSP/BIOS也升了級,好多函數(shù)都改了名字。甚至以前的gel文件也被包裹成別的樣子……
好不容易把程序改到可以仿真運行了,等下載到SPIFLASH啟動的時候又出現(xiàn)了問題,程序沒能正常啟動。
         后來測試波形發(fā)現(xiàn)程序已經(jīng)完成了加載,但無法正確運行。經(jīng)過幾翻周折,終于找到了原因。發(fā)現(xiàn)編譯后的.map文件有兩個.cinit段和兩個.pinit段。而且其中一個顯示長度為0,并且處于UNINITIALIZED狀態(tài):

SECTION ALLOCATION MAP
output                                  attributes/
section  page    origin      length       input sections
-------- ----  ----------  ----------  ----------------
.pinit    0    e0400000    00000000    UNINITIALIZED
.cinit    0    e0300000    00000000    UNINITIALIZED
.pinit     0    00a10000   00000000     UNINITIALIZED

……
.cinit     0    e15840b0   0000148c  


經(jīng)過查看“TI SYS/BIOS v6.33 Real-timeOperating System User's Guide”文檔,發(fā)現(xiàn)內(nèi)存配置工作已經(jīng)由新的.cfg文件自動生成為linker.cmd文件,用戶自定義另外的.cmd文件不能與其沖突。文檔建議不要使用用戶自定義的cmd文件,如果需要自己配置空間的話,可以修改.cfg或linker.cmd文件。
而之前我延用以前CCS3.3的習慣,使用了自己定義的.cmd文件,所以出現(xiàn)了兩個.cinit段和兩個.pinit段。于是導致自加載時變量不能得到初始化,程序不能正常運行。
……
    .vecs> IRAM_Code
    .text > IRAM_Code                   /* Common Code */
    .bss > IRAM_Data                /* 變量 */
    .cinit > DDR2 _Code
    .switch> IRAM_Data
    .far > IRAM_Data                /* 數(shù)組 */
    .const > IRAM_Data/*DDR2_L2Shadow IRAM3*/
    .bootload> IRAM_Code
    .printf> IRAM_Data
    .pinit > IRAM_Data              /* Common Code */
    .cio > IRAM_Data
    .data > IRAM_Data
    .system> IRAM_Data
……
將自定義的.cmd文件內(nèi)的相關(guān)段刪掉,編譯后.map文件中只有一組.cinit和.pinit,燒寫到SPI FLASH后能程序正常加載運行。
……
    .vecs> IRAM_Code
    .text > IRAM_Code                   /* Common Code */
    .bss > IRAM_Data                /* 變量 */
    .switch> IRAM_Data
    .far > IRAM_Data                /* 數(shù)組 */
    .const > IRAM_Data/*DDR2_L2Shadow IRAM3*/
    .bootload> IRAM_Code
    .printf> IRAM_Data
    .cio > IRAM_Data
    .data > IRAM_Data
    .system> IRAM_Data
……






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1