Statistics
| Branch: | Tag: | Revision:

amiro-blt / README.txt @ 8446a3a1

History | View | Annotate | Download (7.411 KB)

1 4cce70a8 Thomas Schöpping
AMiRo-BLT is the bootloader and flashing toolchain for the base version of the
2 9c219069 Thomas Schöpping
Autonomous Mini Robot (AMiRo) [1]. It is based on OpenBLT developed by Feaser
3 4cce70a8 Thomas Schöpping
(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 9c219069 Thomas Schöpping
 [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 69661903 Thomas Schöpping
37
38 4cce70a8 Thomas Schöpping
################################################################################
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 69661903 Thomas Schöpping
50 4cce70a8 Thomas Schöpping
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 69661903 Thomas Schöpping
54 4cce70a8 Thomas Schöpping
================================================================================
55 69661903 Thomas Schöpping
56
CONTENTS:
57
58 4cce70a8 Thomas Schöpping
  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 69661903 Thomas Schöpping
72
1 - REQUIRED SOFTWARE
73
---------------------
74
75 4cce70a8 Thomas Schöpping
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 69661903 Thomas Schöpping
1.1 - stm32flash
82 4cce70a8 Thomas Schöpping
----------------
83 69661903 Thomas Schöpping
84 6feb961b Thomas Schöpping
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 8446a3a1 Thomas Schöpping
resulting binary path is ./Host/Source/stm32flash/stm32flash.
90 6feb961b Thomas Schöpping
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 8446a3a1 Thomas Schöpping
./Host/Source/stm32flash/INSTALL.
95 69661903 Thomas Schöpping
96 4cce70a8 Thomas Schöpping
97
1.2 - GCC ARM Embedded Toolchain
98
--------------------------------
99 69661903 Thomas Schöpping
100
Various versions of the GCC for ARM embedded devices can be found at
101 4cce70a8 Thomas Schöpping
<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 69661903 Thomas Schöpping
119 4cce70a8 Thomas Schöpping
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 69661903 Thomas Schöpping
-----------------------------
137
138 4cce70a8 Thomas Schöpping
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 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
160 4cce70a8 Thomas Schöpping
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 69661903 Thomas Schöpping
  >$ make flash
163
If the procedure was not successful, the following hints might help:
164 4cce70a8 Thomas Schöpping
  - 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 69661903 Thomas Schöpping
174
175 4cce70a8 Thomas Schöpping
3.2 - host software
176
-------------------
177 69661903 Thomas Schöpping
178 4cce70a8 Thomas Schöpping
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 69661903 Thomas Schöpping
184 4cce70a8 Thomas Schöpping
================================================================================