第 2 頁,共 4 頁
課程主題 | 課程內容 |
ARM Boot Loader 設計
|
- ● ARM核心簡介
- ● ARM mode與Thumb mode
- ● CP協同處理器
- ● ADS開發工具介紹
- ● ARM組合語言
- ● MMU介紹與練習
- ● Raspberry開機動作簡介
- ● Raspberry bootloader設計
- ● LED與push bottom實作–使用ADS
- ● HDMI介面(frame buffer)實作–使用ADS
|
Linux系統建置實務
|
- ● Linux系統使用的虛擬機器架設與安裝
- ● Linux標準檔案系統架構剖析
- ● 學習Linux常用指令與套件安裝
- ● 搜尋與管理檔案的方式
- ● 重新編譯與安裝Linux的核心
- ● 嵌入式開發環境Sever架設
|
嵌入式Linux開發實務
|
- ● 嵌入式Linux系統簡介與實務開發方式
- ● Raspberry Pi開發硬體平台介紹
- ● 軟體開發平台BSP 解說
- ■ How to Build Kernel & Root File System
- ■ Booting 參數修改
- ■ SD 卡規劃與寫入
- ● 深入 GNU make & Porting Open Source
- ● Linux Filesystem(JFFS2, CRAMFS, YAFFS...)
- ● Linux MTD device
- ● GNU toolchain
- ■ Shared vs. Static Library, Linker Script, ar, objcopy, objdump, nm, libtool,etc. GCC Compiler,...)
- ● Android SDK Architecture & Setup
- ■ Gingerbread install, Busybox install
|
Linux 驅動程式
|
- ● Linux Device Driver Introduction
- ■ Linux 驅動程式架構
- ■ Linux Device Driver架構
- ■ Linux Coding Style
- ■ Kernel Space VS User Space
- ■ Linux Device Driver種類 (Char, Block and Network)
- ■ Compiling (Makefile,Kconfig) & Loading
- ● Common Kernel APIs (包含實際範例解說)
- ■ Blocking I/O vs Non-blocking I/O
- ■ Work Queue
- ■ Wait Queue
- ■ Kernel Thread
- ■ Synchronization (Spin Lock, Mutex, Semaphore)
- ■ Kernel Timer List (Jiffies, timer ticks)
- ■ Memory Allocation
- ■ Cache & Memory Map
- ■ Proc FS
- ■ SysFS
- ■ HAL I/O Routinue
- ■ Kernel Double Linked List
- ● How to Debug Device Driver?
- ● Character Device
- ● Linux Misc Device
- ● Linux Platform Device
- ● Linux Interrupt Handling & Bottom Halves
- ● Linux GPIO 驅動程式 for LED, Button,Relay
- ● Linux Serial port 驅動程式 for Bluetooth 模組
- ● Linux I2C驅動程式 for Serial EEPROM and LCM Module
- ● Linux SPI驅動程式 for SPI Flash
- ● Linux IR Decode
|
Linux系統程式設計
|
- ● Bash Shell Script
- ● Regular expression: sed/awk
- ● Linux Development Tools
- ■ GCC , GNU Make, Source Code Control
- ● Linux I/O
- ■ read, write, ioctl, select…
- ■ Blocking I/O Nonblocking I/O
- ● Linux Process
- ■ fork, exec, wait...
- ● Linux IPC
- ■ Pipe, Share Memory, Message Queue, Semaphore
- ● Linux Signal
- ● POSIX Thread &Thread Synchronization
- ● Linux Socket (1)
- ● Linux Socket (2)
- ● 實作: mini HTTPD server
- ● HTTPS with openssl (optional)
|
「嵌入式系統」的設計可說是小規模的系統整合,係一含括資訊、通訊、電子領域之專業;同時其技術領域縱跨軟體、嵌入式作業系統RTOS、韌體、I/O介面及硬體裝置範疇。
首先必須了解Google Android Framework,是一個GUI 圖形系統。而如何讓APP也能存取到底層的硬體如G-Sensor,GPS,WiFI等。都必須有賴於Android Framework 的HAL軟體架構.所謂的Android HAL,就是介接上層用JAVA寫的Framework code 和Linux底層的部份。使得APP只看到HAL層,HAL內部負責底層Linux的構通。而底層硬體就是和linux Driver 有關了。總之,底層要先能動,上層APP才可以用!
▪ C語言程式含講義(價值4,600元)▪ Rasp Pi+I/O擴充板(價值3,300元) ▪ 資料結構含講義(價值3,600元)