Intermec ck1 Reference Guide

Page of 390
Appendix A — 
µClinux System 
CK1 SDK Programmer’s Reference Manual 
309 
The version of 
µClinux development tool is arm-ELF-DATE toolchain, 
which can compile several different types of binaries. These tools provide a 
foundation for the development and can be obtained as a pre-build binary 
tool package or compiled by the developer by patching the GNU tools and 
then compiling them with arm-ELF option. The whole toolchain includes 
the following components. 
Toolchain Components 
Component 
Description 
binutils 
A collection of binary tools (ld, as, etc.). Based on the GNU binutils-
2.10. 
gcc 
C/C++ compiler. Based on GNU gcc-2.95.3. 
elf2flt 
An ELF to flat converter. 
genromfs 
Tool for creating romfs images. Based on sourceforges romfs project, 
genromfs-0.5.1. 
 
 
By default the script used to install these tools installs them to /usr/local 
directory. If the tools are built from scratch, all the tools have to be 
patched and configured in order to get them to work with the 
µClinux 
kernel. 
The important issue when developing code is the ability to track down the 
instances that might affect application execution. Under the 
µClinux two 
different kinds of debugging are required, one for the kernel source code 
and another for the user applications. For this, 
µClinux provides the 
ability to use GNU debugger (GDB), which allows you to debug programs 
written in C, C++, and with some other languages. The GDB has a 
number of patches available for 
µClinux and ARM processors.  
For other general developing, debugging tools that Linux provides are 
normal print commands included to the source code and a command 
called strace, which allows you to trace the system calls and signals when 
programming is executed under this command. 
Runtime Linker and Loader 
At the runtime, loaders and linkers are the ones responsible for running 
the applications. They also attach the abstract names for the programmer’s 
point of view to more reasonable ones. In systems with MMU, the 
applications can use the advantage of virtual memory and so the 
instructions and the read-only data can be shared among the applications. 
Without MMU, the flat memory model makes it necessary for the 
application to be assigned with memory allocation different at each 
runtime. The linker and loader locate the application and install it to the 
system memory space in such a way that they can work from the place that 
they are installed in.