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.) |