TI中文支持网
TI专业的中文技术问题搜集分享网站

C6657在DDR上運行SYS/BIOS

我的DSP為C6657, 工作時脈1GHz, ccs5.5

1. C6657的sys/bios project燒在SPI nor flash內,RTSC的platform設定到DDR上,會boot不成功。後來我發現把linker.cmd檔的幾個section(.cinit .pinit .init_array .const )改到L2上,就可以boot成功。但這樣很麻煩,linker.cmd是由RTSC的platform自動產生,容易被複蓋。請問我該如何

2.0x8ffd20有放二次RBL的DDR parameter Table,ccs project的map檔有看到在0x8ffd20有存在我宣告的DDR table,但在non boot mode時load program或spi nor flash boot,在0x8ffd20的位址的parameter table會被sys/bios重寫成0xBEBEBEBE或0x00000000。如果只有一個task的時候,還會看的到一半的parameter table,並有機會boot成功,但宣告兩個以上或有mailbox。parameter table被復蓋更多地方,就沒辦法boot成功。請問我該怎麼辦?

謝謝

Andy Yin1:

1 sysbios user guide中有讲可以增加一个额外的cmd文件指定memory section的位置;

2 可能是你存放ddr parameter table的memory段与bios有冲突被覆盖了,调整memory存放位置,避免冲突;或者先加载一个小的程序初始完DDR后,再加载应用程序,分成两次加载。

eric chen3:

回复 Andy Yin1:

1.是的,我有增加一個額外的cmd文件如下,但是是針對parameter table(0x8ffd20)用的,sysbios的部份,我有試過將sys/bios init section寫在我的cmd檔,但因為會跟linker.cmd有重複,最後map檔看到的還會是在DDR上,而不是我要的L2上

MEMORY{

DDR_CFG : origin=0xxf20, length-0x180

}

SECTIONS{

.emif4Cfg > DDR_CFG

}

2. 我在CCS debug perspective做 load program動作時,觀察memory browser在0x8ffd20的行為,有看到emif4Cfg有被放上去,隨後就被蓋掉了。

我看我的map檔案,除了emif4Cfg外,並無其他section有用到L2位址,為什麼還會被複蓋?

我有想過兩次加載的方式,hex6x.exe轉換out檔輸出成btbl檔後,再把parameter Table掛在btbl檔後面,但不知道btbl檔的檔案格式

eric chen3:

回复 eric chen3:

請問有沒有C6657啟動後的bootloader範例,因為在c6657 evm板上燒錄我的sysbios完整的程式,看起來是可以在DDR上正常執行的,但是在我的板子上不行,但是DDR確認是有初始化成功,因為我在spi nor boot後,直接用jtag program我的.out檔,又可以正常執行。想先自己寫一個bootloader先初始化PLL及DDR後,再轉移到我自己的程式。

赞(0)
未经允许不得转载:TI中文支持网 » C6657在DDR上運行SYS/BIOS
分享到: 更多 (0)