一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

DSP/BIOS入門-TI DSP 論壇論壇 - 21ic電子技術(shù)論壇

 文心雕龍_01 2015-09-29
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 API:編寫的程序可以調(diào)用API接口函數(shù);

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

DSP/BIOS分析工具:集成在CCS上的一些BIOS分析工具可以對運(yùn)行與目標(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開始運(yùn)行。對于C6000平臺,在c_int00開始處,系統(tǒng)棧指針(B15)和全局頁指針(B14)被分別設(shè)置在堆棧斷的末尾和.bss斷的開始??刂萍拇嫫?/font>AMRIER、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_initHST_init、IDL_init等;
4)
處理.pinit表:.pinit表包含一些指向初始化函數(shù)的指針,對C++程序,全局對象類的創(chuàng)建也在此時完成;
5)
調(diào)用用戶程序的main函數(shù):用戶main函數(shù)可以是C/C++函數(shù)或者匯編語言函數(shù),對于匯編函數(shù),使用_main的函數(shù)名。由于此時的硬件、軟件中斷還沒有被使能,所以在用戶主函數(shù)的初始化中需要注意,可以使能單獨(dú)的中斷屏蔽位,但是不能調(diào)用類似HWI_enable的接口來使能全局中斷;
6)
調(diào)用BIOS_start啟動DSP/BIOSBIOS_start在用戶main函數(shù)退出后被調(diào)用,它負(fù)責(zé)使能使用的各個模塊并調(diào)用MOD_startup啟動每個模塊。包括CLK_startupPIP_startupSWI_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)度器運(yùn)行的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
右鍵點(diǎn)擊“Global Settings”,點(diǎn)擊“What’s This”,會彈出幫助窗口,該文件中有Global Setting Properties的各項設(shè)置說明。下面介紹的其他如MEM、LOG等配置都可以用同樣的方法得到相應(yīng)的幫助。
選擇彈出菜單中的“Properties”,如圖 41所示。

41
彈出如圖 42所示對話框:


42
一般選擇默認(rèn)設(shè)置即可,CLKOUT項需要根據(jù)DSP硬件單板提供的工作時鐘設(shè)置,Himalaya通常運(yùn)行在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全局屬性,右鍵點(diǎn)擊配置窗口中的“MEM…”,如圖 44所示:

44
點(diǎn)擊“Properties”,彈出如圖 45所示窗口:

45
如圖紅線框中,兩個heap段都要選擇為IRAM,“Stack Size”項需要根據(jù)實際情況設(shè)置最大的棧大小,其他使用缺省設(shè)置即可。
在圖 44的菜單中,點(diǎn)擊“Insert MEM”可創(chuàng)建新的內(nèi)存段。在新的內(nèi)存段名上右鍵選擇“Properties”彈出如圖 43窗口,根據(jù)情況設(shè)置base(基地址)、len(段長度)、heap size(用于MEM動態(tài)內(nèi)存分配的堆大小)。

LOG用于輸出和記錄一些打印信息,默認(rèn)存在一個LOG_system對象,是系統(tǒng)內(nèi)部用來處理打印信息的,不需要去設(shè)置??梢栽黾有碌?/font>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模式,即使用TCI6482的TMR0的TIMLO作為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


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ù)間的通信和同步可由SEMMBX、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


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

      0條評論

      發(fā)表

      請遵守用戶 評論公約

      類似文章 更多

      国产极品粉嫩尤物一区二区| 亚洲人妻av中文字幕| 国产一区二区三区午夜精品| 日韩欧美一区二区久久婷婷 | 97人妻精品一区二区三区男同| 免费一级欧美大片免费看| 视频在线观看色一区二区| 欧美黑人精品一区二区在线| 亚洲精品中文字幕一二三| 一区二区日本一区二区欧美| 国产成人在线一区二区三区| 人妻露脸一区二区三区| 亚洲欧美日韩另类第一页| 国产又大又黄又粗又免费| 亚洲日本韩国一区二区三区| 国产精品成人一区二区三区夜夜夜 | 国产一区二区三区免费福利| 日本熟妇五十一区二区三区| 欧美日韩精品久久第一页| 亚洲第一视频少妇人妻系列| 国产不卡的视频在线观看| 日韩不卡一区二区在线| 日韩欧美第一页在线观看| 欧美丝袜诱惑一区二区| 亚洲综合香蕉在线视频| 国产色一区二区三区精品视频 | 亚洲欧洲在线一区二区三区| 国产又爽又猛又粗又色对黄| 久久经典一区二区三区| 中文字幕乱码免费人妻av| 欧美精品女同一区二区| 欧美一级特黄特色大色大片| 久久少妇诱惑免费视频| 免费在线观看欧美喷水黄片| av在线免费播放一区二区| 欧美日韩久久精品一区二区| 女同伦理国产精品久久久| 欧美成人黄色一级视频| 不卡视频在线一区二区三区| 国产av熟女一区二区三区蜜桃| 国产欧美日韩精品一区二区|