freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

motion-jpeg_實驗-天津大學計算機科學與技術學院-首頁(編輯修改稿)

2025-02-24 12:59 本頁面
 

【文章內容簡介】 *) } data :data。 4) 將 SECTIONS 中的“ .sdata 0x20210000 : { *(.sdata*) *(.smon*) } data :data”修改為:“ .sdata 0xE0000000 : { *(.sdata*) *(.smon*) } data :data”。 5) 將 PLATFORM_CLOCK_BASE = .。 LONG( TODO ) 修改為: PLATFORM_CLOCK_BASE = .。 LONG(0xC2021000)//timer首地址 6) 將 __BRIDGEFS_DEVICES = .。 LONG( TODO ) 修改為: __BRIDGEFS_DEVICES = .。 LONG(0xC3000000)//fd_access基地址 注 : 關 于 具 體 的 組 件 函 數 的 相 關 說 明 , 可 以 在 網址下查找。 (三) 修改完文件后的操作步驟: 1. 打開 Shell控制臺,進入 projet/TP文件夾,輸入 source 境變量 2. 進入 TP0/SW/mjpeg_seg/文件夾,輸入 source configurations/mips運行腳本,然后輸入 make對軟件部分進行編譯 3. 進入 /TP0/HW/件夾,輸入 make對硬件部分進行編譯 4. 在 HW文件夾下,輸入 ln s ../hello_world/ 5. 輸入 ./ 1,若出現下圖所示情況,則表示實驗一添加模塊成功 注:每次重新啟動一次 Shell控制臺,均要重新運行一下步驟 7 中的腳本“ ”。 (四) timer的使用: 在 SW/mjpeg_seg/sources/ 中定義了一個函數: unsigned int ElapsedTime (void) { /*static clock_t previousTicks=0。 double elapsedTimeTicks=0。 clock_t endTicks。*/ static unsigned long int previous_time = 0。 unsigned long int elapsed_time = 0。 volatile unsigned long t1 = 0。 volatile unsigned long int * timer = (unsigned long int *)0xC2021000。 t1 = (unsigned long int ) * timer。 elapsed_time = t1 previous_time。 previous_time = t1。 /*endTicks=clock()。 elapsedTimeTicks=(double)(endTicks previousTicks)/(double)CLOCKS_PER_SEC。 printf(\n start and end ticks %f。 %f \n, (double)previousTicks, (double) endTicks)。 previousTicks=endTicks。 printf(elapsed time ticks %.6f \n, elapsedTimeTicks)。*/ return ((unsigned long int)elapsed_time / 1000)。 } 這就是求時間的函數,如果其它程序中要測時間,可以將次函數直接拷貝過去。其實這個函數的核心就是上面用紅色標出的兩句。 0xC2021000 是 timer 的基地址,它的值就是計數器的值,因此將它的值取出來即可。它記錄的是 cycle 數,一個周期時間是 1 微妙。 實驗二 構建基于 SoCLib 的 MPSoC 實驗目的與內容: 1. 在實驗一所構建的單核 SoC 的基礎上進行擴展,構成可同步處理的 MPSoC 2. 了解同構 MPSoC 并行處理的軟 /硬件需求 3. 將串行的 MJPEG 程序并行化,并移植到所搭建 的 MPSoC 之上,驗證系統的正確性 4. 修改 MPSoC 中的各種體系結構參數,分析 MJPEG 程序的運行性能 實驗步驟: 1. 在描述如圖 5 所示的單核 SoC 的頂層 文件中,參考 MIPS 處理器的聲明定義方法,再分別添加 15 個 MIPS 處理器,構成 MPSoC。一個雙 MIPS核的 SoC架構如圖 6所示。 G e n e r i c M i c r o n e t w o r kT E X TD A T AS T A C KC P U C O R EI C A C H E D C A C H EV C I _ T T YM E M O R YM I P S R 3 0 0 0 AI T 0V C I _ T I M E R V C I _ F D A C C E S S V C I _ F R A M E B U F F E RV C I _ L O C K SI T 1I T 2C P U C O R EI C A C H E D C A C H EM I P S R 3 0 0 0 B 圖 6 雙 MIPS 核 SoC 硬件平臺 2. 將 /project_soc/TP/TP1/SW/mjpeg_mpro 文件夾復制到工程目錄下,該文件夾中包含了并行 化后的 MJPEG 應用程序。 MJPEG 并行程序將該應用按如圖 7所示的方式進行任務劃分,并行處理。學習該文件夾中的內容,掌握如何將一個串行的任務并行化、如何采用Posix Pthread 多線程編程接口進行并行程序設計、嵌入式操作系統如何將多線程的任務劃分到不同處理器進行計算。關于 Posix Pthread 編程接口的介紹見附錄 A。 C O M P U T EC O M P U T EF E T C H D I S P A T C H 圖 7 MJPEG 解碼任務的并行化分 3. 圖 7 中 MJPEG 解碼應用程序被劃分為 FETCH、 COMPUTE、 DISPATCH三個 子任務。其中, ? FETCH主要負責完成 MJPEG解碼流程中的哈夫曼解碼、反鋸齒掃描以及反量化。 ? COMPUTE 負責 MJPEG 解碼流程中最為費時的計算任務 —— 反離散余弦變換( IDCT)。這部分任務可以并行處理,如圖 7 中虛線所示。根據 MPSoC 所具有的處理器數目,程序將整個的 IDCT 計算劃分為相應數目的線程,每個處理器負責其中的部分線程,從而實現 MJPEG 應用進行并行處理 ? DISPATCH 負責接收從不同的 COMPUTE 任務接收計算完畢的宏塊,并對這些宏塊進行重新組織排列,最終生成圖像幀并傳送到幀緩存中。 4. 修改頂層 文件,配置不同的 MIPS 處理器數目。根據處理器數目修改/project_soc/TP/TP1/SW/mjpeg_mpro 路徑下的 ldscript/mips , headers/ ,sources/ 三個文件中的內容。分析隨著處理器數目的變化 MJPEG 解碼應用性能的改變趨勢,并總結出現這種變化趨勢的原因。 上述三個文件的修改內容如下所示: ldscript/mips: 設置處理器的數目: 添加 lock 地址 .semram TODO : addr of the vcilock ponent : { } PLATFORM_N_MIPSR3000 = .。 LONG( TODO : number of processors ) 設置 TIMER 的地址: PLATFORM_CLOCK_BASE = .。 LONG( TODO : addr of the timer ) 設置 TTY的數目的地址: SOCLIB_TTY_NDEV = .。 LONG( TODO : number of TTY ) 設置 TTY 的地址 SOCLIB_TTY_DEVICES = .。 LONG( TODO : Addresses must be incremented by 16 ) headers/: 注:原 代碼中 錯誤: TODO absolute path to the image 是注釋, 需要 加注釋符,即: // TODO absolute path to the image 設置 MJPEG 視頻文件“ ”所在路徑: define INITIALIZE_MOVIE_DATA movie = fopen (/fd/ TODO /, r)。 endif Headers/ 修改 NB_IDCT 的宏定義,如果你想用的是兩個線程,在多線程時的 創(chuàng)建線程數應該為2. define NB_IDCT 2 sources/: 設置 TIMER 的地址: TODO : volatile unsigned long int * timer = (unsigned long int *)0xaddr of the vcitimer。 設置 Frambuffer 的地址: if (LB_X == 0) { LB_Y = (LB_Y + YV) % NB_MCU_Y。 if (LB_Y == 0) memcpy ((void *) TODO Framebuffer address, picture, SOF_section . width * SOF_section . height * 2)。 } 5. 修改頂層 GMN 與 Cache的配置參數。其中,對于 GMN 可以改變其 FIFO深度和傳輸延遲這兩個參數,對于 Cache 可以修改其分塊數目和塊大小這兩個參數。GMN 和 Cache 在 中聲明及參數的設置如圖 8 所示。根據 GMN 和 Cache 的不同配置參數,分析 MJPEG 解碼應用隨這些參數變化時性能的改變趨勢,并總結出現這種變化趨勢的原因。 圖 8 GMN 和 Cache 的參數設置 實驗三 系統軟件開發(fā) 嵌入式操作系統 及設備驅動設計 DCACHE 塊數目 GMN: soclib::caba::VciVgmnvci_param vgmn(vgmn,maptab, 4, 8, 2, 8)。 soclib::caba::VciCoherentXCacheDirWtvci_param cache0(cache0, maptab, IntTab(0),IntTab(0),CACHE_N_LINE,DATA_BLOCK_SIZE, CACHE_N_LINE, DATA_BLOCK_SIZE)。 Cache: 傳輸延時 FIFO 深度 ICACHE 塊數目 ICACHE 塊大小 DCACHE 塊大小 實驗目的與內容: 1. 了解 SoC 的軟件開發(fā)流程 2. 進一步深入理解嵌入式操作 系統 DNA的層次結構與工作原理 3. 掌握基于嵌入式操作系統 DNA 硬件抽象層( HARDWARE ABSTRACTION LAYER,HAL)的驅動程序設計方法 4. 設計新的幀緩存 framebuffer 驅動程序,替代原驅動中使用內存復制函數 memcpy 傳輸圖像數據的方法 5. 在單核 SoC 上 移植 MJPEG 解碼程序,驗證所編寫驅動程序的正確性 實驗步驟: 1. 設備驅動程序的框架位于 /projet_soc/TP/TP2/SW/driver 文件夾下,嵌入式操作系統 DNA的源程序位于 /projet_soc/PLATFORM/SW_PLATFOMR/APES/system/ksp/os/dna 文件夾下。 2. 深入理解嵌入式操作系統 DNA的層次結構與工作原理, DNA的層次結構如圖 9所示。DNA是一個四層結構,從上到下依次為:應用層、 C運行庫層、操作系統層、硬件抽象層。應用層使用 C運行庫層提供的 API 編寫應用程序, C 運行庫層使用操作系統層提供的 API 來訪問系統的功能,操作系統層通過硬件抽象層 HAL 提供的 API 直接訪問處理器及其他外設模塊。 更多的關于嵌入式操作系統 DNA 的細節(jié),請參見 網址 : 應 用 層( A P P L I C A T I O N )C 運 行 庫 層( C L I B R A R Y )A P IA P I設 備 驅 動A P I操 作 系 統 層( O P E R A T I N G S Y S T E M )硬 件 抽 象 層( H A R D W A R E A B S T R A C T I O N )A P I 圖 9 嵌入式操作系統 DNA層次結構 3. 掌握基于 DNA操作系統的設備驅動程序設計方法。在 DNA操作系統中
點擊復制文檔內容
高考資料相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1