Statistics
| Branch: | Tag: | Revision:

amiro-blt / README.txt @ 69661903

History | View | Annotate | Download (5.552 KB)

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

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

    
8
For details about the license of this software, please refer to the
9
provided file (./Doc/license.html).
10

    
11
The development of this software was supported by the Excellence
12
Cluster EXC 227 Cognitive Interaction Technology. The Excellence
13
Cluster EXC 227 is a grant of the Deutsche Forschungsgemeinschaft
14
(DFG) in the context of the German Excellence Initiative.
15

    
16
Authors:
17
 - Thomas Schöpping        <tschoepp[at]cit-ec.uni-bielefeld.de>
18
 - Stefan Herbechtsmeier   <sherbrec[at]cit-ec.uni-bielefeld.de>
19
 - Marvin Barther
20

    
21
References:
22
 [1] Herbrechtsmeier S., Rückert U., & Sitte J. (2012). "AMiRo -
23
     Autonomous Mini Robot for Research and Education". In Advances in
24
     Autonomous Mini Robots (pp. 101-112). Springer Berlin Heidelberg.
25
 [2] Schöpping T., Korthals T., Herbrechtsmeier S., & Rückert U.
26
     (2015). "AMiRo: A Mini Robot for Scientific Applications" In
27
     Advances in Computational Intelligence (pp. 199-205). Springer
28
     International Publishing.
29
 
30

    
31

    
32
#####################################################################
33
#                                                                   #
34
#     RRRRRRRR  EEEEEEEE    AAA    DDDDDDDD  MM     MM EEEEEEEE     #
35
#     RR     RR EE         AA AA   DD     DD MMM   MMM EE           #
36
#     RR     RR EE        AA   AA  DD     DD MMMM MMMM EE           #
37
#     RRRRRRRR  EEEEEE   AA     AA DD     DD MM MMM MM EEEEEE       #
38
#     RR   RR   EE       AAAAAAAAA DD     DD MM     MM EE           #
39
#     RR    RR  EE       AA     AA DD     DD MM     MM EE           #
40
#     RR     RR EEEEEEEE AA     AA DDDDDDDD  MM     MM EEEEEEEE     #
41
#                                                                   #
42
#####################################################################
43

    
44
This file will help you to setup all required software on your system,
45
compile the source code, and use the tools and flash the bootloader
46
software to the AMiRo modules.
47

    
48
=====================================================================
49

    
50
CONTENTS:
51
 1  Required software
52
   1.1  stm32flash
53
   1.2  gcc-arm-none-eabi
54
 2  Compiling the source code
55
   1.1  target software
56
   1.2  host software
57

    
58
=====================================================================
59

    
60
1 - REQUIRED SOFTWARE
61
---------------------
62

    
63
The only third party software required are stm32flash and GCC for ARM
64
embedded devices.
65

    
66
1.1 - stm32flash
67

    
68
To build the tool from source, clone the GIT repository to a local
69
folder on your machine:
70
  >$ git clone git://git.code.sf.net/p/stm32flash/code
71
Please make sure that you have version 0.4 or later of the tool. It is
72
recommend to checkout the following commit:
73
  >$ git checkout fb52b4d80613b19b28ab82ba9fa415378d00fb9a
74
You can now build the tool by executing 'make'.
75
Finally, you must make the resulting binary (stm32flash) globally
76
available on your system. You can do so by either copying the file to
77
an appropriate location (e.g. /usr/local/bin/) or creating an
78
according link.
79

    
80
1.2 - gcc-arm-none-eabi
81

    
82
Various versions of the GCC for ARM embedded devices can be found at
83
<https://launchpad.net/gcc-arm-embedded>. It is highly recommended to
84
use the version 4.8 with update 2014-q1 since some others will cause
85
issues. For installation of the compiler toolchain, please follow the
86
instructions that can be found on the web page.
87

    
88
2 - COMPILING THE SOURCE CODE
89
-----------------------------
90

    
91
The AMiRo-BLT project is separated into two major parts: target and
92
host related software. The former comprises the bootloaders for the
93
three base modules of the AMiRo. The latter is the SerialBoot tool,
94
which can be used to flash further binaries (e.g. a complex operating
95
system) to the microcontrollers without the need to connect to the
96
module directly. Since the programming connector of the lowermost
97
AMiRo module is the only one accessible when the robot is fully set
98
up, this enables to update the firmware even for other modules.
99

    
100
2.1 - target software
101

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

    
108
In order to flash the bootloader to the microcontroller, you first
109
have to set full read and write permissions to the USB ports of your
110
system. You can do so by executing the following command:
111
  >$ sudo echo 'KERNEL=="ttyUSB[0-9]*",NAME="tts/USB%n",SYMLINK+="%k",MODE="0666"' > /etc/udev/rules.d/50-ttyusb.rules
112
Now connect the module you want to flash directly to your system (note
113
that indirect flashing is not possible for the bootloader itself) and
114
run the command
115
  >$ make flash
116
If the procedure was not successful, the following hints might help:
117
  1) Could the makefile execute the stm32flash tool?
118
  2) Are the permissions for USB ports set correctly?
119
  3) Is the AMiRo module connected to your system?
120

    
121
WARNING:
122
never flash a bootloader to another module! Doing so might cause
123
severe errors and damage the robot.
124

    
125
2.2 - host software
126

    
127
The SerialBoot tool can be built by using cmake. The according
128
CMakeLists.txt file can be found in the ./Host/Source/SerialBoot/
129
directory. You can just run the command
130
  >$ cmake . && make
131
to generate the binary, though it is recommended to built the tool
132
out-of-source.
133

    
134
=====================================================================
135