Statistics
| Branch: | Tag: | Revision:

amiro-blt / README.txt @ 9c219069

History | View | Annotate | Download (7.346 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

    
82
1.1 - stm32flash
83
----------------
84

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

    
95

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

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

    
105

    
106
1.3 - GNU Make
107
--------------
108

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

    
114

    
115
1.4 - CMake
116
-----------
117

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

    
122

    
123

    
124
2 - RECOMMENDED SOFTWARE
125
------------------------
126

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

    
132

    
133

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

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

    
146

    
147
3.1 - target software
148
---------------------
149

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

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

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

    
173

    
174
3.2 - host software
175
-------------------
176

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

    
183
================================================================================