Intermec ck1 Guide De Référence
Appendix A —
µClinux System
CK1 SDK Programmer’s Reference Manual
321
because it can not ensure that the pages would be loaded to the same
location in RAM. In general in embedded environments it also would not
be acceptable to suspend an application in order to use more RAM than is
physically available.
location in RAM. In general in embedded environments it also would not
be acceptable to suspend an application in order to use more RAM than is
physically available.
User Applications
User applications exist under the
µClinux-tree in the ./user folder. As a
default, the environment has many ported applications for different
purposes. If you want to add or port new applications, they should be
placed under this directory and then you modify some files in order to see
the new application in the menus.
purposes. If you want to add or port new applications, they should be
placed under this directory and then you modify some files in order to see
the new application in the menus.
The major concern when developing and running large, sophisticated
programs under
programs under
µClinux is the lack of MMU. This of course changes the
memory management so that heavily memory dependent applications may
not run properly under the
not run properly under the
µClinux environment. The parts in the code
using memory allocations and de-allocations require redevelopment. Also
memory swapping and paging needs to be removed.
memory swapping and paging needs to be removed.
Porting Applications
Porting applications to
µClinux is the same kind of task as in regular
Linux. As Linux already has a great deal of applications developed under
the GPL, they can be added with a rather minor modification to run under
the
the GPL, they can be added with a rather minor modification to run under
the
µClinux kernel. The main step for porting is to modify the application
Make files and configuration files to ensure that the compilation is done
with the
with the
µClinux tool chain. The other thing that should be noted is the
lack of the MMU and the system calls related to this. For efficient and user
friendly programming, it is usually convenient to comment all the changes
made to the source code, so that the other developers using your code can
easily see what and how the change is made.
friendly programming, it is usually convenient to comment all the changes
made to the source code, so that the other developers using your code can
easily see what and how the change is made.
Most problems when compiling the newly ported application are usually
generated from the libraries. The lack of libraries forces you to also port
the whole library to the system, and when linking the code with these
libraries, some unexpected problems might occur. Also some differences
might occur from the APIs offered by the C libraries. From here the newer
generated from the libraries. The lack of libraries forces you to also port
the whole library to the system, and when linking the code with these
libraries, some unexpected problems might occur. Also some differences
might occur from the APIs offered by the C libraries. From here the newer
µClibc has a better support for Linux-like APIs.
Future of
µClinux
Today the
µClinux community continues to provide the patches for the
latest kernels as they appear. This development process has always been
rapid and includes also the releases of the development kernels. The
community also releases the latest
rapid and includes also the releases of the development kernels. The
community also releases the latest
µClibc version through the µClinux
support pages. The distribution also evolves to provide support for new
MMU-less microprocessor architectures as they appear.
MMU-less microprocessor architectures as they appear.