amiro-lld / README.txt @ d6728c5b
History | View | Annotate | Download (4.853 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 | Copyright (C) 2016..2018 Thomas Schöpping et al. |
||
| 7 | (a complete list of all authors is given below) |
||
| 8 | |||
| 9 | This program is free software: you can redistribute it and/or modify |
||
| 10 | it under the terms of the GNU General Public License as published by |
||
| 11 | 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 | General Public License for more details. |
||
| 18 | |||
| 19 | You should have received a copy of the GNU General Public License |
||
| 20 | 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 | ================================================================================ |