Statistics
| Branch: | Tag: | Revision:

amiro-blt / README.txt @ da350eab

History | View | Annotate | Download (5.494 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
This research/work was supported by the Cluster of Excellence
12
Cognitive Interaction Technology 'CITEC' (EXC 277) at Bielefeld
13
University, which is funded by the German Research Foundation (DFG).
14

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

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

    
30

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

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

    
47
=====================================================================
48

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

    
57
=====================================================================
58

    
59
1 - REQUIRED SOFTWARE
60
---------------------
61

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

    
65
1.1 - stm32flash
66

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

    
79
1.2 - gcc-arm-none-eabi
80

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

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

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

    
99
2.1 - target software
100

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

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

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

    
124
2.2 - host software
125

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

    
133
=====================================================================
134