• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于TMS320VC5509A的HPI引導(dǎo)過程的實現(xiàn)

    2014-04-29 00:44:03謝于晨
    電子世界 2014年21期
    關(guān)鍵詞:程序代碼寄存器應(yīng)用程序

    【摘要】TI的TMS320VC5509A DSP芯片提供了幾種不同的引導(dǎo)配置,不同的配置決定了DSP復(fù)位后的初始化和代碼引導(dǎo)方式。本文就TMS320VC5509A DSP的HPI引導(dǎo)過程進行了詳細的設(shè)計,包括HPI的一級引導(dǎo)和二級引導(dǎo),最后給出了HPI二級引導(dǎo)的軟件和硬件的具體實現(xiàn)。

    【關(guān)鍵詞】TMS320VC5509A;HPI;引導(dǎo)過程

    Abstract:The TI TMS320VC5509A DSP chip provides several different boot configurations that determine the DSP initialization and boot way in which resetting code is used. This article carried out a detailed designof theTMS320VC5509A HPI boot process, including primary and secondary HPI boot process, and finally gives the software and hardware Implementationof the HPI secondary boot.

    Keywords:TMS320VC5509A;HPI;Boot Process

    1.概述

    TMS320VC5509A的主機接口HPI(Host Port Interface)是TI公司為了滿足DSP與其他微處理器接口通信而專門設(shè)計的16/32位寬度并行接口。主機處理器可以通過它直接訪問DSP的整個內(nèi)存空間。

    2.DSP的BOOT引導(dǎo)

    DSP的BOOT引導(dǎo)是指系統(tǒng)加電或復(fù)位時,DSP將一段存儲在外部的非易失性存儲器的程序代碼通過DMA方式拷貝到內(nèi)部的高速內(nèi)存中運行。這樣既能擴展DSP有限的存儲空間,又能充分發(fā)揮DSP內(nèi)部資源的效能。

    DSP的引導(dǎo)過程[1]為:1)DSP復(fù)位后,通過DMA方式將外部CE1空間的數(shù)據(jù)讀入到內(nèi)部程序空間地址0處,讀入數(shù)據(jù)的多少因芯片而異。 2)DSP推出復(fù)位狀態(tài),開始執(zhí)行內(nèi)部程序空間地址0處的程序,這段程序先將外部主程序數(shù)據(jù)讀入到DSP內(nèi)部程序空間相應(yīng)地址,然后跳轉(zhuǎn)到主程序運行。第一步是由芯片自動完成,關(guān)鍵是第二步,用戶需要編寫相應(yīng)的程序,實現(xiàn)二級引導(dǎo),即用戶主程序的裝載。

    為了適應(yīng)不同系統(tǒng)的需要,TMS320-VC5509A提供了不同的引導(dǎo)方式,比如EMIF接口引導(dǎo)方式、串口引導(dǎo)方式、SPI接口引導(dǎo)方式、HPI引導(dǎo)方式和USB引導(dǎo)方式[1]等等,其中主機接口(HPI)引導(dǎo)以其操作簡便,硬件接口簡單等優(yōu)點被廣大用戶所選用。

    3.DSP中HPI引導(dǎo)過程

    在我們設(shè)計的系統(tǒng)中,需要用到HPI接口,再用它做為引導(dǎo)方式,以提高系統(tǒng)硬件的利用率,同時避免采用其他引導(dǎo)方式帶來的附加的硬件設(shè)計。

    3.1 DSP一級引導(dǎo)

    實際上,TMS320VC55x系列DSP的片內(nèi)固化的Bootloader程序中已經(jīng)包含了HPI的一級引導(dǎo)程序。boot通過復(fù)位時設(shè)置引腳BOOTM[3:0]為0101b來實現(xiàn)HPI引導(dǎo),在這種引導(dǎo)方式中,外部主機可以直接將代碼和數(shù)據(jù)加載到DSP存儲器。當(dāng)主機完成應(yīng)用程序的加載后,它將入口點字節(jié)地址和非0等待標志值寫到字地址0060h和0061h中.通知CPU開始執(zhí)行,當(dāng)檢測到等待標志位為非0值時,CPU從指定的人口點開始執(zhí)行,從而結(jié)束HPI方式的引導(dǎo)過程。

    3.2 DSP二級引導(dǎo)

    一級boot完成后,程序boot-image可以通過一級boot程序進行二級boot,這里的代碼和數(shù)據(jù)段地址可以不放DARAM內(nèi)。利用二級引導(dǎo)程序突破16K字的空間限制,HPI允許主機訪問內(nèi)部DARAM的字地址范圍是000060h-003FFFh,共16K字的空間。一般來說,16K字的空間遠遠不夠用,大部分代碼都可能放置在SARAM和片外的程序空間,而這部分空間并不是主機能夠訪問得到的。DSP程序本身是能夠訪問到所有DSP數(shù)據(jù)空間的,所以主機可以首先放置一個體積不大于16K的程序到DSP內(nèi),再由該程序和主機協(xié)作完成超出片內(nèi)DARAM的代碼加載。

    4.HPI二級引導(dǎo)程序的設(shè)計

    二級引導(dǎo)程序的功能就是按照和主機的某種約定,獲取DSP程序代碼和相應(yīng)地址信息,在DSP所能夠訪問到的存儲器空間生成DSP程序代碼。二級引導(dǎo)需要實現(xiàn)的功能比較少,代碼量一般都很小,一般來說,我們把boot-image程序轉(zhuǎn)成bin文件進行加載。

    如圖2所示為二級引導(dǎo)程序的實現(xiàn)流程,用DARAM中的某些單元作為DSP和主機的握手單元來實現(xiàn)二級引導(dǎo)程序。

    圖1 二級boot程序流程圖

    握手單元功能如下所示:

    0x62:傳輸標志,主機置1表示DSP可讀,置0xffff表示傳輸結(jié)束;

    DSP置0表示主機可寫,置0xaaaa表示通知主機開始下載。

    0x66,0x67:當(dāng)前傳輸?shù)臄?shù)據(jù)段的目的起始地址。

    5.HPI二級引導(dǎo)的實現(xiàn)

    5.1 HPI二次引導(dǎo)軟件的實現(xiàn)

    加載成功一級boot后,首先要啟動一級boot程序,之后開始加載二級boot。這里寫出主要代碼部分。

    1)Load二級boot。

    讀取boot-image bin文件字節(jié)總數(shù),將所有字節(jié)寫入到REG_BOOT_DATA寄存器中。寫一個字的數(shù)據(jù),發(fā)送一條CONFIGURE命令到命令寄存器中。

    temp_len=file_size;

    temp_len>>=1;

    for(i=0;i

    {

    fread(temp_buf,1,2,boot_file_fp);

    temp_data=temp_buf[0];

    temp_data<<=8;

    temp_data+=temp_buf[1];

    temp_addr=BOOT_DATA_ADDR;

    write_addr_reg(temp_addr);

    write_data_reg(&temp_data,1);

    send_dsp_cmd(CMD_CONFIGURE);

    }

    2)寫入校驗數(shù)據(jù)

    將校驗數(shù)據(jù)BOOT_CHECK寫入REG_BOOT_DATA寄存器,并發(fā)送CONFIGURE命令到命令寄存器REG_DSP_CMD來完成二級boot的檢驗工作,

    temp_addr=BOOT_DATA_ADDR;

    write_addr_reg(temp_addr);

    write_data_reg(BOOT_CHECK);

    send_dsp_cmd(DSP_CMD_CONFIGURE);

    3)啟動程序

    寫PROGRAM_START_ADDR寄存器,將值0x01寫入該寄存器中,然后發(fā)送COMM START命令到命令寄存器來完成程序啟動。

    temp_addr=PROGRAM_START_ADDR;

    write_addr_reg(temp_addr);

    temp_data=0x1;//啟動boot-image

    write_data_reg(temp_data);

    send_dsp_cmd(0x0B);

    5.2 HPI引導(dǎo)過程在硬件上的實現(xiàn)

    在這里用的硬件是at91sam9260 arm芯片作為主CPU[2],與Ti公司的TMS320VC- 5509A dsp芯片[3],其硬件連接圖如圖2所示。

    圖2 ARM9260與DSP 5509A的HPI硬件連接

    圖3 HPI引導(dǎo)過程顯示打印說明圖

    具體實現(xiàn)分為兩步:

    1)編寫轉(zhuǎn)換工具具把COFF文件轉(zhuǎn)換成二進制(BIN)文件。首先在PC機上調(diào)試好二級引導(dǎo)程序和DSP應(yīng)用程序(COFF格式),然后從COFF格式文件中提取有用信息,將其轉(zhuǎn)換成BIN文件,并將這些文件存放到主機的Flash中。

    2)利用主機程序?qū)IN格式的文件下載到DSP存儲器中。系統(tǒng)啟動后.主機從Flash中獲取二次引導(dǎo)程序的BIN數(shù)據(jù),通過(下轉(zhuǎn)第21頁)(上接第19頁)HPI將其下載到DSP的DARAM存儲區(qū)內(nèi),下載完成后通知DsP啟動運行二級引導(dǎo)程序;然后主機從其Flash中獲取DSP應(yīng)用程序的BIN數(shù)據(jù),通過HPI將其分段放入DSP的DARAM存儲區(qū)內(nèi);二級引導(dǎo)程序根據(jù)主機寫入的段數(shù)、目的地址和長度,最終完成DSP應(yīng)用程序的正確定位;最后啟動DSP應(yīng)用程序。

    這里以一個簡單的例子為例,二級boot為一個電燈程序采用超級終端顯示加載成功的文字顯示,見圖3,完成加載后,可以在DSP段的XF(101腳)引腳發(fā)送一個方波信號,通過示波器檢測,發(fā)現(xiàn)二級boot程序啟動成功。

    6.結(jié)論

    對于DSP引導(dǎo)方式,用戶可以根據(jù)自己工作中DSP目標系統(tǒng)的需求,靈活選用。這個系統(tǒng)中,我們采用HPI引導(dǎo)方式,提高系統(tǒng)硬件利用率,程序代碼的編寫不再受DSP空間的限制,可采用二級boot的方式,通過主機進行讀寫,方便,可靠,這種方法在很多系統(tǒng)中都已經(jīng)得到應(yīng)用,使用效果非常不錯。

    參考文獻

    [1]TIUsing the TMS320VC5503/C5506/C5507/C5509/C5509ABootloader,2008.

    [2]寧可慶.DSP HPI口與ARM9總線接口的WINCE下設(shè)計實現(xiàn)[J].信息系統(tǒng)工程,2010.

    [3]黨瑞榮.TMS320系列DSP原理、結(jié)構(gòu)及應(yīng)用[M].機械工業(yè)出版社,2012.

    [4]王在淵,田玉敏,李申鵬.HPI在DSP程序引導(dǎo)中的應(yīng)用[J].國外電子測量技術(shù),2008 (5).

    [5]趙洪亮.TMS320C55x DSP應(yīng)用系統(tǒng)設(shè)計(第2版)[M].北京航空航天出版社,2010.

    作者簡介:謝于晨(1983—),女,碩士,現(xiàn)供職于江西科技學(xué)院,主要研究方向:嵌入式開發(fā),移動通信等。

    猜你喜歡
    程序代碼寄存器應(yīng)用程序
    Lite寄存器模型的設(shè)計與實現(xiàn)
    刪除Win10中自帶的應(yīng)用程序
    電腦報(2019年12期)2019-09-10 05:08:20
    計算機網(wǎng)絡(luò)信息安全未來發(fā)展趨勢
    分簇結(jié)構(gòu)向量寄存器分配策略研究*
    基于圖元裝接模式由程序流程圖自動生成源代碼
    軟件工程(2016年11期)2017-01-17 16:56:57
    關(guān)閉應(yīng)用程序更新提醒
    電腦迷(2012年15期)2012-04-29 17:09:47
    高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
    一種可重構(gòu)線性反饋移位寄存器設(shè)計
    三星電子將開設(shè)應(yīng)用程序下載商店
    微軟軟件商店開始接受應(yīng)用程序
    永德县| 灵川县| 罗山县| 临西县| 宜州市| 长治县| 巩义市| 江津市| 龙陵县| 常德市| 枣强县| 沁源县| 诸城市| 南通市| 乐平市| 漳州市| 威海市| 皋兰县| 勐海县| 霍山县| 永安市| 个旧市| 崇仁县| 泽州县| 河源市| 东方市| 潼南县| 黎城县| 江西省| 沽源县| 屏山县| 方城县| 潜江市| 东阿县| 桦川县| 青海省| 承德县| 弋阳县| 嘉义县| 井冈山市| 安化县|