Statistics
| Branch: | Tag: | Revision:

amiro-blt / README.txt @ 4cce70a8

History | View | Annotate | Download (7.519 KB)

1 4cce70a8 Thomas Schöpping
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 69661903 Thomas Schöpping
5 4cce70a8 Thomas Schöpping
Copyright (C) 2016..2017  Thomas Schöpping et al.
6 69661903 Thomas Schöpping
(a complete list of all authors is given below)
7
8 4cce70a8 Thomas Schöpping
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 69661903 Thomas Schöpping
21 da350eab Thomas Schöpping
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 69661903 Thomas Schöpping
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 4cce70a8 Thomas Schöpping
 [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 69661903 Thomas Schöpping
 
38
39
40 4cce70a8 Thomas Schöpping
################################################################################
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 69661903 Thomas Schöpping
52 4cce70a8 Thomas Schöpping
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 69661903 Thomas Schöpping
56 4cce70a8 Thomas Schöpping
================================================================================
57 69661903 Thomas Schöpping
58
CONTENTS:
59
60 4cce70a8 Thomas Schöpping
  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 69661903 Thomas Schöpping
74
1 - REQUIRED SOFTWARE
75
---------------------
76
77 4cce70a8 Thomas Schöpping
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 69661903 Thomas Schöpping
84
1.1 - stm32flash
85 4cce70a8 Thomas Schöpping
----------------
86 69661903 Thomas Schöpping
87 4cce70a8 Thomas Schöpping
To build the tool from source, clone the GIT repository to a local folder on
88
your machine:
89 69661903 Thomas Schöpping
  >$ git clone git://git.code.sf.net/p/stm32flash/code
90 4cce70a8 Thomas Schöpping
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 69661903 Thomas Schöpping
97 4cce70a8 Thomas Schöpping
98
1.2 - GCC ARM Embedded Toolchain
99
--------------------------------
100 69661903 Thomas Schöpping
101
Various versions of the GCC for ARM embedded devices can be found at
102 4cce70a8 Thomas Schöpping
<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 69661903 Thomas Schöpping
120 4cce70a8 Thomas Schöpping
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 69661903 Thomas Schöpping
-----------------------------
138
139 4cce70a8 Thomas Schöpping
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 69661903 Thomas Schöpping
  >$ sudo echo 'KERNEL=="ttyUSB[0-9]*",NAME="tts/USB%n",SYMLINK+="%k",MODE="0666"' > /etc/udev/rules.d/50-ttyusb.rules
161 4cce70a8 Thomas Schöpping
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 69661903 Thomas Schöpping
  >$ make flash
164
If the procedure was not successful, the following hints might help:
165 4cce70a8 Thomas Schöpping
  - 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 69661903 Thomas Schöpping
175
176 4cce70a8 Thomas Schöpping
3.2 - host software
177
-------------------
178 69661903 Thomas Schöpping
179 4cce70a8 Thomas Schöpping
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 69661903 Thomas Schöpping
185 4cce70a8 Thomas Schöpping
================================================================================