Presentation is loading. Please wait.

Presentation is loading. Please wait.

Duke Cho EmbeddedWeb Co., Ltd.

Similar presentations

Presentation on theme: "Duke Cho EmbeddedWeb Co., Ltd."— Presentation transcript:

1 Duke Cho EmbeddedWeb Co., Ltd.
2nd Open Seminar uClinux on ARM7TDMI Duke Cho EmbeddedWeb Co., Ltd.

2 Table of Contents uClinux 소개 uClinux 개발환경 (for ARM7TDMI) DYAUS 보드 소개

3 uClinux History What is uClinux? Microcontroller Project (uCsimm)
uClinux Ports RT-Kernel Difference between Linux and uClinux

4 History Jan 1998 The first ports of Linux to systems without a MMU was done by Kenneth Albanowski and D. Jeff Dionne Dec 1998 D. Jeff Dionne and Michael Durrant started work on designing a simm module capability of using the uClinux code as an OS Feb 1999 uClinux was successfully ported to the Motorola MCF5206 and MCF5307 ColdFire® microprocessor

5 History (cont’) 13 Sep 1999 22 Oct 1999 12 Apr 2000 16 Oct 2002
Jeff and Michael have released uClinux 22 Oct 1999 The uCsimm module Rt-Control Inc. created to run uClinux for embedded systems is now shipping 12 Apr 2000 New uClinux version pre7 announced 16 Oct 2002 the lastest uClinux version uc0 announced

6 What is uClinux? A derivative of Linux 2.0 kernel intended for microcontro -llers without MMUs Pronounced "you-see-linux“ Free software under GNU Public License

7 What is uClinux? (cont’)
Linux vs. uClinux Multitasking can be tricky!! Most of binaries and source code for the kernel have been rewritten to tighten-up and slim-down the code base The uClinux is much, much smaller than the original Linux 2.0 kernel, while retaining the main advantages of the Linux OS: stability, superior network capability(a full TCP/IP stack), and excellent file system support (Only NFS, ext2, MS-DOS and FAT16/32) common Linux API uCKernel < 512 KB uCKernel + tools < 900 KB

8 Microcontroller Project
The uCsimm module is a microcontroller module built specifically for the uClinux OS developed by Arcturus Networks Inc.(formerly Rt-Control Inc.) Features: a 16 MHz 68EZ328 DragonBall microcontoller 2 MB Flash ROM 8 MB DRAM 21 general purpose I/O pins (or up to 13 with a graphic LCD panel enabled) a built-in display driver, capable of driving a monochrome LCD panel up to QVGA resolution (640x480) RS-232 Serial Support High speed (1Mbps) I2C or SPI 3 wire serial a 3.3 Volt draw

9 uClinux Ports Community members from all over the world have been porting uClinux since its release in 1998 While originally developed for the Motorola chip, the number of available ports is always expanding Ported Microcontrollers and Microprocessors Motorola DragonBall, and other 68K Derivatives Motorola ColdFire ARM7TDMI and MC68EN302 ETRAX Intel i960 PRISMA Atari 68K Several Devices running uClinux

10 uClinux Ports (cont’) Motorola DragonBall, and other 68K Derivatives
The first release to the public domain supporting the Motorola DragonBall(M68EZ328), M68238, and M68EN322 Since then, uClinux has grown exponentially, as the worlds greatest MMU-less chip receive there own ports ARM7TDMI Aplio ported APLIO/TRIO chip (ARM7TDMI) and MC68EN302 Built by standard uClinux kernel Applied ARM patches and uClinux patches

11 Real-Time Extension for uClinux
uClinux Real Time moves up to 1pre1 (Oct., 2000) Phil Wilshire has taken Kwonsk’s uClinux/RTL patches up to a later revision of uClinux This has run on a uCSimm but is NOT fully tested yet The Real Time Linux Portal

12 Differences between Linux and uClinux
Memory Management The most significant difference is the lack of a MMU in uClinux uClinux removes the MMU requirement by implementing a flat memory model (a 1-to-1 virtual-to-physical mapping) uClinux allocates stack space at the end of the data for the executable On uClinux, memory is limited to whatever physical memory is available at a given time to a program

13 Differences between Linux and … (cont’)
Linux Memory Map Linux w/ Virtual Memory stack heap static Data text TOP ADDR D (virtual) Virtual Gap ~ 256 MB Gaps Round to Next page BASE ADDR C (virtual) uClinux stack heap static Data text TOP ADDR 00EA-6000 (physical) BASE ADDR 00E (physical) Heap Pages Allocated Using MMAP Fixed size Stack No Gaps

14 Differences between Linux and … (cont’)
Process Forking Currently, the fork has not yet been implemented for any current implementation of uClinux The use of vfork call or utilization of multiple threads instead of multiple processes can compensate for the lack of a working fork call in most cases As uClinux cannot implement the copy on write policy of Linux, user applications must be careful not to change the state of data in memory between vfork and exec calls

15 uClinux 개발환경 Cross Development Tools Libraries
Debug Concept / JTAG Emulators / Debugger Initialize Debgger / Intialization Script

16 EmbeddedICE macrocell Target System with NET+40
uClinux 개발환경 ARM Core EmbeddedICE macrocell NET+40 Target System with NET+40 ROM RAM Peripheral EmbeddedICE Interface Debug Host TAP Controller The NET+40 is one of the ARM core SoC, manufactured by NetSilicon Inc.

17 uClinux 개발환경 (cont’) Cross Development Tools
binutils-2.11 gcc gdb-5.0 elf2flt binutils-2.10 elf2flt genromfs-0.5.1

18 uClinux 개발환경 (cont’) Libraries uClibc uC-libc
The latest version: uClibc download: uC-libc The old uClibc version download:

19 uClinux 개발환경 (cont’) uClinux/distribution (Official Full Source)
The Latest snapshot source package is released on Sep. 27th, 2002 Support Architectures M68k ColdFire ARM Sparc i960 NEC v850 OPENcores OR1000 Kernels and kernel sources Libraries the older uC-libc and newer uClibc Rich Application Sources

20 miscellaneous documents configuration files for buid
uClinux 개발환경 (cont’) uClinux/distribution (Official Full Source) uClinux-dist Documentation miscellaneous documents bin NETtel binary files config configuration files for buid lib the older uC-libc linux-2.0.x uClinux linux-2.4.x uClinux tools tools for romfs romfs root file system uClibc the newer uClibc user application programs vendors vendor products /Arcturus for uCdimm and uCsimm /NetSilicon for NET+40 /Samsung for S3C4510

21 uClinux 개발환경 (cont’) Debug Concept
ARM7TDMI contains hardware extensions for advanced debugging features The ARM7TDMI debug interface is based on IEEE Std , “Standard Test Access Port and Boundary-Scan Architecture” The debug extensions allow the core to be stopped either on a given instruction fetch  breakpoint / watchpoint

22 uClinux 개발환경 (cont’) JEENI (JTAG EmbeddedICE EtherNet Interface)
Non-intrusive, uses no target resources & requires no porting to the target system ROMless booting Supports ARM7 and ARM9 cores containing "DI" macrocells Unlimited software breakpoints Ethernet and serial I/O ports for fast, flexible host interface High-speed download (>100k bytes per second) of application code Network compatibility allows shared and remote operation Internal ARM 710A cached processor assures fast operation Four status LEDs for observing operation Flash memory for easy firmware updates to next generation ARM cores Vendor: Embedded Performance, Inc.

23 uClinux 개발환경 (cont’) JTAG Emulators Wigglers Multi-ICE OPENice-A900
Raven Macraigor System AIJI System ARM

24 uClinux 개발환경 (cont’) Building Software
GNU Cross Development Tools (gcc, as, ld, and etc.) add an option “-gstabs” to an assembler add an option “-g” to a compiler How to execute and debug the built image by Monitor Program : > download into a target RAM via user program (serial or Ethernet) > Debug : manually insert some debug codes such as print function by JEENI (EmbeddedICE) : > download into a target RAM or a RAM included in an ICE via gdb > Debug : can use advanced debug features, breakpoint, watchpoint and etc., via gdb

25 uClinux 개발환경 (cont’) Debugger Linux Platform (gdb or DDD) Breakpoints
Watchpoints Backtrace Disassembled code Examine Memory Examine Registers GNU DDD is a graphical front-end for command-line debuggers such as GDB, DBX, WDB, Ladebug, JDB, XDB, the Perl debugger

26 Special Function Registers Memory Map after Initialization
uClinux 개발환경 (cont’) Initialize Debugger (change memory map) 0x USB & LEDs (CS4) 4K 0xFFFFFFFF 0x Cache RAM 0xFFF00000 Special Function Registers 0x 0xFF800000 LCD (CS3) 4K 0x 0x 1M EEPROM (CS2/0) 0x 0x 0x FLASH (blk 2) (CS0/2) 0x FLASH (blk 1) (CS0/2) 4M 0x CS 0 0x FP-DRAM (CS1) 16M 0x 0x Memory Map after Reset Memory Map after Initialization This memory map is for NetSilicon NET+40 MCU.

27 uClinux 개발환경 (cont’) Initialize Debugger by script (When FLASH is at CS0) target rdi e= #target rdi /dev/ttyS0 set {long}0xffb00000 = 0xC004a000 set {long}0xffc00000 = 0x0dc00000 set (long)0xffc00054 = 0xfffffa40 set (long)0xffc00050 = 0x set (long)0xffc00044 = 0xfffffa40 set (long)0xffc00040 = 0x set (long)0xffc00034 = 0xfff80a40 set (long)0xffc00030 = 0x set (long)0xffc00024 = 0xff000090 set (long)0xffc00020 = 0x set (long)0xffc00014 = 0xff8002f4 set (long)0xffc00010 = 0x Connect I/F (eth) Connect I/F (serial) System Ctrl. Memory Mod. USB&LED (CS4) LCD (CS3) EEPROM (CS2) DRAM (CS1) FLASH (CS0) “.gdbinit” script file Script for GDB

28 DYAUS DYAUS Product Family DBoot Bootloader emnux Kernel
Software Packages

29 DYAUS™ DYanamic All User Support uClinux kernel-2.0.38pre7/2.4.17uc0
DYAUS™ Series DYAUS-Exx : Embedded Linux Evaluation Board DYAUS-Rxx : ROM Emulator DYAUS-SE : CASE Tool (It’s renamed to Cstate™)

30 DYAUS Product Family DYAUS™-E100 DYAUS™-E200 DYAUS™-E210
NetSilicon NET+40 1 Parallel, 2 RS-232, 1 Ethernet, etc. DYAUS™-E200 Samsung S3C4530A 2 RS-485, 1 RS-232, 1 Ethernet, etc. DYAUS™-E210 VME Bus, 2 RS-232, 2 Ethernet, etc.

31 DBoot Bootloader Supported processor(s): Features: ARM7TDMI based SoC
NetSilicon NET+40 and Samsung S3C4530A Features: “dsh” command prompt for user interface download the image through the serial port using XMODEM or through the Ethernet port using TFTP protocol execute the program from Flash or DRAM write the image into Flash and erase block/sector/all reload from Flash into DRAM able to set the network configuration able to edit memory information support the diagnostic tests (irq, printer)

32 DBoot Bootloader (cont’)

33 emnux Kernel derived from uClinux kernel
It has two version, 2.0(2.0.38pre7) and 2.4(2.4.17uc0) /arch /armnommu /i196 /m68knommu /drivers /kernel /boot /mach-netarm /kernel /lib /mm /lib /init /ipc /fs /kernel/linux /include /asm-armnommu /linux /net /mm /mmnommu /arch-netarm /proc-netarm /net /scripts

34 Software Packages /usr/local arm-dyaus
cross development environment dir. for ARM7TDMI /arm-elf /bin /include emnux-2.4 kernel emnux kernel tools cross development tool sources uC-libc the older uC-libc userapps application programs /apps busybox, tinylogin, inetd (uClibc) /uc_apps mount, ftp, ping (uC-libc) /build root file system /disk root directory /bin /etc /usr

35 Demonstration emnux-2.4 on DYAUS-E100 Boa embedded web server
C CGI program

36 Bookmarks uClinux uClinux Official Site The uClinux Directory
The uClinux Directory uClinux Software uClinux Vendors EmbeddedWeb Co., Ltd. Arcturus Networks Inc. Snap Gear Inc. Lineo, Inc.

37 Bookmarks (cont’) JTAG Emulator Vendors Embedded Performance, Inc.
Macraigor System AIJI System Co., Ltd. Useful Sites uClinux for Samsung S3C4510A uClinux for Samsung S3C44b0x uClinux on the NET V850E

38 Bookmarks (cont’) Cross Development Environment uClibc genromfs

39 Thanks for your interest!!
Don’t hesitate to contact! Duke Cho

Download ppt "Duke Cho EmbeddedWeb Co., Ltd."

Similar presentations

Ads by Google