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

評論