Landfall

Annotated docs/wiki/Source_Code

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
= Source Code Overview =
paul@49 2
paul@49 3
This distribution provides packages for use within L4Re, located in the `pkg`
paul@49 4
directory in this distribution and in the `src/l4/pkg` directory within the
paul@49 5
L4Re repository structure. They are currently as follows:
paul@49 6
paul@49 7
|| '''Package'''     || '''Description'''                                  ||
paul@49 8
|| devices           || a collection of device drivers and libraries       ||
paul@49 9
|| landfall-examples || a collection of examples demonstrating the devices ||
paul@49 10
paul@49 11
In addition to the above, configuration files are provided for the example
paul@49 12
programs in the `conf/landfall-examples` directory.
paul@49 13
paul@49 14
== Device Support ==
paul@49 15
paul@49 16
A selection of devices are supported by this software. They are found within
paul@49 17
the `pkg/devices` directory and are currently the following:
paul@49 18
paul@49 19
|| '''Device'''      || '''Description'''                                  ||
paul@49 20
|| backlight         || display backlight control                          ||
paul@49 21
|| cpm               || clock and power management                         ||
paul@49 22
|| display           || device-specific display control                    ||
paul@49 23
|| fb                || framebuffer access                                 ||
paul@49 24
|| input             || input event delivery                               ||
paul@49 25
|| keypad            || keypad/keyboard scanning                           ||
paul@49 26
|| lcd               || LCD and other display peripheral support           ||
paul@49 27
|| pwm               || pulse width modulation support                     ||
paul@49 28
|| spi               || serial peripheral interface support                ||
paul@49 29
paul@49 30
Many device types provide the following kinds of support:
paul@49 31
paul@49 32
  * Server programs that regulate access to devices
paul@49 33
  * Client libraries that provide access to the server programs
paul@49 34
  * General library support for server programs to use
paul@49 35
paul@49 36
In addition to the above, more general libraries found in the lib subdirectory
paul@49 37
provide abstractions for working with peripherals defined at the hardware
paul@49 38
level. It is envisaged that each peripheral-specific library will eventually
paul@49 39
have corresponding server support, at least where this would offer a
paul@49 40
reasonable kind of abstraction.
paul@49 41
paul@49 42
(Some kinds of peripherals may, in fact, only be accessed when providing a
paul@49 43
device with different outward characteristics to those exposed at the hardware
paul@49 44
level. Other aspects of the hardware are also best maintained as libraries or
paul@49 45
data for use by other components, such as information about display panels.
paul@49 46
Such things do not need their own server whose only purpose would be to
paul@49 47
provide static data to other programs, and even then only very occasionally.)