Presentation is loading. Please wait.

Presentation is loading. Please wait.

UClinux on ARM7TDMI Duke Cho EmbeddedWeb Co., Ltd. 2 nd Open Seminar 2002-10-20.

Similar presentations


Presentation on theme: "UClinux on ARM7TDMI Duke Cho EmbeddedWeb Co., Ltd. 2 nd Open Seminar 2002-10-20."— Presentation transcript:

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

2 uClinux on ARM7TDMI 2 nd Open Seminar -2- Table of Contents uClinux uClinux (for ARM7TDMI) DYAUS

3 uClinux on ARM7TDMI 2 nd Open Seminar -3- uClinux –History –What is uClinux? –Microcontroller Project (uCsimm) –uClinux Ports –RT-Kernel –Difference between Linux and uClinux

4 uClinux on ARM7TDMI 2 nd Open Seminar -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 uClinux on ARM7TDMI 2 nd Open Seminar -5- History (cont ) 13 Sep 1999 Jeff and Michael have released uClinux 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 uClinux on ARM7TDMI 2 nd Open Seminar -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 uClinux on ARM7TDMI 2 nd Open Seminar -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 uClinux on ARM7TDMI 2 nd Open Seminar -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 on ARM7TDMI 2 nd Open Seminar -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 on ARM7TDMI 2 nd Open Seminar -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 uClinux on ARM7TDMI 2 nd Open Seminar -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 uClinux on ARM7TDMI 2 nd Open Seminar -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 uClinux on ARM7TDMI 2 nd Open Seminar -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 uClinux on ARM7TDMI 2 nd Open Seminar -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 on ARM7TDMI 2 nd Open Seminar -15- uClinux –Cross Development Tools –Libraries –Debug Concept / JTAG Emulators / Debugger –Initialize Debgger / Intialization Script

16 uClinux on ARM7TDMI 2 nd Open Seminar -16- uClinux Debug Host EmbeddedICE Interface TAP Controller ARM Core EmbeddedICE macrocell NET+40 Target System with NET+40 ROM RAM Peripheral The NET+40 is one of the ARM core SoC, manufactured by NetSilicon Inc.

17 uClinux on ARM7TDMI 2 nd Open Seminar -17- uClinux (cont ) Cross Development Tools –http://www.uclinux.org/pub/uClinux/arm-tools/ binutils-2.11 gcc gdb-5.0 elf2flt –http://www.uclinux.org/pub/uClinux/dist/ binutils-2.10 gcc gdb-5.0 elf2flt genromfs-0.5.1

18 uClinux on ARM7TDMI 2 nd Open Seminar -18- uClinux (cont ) Libraries uClibc -The latest version: uClibc download: uC-libc –The old uClibc version –download:

19 uClinux on ARM7TDMI 2 nd Open Seminar -19- uClinux (cont ) uClinux/distribution (Official Full Source) –The Latest snapshot source package is released on Sep. 27 th, 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 uClinux on ARM7TDMI 2 nd Open Seminar -20- uClinux (cont ) uClinux/distribution (Official Full Source) uClinux-dist /NetSilicon /Samsung /Arcturus tools for romfs root file system the newer uClibc application programs vendor products for NET+40 for S3C4510 for uCdimm and uCsimm bin config Documentation vendors lib linux-2.0.x linux-2.4.x tools uClibc user romfs uClinux uClinux the older uC-libc configuration files for buid NETtel binary files miscellaneous documents

21 uClinux on ARM7TDMI 2 nd Open Seminar -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 on ARM7TDMI 2 nd Open Seminar -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 on ARM7TDMI 2 nd Open Seminar -23- uClinux (cont ) JTAG Emulators Wigglers Raven Macraigor SystemAIJI System OPENice-A900 Multi-ICE ARM

24 uClinux on ARM7TDMI 2 nd Open Seminar -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 on ARM7TDMI 2 nd Open Seminar -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 uClinux on ARM7TDMI 2 nd Open Seminar -26- uClinux (cont ) Initialize Debugger (change memory map) Special Function Registers CS 0 0xFFF x Memory Map after ResetMemory Map after Initialization 0xFF Cache RAM 0xFFFFFFFF FP-DRAM (CS1) USB & LEDs (CS4) FLASH (blk 1) (CS0/2) EEPROM (CS2/0) 0x x x x x x x M 4M 1M1M FLASH (blk 2) (CS0/2) 0x LCD (CS3) 0x x K 0x K 0x This memory map is for NetSilicon NET+40 MCU.

27 uClinux on ARM7TDMI 2 nd Open Seminar -27- uClinux (cont ) Initialize Debugger by script (When FLASH is at CS0) Script for GDB 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 = 0xff set (long)0xffc00020 = 0x set (long)0xffc00014 = 0xff8002f4 set (long)0xffc00010 = 0x gdbinit script file Connect I/F (eth) Connect I/F (serial) FLASH (CS0) DRAM (CS1) EEPROM (CS2) LCD (CS3) USB&LED (CS4) System Ctrl. Memory Mod.

28 uClinux on ARM7TDMI 2 nd Open Seminar -28- DYAUS –DYAUS Product Family –DBoot Bootloader –emnux Kernel –Software Packages

29 uClinux on ARM7TDMI 2 nd Open Seminar -29- DYAUS DYanamic All User Support uClinux kernel pre7/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 uClinux on ARM7TDMI 2 nd Open Seminar -30- DYAUS Product Family DYAUS -E100 –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 –Samsung S3C4530A –VME Bus, 2 RS-232, 2 Ethernet, etc.

31 uClinux on ARM7TDMI 2 nd Open Seminar -31- DBoot Bootloader Supported processor(s): –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 uClinux on ARM7TDMI 2 nd Open Seminar -32- DBoot Bootloader (cont )

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

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

35 uClinux on ARM7TDMI 2 nd Open Seminar -35- Demonstration –emnux-2.4 on DYAUS-E100 –Boa embedded web server –C CGI program

36 uClinux on ARM7TDMI 2 nd Open Seminar -36- Bookmarks uClinux uClinux Official Site The uClinux Directory uClinux Software uClinux Vendors EmbeddedWeb Co., Ltd. Arcturus Networks Inc. Snap Gear Inc. Lineo, Inc.

37 uClinux on ARM7TDMI 2 nd Open Seminar -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 uClinux on ARM7TDMI 2 nd Open Seminar -38- Bookmarks (cont ) Cross Development Environment uClibc genromfs

39 Thanks for your interest!!Thanks for your interest!! Dont hesitate to contact! Duke Cho


Download ppt "UClinux on ARM7TDMI Duke Cho EmbeddedWeb Co., Ltd. 2 nd Open Seminar 2002-10-20."

Similar presentations


Ads by Google