找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5944|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

CCS5.2下CMD文件導(dǎo)致的DM648自啟動(dòng)問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:72008 發(fā)表于 2015-1-12 23:14 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
以前一直使用CCS3.3,因?yàn)檐浖菀讓?dǎo)致藍(lán)屏、死機(jī),用虛擬機(jī)又嚴(yán)重影響仿真器速度。所以改用了CCS5.2。
CCS5使用的ECLIPS架構(gòu),跟以前的CCS3.3幾乎完全接不上茬……DSP/BIOS也升了級,好多函數(shù)都改了名字。甚至以前的gel文件也被包裹成別的樣子……
好不容易把程序改到可以仿真運(yùn)行了,等下載到SPIFLASH啟動(dòng)的時(shí)候又出現(xiàn)了問題,程序沒能正常啟動(dòng)。
         后來測試波形發(fā)現(xiàn)程序已經(jīng)完成了加載,但無法正確運(yùn)行。經(jīng)過幾翻周折,終于找到了原因。發(fā)現(xiàn)編譯后的.map文件有兩個(gè).cinit段和兩個(gè).pinit段。而且其中一個(gè)顯示長度為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文件自動(dòng)生成為linker.cmd文件,用戶自定義另外的.cmd文件不能與其沖突。文檔建議不要使用用戶自定義的cmd文件,如果需要自己配置空間的話,可以修改.cfg或linker.cmd文件。
而之前我延用以前CCS3.3的習(xí)慣,使用了自己定義的.cmd文件,所以出現(xiàn)了兩個(gè).cinit段和兩個(gè).pinit段。于是導(dǎo)致自加載時(shí)變量不能得到初始化,程序不能正常運(yùn)行。
……
    .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后能程序正常加載運(yùn)行。
……
    .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
……

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表