新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > TMS320VC5402 DSP的并行I/O引導(dǎo)裝載方法研究

        TMS320VC5402 DSP的并行I/O引導(dǎo)裝載方法研究

        作者: 時(shí)間:2009-04-09 來源:網(wǎng)絡(luò) 收藏

        (以下簡(jiǎn)稱C5402)是德州儀器公司(TI)1999年10月推出的性價(jià)比極高(目標(biāo)價(jià)格僅為5美元)的定點(diǎn)數(shù)字信號(hào)處理器()。C5402主要特點(diǎn)如下[1]:
          ?操作速率達(dá)100MIPS;
          ?具有先進(jìn)的多總線結(jié)構(gòu),三條16位數(shù)據(jù)存儲(chǔ)器總線和一條程序存儲(chǔ)器總線;
          ?40位算術(shù)邏輯單元(ALU),包括一個(gè)40位桶形移位器和兩個(gè)40位累加器;
          ?一個(gè)17×17乘法器和一個(gè)40位專用加法器,允許16位帶/不帶符號(hào)的乘法;
          ?整合維特比加速器,用于提高維特比編譯碼的速度;
          ?單周期正規(guī)化及指數(shù)譯碼;
          ?8個(gè)輔助寄存器及一個(gè)軟件棧,允許使用業(yè)界最先進(jìn)的定點(diǎn) C語言編譯器;
          ?數(shù)據(jù)/程序?qū)ぶ房臻g1M×16bit,內(nèi)置4K×16bit ROM和16K×16bit RAM;
          ?內(nèi)置可編程等待狀態(tài)發(fā)生器、鎖相環(huán)(PLL)時(shí)鐘產(chǎn)生器、兩個(gè)多通道緩沖串行口、一個(gè)8位與外部處理器通信的HPI口、2個(gè)16位定時(shí)器以及6通道DMA控制器;  
          ?低功耗,工作電源有3V和1.8V(內(nèi)核),特別適合電池供電設(shè)備。
          由此可見,與TMS32054X系列的其它芯片相比,C5402以其獨(dú)有的高性能、低功耗和低價(jià)格特性,使得一推出就受到業(yè)內(nèi)用戶的歡迎。但它的內(nèi)部結(jié)構(gòu)和片內(nèi)掩模的(Bootloader)程序與C54X系列的其它處理器[2]有較大的差異,而它的應(yīng)用對(duì)象又大多是要求能脫機(jī)運(yùn)行,如機(jī)頂盒(STB)、個(gè)人數(shù)字助理(PDA)和數(shù)字無線通信等內(nèi)嵌式系統(tǒng)。為此,本文立足我們的實(shí)踐經(jīng)驗(yàn),簡(jiǎn)單介紹C5402 Bootloader程序分析和實(shí)現(xiàn)方法,并較為詳細(xì)地介紹 Bootloader方法。
        1 幾種方法
          C5402片內(nèi)掩模的Bootloader用于在上電復(fù)位時(shí)把用戶程序從外部到高速RAM中,以保證其全速運(yùn)行。C5402提供了如下四種Bootloader方法:8位或16位EPROM方法、8位或16位并行方法、8位或16位串行口方法和處理器通信口(主端口)HPI方法。
          上電復(fù)位后,C5402檢測(cè)其MP/MC引腳,如果MP/MC=“0”則進(jìn)入Bootloader程序。進(jìn)入Bootloader后,如有INT2請(qǐng)求中斷,則進(jìn)入HPI引導(dǎo)方式,否則則讀入端口地址為0FFFFH的端的引導(dǎo)方式選擇字(Boot Routine Selection、 BRS)。當(dāng)BRS=XXXX00時(shí),進(jìn)入I/O或串行口引導(dǎo)方式;如BRS=XXXX1000時(shí),進(jìn)入8位I/O引導(dǎo)方式;BRS=XXXX1100時(shí),進(jìn)入16位I/O引導(dǎo)方式,否則則進(jìn)入串行口引導(dǎo)方式。當(dāng)BRS=XXXX01時(shí),進(jìn)入8位EPROM引導(dǎo)方式,BRS=XXXX10時(shí),進(jìn)入16位EPROM引導(dǎo)方式。
        2 C5402片內(nèi)ROM結(jié)構(gòu)及并行I/O引導(dǎo)程序分析
          C5402提供了4K×16bit 的掩模ROM,其具體內(nèi)容見表1。C5402上電復(fù)位后,如果MP/MC=“0”則從F800h地址開始運(yùn)行Bootloader程序。在進(jìn)入8位并行I/O引導(dǎo)程序以前,C5402與外部I/O要進(jìn)行一系列的通信聯(lián)絡(luò),其程序框圖如圖1所示。

        本文引用地址:http://www.104case.com/article/173788.htm

        以下是8位并行I/O引導(dǎo)程序片段下:
          行號(hào) 源程序 注 解
          (標(biāo)號(hào))
          END ;讀入用戶代碼結(jié)束并轉(zhuǎn)執(zhí)行用戶程序
          1 CALL (21) ;調(diào)用讀數(shù)據(jù)子程序
          2 STL B、61h ;B的內(nèi)容→61H單元
          3 CALL (21) ;調(diào)用讀數(shù)據(jù)子程序
          4 STL B、 62h ;B的內(nèi)容→62H單元
          5 CALL (21) ;調(diào)用讀數(shù)據(jù)子程序
          6 BC (END)、 BEQ ;B=0時(shí)結(jié)束
          7 SUB #01h、0、B、B ;B-1→B
          8 STLM B、BRC ;B→BRC
          9 CALL (21) ;調(diào)用讀數(shù)據(jù)子程序
          10 STL B、 68h ;B的內(nèi)容→68H單元
          11 CALL (21) ;調(diào)用讀數(shù)據(jù)子程序
          12 ADD 68h、16、B、B ;68H移位后加B→B
          13 LD B、0、A ;B→A
          14 RPTD (20)-1 ;循環(huán)15-19
          15 CALL (21) ;調(diào)用讀數(shù)據(jù)子程序
          16 SSBX XF ;XF=1
          17 BC (17)、BIO ;BIO=0則等待
          18 WRITA B ;把B的內(nèi)容寫到*A
          19 ADD #01h、0、A、A ;A+1→A
          20 B (5) ;跳轉(zhuǎn)到標(biāo)號(hào)為5
            ?
            ?
            ?
          21 SSBX XF ;XF=1
          22 BC (22)、BIO ;BIO=0則等待
          23 RXBX XF ;XF=0
          24 BC (24)、NBIO ;BIO=1則等待
          25 PORTR 0000h、 B ;讀0地址端口→B
          26 SFTL B、8、B ;B左移8位→B
          27 SSBX XF ;XF=1
          28 BC (28)、 BIO ;BIO=0則等待
          29 RXBX XF ;XF=0
          30 BC (30)、 NBIO ;BIO=1則等待
          31 PORTR 0000h、68h ;讀0地址端口→68
          32 ANDM 000ffh、68h ;邏輯與
          33 OR 68h、 B ;邏輯或后→B
          34 RET ;返回


        上一頁 1 2 下一頁

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 宁乡县| 许昌市| 射阳县| 监利县| 大丰市| 巨野县| 吉木乃县| 策勒县| 南漳县| 鄂尔多斯市| 东乡族自治县| 阳春市| 吉首市| 眉山市| 沙湾县| 北京市| 辽阳县| 盐城市| 沈阳市| 大石桥市| 大化| 开远市| 永州市| 宝应县| 昔阳县| 宁明县| 泰宁县| 九台市| 隆德县| 永城市| 万全县| 伊川县| 塘沽区| 天台县| 连南| 长子县| 平远县| 罗江县| 古交市| 高密市| 绥阳县|