Statistics
| Branch: | Tag: | Revision:

amiro-blt / README.txt @ 4cce70a8

History | View | Annotate | Download (7.519 KB)

1
AMiRo-BLT is the bootloader and flashing toolchain for the base version of the
2
Autonomous Mini Robot (AMiRo) [1,2]. 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] Herbrechtsmeier S., Rückert U., & Sitte J. (2012). "AMiRo - Autonomous Mini
32
     Robot for Research and Education". In Advances in Autonomous Mini Robots
33
     (pp. 101-112). Springer Berlin Heidelberg.
34
 [2] Schöpping T., Korthals T., Herbrechtsmeier S., & Rückert U. (2015). "AMiRo:
35
     A Mini Robot for Scientific Applications" In Advances in Computational
36
     Intelligence (pp. 199-205). Springer International Publishing.
37
 
38

    
39

    
40
################################################################################
41
#                                                                              #
42
#        RRRRRRRR   EEEEEEEE     AAA     DDDDDDDD   MM     MM  EEEEEEEE        #
43
#        RR     RR  EE          AA AA    DD     DD  MMM   MMM  EE              #
44
#        RR     RR  EE         AA   AA   DD     DD  MMMM MMMM  EE              #
45
#        RRRRRRRR   EEEEEE    AA     AA  DD     DD  MM MMM MM  EEEEEE          #
46
#        RR   RR    EE        AAAAAAAAA  DD     DD  MM     MM  EE              #
47
#        RR    RR   EE        AA     AA  DD     DD  MM     MM  EE              #
48
#        RR     RR  EEEEEEEE  AA     AA  DDDDDDDD   MM     MM  EEEEEEEE        #
49
#                                                                              #
50
################################################################################
51

    
52
This file will help you to setup all required software on your system, compile
53
the source code, and use the tools and flash the bootloader software to the
54
AMiRo base modules.
55

    
56
================================================================================
57

    
58
CONTENTS:
59

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

    
70
================================================================================
71

    
72

    
73

    
74
1 - REQUIRED SOFTWARE
75
---------------------
76

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

    
82

    
83

    
84
1.1 - stm32flash
85
----------------
86

    
87
To build the tool from source, clone the GIT repository to a local folder on
88
your machine:
89
  >$ git clone git://git.code.sf.net/p/stm32flash/code
90
Make sure that you have selected version 0.4 or later of the tool. You can now
91
build the tool simply by executing 'make'. Finally, you must make the resulting
92
binary (stm32flash) globally available in your environment. You can do so by
93
either copying the file to an appropriate location (e.g. /usr/local/bin/) or
94
creating an according link. The tool must be available as 'stm32flash' in every
95
new shell.
96

    
97

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

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

    
107

    
108
1.3 - GNU Make
109
--------------
110

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

    
116

    
117
1.4 - CMake
118
-----------
119

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

    
124

    
125

    
126
2 - RECOMMENDED SOFTWARE
127
------------------------
128

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

    
134

    
135

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

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

    
148

    
149
3.1 - target software
150
---------------------
151

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

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

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

    
175

    
176
3.2 - host software
177
-------------------
178

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

    
185
================================================================================
186