FFTC驅(qū)動軟件概要設(shè)計_第1頁
FFTC驅(qū)動軟件概要設(shè)計_第2頁
FFTC驅(qū)動軟件概要設(shè)計_第3頁
FFTC驅(qū)動軟件概要設(shè)計_第4頁
FFTC驅(qū)動軟件概要設(shè)計_第5頁
免費預(yù)覽已結(jié)束,剩余12頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 / 17 文檔可自由編輯打印No. FFTCFFTCFFTC 協(xié)處理器概要設(shè)計協(xié)處理器概要設(shè)計協(xié)處理器概要設(shè)計協(xié)處理器概要設(shè)計書書書書Version: 0.1i / 17 文檔可自由編輯打印1. 版權(quán)聲明版權(quán)聲明北京星河亮點技術(shù)股份有限公司 2012。版權(quán)所有,保留一切權(quán)利。未經(jīng)北京星河亮點技術(shù)股份有限公司的書面許可,任何人或組織不得以任何形式修改或摘錄本文檔的任何部分。Copyright 2012 Beijing Starpoint Technology Company Limited. All Rights Reserved.No part of this manual may be r

2、eproduced in any form, written or otherwise, without the express written permission of Beijing Starpoint Technology Company Limited.ii / 17 文檔可自由編輯打印2. 修改記錄修改記錄修改人修改人日期日期修改內(nèi)容修改內(nèi)容版本號版本號石楠2012.6.28創(chuàng)建文檔0.1 / 17 文檔可自由編輯打印3. 目錄目錄1. 版權(quán)聲明版權(quán)聲明 .II2. 修改記錄修改記錄 .III3. 目錄目錄.I4. 引言引言.24.1 編寫目的 .24.2 定義.24.3 參考資料

3、 .25. 概述概述.35.1 硬件組成 .35.2 特點.35.3 FFTC 驅(qū)動功能.35.4 CPPI/QM 用法.46. 設(shè)計設(shè)計.56.1 數(shù)據(jù)結(jié)構(gòu) .56.2 API 使用.56.2.1 系統(tǒng)級初始化.56.2.2 應(yīng)用級初始化.56.2.3 發(fā)送通路.76.2.4 接收通路.86.2.5 關(guān)閉釋放 FFTC 資源.86.2.6 其它.86.3 資源分配 .97. 單元測試單元測試.111 / 17 文檔可自由編輯打印4. 引言引言4.1編寫目的編寫目的本文檔給出 EBP 項目中 DSP C6670 FFTC 協(xié)處理器的設(shè)計及使用方法。便于 DSP 研發(fā)人員進行協(xié)處理器的開發(fā)。4.

4、2項目背景項目背景EBP 使用了 C6670 DSP 作為基帶系統(tǒng)處理器。C6670 DPS 帶有 3 個 FFTC 協(xié)處理器,可以支持 LTE 以及 WIMAX 的 FFT/IFFT 處理。為了使應(yīng)用程序能夠快捷有效的利用FFTC,決定開發(fā) FFTC 驅(qū)動程序。用 FFTC 代替目前產(chǎn)品中的軟件實現(xiàn),對提高系統(tǒng)性能有重大意義。4.3定義定義FFTFast Fourier TransformIFFTInverse Fase Fourier TransformCPPICommunications Port Programming InterfaceQMQueue ManagerQMSSQueue

5、 Manager SubsystemHCHardware CoprocessorPSProtocol SpecificDMADirect Memory AccessSOP Start of PacketFDQFree Descriptor QueueCPCyclic PrefixLTELong Term Evolution4.4參考資料參考資料1.EBP 系統(tǒng)設(shè)計書 v0.12.Multicore Navigator (CPPI) for KeyStone Devices Users Guide (Rev. D)3.FFTC for KenStone Devices Users Guide4

6、FFTC_SDS2 / 17 文檔可自由編輯打印5. 軟件概述軟件概述5.1功能概述功能概述FFTC 驅(qū)動軟件為應(yīng)用程序提供一系列 API,供應(yīng)用程序控制 FFTC 協(xié)處理器完成上下行 FFT/IFFT 處理,從而代替了應(yīng)用通過軟件程序?qū)崿F(xiàn)算法,有利于提高處理效率和縮減開發(fā)時間。高度的封裝 該驅(qū)動程序封裝了 Packet DMA、操作系統(tǒng)、多核同步等實現(xiàn),應(yīng)用無需關(guān)注這些細節(jié),只需要關(guān)注算法相關(guān)的配置。獨立的操作系統(tǒng) 操作系統(tǒng)的獨立可以使驅(qū)動程序方便從一個操作系統(tǒng)移植到另一個操作系統(tǒng)。多核意識C6670 FFTC 協(xié)處理器的驅(qū)動程序支持多核,可以在多核系統(tǒng)上運行。應(yīng)用在調(diào)用驅(qū)動 API時,無需

7、考慮跨核問題。5.1.1FFTC 實現(xiàn)功能實現(xiàn)功能 實現(xiàn) FFT 與 IFFT LTE 中的 7.5kHz 頻移 添加/去除 CP 補零操作 對每級蝶形運算實現(xiàn)動態(tài)或用戶自定義方式的縮放5.1.2FFTC 驅(qū)動功能驅(qū)動功能FFTC 協(xié)處理器由如下子模塊構(gòu)成:配置寄存器 FFTC 有 4 組配置寄存器。4 組寄存器的設(shè)置是相同的,且都包含 5 個寄存器。每 組對應(yīng)一個發(fā)送隊列。配置寄存器用于設(shè)置 DFT/IDFT 計算時所需的配置參數(shù)。FFT engine 執(zhí)行 DFT/IDFT 運算處理的模塊。CPPI DMA FFT engine 的 I/O 口,F(xiàn)FTC 使用多核導(dǎo)航儀接收輸入數(shù)據(jù),發(fā)送輸

8、出數(shù)據(jù)。多核 導(dǎo)航儀搬運數(shù)據(jù)時,我不需要 CPU 的參與。FFTC 流接口 FFTC 流接口用于連接多核導(dǎo)航儀與 FFT engine。FFTC 調(diào)度器 FFTC 多核導(dǎo)航儀給 FFT engine 提供了多個發(fā)送隊列。FFTC 調(diào)度器的任務(wù)是要根據(jù)優(yōu)先級選擇出這些發(fā)送隊列里下一個將要處理的數(shù)據(jù)包。3 / 17 文檔可自由編輯打印FFT engine 與 CPPI/QM 子系統(tǒng)有著密切的關(guān)系,CPPI/QM 子系統(tǒng)是用來發(fā)送 FFT 請求和接收輸出結(jié)果的唯一途徑。5.2組成與結(jié)構(gòu)組成與結(jié)構(gòu)5.2.1硬件組成硬件組成 FFTC 的驅(qū)動程序包括三個功能:FFTC 外設(shè)管理 驅(qū)動程序初始化 FFTC

9、 例程,并管理 FFTC 例程的配置及資源。驅(qū)動將每個 FFTC 例程相互間視為獨立的,并分別管理它們。CPPI 資源管理 當(dāng)需要如 CPPI 通道,流,buffer 描述符等內(nèi)部資源時,驅(qū)動程序?qū)λ?CPPI 資源進行管理,對應(yīng)用程序僅提供相應(yīng)配置。QMSS 隊列管理當(dāng)需要使用隊列來發(fā)送和接收數(shù)據(jù)時,驅(qū)動會建立并管理這些隊列。5.2.2軟件結(jié)構(gòu)軟件結(jié)構(gòu)FFTC 驅(qū)動軟件結(jié)構(gòu)為:FFTC 的驅(qū)動分兩層,低級驅(qū)動(LLD, Low Level Driver)和高級驅(qū)動(HLD, High Level Driver) 。低級驅(qū)動通過調(diào)用 CSL API 直接訪問芯片寄存器;高級驅(qū)動則以功能為出

10、4 / 17 文檔可自由編輯打印發(fā)點,對低級驅(qū)動進行封裝,對上層應(yīng)用提供功能 API。考慮到可調(diào)可測需求,LLD 也對上層應(yīng)用開放。5.3軟件外部環(huán)境軟件外部環(huán)境5.3.1硬件方面硬件方面本軟件運行于 EBP 基帶板上的 C6670DSP。5.3.2軟件方面軟件方面該驅(qū)動軟件基于 TI 提供的開發(fā)包(PDK)進行開發(fā)。開發(fā)包版本為:pdk_C6670_1_0_0_20。IDE:Code Composer Studio 5.2。5.4設(shè)計約束設(shè)計約束5.4.1需求約束需求約束FFTC 驅(qū)動軟件設(shè)計基于 EBP 系統(tǒng)設(shè)計框架。5 / 17 文檔可自由編輯打印6. 驅(qū)動軟件設(shè)計驅(qū)動軟件設(shè)計6.1數(shù)據(jù)

11、結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)FFTC 發(fā)送對象 FFTC 發(fā)送對象是利用驅(qū)動程序來發(fā)送或提交發(fā)送請求數(shù)據(jù)時使用的。 發(fā)送對象決定了用于提交請求的發(fā)送隊列號、發(fā)送隊列打開的模式(共享/專用) 、 發(fā)送對象也被發(fā)送描述符用來提交請求數(shù)據(jù)。 一個應(yīng)用程序建立一個發(fā)送對象。 當(dāng)由驅(qū)動程序來管理發(fā)送描述符時,驅(qū)動程序為發(fā)送對象創(chuàng)建一個發(fā)送自由描述符 隊列,同時為其分配 buffer,并預(yù)先將發(fā)送自由描述符及附帶的 buffer 放在發(fā)送自由描 述符隊列里。FFTC 接收對象 FFTC 接收對象是利用驅(qū)動程序來接收 FFT engine 處理后的輸出結(jié)果。 接收對象了決定用于接收處理結(jié)果的接收隊列號、接收處理結(jié)果的方式(

12、中斷 /poll) 、用于接收對象的終端配置、流配置。 一個應(yīng)用程序建立一個接收對象,不同的接收對象對應(yīng)一個接收隊列,但是多個應(yīng)用程序可以共用同一個流和接收自由描述符隊列。FFTC 例程對象 FFTC 例程對象用于保存 FFTC 例程號。 一個 FFTC 例程對象包含如下數(shù)據(jù)結(jié)構(gòu):FFTC 發(fā)送對象、FFTC 流對象、FFTC 接收對象信息。C6670 中,F(xiàn)FTC 有 3 個例程(FFTC_A、FFTC_B、FFTC_C) 。每個例程對應(yīng)有 4 個發(fā)送隊列(TxQ) ,4 個接收隊列(RxQ),8 個流(flow)。6.2資源分配資源分配 FFTC 協(xié)處理器用到的資源有:發(fā)送隊列,接收隊列,

13、收集器通道,流。對資源合理的分配有利于高效的使用協(xié)處理器。C6670 中有 3 個 FFTC 協(xié)處理器,合理的分配這 3 個協(xié)處理器也是必要的。 C6670 共有 8192 個隊列,其中用于 FFTC 的 3 個例程的發(fā)送隊列已做了明確的劃分,F(xiàn)FTC 協(xié)處理器將能夠被高優(yōu)先級收集器使用的隊列用作接收隊列,需要對接收隊列和收集器通道進行分配。且每個接收隊列都有其對應(yīng)的一個中斷事件,每個接收隊列和中斷事件映射到一個特定 DSP core。 設(shè)計中使用一個變量名為 process ID 的參數(shù)來映射使用的資源。process ID 的取值為011,一個 process ID 對應(yīng)一個 FFTC 進

14、程,其映射的資源包括:FFTC 例程號,發(fā)送隊列號,接收隊列號,對應(yīng)于接收隊列的中斷事件號,接收端使用的收集器通道號。資源分配如表 6-1 中所示。6 / 17 文檔可自由編輯打印表 6-1 FFTC 資源分配核號FFTC0不使用1不使用FFTC_Aprocess ID:03ACC Channel: 2,6,10,14Rx Queue: 706,710,714,718Tx Queue:688691Event:48,49,50,51FFTC_Bprocess ID:47ACC Channel: 18,22,26,30Queue: 722,726,730,734Tx Queue:692695Eve

15、nt:52,53,54,552FFTC_C不使用FFTC_A不使用FFTC_B不使用3FFTC_Cprocess ID:811ACC Channel: 3,7,11,15Queue: 707,711,715,719Tx Queue:864867Event:48,49,50,516.3CPPI/QM在 FFTC 協(xié)處理器架構(gòu)中,多核導(dǎo)航儀(CPDMA)用來使能 FFT engine,并用一種簡單的方式使 FFT engine 被各個核共享,并訪問各個核上運行的多個應(yīng)用。為此,給每個FFTC 例程的 CPDMA 分配 4 個 CPPI/QM 隊列,8 個 CPPI 流。FFTC 發(fā)送隊列 FFTC

16、 發(fā)送隊列屬于 QMSS 隊列。一個 FFTC 例程有 4 個發(fā)送隊列,每個發(fā)送隊列可以被設(shè)置為不同的優(yōu)先級。 發(fā)送隊列有兩種模式:共享和專用。 專用模式下,發(fā)送隊列僅在隊列打開時配置一次。應(yīng)用程序運行中所有的 FFT 請求都使用相同的配置。當(dāng)應(yīng)用的 FFT 數(shù)據(jù)有固定的模式時,適合采用專用模式。這種模式的缺點是隊列設(shè)置了配置后,隊列的配置無法更改,只有關(guān)閉隊列并重新打開隊列后,才能夠更改隊列的配置。 共享模式下,在隊列使用時進行配置,這種模式下,多個應(yīng)用程序的不同的 FFT 請求可以使用同一個隊列,因此每個包可以通過獨立的配置來處理具體的數(shù)據(jù)包。共享模式適用于不固定的 FFT 數(shù)據(jù)配置。這種

17、模式的缺點是每個由驅(qū)動發(fā)送給 engine 的 FFT 請求都7 / 17 文檔可自由編輯打印必須配置其所使用的 FFT 隊列。FFTC CPPI 流FFTC CPPI 流指定了輸出 FFT 結(jié)果需要的目標(biāo)隊列和將輸出結(jié)果組合在一起的接收自由描述符隊列。FFTC CPDMA 中有 8 個流,每個流都對應(yīng)有一個目標(biāo)隊列號。運行過程中,流不能被重新配置,除非關(guān)閉后重新打開進行配置。6.4數(shù)據(jù)格式數(shù)據(jù)格式 FFTC 的輸入輸出數(shù)據(jù)格式為 32bit 的復(fù)數(shù)數(shù)據(jù),其中包括 16bit 實部,16bit 虛部。8 / 17 文檔可自由編輯打印7. 驅(qū)動驅(qū)動 API 設(shè)計設(shè)計7.1使能使能 默認情況下,F(xiàn)

18、FTC 處于斷電狀態(tài)。要使用 FFTC,必須調(diào)用 HC_FftcEnable()對 FFTC恢復(fù)供電。7.2系統(tǒng)級初始化系統(tǒng)級初始化使用 FFTC 驅(qū)動程序時,首先要進行初始化。在系統(tǒng)啟動時調(diào)用 API 函數(shù)“HC_FftcInit()” 。此 API 函數(shù)將進程號 process ID 作為輸入?yún)?shù),根據(jù)當(dāng)前 FFTC 應(yīng)用程序使用的進程號 process ID,根據(jù)資源分配可以獲取當(dāng)前 FFTC 應(yīng)用程序使用的例程號,系統(tǒng)初始化會對將要使用的 FFTC 例程進行初始化。初始化過程中會打開此 FFTC 例程的 CPDMA,并建立全局配置寄存器并初始化所有例程相關(guān)的內(nèi)部數(shù)據(jù)結(jié)構(gòu)。7.3應(yīng)用級初

19、始化應(yīng)用級初始化 FFTC 系統(tǒng)初始化后,需要對應(yīng)用程序進行初始化。應(yīng)用級初始化首先調(diào)用 API 函HC_FftcOpen()設(shè)置當(dāng)前 FFTC 應(yīng)用程序使用的描述符配置,同時打開相應(yīng)驅(qū)動程序。對 FFTC 應(yīng)用程序使用的自由描述符進行初始化時,初始化內(nèi)容包括一個 FFTC 應(yīng)用程序需要使用的自由描述符的個數(shù),描述符的內(nèi)存區(qū)域,描述符的大小,描述符的類型(描述符有兩種類型:host 和 monolithic。設(shè)計中FFTC 應(yīng)用程序使用的描述符均采用 host 類型) 。然后打開驅(qū)動,分配并建立一些自由描述符隊列(FDQ) ,這些 FDQ 將用于發(fā)送對象,接收對象。初始化成功后,API 函數(shù)會

20、返回一個句柄,這個句柄標(biāo)識了本次應(yīng)用程序所使用的 FFTC 例程號以及建立并使用的自由描述符的相關(guān)信息,句柄中帶出的信息在后續(xù)處理過程中會繼續(xù)使用。發(fā)送端初始化發(fā)送端主要是向 FFT engine 提交需要進行處理的當(dāng)前 FFTC 應(yīng)用程序請求。當(dāng)需要進行發(fā)送請求時,首先需要對發(fā)送端進行初始化。通過調(diào)用 API 函數(shù)HC_FftcTxOpen(),建立一個發(fā)送對象“Tx Object”來給 FFT engine 發(fā)送請求。初始化中,根據(jù)當(dāng)前 FFTC 應(yīng)用程序使用的進程號 process ID,確定發(fā)送端使用的發(fā)送隊列號,并根據(jù)描述了 FFT 具體參數(shù)配置的數(shù)據(jù)結(jié)構(gòu),分配這個發(fā)送對象需要使用的

21、buffer 大小。同時,設(shè)置發(fā)送隊列的的打開模式(共享/專用,設(shè)計中均采用共享模式) ,以及用于這個發(fā)送對象的發(fā)送自由描述符的個數(shù)(目前配置為 1 個 FDQ) ,自由描述符的類型等。對于發(fā)送 FFT 請求所需的發(fā)送自由描述符和 buffer,設(shè)計中采用由 FFTC 驅(qū)動程序管理的方式。對于 PS 信息,發(fā)送端為不向接收端發(fā)送 PS 信息。在發(fā)送端初始化成功后,會得到關(guān)于發(fā)送對象的句柄,這個句柄在發(fā)送端提交發(fā)送請9 / 17 文檔可自由編輯打印求時使用。接收端初始化當(dāng) FFT engine 處理完發(fā)送端提交的請求后,接收端為了能夠正確接收 FFT engine 的輸出結(jié)果,需要通過調(diào)用 AP

22、I 函數(shù)HC_FftcRxOpen()進行接收端初始化,建立一個接收對象“Rx Object”來指示 FFT 后的結(jié)果需要向哪個 buffer 輸出。接收端初始化時,根據(jù)當(dāng)前 FFTC 應(yīng)用程序使用的進程號 process ID,確定接收端使用的接收隊列號,收集器通道號,中斷事件號,并根據(jù)描述了 FFT 具體參數(shù)配置的數(shù)據(jù)結(jié)構(gòu),分配這個接收對象需要使用的 buffer 大小。接收端建立一個接收對象時,對于接收流或接收自由描述符隊列都需要重新建立,而不是采用已有的流;由 FFTC 驅(qū)動程序建立接收自由描述符隊列和流;采用 FFTC 驅(qū)動程序分配并管理收集器列表。對于 PS 信息,接收端不接收發(fā)送

23、端的 PS 信息。接收對象建立成功后,根據(jù)由 process ID 獲得的相應(yīng)的 FFTC 中斷事件號,在初始化中為這個接收對象注冊觸發(fā)接收端接收結(jié)果時需要使用的中斷。7.4發(fā)送通路發(fā)送通路 發(fā)送通路用于提交一個 FFT 處理請求。成功建立了發(fā)送對象后,調(diào)用 API 函數(shù)為“HC_FftcSend()” ,建立一個發(fā)送描述符,并將其發(fā)送給 FFT engine 進行處理。發(fā)送過程采用驅(qū)動管理發(fā)送描述符的方式。發(fā)送通路的步驟如下:首先,根據(jù)已獲得的發(fā)送對象、DFT 塊大小配置信息、FFTC 相關(guān)參數(shù)配置、接收端放置處理結(jié)果的接收流等信息,獲取發(fā)送所需的數(shù)據(jù) buffer,數(shù)據(jù) buffer 的長

24、度。同時構(gòu)造一個 FFTC 控制頭,將其添加到所獲取的數(shù)據(jù) buffer,再將發(fā)送描述符附著在數(shù)據(jù) buffer上。最后,將發(fā)送對象中的發(fā)送自由描述符放入發(fā)送隊列,發(fā)送至 FFTengine。此時,發(fā)送請求即已提交完成。7.5接收通路接收通路 接收通路是用來接收 FFT engine 處理完發(fā)送端提交的 FFT 請求的輸出結(jié)果。接收端采用收集器方式。驅(qū)動在接收通路使用了收集器固件(Accumulator Firmware) ,收集器可以從接收隊列中搜集處理完的數(shù)據(jù)包,并存放在收集器緩存中。當(dāng)搜集的數(shù)據(jù)包達到指定數(shù)量后,收集器向應(yīng)用發(fā)送中斷,通知應(yīng)用從緩存中取出數(shù)據(jù)包。接收端使用驅(qū)動提供的 AP

25、I 函數(shù)“HC_FftcRecv()”實現(xiàn),該 API 內(nèi)部由于等待信號量阻塞任務(wù),當(dāng)收集器得到數(shù)據(jù)包發(fā)起中斷處理,信號量將得以釋放,此時,接收端的處理則可以繼續(xù)運行。最后需要將當(dāng)前 FFTC 應(yīng)用程序接收端使用的接收描述符進行釋放,將其歸還給接收自由描述符隊列。7.6關(guān)閉釋放關(guān)閉釋放 FFTC 資源資源 所有的 FFTC 應(yīng)用程序在運行后均需要對驅(qū)動資源進行釋放和關(guān)閉,方法如下:10 / 17 文檔可自由編輯打印發(fā)送對象創(chuàng)建并使用完之后,需要對其使用的發(fā)送描述符和分配 buffer 進行釋放,同時關(guān)閉這個發(fā)送對象。通過調(diào)用 API 函數(shù)“HC_FftcTxClose()” ,在 API 中對

26、 FFTC 應(yīng)用程序所使用的發(fā)送隊列的計數(shù)器進行遞減,當(dāng)計數(shù)達到零時,驅(qū)動關(guān)閉所有隊列,并清除所有相關(guān)的資源。接收對象創(chuàng)建并使用完之后,需要通過調(diào)用 API 函數(shù)“HC_FftcRxClose()”,釋放這個接收對象所使用的 buffer 和描述符,并關(guān)閉與其相關(guān)的發(fā)送隊列和接收流。隨后,調(diào)用 API 函數(shù)“HC_FftcClose()” ,關(guān)閉由當(dāng)前 FFTC 應(yīng)用程序通過“HC_FftcOpen()”打開的 FFTC 例程。最后釋放驅(qū)動程序,調(diào)用 API 函數(shù)HC_Fftc_deInit()。當(dāng) FFTC 例程的計數(shù)器達到零時,驅(qū)動關(guān)閉 FFTC 多核導(dǎo)航儀,并復(fù)位 FFTC engine

27、 的狀態(tài)。此時,系統(tǒng)中沒有可以供應(yīng)用程序使用 FFTC 多核導(dǎo)航儀,除非對 FFTC 再次進行初始化。7.7其它其它對于某個 FFTC 隊列的寄存器參數(shù),可以通過調(diào)用 API 函數(shù)HC_FftcCfgParams配置該隊列的目標(biāo)隊列寄存器、縮放和移位寄存器、循環(huán)前綴寄存器 控制寄存器、LTE頻移寄存器。需要清除 FFTC 錯誤中斷使能和設(shè)置寄存器中相應(yīng)的各種中斷使能位時,調(diào)用 API 函數(shù)HC_FftcDisableErrInt。使能錯誤狀態(tài)位時,調(diào)用 API 函數(shù)HC_FftcEnableErrInt.讀取 FFTC 塊的狀態(tài)寄存器相關(guān)信息時,通過調(diào)用 API 函數(shù)HC_FftcGetBlo

28、ckStatus獲得。獲取 FFTC 的相關(guān)錯誤信息時,調(diào)用 API 函數(shù)HC_FftcGetErrInfo。配置 DFT 塊大小列表時,調(diào)用 API 函數(shù)HC_FftcCfgDftSizeList。7.8API 調(diào)用流程調(diào)用流程對于一個 FFTC 應(yīng)用程序,主要包括對 FFTC 驅(qū)動的使能,初始化,F(xiàn)FTC 發(fā)送端、接收端處理,以及最后的資源關(guān)閉與釋放。FFTC 應(yīng)用對驅(qū)動 API 的調(diào)用過程如圖 6-1 所示。11 / 17 文檔可自由編輯打印App Init當(dāng)前core是否為master core?HC_FftcInit()HC_FftcOpen()HC_FftcTxOpen()HC_F

29、ftcRxOpen()HC_FftcSend()HC_FftcClose()HC_FftcRecv()HC_FftcRxClose()HC_FftcTxClose()FFT Rx Open failed?FFT Tx Open failed?YESNOFFT send failed?FFT receive failed?YESYESYESYESHC_FftcEnable()NONONONO圖 6-1 FFTC API 調(diào)用步驟12 / 17 文檔可自由編輯打印8. 測試測試8.1單元測試單元測試分別對每一個 FFTC 對外提供的 API 進行,當(dāng)函數(shù)運行正確時返回 0、錯誤時返回 1,該單元測試主要是驗證在給正確和錯誤的輸入時能否返回預(yù)期的值。8.2功能測試功能測試FFTC 協(xié)處理器的功能測試,是利用 FTTC 的驅(qū)動的 API 在 C6670 多核情況下完成FFT 運算的過程。有前面章節(jié)可知:一個進程號 process ID 對應(yīng)可得到 FFTC 例程號,發(fā)送端使用的隊列號,接收端使用的隊列號,對應(yīng)于接收隊列的中斷 eventId,發(fā)送端使用的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論