久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

DSP/BIOS入門

 oskycar 2010-10-12
DSP/BIOS入門

1          DSP/BIOS簡介

DSP/BIOSCCS中集成的一個簡易的嵌入式實時操作系統(tǒng),能夠大大方便用戶編寫多任務(wù)應(yīng)用程序,。DSP/BIOS擁有很多實時嵌入式操作系統(tǒng)的功能,,如任務(wù)的調(diào)度,任務(wù)間的同步和通信,,內(nèi)存管理,,實時時鐘管理,中斷服務(wù)管理等,。有了它,,用戶可以編寫復(fù)雜的多線程程序,并且會占用更少的CPU和內(nèi)存資源,。

DSP/BIOS是一個可用于實時調(diào)度,、同步,,主機(jī)和目標(biāo)機(jī)通信,以及實時分析系統(tǒng)上的一個可裁減實時內(nèi)核,,它提供了搶占式的多任務(wù)調(diào)度,,對硬件的及時反應(yīng),實時分析和配置工具等,。同時提供標(biāo)準(zhǔn)的API接口,,易于使用。它是TIeXpressDSP實時軟件技術(shù)的的一個關(guān)鍵部分,。

 

1.1         DSP/BIOS的組件構(gòu)成

DSP/BIOS在一個主機(jī)/目標(biāo)機(jī)環(huán)境中的組件分布如 39所示:

39

         DSP/BIOS API:編寫的程序可以調(diào)用API接口函數(shù),;

         DSP/BIOS配置:創(chuàng)建的配置文件定義了程序使用的靜態(tài)BIOS對象;

         DSP/BIOS分析工具:集成在CCS上的一些BIOS分析工具可以對運行與目標(biāo)設(shè)備上的程序進(jìn)行監(jiān)測,,包括CPU負(fù)載,、時間、日志,、線程執(zhí)行狀態(tài)等,。

 

DSP/BIOS分為很多模塊,提供的所有API函數(shù)都按照模塊分類,,以模塊名加下劃線開頭來命名,,如 40所示為DSP/BIOS的全部模塊。

40

 

1.2         DSP/BIOS的啟動順序

當(dāng)DSP/BIOS的應(yīng)用程序啟動時,,一般遵循下面的步驟:

1)  初始化DSPDSP/BIOS程序從C/C++環(huán)境入口c_int00開始運行,。對于C6000平臺,在c_int00開始處,,系統(tǒng)棧指針(B15)和全局頁指針(B14)被分別設(shè)置在堆棧斷的末尾和.bss斷的開始,。控制寄存器AMR,、IER,、CSR等被初始化;

2)  初始化.bss段:當(dāng)堆棧被設(shè)置完成后,,初始化任務(wù)被調(diào)用,,利用.cinit的記錄對.bss斷的變量進(jìn)行初始化;

3)  調(diào)用BIOS_init初始化用到的各個模塊:BIOS_init調(diào)用MOD_init對配置用到的各個模塊進(jìn)行初始化,,包括HWI_init,、HST_initIDL_init等,;

4)  處理.pinit表:.pinit表包含一些指向初始化函數(shù)的指針,,對C++程序,全局對象類的創(chuàng)建也在此時完成,;

5)  調(diào)用用戶程序的main函數(shù):用戶main函數(shù)可以是C/C++函數(shù)或者匯編語言函數(shù),,對于匯編函數(shù),,使用_main的函數(shù)名。由于此時的硬件,、軟件中斷還沒有被使能,,所以在用戶主函數(shù)的初始化中需要注意,可以使能單獨的中斷屏蔽位,,但是不能調(diào)用類似HWI_enable的接口來使能全局中斷,;

6)  調(diào)用BIOS_start啟動DSP/BIOSBIOS_start在用戶main函數(shù)退出后被調(diào)用,,它負(fù)責(zé)使能使用的各個模塊并調(diào)用MOD_startup啟動每個模塊,。包括CLK_startupPIP_startup,、SWI_startup,、HWI_startup等,。當(dāng)TSK管理模塊在配置中被使用時,TSK_startup被執(zhí)行,,并且BIOS_start將不會結(jié)束返回,;

7)  執(zhí)行idle循環(huán):有兩種方式進(jìn)入idle循環(huán)。當(dāng)TSK管理模塊使能時,,任務(wù)調(diào)度器運行的TSK_idle任務(wù)調(diào)用IDL_loop在其它任務(wù)空閑時進(jìn)入idle循環(huán),;當(dāng)TSK模塊未被使用時,BIOS_start調(diào)用將返回,,并執(zhí)行IDL_loop進(jìn)入永久的idle循環(huán),,此時硬件和軟件中斷可以搶占idle循環(huán)得到執(zhí)行。由于idle循環(huán)中管理和主機(jī)的通信,,因此主機(jī)和目標(biāo)機(jī)之間的數(shù)據(jù)交互可以進(jìn)行了,。

 

1.3         DSP/BIOS的配置

DSP/BIOS的靜態(tài)配置是利用CCS提供的配置工具完成,包括圖形化配置工具和文本配置工具,。圖形化工具層次清晰,,比較直觀,而文本工具更加靈活,。通常使用圖形化的配置方法,下面對主要的模塊配置做一些介紹,。

1.3.1          Global Setting Properties

右鍵點擊“Global Settings”,,點擊“What’s This”,會彈出幫助窗口,,該文件中有Global Setting Properties的各項設(shè)置說明,。下面介紹的其他如MEMLOG等配置都可以用同樣的方法得到相應(yīng)的幫助,。

選擇彈出菜單中的“Properties”,,如 41所示,。

41

彈出如 42所示對話框:

42

一般選擇默認(rèn)設(shè)置即可,CLKOUT項需要根據(jù)DSP硬件單板提供的工作時鐘設(shè)置,,Himalaya通常運行在1GHz頻率,。

DSP Endian Mode 項根據(jù)實際情況設(shè)置。

 

1.3.2          MEM設(shè)置

MEM模塊設(shè)置中可以根據(jù)具體情況設(shè)置不同的內(nèi)存段,,其中存在一個默認(rèn)的IRAM片內(nèi)內(nèi)存段,。需要注意的是,首先必須在IRAM段上設(shè)置一個heap段落,,用于BIOS的內(nèi)部使用,。設(shè)置方法是在IRAM段上右鍵選擇“Properties”,彈出如 43對話框,,必須設(shè)置紅線框中的選項,,heap size可根據(jù)情況具體設(shè)置。

43

接下來配置MEM全局屬性,,右鍵點擊配置窗口中的“MEM…”,,如 44所示:

44

點擊“Properties”,彈出如 45所示窗口:

45

如圖紅線框中,,兩個heap段都要選擇為IRAM,,“Stack Size”項需要根據(jù)實際情況設(shè)置最大的棧大小,其他使用缺省設(shè)置即可,。

44的菜單中,,點擊“Insert MEM”可創(chuàng)建新的內(nèi)存段。在新的內(nèi)存段名上右鍵選擇“Properties”彈出如 43窗口,,根據(jù)情況設(shè)置base(基地址),、len(段長度)、heap size(用于MEM動態(tài)內(nèi)存分配的堆大?。?。

 

1.3.3          LOG設(shè)置

LOG用于輸出和記錄一些打印信息,默認(rèn)存在一個LOG_system對象,,是系統(tǒng)內(nèi)部用來處理打印信息的,,不需要去設(shè)置??梢栽黾有碌?/span>LOG對象,,用來在應(yīng)用程序中輸出打印信息。如 46,,在LOG標(biāo)簽上右鍵選擇“Insert LOG”,,填寫對象名LOG_test即建立了一個新的LOG對象。

46

LOG_test標(biāo)簽上右鍵選擇“Properties”,彈出如 47窗口,,可對此LOG對象屬性作一些設(shè)置,。具體設(shè)置含義可通過Help查看。

47

 

1.3.4          CLK設(shè)置

CLK屬性中通常選擇定時器Timer0作為DSP/BIOS的基準(zhǔn)時鐘,,計時分辯率設(shè)置為每秒1000次中斷,,在1GHz系統(tǒng)時鐘下,近似為每次定時中斷間隔999.996微秒,。Timer Mode選擇為32bit unchained模式,,即使用TCI6482TMR0TIMLO作為Timer0,而TIMHI還可以作其它用途使用,。CLK屬性配置界面如 48所示:

48

 

1.3.5          HWI設(shè)置

HWI(硬中斷)中包含HWI_INT4HWI_INT15可用來定義用戶自己的硬件中斷,,HWI_RESETHWI_NMIHWI_RESERVED不要去改動,。如 49,,每個硬HWI的優(yōu)先級從上到下逐漸降低。

49

選擇HWI_INT10為例,,來設(shè)置EMAC/MDIO的中斷,,需要填寫中斷事件號17,并且填寫中斷服務(wù)程序名(C函數(shù)前面需要加下劃線)如 50所示:

50

Dispatcher頁面,,選擇“Use Dispatcher”由BIOS代理控制中斷的確認(rèn)和清除,,不需要用戶中斷服務(wù)程序干預(yù),比較簡便,。如 51

51

   

1.3.6          SWI設(shè)置

SWI(軟中斷)的優(yōu)先級在HWI之后,,但是比TSK高,可以通過右鍵菜單中的“Insert SWI”創(chuàng)建一個SWI對象,,可以指定SWI內(nèi)部優(yōu)先級,,從0(最低)14(最高)。如 52

52

 

1.3.7          TSK設(shè)置

TSK Manager(任務(wù)管理器)中可以根據(jù)需要創(chuàng)建各種任務(wù),,任務(wù)間是根據(jù)優(yōu)先級搶占策略來進(jìn)行調(diào)度的,,TSK提供有多種優(yōu)先級別,包括-1(Suspend),、0(Idle),、1(最低)15(最高)。如 53

53

TSK Manager上右鍵選擇“Insert TSK”并填寫任務(wù)名稱后就可以創(chuàng)建一個任務(wù),,在相應(yīng)任務(wù)上右鍵選擇“Properties”可對任務(wù)屬性進(jìn)行設(shè)置,,如 54

54

Stack Size(最大堆棧大小)和Priority(優(yōu)先級)需要根據(jù)任務(wù)的具體情況進(jìn)行設(shè)置,。在頁面,填寫任務(wù)實體函數(shù)名(C函數(shù)前面加一個下劃線),,如 55

55

   

1.3.8          Synchronization設(shè)置

DSP/BIOS中任務(wù)間的通信和同步可由SEM,、MBX,、QUELCK四個模塊完成:

         SEM(信號量):用于任務(wù)同步和互斥,,有計數(shù)功能,,根據(jù)需要使用;

         MBX(郵箱):也用于任務(wù)同步,,可以傳遞少量數(shù)據(jù),,根據(jù)需要使用;

         QUE(隊列):可實現(xiàn)任務(wù)同步和資源的共享,,根據(jù)需要使用,;

         LCK(資源鎖):實現(xiàn)對共享資源的互斥,根據(jù)需要使用,。

四種同步模塊對象都可以通過各自的右鍵菜單中“Insert …”來創(chuàng)建,,并可對其屬性作相應(yīng)的設(shè)置。如 56所示:

56

 

1.3.9          Input/Output設(shè)置

    這里可以設(shè)置一些輸入/輸出相關(guān)的高級設(shè)置,,具體可通過CCS的幫助項來了解,。一般不需要進(jìn)行設(shè)置。只有RTDX(實時數(shù)據(jù)交換),,需要根據(jù)目標(biāo)環(huán)境的情況對數(shù)據(jù)交換模式進(jìn)行一下選擇,,用來在調(diào)試中主機(jī)和目標(biāo)機(jī)進(jìn)行數(shù)據(jù)交換??梢允欠抡嫫鳝h(huán)境的JTAG模式,,或者是模擬器環(huán)境的Simulator模式。如 57所示:

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多