課程名稱 |
簡介 |
課程大綱 |
時數 |
Embedded System Design and Linux Overview |
|
本單元將介紹嵌入式系統概念,包含微處理器架構及軟硬體的基礎知識,並讓學員熟悉Linux基礎指令及VMware等操作,在進入專業課程時,對整個嵌入式系統更具方向感。
|
|
1. What is embedded system
2. Microprocessor Architecture
3. Hardware basic knowledge
4. Software basic knowledge
-OS/no OS
5. Debug your system primitively
|
|
|
ARM Architecture & Programming Overview
|
|
本單元將以ARM9 S3C2410處理器為例,讓學員瞭解ARM嵌入式系統概念並熟悉ARM9軟體程式設計技巧,包含(1)ARM組合語言與指令集 (2) 熟悉S3C2410x 開發平台及周邊控制 (3)中斷處理演練 (5) ARM9 MMU/Cache原理等重要觀念。
|
|
1. Introduction: ARM based Embedded System Product
2. Using ARM Development Suite
3. ARM Architecture Overview
- LAB for your 1st program
4. Introduction for S3C2410x SoC & Tools & EVB
- LAB for using EVB, ICE, and Debugger
5. ARM Processor Core
6. ARM Instruction Set
- LABs for various Instructions
7. Lab: Build Run Time System for S3C2410x Platform
8. Handle Interrupt
- LAB RTC and Interrupt Controller
9. Samsung 2410x Memory Controller
- LAB Initialize System Memory
10. ARM920T Cache & MMU Control
|
|
|
| |
一般選用GNU toolchain來開發嵌入式系統或周邊,因缺乏整合性的開發環境,想要能完全掌握開發流程,即需了解如Make file、compile、ld script 等重要指令,本課程將深入介紹這些重要的開發工具。
|
|
1. Introduction to GNU Compiler Collection
2. Building your own ARM cross compiler toolchain
3. Building and Managing Applications
- Compiling and linking from the command line
- Understanding application startup and crt0
- Disassembling object files and applications
- Converting to flat binary formats
- Constructing, managing and using libraries
- Using gcc with a Makefile
4. GCC Assembly and C Extensions
- GNU Assembly
- Directives
- Inline Assembly
- attributes
5. Linker Scripts
- Executable and Linkable Format (ELF)
- Linker Script File
6. Debugging with GDB |
|
|
Bootloader Design 以Uboot為例 |
|
Bootloader開機載入程式主要用於初始化硬體的基本環境和載入OS到目標板上,建立功能完善的Bootloader是嵌入式系統的第一步也是極為關鍵的步驟,本單元將以Uboot為例,讓學員了解整個開機流程、如何新增uBoot BSP,並能進一步設計簡易的bootloader。
|
|
1. Bootloader Overview
2. Download Bootloader via JTAG
3. Download linux kernel via U-boot
4. Download Root Filesystem via U-boot
5. U-boot Programming Overview
6. About Simply Bootloader
7. Add a new BSP to U-boot
8. Porting NOR Flash Driver to U-boot
9
. Add new command on u-boot
10. Relation between Bootloader & Kernel |
|
|
| |
本單元會介紹Linux kernel基本架構,並以porting 2.6 kernel 到ARM9架構為範例,透過系統化講解、檢視分析原始碼,快速引領學員熟悉此一領域,期使學員在編寫Driver以符合硬體或應用的需求時,可以更具信心和方向感,絕對比不清楚緣由的試誤和比對法來得有效率許多。
|
|
1. Overview
2. Bootstrap
- Parameters from bootloader
- Physical memory configuration
3. Processes
- Process concept
- Process states
- Process scheduling
- Context switch
- Create a process
- Terminate a process
4. Memory
- Initialization Memory
- Buddy System
- Slab Allocator
- Page Fault
5. Kernel Control Path
- ARM exception
- Linux System Call
- Linux Exception
- System timer porting6. Filesystem
- VFS concept
- EXT2 exmaple
- Creating your own rootfs
7. ARM9 linux 2.6.13.4 Implementation
- S3C2410 kernel patch
- Understand linux makefile, kconfig and menuconfig
- Building image |
|
|
| |
本課程將著重在產品開發過程中的驅動程式撰寫,透過釐清基礎架構再搭配實作練習,讓學員親自上機撰寫常見的Device Driver,並上機測試自己撰寫的Driver,對產品研發人員是個絕佳提昇功力的機會。
|
|
1. Kernel Overview
2. Building and Running Module
Lab: Hello World3. Char Drivers
Lab: A simple char device driver
4. Debugging Techniques
Lab: /proc and oops
5. Enhanced Char Driver
Lab: Sleep experiment
Lab: IOCTL test6. Flow of Time
Lab: Task queues experiment
7. Getting Memory
8. Hardware Management
Lab: I/O Operations
9. Interrupt Handling
Lab: Interrupt example
10. PCI Bus
Lab: PCI driver
11. Mmap technique
Lab: bttv driver
12. Block Drivers
Lab: Block Driver Tracing
13. Network Drivers
Lab: Network Device Driver Tracing
14. Embedded Development Introduction
Lab: Demo Board Driver
15. USB introduction:Linux-USB device
Lab: A simple USB drive |
|
|
|
本課程特別安排專題製作單元,學期中公佈題目,讓學員在學習過程中能有清楚的目標並搭配課程進度能循序漸進完成結業專題,最後將安排成果發表與大家交流實作心得。
|
|