<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于A(yíng)RM的IEEE802.11bMAC層協(xié)議IP核設計

基于A(yíng)RM的IEEE802.11bMAC層協(xié)議IP核設計

作者: 時(shí)間:2012-10-29 來(lái)源:網(wǎng)絡(luò ) 收藏

由SDL描述轉換出的C/C++代碼,與環(huán)境函數、Runtime庫以及C/C++庫一起用的編譯器編譯,產(chǎn)生面向的可執行程序。其中,環(huán)境函數主要用描述系統運行的具體物理環(huán)境。由SDT工具根據用戶(hù)所作的系統描述自動(dòng)生成一個(gè)結構框架,然后用戶(hù)根據的采用的具體硬件平臺環(huán)境編輯這個(gè)文件,以描述真實(shí)的系統工作環(huán)境。Runtime庫主要包含SDL預定義的數據類(lèi)型、操作符的實(shí)現、調度函數、運行錯誤處理等信息。SDT工具提供簡(jiǎn)單的Runtime庫。C advanced/C micro代碼生成器都有各自對應的Runtime庫。C/C++庫是ADS本身攜帶的函數庫,主要包含ISO標準定義的C/C++庫函數。

在使用編譯器編譯后,產(chǎn)生ARM的目標文件(.o文件)。如果還有用ARM匯編指令編寫(xiě)的匯編程序,可用匯編器(armasm)匯編,產(chǎn)生相應的目標文件。把所有的目標文件用鏈接器(armlink)鏈接,便可得到能在A(yíng)RM7TDMI處理器上執行的映像文件(.aof文件)。這時(shí)可以用ADS提供的調試工具AXD進(jìn)行程序的調試。

因為SDL的系統設計在高層進(jìn)行了仿真和驗證,所以調試的主要工作集中在驅動(dòng)、中斷和環(huán)境函數的調試上。對SDL系統的調度主要是通過(guò)仿真確定對系統性能影響嚴重的模塊并對其進(jìn)行優(yōu)化以及系統在實(shí)時(shí)運行狀態(tài)下能否滿(mǎn)足設計要求。如果在調試中發(fā)現問(wèn)題需要修改SDL的系統設計,可重新執行如圖4所示的流程,直到滿(mǎn)足設計要求。


5 問(wèn)題及分析

(1)代碼生成器的選擇問(wèn)題。SDT提供三種代碼生成器,即C basic、C advanced和C micro。其中C basic是最簡(jiǎn)單的代碼產(chǎn)生器,一般只用于在SDT開(kāi)發(fā)環(huán)境中仿真系統的行為。C advanced和C Micro是面向應用的代碼產(chǎn)生器,可以產(chǎn)生高效的代碼。C advanced支持幾乎所有的SDL概念,對SDL設計的約束較少。C micro可以產(chǎn)生性能更優(yōu)越、占用存儲空間更小的代碼,代價(jià)是對SDL設計的約束較多,例如不支持使能條件、連續信號、過(guò)程的繼承等。

(2)設計優(yōu)化問(wèn)題。在進(jìn)行系統設計時(shí),應注意的設計要點(diǎn)有:當輸出信號時(shí),應帶上接收進(jìn)程的PID,這樣可以減少對信號進(jìn)行路由的開(kāi)銷(xiāo);信號應盡量少帶占用大量存儲空間的參數,因為在信號傳遞時(shí)同時(shí)復制信號的參數,占用大量存儲空間的參數將占用過(guò)多存儲空間并引起附加延時(shí);兩個(gè)狀態(tài)之間的傳輸操作不宜過(guò)多,否則會(huì )帶來(lái)較大延時(shí)(可以用實(shí)時(shí)仿真確定影響時(shí)延的關(guān)鍵路徑并進(jìn)行優(yōu)化);如果系統中有比較復雜的模塊,對時(shí)延又有嚴格要求,可以用C/C++或匯匯編單獨編寫(xiě),也可用硬件完成,如圖1的WEP算法模塊。

(3)與RTOS的集成問(wèn)題。用戶(hù)可以不使用RTOS,而使用SDT提供的缺省內核程序,也可以自己編寫(xiě)所需的調度算法、內存管理、中斷處理等。SDT工具直接支持的RTOS有Solaris(Posix 4)、Win32、VxWorks和OSE delta。SDT提供三種與RTOS的集成方式,即松集成、線(xiàn)程集成和緊集成。松集成把整個(gè)系統映射為OS的一個(gè)任務(wù),使用SDT提供的標準內核進(jìn)行調度,每次進(jìn)行一個(gè)完整的傳輸。因此松集成調度的最大延時(shí)是SDL設計中狀態(tài)之間傳輸的最長(cháng)時(shí)間。緊集成把每個(gè)進(jìn)程映射為一個(gè)OS的任務(wù),可以使用OS的調度算法,給不同的任務(wù)以不同的優(yōu)先級執行,因而性能好于松集成。線(xiàn)程集成則是兩者的折衷。

(4)環(huán)境函數的編寫(xiě)。環(huán)境函數主要是完成四個(gè)函數的編寫(xiě)。XInitEnv():主要用于完成系統的初始化操作。XInEnv():主要用于接收來(lái)自硬件或RTOS的信號并轉換成SDL系統所需要的信號。調度器每隔一段時(shí)間輪詢(xún)一次xInEnv()函數,檢查是否有信號輸入。如果發(fā)現有信號輸入則發(fā)送適當信號給SDL系統。XInEnv()函數中不能使用阻塞函數,如getchar()等。阻塞函數會(huì )妨礙調度器處理SDL系統。XOutEnv():主要用于接收來(lái)自SDL系統的信號并轉換成對RTOS的信號或對硬件的操作。當SDL系統有信號輸出時(shí),則調用xOutEnv()函數,根據用戶(hù)編寫(xiě)的代碼產(chǎn)生相應的物理信號或硬件操作。XCloseEnv():用來(lái)完成關(guān)閉環(huán)境的操作。

參考文獻:

[1].RISCdatasheethttp://www.dzsc.com/datasheet/RISC_1189725.html.
[3].ROMdatasheethttp://www.dzsc.com/datasheet/ROM_1188413.html.
[4].MSCdatasheethttp://www.dzsc.com/datasheet/MSC_1580913.html.
[5].PCFdatasheethttp://www.dzsc.com/datasheet/PCF_1201585.html.


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>