Landfall

Annotated docs/wiki/Tools

296:c4c278adb02a
6 months ago Paul Boddie Fixed I2C operations by reinstating IRQ binding to the main thread for I2C IRQs. cpm-library-improvements
paul@49 1
= Tools and Utilities =
paul@49 2
paul@49 3
The `tools` directory contains a number of programs useful when developing
paul@49 4
this software:
paul@49 5
paul@49 6
{{{#!table
paul@49 7
checkconfig.sh || initialises files used to control run-time linking for the
paul@49 8
               .. configured device
paul@49 9
==
paul@49 10
install.sh     || installs the software in a L4Re source distribution
paul@49 11
==
paul@49 12
listlibs.sh    || lists library modules for inclusion in .list files
paul@49 13
==
paul@49 14
makecontrol.sh || updates the Control file for a package directory with
paul@49 15
               .. details of the provided "virtual" packages employed by the
paul@49 16
               .. build system for dependency resolution
paul@49 17
==
paul@49 18
makefonts.sh   || generate binary font files from source data
paul@49 19
==
paul@49 20
readfont.py    || convert GNU Unifont source files to binary form
paul@49 21
}}}
paul@49 22
paul@49 23
== Identifying Library Modules ==
paul@49 24
paul@49 25
The `listlibs.sh` tool is intended to inspect an existing .list file, analyse
paul@49 26
executable programs mentioned in that file that have already been built, and
paul@49 27
to generate a list of shared libraries needed by those executables such that
paul@49 28
the .list file describes all required modules for deployment.
paul@49 29
paul@49 30
In the `l4` subdirectory of the L4Re source distribution, the tool is run as
paul@49 31
follows:
paul@49 32
paul@49 33
{{{
paul@49 34
$LANDFALL/tools/listlibs.sh conf/landfall-examples/$EXAMPLE.list mybuild
paul@49 35
}}}
paul@49 36
paul@49 37
(Here, `$LANDFALL` needs to expand to the location of this distribution
paul@49 38
whereas `$EXAMPLE` indicates an example name.)
paul@49 39
paul@49 40
For example:
paul@49 41
paul@49 42
{{{
paul@49 43
~/L4/Landfall/tools/listlibs.sh \
paul@49 44
  conf/landfall-examples/mips-qi_lb60-keypad.list mybuild
paul@49 45
}}}
paul@49 46
paul@49 47
This will output a list of modules for inclusion in the .list file. It can be
paul@49 48
advisable to make this change to the .list file in the Landfall distribution
paul@49 49
and to then install the file into the L4Re source distribution, potentially
paul@49 50
using the install.sh script.
paul@49 51
paul@49 52
At this point, it is important to remember that the `conf/modules.list` file
paul@49 53
will need updating to include these new details. For example:
paul@49 54
paul@49 55
{{{
paul@49 56
cp conf/landfall-examples/mips-qi_lb60-keypad.list conf/modules.list
paul@49 57
}}}
paul@49 58
paul@49 59
Finally, the command to build a payload can be run:
paul@49 60
paul@49 61
{{{
paul@49 62
make O=mybuild uimage E=mips-qi_lb60-keypad-example
paul@49 63
}}}
paul@49 64
paul@49 65
This should consult `conf/modules.list` and update the contents of the
paul@49 66
generated image to include any newly-added shared libraries.