亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        DM642引導(dǎo)加載方式研究及其C語(yǔ)言實(shí)現(xiàn)

        2013-10-24 07:54:36張忠偉董文濤安軍社
        電子技術(shù)應(yīng)用 2013年7期
        關(guān)鍵詞:堆棧串口應(yīng)用程序

        劉 勇,張忠偉 ,董文濤,安軍社

        (1.中國(guó)科學(xué)院空間科學(xué)與應(yīng)用研究中心,北京100190;2.中國(guó)科學(xué)院研究生院,北京100190)

        DM642[1]是TI公司推出的一款高性能的數(shù)字多媒體處理器,屬于C64x系列DSP芯片,并保留了C64x原有的內(nèi)核結(jié)構(gòu),具有二級(jí)存儲(chǔ)器和高速緩沖器,以及超長(zhǎng)指令字結(jié)構(gòu)。其運(yùn)算速度快、體積小、功耗低的優(yōu)點(diǎn)使其廣泛應(yīng)用于多媒體處理領(lǐng)域[2]。

        DM642系統(tǒng)在脫機(jī)運(yùn)行時(shí),用戶代碼需要在加電后自動(dòng)加載運(yùn)行。這一過程通常由引導(dǎo)加載程序(bootloader)來完成的,bootloader自動(dòng)將一段存儲(chǔ)在外部非易失性存儲(chǔ)器中的代碼移植到高速存儲(chǔ)器單元中執(zhí)行。因此,開發(fā)可靠穩(wěn)定的bootloader成為嵌入式系統(tǒng)項(xiàng)目中的一個(gè)重點(diǎn)和難點(diǎn)。本文在深入研究分析DM642系統(tǒng)軟硬件的基礎(chǔ)上,摒棄傳統(tǒng)的匯編移植方案,用C語(yǔ)言實(shí)現(xiàn)了DM642的引導(dǎo)加載過程,同時(shí)該方案對(duì)于TI C6000系列DSP芯片具有通用性,可以在該系列不同器件中方便地移植。

        1 DM642與Flash硬件連接

        系統(tǒng)選用意法半導(dǎo)體公司的SST39VF080 Flash芯片,其容量為 1 M×8 bit,8根數(shù)據(jù)線,20根地址線,與DM642的EMIF接口實(shí)現(xiàn)無(wú)縫連接[3],兩者接線圖如圖1所示。DM642選擇EMIF啟動(dòng)時(shí),從CE1空間起始處(地址0x90000000)加載數(shù)據(jù),所以外部Flash必須接在EMIF接口的CE1空間。

        圖1 DM642與Flash的硬件連接圖

        2 DM642加載方式研究

        2.1 DM642自啟動(dòng)方式

        DM642有三種啟動(dòng)方式,分別是 Host boot、EMIF boot和No boot。系統(tǒng)上電或復(fù)位時(shí)通過采樣引腳AEA[22∶21]的電平來設(shè)置,具體配置如表1所示。

        DM642選擇Host boot啟動(dòng)方式時(shí),系統(tǒng)上電復(fù)位后CPU將停止運(yùn)行,其他設(shè)備正常運(yùn)行。這期間,外部主機(jī)能夠通過Host接口初始化CPU的存儲(chǔ)器和內(nèi)部的配置寄存器,主機(jī)完成初始化工作后,通過設(shè)置HPIC寄存器的DSPINT位,CPU即從0地址開始運(yùn)行。選擇No boot啟動(dòng)方式時(shí),CPU直接從0地址運(yùn)行程序。本文重點(diǎn)研究EMIF boot啟動(dòng)方式的加載過程。

        表1 DM642啟動(dòng)方式配置

        2.2 EMIF boot加載過程

        DM642系統(tǒng)的CE1空間外接Flash固態(tài)存儲(chǔ)器,當(dāng)選擇從EMIF啟動(dòng)時(shí),DM642芯片內(nèi)部已完成固化的加載程序(也稱一級(jí) bootloader)會(huì)自動(dòng)從 Flash空間(CE1空間,起始地址0x90000000)讀取1 KB數(shù)據(jù)到內(nèi)部RAM空間(起始地址 0x00000000),然后跳轉(zhuǎn)到 0x00000000處執(zhí)行。這個(gè)過程由DM642處理器自動(dòng)完成,用戶無(wú)法干預(yù)。

        如果用戶的應(yīng)用程序很小(<1 KB),則直接通過系統(tǒng)的一級(jí)bootloader加載即可;但是用戶的應(yīng)用程序通常>1 KB,所以位于0x00000000地址的1 KB程序通常也是一個(gè)引導(dǎo)程序(又稱二級(jí)bootloader),其作用是將應(yīng)用程序從Flash中讀出并放到內(nèi)存中,然后跳轉(zhuǎn)到c_int00()執(zhí)行,這個(gè)過程也被稱為二次加載[4]。

        3 二級(jí)bootloader程序設(shè)計(jì)

        3.1 傳統(tǒng)設(shè)計(jì)方案

        二級(jí)bootloader需要完成3部分功能:

        (1)初始化EMIF口,配置其寄存器;

        (2)把Flash中1 KB以后的各程序段和數(shù)據(jù)拷貝到指定的存儲(chǔ)物理地址中;

        (3)跳到C程序入口點(diǎn) c_int00()運(yùn)行。

        傳統(tǒng)的二級(jí)bootloader設(shè)計(jì)方案多通常基于TI公司提供的匯編例程移植實(shí)現(xiàn)[5],該方案要求設(shè)計(jì)者熟練掌握TI C6000系列DSP匯編語(yǔ)言,開發(fā)難度大、周期長(zhǎng)。

        3.2 C語(yǔ)言實(shí)現(xiàn)

        二級(jí)bootloader采用匯編語(yǔ)言編寫,是因?yàn)樵谝龑?dǎo)過程中還未建立C語(yǔ)言的運(yùn)行環(huán)境,包括系統(tǒng)堆棧定義、初始化堆棧、初始化全局和靜態(tài)變量等[6]。但是如果能夠避開系統(tǒng)堆棧操作,仍然可以使用C語(yǔ)言編寫二級(jí)bootloader程序。

        這些與系統(tǒng)堆棧相關(guān)的操作主要有兩方面:(1)定義局部變量時(shí)使用register修飾類型,表明是定義在寄存器中,而不是堆棧中;(2)不需進(jìn)行函數(shù)調(diào)用,包括C庫(kù)函數(shù)的調(diào)用。

        把目標(biāo)工程燒寫到Flash中,數(shù)據(jù)在Flash中的分配如圖2所示。其中,前1 KB空間(圖中灰色部分)存放二級(jí)bootloader;地址0x90000400之后的Flash空間存放用戶應(yīng)用程序,從圖2可知應(yīng)用程序存儲(chǔ)是以_c_int00()開始,以0x00000000結(jié)束,中間是各代碼段和數(shù)據(jù)段。

        基于上述Flash中數(shù)據(jù)分配,以下是對(duì)應(yīng)的二級(jí)bootloader部分C語(yǔ)言程序代碼∶

        圖2 Flash中數(shù)據(jù)存儲(chǔ)分配圖

        程序中"#pragma CODE_SECTION(boot,".bootloader")語(yǔ)句的作用是將boot定位在.Bootloader段,然后在.cmd文件中將.bootloader段映射到片內(nèi)起始1 KB內(nèi)存區(qū)。此bootloader程序編譯后體積為352 B,不會(huì)超過1 KB的限制。另外該程序是基于小端字節(jié)序編寫,若系統(tǒng)為大端字節(jié)序,需要作少許修改。

        使用C語(yǔ)言設(shè)計(jì)bootloader,極大提高了程序的可讀性和移植性,加快了用戶應(yīng)用程序的開發(fā)。但其效率低于傳統(tǒng)的匯編bootloader,所以從系統(tǒng)上電到加載完成運(yùn)行所需時(shí)間略長(zhǎng)。

        3.3 程序燒寫

        在CCS中目標(biāo)工程生成的是COFF格式(.out文件)。而Flash燒寫工具一般只支持ASC II十六進(jìn)制格式,所以,必須先用16進(jìn)制轉(zhuǎn)換工具將.out文件轉(zhuǎn)換成.hex文件[7],再進(jìn)行燒寫。燒寫目標(biāo)程序的步驟為:

        (1)編譯生成目標(biāo)工程的.out文件,在編譯之前需進(jìn)行如下操作:①把上述C語(yǔ)言編寫的bootloader程序添加到目標(biāo)工程中去;②修改目標(biāo)工程的.cmd文件,將bootloader這段代碼映射到片內(nèi)起始1 KB內(nèi)存區(qū),目標(biāo)工程中的其他代碼放在后面。

        (2)用16進(jìn)制轉(zhuǎn)換工具h(yuǎn)ex6x.exe從.out文件產(chǎn)生.hex文件。

        (3)用Flashburn軟件燒錄.hex文件。

        3.4 結(jié)果驗(yàn)證

        系統(tǒng)采用自主研發(fā)的DM642硬件平臺(tái),為了驗(yàn)證C語(yǔ)言bootloader程序的可行性與穩(wěn)定性,具體操作步驟如下:

        (1)編寫測(cè)試應(yīng)用程序,其功能是通過串口循環(huán)向PC機(jī)發(fā)送預(yù)定的數(shù)據(jù);

        (2)按照上述方法把程序燒寫到Flash中;

        (3)斷電,設(shè) 置 AEA[22∶21]為 “11”,即 EMIF boot啟動(dòng)方式;

        (4)系統(tǒng)與 PC串口連接、上電,查看PC機(jī)上的串口調(diào)試助手是否收到預(yù)定的數(shù)據(jù)。

        驗(yàn)證時(shí),若PC機(jī)上的串口調(diào)試助手收到的數(shù)據(jù)與DM642應(yīng)用程序發(fā)送的數(shù)據(jù)一致,則表明該方案可行。重復(fù)驗(yàn)證操作,每次都能收到預(yù)定的數(shù)據(jù),則表明該方案穩(wěn)定。

        本文的創(chuàng)新之處在于采用C語(yǔ)言實(shí)現(xiàn)了DM642的二級(jí)引導(dǎo)加載程序的設(shè)計(jì),不再需要使用TI公司提供的匯編程序例程進(jìn)行移植,提高了程序的可讀性和移植性。在實(shí)際項(xiàng)目中已經(jīng)證實(shí)了該方案可行性和穩(wěn)定性,同時(shí),該方案適用于TI C6000系列各種型號(hào),可以在該系列不同器件中方便地移植,為基于DM642的實(shí)際應(yīng)用開發(fā)提供了新的途徑。

        [1]TI.SPRS200N TMS320DM642 video/imaging fixed-point digital signal processor[S].2002.

        [2]張志濤,梁光明.基于 DM642的 Flash分頁(yè)二級(jí)引導(dǎo)程序設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2009(22):210-212.

        [3]韓非,胡春海.TMS320C6000系列DSP開發(fā)應(yīng)用技巧[M].北京:中國(guó)電力出版社,2008.

        [4]王躍宗,劉京會(huì).TMS320DM642 DSP應(yīng)用系統(tǒng)設(shè)計(jì)與開發(fā)[M].北京:人民郵電出版社,2009.

        [5]劉志發(fā),張東,楊艷,等.基于 DM642自啟動(dòng)的 Flash燒寫原理研究及實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2008(22):8-11.

        [6]李興友,游志勝.基于 DM642的大容量Flash引導(dǎo)加載方法研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2005,25(8):1939-1941.

        [7]胡海龍,彭啟琮.TMS320C6713基于 DSP/BIOS的二級(jí)BootLoader開發(fā)[J].現(xiàn)代電子技術(shù),2005(15):74-75.

        猜你喜歡
        堆棧串口應(yīng)用程序
        淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
        刪除Win10中自帶的應(yīng)用程序
        嵌入式軟件堆棧溢出的動(dòng)態(tài)檢測(cè)方案設(shè)計(jì)*
        基于堆棧自編碼降維的武器裝備體系效能預(yù)測(cè)
        USB接口的多串口數(shù)據(jù)并行接收方法探索
        基于藍(lán)牙串口適配器的GPS接收機(jī)與AutoCAD的實(shí)時(shí)無(wú)線通信
        基于并行控制的FPGA多串口拓展實(shí)現(xiàn)
        關(guān)閉應(yīng)用程序更新提醒
        電腦迷(2012年15期)2012-04-29 17:09:47
        一種用于分析MCS-51目標(biāo)碼堆棧深度的方法
        三星電子將開設(shè)應(yīng)用程序下載商店
        欧美国产亚洲精品成人a v| 女人高潮久久久叫人喷水| 国产在线观看无码免费视频| 中文在线а√天堂官网| 2021最新久久久视精品爱| 亚洲天堂av黄色在线观看| 超碰人人超碰人人| 性色av无码不卡中文字幕| 亚洲欧美日韩精品久久亚洲区色播 | 少妇被日到高潮的视频| 看女人毛茸茸下面视频 | 北岛玲日韩精品一区二区三区| 精品国产一区二区三区九一色| 精品久久久久久综合日本| 国产香蕉尹人在线观看视频| 亚洲韩国在线| 亚洲美女主播内射在线| 亚洲女同一区二区| 亚洲熟妇无码av不卡在线播放| 国产西西裸体一级黄色大片| 午夜av天堂精品一区| 国产男小鲜肉同志免费| 456亚洲人成影视在线观看| 国内精品熟女一区二区| 国产亚洲av另类一区二区三区| 色多多a级毛片免费看| 久热香蕉av在线爽青青| 国产女主播福利在线观看| 日本一区二区三区免费播放| 婷婷综合久久中文字幕蜜桃三电影| 国产美女胸大一区二区三区| 偷拍一区二区三区四区| 成人免费看www网址入口| 中国精品视频一区二区三区| 97成人精品在线视频| 小辣椒福利视频导航| 欧美日韩另类视频| 亚洲男人在线天堂av| 夜夜夜夜曰天天天天拍国产| 久久综合给合久久狠狠狠97色69 | 99久久无色码中文字幕人妻蜜柚|