amiro-lld / README.txt @ 9e45662e
History | View | Annotate | Download (4.873 KB)
1 | d6728c5b | Thomas Schöpping | AMiRo-LLD is a compilation of low-level hardware drivers for the base version of |
---|---|---|---|
2 | the Autonomous Mini Robot (AMiRo) [1]. It provides directional interfaces for an |
||
3 | operating system to access the drivers and for the drivers to access the |
||
4 | communication infrastructure via the operating system. |
||
5 | |||
6 | f125ae07 | Thomas Schöpping | Copyright (C) 2016..2019 Thomas Schöpping et al. |
7 | d6728c5b | Thomas Schöpping | (a complete list of all authors is given below) |
8 | |||
9 | This program is free software: you can redistribute it and/or modify |
||
10 | f0ca400f | Thomas Schöpping | it under the terms of the GNU Lesser General Public License as published by |
11 | d6728c5b | Thomas Schöpping | the Free Software Foundation, either version 3 of the License, or (at |
12 | your option) any later version. |
||
13 | |||
14 | This program is distributed in the hope that it will be useful, but |
||
15 | WITHOUT ANY WARRANTY; without even the implied warranty of |
||
16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
||
17 | f0ca400f | Thomas Schöpping | Lesser General Public License for more details. |
18 | d6728c5b | Thomas Schöpping | |
19 | f0ca400f | Thomas Schöpping | You should have received a copy of the GNU Lesser General Public License |
20 | d6728c5b | Thomas Schöpping | along with this program. If not, see <http://www.gnu.org/licenses/>. |
21 | |||
22 | This research/work was supported by the Cluster of Excellence |
||
23 | Cognitive Interaction Technology 'CITEC' (EXC 277) at Bielefeld |
||
24 | University, which is funded by the German Research Foundation (DFG). |
||
25 | |||
26 | Authors: |
||
27 | - Thomas Schöpping <tschoepp[at]cit-ec.uni-bielefeld.de> |
||
28 | - Marc Rothmann |
||
29 | |||
30 | References: |
||
31 | [1] S. Herbrechtsmeier, T. Korthals, T. Schopping and U. Rückert, "AMiRo: A |
||
32 | modular & customizable open-source mini robot platform," 2016 20th |
||
33 | International Conference on System Theory, Control and Computing (ICSTCC), |
||
34 | Sinaia, 2016, pp. 687-692. |
||
35 | |||
36 | |||
37 | |||
38 | ################################################################################ |
||
39 | # # |
||
40 | # RRRRRRRR EEEEEEEE AAA DDDDDDDD MM MM EEEEEEEE # |
||
41 | # RR RR EE AA AA DD DD MMM MMM EE # |
||
42 | # RR RR EE AA AA DD DD MMMM MMMM EE # |
||
43 | # RRRRRRRR EEEEEE AA AA DD DD MM MMM MM EEEEEE # |
||
44 | # RR RR EE AAAAAAAAA DD DD MM MM EE # |
||
45 | # RR RR EE AA AA DD DD MM MM EE # |
||
46 | # RR RR EEEEEEEE AA AA DDDDDDDD MM MM EEEEEEEE # |
||
47 | # # |
||
48 | ################################################################################ |
||
49 | |||
50 | AMiRo-LLD is a compilation of low-level hardware drivers, originally developed |
||
51 | for the Autonomous Mini Robot (AMiRo) [1]. It provides a modular design, so that |
||
52 | each driver can be (de)activated individually as required. Interface functions |
||
53 | allow for bidirectional comunication with an operating system. On the one hand |
||
54 | drivers access according hardware interfaces via defined interface functions |
||
55 | (which need to be implemented by the operating system) and any applications (or |
||
56 | the operating system itself) can take advantage of the drivers by their |
||
57 | individual interfaces. The abstraction layer of the hardware interfaces is |
||
58 | called "periphAL", which is defined by this project. |
||
59 | |||
60 | Although this compilation was originally designed to be used in combination with |
||
61 | the AMiRo operating system (AMiRo-OS; cf. https://opensource.cit-ec.de/projects/amiro-os/), |
||
62 | it is not limited to this use case. The included drivers may be used for any |
||
63 | purpose and contributions of further drivers, even if the according hardware is |
||
64 | not present on the AMiRo platform, are highly appreciated. |
||
65 | |||
66 | The files are structured as follows: |
||
67 | * include/ |
||
68 | Each driver defines exactly one include header in this directory. By |
||
69 | convention these files are named by the form |
||
70 | alld_<product_name>.h |
||
71 | <product_name> is a placeholder for the exact name of the according hardware, |
||
72 | or the product familiy, if the driver is compatible with all parts. |
||
73 | * source/ |
||
74 | Any source files are placed in this directory. Usually there is a single file |
||
75 | for each driver. If multiple files are necessary, these should be placed in an |
||
76 | accordingly named subfolder. Names of folders and files should comply to the |
||
77 | aforementioned convention. |
||
78 | * templates/ |
||
79 | AMiRo-LLD requires an implementation of the defined interface and an |
||
80 | configuration header to be accessible in the include paths at compile time. |
||
81 | Template files for both can be found in this folder. It is recommended to |
||
82 | place according implementations of these templated not in the AMiRo-LLD |
||
83 | project, but the superproject which includes AMiRo-LLD. |
||
84 | * / |
||
85 | The project root directory contains this file, a license.html file as well as |
||
86 | a Makefile that allows to easily integrate the project. Furthermore, two |
||
87 | interface headers are provided: amiro-lld.h and periphALtypes.h. These are |
||
88 | entry points for any utilizing superproject, so it is not required (and not |
||
89 | recommanded) to include each driver individually. |
||
90 | |||
91 | ================================================================================ |