| Part 1.
Embedded System and BSP programming
1. Introduction
· Embedded system feature and class.
· The routing of embedded system development.
· What is uClinux
· Getting started with uClinux
· uCsimm hardware.
· LAB: configure and build a linux kernel, run on the uCsimm
board.
2. Motorola 68k Hardware Architecture
· Dragonball 68EZ328 MCU hardware detail
· Motorola 68K core Architecture and Instruction Set.
· 68EZ328 Boot procedure (part of BSP) under uClinux.
· 68K Exception Processing
· LAB: add user applications under uClinux env.
3. uClinux Architecture
· linux Configure language
· GNU Make language
· Write own Makefile and config.in
· LAB: build a new board BSP with Coldfire board.
4. Advanced topic
· Linux kernel architecture
· Coldfire MCU architecture and interrupt controller
· Write BSP Link descript file, layout memory and program
position
· How to build a new board.
· LAB: build a new board BSP (continue)
5. Powerpc architecture
· Powerpc 860 netcomm CPU architecture
· PPC core architecture and Instruction Set
· PPC Exception.
· BDM Debug method.
· PPC linux architecture
· LAB: build a new linux system and run on the ppc860 card
board.
6. Write PPC BSP with u-boot project
· Flash theory and program .
· PPC 860 Memory controller
· PPC chip selection and BOOT procedure
· PPC clock
· U-boot architect and programm
· LAB:write flash,memory driver, use u-boot to up ppc board
and run ppc linux (4 weeks)
Part 2. Embedded Linux Device Driver Writing
7. Building and Running Modules
· Kernel Modules Versus Applications
· Major & Minor Device Number , Making a Device File
· Initialization and Shutdown
· Explicit Initialization and Cleanup Functions
· I/O Ports and I/O Memory
· Using Resources
· Automatic and Manual Configuration
8. Character Drivers
· Typical Character Drivers
· Character Device Registration ,Character Device Special
File and Device Numbers
· file_operations structure, struct file, struct inode
· Character Device Methods open(), release(), read(), write()
· Data Transfers between User Process and Driver ,copy_from_user(),
copy_to_user()
9. Debug , Enhanced Character Drivers , Time Flow
· Debug Method
· Proc file methods and registration
· Ioctl(), Block I/O ,wait queue. Access Control through
Drivers
· Poll and select
· Managing Time, Linux Style, Utilizing Kernel Timers, Wait
queues, and Task Queues
10. Advance Technique: Memory, Hardware, and Interrupt
Management
· Interrupt Management, Handling and Registration
· Auto-detecting IRQ's, Kernel Help in detecting IRQ's
· Enabling and Disabling Interrupts, Splitting Interrupt
Handling - Top Half & Bottom Half , Tasklet.
· Combating Race Conditions ,Atomic Actions ,Spinlocks
11. Block Device Drivers
· Block Device Driver Characteristics
· Differences between Block and Character Drivers
· Block Driver Variables and Functions
· The Mount Problem ,Partitions in Block Drives
· Partition able Devices , gendisk structure and Location
· Modules and Partition Tables
· LAB: write a 68ez328 Port D and interrupt driver.
12. Network Drivers
· Network Driver Characteristics
· netdevice structure fields, methods
· ether_setup() and its brothers
· skb buffer structure fields.
· Write a SCC PPC net driver.
|