<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>

    曙海教育集團(tuán)論壇DSP專區(qū)DSP6000系統(tǒng)開發(fā) → DSP/BIOS在TMS32OC6000編程中自舉引導(dǎo)方法


      共有7711人關(guān)注過本帖樹形打印

    主題:DSP/BIOS在TMS32OC6000編程中自舉引導(dǎo)方法

    美女呀,離線,留言給我吧!
    wangxinxin
      1樓 個(gè)性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


    加好友 發(fā)短信
    等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
    DSP/BIOS在TMS32OC6000編程中自舉引導(dǎo)方法  發(fā)帖心情 Post By:2010-11-22 14:26:20

    1 DSP/BIOS的優(yōu)點(diǎn)


    DSP/BIOS 是一個(gè)用戶可剪裁的實(shí)時(shí)操作系統(tǒng),主要由3部分組成:多線程實(shí)時(shí)內(nèi)核;實(shí)時(shí)分析工具;芯片支持庫。利用實(shí)時(shí)操作系統(tǒng)開發(fā)程序,可以方便快速地開發(fā)復(fù)雜的DSP程序。操作系統(tǒng)維護(hù)調(diào)度多線程的運(yùn)行,只需將定制的數(shù)字信號處理算法作為一個(gè)線程嵌入系統(tǒng)即可;芯片支持庫幫助管理外設(shè)資源,復(fù)雜的外設(shè)寄存器初始化可以利用直接圖形工具配置;實(shí)時(shí)分析工具可以幫助分析算法實(shí)時(shí)運(yùn)行情況。


    DSP/BIOS實(shí)時(shí)操作系統(tǒng)的圖形配置界面包括:

    (1)全局設(shè)置(system)— 包括內(nèi)存配置、芯片支持庫設(shè)置、endian模式設(shè)置等;

    (2)操作系統(tǒng)調(diào)度工具(scheduling)— 包括定時(shí)器、周期器、硬件中斷管理、軟件中斷管理、任務(wù)調(diào)度、系統(tǒng)空載任務(wù)函數(shù)等;

    (3)同步機(jī)制(synchronization)一一提供一般操作系統(tǒng)都具有的信號燈、郵箱、隊(duì)列、鎖4個(gè)工具;

    (4)芯片支持庫(chip support library)— 針對不同的DSP芯片幫助配置DSP的外設(shè)資源,最常用的有DMA,MCBSPEMIF,TIMER等的配置;

    (5)主機(jī)交互接口(input/output)— 提供DSP實(shí)時(shí)運(yùn)行時(shí)與主機(jī)通過仿真口和CCS(集成開發(fā)系統(tǒng))交互數(shù)據(jù)的機(jī)制;

    (6)調(diào)試工具(instrumentation)— 記錄器(LOG)可以提供調(diào)試信息,但是特別針對實(shí)時(shí)操作優(yōu)化;統(tǒng)計(jì)工具(STS)可以統(tǒng)計(jì)調(diào)試過程中的各種事件。


    通過使用 DSP/BIOS,我們可以:

    (1)使用多線程技術(shù)高效地管理DSP的運(yùn)行,以提高運(yùn)行效率;

    (2)使用標(biāo)準(zhǔn)接口的I/O和中斷;

    (3)高效地定義和配置系統(tǒng)資源,如系統(tǒng)內(nèi)存和中斷向量表;

    (4)通過實(shí)時(shí)分析工具對用戶應(yīng)用程序的運(yùn)行狀況實(shí)時(shí)查看;

    (5)向用戶的目標(biāo)應(yīng)用程序添加數(shù)據(jù)結(jié)構(gòu)并圍繞一組相關(guān)線程來加以組織:

    (6)幾乎所有的初始化都可以通過圖形化配置來完成,而不必詳細(xì)了解各個(gè)寄存器的每一位所代表的意義;


    (7)通過調(diào)用DSP/BIOS或CSL(芯片支持庫)的API庫函數(shù),使代碼效率更高、程序可讀性和可移植性更強(qiáng),從而使得向新的TMS320DSP移植更加容易。例如:開全局中斷可以用HWI_enable(),啟動(dòng)DMA可以用DMA_start(hDMA0),這樣比直接通過寄存器配置來完成具有更強(qiáng)的可讀性和可移植性,而且不會(huì)出錯(cuò),也不必查閱相應(yīng)的寄存器信息。

    2 DSP/BIOS的資源優(yōu)化


    由于 DSP/BIOS的很多功能只有在調(diào)試時(shí)使用或者根本不用,如果不需要用到的部分都使用默認(rèn)的配置將會(huì)占用較大的內(nèi)存資源,如果用戶程序較大就會(huì)造成DSP內(nèi)存資源緊張或不足。由于DSP/BIOS是一個(gè)可剪裁的操作系統(tǒng),可以很方便地將不需要用到的功能關(guān)閉,以節(jié)省空間。表1列出了減少DSP/BIOS所占資源的幾種措施以及在C62x中可以減少的存儲(chǔ)空間大小。


    表中減少的空間大小只作為參考,隨著CCS的版本不一樣可能會(huì)有一定差別。筆者在CCS2.20.18上編寫了一個(gè)簡單的程序,DSP采用的是TMS320C6203,主程序采用C語言編寫。優(yōu)化前的.out文件大小為78.6KB,轉(zhuǎn)化成二進(jìn)制文件為28.3KB;優(yōu)化后的.out文件為29.4KB,轉(zhuǎn)化成二進(jìn)制文件為4.4KB。

    3 程序的自舉引導(dǎo)方法


    TMS320C6000器件可以設(shè)置成3種自舉方式,其加載過程分別敘述如下:


    ①不加載 。CPU直接從存儲(chǔ)器的0地址處開始執(zhí)行指令。如果系統(tǒng)中使用的是SDRAM,那么CPU 會(huì)先掛起,直到SDRAM的初始化完成。TMS320C6x1x 不具有這類方式。


    ②ROM 加載。位于外部存儲(chǔ)空間的ROM中的程序首先通過DMA/EDMA搬入地址。處。盡管加載過程是在芯片外部被復(fù)位信號釋放以后才開始的,但是當(dāng)芯片仍處于內(nèi)部復(fù)位保持時(shí),就開始了上述的傳輸過程了。用戶可以指定外部ROM 的存儲(chǔ)寬度,EMIF會(huì)自動(dòng)將相鄰的8bit或16bit數(shù)據(jù)合并成32bit。ROM中的程序必須以little endian的格式存儲(chǔ)。用DMA/EDMA進(jìn)行的這一加載過程是一個(gè)單幀的數(shù)據(jù).tk傳輸。傳輸過程完成
    之后,CPU退出復(fù)位狀態(tài),開始執(zhí)行地址0處的指令。對于 TMS320C6x0x,DMA使用默認(rèn)的ROM時(shí)序從CEl空間中拷貝64KB數(shù)據(jù)到地址0處。

    對于 TMS320C6x1x,EDMA使用默認(rèn)的ROM時(shí)序從CE1空間(C64x從EMIFB CE1空間)拷貝1KB數(shù)據(jù)到地址0處。

    圖片點(diǎn)擊可在新窗口打開查看
    ③主機(jī) (HPI)引導(dǎo)。CPU停留在保持狀態(tài),其余硬件部分均保持正常狀態(tài)。在這期間,外部主機(jī)通過主機(jī)口或PCI口(如6205或64x)初始化CPU的存儲(chǔ)空間。主機(jī)完成所有的初始化工作后,將主機(jī)口控制寄存器中的DSPINT位設(shè)置為1,結(jié)束引導(dǎo)過程。此時(shí)CPU退出復(fù)位狀態(tài),開始執(zhí)行地址0處的指令。在主機(jī)引導(dǎo)過程中,主機(jī)可以對DSP所有的存儲(chǔ)空間進(jìn)行讀和寫。

    其中,用得最多的是ROM加載。為了生成可以從ROM中自舉的代碼,就要注意DSP/BIOS中的存儲(chǔ)器設(shè)置。對于TMS320C6x0x,一般而言,64KB的代碼就足夠了,那樣就只需選擇好各個(gè)代碼段的Load Address和Run Address就可以了。DSP/BIOS將自動(dòng)生成cmd文件,而不需用戶自己編寫。如果64KB不夠,則需自己編寫boot程序。而對于TMS320C6x1x ,1KB的程序一般是不夠用的,所以要自己編寫boot程序。下面以TMS320C6711為例介紹DSP/BIOS中程序空間的配置以及boot程序的編寫方法。

    TMS320C6711內(nèi)部含有64KB的RAM,既可以配置為L2Cache,也可以配置成SRAM。一般而言,在系統(tǒng)上電復(fù)位時(shí)配置為SRAM,將1KB的引導(dǎo)程序從ROM中拷貝到SRAM中,而在引導(dǎo)程序中將用戶的程序從ROM中拷貝到SBSRAM中或SDRAM中去執(zhí)行。在主程序的初始化部分將內(nèi)部RAM配置為高速緩存,這樣可以提高程序的運(yùn)行速度。當(dāng)然,也可以把內(nèi)部RAM用作SRAM,把全部的用戶程序都引導(dǎo)到其中來執(zhí)行,
    這樣可以不用外接SBSRAM或SDRAM 。

    首先在 DSP/BIOS的存儲(chǔ)器段管理器(Memory Section Manager)中指定如下幾段:
    FLASH_BOOT:or igin=000000000,le ngth=0x400;(存儲(chǔ)自舉代碼)
    FLASH_REST:or igin=0x90000400,le ngth=Ox1fc00;(存儲(chǔ)主程序代碼等)
    IRAM :or igin= 000000000,length= 0x10000;(內(nèi)部RAM)
    SDRAM 或SBSRAM:origin=Ox80000000(CEO),length與外接存儲(chǔ)器大小有關(guān),如果沒有則可省略。


    上電復(fù)位時(shí),F(xiàn)LASHesBOOT中的數(shù)據(jù)被復(fù)制到IRAM 中從地址0開始的一段,然后從地址0開始執(zhí)行程序。因此,在這段代碼中要把其它相應(yīng)的段從加載地址復(fù)制到運(yùn)行地址。在DSP/BIOS程序中,所用到的段及其相應(yīng)的加載地址和運(yùn)行地址建議按表2、表3安排。

    圖片點(diǎn)擊可在新窗口打開查看

    圖片點(diǎn)擊可在新窗口打開查看

    在 BOOT 程序中,首先要初始化EMIF的相關(guān)寄存器,特別是有外接存儲(chǔ)器時(shí)(如SDRAM或SBSRAM),一定要先初始化相關(guān)寄存器,主要是EMIF全局控制寄存器和CE空間控制寄存器。然后將加載地址位于ROM中而運(yùn)行地址位于RAM中的段從ROM中復(fù)制到RAM中。具體的加載地址和運(yùn)行地址可以在map文件中查到。最后,將程序指針跳轉(zhuǎn)到主程序入口(c_int00)開始執(zhí)行。BOOT程序如下:

    .sect " .myBootCode "
    .global myBootCode


    .ref _c_int00


    ;====myBootCode ===


    myBootCode :

    ;***************

    ;Configure EMIF


    ;***************

    ...... ......

    ;***************


    ;CopySections


    ;***************

    ...... ......

    ;***************

    ;StartProgram


    ;***************


    mvkl .S 2 _c_int00, B0


    mvkh .S 2 _c_int00, B0


    B . S2 B0


    ; jump to _c_int00


    nop 5

    編寫完 boot程序后,在cmd文件中加上一句:.my_boot_code: {} load=FLASH_BOOT,run=IRAM


    支持(0中立(0反對(0單帖管理 | 引用 | 回復(fù) 回到頂部

    返回版面帖子列表

    DSP/BIOS在TMS32OC6000編程中自舉引導(dǎo)方法








    簽名
    主站蜘蛛池模板: 国产偷v国产偷v国产| 放荡的女按摩师2| 午夜精品在线视频| 麻豆波多野结衣| 在线观看国产情趣免费视频| 久久婷婷国产综合精品| 欧美午夜片欧美片在线观看| 办公室啪啪激烈高潮动态图| 青青国产线免观看手机版精品| 国内大片在线免费看| 中文字幕日韩专区精品系列| 日韩人妻无码精品无码中文字幕| 亚洲精品成人图区| 秀婷和程仪全集| 国产亚洲一区二区在线观看| 337p中国人体啪啪| 大bbwbbwbbwvideos| 中文字幕国产综合| 日本一卡2卡3卡4卡无卡免费| 亚洲成av人片在线看片| 波多野结衣一区在线| 欧美成人免费午夜影视| 国产动作大片中文字幕| 666精品国产精品亚洲| 在线观看亚洲av每日更新| 中文字幕色婷婷在线视频| 日本欧美视频在线观看| 亚洲卡一卡2卡三卡4麻豆| 欧美日韩电影在线| 免费无码专区毛片高潮喷水| 精品无人乱码一区二区三区| 国产在线视频一区二区三区| 884hutv四虎永久7777| 在线a免费观看最新网站| 一级特黄aaa大片免费看| 成年人性生活视频| 久久精品国产久精国产一老狼 | 中文字幕av一区| 推油少妇久久99久久99久久| 五月天综合视频| 最近免费中文字幕视频高清在线看 |