• 沒有找到結果。

即時DSP嵌入式Linux系統開發及其於腦波訊號處理之應用

N/A
N/A
Protected

Academic year: 2021

Share "即時DSP嵌入式Linux系統開發及其於腦波訊號處理之應用"

Copied!
115
0
0

加載中.... (立即查看全文)

全文

(1)國 立 交 通 大 學 電機與控制工程學系 碩 士 論 文 即時 DSP 嵌入式 Linux 系統開發 及其於腦波訊號處理之應用 The Development of Real-Time DSP Embedded Linux System and Its Application for Brain Signal Processing. 研 究 生: 黃 冠 智 指導教授: 林 進 燈 教授. 中 華 民 國 九 十 三 年 七 月.

(2) 即時 DSP 嵌入式 Linux 系統開發 及其於腦波訊號處理之應用 The Development of Real-Time DSP Embedded Linux System and Its Application for Brain Signal Processing 研 究 生:黃 冠 指導教授:林 進. 智 燈. 教授. Student:Kuan-Chih, Huang Advisor:Prof. Chin-Teng, Lin. 國立交通大學 電機與控制工程學系 碩 士 論 文. A Thesis Submitted to Institute of Electrical and Control Engineering College of Electrical Engineering and Computer Science National Chiao Tung University in partial Fulfillment of the Requirements for the Degree of Master in Electrical and Control Engineering July 2004 Hsinchu, Taiwan, Republic of China. 中華民國九十三年七月.

(3) 授 權 書 (碩士論文) 本授權書所授權之論文為本人在 國立交通 大學 電資 學院 電機與控制工程 系所 電機控制 論文名稱:. 組 九十二. 學年度第 二. 學期取得. 碩. 士學位之論文。. 即時 DSP 嵌入式 Linux 系統開發及其於腦波訊號處理之應用 The Development of Real-Time DSP Embedded Linux System and Its Application for Brian Signal Processing. 1. 5同意. 不同意. 本人具有著作財產權之論文全文資料,授予行政院國家科學委員會科學技術資料中心、 國家圖書館及本人畢業學校圖書館,得不限地域、時間與次數以微縮、光碟或數位元化 等各種方式重製後散佈發行或上載網路。本論文為本人向經濟部智慧財產局申請專利的 附件之一,請將全文資料延後兩年後再公開。 (請註明文號: ) 2. 5同意. 不同意. 本人具有著作財產權之論文全文資料,授予教育部指定送繳之圖書館及本人畢業學 校圖書館,為學術研究之目的以各種方法重製,或為上述目的再授權他人以各種方 法重製,不限地域與時間,惟每人以一份為限。 上述授權內容均無須訂立讓與及授權契約書。依本授權之發行權為非專屬性發行權利。 依本授權所為之收錄、重製、發行及學術研發利用均為無償。上述同意與不同意之欄位 若未鉤選,本人同意視同授權。 指導教授姓名: 林. 進. 燈. 教授. 研 究 生簽名: 學號: 9112516 (親筆正楷) (務必填寫) 日 期: 民國 九十三 年 七 月 十六 日. 1. 本授權書請以黑筆撰寫並影印裝訂於書名頁之次頁。 2. 授權第一項者,所繳的論文本將由註冊組彙總寄交國科會科學技術資料中心。 3. 本授權書已於民國 85 年 4 月 10 日送請內政部著作權委員會(現為經濟部智慧財產 局)修正定稿。 4. 本案依據教育部國家圖書館 85.4.19 台(85)圖編字第 712 號函辦理。.

(4) 國立交通大學 論文口試委員會審定書 本校 電機與控制工程 學系碩士班. 黃冠智. 君. 所提論文 即時 DSP 嵌入式 Linux 系統開發及其於腦波訊號 處理之應用 The Development of Real-Time DSP Embedded Linux System and Its Application for Brain Signal Processing. 合於碩士資格標準、業經本委員會評審認可。. 口試委員:. 指導教授:. 教授. 系 主 任:. 教授. 中 華 民 國 九十三 年 七 月. 日.

(5) 即時 DSP 嵌入式 Linux 系統開發 及其於腦波訊號處理之應用 研究生:黃 冠 智. 指導教授:林 進 燈. 教授. 國立交通大學電機與控制工程學系碩士班. 中文摘要 摘. 要. 在人們的生活中,嵌入式系統應用於訊號處理上十分廣泛,如多媒體語音與影像資 訊處理等。為了讓訊號得到較佳的處理,往往需要大量的數學運算,但有鑑於嵌入式系 統在運算能力不足,所以本論文採用同時具有 ARM 和 DSP 微處理器之 OMAP 來彌補 這個問題。OMAP 是由 TI 針對嵌入式系統所開發的一個具有優秀運算能力的微處理器, 使用 OMAP 架構可以使數學運算上更為迅速有效率,且 ARM 和 DSP 可以同步處理各 自不同的行程。 本論文有三大發展主軸,分別為「OMAP 系統環境」、「OMAP 內部通訊」及應用 於「腦波訊號處理系統」,主旨在於呈現如何在 OMAP 下有效運用其 ARM 和 DSP 的 資源。其中 OMAP 運用以含有 DSP 模組的 DSPLinux 做為其系統環境,並利用 DSP Gateway 讓 OMAP 中 ARM 和 DSP 部分能相互溝通。本論文以 DSP Gateway 的機制將 ICA 演算法交由 ARM 和 DSP 分工處理,並進行系統分析與設計到落實系統設計,建構 一個腦波訊號處理系統,經由腦波訊號處理系統中 ICA 演算法將訊號做實際的特徵擷 取。此外,本論文亦分別對 OMAP 和 ARM 處理器做系統效能測試比較,由測試結果中 可明白顯示出 OMAP 高效能的數學運算能力。. 關鍵字:OMAP,ARM,DSP,DSPLinux,Linux,DSP Gateway 獨立成分分析(ICA),腦波訊號處理(BSP). ─ i ─.

(6) The Development of Real-Time DSP Embedded Linux System and Its Application for Brain Signal Processing Student:. Kuan-Chih, Huang. Advisor:. Prof. Chin-Teng, Lin. Institute of Electrical and Control Engineering. 英文摘要 ABSTRACT The application of embedded system in signal processing is very wide in our life, such as Multimedia information processing on speech and image, and so on. In order to get better signal processing results, it always needs a large amount of computation. Because the capability of embedded system to compute is not enough, we use a microprocessor OMAP which has both ARM and DSP microprocessors to solve this problem. OMAP is a outstanding computational ability microprocessor which TI develop on embedded system. It is more efficient to compute by using OMAP, and ARM and DSP can synchronize to handle differenct processes. In this thesis, we build DSPLinux OS on OMAP platform and utilize the resource of ARM and DSP effectively by DSP Gateway. DSP Gateway is a interface which make ARM and DSP communicate in OMAP. The thesis accomplish ICA algorithm which ARM and DSP handle cooperatively by DSP Gateway mechanism. It includes system analysis, design and realization. Then, we apply OMAP system to brain signal processing. By the ICA algorithm, we can successfully get signal feature from signals. Besides, we also proceed some tests of the system efficiency on OMAP and ARM architectures, and compare them. Finally, from the experimental results, we can find that OMAP have better computation ability than ARM.. KEYWORD:OMAP, ARM, DSP, DSPLinux, Linux, DSP Gateway, Independent Component Analysis(ICA), Brain Signal Processing(BSP). ─ ii ─.

(7) 誌. 謝. 本論文的完成,首先要感謝我的指導教授林進燈博士在過去兩年研究期間提供豐富 的實驗資源和環境並且從旁指導協助,讓我能有高度的自主性決定自我的研究方向。. 其次,我要感謝智慧型控制實驗室的全體成員,沒有他們也就沒有我個人的成就。 特別感謝已畢業的陳建宏學長和王耀聰學長給予我在各方面的指導,無論是研究上疑難 的解答、研究方法、寫作方式、經驗分享以及生活上壓力調適等惠我良多,很慶幸在研 究生涯上能遇到如此的學長。另外要感謝黃騰毅同學,在過去兩年研究生活中同甘共 苦,相互扶持。此外,也要感謝陳玉潔學姊在研究上的幫助以及生活中的扶持,還有感 謝高士政、陳俞傑、董行偉以及李欣泓學弟,在過去這一年中的相伴。感謝實驗室助理 在事務上的幫忙。. 另外,感謝許多朋友的鼓勵,許駿飛博士、鐘翊方博士夫婦、林世賢小姐、周高平 同學以及廖志昇學長,讓我在研究路途上站穩腳步,還有感謝我的一些好友,讓我的研 究生活中,增填許多色彩。. 最後,我最想感謝的是我的母親張鳳琴女士,父親黃世長先生,由於他們長久的辛 勞和細心的照顧,才有今天的我,在此我要說一聲,我好愛你們,真的非常地謝謝你們。 還有我的家人,我的親人,謝謝你們的鼓勵,謹在此將本論文獻給我的家人,共享這份 榮耀與喜悅。. ─ iii ─.

(8) 目. 錄. 中文摘要 .....................................................................................................................................i 英文摘要 ....................................................................................................................................ii 誌 謝 ...................................................................................................................................iii 目 錄 ...................................................................................................................................iv 表 目 錄 ...................................................................................................................................vi 圖 目 錄 ..................................................................................................................................vii 縮寫對照 ...................................................................................................................................ix 一、緒論 ....................................................................................................................................1 1.1 研究動機 ....................................................................................................................1 1.2 研究背景 ....................................................................................................................2 1.2.1 舊發展系統 ........................................................................................................ 2 1.2.2 發展中新系統 .................................................................................................... 3 1.3 研究方法 ....................................................................................................................4 1.4 相關研究 ....................................................................................................................5 1.5 論文架構 ....................................................................................................................6 二、OMAP 處理器硬體及軟體開發環境...............................................................................7 2.1 OMAP1510 處理器....................................................................................................7 2.1.1 OMAP 開發背景................................................................................................ 7 2.1.2 RISC 加入 DSP 處理器理由............................................................................. 9 2.1.3 OMAP1510 硬體架構...................................................................................... 10 2.1.4 OMAP1510 DSP 內部記憶體 ........................................................................ 12 2.2 微處理器架構比較 ..................................................................................................14 2.2.1 x86 與 OMAP、Xscale 硬體比較................................................................... 14 2.2.2 Linux 與 Windows 工作平台 .......................................................................... 15 2.3 OMAP 程式開發環境..............................................................................................17 2.3.1 程式開發環境於 ARM 架構 ........................................................................... 17 2.3.2 程式開發環境於 DSP 架構............................................................................. 17 2.3.3 CCS 程式開發.................................................................................................. 18 2.3.4 CCS 除錯工具.................................................................................................. 21 2.4 DSP/BIOS.................................................................................................................22 2.4.1 DSP/BIOS 核心............................................................................................... 22 2.4.2 DSP/BIOS 系統配置工具(Configuration Tool) ............................................. 23 2.4.3 DSP/BIOS 的執行緒(Thread).......................................................................... 24 三、OMAP 內部通訊架構及溝通方式.................................................................................28 3.1 DSP GATEWAY 簡介.................................................................................................28 3.2 DSP GATEWAY 架構 (DSP GATEWAY ARCHITECTURE) ..........................................30 3.2.1 DSP Gateway BIOS ......................................................................................... 31 3.2.2 DSP Gateway Driver ........................................................................................ 32 3.2.3 Mailbox............................................................................................................. 33 3.3 DSP GATEWAY 傳輸協定概念(DSP GATEWAY PROTOCOL CONCEPT) ....................36 3.3.1 DSP Gateway 傳輸 buffer................................................................................ 37. ─ iv ─.

(9) 3.4. LINUX API (APPLICATION PROGRAM INTERFACE) ....................................................43 3.4.1 DSP 裝置檔案系統建立.................................................................................. 43 3.4.2 DSP 工作裝置(Task Device) ........................................................................... 43 3.4.3 輸入輸出函式 .................................................................................................. 44 3.4.4 DSP 其他相關裝置檔案.................................................................................. 50 3.5 DSP PROGRAMMING ..................................................................................................51 3.5.1 DSP Task Programming ................................................................................... 52 3.5.2 DSP Task 應用程式介面 ................................................................................ 53 四、腦波訊號處理嵌入式系統之設計 ..................................................................................56 4.1 系統架構分析與系統規格 ......................................................................................56 4.1.1 系統架構分析 .................................................................................................. 56 4.1.2 設計功能規格與目的 ...................................................................................... 57 4.2 訊號分析處理方法 ..................................................................................................58 4.2.1 快速傅立葉轉換(Fast Fourier Trasnform) ...................................................... 58 4.2.2 獨立成分分析法(Independent Component Analysis) ..................................... 58 4.2.3 獨立成分分析演算法(ICA Algorithms) ......................................................... 59 4.2.4 訊號前處理 ...................................................................................................... 60 4.2.5 快速獨立成分分析法(FastICA) ...................................................................... 61 4.3 訊號分析系統設計 ..................................................................................................63 4.3.1 系統狀態 .......................................................................................................... 63 4.3.2 系統架構設計 .................................................................................................. 64 4.3.3 DSP task 載入(ICA task 載入) ........................................................................ 66 4.3.4 訊號資料傳送 .................................................................................................. 67 4.4 系統正確性測試實驗 ..............................................................................................73 4.5 系統效能測試實驗 ..................................................................................................77 五、研究成果與展望 ..............................................................................................................80 5.1 研究成果 ..................................................................................................................80 5.1.1 實驗測試回顧及延伸探討 .............................................................................. 80 5.1.2 ICA 腦波訊號分離 .......................................................................................... 84 5.2 系統整合 ..................................................................................................................88 5.3 發展討論 ..................................................................................................................89 5.4 未來展望 ..................................................................................................................90 參考文獻 ..................................................................................................................................91 附 錄 ..................................................................................................................................93 附錄A 硬體實驗環境 .....................................................................................................93 A.1 Innovator Development Kit ................................................................................ 93 A.2 處理器模組 Processor Module .......................................................................... 94 A.3 週邊介面模組 Interface Module........................................................................ 95 A.4 Break Out Board ................................................................................................. 96 附錄B DSPLINUX 環境建構方式...................................................................................97 B.1 Innovator Development Kit 啟動程序 .............................................................. 97 B.2 rrload bootloader 的安置.................................................................................... 99 B.3 DSPLinux 作業系統核心之製作流程............................................................. 100 B.4 根檔案系統製作流程 ...................................................................................... 101. ─ v ─.

(10) 表 目 錄 表 表 表 表 表 表 表 表 表 表 表 表 表 表 表 表 表 表 表. 2-1 2-2 2-3 2-4 2-5 2-6 3-1 3-2 3-3 3-4 3-5 3-6 3-7 4-1 4-2 4-3 4-4 5-1 5-2. OMAP1510 內部記憶體位置對應表..................................................................12 三種不同微處理器架構的比較 ..........................................................................15 嵌入式作業系統開發平台比較 ..........................................................................16 CCS 除錯工具以及支援硬體..............................................................................21 執行緒的特性比較 ..............................................................................................26 執行緒的相互強制性(Thread Preemption).........................................................27 Mailbox 命令定義................................................................................................35 Global IPBUF 結構定義 ......................................................................................38 Private IPBUF 結構定義 .....................................................................................42 dsptask 結構 .........................................................................................................52 dsptask 工作型式 .................................................................................................52 BKSND、BKSNDP 及 WDSND 命令說明 .......................................................53 BKREQ 及 WDREQ 命令說明...........................................................................54 ARM 和 DSP 工作分配表...................................................................................65 資料傳送封包結構 ..............................................................................................67 測試訊號的 ICA 權重向量 .................................................................................76 效能測試表 ..........................................................................................................78 權重向量比較表 ..................................................................................................81 效能測試整理 ......................................................................................................83. ─ vi ─.

(11) 圖 目 錄 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖. 1-1 1-2 1-3 2-1 2-2 2-3 2-4 2-5 2-6 2-7 2-8 2-9 3-1 3-2 3-3 3-4 3-5 3-6 3-7 3-8 3-9 3-10 3-11 3-12 3-13 3-14 3-15 3-16 3-17 3-18 3-19 3-20 3-21 3-22 4-1 4-2 4-3 4-4 4-5 4-6. 實驗室單板技術衍進 ............................................................................................2 發展中系統沿革及軟硬體之比較 ........................................................................3 論文章節關係圖 ....................................................................................................6 OMAP1510 微處理器架構圖..............................................................................11 OMAP1510 內部記憶體堆疊圖..........................................................................13 CCS 程式發展設計流程......................................................................................18 DSP 程式編譯流程圖..........................................................................................19 CCS 整合發展環境..............................................................................................23 DSP/BIOS 系統配置工具....................................................................................24 DSP/BIOS 執行緒表示.......................................................................................24 DSP/BIOS 各種執行緒之優先順序...................................................................25 Preemption Scenario.............................................................................................27 ARM 和 DSP 呼叫狀態圖...................................................................................29 DSP Gateway 系統架構圖...................................................................................30 DSP Gateway 與 DSP/BIOS 關係圖 ...................................................................31 DSP 驅動程式檔案操作介面..............................................................................32 Mailbox 機制........................................................................................................34 Mailbox 暫存器配置............................................................................................34 ARM 與 DSP 命令及 IPBUF 傳輸 .....................................................................36 Global IPBUF 格式大小及位置配置..................................................................37 Global IPBUF 結構圖 ..........................................................................................37 Sync word 工作流程 ............................................................................................39 IPBLINK structure ...............................................................................................39 IPBUF 轉移示意圖..............................................................................................41 Private IPBUF 結構圖 .........................................................................................42 ARM 從 DSP 讀取資料之被動傳輸模式...........................................................46 ARM 在 DSP 送資料前做讀取之主動傳輸模式...............................................46 ARM 在 DSP 送資料後做讀取之主動傳輸模式...............................................47 ARM 傳送資料給 DSP 之被動傳輸模式...........................................................48 ARM 在 DSP 要求資料前寫入之主動傳輸模式...............................................48 ARM 在 DSP 要求資料後寫入之主動傳輸模式...............................................49 DSP Gateway 資料傳輸架構圖...........................................................................51 TCTL 命令作業方式 ...........................................................................................54 ARM 及 DSP 程式基本架構...............................................................................55 腦波分析系統狀態圖 ..........................................................................................63 ICA 資料傳輸處理狀態圖 ..................................................................................65 DSP task 載入 ......................................................................................................66 資料傳送流程圖 ..................................................................................................68 IPBUF 所有權的轉移..........................................................................................68 資料傳送順序圖 ..................................................................................................70. ─ vii ─.

(12) 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖 圖. 4-7 4-8 4-9 4-10 4-11 4-12 4-13 4-14 4-15 5-1 5-2 5-3 5-4 5-5 5-6 5-7 5-8 5-9 5-10 A-1 A-2 A-3 A-4 B-1 B-2 B-3 B-4 B-5. 資料接收順序圖 ..................................................................................................71 腦波處理系統資料傳輸及 ICA 處理架構圖 .....................................................72 實驗步驟流程 ......................................................................................................74 測訊訊號的原始訊號 ..........................................................................................74 測試訊號的原始訊號混合 ..................................................................................75 利用 OMAP 的 ICA 分離結果............................................................................75 利用 PC 的 ICA 分離結果 ..................................................................................76 效能測試中,實驗組和對照組的執行時間表示 ..............................................78 ICA 計算時間比較圖 ..........................................................................................79 ICA 雜訊去除測試一 ..........................................................................................81 ICA 雜訊去除測試二 ..........................................................................................82 ICA 雜訊去除測試三 ..........................................................................................82 ICA 計算時間和總執行時間比較圖 ..................................................................83 OMAP 執行過程表示..........................................................................................84 輸入腦波測試訊號於 ICA(測試一)....................................................................85 由 ICA 得到腦波的成分資料(測試一)...............................................................86 輸入腦波測試訊號於 ICA(測試二)....................................................................86 由 ICA 得到腦波的成分資料(測試二)...............................................................87 系統整合架構圖 ..................................................................................................88 Innovator Development Kit 處理器模組正面.....................................................94 Innovator Development Kit 處理器模組反面.....................................................94 Innovator Development Kit 介面模組.................................................................95 Innovator Development Kit 的 Break Out Board 配件模組................................96 主機、目標板採用連結式規劃 ..........................................................................98 Innovator Development Kit 啟動流程.................................................................98 rrload bootloader 操作介面 .................................................................................99 DSPLinux 核心製作及載入單板流程 ..............................................................100 Innovator Development Kit 根檔案系統建構流程及載入方式.......................101. ─ viii ─.

(13) 縮寫對照 縮寫. 原文. API. Application Program Interface. BCI. Brain-Computer Interface. CISC. Complex Instruction Set Computer. DARAM. Dual Access Memory. DSP. Digital Signal Processing. FFT. Fast Fourier Transform. FSF. Free Software Foundation. GPL. General Public License. HAL. Hardware Abstraction Layer. ICA. Independent Component Analysis. LART. Linux Advanced Radio Terminal. MPU. Micro Processor Unit. OMAP. Open Multimedia Architecture Platform. PDROM. Program and Data ROM. PCA. Principal Component Analysis. RISC. Reduce Instruction Set Computer. SARAM. Single Access Memory. SBC. Signal-Board Computer. ─ ix ─.

(14) 一、 緒論 1. 在多媒體發達的時代,數位處理技術發展快速,透過數位訊號處理可針對一些不同 的訊號分析出許多的資訊,再利用這些資訊做許多不同的應用。舉例來說,可用於聲音 通訊、影像甚至於在生理訊號的分析,發展相當多元化。隨著處理技術的進步,人們對 於訊號處理的要求愈來愈精確快速,但精確的處理在計算上仍需花費不少時間。雖然目 前在一般個人電腦上,在訊號處理上已有相當長足的進步。但對於現在強調微小且省電 的嵌入式系統而言,在運算能力上便略顯不足。有鑑於此,考量加入 DSP 處理器於一 般 ARM 的嵌入式微處理器做系統做整合。本論文主旨著重於 OMAP 微處理器系統應 用的探討,針對兩種微處理器技術的整合,以及將其應用於訊號分析處理。以腦波生理 訊號為處理對象,建構一個以腦波訊號分析計算為例的系統,以下分就「研究動機」、 「研究背景」、「研究方法」及「相關研究」四部分加以說明。. 1.1. 研究動機 隨著多媒體與無線通訊的發展,訊號處理演算法不斷更新。為了追求更為真實的感. 受,在多媒體系統上必需做出更為精確的運算。對於腦波生理訊號處理應用,在生理訊 號分析技術層面上,運算處理上要求更為嚴苛。就軟體的層面而言,需要一個好的演算 法與良好的計算程序;就硬體的層面而言,處理器運算之能力亦是關鍵。現今軟硬體發 展迅速,雖然大型主機對於多媒體的應用已不是個問題,但是大型主機,空間大且昂貴, 為了縮小體積,嵌入式系統的發展勢必是個趨勢,強調小與省電。一般較有名的嵌入式 系統的微處理器架構有 ARM、MIPS 等。雖然這些微處理器相當省電、運算能力不錯且 支援多種作業系統,但處理大量的數位訊號資訊上,還是稍嫌不足,為了使系統運算能 力更為強大,部分廠商引入了 DSP 微處理器來加強嵌入式微處理器的運算能力。為了 提高在訊號處理的處理速度,採用此一類型之嵌入式微處理器有其必要性,除了一些精 簡指令集外,還擁有 DSP 指令集,來提升系統運算之能力。. ─ 1 ─.

(15) 1.2. 研究背景 有關本研究的背景,以下分成「舊發展系統」與「發展中新系統」分別論述。. 1.2.1 舊發展系統 實驗室早期將既有虛擬實境發展之技術,已經由工業電腦逐漸轉至嵌入式單板電腦 (SBC,Signal Board Computer)的應用。本實驗室最早採用 DSP 控制卡,來取代工業電 腦,雖然具有優越的計算能力,硬體精簡,高效率,可即時處理大量訊號等特性,但不 足的是缺乏作業系統的支援,且 DSP 系統軟體程式移植不易,故實驗室近年來改採用 LART 嵌入式單板做為開發環境。 LART(Linux Advanced Radio Terminal)是以 StrongARM 為微處理器的嵌入式單板, 具有不錯的執行效率,體積小,支援多種作業系統,同時具備低成本的優點,採用這種 精簡的嵌入式硬體單板可以取代原來的電腦和 DSP 控制卡。就其作業系統而言,是採 用 ARM 架構的 ARMLinux,具有 Linux 作業系統開放原始碼的特性,在許多資料整合 上,都能得到協助。但隨著演算法複雜度的增加,在運算處理上,以 ARM 架構為主的 StrongARM 微處理器,處理速度漸漸不合所需。整個舊發展控制系統衍進示意如圖 1-1:. 圖 1-1. 實驗室單板技術衍進. ─ 2 ─.

(16) 1.2.2 發展中新系統 目前為了處理日益複雜的訊號處理的演算法,嵌入式單板勢必面臨大量的特殊運 算,但一方面希望在嵌入式單板上,保有 ARM 處理器的移植性,發展性和作業系統的 支援,另一方面,又希望加入 DSP 所擁有的優秀計算能力,因此,採用德州儀器(TI)所 發展出的新處理器 OMAP。OMAP 結合了 ARM 和 DSP 的長處,支援多種作業系統, 並且在運算上能使用 TI 所開發的 DSP 技術。 就嵌入式的作業系統而言,以原先的 ARMLinux 為藍本,加入對 TI DSP 系統的支 援,成 DSPLinux。裡面包含了對於 OMAP 處理器上 DSP 部分的驅動,和 ARM 與 DSP 溝通的通道。於此,使得整個系統依然可以擁有開放原始碼的特性進行整合,容易維護 開發,並且提升在運算上之能力等優點。. 圖 1-2. 發展中系統沿革及軟硬體之比較. ─ 3 ─.

(17) 研究方法. 1.3. 對於研究的動機與背景皆明確之後,還需要研究定位之方向,規劃之後必需進行之 方式。本節將對「研究主軸」和「研究目標」兩個部分加以說明。. 1.. 研究方法 嵌入式系統的研究繁多,定一個明確的研究方向,確認主軸是必要的。本論文 主要分為三個部分,分別為「OMAP 嵌入式系統」、「DSP Gateway-ARM/DSP 通訊」、「腦波訊號處理的實現與應用」。其中 OMAP 嵌入式系統,是在描 述關於使用 OMAP 單板的發展環境,硬體和軟體特性,其中利用 DSP 部分 DSP/BIOS 的特性,建立 ARM/DSP 之間通訊的基石。至於 DSPLinux 環境建構 之方式將於附錄說明。DSP Gateway-ARM/DSP 通訊描述在 DSPLinux 作業系 統下,負責扮演作業系統主控者的 ARM 微處理器部分如何與 DSP 部分通訊, 並將複雜運算之部分交由 DSP。這部分主要在描述兩顆處理器之間的流程分析 及設計方式。腦波訊號處理的實現與應用在描述實驗室現階段對於分析腦波的 方式,如何在 OMAP 的單板上實現,包含有快速傅立葉轉換(FFT)、獨立元素 分析(ICA)及一些腦波分類的方法等。本論文將針對其中 ICA 演算法實現於 OMAP 單板上。在 OMAP 上的程式都將會包括 ARM 與 DSP 兩個部分,最後 將整個分析的系統流程完整地表現出來。關於三大研究主軸的詳細內容,本論 文將分別於第二、三、四章逐一解說。. 2.. 研究目標 有鑑於複雜的訊號處理應用需要使用到大量的運算,對於改善運算能力較差的 嵌入式處理器,希望擁有較高計算能力的處理能力。尤其在腦波資料運算時, 演算法過程複雜。故本論文最終目標是希望實現『即時腦波處理系統』,使用 以 DSPLinux 為作業系統的 OMAP 嵌入式單板做為發展平台。建立一個運算能 力強,快速、可靠度、精確度高的系統。. ─ 4 ─.

(18) 1.4. 相關研究 雖然 OMAP 目前還在開發階段,OMAP 已被許多大廠做為開發研究平台。如 Nokia、. SONY 及 Ericsson 等,就目前已經有幾家大廠推出以 OMAP 為架構的手機,國內也有 相當多的廠商漸漸投入 OMAP 開發應用中。以下就針對 OMAP 列舉一些相關研究:. „ 官方資源: (1) TI(Texas Instruments)OMAP 平台發展的官方資源 http://focus.ti.com/omap/docs/omaphomepage.tsp (2) PSI(Productivity Systems Inc.)為是一家獨立 OMAP 技術中心,負責 TI 在 OMAP 上開發平台 Innovator Development Kit 的技術支援。除此之外,PSI 自己也開發由 OMAP 為核心的平台 Minno O5。 http://www.prodsys.com/ „ 業界開發: (1) Nokia 60 系列使用 Innovator Development Kit 做為應用開發,使新的 2.5G 和 3G 的應用移植到具備高性能、高效率應用處理器的 OMAP 家 族中,其中包括 OMAP710 和 OMAP1510。 (2) MontaVista 軟體公司在 TI 的 OMAP 上開發 Linux 平台 http://www.mvista.com/. ─ 5 ─.

(19) 1.5. 論文架構 本論文共分為五個章節,第一章旨在說明本論文的動機、主軸、目標、研究背景及. 相關研究的介紹。第二章則針對第一項主軸「OMAP 嵌入式系統」加以介紹,第三章則 介紹如何在 OMAP 內 ARM 和 DSP 的利用和溝通,主要是說明 DSP Gateway 的架構和 設計方式。於第四章將說明本論文所實現的腦波分析系統的架構,設計與實現,並且將 系統做實際的測試討論。最後於第五章中,則是對本論文作一個總結,展示腦波分析的 結果,並且做整合性的探討,並對於系統給予總結。各章節之間的關係,如圖 1-3:. 圖 1-3. 論文章節關係圖. ─ 6 ─.

(20) 二、 OMAP 處理器硬體及軟體開發環境 2. 本論文主要使用以 OMAP1510 微處理器為核心,並利用德州儀器(Texas Instruments) 所 開 發 的 嵌 入 式 單 板 Innovator Development Kit 為 開 發 環 境 。 所 以 本 章 節 將 對 OMAP1510 微處理器系統做個探討,主要分成二部分加以描述,並且加以比較。首先, 將介紹 OMAP1510 微處理器的硬體架構進行規格說明。再來,將比較其他常見的嵌入 式微處理器 Xscale 和 x86 的平台做整體性比較。以及單板之開發環境 Linux 和 Win CE 做簡單的說明比較,將採用何種作業環境做為研究平台的系統。最後將對 OMAP 程式 開發環境和特性做個說明,在程式開發上,主要有 Linux 平台下的跨平台環境(Cross Compiler)開發與 ARM 微處理器相容的應用程式。DSP 端的程式開發,主要是以 TI’s CCS(Code Composer Studio) 做 為 開 發 環 境 , 並 針 對 DSP 多 執 行 緒 的 作 業 核 心—DSP/BIOS 所提供的功能來做說明。. 2.1. OMAP1510 處理器 OMAP 為 Open Multimedia Architecture Platform 的縮寫,OMAP1510 是一個有雙核. 心的微處理器,使用 TI-enhanced ARM925 微處理器並結合 TMS320C55x DSP 核心。 OMAP 具有高效能平衡以及低功率消耗的能力,且擁有極佳的數值能力。本小節將簡述 OMAP 的背景及其架構。. 2.1.1 OMAP 開發背景 德州儀器公司(Texas Instruments,TI)以 DSP 微處理器的優越性能著名,近年來更 推出一項先進的技術由 RISC 整合 DSP 的 SOC 嵌入式系統微處理器:OMAP。OMAP 最大的特點在整合了 TI DSP 核心及 ARM 的 RISC 架構和各種週邊控制器的設計,其應 用定位於即時的多媒體影音資料處理、語音辨識系統、網際網路通訊及無線通訊等訊號 分析應用。OMAP 採用的 TI 的 TMS320C55X DSP,適合處理大量即時多媒體資料,比 如說 MPEG1、MPEG2、MPEG4 或是其他音訊資料等。此外 OMAP 本身就是一個以 ARM925 RISC 為主體的微處理器,可以作為嵌入式作業系統的控制核心,用於處理人. ─ 7 ─.

(21) 機介面等系統功能主控的相關運算傳輸。另外 OMAP 功率消耗方面也有驚人的表現, 可以在很低的功率下完成資料處理的動作。 OMAP 開放式的架構,並提供了一套標準界面,協助廠商發展新的應用軟體或是增 加新的功能。OMAP 架構可移植性高,並且相容於大多數的作業系統,例如:Symbian OS™、Linux、Microsoft® Windows CE 3.0 和.NET 以及 Palm OSO 等。廠商可利用 OMAP 微處理器做出效能最高、電力消耗低的 2.5G 與 3G 無線裝置,並讓軟體工程師輕易運用 即時 DSP 功能。此外 TI 發展出 DSP/BIOS Bridge 架構,設計人員利用最佳的方式,把 資料分析計算工作適當地分配給 ARM RISC 和 DSP 微處理器,使得系統呈現出最佳的 運算效能,並能節省功率的消耗(Power Manager)。 在軟體方面,面對新的硬體平台與新的產品需求,嵌入式軟體技術也勢必要大大提 升,基本上 OMAP 架構微處理器內部的 DSP 微處理器核心與 ARM RISC 微處理器核心 分別由兩個不同的系統所控制,DSP 微處理器核心是採用 TI 所自己研發的微核心 (Micro Kernel)多工即時的系統,稱為 DSP/BIOS。在 DSP/BIOS 的架構上面可以提供軟體工程 師方便開發符合即時運算效率的軟體元件工作。在 ARM 部分,一般常看到的嵌入式作 業系統,Linux 和 WinCE 等都有支援,並且可以用來控制整個系統的運作。由於兩個部 分分屬於不同的系統所管理,為了發揮由 ARM 操作和 DSP 運算的分工效能,兩個處理 器之間的資料流通就成為研發重點,TI 針對這點提出 DSP/BIOS Bridge 架構,能夠讓應 用程式開發人員在雙處理器架構下撰寫程式,就有如在單一處理器的感覺一樣方便,在 下一個章節,所討論到的 DSP Gateway 便是以其為基準,所提出的溝通方式。. ─ 8 ─.

(22) 2.1.2 RISC 加入 DSP 處理器理由 為了支援多媒體應用聲音訊號處理以及其他應用,例如本論文中的腦波訊號分析, 數位訊號技術顯得重要。但是做數位訊號處理,其中運算一般而言是相當大量的,已經 超出一般 RISC 微處理器所能負荷的,雖然嵌入式微處理器的指令處理時脈速度一直在 進步,但是這速度提升有限,最重要的根本方法還是需要對於運算處理有特別設計電 路,增加常用的訊號處理運算指令集,TI 系列的 DSP 微處理器,便是具有這方面的特 性。本論文中,在處理腦波訊號時,如同視訊與音訊的播放都是一種信號處理工作,同 樣是要用到大量的運算。TI 自己的優勢:DSP 微處理器,就是支援信號處理運算,而且 相較於 RISC 處理器,DSP 每個時脈週期內消耗比 RISC 更少電力。DSP 用更少的指令 完成一個重複大量數學運算的演算法,並在一個時脈週期內執行更多的指令。當一個應 用程式執行時,一顆 RISC 處理器,執行其他程式時受到影響,加上缺乏 DSP 指令集, 受限於 RISC CPU 本身信號處理能力的限制,效能往往不佳。有鑑於此,TI 在 ARM 的 架構上再加入 DSP 的微處理器,讓整個系統保有 RISC 微處理器,支援多種作業系統的 平台特性,同時具有強力運算能力的 DSP 微處理器。OMAP 架構能讓 DSP 與 RISC 處 理器並行工作,程式設計工程師可使用 DSP 功能做計算上處理,RISC 執行擅長的命令 與控制功能。. ─ 9 ─.

(23) 2.1.3 OMAP1510 硬體架構 TI 的 OMAP 1510 硬體結構圖,如圖 2-1所示,包含 175MHz 的 ARM925 和 200MHz 的 TMS320c55x,整合了多功能的周邊控制元件,例如 LCD 控制器、記憶體擴充介面、 紅外線介面、觸控式面版擴充介面及 USB 介面等,是一顆高度整合性的多功能嵌入式 系統微處理器。目前有許多世界性的大廠宣佈將以 OMAP 作為新一代無線通訊的新資 訊家電產品核心,如 Nokia、SONY 及 Ericsson 等。以下是 OMAP1510 的特性,分別就 OMAP 整體及 DSP 和 ARM 部分的探討[17]: „. 低功率(Low power), 高效能(High-Performance) 的 CMOS 技術. 1.. TMS320C55x DSP Core: C55x DSP 內有 5 組數據匯流排,在一個周期內允許三次讀取作業和兩次寫入作業。. C55x 具備雙 MAC 結構,內部具有一個硬體圖形加速器。綜上所述,C55x DSP 是高度 複雜功能強大的,專為基於多媒體的即時應用而設計低功耗元件。DSP 用於處理所有多 媒體應用。以下為 TMS320C55x 介紹 „. 可達 200MHz(最大處理頻率),且電壓在 1.5v(一般情況). „. 一個循環(cycle)可執行一到二個命令. „. 32K x 16-bit on-chip dual-access RAM (DARAM) (64 KB). „. 48K x 16-bit on-chip single-access RAM (SARAM) (96 KB). „. 16 KB I-cache, 8 KB D-cache. „. Video hardware accelerators for DCT, iDCT, pixel interpolation, and motion estimation for video compression. 2.. TI925T ARM9TDMI Core: ARM 既支援 32 位元也支援 16 位元(Thumb 模式)指令集,ARM925 用於執行作業. 系統(OS)。以下為 ARM925 的介紹: „. 可達 175MHz(最大處理頻率),且電壓在 1.5v(一般情況). „. 16KB I-cache; 8KB D-cache. „. 192-KB of shared internal SRAM - frame buffer. „. Support for 32-bit and 16-bit (Thumb mode) instruction sets. „. Data and program MMUs. „. Two 64-entry translation look-aside buffers (TLBs) for MMUs. ─ 10 ─.

(24) „. 17-word write buffer. 圖 2-1. OMAP1510 微處理器架構圖. 資料來源:Texas Instruments http://www.ti.com/[17]. ─ 11 ─.

(25) 2.1.4 OMAP1510 DSP 內部記憶體 在前面 OMAP1510 的規格中,在 DSP 核心部分的內部記憶體,列出有 DARAM 和 SARAM.。事實上 OMAP1510 內部有三種不同的內部記憶體給 DSP 使用,分別是 DARAM(Dual Access Memory),SARAM(Single Access Memory)和 PDROM(Program and Data ROM)。一般可以使用的為 DARAM 和 SARAM,而 PDROM 在 DSP Gateway(ARM 與 DSP 溝通的橋梁,在第三章將會詳細說明)並沒有使用。表 2-1是這三個記憶體在使 用時,DSP 和 ARM 相對於 MPU 實體記憶體的對應位置,圖 2-2則用圖形的方式表示 出記憶體圖的對應關係。. 表 2-1. DARAM. SARAM. PDROM. OMAP1510 內部記憶體位置對應表. DSP. MPU. Linux. Byte Address. Physical Address. Virtual Address. 0x000000. 0xe0000000. 0xe0000000. |. |. |. 0x00ffff. 0xe000ffff. 0xe000ffff. 0x01000. 0xe0010000. 0xe0010000. |. |. |. 0x027fff. 0xe0027fff. 0xe0027fff. 0xff8000. 0xe0ff8000. |. |. 0xffffff. 0xe00ffffff. (not used). 資料來源:Linux DSP Gateway Specification Rev 2.0[1]. ─ 12 ─. Size. 64kB. 96 kB. 32 kB.

(26) 圖 2-2. OMAP1510 內部記憶體堆疊圖. 資料來源:Linux DSP Gateway Specification Rev 2.0[1]. ─ 13 ─.

(27) 2.2. 微處理器架構比較 一般常見的嵌入式,常見微處理器架構,有 Xscale、x86,以及 OMAP。本節就以. 這三種不同的架構來做比較。. 2.2.1 x86 與 OMAP、Xscale 硬體比較 x86、OMAP 與 Xscale 大致上可以分成兩類,一種是 x86 系列的,一種是 ARM 架 構系列的。Linux 對 x86 系列的處理器支援,從 Intel 推出 386 以來,一直涵蓋到現在, 早年來以 SOC 技術整合 386 系列處理器的 CPU 核心(CPU core)和傳統 PC 週邊機能, 加入嵌入式的市場。而另一類 ARM(Advanced RISC Machine),是 ARM Holdings Ltd.所 維護推動的處理器系列,與其他製造商不同,ARM Holdings 不會製造處理器,ARM 會 依據 ARM core 為客戶設計 CPU 核心。雖然沒有自己的製造的處理器,但是只要是使用 他們架構的核心,都有一致的特性,就是共同享有 ARM 指令集(instruction set),讓 不同版本的 ARM 處理器在軟體上完全相容。目前,ARM 微處理器的製造商包括 Intel、 Toshiba 等許多其他廠商,ARM 的架構在許多應用中都相當受歡迎。而 TI,更將 ARM 和 DSP 核心結合成 OMAP。一方面可以讓其嵌入式微處理器對作業系統支援度高,且 具有一般 ARM 微處理器所沒有的 DSP 運算指令集。下面將 x86 架構加以說明,再說明 另一款相當受歡迎的以 ARM 架構為主體的微處理器 Xscale。最後以表 2-2將三個不同 點做個比較。 (1) x86 x86 架構即為一般個人電腦(PC)所相容的 CPU 架構,就機能和程式上的編程而言, 大多數的 x86 嵌入式系統都與其非常類似或都完全相同。使用 x86 的 pc 架構應該是文 件最普及的架構,書籍及網路資料相當豐富,文件相當完整,所有作業系統與應用軟體, 都以其為測試平台,但儘管是 x86 是受歡迎且廣為人知的系統,但也只能代表嵌入式系 統的一部分,因為 x86 是 CISC 非 RISC 指令集,故在電路設計上較為複雜,通常基於 複雜度和成本的考量,一般設計者大都使用 ARM、MIPS 和 PowerPC 而不使用 x86。且 在嵌入式系統相當重要的功率消耗,較擁有 ARM 架構的微處理器消耗較高是其缺點。 因為有許多嵌入式系統如 Mobile phone 和 PDA,強調能攜帶方便,如果能量消耗過高, 將不利於使用的時間長度。. ─ 14 ─.

(28) (2) Xscale Intel 針對資訊發展的大量需求之下,發展高工作效率及更低功率消耗的第二代嵌入 式微處理器 Xscale 架構。Xscale 是 StrongARM 的新一代微處理器架構,同樣是以 ARM 架構為其 CPU 核心,但 Xscale 微處理器不包含 ARM RISC 微處理器所擁有的浮點運算 (Floating Point)硬體線路,Xscale 微處理器只擁有定位點運算(Fixed Point)的線路架構。 Xscale 的 RISC 微處理器核心作為符合 ASSP 標準(Applications Specific Standard Products) 嵌入式系統控制核心,Xscale 在工作頻率上表現相當優秀,使得大部分的嵌入式系統微 處理器工作頻率上只能夠望其項背,加上 Xscale 微處理器採用了 Intel Pentium III 微處 理器中 superpipeline 技術, Xscale 只需要 1.75W 功率消耗下,擁有 1270MIPS 的執行 效率。但是對於訊號處理運算上,由於無 DSP 支援,相較於 OMAP 而言,這點是 Xscale 較 OMAP 所不足的地方。. 表 2-2. 三種不同微處理器架構的比較. 處理器 OMAP. Xscale. x86. ARM(RISC)、DSP. ARM(RISC). x86(CISC). 有(優勢). 無. 無. 低. 低. 高(缺點). 作業系統. 支援多種作業系. 支援多種作業系. 支援多種作業系. (Operating System). 統. 統. 統. (microprocessor) 指令集 (Instruction Set) 訊號處理運算 (DSP) 電力消耗 Power Consumption. 2.2.2 Linux 與 Windows 工作平台 開發者選用 Linux 的最重要理由,就是開放原始碼軟體優於私利軟體的地方,事實 上有了原碼不僅可以讓作系統變得容易理解,也可以避免依賴單一作業系統廠商的情 況。除此之外,選用 Linux 理由還有對程式碼的品質與可靠度等優點。一般而言,Linux 核心及系統上大部分計劃的程式都具有以下幾個特性:模組結構,容易修改,可擴充且. ─ 15 ─.

(29) 可設定高,可預測以及從錯誤中復原之能力,並具有長期執行的能力。使用者可以無限 制地使用 Linux 的原碼及所有建立工具,包括核心在內,都是在 GNU 通用公共授權書 (GNU General Public License,簡稱 GPL)的保護下發行。取用元件的原碼是每個使用者 的權利。 Linux 對硬體的支援度廣泛,意味著 Linux 支援各種不同類型的硬體平台裝置。儘 管仍有些廠商尚不提供 Linux 驅動程式,但預計會有越來越多的廠商加入,而且大部分 的驅動程式是靠 Linux 社群自己維護,可以安心使用,不用擔心廠商一旦停止該生產線。 沒有其他作業系統可以提供如此的移植性。成本是 Linux 的最大的優勢,Linux 的軟體 幾乎都是免費的,不需使用權(License),沒有使用人數上限,且使用 PC 比一般 Unix 機 器便宜,即可達到不錯的效能。相反地,Windows 系統即需要每台機器買一個 License, 連線人數受到控制。綜合以上 Linux 不管是效能及穩定性的優點,再加上成本低廉,使 得 Linux 在許多平台,皆漸漸成為主流。. 表 2-3. 嵌入式作業系統開發平台比較. 平台. Linux. Windows. 原始碼. 公開. 不公開. 程式發展工具. 有,免費(Ex:gcc). 有,需費用(Ex:Visual C++). 維護. Linux 社群維護居多. 廠商提供服務. 應用程式. 相當多,具免費. 多,大多需要費用. 平台移植性. 高. 廠商需與 Microsoft 合作. 費用. 免費. 相當高. 綜合以上所言,關於 Linux 與 Windows 的比較如表 2-3所示,由表上可知選擇 Linux 為開發環境可減少成本,並且修改維護自由,不依賴定廠商。由於 Linux 在嵌入式系統 市場上有發展之潛力,促使許多公司開始在這個領堿推廣 Linux,一般常看到的廠商有 Red Hat、MontaVista1、WinRiver、LynuxWorks 等。. 1. MontaVista 和 WinRiver 為專門為 Embedded 開發 Linux 系統的廠商. ─ 16 ─.

(30) 2.3. OMAP 程式開發環境 在前面將 OMAP 微處理器硬體和環境選擇簡單的說明之後,接下來要進入軟體應. 用的開發環境部分。因為 OMAP 是由 ARM 和 DSP 兩種架構所組成的,如果只有一種 程式發展平台是不夠的,必需要兩種發展平台,對於這一點,本論文的規劃是: (1) ARM code 使用 Linux 跨平台程式編譯 arm-linux-gcc(Cross Compiler)。 (2) DSP code 使用 TI 的 CCS(TI proprietary Integrated Development Environment)來發展。 在本節將會針對 ARM 和 DSP 的程式開發環境做個說明。. 2.3.1 程式開發環境於 ARM 架構 在一般 PC 的 Linux 的環境下開發程式,最常使用到的編譯器,莫過於 gcc(GNU Compiler Collection) ,然 而 嵌 入 式系 統 開 發也 需 要 用 到編 譯 器 (Compiler) 、 連 結 器 (Linker)、組譯器(Assembler),整合開發環境。以 ARM 而言,不同於 x86 架構,在 x86 環境下的產生的執行檔,並不能用於 ARM 架構的環境中,若想要在 x86 環境下開發 ARM 程式需要建立一個跨平台開發的工具(cross-platform development tool,或稱為 cross development tool)。對於 ARM 程式的開發,採用 GNU 的工具鏈(toolchain),對 ARM 平台的 cross-compiler(交叉編譯)—arm-linux-gcc 來進行程式的編譯。arm-linux-gcc 將程 式碼針對 ARM 的架構進行編譯,產生出來的執行檔便可以於 ARM 的架構上執行。. 2.3.2 程式開發環境於 DSP 架構 CCS (Code Composer Studio)是德州儀器所提供用開發 DSP 程式的軟體,包含了跨 平台的開發工具,CCS 提供一個完善的整合發展環境(IDE,Integrated Development Environment),對於多種處理器、多使用專案,並且是第一個提供 DSP(TMS320C2000、 TMS320C5000、 TMS320C6000) 與 OMAP 應用程式開發的環境。CCS 包含了程式編 譯器、模擬器以及程式除錯器,藉由這些工具可以很輕易地開發 OMAP 的應用程式, 尤其在撰寫 DSP 的應用元件時,透過 CCS 可以很容易在 DSP/BIOS 上整合支援影像及 音訊資料處理的套件。. ─ 17 ─.

(31) CCS 以一致的環境來整合所有 host 與 target 工具,包括 TI 的 DSP/BIOS kernel、 code-generation tools、fast simulators、debugger、與 Real-Time Data Exchange (RTDX) 技 術,簡化應用程式的開發。. 2.3.3 CCS 程式開發 在使用 CCS 做為 DSP 程式開發之前,先了解程式開發流程,將有助於使用 CCS 的 元件。在一個程式設計前,對於要設計的程式先有個概念,再開始程式碼的編寫,在過 程中遇到錯誤時需要除錯時,CCS 具有相當大的功能,可以對程式編碼做除錯,以及即 時的分析,程式執行過程,都可以追蹤。CCS 的程式發展流程如圖 2-3:. 圖 2-3. CCS 程式發展設計流程. 資料來源:Code Composer Studio Getting Started Guide Rev. C[6]. 在使用 CCS 開發程式時,要先根據開發的系統 ARM 和 DSP 做好系統的配置,如 此才能跨平台開發程式,而且 CCS 具有在不同硬體或模擬目標(target)上開發的環境。 DSP 程式碼的編寫前,需要先設定 CCS 編程的環境,包括環境記憶體的配置等。CCS 的 Code Generation Tool 包含能將程式碼做最佳化的 C/C++編譯器(Compiler)、組譯器 (Assembler)、連結器(Linker),和功能安排,最後產生一個 DSP 的可執行二元檔(binary code),整個程式編譯的流程,可以圖 2-4表示:. ─ 18 ─.

(32) 圖 2-4. DSP 程式編譯流程圖. 圖 2-4表示,在產生 DSP 的執行檔中,由 C/C++的原始碼經過 C/C++的編譯器(C/C++ compiler)可產生組合語言原碼,再經過組譯器(Assembler)產生物件(Object)檔,經由連結 器(Linker),產生最後的 Executable COFF(Common Object File Format)檔(以.out 為副檔 名)。在後面的章節,將會說明有關於 DSP 的動作,都是先將原始碼,經 CCS 編譯之後, 產生 COFF 檔,再將 COFF 檔在 Linux 的環境下載入,便具有此 DSP 碼裡面所寫的功能, 也就是後面第三章將會說明的 DSP 工作(DSP task)。. ─ 19 ─.

(33) CCS IDE 提供圖形化的操作介面。開發一個 DSP 應用程式時,大致上的流程是, 首先建立一個專案(Project),當專案建立時,系統會自動產生 Make 檔。使用都只需要寫 C/C++或組合語言原始檔,加入專案裡面,裡面包含的資料有: „. 原始檔和函式庫的名字. „. 編譯器、組譯器和連結器的設定. „. 所有相關的檔案(例如:自訂的標頭檔、DSP 的配置檔). 經過圖 2-4的編譯過程,就可以產生所要的 COFF 檔。. ─ 20 ─.

(34) 2.3.4 CCS 除錯工具 在上一小節中 曾經提到程式開發中,程式除錯的過程,CCS IDE 提供數種不同的 除錯工具,讓程式開發人員能對發展的程式除錯,CCS 並非所有的硬體都支援,表 2-4, 表示 CCS 所支援的硬體以及除錯工具所提供的功能。其中 OMAP 微處理器是屬於 ARM9 和 C55x(OMAP DSP Core)兩種硬體。 表 2-4 Debug Tools. C62x. C64x. CCS 除錯工具以及支援硬體 C67x. C54x. C55x. C28x. 470R1x. 470R2x. (ARM7). (ARM9). Breakpoints. ˇ. ˇ. ˇ. ˇ. ˇ. ˇ. ˇ. ˇ. Watch Window. ˇ. ˇ. ˇ. ˇ. ˇ. ˇ. ˇ. ˇ. Probe Points. ˇ. ˇ. ˇ. ˇ. ˇ. ˇ. ˇ. ˇ. Simulator Analysis. ˇ. ˇ. ˇ. Emulator Analysis. ˇ. ˇ. ˇ. ˇ. ˇ. ˇ. ˇ. Event Trigging. ˇ. ˇ. ˇ. ˇ. Graphs. ˇ. ˇ. ˇ. ˇ. ˇ. ˇ. ˇ. ˇ. Symbol Browser. ˇ. ˇ. ˇ. ˇ. ˇ. ˇ. ˇ. ˇ. GEL. ˇ. ˇ. ˇ. ˇ. ˇ. ˇ. ˇ. ˇ. Command Window. ˇ. ˇ. ˇ. ˇ. ˇ. ˇ. ˇ. ˇ. Pin Connect. ˇ. ˇ. ˇ. ˇ. ˇ. ˇ. Port Connect. ˇ. ˇ. ˇ. ˇ. ˇ. ˇ. Data Converter. ˇ. ˇ. EMT Tool. ˇ. ˇ. OS Selector. ˇ. ˇ. (Call Advanced Features for ARM). ˇ. 資料來源:Code Composer Studio Getting Started Guide Rev. C[6]. ─ 21 ─.

(35) 2.4. DSP/BIOS 具有強大運算功能的 DSP 處理器,原本就是設計用來製作較為複雜的 DSP 系統。. 但在系統中,如何有效地利用 DSP 的資源,在一複雜的系統中,如想做到即時多工處 理,必定面臨的一個問題。就此一問題,TI 的 DSP/BIOS 發展環境的核心,就提供了一 個多執行緒(Multi-thread)的管理系統,讓使用者能在 DSP 上發展出一套嵌入式即時系統 (Embedded real-time system)。CCS IDE 裡面 DSP/BIOS 具有即時核心(Real-time kernel) 和即時分析(real-time analysis)的特性。可以快速且簡便地設計發展出複雜的應用,且具 有除錯的功能。這一小節,將說明 TI 所提供的即時核心:DSP/BIOS 核心,以及其多執 行緒(multi-thread)內部的定義。下個章節的 DSP Gateway 的 DSP 應用部分便是使用 DSP/BIOS 做為其主要程式的核心所開發出來的 APIs。. 2.4.1 DSP/BIOS 核心 DSP/BIOS 核心是一個即時核心,主要被設計出來針對某些應用層面,其中包含: 即時排程(Real-Time scheduling)、同步(Synchronization),以及 HOST 和 TARGET 之間 的 通 訊 (Communication) 。 DSP/BIOS 核 心 提 供 了 (1) 強 制 性 (Preemptive) 的 多 執 行 緒 (Multi-Thread),也就是在 DSP 中有許多工作(Task)時,高優先權的工作可以將正在執行 的低優先權的工作的中斷,並且搶得執行權。(2)硬體抽象化(Hardware Abstraction),系 統核心和硬體間的硬體處理層,系統的硬體中斷完全由硬體抽象層所控制。使用者只要 針對硬體抽象層給予的硬體描述,便可以控制硬體,(3)即時分析(Real-Time Analysis)的 功 能 。 DSP/BIOS 核 心 模 組 是 可 以 連 結 於 一 應 用 程 式 內 。 除 此 之 外 , DSP/BIOS Configuration 工具可將程式的大小,最佳化處理。DSP/BIOS 還能探查追蹤一些有關於 執行時,DSP 內部的資料,並且即時的呈現出來,圖 2-5中表示了 DSP/BIOS 在 CCS 上 所扮演的角色。. ─ 22 ─.

(36) 圖 2-5. CCS 整合發展環境. 資料來源:Code Composer Studio Getting Started Guide Rev. C[6]. DSP 的應用程式使用 DSP/BIOS 核心,DSP/BIOS 核心是一個事件驅動(Event-Driven) 的架構,透過 DSP/BIOS Configure 對於 DSP/BIOS 內的機制作設定,DSP/BIOS 系統配 置工具是用來幫助開發者在撰寫事件處理函式時,設定事件的特性與參數,如 HWI、 SWI、TSK、SEM、TIMER 等來使用 DSP/BIOS 的多執行緖能力。. 2.4.2 DSP/BIOS 系統配置工具(Configuration Tool) DSP/BIOS 系統配置工具是一圖形介面式編輯工具,用來輔助使用者設定一個即時 作業核心以及各項參數。程式設計者可以由系統內建的 DSP/BIOS 系統配置樣本 (Template)檔中選擇一個編輯,如圖 2-6。隨後在第三章的 ARM 與 DSP 通訊所使用的 DSP Gateway APIs,因為是以 DSP/BIOS 為核心,故亦需要對 DSP/BIOS 參數設定。. ─ 23 ─.

(37) 圖 2-6. DSP/BIOS 系統配置工具. 2.4.3 DSP/BIOS 的執行緒(Thread) DSP/BIOS 核心實行了執行時(Run-Time)由 DSP/BIOS APIs 所建構的應用程式。圖 2-7表示,DSP/BIOS 執行緒的關係,執行緒之間是各自獨立的 DSP 的命令,可以是中 斷要求(ISR,Interrupt Service Request)、副函式(Subroutine)或者是一個函式呼叫(Function Call)。例如,當一個硬體發出中斷,就是一個執行緒,這時會做出一個 ISR。. 圖 2-7. DSP/BIOS 執行緒表示. 資料來源:TMS320 DSP/BIOS User’s Guide Rev B[4]. ─ 24 ─.

(38) 單一處理器系統經由優先權(Priority)的安排,高優先權的執行緒,比低優先權的先 處理而達到多執行緒的應用。DSP/BIOS 提供了 30 個層級的權先權順序並分成四個明確 的類型,圖 2-8 表示。依優先順序可分成: (1) 硬體中斷(Hardware interrupt,HWI):在 DSP 的環境下產生外部非同步的事件觸發的 回應。HWI 函式(或稱為一個 ISR,interrupt service routine)是在硬體發生中斷之後在 一定的時間內執行的一個 Critical Task。硬體中斷具有最高的優先權。 (2) 軟體中斷(Software interrupt,SWI):提供硬體中斷與一般執行緒間另一種優先順序 的選擇,與硬體中斷一樣,必須將中斷函式執行完畢才會將執行權釋出。通常軟體 中斷,排程會在 100 微秒(microseconds)或更久,才會執行。 (3) 一般工作(task,TSK):一般工作可以暫停(Suspend),等待一些必要資源齊全後再繼 續執行,DSP/BIOS 亦提供特殊結構,以利於一般工作間的通訊(inter-communication) 及同步功能,這些結構包括:Atomic Queue,QUE 模組、旗號(Semaphores,SEM 模 組)及 Mailbox,MBX 模組。優先權較 Background thread 來的高。 (4) 背景執行緒(Background thread):執行一個不工作的迴圈(IDle Loop,IDL),在 DSP/BIOS 內是最低優先權。. 圖 2-8. DSP/BIOS 各種執行緒之優先順序. 資料來源:TMS320 DSP/BIOS User’s Guide Rev B[4]. ─ 25 ─.

(39) 表 2-5是針對四種類型的特性做比較,表 2-6 則是強制性的比較說明。圖 2-9以表 2-6為參表,針對不同類型做一個時序上的呈現表示。 表 2-5. 執行緒的特性比較. 特性. HWI. SWI. TSK. IDL. 優先權(priority). 最高. 次高. 次低. 最低. 16(包含 1 的 IDL). 1.. 優先權層級的數 目. 和 DSP 有關. 15.工作排程器是 最低的層級. 能否被暫停. 不能,一旦執行. 不能,一旦執行. Can yield and. 時,要完整結束,. 時,要完整結束, 才. pend. 才交出執行權. 交出執行權. 執行狀態. 不執行,準備,. 不執行,準備,執. 準備,執行中,. Execution states. 執行中. 行中. 推延、結束. 排程如何停止. HWI_disable. SWI_dspable. TSK_disable. 必定不能;會阻 能. 礙 PC 收到目標 的資訊. Program exit. SWI_post, 如何輪詢或準備 執行. 中斷產生. SWI_andn, SWI_dec,SWI_INC,. 準備、執行. 當進入主程式 時,只要沒有其. TSK_create. 他程式在執行. SWI_or 系統堆疊. 系統堆疊. 工作堆疊. 預設工作堆疊. System stack. System stack. Task stack. Task stack used. (1 per program). (1 per program). (1 per task). by default. 本文儲存. 客製化. 將暫存器存在系統. 將全部的內容存. Context saved. customizable. 堆疊. 在工作堆疊. 使用何種堆疊 Stack used. -Not Applicable-. 資料流 Stream,. 執行緒資料共享. 資料流 Stream,. 資料流 Stream,佇. 佇列 queue,. 資料流 Stream,. 佇列 queue,. 列 queue,pipes,全. pipes,locks、. 佇列 queue,. pipes,全域變數. 域變數 global. mailbox,全域變. pipes,全域變數. global variables. variables. 數 global. global variables. variables 執行緒同步. Semaphores -Not Applicable-. , -Not Applicable-. SWI mailbox mailbox. Dynamic creation. Yes. Yes. Yes. No. 動態改變優先權. No. Yes. Yes. Yes. 1:結束一般工作管理對談通訊,IDL 執行緒才會去使用系統堆疊。 資料來源:TMS320 DSP/BIOS User’s Guide Rev B[4]. ─ 26 ─.

(40) 表 2-6. 執行緒的相互強制性(Thread Preemption) 執行緒執行(Thread running). 執行緒發佈(Thread Posted). 硬體中斷. 軟體中斷. 一般工作. 不工作迴圈. 開始硬體中斷. 可強制執行. 可強制執行. 可強制執行. 可強制執行. 結束硬體中斷. 等待回應. 等待回應. 等待回應. 等待回應. 開始高優先權的軟體中斷. -----. 可強制執行. 可強制執行. 可強制執行. 結束軟體中斷. 等待. 等待回應. 等待回應. 等待回應. 低優先權的軟體中斷. 等待. 等待. -----. -----. 開始高優先權的一般工作. -----. -----. 可強制執行. 可強制執行. 結束一般工作. 等待. 等待. 等待回應. 等待回應. 低優先權的一般工作. 等待. 等待. 等待. -----. 資料來源:TMS320 DSP/BIOS User’s Guide Rev B[4]. 圖 2-9. Preemption Scenario. 資料來源:TMS320 DSP/BIOS User’s Guide Rev B[4]. ─ 27 ─.

(41) 三、 OMAP 內部通訊架構及溝通方式 3. OMAP1510 微處理器結合 ARM925T 和 TMS320C55x DSP 處理器,但是要如何將 這兩個處理器的功能相互結合應用,是一個問題所在,DSP Gateway 提供了一個解決的 管道。DSP Gateway 是一個機制,能使 OMAP1510 微處理器能在 ARM 和 DSP 之間溝 通,使得系統能同時使用 ARM 以及 DSP 的資源。如此一來能在 ARM 的架構上建立一 個 Linux 作業系統,同時又可以使用 DSP 的運算能力。本章將針對『DSP Gateway 架構』 、 『DSP Gateway Linux API』、『DSP Program』等部分,將 ARM 和 DSP 溝通的機制一 步一步的說明。. 3.1. DSP Gateway 簡介 ARMLinux 是一個相當受歡迎的嵌入式作業系統。從網路上,可以找到相當多有關. 於 ARMLinux 的資料。然而,為了使 DSP 能在 ARMLinux 架構下使用,對於整個系統 必須做個小變動,讓程式設計人員使用 ARM 的同時,亦可以使用 DSP。 DSPGateway 是一個機制,能幫助程式設計人員在設計應用程式時可同時使用 ARM 和 DSP 部分。DSPGateway 主體包含了兩個部分,一個部分是在 ARM 上的 Linux 的裝 置驅動程式:DSP 核心韌體,另一部分為 ARM 和 DSP 通訊的應用程式介面(API)。ARM 和 DSP 的通訊,驅動程式提供了常見的 Linux 裝置檔案操作(File Operations)介面,程式 設計人員欲使用 DSP 時,在 ARM 部分,可以透過一般的系統呼叫(System Calls),像是 read 和 write 與 Linux 根目錄下 dev 目錄內的 DSP 工作裝置檔案(Task Device File)進行溝 通。DSP 部分,可使用 DSPgateway 所提供的 APIs 和 DSP/BIOS 的 APIs 與 ARM 做同 步的程序處理。圖 3-1為 ARM 和 DSP 溝通的狀態表示:. ─ 28 ─.

(42) 圖 3-1. ARM 和 DSP 呼叫狀態圖. 在程式的開發設計功能上,ARM 的部分,可以用於設計使用者介面,系統資源管 理等方面的工作。在 DSP 部分,透過 DSP Gateway 的機制將應用程式中複雜的計算交 予 DSP 核心計算,善用 DSP 的計算能力,達到最佳的處理效能。必需要注意的是,在 使用 DSP Gateway 做 ARM 和 DSP 溝通時,從 ARM 或 DSP 傳輸及接收資料的形式大 小、傳輸方式,都需要被明確的定義,在這一部分在本章節中將會逐一探討說明。. ─ 29 ─.

(43) 3.2. DSP Gateway 架構 (DSP Gateway architecture) DSP Gateway 主要可分成 DSP Gateway 架構和程式編寫的方式,兩個部分來探討. 之。其中包括『DSP Driver 與 Linux API』、『Mailbox 傳輸命令機制』與『DSP Gateway BIOS(tokliBIOS)與 DSP APIs』。DSP Driver 與 Linux APIs 包含 ARM 的環境下提供與 DSP 溝通操作的方式及介面。Mailbox 機制,將 ARM 與 DSP 之間操作動作所傳送的 Mailbox 命令做解譯,並且傳送資訊。DSP Gateway BIOS 與 DSP APIs,主要是與 DSP 溝通和 DSP 系統管理機制有關,建構於 TI 的 DSP/BIOS 提供的即時多工的核心和 APIs 所建構而成的。圖 3-2可用來表示 DSP Gateway 整個架構的關係圖。. 圖 3-2. DSP Gateway 系統架構圖. 在之後每小節,將一步一步說明圖 3-2的整個溝通架構和溝通流程方式。首先述 說,DSP Gateway 架構的基礎,此部分包含 DSP Gateway BIOS 和 DSP Gateway Driver 和 Mailbox 三部分,介紹 DSP Gateway 的整體概念。其次再進入系統程式及應用程式的 設計的部分,將分成 Linux API 與 DSP program(DSP Task)二個部分說明。. ─ 30 ─.

(44) 3.2.1 DSP Gateway BIOS DSP Gateway BIOS 是以 DSP/BIOS 為主體的處理介面,圖 3-2右側 DSP Gateway BIOS 繼承了 DSP/BIOS 即時多工核心所提供的 APIs,並且會將『系統初始化』,還有 處理『Mailbox 中斷』的工作。圖 3-3表示 DSP Gateway BIOS 組成的架構,DSP Gateway BIOS 配置 DSP/BIOS 的動作。 初始化動作,主要包含: „. 配置 DSP 1-cache,其形式為 2-way set associative cache。. „. 啟動 mailbox 中斷以及 watchdog timer 中斷. „. 設定 Timer1 每 10ms 中斷一次. „. 初始化 Timer Queue. „. 初始化所有使用者的 tasks 和 supertask. 圖 3-3. DSP Gateway 與 DSP/BIOS 關係圖. DSP Gateway 對於 DSP/BIOS 的配置功能,可以歸納如下: „. 系統—整體設定. „. 硬體中斷—HWI_INT5 (Mailbox interrupt). „. 硬體中斷—HWI_INT13 (Watchdog Timer interrupt). „. 時序函式(Clock function, CLK). „. 週期函式(Periodic function, PRD)—PRD0(每 10 ms 執行一次). „. 週期函式(Periodic function, PRD)—PRD1(每 1s 執行一次). „. 工作—TSK_sleep(優先權最低的工作函式). ─ 31 ─.

(45) „. 工作—TSK_super(優先權最高的工作函式). „. 旗號—SEM_super. 3.2.2 DSP Gateway Driver 在 Linux 的核心中,每個裝置的操作都有其檔案操作的結構,而系統則提供一個共 同的系統呼叫介面(System Call Interface)給使用者空間(User Space)的應用程式來對裝置 進行存取動作。作業系統核心所扮演的必需是根據不同的裝置,將系統呼叫介面與驅動 程式的檔案操作進行連結對應,如圖 3-4:. 圖 3-4. DSP 驅動程式檔案操作介面. 圖 3-4可用來表示 DSP Gateway Driver 內部的基本架構,其中 DSP Device,是 DSP Gateway driver 使用 devfs 新的裝置檔案系統產生的,可以藉由存取 DSP 核心資源的裝 置檔案,來傳送資料和命令給 DSP 核心,這些裝置檔案包括有:DSP task device、DSP task watch device、DSP control device、DSP watchdog device 及 DSP exmem device 五種裝置。 DSP Device Driver 內亦包括檔案操作(file operations)可以用於存取 DSP 裝置。關於 DSP 的裝置檔案,在後面的小節,將會詳細說明。. ─ 32 ─.

(46) 3.2.3 Mailbox 圖 3-2中間部分為,在 OMAP1510 處理器內,ARM 和 DSP 處理器內部通訊是使用 了 DSP Gateway 的 Mailbox 的機制。Mailbox 有三個暫存區,一個是用於微處理器單元 (MPU,Micro Processor Unit)送資訊和分給一個中斷(INT5)給 DSP。其於兩個是 DSP 送 中斷要求(IRQ10/IRQ11)給 MPU 要回送資料,通常用到 IRQ10。每個暫存器包括是兩個 16-bit 暫存器和 1-bit 旗標暫存器(flag register)。圖 3-5為 ARM-和 DSP 通訊的 Mailbox 機制,圖 3-6為暫存器的 bit 定義表示,表 3-1為 Mailbox 命令的定義。. 圖 3-5整個通訊的流程,可以分成兩點來表示: (1) MPU 送一個訊息和發佈一個中斷(INT5:Interrupt 5)給 DSP。 (2) DSP 回送一個訊息和發佈一個中斷(IRQ10/11)給 ARM。需要注意的是,DSP 傳訊號 到 ARM,同時,僅能有一個 mailbox 能被使用。. INT5 的中斷服務函式(ISR),Mailbox 中斷所做的工作是讀取命令和將 ARM 端傳送 的 mailbox 命令做註冊。一般而言,分成兩個中斷情況,一種是一般工作,另一種是系 統工作。假如接收到要給使用者工作(user task)命令。它會被註冊在目標工作中且增加 task 中 MBQ(Mailbox Queue)的旗號(semaphore)。然後,這個命令將會被註冊到將要被 處理的每個 task 的 MBQ。如果這個命令是對於系統工作的,它將會被註冊到 supertask 的 MBQ。交由 supertask 來處理這些命令。假如接收到的命令需要用到 Global IPBUF(例 如:BKSND),除了要對 MBQ 做註冊外。Global IPBUF balancing process 在這個函式中 亦要被執行。 圖 3-6說明了 Mailbox command 的封包格式,每個 Mailbox 命令都是以這個結構傳 遞訊息,對照表 3-1,可以了解清楚知道到每個封包分部和在不同的數值下,所表示的 動作涵義。. ─ 33 ─.

(47) 圖 3-5. Mailbox 機制. 資料來源:Linux DSP Gateway Specification Rev 2.0[1]. 圖 3-6. Mailbox 暫存器配置. 資料來源:Linux DSP Gateway Specification Rev 2.0[1]. ─ 34 ─.

(48) 表 3-1. Mailbox 命令定義. Command. CMD_H. CMD_L. Data register. Short Description. WDSND. 0x10. TID. word data to send. Word Send. WDREQ. 0x11. TID. -. Word Request. BKSND. 0x20. TID. BID. Block Send. BKREQ. 0x21. TID. requesting count. Block Request. BKYLD. 0x23. -. BID. Block Yield. BKSNDP. 0x24. TID. -. Block Send Private. BKREQP. 0x25. TID. -. Block Request Private. TCTL. 0x30. TID. -. Task Control. WDT. 0xd0. -. notification value. Watchdog Timer Notification. TCFG. 0xe0. TID. configuration data. Task Configuration. TADD. 0xe2. TID. BID. Task Add. TDEL. 0xe3. TID. -. Task Delete. TSTOP. 0xe5. -. -. Task Stop. DSPCFG. 0xf0. CFGTYP. configuration data. System Configuration. REGRW. 0xf2. TYPE. address/data. Register Read/Write. GETVAR. 0xf4. VARID. data. Get Variable. SETVAR. 0xf5. VARID. data. Set Variable. ERR. 0xf8. EID. command caused the error. Error Information. DBG. 0xf9. TID. -. Debug. 資料來源:Linux DSP Gateway Specification Rev 2.0[1]. ─ 35 ─.

數據

圖 1-1  實驗室單板技術衍進
圖 1-2  發展中系統沿革及軟硬體之比較
圖 2-2  OMAP1510 內部記憶體堆疊圖  資料來源:Linux DSP Gateway Specification Rev 2.0[1]
圖 3-4  DSP 驅動程式檔案操作介面
+7

參考文獻

相關文件

(軟體應用) 根據商務活動之舉辦目標及系統需求,應用 Microsoft Office 文書處理 Word、電子試算表 Excel、電腦簡報 PowerPoint、資料庫 Access

第四章 連續時間週期訊號之頻域分析-傅立葉級數 第五章 連續時間訊號之頻域分析-傅立葉轉換.. 第六章

GBytes 1024 MBytes P9-編號 2 資料磁區在 Linux 之作業系統

命令解釋程式 作業系統 (MS-DOS,UNIX, WINDOWS 98/NT, 2000, XP, LINUX).

存放檔案的 inode 資訊, inode 一旦滿了也一樣會 無法儲存新檔案, inode 會告知檔案所使用的 data block 位置。. Q :如何知道那些 inode 和

Windows/ Linux/ Mac 各種平台的開發套件,使我們能夠透過各種平台來開發 Android 軟體,所有的 Android 應用程式都是使用 Java

由於資料探勘 Apriori 演算法具有探勘資訊關聯性之特性,因此文具申請資 訊分析系統將所有文具申請之歷史資訊載入系統,利用

Hanning Window 可用來緩和輸入訊號兩端之振幅,以便使得訊號呈現 週期函數的形式。Hanning Window