Download presentation
Presentation is loading. Please wait.
Published byRoger Young Modified over 9 years ago
1
Some Experience About μkernel and Device Driver 970529 Sean Lin
2
Outline Introduction of μkernel Introduction of L4 μkernel Family Something Interesting in L4 μkernel Introduction of The Platform The Bug of USB Host Device Driver Other Experiences of Driver Debugging
3
Outline Introduction of μkernel Introduction of L4 μkernel Family Something Interesting in L4 μkernel Introduction of The Platform The Bug of USB Host Device Driver Other Experiences of Driver Debugging
4
Monolithic Kernel Kernel has access to all things All optimizations possible All techniques/mechanisms implementable Kernel can be extended To add more code to the kernel
5
Why Microkernel(μkernel) Cost of monolithic kernel Complexity Growing size Limited maintainability
6
The Idea of Microkernel Provide core functionality Applications communicate via message- passing IPC
7
Outline Introduction of μkernel Introduction of L4 μkernel Family Something Interesting in L4 μkernel Introduction of The Platform The Bug of USB Host Device Driver Other Experiences of Driver Debugging
8
History of Microkernel 1 st generation μkernel Mach Chorus Amoeba L3
9
History of Microkernel (cont.) 2 nd generation μkernel Spin (University of Washington) Exo-kernel (MIT) L4
10
Comparison 1 st generation μkernel were slow Complex API Poor design and implementation Too many features Slow and inflexible IPC
11
L4 Microkernel Family A family of second-generation microkernel There have been various re-implementations of the original L4 kernel interface(ABI) Original version by Jochen Liedtke
12
Introduction of L4 Microkernel The L4 kernel API has evolved in numerous ways Version 2 Version X.0 Version X.2 NICTA N
13
Design Issue of L4 Abstractions Address spaces Threads Mechanisms Inter-process communication (IPC) Mapping
14
Outline Introduction of μkernel Introduction of L4 μkernel Family Something Interesting in L4 μkernel Introduction of The Platform The Bug of USB Host Device Driver Other Experiences of Driver Debugging
15
Famous L4 μkernel Fiasco Design by TU Dresden Preemptible real-time kernel Used for DROPS project GPL License Last release: March 2007, Fiasco 1.2 http://os.inf.tu-dresden.de/drops/
16
DROPS Dresden Real-Time Operating Systems Project Find design techniques for the construction of distributed real time operating systems Every component guarantees a certain level of service to applications.
17
DROPS (cont.) Multiple instances of Linux running on one machine
18
Famous L4 μkernel (cont.) L4Ka::Pistachio Design by L4Ka team and NICTA EROPS Group L4 API V X.2 Last release: June 2004, Pistachio 0.4 http://l4ka.org/projects/pistachio/
19
Famous L4 μkernel (cont.) NICTA::Pistachio-embedded Design by UNSW and NICTA EROPS Group based on L4Ka::Pistachio, designed for embedded systems keep almost all system calls short Last release: Feb 2007, pistachio 1.1 (discontinued) http://ertos.nicta.com.au/software/kenge/pistachio/latest/
20
Famous L4 μkernel (cont.) OKL4 Design by OKLab (Open Kernel Labs) OKLab spun out from NICTA Based on NICTA::Pistachio-embedded Commercial deployment Last release: Apr 2008, OKL4 2.1 http://wiki.ok-labs.com/
21
OKL4 Adopted by Qualcomm for CDMA chipsets OKL4-based Toshiba phone http://www.fluffyspider.com/demos/live_videos /flv/fancypants-openmoko-neo1973-video- browser-phone-dialer.html
22
Trusted Computing Base in μkernel traditional embedded Linux/ Windows Microkernel based all code100,000’s loc10,000’s loc System TCB Diagram from Kashin Lin (NEWS Lab)
23
Related Research - SIGMA A Study on Asymmetric Operating Systems on Symmetric Multiprocessors, Yu Murata, Wataru Kanda, Kensuke Hanaoka, and Tatsuo Nakajima, EUC07 Achieve asymmetric multiple operating system environments for symmetric multiprocessors No virtualization Direct control
24
SIGMA (cont.) A multiple OS environment Host OS: L4 micro kernel (NICTA::L4- embedded) Guest OS: SIGMA Linux The OS manager The bootloader of CPU1
25
SIGMA (cont.)
26
Estimated use cases
27
Outline Introduction of μkernel Introduction of L4 μkernel Family Something Interesting in L4 μkernel Introduction of The Platform The Bug of USB Host Device Driver Other Experiences of Driver Debugging
28
Outline Introduction of μkernel Introduction of L4 μkernel Family Something Interesting in L4 μkernel Introduction of The Platform The Bug of USB Host Device Driver Other Experiences of Driver Debugging
29
Outline Introduction of μkernel Introduction of L4 μkernel Family Something Interesting in L4 μkernel Introduction of The Platform The Bug of USB Host Device Driver Other Experiences of Driver Debugging
30
GPIO
31
GPIO support in DM6446 71 GPIO signals. GPIO[53:0] are 1.8V I/O signals. GPIOV33_[16:0] are 3.3V I/O signals. 16 registers one bank Total 5 banks
32
Configure GPIO Registers
33
Remarks in GPIO Others important setting depend on the platform Power Pinmux
34
Power Setting In the DM644x system, the Power & Sleep Controller (PSC) is responsible for managing transitions of system power on/off, clock on/off, and reset
35
Power Setting (cont.)
36
Pinmux Setting DM644x allows multiplexing of shared device pins between peripherals. Check the GPIO pins you used whether shares to other device?
37
Pinmux Setting (cont.)
39
Debug Experience
40
SPI – DAC 88347 Need a power meter Send different value Measure the voltage on output pin
41
SPI – Input/Ouput Connection DM6446 is master Peripheral is slave The SPI output pin of master device needs to be connected to the input pin of slave device.
42
USB – Mode Setting USB controller in DM6446 Support USB 2.0 peripheral at High Speed (480 Mbps) and Full Speed (12 Mbps). Support USB 2.0 host at High Speed (480 Mbps), Full Speed (12 Mbps), and Low Speed (1.5 Mbps).
43
USB – Mode Setting (cont.) USB_ID pin
44
Thanks
45
Q & A
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.