您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > CCS下TMS320C6416DSP的二次引导及FLASH在线编程方法研究
©1994-2010ChinaAcademicJournalElectronicPublishingHouse.Allrightsreserved.(121000):DSP,FLASHTMS320C6416DSP,CCS,,COFFFLASH.hexSST39VF040FLASH,CCSFLASH,FLASH:CCS;DSP;;FLASH:TP391:A:1004373X(2006)1711704ResearchonSecondBootloadandFLASHOnlineProgrammingMethodforTMS320C6416DSPwithCCSZHANGShengchong(NortheastResearchInstituteofElectronicTechnology,Jinzhou,121000,China)Abstract:InDSPapplicationsystem,toimplementloadingcustomcodeautomatically,thetechnologyofsecondbootloadandFLASHonlineprogrammingiskeypoint.BasedonTMS320C6416DSP,thispaperdetailintroduceshowtoplacemem2ory,codeanddatasectionsandwritesecondarybootloaderwithCCS,andhowtoconvertCOFFformatfileinto.hexfilecon2venientforburningtheflash.ToimplementflashonlineprogrammingbytheCCS,themethodoferasewriteflashispres2entedtakingSST39VF040FLASHasexample.Somecorrespondingcodesarepresented.Keywords:CCS;DSP;secondbootload;FLASHonlineprogramming:200603201TMS320C6416TIC6000DSPsDSP,1GHz,8,1024FFT10s,DSPs12,,DSP,,C6000DSPs,ROMFLASHC6416ROM,EMIFBCE11kBRAM0,1kB,DSP,ROM,1kB,RAM,DSPJTAG,CCSFLASH,FLASH,CCS,FLASH,FLASHTIDSPCCS(CodeComposerStudio),WindowsDSP,,TIDSPDSP/BIOS,,,,,,DSP,DSP/BIOS,DSP/BIOS,DSP/BIOS2CCSDSP,RAM,711200617232þü©1994-2010ChinaAcademicJournalElectronicPublishingHouse.Allrightsreserved.(1kB)FLASHBOOT0x640000000x400(1kB)FLASHREST0x64000400FLASHSIZE1kBBOOTRAM,RAM0FLASHFLASHBOOTFLASHREST,,FLASHBOOT1kBBOOTRAM,0,FLASHRESTRAM,cint00()3DSP/BIOS,1,spacecode/data,createaheapinthismemory,,ISRAM0x04001DSP/BIOS,CCS(RunAddress)(LoadAddress):RAM,ROM(FLASH);ROM(FLASH);RAM,2DSP/BIOS,.bootload,BOOTRAMFLASHBOOT,.cmd,SECTIONS{.bootload:load=FLASHBOOT,run=BOOTRAM}2DSP/BIOS3FLASHRAM,C,:EMIF,FLASH,C6416EMIFBCE18b,ROM;,FLASHRAM(copyTable);Ccint00():.sect.bootload;.bootload.refcint00;mvklcopyTable,a3mvkhcopyTable,a3copysectiontop:ldw3a3++,b0;ldw3a3++,a4;(RAM)ldw3a3++,b4;(FLASH)nop2[!b0]bcopydone;nop5copyloop:;ldb3b4++,b5subb0,1,b0nop4stbb5,3a4++[b0]bcopyloop;[!b0]bcopysectiontopnop5copydone:;cint00mvkl.S2cint00,B0mvkh.S2cint00,B0811:CCSTMS320C6416DSPFLASH©1994-2010ChinaAcademicJournalElectronicPublishingHouse.Allrightsreserved.:;;.hwivec.word0x200.word0x400.word0x64000400;;.text.wordtextSize.wordtextRun.wordtextLoad;;.bios.wordbiosSize.wordbiosRun.wordbiosLoad.word0.word0.word0QDMA,,,,.map,.map,,.hwivec,,,textSize,textRun,text2Load.cmdSECTIONS:.text:LOAD=FLASHREST,RUN=ISRAMLOADSTART(textLoad),RUNSTART(textRun),SIZE(textSize).bios:LOAD=FLASHREST,RUN=ISRAMLOADSTART(biosLoad),RUNSTART(biosRun),SIZE(biosSize),,4CCS,COFF().out,FLASH,hex6x.exe.out,,FLASHhex6x.exehex.cmd,hex6x.exe:.\Debug\cpu.out/3COFF3/a/3ASCIIHEX3/image/33/zero/3image03/memwidth8/38bit3/romwidth8/3ROM/FLASH8bit3/map.\Debug\hex.map/3map3/ROMS{FLASH:org=0x64000000,len=0x40000,files={.\Debug\cpu.hex}/33/}SECTIONS{.bootload.bios.sysinit.gblinit.text.cinit.pinit.const.switch.hwivec}TI,:SECTIONS,hex6x.exe5CCSFLASHFLASH,cpu.hex,FLASH,FLASHCCSJTAGcmda,im2age,zero,ASCII,^B,^C,,bufbuf,FLASH,FLASH,EMIFC6416EMIFBCE1CCSDSP/BIOS,8bFLASH,SST39VF040FLASHvoidFlashErase(char3flashptr){//0x55550x2AAAEMIFBCE18bit,16bitchar3addr1=(char3)((int)flashptr+0x55550);char3addr2=(char3)((int)flashptr+0x2AAA0);3addr1=0xAA;//FLASH3addr2=0x55;3addr1=0x80;3addr1=0xAA;3addr2=0x55;3addr1=0x10;}911200617232þü©1994-2010ChinaAcademicJournalElectronicPublishingHouse.Allrightsreserved.(char3buf,char3flashptr,intlen){inti;Boolpass;char3addr1=(char3)((int)flashptr+(0x55550));char3addr2=(char3)((int)flashptr+(0x2AAA0));for(i=0;ilen;i++){3addr1=0xAA;//FLASH3addr2=0x55;3addr1=0xA0;3flashptr++=buf[i];pass=ToggleBit(flashptr1);//if(!pass){printf(Failedataddress%x\n,(int)flashptr);break;}}returnpass;},ToggleBit()FLASHDQ6,,:BoolToggleBit(char3progptr){charpredata,curdata;Booltoggle=FALSE;predata=3progptr;predata&=0x40;//DQ6TimeOut=FALSE;TIMERstart(hTimer2);//do{//curdata=3progptr;curdata&=0x40;if(curdata==predata)toggle=TRUE;elsepredata=curdata;}while((!TimeOut)&&(!toggle));if(!TimeOut)TIMERpause(hTimer2);returntoggle;}hTimer2DSP/BIOS,,FLASHTimeOut,hTimer2,TimeOutTRUE:voidHWItimer2(){TIMERpause(hTimer2);//TimeOut=TRUE;}CCS,FLASH6DSP,,,DSP,C6416CCS,,C6000DSP[1],,.TMS320C6000DSPs[M].2.:,2003.[2]TexasInstruments.TMS320C6000AssemblyLanguageToolsUsersGuide[S].TexasInstrumentsIncorporated,2002.[3]TexasInstruments.DevelopingaDSP/BIOSApplicationforROMontheTMS320C6000PlatformwithCCS1.2[S].TexasInstrumentsIncorporated,2001.[4]TexasInstruments.CreatingaSecondLevelBootloaderforFLASHBootloadingonTMS320C6000PlatformwithCodeComposerStudio[S].TexasInstrumentsIncorporated,2004.,1973,,,(116)[1],,.PLC(SoftPLC)[J].,2000,16(5):2729.[2],,.PLC[J].,2004,12(3):254256.[3],,.PLC[J].,2004,30(1):165167.[4].PC[J].,2001,5(3):1422.,1970,,,1969,,PLC021:CCSTMS320C6416DSPFLASH
本文标题:CCS下TMS320C6416DSP的二次引导及FLASH在线编程方法研究
链接地址:https://www.777doc.com/doc-4729201 .html