讓學員熟悉嵌入式 Linux Device Driver 課程所需具備之嵌入式 Linux BSP 操作及嵌入式 Linux 程式設計(含進階C語言),課程以實際在ARM 開發版上操作教學,讓學員未來能更專注於學習嵌入式系統相關知識。
修課條件
對此領域有興趣學員,具有C語言基礎為佳。
課程大綱
1. How to Build an Effective Embedded Linux Environment. 2. Create Embedded System GNU Development Toolchain. 3. Boot Loader Brief Introduction. 4. Configure and Make Embedded System Kernel / Create Root-File System. 5. How to Porting the Linux to a New ARM9 Board.
讓學員熟悉嵌入式 Linux Programming 課程所需具備之 GNU Make 知識,課程以實際在 ARM 開發版上操作教學,讓學員可在未來能更專注於學習嵌入式系統相關知識。
修課條件
對此領域有興趣學員,具有C語言基礎為佳。
課程大綱
1. An Introduction to Makefiles 2. How to Writing Makefile Rules and Writing the Commands in Rules 3. How to Use Variables 4. Conditional Parts of Makefiles 5. How to Run Make 6. Using Implicit Rules
嵌入式技術是近年竄起直升的熱門科技,而嵌入式技術目前正廣泛運用在多元的產品上,但各產品所使用之嵌入式作業系統也是百家爭鳴,並無統一之標準。然而就嵌入式 Boot Loader 和 OS/Driver 等設計,以及開發之實務上的操作程序而言,卻有脈絡可循,在熟悉這套程序和方法之後,只要搭配硬體上對產品之特定 SoC(System on Chip) 的了解,便能舉一反三,藉以開發各項嵌入式產品。而本課程就以 ARM 處理器核心為例,並利用 ARM9 實驗板進行實作,讓學員藉此逐步了解嵌入式系統之硬體架構,包括: ARM 處理器底層架構、ARM 處理器之組合語言、Boot Loader、開機初始化流程、FLASH 的 Read/Write/Erase、開發板內之各類嵌入式硬體介面控制實作,以及如何將嵌入式Linux OS Porting 至 ARM 開發版,以此熟悉嵌入式開發版設計的程序和方法。藉此自製 ARM 嵌入式開發板之能力,做為徜徉嵌入式技術領域的敲門磚。
修課條件
電子、電機、資工、自控相關科系,且具備C程式語言能力與計算機基礎概念。
課程大綱
一、嵌入式 ARM 計算機組織 1. 嵌入式 ARM 處理器系統架構 2. 嵌入式 ARM 處理器軟體設計 ★【Lab】:輔以大量的 ARM 組語 LAB 講解 ★【Lab】: Flash the LED on Boot Loader 3. S3C6410 CPU規格書說明 4. Flash Rom 及相關週邊 IC 規格書說明 5. 嵌入式 ARM 開發板電路講解-ARM CPU/ROM/RAM/Peripheral 二、實作ARM 嵌入式系統開發平台-以 ARM9 為例 1. Boot Loader 簡介 2. 如何撰寫 Boot Loader 與 Boot Loader 程式功能 3. 如何撰寫 Flash Rom 的 Read/Write/Erase 程式 4. 透過 JTAG 下載 Boot Loader 至 ARM 板 5. 透過 Boot Loader 下載編譯好的嵌入式 Linux Kernel Image 6. 透過 Boot Loader 下載編譯好的嵌入式 Root File System 7. Boot Loader & 嵌入式 Linux 之開機流程
本課程之 Linux 系統實作與程式設計,全部是在 ARM 嵌入式開發板上實作完成。課程內容從 ARM 開發板平台開始介紹,講解 ARM 開發板、GNU Toolchain(Cross Compiler)、Boot Loader、建立自己的嵌入式 Kernel 與 Root File System,再以自己建立的【嵌入式Linux】學習 Linux 指令使用及開機管理與網路設定。接著在ARM開發板以自己建立的【嵌入式Linux】為作業系統,以此OS為基礎在上面講授各種Linux 程式設計。整個【嵌入式Linux】程式設計課程,講師會現場撰寫實作程式的範例,隨後將程式透過 Cross Compiler 後上傳至 ARM 開發板執行。不同於一般幾乎都在PC的Linux上講授Linux程式設計。而且這些程式範例均會在ARM開發板上與硬體結合,使學員可以熟悉《軟硬兼施》的程式設計,讓偏【純軟的工程師】不會看到硬體就傻眼、讓偏【純硬的工程師】不會看到軟體就頭痛。課程結束後可以熟悉【嵌入式Linux】程式設計。
修課條件
電子、電機、資工、自控相關科系,且具備C程式語言能力與計算機基礎概念。
課程大綱
1. What is Needed Lib for Embedded System? ( System Calls & Library) 2. The role of the C runtime startup code for Embedded System 3. Embedded Linux File I/O: ★【Lab】STDIO/STDOUT Programming 4. Embedded Linux Files and Directories: ★【Lab】open/create/read/ write/lseek/fcntl/close 5. Embedded Linux Standard I/O Library: ★【Lab】Buffering I/O、Reading and Writing a Stream、Binary I/O、Formatted I/O 6. Embedded Linux System Data Files & Info: ★【Lab】Linux System Information Programming 7. Embedded Linux Termios: ★【Lab】RS232 Programming 8. Embedded Linux Process Control: ★【Lab】fork、vfork、exec 9. Embedded Linux Signals: ★【Lab】signal、kill and raise Functions、sigaction Function 10. Embedded Linux Inter-Process Communication: ★【Lab】Pipes、FIFOs、Message Queues、Semaphores、Shared Memory 11. Embedded Linux多執行緒程式設計: ★【Lab】pThread Programming、mutux Programming 12. Embedded Linux Network Socket Programming: ★【Lab】TCP/UDP Programming 13. Embedded Linux Shell 程式設計: ★【Lab】: Embedded Linux Shell Programming:Simple Shell Example、Shell Operators Example、Shell Logic Structures Example
學習不牽涉到硬體控制之單純的Linux驅動程式,是不難的。學習如何撰寫Linux驅動程式是難在其與硬體結合,使得驅動程式必須正確的驅動要控制的硬體。本課程重點在Step by Step介紹嵌入式產品開發過程中,產品研發人員如何實地撰寫【嵌入式 Linux 驅動程式】,我們從簡單的開發板之 Linux 驅動程式架構入手,進而至 Character Device 的撰寫(分別以 LED 或SEG-7裝置實作),並剖析 Linux 驅動程式與硬體間的運作,再深入 Linux 驅動程式撰寫的各個層面,同時搭配各種不同的周邊裝置,如 LED、LCD、Network 裝置等一般嵌入式系統常用之硬體。講師於課堂中撰寫這些常見的驅動程式,並在現場於 ARM 開發板上測試撰寫的【嵌入式 Linux 驅動程式】,讓學員實際熟悉【嵌入式 Linux 驅動程式】於實務上是如何撰寫,且於現場實際上機測試的過程中,更提供了從業學員之間技術交流的機會,締造教學相長之契機,共同朝向發揚嵌入式產業之目標邁進。
修課條件
1. 應具備 C 程式語言能力與計算機基礎概念。 2. Linux Programming 基本概念,Makefile,Shall指令。
課程大綱
1. 嵌入式Linux 驅動程式程式架構 2. 嵌入式Linux 驅動程式之程式設計流程:Building and Running Module ★【Lab】Hello World on ARM 開發板 3. 嵌入式Linux字元驅動程式 ★【Lab】A Simple LED Device Driver on ARM 開發板 4. 除錯技術:Debugging Techniques: ★【Lab】Create a /Proc Entry File system on ARM 開發板 5. 進階Linux字元驅動程式: ★【Lab】The LED Device Driver Using IOCTL on ARM 開發板 6. Getting Hold of Memory and Hardware Management: ★【Lab】ARM BSP I/O Operations on ARM 開發板 7. Flow of Time: Current Time、Delaying Execution、Task Queues、Kernel Timers: ★【Lab】ARM BSP Experiment for LCM(or LED) Device on ARM 開發板(Current Time、Delaying Execution、 Task Queues、Kernel Timers) 8. 嵌入式Linux Interrupt Handling: ★【Lab】ARM BSP Interrupt Example on ARM 開發板 9. 嵌入式Linux Memory Mapped I/O: ★【Lab】Frame Buffer on ARM 開發板 10. 嵌入式Linux 區塊驅動程式: ★【Lab】A simple Block Device Driver on ARM 開發板 11. 網路卡驅動程式(以網路晶片dm9ks為例) dm9ks IC's Network Device Driver Tracing: 12. Embedded Linux-USB Device Driver(USB驅動程式): ★【Lab】A Simple USB Drive Tracing 13. Add your Device Driver into Kernel/ How to Porting Device Drivers to the 2.6 Kernel: ★【Lab】: On ARM 開發版 Experiment ★ 1. Add a LED Driver into Kernel ★ 2. Make Kernel ★ 3.Testing
1. 須熟悉嵌入式 Linux C 程式設計 (包含GNU Makefile )。 2. 須熟悉 ARM BSP 與嵌入式硬體。
課程大綱
1. ARM開發板GPIO Linux 驅動程式 2. TCP/IP Socket Programming on ARM Development Platform 3. Serial Programming for POSIX on ARM Development Platform 4. Http Server Introduction & Porting to ARM Development Platform.(Httpd&BoA) 5. Porting SQLite Data Base to ARM Development Platform 6. Multi-Media System Programming 7. QT X Window System ★Integrated Example: How to Design a Home Automation System
沒有留言:
張貼留言