GeeGo edm-feedback-home edm-feedback-young-findjob edm-feedback-ccna edm-feedback-ccnp edm-feedback-lpic1 edm-feedback-lpic2 edm-feedback-embedded edm-feedback-perl edm-feedback-javascript edm-feedback-php edm-feedback-java edm-feedback-android edm-feedback-iphone
Embedded Linux Embedded Linux
Embedded Linux

【嵌入式多媒體人機介面 MMI 設計課程】

【課程目標】

  • 建立與佈署 Android 平台上的應用軟體。
  • 開發設計與優化美觀的功能性使用者介面。
  • 既存的應用軟體管理介面與函式庫工具運用。
  • 當地 GPS 衛星定位相關應用服務植入。
  • 程式碼編譯與撰寫。

【適合對象】

已經有 Java 語言程式基礎,想學習如何在 Andriod 平台中開發多媒體 UI 應用的學員。

【課程內容】

  1. Android 介紹
    .Android 與 Linux
    .Android 開發工具組
    .Android 開發架構
  2. Android 使用者介面 GUI 開發
    .版面設計宣告
    .選單
    .交談視窗
  3. 使用者介面 UI 事件處理
    .回應使用者
    .主題與風格
    .客製化元件建立
    .使用瀏覽器關聯資料
    .一般版面物件
  4. 安全性與權限
    .安全防護實作練習
    .了解 Manifest.xml
  5. Android 應用管理介面、類別與函式庫
    .android.app
    .android.appwidget
    .android.content
    .android.content.pm
    .android.content.res
    .android.database
    .android.database.sqlite
    .android.graphics
    .android.graphics.drawable
    .android.graphics.drawable.shapes
    .android.hardware
    .android.inputmethodservice
    .android.location
    .android.media
    .android.net
    .android.net.http
    .android.net.wifi
    .android.opengl
    .android.os
    .android.preference
    .android.provider
    .android.sax
    .android.speech
    .android.telephony
    .android.telephony.gsm
    .android.test
    .android.test.mock
    .android.test.suitebuilder
    .android.text
    .android.text.format
    .android.text.method
    .android.text.style
    .android.text.util
    .android.util
    .android.view
    .android.view.animation
    .android.view.inputmethod
    .android.webkit android.widget
    .Android Java 類別
    .C++ 函式庫
  6. Android 圖片與音訊
    .2D 平面圖片
    .3D 立體圖片
    .聲音音訊編碼
  7. Android 衛星定位位址 GPS / Location
    .位址服務應用管理介面
    .建置一個假的位址提供者
    .透明圖視
    .縮放
  8. 實作一個 Android 小工具

【嵌入式 Linux 驅動程式設計課程】

【課程目標】

  • 了解嵌入式各種周邊硬體的運作原理。
  • 運用 C 語言技術編修、調整驅動程式。
  • 能撰寫 Linux 驅動程式,並控制各種周邊。
  • 了解 Linux 中如何撰寫中斷、多工、或存取記憶體相關程式。

【適合對象】

已經有 C 語言程式基礎,想學習如何撰寫程式操控整個嵌入式系統硬體的學員。

【課程內容】

  1. 驅動程式概論
    .何謂驅動程式
    .是否一定要有作業系統
    .撰寫驅動程式應考慮的事項
    .編寫驅動程式的技術基
  2. 驅動程式開發簡介
    .撰寫驅動程式的方法
    .「模組(Driver Module)」介紹
    .Linux 驅動程式的分類
    .User Space 驅動程式
  3. 開發環境設定
    .作業系統
    .文字編輯器
    .編譯器
    .核心原始碼
    .開發板執行環境
    .驗證環境安裝是否正確
  4. 您的第一個驅動程式
    .Hello! World! 模組
    .將驅動程式編譯為模組
    .由模組外傳入參數
  5. 核心基礎資料結構
    .一般資料型別
    .核心資料型別
    .檔案系統相關資料結構:inode, dentry, file
    .核心內常用資料結構:list_head, klist, kobject, kset, subsystem
  6. 裝置驅動程式模型
    .裝置驅動程式模型簡介
    .udev 裝置檔案系統簡介
    .sysfs
    .udev 相關結構體:device, device_driver, bus_type, class
  7. 字元驅動程式
    .字元驅動程式簡介
    .cdev 結構體介紹
    .裝置編號介紹
    .file_operations 結構體介紹
    .範例:globalmem
  8. 並行控制
    .並行控制簡介:並行控制與競爭條件
    .並行控制基本機制
      - 中斷抑制(Interrupt Disable)
      - 單體操作(Atomic Operations)
    .自旋鎖系列
      - Spin Lock
      - Read-Write Spin Lock
      - Seqlock
      - Read-Copy-Update (RCU)
    .信號體系列
     - Semaphore
     - Completion
     - Read-Write Semaphore
      - Mutex
  9. 阻塞與非阻塞式 I/O
    .簡介
    .阻塞式 I/O:等候佇列(Waiting Queue)
      - 資料結構介紹:wait_queue_head_t, wait_queue_t
      - 定義與初始化
      - 增減等候佇列內的項目
      - 休眠與喚醒佇列內的項目
      - 範例
    .非阻塞式 I/O:輪詢(Polling)
     - 基本原理
      - 相關函式:select(), poll(), epoll()
      - 範例
  10. 阻塞與非阻塞式 I/O
    .信號通知(Signaling)
    .如何使驅動程式支援非同步 I/O
    .範例
  11. 中斷
    .中斷簡介
    .Linux 中斷機制:頂部/底部中斷
    .Linux 中斷實作
    .中斷共享
    .實例
  12. 記憶體存取
    .Linux 記憶體管理原理與各種位址空間
      - Physical Address
     - Bus Address
     - Kernel Logical Address
     - Kernel Virtual Address
     - User Virtual Address
    .核心記憶體申請:kmalloc() / kfree() vs. vmalloc() / vfree()
    .虛擬與實體記憶體映射
    .核心記憶體回收機制
      - Lookaside Cache
      - Memory Pool
  13. LED 驅動程式
    .LED 驅動的硬體原理
    .LED 驅動程式實例解說
      - 製作驅動程式骨架
      - 註冊驅動程式
      - 相關函式撰寫:open(), release(), ioctl()
      - 測試與驗證
  14. 按鍵驅動程式
    .按鍵驅動程式的硬體原理
    .專案環境設定
    .實例解說
      - 驅動程式的註冊
    00- 相關函式的撰寫:open(), release(), iotrl(), read(), write()
      - 中斷改寫與攔截
      - 測試與驗證
  15. 背光調整與脈寬調變
    .背光調整硬體原理
    .類比與數位轉換:脈寬調變(PWM, Pulse Width Modulation)
    .實例解說
      - 電路圖相關腳位說明
      - 設定脈寬調變用的「計時器(Timer)」
      - 程式碼撰寫
  16. USB 驅動程式
    .USB 特性簡介
    .USB 邏輯單元:Device, Config, Interface, Endpoint
    .USB 命令封包:URB (Usb Request Block)
    .實例解說
  17. USB 驅動程式
    .LCD 硬體原理
    .影格緩衝區(Frame Buffer)
    .LCD 三大驅動程式
     - 主驅動程式(Main Character Device Driver)
     - 影格緩衝區驅動程式(Frame Buffer Device Driver)
      - 背光驅動程式(Backlight Device Driver)
    .實例解說

【嵌入式 C 語言入門課程】

【課程目標】

  • 熟悉嵌入式系統 C 語言開發環境的架設與使用。
  • 了解 C 語言變數、分支、迴圈、函式…等基本語法。
  • 認識前處理器、指標、特殊宣告等嵌入式系統常用的技巧。
  • 知道一般 C 語言與嵌入式 C 語言不同之處。

【適合對象】

對嵌入式程式設計有興趣、有心朝嵌入式軟體工程師領域邁進的學員。

【課程內容】

  1. 課程介紹與環境安裝
    .C 語言歷史介紹
    .開發環境安裝
    .開發板與 PC 的連接
    .如何傳送檔案到開發板
  2. C 語言程式骨架與編譯流程
    .C 語言原始碼基本架構
    .編譯與執行
    .一般編譯與執行
    .交叉編譯與執行
    .使用 Make 編譯執行檔
    .除錯工具 gdb 介紹
    .如何對開發板執行遠程除錯
  3. 定數、變數、常數(Literals, Variables, Constants)
    .定數四大種類
      - 整數定數:123, 0123, 0x123, 123L, 123LL, 123u
     - 浮點數定數:1.23, 1.23F, 1.23L, 1.23e-5
     - 文字定數:'a', L'a', "Hello"
     - 布林值定數:true, false
    .變數
     - 宣告公式:正負號 長度 型態 名稱 = 初值
     - 命名規則與習慣
     - 溢位與不足(Overflow vs. Underflow)
     - 固定寬度變數:int8_t, uint8_t, int16_t, uint16_t, …
     - 轉型(Casting)
    .常數
     - #define 常數
     - const 常數
     - enum 常數
  4. 運算子
    .運算子簡介
    .各種運算子介紹
     - 算數運算子
     - 關係運算子
     - 條件運算子
     - 位元運算子
     - 其它運算子
    .運算子優先順序與結合性
    .運算式(Expression)
  5. 分支與迴圈
    .分支:if~else, switch~case
    .迴圈:for, while, do~while
  6. 複合資料結構
    .陣列
      - 宣告方法
     - 陣列在底層記憶體的排列方式
    .字串
     - char * 與 char [ ] 的不同
     - 常用的字串函數
    .結構體(struct)
     - 簡介、定義、宣告
     - 結構體在底層記憶體的排列方式
     - 結構體成員對齊記憶體存取邊界的方法(Memory Alignment)
     - 位元欄位(bitwise field structure)
    .組合體(union)
     - 簡介、定義、宣告
     - 組合體在嵌入式系統上的應用場合
  7. 指標
    .簡介與定義:指標 = 存放位址的變數
    .宣告與初始化
    .各種指標介紹與應用
    0 - 整數、浮點數、字元指標
     - 萬用指標:void *
     - 陣列指標
     - 常數指標 vs. 指標常數(Pointer of Constant vs. Constant Pointer)
    .如何直接存取嵌入式系統內的特定位址
     - 宣告語法
     - 慣用資料型態:unsigned long *
     - volatile 修飾字
  8. 函數
    .函數定義、宣告、呼叫
    .區域變數、全域變數、與靜態變數
    .參數如何傳遞:傳值呼叫 vs. 傳址呼叫
    .指向函數的指標(Function Pointer)
    .回呼函數(Callback Function)
    .利用函數傳回「左值(l-value, Left Value)」
  9. 檔案操作
    .檔案串流介紹(File Streaming)
    .使用 C 標準函式庫存取檔案:fopen(), fclose(),...
    .使用 Linux 系統呼叫存取檔案:open(), close(),...
  10. 前置處理器
    .前置處理器命令簡介
    .巨集定義指令(#define)
      - 定義常數與函數
     - 字串化運算子(Stringify Operator):#
     - 字符相接運算子(Token Concatenation Operator): ##
    .條件式編譯(#if)
     - 語法介紹:#ifdef, #if defined(...)
     - 使用時機
     - 當成註解使用:#if 0 ~ #else ~ #endif
    .標頭檔引入(#include)
     - 語法:#include <...> 與 #include "..."
     - 多重引入所造成的問題(Multiple Include Problem)
    .其它指令:#error, #pragma,...
  11. 用C語言模擬物件導向
    .物件導向程式設計簡介與好處
    .使用 C 語言模擬「封裝」(Encapsulation)
    .使用 C 語言模擬「繼承」(Inheritance)
    .使用 C 語言模擬「多型」(Polymorphism)
  12. 其它嵌入式 C 語言技巧
    .GNU 對 C 語言的擴充語法
      - switch ~ case 支援「範圍」
      - 零長度陣列
     - __builtin_XXX 系列函數
    .嵌入式 C 語言中 if 條件特殊寫法: if (0==x)
    .可變動函數參數個數(Variable Parameters of Functions)
    .程式優化技巧
     - 環狀緩衝區
     - 查表法

【嵌入式 Linux 系統建置課程】

【課程目標】

  • 了解嵌入式系統的架構與開發流程。
  • 能架設開發與除錯環境。
  • 熟悉嵌入式硬體各項特性,並能看懂硬體規格書。
  • 了解啟動載入器(Boot Loader)運作原理,並能微調與安裝。
  • 了解 Linux 核心,並能微調與安裝。
  • 了解根檔案系統(Root File System)的製作與安裝。

【適合對象】

有心從事「嵌入式 Linux 系統工程師」,並想在嵌入式專案中,負責備妥 Linux 執行與開發環境相關事宜的學員。

【課程內容】

  1. 嵌入式系統簡介
    .嵌入式系統定義
    .嵌入式系統架構
    .嵌入式系統開發特殊之處
    .嵌入式系統建構流程
  2. 開發板介紹
    .檢視您的配件
    .開發板規格巡禮
      - SoC、RISC、指令集
    - 記憶體(NOR, NAND, SDRAM)
     - RS-232, UART, COM
     - USB
     - 記憶卡(SDHC, TF-Card)
     - 觸控螢幕
  3. ARM 11 內核介紹
    .ARM 家族介紹
    .ARM 1176JZF-S 規格詳解
    .ARM 1176JZF-S 整數微核心介紹
    .AMBA(tm) 匯流排介紹
    .TrustZone(tm) 介紹
    .除錯單元簡介
  4. S3C6410 SoC簡介
    .S3C6410 方塊圖介紹
    .S3C6410 內部電路介紹
    .記憶體子系統介紹
  5. DMA-6410 電路介紹
    .系統開機與初始化流程
    .電源系統
    .時脈系統初始化
     - 了解外頻的產生:石英震盪器
     - PLL 初始化:P/M/S 參數的設定
     - 除頻器的設定
    .記憶體系統初始化
     - ROM/Flash/SRAM 的初始化:設定匯流排寬度與工作速率
     - SDRAM 的初始化:設定匯流排寬度、位址線數目、工作速率
  6. 開發環境架設
    .嵌入式開發環境的種類
    .作業系統的安裝
    .工具鍊(Toolchain)的安裝與介紹
    .與開發板的連結
  7. U-Boot 指令簡介
    .資訊取得指令
    .記憶體操作指令
    .Flash 操作指令
    .網路&下載指令
    .檔案與設備操作指令
    .環境變數指令
    .啟動與執行指令
    .其它指令
  8. U-Boot 移植
    .準備工作
    .編譯 U-Boot
    .原始碼結構介紹
    .U-Boot 移植流程
    .燒錄 U-Boot
  9. Linux 移植
    .準備工作
    .編譯 Linux 原始碼
    .燒錄與啟動 Linux Kernel .Linux Kernel 移植
  10. 檔案系統移植
    .檔案系統基本介紹
    .常見的檔案系統
    .BusyBox
  11. WWW 伺服器移植
    .準備工作
    .編譯 Boa 伺服器
    .準備 Boa 組態檔
    .上傳檔案至開發板
嵌入式系統應用
  • 自動櫃員機(ATM)
  • 航空電子(戰鬥機飛彈射控系統)
  • 通信產品(手機和電信交換機)
  • 網通裝置(路由器和防火牆)
  • 辦公裝置(印表機、影印機、傳真機、多功能事務機)
  • 磁碟機(軟碟驅動器和硬碟機)
  • 汽車防鎖死煞車系統
  • 家電(熱水恆溫器、冷氣機和安全監視系統)
  • 家電(微波爐、洗衣機、電視機、DVD 播放器)
  • 醫療器材(X 光機、核磁共振成像儀)
  • 多功能手錶
  • 家庭數位(網路無線接收機、電視機頂盒、數位衛星接收器)
  • 個人數位助理(PDA)
  • 工業自動化(PLCs)
  • 家庭娛樂(任天堂, PS3 and Wii)
嵌入式系統應用實例

【Robert 老師】

  • 學歷:
    - 美國紐約市立大學資訊科學所畢業
  • 工作經歷:
    - 筌寶電子股份有限公司
     1) 使用瑞昱(Realtek)RTK1261晶片(MIPS based),設計與開發多媒體
      播放器韌體與介面,產品代號BL31(2009)
     2) 將Star STK8133自製韌體,陸續移植至Star STK8132、Star STK8181以
      及Oxford 810等晶片上(2008)
     3) 使用Star STK8133(ARM 920T based)設計並開發NAS韌體,並完成該
      款產品韌體完全自製計畫(2008)
     4) 使用奇樂達(Cheertek)CTK-956A晶片(ARM 920T based),設計與開
      發數位相框使用者介面,產品代號BM21(2007)
    - 中央研究院資訊科學所自然語言實驗室
     1) 以 C++、Java 開發自然語言、文獻探勘、機器學習等相關軟體
     2) 以 ASP.NET、JSP 開發上述領域網站,並對外提供服務
    - 趨勢科技
     1) 全球技術服務部協理:負責整合趨勢科技全球23個國家技術服務部事宜
     2) 歐洲區技術服務部經理:負責成立及管理趨勢科技歐洲5個國家技術服務部
      事宜
     3) 亞太區技術服務部主任:負責趨勢科技中國大陸及菲律賓技術服務部事宜
     4) 台灣區技術服務部工程師:負責宏碁電腦全球44國防毒網建置與規劃專案
      事宜及負責回答企業界對趨勢科技產品使用上的問題
    - American Insight Inc., New York, USA
  • 專業特長:
    - 網頁程式設計
     HTML、DHTML、CSS、XML、JavaScript、VBScript、ASP、JSP
     COM、DCOM、COM+ 三層式架構程式撰寫
    - 系統軟體
     MS-Windows、Solaris、Linux、Novell NetWare
     MS-SQL Server 2000
     MS-Exchange 2000
    - 程式語言
     Visual Basic、Java、C/C++
     Pascal、Fortran、COBOL
     8086 Assembly Language
    - 應用軟體
     MS-Office
     Macromedia Dreamweaver、MS-Front Page
     Ulead PhotoImpact
     Macromedia Flash、Macromedia Director

隨著科技的發展,過去難以取得的一般技術及軟體,現在已經完全的開放及免費;Linux 在 ARM 上的運用趨於廣泛,並已成為嵌入式系統的主流。

奇科電腦建議,想要進修嵌入式系統課程的朋友,其實只要多花點時間上網搜尋,就可以得到相當的知識及內容,並不需要花錢去上一些其實很簡單的課程

ARM 公司(http://www.arm.com)本身就提供了相當多的文件及內容供所有工程師使用,以下介紹的重要連結,請各位先行準備:

  • ARM 公司所提供現成的 Embedded Linux 系統以及開機管理元(u-boot),可以馬上讓工程師使用(Linux OS Downloads
  • 針對沒有 MMU 管理 ARM 的處理器,必須使用沒有 MMU 管理的 uCLinux,提供所有設定檔及現成的映像檔(uCLinux
  • 自行建立 Linux 系統所需要的工具鏈(Toolchain)(GNU tools
  • 相關的產品連結(Related Products

奇科電腦也建議各位,詳讀以下連結內容:

ARM9 DMA-2440L 開發平台

【平台硬體配置】

  • 中央處理器
    CPU:Samsung S3C2440A,主頻 400MHz ,核心為 ARM920T
  • 外部記憶體
    SDRAM: 64MB,Clock Frequency 100MHz—133MHz
    NOR FLASH: 2MB NOR FLASH,用於存放 bootloader
    NAND FLASH: 128MB
  • 網路介面
    1 個 10/100M Ethernet,採用 DM9000E,帶指示燈 RJ-45 介面
  • USB 介面
    1 個 HOST USB1.1 介面,採用自恢復保險器件保護對外供電系統
    1 個 Device USB1.1 介面
  • 串列埠
    3 個 3 線式串列埠
  • 音效介面
    採用 IIS 介面晶片 UDA1341,立體聲音效輸出介面可接耳機或音箱
  • CMOS Sensor 攝影機介面
    底板上內置一個 130 萬像素的 CMOS Sensor 攝影機,可直接攝影並在液晶螢幕上顯示,並有一個 2.0mm 間距雙排插座用作攝影機擴充,這個擴充介面可連接其他型號的 CMOS Sensor 攝影機,支援的標準為 ITU-R BT.601/656 YCBCR 8-bit standard
  • LCD 介面
    * 相容 3.3V 供電 LCD 螢幕
    * 系統配置 3.5吋 TFT 液晶螢幕,附觸控功能
  • 觸控介面
    1 個觸控螢幕控制器(四線電阻式)
  • SD 卡介面
    1 個 SD/MMC 和 SDIO 設備
    Linux
    * Linux 2.6.24:
      支持標準 SD 卡(SD 1.1)1G / 2GByte
      支援高速 SDHC 卡(SD 2.0)4G / 8G / 16G / 32GByte 並兼容 SD 1.1
    WinCE
    * WinCE 5.0:
      支持標準 SD 卡(SD 1.1)1G / 2GByte
      支援高速 SDHC 卡(SD 2.0)4G / 8G / 16G / 32GByte 並兼容SD 1.1
  • 多功能擴充介面
    可擴充 HSPI*1 / SPI*1/ ADC*3/GPIO*3 及 2 個中斷等功能
  • RTC 時鐘
    S3C2440A 內部集成,外部提供 RTC 電池,插座安裝,可更換
  • JTAG 介面
    ARM 標準 20PIN JTAG 介面
  • 電源介面
    採用 5V,1.2A 外接電源供電,內部採用 LDO 的方式設計
  • 平台其他功能
    * 4 個指示 LED
    * 1 個電源指示 LED
    * 過流保護:採用自恢復保險器件
    * 尺寸大小及重量
    PCB 大小:120mm×100mm

【開發工具和原始程式碼】

  • BIOS Bootloader 原始程式碼 (ADS1.20 的項目檔):提供從 Nor Flash 啟動的 Bootloader 原代碼,可以通過 USB client下載程式到 SDRAM
  • DMA-2440L Linux2.6.24 核心原始程式包以及核心交叉編譯工具
  • DMA-2440L WinCE 5.0 版本的 BSP
  • DMA-2440L 板上擴充晶片的資料 (pdf格式)
  • DMA-2440L 開發平台電路圖 (pdf 格式)
  • DMA-2440L 開發平台使用手冊 (pdf 格式)

【可支援多種作業系統】

  • Linux 2.6.24
  • WinCE 5.0

【作業系統和軟體支援】

支援 Linux 2.6.24 作業系統及驅動原始程式碼
  • 2M NOR Flash / 128M NAND Flash / 64M SDRAM 驅動
  • 觸控 LCD 驅動(支持解析度 320×240 的3.5吋 LCD 含觸控)
  • 10/100M DM9000E 驅動
  • USB Host / USB Device 驅動
  • SD/MMC 卡(最大至16G)和 SDIO 設備驅動
  • IIS 音效錄音放音驅動
  • Camera 視訊驅動:支持OV9653 CMOS Sensor
  • 3 個串列驅動:1個標準串列,2個複用串列
  • RTC、SPI、ADC 驅動
  • 應用程式包括 QT 等圖形系統

支援 WinCE 5.0 作業系統及驅動原始程式碼

  • 2M NOR Flash / 128M NAND Flash / 64M SDRAM 驅動
  • 觸控 LCD 驅動(支持解析度 320×240 的3.5吋LCD 含觸控)
  • 10/100M DM9000E 驅動
  • USB Host / USB Device 驅動
  • SD/MMC 卡(最大至16G)和SDIO 設備驅動
  • IIS 音效錄音放音驅動
  • Camera 視訊驅動:支持OV9653 CMOS Sensor
  • 3個串列驅動:1個標準串列,2個複用串列
  • RTC、SPI、ADC、鍵盤驅動
  • 應用程式包括 VS2005 等圖形系統
  • 上層應用測試程式 AP:
    * 提供LED 明亮控制、鍵盤輸入控制、LCD 背光亮度控制、喇叭音量控制、Camera 拍照及錄影功能 、RS232 資料傳送、RJ45 網路資料傳送等測試程式 AP
    * 提供MP3、MP4、EBook、Photo、錄音 等多媒體測試程式 AP
    * 提供日期、時間、LCD 觸控音量、LCD 背光時間關閉、LCD 觸控校準等功能設定的測試程式 AP
Embedded Linux
  • 嵌入式多媒體人機介面MMI設計課程
  • 嵌入式Linux驅動程式設計課程
  • 嵌入式C語言入門課程
  • 嵌入式Linux系統建置課程
  • 嵌入式系統應用
  • 應用實例
  • 師資介紹
  • Linux Support ARM
  • 開發板規格
Embedded Linux
我想了解更多相關訊息
姓  名       行動電話
E - mail    居住地區
詢問項目  
  轉寄好友
GeeGo-Facebook GeeGo-Youtube
請確認您填寫的email是否正確,我們將定期提供您免費贈送課程,以及最新IT技術、趨勢、職缺等資訊!
全額退費的保證、安心進修的保障!

青年就業讚,政府補助12萬