Statistics
| Branch: | Tag: | Revision:

amiro-blt / README.txt @ 6feb961b

History | View | Annotate | Download (7.4 KB)

1
AMiRo-BLT is the bootloader and flashing toolchain for the base version of the
2
Autonomous Mini Robot (AMiRo) [1]. It is based on OpenBLT developed by Feaser
3
(see <http://feaser.com/en/openblt.php>).
4

    
5
Copyright (C) 2016..2017  Thomas Schöpping et al.
6
(a complete list of all authors is given below)
7

    
8
This program is free software: you can redistribute it and/or modify
9
it under the terms of the GNU General Public License as published by
10
the Free Software Foundation, either version 3 of the License, or (at
11
your option) any later version.
12

    
13
This program is distributed in the hope that it will be useful, but
14
WITHOUT ANY WARRANTY; without even the implied warranty of
15
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
General Public License for more details.
17

    
18
You should have received a copy of the GNU General Public License
19
along with this program.  If not, see <http://www.gnu.org/licenses/>.
20

    
21
This research/work was supported by the Cluster of Excellence
22
Cognitive Interaction Technology 'CITEC' (EXC 277) at Bielefeld
23
University, which is funded by the German Research Foundation (DFG).
24

    
25
Authors:
26
 - Thomas Schöpping        <tschoepp[at]cit-ec.uni-bielefeld.de>
27
 - Stefan Herbechtsmeier   <sherbrec[at]cit-ec.uni-bielefeld.de>
28
 - Marvin Barther
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
This file will help you to setup all required software on your system, compile
51
the source code, and use the tools and flash the bootloader software to the
52
AMiRo base modules.
53

    
54
================================================================================
55

    
56
CONTENTS:
57

    
58
  1  Required software
59
    1.1  stm32flash
60
    1.2  GCC ARM Embedded Toolchain
61
    1.3  GNU Make
62
    1.4  CMake
63
  2  Recommended Software
64
  3  Compiling the source code
65
    3.1  target software
66
    3.2  host software
67

    
68
================================================================================
69

    
70

    
71

    
72
1 - REQUIRED SOFTWARE
73
---------------------
74

    
75
The only third party software required are stm32flash and GCC for ARM embedded
76
devices. While the latter is a compiler to build binaries that are compatible
77
with the microcontrollers (MCUs) of AMiRo, the former is used to write this data
78
to the hardware.
79

    
80

    
81
1.1 - stm32flash
82
----------------
83

    
84
This tool is required to flash the bootloader binaries to the microcontrollers.
85
Since it is included in this project as a submodule, you can just run the setup
86
script in the root directory:
87
  >$ ./setup.sh
88
Follow the instructions to download the source code and compile the tool. The
89
resulting binary path is ./Host/stm32flash/stm32flash.
90

    
91
The setup script does not install the tool to your system path, though, since
92
this usually requires root permissions. However, stm32flash provides a Makefile
93
with installation capabilities. Just Follow the instructions given in the file
94
./Host/stm32flash/INSTALL.
95

    
96

    
97
1.2 - GCC ARM Embedded Toolchain
98
--------------------------------
99

    
100
Various versions of the GCC for ARM embedded devices can be found at
101
<https://launchpad.net/gcc-arm-embedded>. For installation of the compiler
102
toolchain, please follow the instructions that can be found on the web page.
103
If you have access to the AMiRo-OS project as well, it is highly recommended
104
to use the setup application provided there.
105

    
106

    
107
1.3 - GNU Make
108
--------------
109

    
110
GNU Make usually comes as preinstalled tool on Ubuntu based operating systems.
111
If your system is missing GNU Make, it is recommended to install it from the
112
standard repositories since no special requirements (e.g. features of a very
113
recent version) are required.
114

    
115

    
116
1.4 - CMake
117
-----------
118

    
119
In order to build the SerialBoot host application, CMake version 2.8 or later is
120
required. If possible, it is recommended to instal it from the standard
121
repositories of your operating system.
122

    
123

    
124

    
125
2 - RECOMMENDED SOFTWARE
126
------------------------
127

    
128
AMiRo-BLT provides support for the QtCreator IDE. In order to setup according
129
projects, use the ./setup.sh script and follow the instructions. It will
130
automatically generate the required files and you can import the projects by
131
opening the .creator files with Qtcreator IDE.
132

    
133

    
134

    
135
3 - COMPILING THE SOURCE CODE
136
-----------------------------
137

    
138
The AMiRo-BLT project is separated into two major parts: target- and host-
139
related software. The former comprises the bootloaders for the three base
140
modules of the AMiRo. The latter is the SerialBoot tool, which can be used to
141
flash further binaries (e.g. a complex operating system) to the microcontrollers
142
without connecting to the module directly (data is passed through via CAN bus).
143
Since the programming connector of the lowermost AMiRo module is the only one
144
accessible when the robot is fully set up, this enables to update the firmware
145
even for other modules.
146

    
147

    
148
3.1 - target software
149
---------------------
150

    
151
In the ./Target/Demo/ directory there are three subfolders, one for each AMiRo
152
base module. Within each of these is an additional Boot/ folder
153
(./Target/Demo/<device>/Boot/), which contains a makefile. Each bootloader can
154
be compiled by executing 'make' in these directories.
155

    
156
In order to flash the bootloader to a microcontroller, you first have to set
157
full read and write permissions to the USB ports of your system. You can do so
158
by executing the following command:
159
  >$ sudo echo 'KERNEL=="ttyUSB[0-9]*",NAME="tts/USB%n",SYMLINK+="%k",MODE="0666"' > /etc/udev/rules.d/50-ttyusb.rules
160
Now connect the module you want to flash directly to your system (note that
161
indirect flashing is not possible for the bootloader itself) and run the command
162
  >$ make flash
163
If the procedure was not successful, the following hints might help:
164
  - Could the makefile execute the stm32flash tool?
165
  - Are the permissions for USB ports set correctly?
166
  - Are there any other applications using the serial connection?
167
  - Is the AMiRo module connected to your system?
168
  - Is the AMiRo module powered up?
169

    
170
ATTENTION:
171
Never flash a bootloader to the wrong module! Doing so might cause severe errors
172
and damage the robot.
173

    
174

    
175
3.2 - host software
176
-------------------
177

    
178
The SerialBoot tool can be built by using cmake. The according CMakeLists.txt
179
file can be found in the ./Host/Source/SerialBoot/ directory. To ensure
180
compatibility with other software (e.g. AMiRo-OS) it is higly recommended to use
181
the provided ./setup.sh script to build SerialBoot. In the end the binary path
182
should be ./Host/Sotware/SerialBoot/build/SerialBoot.
183

    
184
================================================================================