德州儀器DSP開(kāi)發(fā)常見(jiàn)問(wèn)題寶典
1)程序沒(méi)有結(jié)尾或不是循環(huán)的程序。
2)nmi管腳沒(méi)有上拉。
3)在看門狗動(dòng)作的時(shí)候程序會(huì)經(jīng)常跑飛。
4)程序編制不當(dāng)也會(huì)引起程序跑飛。
5)硬件系統(tǒng)有問(wèn)題。
四十四。并行FLASH引導(dǎo)的一點(diǎn)經(jīng)驗(yàn)
最近BBS上關(guān)于FLASH和BOOT的討論很活躍,我也多次來(lái)此請(qǐng)教。前幾天自制的DSP板引導(dǎo)成功,早就打算寫寫這方面的東西。我用的DSP是 5416,以其為核心,做了一個(gè)相對(duì)獨(dú)立的子系統(tǒng)(硬件、軟件、算法),目前都已基本做好。下面把在FLASH引導(dǎo)方面做的工作向大家匯報(bào)一下,希望能對(duì)大家有所幫助。本人經(jīng)驗(yàn)和文筆都有限,寫的不好請(qǐng)大家諒解。
硬件環(huán)境:
DSP:TMS320VC5416PGE160
FLASH:SST39VF400A-70-4C-EK 都是貼片的,F(xiàn)LASH映射在DSP數(shù)據(jù)空間的0x8000-0xFFFF
軟件環(huán)境: CCS v2.12.01
主程序(要燒入FLASH的程序): DEBUG版,程序占用空間0x28000-0x2FFFF(片內(nèi)SARAM),中斷向量表在0x0080-0x00FF(片內(nèi)DARAM),數(shù)據(jù)空間使用0x0100-0x7FFF(片內(nèi)DARAM)。因?yàn)镕LASH是貼片的,所以需要自己編一個(gè)數(shù)據(jù)搬移程序,把要主程序搬移到FLASH中。在寫入 FLASH數(shù)據(jù)時(shí),還應(yīng)寫入引導(dǎo)表的格式數(shù)據(jù)。最后在數(shù)據(jù)空間的0xFFFF處寫入引導(dǎo)表的起始地址(這里為0x8000)。
搬移程序: DEBUG版,程序空間0x38000-0x3FFFF(片內(nèi)SARAM),中斷向量表在0x7800-0x78FF(片內(nèi)DARAM),數(shù)據(jù)空間使用 0x5000-0x77FF(片內(nèi)DARAM)。搬移程序不能使用與主程序的程序空間和中斷向量表重合的物理空間,以免覆蓋。燒寫時(shí),同時(shí)打開(kāi)主程序和搬移程序的PROJECT,先LOAD主程序,再LOAD搬移程序,然后執(zhí)行搬移程序,燒寫OK! 附:搬移程序(僅供參考)
volatile unsigned int *pTemp=(unsigned int *)0x7e00; unsigned int iFlashAddr;
int iLoop;
iFlashAddr=0x8000;
WriteFlash(iFlashAddr,0x10aa);
iFlashAddr++;
WriteFlash(iFlashAddr,0x7e00);
iFlashAddr++;
WriteFlash(iFlashAddr,0x8006);
iFlashAddr++;
WriteFlash(iFlashAddr,0x0002);
iFlashAddr++;
評(píng)論