amiro-lld / README.txt @ bb46c559
History | View | Annotate | Download (4.99 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 | bb46c559 | Thomas Schöpping | each driver can be activated individually as required. Interface functions allow |
53 | for bidirectional comunication with an operating system. On the one hand drivers |
||
54 | access according hardware interfaces via defined interface functions (which need |
||
55 | to be implemented by the operating system) and any applications (or the |
||
56 | operating system itself) can take advantage of the drivers by their individual |
||
57 | interfaces. The abstraction layer of the hardware interfaces is called |
||
58 | "periphAL", which is defined by this project. |
||
59 | d6728c5b | Thomas Schöpping | |
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 | bb46c559 | Thomas Schöpping | ./ |
68 | │ The project root directory contains this file, a license.html file as well as |
||
69 | │ a Makefile that allows to easily integrate the project. Furthermore, two |
||
70 | │ interface headers are provided: amiro-lld.h and periphALtypes.h. These are |
||
71 | │ entry points for any utilizing superproject, so it is not required (and not |
||
72 | │ recommended) to include each driver individually. |
||
73 | │ |
||
74 | ├── include/ |
||
75 | │ Each driver defines exactly one include header in this directory. By |
||
76 | │ convention these files are named by the form |
||
77 | │ alld_<product_name>.h |
||
78 | │ <product_name> is a placeholder for the exact name of the according |
||
79 | │ hardware, or the product familiy, if the driver is compatible with all |
||
80 | │ parts. |
||
81 | │ |
||
82 | ├── source/ |
||
83 | │ Any source files are placed in this directory. Usually there is a single |
||
84 | │ file for each driver. If multiple files are necessary, these should be |
||
85 | │ placed in an accordingly named subfolder. Names of folders and files |
||
86 | │ should comply to the aforementioned convention. |
||
87 | │ |
||
88 | └── templates/ |
||
89 | AMiRo-LLD requires an implementation of the defined interface and an |
||
90 | configuration header to be accessible in the include paths at compile |
||
91 | time. Template files for both can be found in this folder. It is |
||
92 | recommended to place according implementations of these templated not in |
||
93 | the AMiRo-LLD project, but the superproject which includes AMiRo-LLD. |
||
94 | d6728c5b | Thomas Schöpping | |
95 | ================================================================================ |