Linux As An Embedded Operating System: Embedded Linux For The Dil/Netpc Dnp/1486-3V
Linux As An Embedded Operating System: Embedded Linux For The Dil/Netpc Dnp/1486-3V
Linux As An Embedded Operating System: Embedded Linux For The Dil/Netpc Dnp/1486-3V
Introduction
Linux is a modular operating system that is available in the source code. Runtimes
of Linux are royalty free. Linux is documented outstandingly and offers a robust
multitasking operation as well as an advanced programming interface (API).
Extensive professional relief broadcasts it numerous independent companies and a
worldwide developer municipality that advances the operating system and helps
about the Internet with tips and pieces of advice mutually with almost every
problem. Linux supports almost all 32-bit processor architectures as well as
meanwhile also some low-cost 32-bit microcontrollers and offers device drivers
for any piece of hardware. Linux implies extensive functions for networking tasks
as the TCP/IP- records of the Internet. Through these features Linux is suitable for
applications in the automatic control area and in the field of measurement and
control. Particularly as a so-called "embedded operating system" within
networked automation components as for example a distributed industrial
operation it can play all advantages. In order to support the circulation of Linux as
an embedded operating system, in first days of 2000 the "Embedded Linux
Consortium (ELC)" in the USA and the "Emblix Consortium" in Japan were
setting up to work. Both institutions have important finance averages through their
numerous industrial members and want Linux through purposeful press job, fair
appearances and over a strong Internet-presence to be the leading embedded
operating system in the future.
Also the real-time ability, necessary for many embedded applications, now
subsequently receives Linux. Several companies and institutes pursue with
different approaches the destination to allow the commitment of Linux in time-
critical applications. One of these evolutions named RTLinux settles directly
about the hardware as real-time kernels below the standard Linux and lets the
standard Linux run as an own task. Through that standard Linux does not become
indeed real time capable. It is, however, possible, to let a task run with guaranteed
response times about the real-time kernel. For another approach the entire one
became Linux kernel re-works around the desired real-time ability to receive.
The DIL/NetPC offers two memory devices: one 8 MByte DRAM as working
memory and for the Linux root filesystem on a RAM disk and one 2 MByte
FLASH for storing the embedded operating system together with the application
programs. The DIL/NetPC 10BASE-T Ethernet interface is build with a CS8900
LAN controller. The chip also contains the necessary Ethernet packet buffer
memory.
In order to mount all the components of the DIL/NetPC to a board with only 82 by
28 mm, a 8-layer printed circuit board is used. The bottom of this multilayer
printed circuit board offers a 64-pin connector in the format of a DIL-IC for
mechanical integration to existing systems. At the 64 pin's, the DIL/NetPC offers
20 parallel I/O (PIO) signals, a complete serial PC-based COM1 interface with all
handshake signals, the 10BASE-T Ethernet interface and a 8-bit I/O- extension
bus with four programmable chip select signals and five interrupt input lines.
Thus the accessibility to existing systems might not represent any great problem.
In the simplest case the combination over COM1 occurs, at more pretentious
solutions about that one I/O bus. This bus can for example A/D- and/or D/A to
access transformers or other controllers.
Also an accessibility of LCD panels (text- and/or small graphic module versions)
is possible without additional logic.
these three base elements in the form of only one binary image (Figure 4.a) or also
as separate files (Figure 4.b). Even the possibility consists in this case then, that
embedded Linux can be start direct from a DOS command line.
@echo off
ECHO Start SSV Embedded Linux for DILNetPC.
loadlin zimage console=ttys0,115200 initrd=rimage.gz
ECHO SSV Embedded Linux stopped or failed !
Listing 1: Starting embedded Linux with a DOS command line
Within the booting process the DIL/NetPC Linux kernel is responsible for setting
up all the normal hardware configuration of the SC410 microcontroller and
peripherals, things such as internal and external chip selects, DRAM controller,
internal counter/timer, interrupt controller etc. After that, the Linux kernel loads
all the necessary drivers for the serial console, Ethernet controller and so on.
Component/Module Size
Bootloader 10.819 Bytes
Kernel with TCP/IP Support 418.978 Bytes
Root Filesystem incl. Telnet, FTP and Web Server 1.098.921 Bytes
1.528.718 Bytes
After the hardware setup the embedded Linux kernel builds a RAM disk within
the DIL/NetPC DRAM chip. Then the kernel decompresses the root filesystem
and forms the binary image in FLASH memory to the new empty RAM disk. This
provides a significant performance advantage. The access to DRAM is faster than
typical FLASH memory. After the file system is complete the kernel causes the
so-called "systeminit process". For that process the program init is started in the
RAM disk subdirectory /sbin. This program activates further programs under
circumstances in accordance to the content the configuration file
/etc/inittab.
Linux offers a strong TCP/IP protocol suite [2] with BSD socket interface. The
TCP/IP protocol suite started as a research project for the Department of Defence
(DoD) in the USA as a way of sending data so that a single failure does not
cripple the communication between two points. When a network connection either
becomes congested or is made inactive, data for that link are routed in a different
way. This network grew into what is known as the Internet. The TCP/IP protocol
stack manages the assembling of data into packets. The packet are transmitted
over the Internet and received at the destination where the packets are
reassembled to their original state.
Over the Linux BSD socket interface (API= Application Programming Interface)
the application programmer can access direct to the TCP and UDP protocols [3]
within the DIL/NetPC TCP/IP stack for own applications.
Above the BSD socket interface numerous TCP/IP networking applications are to
be found. Within the DIL/NetPC embedded Linux configuration, there are the
Telnet, FTP and Web server as the most important TCP/IP applications.
Telnet is a protocol used to implement a remote login facility on virtually any host
computer from a remote terminal. The idea is that a terminal creates a session on a
remote server anywhere in a network or internetwork (i.e. the Internet). Because
terminals and hosts can vary in terms of the functionality provided, the Telnet
protocol was designed to enable the host and terminal to negotiate additional
options to augment the facilities offered to the user. For using the Telnet protocol,
the host needs a Telnet server and the terminal needs a Telnet client software. The
DIL/NetPC Linux Telnet server offers a complete Ethernet-based remote login
facility for any Telnet client for example the standard telnet client within a
Microsoft Windows operating system. Figure 5 shows a Windows 98 Telnet client
connected to the DIL/NetPC Telnet server.
The Web server within the DIL/NetPC embedded Linux configuration offers a
embedded home page with a graphical user interface (GUI) for any device or
system, which contains a DIL/NetPC. This GUI is then accessible from a PC or
any other computer with a standard Web browser over a Ethernet-based network
and over the Internet for Web-based device monitoring.
Most Linux software development tasks for embedded systems are done in a
cross development environment. This environment consists of a host and a target.
Typical the host is a standard desktop PC with a Linux operating system. This
systems forms the development system. The target is a embedded system like the
DIL/NetPC. Figure 6 shows the block diagram of this cross software development
environemt.
Most desktop PCs runs under the Microsoft Windows operating systems. In this
case Linux should simply be installed as a second operating system to the PC hard
disk. Together with this Linux distributions comes the GNU tool chain with
compilers, assembler, linker and debuggers. Programs are written on the
development system. After each compiler/linker run, the binary output is
downloaded to the target for testing. Some parts of a embedded system
application can be developed natively. In this case the development system and
the embedded system needs the same CPU type (i.e. the AMD or Intel x86
architecture).
For downloading to the target and debugging the embedded system application on
the target, the development environment needs a link between host and target.
Figure 6 shows two links: one serial link over RS232 for the debugger and second
link between the PC parallel port (LPT) and the JTAG interface of the 32-bit
microprocessor or microcontroller. Over this interface, the PC can write a binary
image direct into the embedded system FLASH memory.
Literature
Contact
This document is certain only for the internal application. The content of this
document can change any time without announcement. There is taken over no
guarantee for the accuracy of the statements. Copyright © SSV EMBEDDED
SYSTEMS 2000. All rights reserved.