Revision d796dcdf
README.txt | ||
---|---|---|
69 | 69 |
4.1 Adding a New Module |
70 | 70 |
4.2 Handling a Custom I/O Event in the Main Thread |
71 | 71 |
4.3 Implementing a New Low-Level Driver |
72 |
4.4 Writing a Unit Test
|
|
72 |
4.4 Writing a Test |
|
73 | 73 |
|
74 | 74 |
================================================================================ |
75 | 75 |
|
... | ... | |
101 | 101 |
directory. Note that you will have to adapt the makefiles and scripts, and |
102 | 102 |
probably the operating system as well. |
103 | 103 |
AMiRo-BLT furthermore has its own required and recommended software tools as |
104 |
described in its README.txt file. Follow th instructions to initialize the |
|
104 |
described in its README.txt file. Follow the instructions to initialize the
|
|
105 | 105 |
development environment manually or use the ./setup.sh script. |
106 | 106 |
|
107 | 107 |
|
... | ... | |
112 | 112 |
copy of it as well. For the sake of compatibility, it is included in AMiRo-OS as |
113 | 113 |
a Git submodule. It is highly recommended to use the ./setup.sh script for |
114 | 114 |
initialization. Moreover, you have to apply the patches to ChibiOS in order to |
115 |
make AMiRo-OS work properly. It is recommended to use the .setup.sh script for |
|
115 |
make AMiRo-OS work properly. It is recommended to use the ./setup.sh script for
|
|
116 | 116 |
this purpose. |
117 | 117 |
If you would like to use a different kernel, you can add a subfolder in the |
118 | 118 |
./kernel/ directory and adapt the scripts and operating system source code. |
... | ... | |
164 | 164 |
AMiRo-BLT, you can replace the port value by '/dev/ttyUSB0'. |
165 | 165 |
Advanced users can use several connections to multiple modules simultaneously. |
166 | 166 |
Each additional programmer will be available as '/dev/ttyAMiRo<N>' (and |
167 |
'/dev/USB<N>' respectively) with <N> being an integer number starting from zero. |
|
168 |
Please note: Those interfaces are ordered by the time when they have been |
|
169 |
detected by the operating system. |
|
167 |
'/dev/ttyUSB<N>' respectively) with <N> being an integer number starting from |
|
168 |
zero. Please note: Those interfaces are ordered by the time when they have been |
|
169 |
detected by the operating system, so detaching a cable and plugging it in again |
|
170 |
may result in a different port name. |
|
170 | 171 |
|
171 | 172 |
|
172 | 173 |
2.2 - QtCreator IDE |
173 | 174 |
------------------- |
174 | 175 |
|
175 |
In order to setup QtCreator projects for the three AMiRo base modules, you can
|
|
176 |
use the provided ./setup.sh script. Further instructions for a more advanced
|
|
176 |
In order to setup QtCreator projects any supported module, you can use the
|
|
177 |
provided ./setup.sh script. Further instructions for a more advanced |
|
177 | 178 |
configuration of the IDE are provided in the ./tools/qtcreator/README.txt file. |
178 | 179 |
|
179 | 180 |
|
... | ... | |
193 | 194 |
Each time you modify any part of AMiRo-OS, you need to recompile the whole |
194 | 195 |
project for the according AMiRo module. Therefore you can use the ./Makefile by |
195 | 196 |
simply executing 'make' and follow the instructions. Alternatively, you can |
196 |
either use the makefiles provided per module in ./os/modules/<ModuleToCompile>
|
|
197 |
either use the makefiles provided per module in ./os/modules/<module_to_compile>
|
|
197 | 198 |
or - if you want to compile all modules at once - the makefile in the |
198 | 199 |
./os/modules folder. After the build process has finished successfully, you |
199 |
always have to flash the generated program to the robot. Therefore you need an
|
|
200 |
always have to flash the generated program to the module. Therefore you need an
|
|
200 | 201 |
appropriate tool, such as stm32flash (if you don't use a bootloader) or |
201 | 202 |
SerialBoot (highly recommended; provided by AMiRo-BLT). Similarly to the |
202 | 203 |
compilation procedure as described above, you can flash either each module |
... | ... | |
229 | 230 |
should be as unambiguous as possible (e.g. containing name and version number). |
230 | 231 |
All files, which directly depent on the hardware, and thus are not portable, |
231 | 232 |
belong here. Conversely, any code that can be reused on diferent hardware must |
232 |
not be put in the module folder.
|
|
233 |
not be put in this module folder.
|
|
233 | 234 |
|
234 | 235 |
In a second step you have to initialize all requried files (see below) in the |
235 |
newlly created module directory. It is recommended to use another module as
|
|
236 |
newly created module directory. It is recommended to use another module as |
|
236 | 237 |
template for your configuration: |
237 | 238 |
- alldconf.h |
238 | 239 |
Configuration header for the AMiRo-LLD project, which is part of AMiRo-OS. |
240 |
There are probably only very few configurations done here, since most setting |
|
241 |
depend on the content of aosconf.h and are handled modue unspecifically in in |
|
242 |
modules/aos_alldconf.h |
|
239 | 243 |
- aosconf.h |
240 | 244 |
Configuration header for the AMiRo-OS project. |
241 | 245 |
- board.h & board.c |
... | ... | |
243 | 247 |
well as initialization functions. |
244 | 248 |
- chconf.h |
245 | 249 |
Configuration header for the ChibiOS/RT system kernel. There are probably only |
246 |
very few configurations one here, since most settings depend on the content of
|
|
247 |
aosconf.h and are handled module unspecific in modules/aos_chconf.h
|
|
250 |
very few configurations done here, since most settings depend on the content
|
|
251 |
of aosconf.h and are handled module unspecifically in modules/aos_chconf.h
|
|
248 | 252 |
- halconf.h |
249 | 253 |
Configuration header for ChibiOS/HAL (hardware abstraction layer). |
250 | 254 |
- Makefile |
251 | 255 |
The GNU make script to build and flash AMiRo-OS for the module. |
252 | 256 |
- mcuconf.h |
253 |
Configuration file for ChibiOS/JAL to initialize the microcontroller (MCU). It
|
|
257 |
Configuration file for ChibiOS/HAL to initialize the microcontroller (MCU). It
|
|
254 | 258 |
is recommended to check the kernel/ChibiOS/demos/ directory for an example |
255 | 259 |
using the according MCU and copy the mcuconf.h from there. Depending on your |
256 | 260 |
hardware you may have to modify it nevertheless, though. |
... | ... | |
271 | 275 |
settings are used in other modules. |
272 | 276 |
|
273 | 277 |
Finally, you need to build and flash the project. The compiler might even help |
274 |
you getting everything set up correctly. Take time to understand compilation
|
|
275 |
errors and warning and get rid of all of those (warnings should not be ignored
|
|
276 |
since they are hints that something might be amiss and the program will not act
|
|
277 |
as intended). |
|
278 |
you getting everything set up correctly. Take the time needed to understand
|
|
279 |
compilation errors and warnings and get rid of all of those (warnings should not
|
|
280 |
be ignored since they are hints that something might be amiss and the program
|
|
281 |
will not act as intended).
|
|
278 | 282 |
|
279 | 283 |
Summing up, you have to |
280 | 284 |
1) create a module directory. |
... | ... | |
288 | 292 |
|
289 | 293 |
In order to handle custom I/O events in the main thread, AMiRo-OS offers several |
290 | 294 |
hooks to be used. First of all, you need to configure and enable the interrupt |
291 |
in the according GPIO. This can be done by implementing the
|
|
295 |
for the according GPIO. This can be done by implementing the
|
|
292 | 296 |
MODULE_INIT_INTERRUPTS() hook in the module.h file. For information how to use |
293 | 297 |
this hook, please have a look at existing modules. In the end, the interrupt |
294 | 298 |
callback functions has to emit an I/O event with the according bit in the flags |
295 |
mask set (like the _intCallback() function in aos_system.c). As result, whenever
|
|
296 |
a rising or falling edge (depends on configuration) is detected on that GPIO,
|
|
297 |
the interrupt service routine is executed and hence an I/O event is fired, which
|
|
298 |
can be catched by any thread in the system. |
|
299 |
mask set (like the _gpioCallback() function in aos_system.c). As result,
|
|
300 |
whenever a rising or falling edge (depends on configuration) is detected on that
|
|
301 |
particular GPIO, the interrupt service routine is executed and hence an I/O
|
|
302 |
event is fired, which can be catched by any thread in the system.
|
|
299 | 303 |
|
300 | 304 |
Next, you have to configure the main thread to whitelist the event flag (all I/O |
301 | 305 |
events are blacklisted by default). While system relevant events like power down |
302 |
are whitelisted by the OS, any custom events need to be added exl´plicitely. |
|
303 |
This is done via the optional AMIROOS_CFG_MAIN_LOOP_GPIOEVENT_FLAGSMASK macro, |
|
304 |
which should be defined in the module.h file. Example: |
|
306 |
are imlicitely whitelisted by the OS, any custom events need to be added |
|
307 |
exlplicitely. This is done via the optional |
|
308 |
AMIROOS_CFG_MAIN_LOOP_GPIOEVENT_FLAGSMASK macro, which should be defined in the |
|
309 |
module.h file. Example: |
|
305 | 310 |
|
306 | 311 |
#define AMIROOS_CFG_MAIN_LOOP_GPIOEVENT_FLAGSMASK \ |
307 | 312 |
(AOS_GPIOEVENT_FLAG(padX) | AOS_GPIOEVENT_FLAG(padY) | AOS_GPIOEVENT_FLAG(padZ)) |
... | ... | |
309 | 314 |
When AMIROOS_CFG_MAIN_LOOP_GPIOEVENT_FLAGSMASK has been defined correctly, the |
310 | 315 |
main thread will be notified by the according events and execute its event |
311 | 316 |
handling routine. Hence you have to implement another macro in module.h to |
312 |
handle the custom event(s) appropriately: MODULE_MAIN_LOOP_GPIOEVENT(eventflags). |
|
313 |
As you can see, the variable 'eventflags' is propagated to the hook. This |
|
314 |
variable is a mask, that allows to identify the GPIO pad(s), which caused the |
|
315 |
event, by the bits set. Following the example above, you can check which GPIOs |
|
316 |
have caused events by using if-clauses in the implementation of the hook: |
|
317 |
handle the custom event(s) appropriately: |
|
318 |
MODULE_MAIN_LOOP_GPIOEVENT(eventflags). As you can see, the variable |
|
319 |
'eventflags' is propagated to the hook. This variable is a mask, that allows to |
|
320 |
identify the GPIO pad(s), which caused the event, by the individually set bits. |
|
321 |
Following the example above, you can check which GPIOs have caused events by |
|
322 |
using if-clauses in the implementation of the hook: |
|
317 | 323 |
|
318 | 324 |
#define MODULE_MAIN_LOOP_GPIOEVENT(eventflags) { \ |
319 | 325 |
if (eventflags & AOS_GPIOEVENT_FLAG(padX)) { \ |
... | ... | |
337 | 343 |
In the AMiRo-OS framework, low-level drivers are located in the additional Git |
338 | 344 |
project AMiRo-LLD, which is included in AMiRo-OS as Git submodule at |
339 | 345 |
periphery-lld/AMiRo-LLD/ and acts similar to a static library. When adding a new |
340 |
low-level driver to the framework, you have to implement it, providing a |
|
341 |
(single) header file in periphery-lld/AMiRo-LLD/include/ and the required C |
|
342 |
sources in periphery-lld/AMiRo-LLD/source/. By convention, all filenames use the |
|
343 |
prefix 'alld_' to avoid ambiguities. Furthermore, files should be named by the |
|
344 |
exact designation of the hardware (e.g. 'alld_vcnl4020' instead of |
|
345 |
'alld_proximitysensor'). Since AMiRo-LLD is intended to be usable with other |
|
346 |
operating systems than AMiRo-OS, it provides an interface for accessing |
|
347 |
communication interfaces and basic functionalities of the operating system. On |
|
348 |
the one hand, several types are defined in periphery-lld/AMiRo-LLD/periphALtypes.h. |
|
349 |
The interface functions, on the other hand, are defined by AMiRo-LLD (cf. |
|
350 |
periphery-lld/AMiRo-LLD/templates/periphAL.h), but implemented by the operating |
|
351 |
system (cf. periphery-lld/periphAL.h). For the implementation of the driver, you |
|
352 |
must only use those types and functions to interact with the operating system. |
|
353 |
If you need further functionality, which is not provided by the interface yet, |
|
354 |
you are encouraged to extend periphAL. |
|
355 |
|
|
356 |
Furthermore, all files must define a guard, so that the whole driver is |
|
357 |
disabled, when the guard is not set explicitely. These guard again are named |
|
358 |
following a convention, but instead of explaning it here, just have a look at |
|
359 |
one of the existing drivers and look for lines like |
|
360 |
|
|
361 |
#if defined(AMIROLLD_CFG_USE_VCNL4020) || defined(__DOXYGEN__) |
|
362 |
|
|
363 |
With these guards in place, the driver will be omitted by default and needs to |
|
364 |
be enabled explicitely. In order to do so, you need to add an according #define |
|
365 |
in the alldconf.h file of any module, which shall use the new driver. |
|
366 |
|
|
367 |
Now the new driver is available and enabled, but not actually used yet. |
|
368 |
Therefore you have to add according memory structures to the module.h and |
|
346 |
low-level driver to the framework, you have to implement it, following the |
|
347 |
instructions given in periphery-lld/AMiRo-LLD/README.txt |
|
348 |
|
|
349 |
Now the new driver is available and can be enbled by simply including the |
|
350 |
driver's makefile script in the module makefile. In order to make actuale use of |
|
351 |
the driver you have to add according memory structures to the module.h and |
|
369 | 352 |
module.c files - just have a look at existing modules how this is done. In some |
370 | 353 |
cases you will have to configure additional interrupts and/or alter the |
371 | 354 |
configuration of a communication interface (e.g. I²C). Once again, you should |
372 | 355 |
take a look at existing modules and search the module.h for the hooks |
373 |
MODULE_INIT_INTERRUPTS() and MODULE_INIT_PERIPHERY_COMM(). |
|
356 |
MODULE_INIT_INTERRUPTS(), MODULE_INIT_PERIPHERY_IF and |
|
357 |
MODULE_SHUTDOWN_PERIPHERY_IF(). |
|
374 | 358 |
|
375 |
Finally, you will probably want to validate your implementation via a unit test.
|
|
376 |
How this can be done is explained in detail in the next guide.
|
|
359 |
Finally, you will probably want to validate your implementation via a test. How
|
|
360 |
this can be done is explained in detail in the next guide. |
|
377 | 361 |
|
378 | 362 |
Summing up, you have to |
379 | 363 |
1) implement the driver in AMiRo-LLD using periphAL only. |
380 |
2) fence all code in all files by a guard. |
|
381 |
3) set the guard in alldconf.h to enable the driver. |
|
382 |
4) add the driver to a module. |
|
364 |
4) add the driver to a module (Makefile, module.h and module.c). |
|
383 | 365 |
5) configure interrupts and interfaces as required. |
384 |
6) write a unit test.
|
|
366 |
6) write a test. |
|
385 | 367 |
|
386 | 368 |
|
387 |
4.4 Writing a Unit Test
|
|
369 |
4.4 Writing a Test |
|
388 | 370 |
------------------------ |
389 | 371 |
|
390 |
AMiRo-OS provides a unit test framework for conventient testing and the ability |
|
391 |
to opt-out all unit tests via the aosconf.h configuration file. There is also a |
|
392 |
dedicated folder, where all unit test code belongs to. In case you want to |
|
393 |
implement a unit test for a newly developed low-level driver, you should use the |
|
394 |
folders unittests/periphery-lld/inc and unittests/periphery-lld/src |
|
395 |
respectively. As with the low-level drivers, unit test files should use a prefix |
|
396 |
in their name, namely 'ut_' and all code should be fenced via guards that |
|
397 |
disable it by default (have a look at existing unit tests). Before you implement |
|
398 |
a vast test, however, it is highly recommended to start with some sceleton code |
|
399 |
(just copy an existing unit test, scoop out the test function, and rename |
|
400 |
according variables etc.) and make it compile and run. |
|
401 |
|
|
402 |
After you have initialized the unit test sceleton, you have to add the according |
|
403 |
aos_unittest_t (cf. core/inc/aos_unittest.h) object to the module.h and module.c |
|
404 |
files. These objects again require an shell command, so the unit test can be run |
|
405 |
via the AMiRo-OS shell. As with existing unit tests, this shell command callback |
|
406 |
function as well as any further required data should be implemented directly in |
|
407 |
module.c, so it not accessable from any other context. In most cases this |
|
408 |
callback function is trivial, anyway. |
|
409 |
|
|
410 |
In order to make the shell command, which executes the unit test, available in |
|
411 |
shell so a user can run it, it has to be associated with the shell. AMiRo-OS |
|
412 |
provides the hook MODULE_INIT_TESTS() for this purpose, which has to be |
|
413 |
implemented in the module.h file. Once again I recommend to have a look at an |
|
414 |
existing module, how to use this hook. |
|
415 |
|
|
416 |
Since the execution pipeline is set up now, you can fille your unit test with |
|
417 |
life. Remember that the test is executed by the shell thread, so you can access |
|
418 |
any functionality of the system, but might encounter race conditions, depending |
|
419 |
on what other applications run concurrently. |
|
372 |
AMiRo-OS provides a test framework for conventient testing and the ability to |
|
373 |
opt-out all tests via the aosconf.h configuration file. There is also a |
|
374 |
dedicated folder, where all test code belongs to. In case you want to implement |
|
375 |
a test for a newly developed low-level driver, you should have a look at the |
|
376 |
folder test/periphery-lld/. As with the low-level drivers, tests are placed in |
|
377 |
individual subfolders (e.g. test/periphery-lld/DEVICE1234_v1) and all should use |
|
378 |
the prefix 'aos_test_' in their name. Moreover, all code must be fenced by |
|
379 |
guards that disable it completely if the AMIROOS_CFG_TESTS_ENABLE flag is set to |
|
380 |
false in the aosconf.h configuration file. |
|
381 |
|
|
382 |
Now you will need to add the test to a specific module. Therefore, you should |
|
383 |
create a new test/ directory in the module folder, if such does not exist yet. |
|
384 |
In this directory, you create another subfolder, e.g. DEVICE1234/ and three |
|
385 |
additional files in there: |
|
386 |
- module_test_DEVICE1234.mk |
|
387 |
- module_test_DEVICE1234.h |
|
388 |
- module_test_DEVICE1234.c |
|
389 |
The makefile script is not required, but recommended to achieve maintainable |
|
390 |
code. This script file should add the folder to the MODULE_INC variable and all |
|
391 |
C source files to MODULE_CSRC. The .h and .c files furthermore define module |
|
392 |
specific data structures and a test function. |
|
393 |
|
|
394 |
In order to be able to call this function as a command via the AMiRo-OS shell, |
|
395 |
you need to add an according shell command to the module.h and module.c files. |
|
396 |
Whereas the command itself is typically very simple, just calling the callback |
|
397 |
function defined in the test/DEVICE1234/module_test_DEVICE1234.h/.c files, you |
|
398 |
have to add the command to a shell. In order to make the shell command, which |
|
399 |
executes the test, available in a shell so a user can run it, it has to be |
|
400 |
associated with the shell. AMiRo-OS provides the hook MODULE_INIT_TESTS() for |
|
401 |
this purpose, which has to be implemented in the module.h file. Once again I |
|
402 |
recommend to have a look at an existing module, how to use this hook. |
|
420 | 403 |
|
421 | 404 |
Summing up, you have to |
422 |
1) initialize a unit test sceleton in the unittests/ folder.
|
|
423 |
2) introduce an according object and configuration in module.h and module.c.
|
|
405 |
1) implement the test in the test/ folder.
|
|
406 |
2) implement a module specific wrapper in the module/test/ folder.
|
|
424 | 407 |
3) associate the shell command to a shell via the hook in module.h. |
425 |
4) implement the full unit test in the prevously created sceleton files. |
|
426 | 408 |
|
427 | 409 |
================================================================================ |
428 | 410 |
|
bootloader/AMiRo-BLT | ||
---|---|---|
1 |
Subproject commit 2b9a14a2588e910d0e7d6bc3f77975d9ea70a6c8 |
|
1 |
Subproject commit 9bfc7c44c293389adb8a33bb71f077efd10ee332 |
doc/AMiRo-OS.svg | ||
---|---|---|
1 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="790px" preserveAspectRatio="none" style="width:1547px;height:790px;" version="1.1" viewBox="0 0 1547 790" width="1547px" zoomAndPan="magnify"><defs><filter height="300%" id="f1kd6u080ub374" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><!--cluster AMiRoBLT_node--><polygon fill="#FFFFFF" filter="url(#f1kd6u080ub374)" points="14,324,24,314,293,314,293,768,283,778,14,778,14,324" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="283" x2="292" y1="324" y2="315"/><line style="stroke: #000000; stroke-width: 1.5;" x1="14" x2="283" y1="324" y2="324"/><line style="stroke: #000000; stroke-width: 1.5;" x1="283" x2="283" y1="324" y2="778"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="83" x="108" y="339.9951">AMiRo-BLT</text><!--cluster ChibiOS_node--><polygon fill="#FFFFFF" filter="url(#f1kd6u080ub374)" points="301,324,311,314,1100,314,1100,577,1090,587,301,587,301,324" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="1090" x2="1099" y1="324" y2="315"/><line style="stroke: #000000; stroke-width: 1.5;" x1="301" x2="1090" y1="324" y2="324"/><line style="stroke: #000000; stroke-width: 1.5;" x1="1090" x2="1090" y1="324" y2="587"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="61" x="666" y="339.9951">ChibiOS</text><!--cluster AMiRoLLD_node--><polygon fill="#FFFFFF" filter="url(#f1kd6u080ub374)" points="1108,324,1118,314,1525,314,1525,768,1515,778,1108,778,1108,324" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="1515" x2="1524" y1="324" y2="315"/><line style="stroke: #000000; stroke-width: 1.5;" x1="1108" x2="1515" y1="324" y2="324"/><line style="stroke: #000000; stroke-width: 1.5;" x1="1515" x2="1515" y1="324" y2="778"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="83" x="1271" y="339.9951">AMiRo-LLD</text><!--cluster AMiRoOS_node--><polygon fill="#FFFFFF" filter="url(#f1kd6u080ub374)" points="824,26,834,16,1035,16,1035,273,1025,283,824,283,824,26" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="1025" x2="1034" y1="26" y2="17"/><line style="stroke: #000000; stroke-width: 1.5;" x1="824" x2="1025" y1="26" y2="26"/><line style="stroke: #000000; stroke-width: 1.5;" x1="1025" x2="1025" y1="26" y2="283"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="76" x="887.5" y="41.9951">AMiRo-OS</text><!--entity OpenBLT--><rect fill="#D3D3D3" filter="url(#f1kd6u080ub374)" height="46.2969" style="stroke: #A80036; stroke-width: 1.5;" width="104" x="22" y="724"/><rect fill="#D3D3D3" height="10" style="stroke: #A80036; stroke-width: 1.5;" width="15" x="106" y="729"/><rect fill="#D3D3D3" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="104" y="731"/><rect fill="#D3D3D3" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="104" y="735"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="64" x="37" y="756.9951">OpenBLT</text><!--entity STM32Flash--><rect fill="#D3D3D3" filter="url(#f1kd6u080ub374)" height="46.2969" style="stroke: #A80036; stroke-width: 1.5;" width="124" x="161" y="724"/><rect fill="#D3D3D3" height="10" style="stroke: #A80036; stroke-width: 1.5;" width="15" x="265" y="729"/><rect fill="#D3D3D3" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="263" y="731"/><rect fill="#D3D3D3" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="263" y="735"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="84" x="176" y="756.9951">STM32Flash</text><!--entity amiroblt.h--><ellipse cx="228" cy="375" fill="#FEFECE" filter="url(#f1kd6u080ub374)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="194" y="404.9951">amiroblt.h</text><!--entity AMiRoBLT--><rect fill="#FEFECE" filter="url(#f1kd6u080ub374)" height="46.2969" style="stroke: #A80036; stroke-width: 1.5;" width="114" x="166" y="533"/><rect fill="#FEFECE" height="10" style="stroke: #A80036; stroke-width: 1.5;" width="15" x="260" y="538"/><rect fill="#FEFECE" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="258" y="540"/><rect fill="#FEFECE" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="258" y="544"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="74" x="181" y="565.9951">AMiRo-BLT</text><!--entity hal.h--><ellipse cx="738" cy="375" fill="#D3D3D3" filter="url(#f1kd6u080ub374)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="33" x="721.5" y="404.9951">hal.h</text><!--entity osal.h--><ellipse cx="828" cy="375" fill="#D3D3D3" filter="url(#f1kd6u080ub374)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="41" x="807.5" y="404.9951">osal.h</text><!--entity cmsis.h--><ellipse cx="343" cy="375" fill="#D3D3D3" filter="url(#f1kd6u080ub374)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="53" x="316.5" y="404.9951">cmsis.h</text><!--entity ch.h--><ellipse cx="439" cy="375" fill="#D3D3D3" filter="url(#f1kd6u080ub374)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="30" x="424" y="404.9951">ch.h</text><!--entity ch.hpp--><ellipse cx="644" cy="375" fill="#D3D3D3" filter="url(#f1kd6u080ub374)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="48" x="620" y="404.9951">ch.hpp</text><!--entity mcuconf.h--><ellipse cx="935" cy="375" fill="#D3D3D3" filter="url(#f1kd6u080ub374)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="73" x="898.5" y="404.9951">mcuconf.h</text><!--entity halconf.h--><ellipse cx="1053" cy="375" fill="#D3D3D3" filter="url(#f1kd6u080ub374)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="63" x="1021.5" y="404.9951">halconf.h</text><!--entity chconf.h--><ellipse cx="539" cy="375" fill="#D3D3D3" filter="url(#f1kd6u080ub374)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="60" x="509" y="404.9951">chconf.h</text><!--entity ChibiOS_HAL--><rect fill="#D3D3D3" filter="url(#f1kd6u080ub374)" height="46.2969" style="stroke: #A80036; stroke-width: 1.5;" width="125" x="818.5" y="533"/><rect fill="#D3D3D3" height="10" style="stroke: #A80036; stroke-width: 1.5;" width="15" x="923.5" y="538"/><rect fill="#D3D3D3" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="921.5" y="540"/><rect fill="#D3D3D3" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="921.5" y="544"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="85" x="833.5" y="565.9951">ChibiOS/HAL</text><!--entity ChibiOS_RT--><rect fill="#D3D3D3" filter="url(#f1kd6u080ub374)" height="46.2969" style="stroke: #A80036; stroke-width: 1.5;" width="118" x="532" y="533"/><rect fill="#D3D3D3" height="10" style="stroke: #A80036; stroke-width: 1.5;" width="15" x="630" y="538"/><rect fill="#D3D3D3" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="628" y="540"/><rect fill="#D3D3D3" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="628" y="544"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="78" x="547" y="565.9951">ChibiOS/RT</text><!--entity alldconf.h--><ellipse cx="1476" cy="556" fill="#FEFECE" filter="url(#f1kd6u080ub374)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="66" x="1443" y="585.9951">alldconf.h</text><!--entity periphAL.h--><ellipse cx="1171" cy="375" fill="#FEFECE" filter="url(#f1kd6u080ub374)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="73" x="1134.5" y="404.9951">periphAL.h</text><!--entity periphALtypes.h--><ellipse cx="1216" cy="556" fill="#FEFECE" filter="url(#f1kd6u080ub374)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="111" x="1160.5" y="585.9951">periphALtypes.h</text><!--entity alldh--><ellipse cx="1357" cy="556" fill="#FEFECE" filter="url(#f1kd6u080ub374)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="71" x="1321.5" y="585.9951">amiro-lld.h</text><!--entity AMiRoLLD--><rect fill="#FEFECE" filter="url(#f1kd6u080ub374)" height="46.2969" style="stroke: #A80036; stroke-width: 1.5;" width="113" x="1230.5" y="724"/><rect fill="#FEFECE" height="10" style="stroke: #A80036; stroke-width: 1.5;" width="15" x="1323.5" y="729"/><rect fill="#FEFECE" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="1321.5" y="731"/><rect fill="#FEFECE" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="1321.5" y="735"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="73" x="1245.5" y="756.9951">AMiRo-LLD</text><!--entity osconf.h--><ellipse cx="870" cy="77" fill="#FEFECE" filter="url(#f1kd6u080ub374)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="60" x="840" y="106.9951">osconf.h</text><!--entity amiroos.h--><ellipse cx="985" cy="77" fill="#FEFECE" filter="url(#f1kd6u080ub374)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="951" y="106.9951">amiroos.h</text><!--entity AMiRoOS--><rect fill="#FEFECE" filter="url(#f1kd6u080ub374)" height="46.2969" style="stroke: #A80036; stroke-width: 1.5;" width="108" x="881" y="229"/><rect fill="#FEFECE" height="10" style="stroke: #A80036; stroke-width: 1.5;" width="15" x="969" y="234"/><rect fill="#FEFECE" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="967" y="236"/><rect fill="#FEFECE" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="967" y="240"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="896" y="261.9951">AMiRo-OS</text><!--link AMiRoBLT to OpenBLT--><path d="M205.0271,579.0391 C180.0803,611.0178 134.6192,669.2935 104.3571,708.0858 " fill="none" id="AMiRoBLT-OpenBLT" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="109.8576,712.4156,92.0366,723.8792,98.8191,703.8044,109.8576,712.4156" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="31" x="154" y="659.0669">forks</text><!--link AMiRoBLT to STM32Flash--><path d="M223,579.0391 C223,614.0293 223,680.5023 223,718.4885 " fill="none" id="AMiRoBLT-STM32Flash" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="223,723.8792,227,714.8792,223,718.8792,219,714.8792,223,723.8792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="44" x="224" y="659.0669">utilizes</text><!--link amiroblt.h to AMiRoBLT--><path d="M227.7452,384.2247 C226.9909,411.5277 224.7532,492.5332 223.6416,532.7757 " fill="none" id="amiroblt.h-AMiRoBLT" style="stroke: #A80036; stroke-width: 1.0;"/><!--link mcuconf.h to ChibiOS_HAL--><path d="M929.2997,394.1064 C919.3187,427.5614 898.7155,496.6203 887.9288,532.7757 " fill="none" id="mcuconf.h-ChibiOS_HAL" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M923.2636,384.7565 A9,9 0 0 0 939.4721 389.5923" fill="none" style="stroke: #A80036; stroke-width: 1.5;"/><!--link halconf.h to ChibiOS_HAL--><path d="M1037.2615,391.5621 C1006.4973,423.936 938.3234,495.6771 903.0695,532.7757 " fill="none" id="halconf.h-ChibiOS_HAL" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1035.9829,380.6303 A9,9 0 0 0 1048.2442 392.2819" fill="none" style="stroke: #A80036; stroke-width: 1.5;"/><!--link hal.h to ChibiOS_HAL--><path d="M745.288,384.2247 C766.8589,411.5277 830.8577,492.5332 862.6516,532.7757 " fill="none" id="hal.h-ChibiOS_HAL" style="stroke: #A80036; stroke-width: 1.0;"/><!--link osal.h to ChibiOS_HAL--><path d="M833.5947,394.1064 C843.3909,427.5614 863.6126,496.6203 874.1995,532.7757 " fill="none" id="osal.h-ChibiOS_HAL" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M823.4497,389.5555 A9,9 0 0 0 839.6826 384.8021" fill="none" style="stroke: #A80036; stroke-width: 1.5;"/><!--link chconf.h to ChibiOS_RT--><path d="M544.4891,394.1064 C554.1005,427.5614 573.9406,496.6203 584.3278,532.7757 " fill="none" id="chconf.h-ChibiOS_RT" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M534.3718,389.5185 A9,9 0 0 0 550.6286 384.8479" fill="none" style="stroke: #A80036; stroke-width: 1.5;"/><!--link hal.h to ChibiOS_RT--><path d="M723.8737,392.3936 C697.2709,425.1494 639.7362,495.9915 609.8617,532.7757 " fill="none" id="hal.h-ChibiOS_RT" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M722.0027,381.2824 A9,9 0 0 0 735.1325 391.9458" fill="none" style="stroke: #A80036; stroke-width: 1.5;"/><!--link osal.h to ChibiOS_RT--><path d="M818.9987,381.8744 C786.6997,406.5416 675.68,491.3288 621.3851,532.7945 " fill="none" id="osal.h-ChibiOS_RT" style="stroke: #A80036; stroke-width: 1.0;"/><!--link cmsis.h to ChibiOS_RT--><path d="M352.1206,381.6565 C385.5027,406.0201 502.0461,491.078 559.0762,532.7007 " fill="none" id="cmsis.h-ChibiOS_RT" style="stroke: #A80036; stroke-width: 1.0;"/><!--link ch.h to ChibiOS_RT--><path d="M446.7467,384.2247 C469.6752,411.5277 537.7019,492.5332 571.4968,532.7757 " fill="none" id="ch.h-ChibiOS_RT" style="stroke: #A80036; stroke-width: 1.0;"/><!--link ch.hpp to ChibiOS_RT--><path d="M641.2989,384.2247 C633.3041,411.5277 609.5842,492.5332 597.8005,532.7757 " fill="none" id="ch.hpp-ChibiOS_RT" style="stroke: #A80036; stroke-width: 1.0;"/><!--link alldconf.h to AMiRoLLD--><path d="M1459.6519,572.5211 C1425.9004,606.6298 1348.4436,684.9062 1309.7978,723.9609 " fill="none" id="alldconf.h-AMiRoLLD" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1458.7075,561.4516 A9,9 0 0 0 1470.7305 573.349" fill="none" style="stroke: #A80036; stroke-width: 1.5;"/><!--link periphAL.h to AMiRoLLD--><path d="M1154.376,390.7927 C1138.5077,407.6456 1117,435.9402 1117,465.5 C1117,465.5 1117,465.5 1117,654.5 C1117,707.252 1180.9394,730.0909 1230.3925,739.8663 " fill="none" id="periphAL.h-AMiRoLLD" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1153.4133,379.731 A9,9 0 0 0 1165.4488 391.6157" fill="none" style="stroke: #A80036; stroke-width: 1.5;"/><!--link alldh to AMiRoLLD--><path d="M1353.6238,565.2123 C1343.1367,593.8271 1310.9044,681.7753 1295.4436,723.9609 " fill="none" id="alldh-AMiRoLLD" style="stroke: #A80036; stroke-width: 1.0;"/><!--link periphALtypes.h to AMiRoLLD--><path d="M1219.4245,565.2123 C1230.0614,593.8271 1262.7542,681.7753 1278.4357,723.9609 " fill="none" id="periphALtypes.h-AMiRoLLD" style="stroke: #A80036; stroke-width: 1.0;"/><!--link periphAL.h to periphALtypes.h--><path d="M1173.2934,384.2247 C1180.303,412.4186 1201.5495,497.877 1211.1723,536.5817 " fill="none" id="periphAL.h-periphALtypes.h" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1221.1218,541.5491 A9,9 0 0 0 1204.7071 545.6303" fill="none" style="stroke: #A80036; stroke-width: 1.5;"/><!--link osconf.h to AMiRoOS--><path d="M877.0572,96.0002 C889.0581,128.3104 913.4001,193.8464 926.3853,228.8065 " fill="none" id="osconf.h-AMiRoOS" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M866.6385,92.2391 A9,9 0 0 0 882.4945 86.3496" fill="none" style="stroke: #A80036; stroke-width: 1.5;"/><!--link amiroos.h to AMiRoOS--><path d="M982.3118,86.4088 C974.6849,113.1028 952.7445,189.8944 941.6267,228.8065 " fill="none" id="amiroos.h-AMiRoOS" style="stroke: #A80036; stroke-width: 1.0;"/><!--link AMiRoOS to mcuconf.h--><path d="M935,275.1354 C935,302.5538 935,346.9112 935,365.9009 " fill="none" id="AMiRoOS-mcuconf.h" style="stroke: #A80036; stroke-width: 1.0;"/><!--link AMiRoOS to halconf.h--><path d="M958.4964,275.0264 C970.1893,286.6038 984.4674,300.9204 997,314 C1014.3063,332.0617 1033.9574,353.7512 1044.7708,365.793 " fill="none" id="AMiRoOS-halconf.h" style="stroke: #A80036; stroke-width: 1.0;"/><!--link AMiRoOS to chconf.h--><path d="M880.9137,257.6253 C797.8306,266.9689 643.3309,287.3301 595,314 C572.0917,326.6413 553.4519,352.1396 544.59,365.8245 " fill="none" id="AMiRoOS-chconf.h" style="stroke: #A80036; stroke-width: 1.0;"/><!--link AMiRoOS to hal.h--><path d="M880.9536,266.0825 C850.0876,275.9767 811.9031,291.5101 783,314 C767.9561,325.7059 755.5301,343.6931 747.5756,357.1064 " fill="none" id="AMiRoOS-hal.h" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M751.4774,367.3912 A9,9 0 0 0 736.7521 359.0688" fill="none" style="stroke: #A80036; stroke-width: 1.5;"/><!--link AMiRoOS to ch.h--><path d="M880.8627,254.2201 C776.0891,259.3537 550.0858,274.7525 484,314 C467.4287,323.8415 455.0901,342.3867 447.5648,356.4562 " fill="none" id="AMiRoOS-ch.h" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M451.8862,366.7412 A9,9 0 0 0 436.7497 359.1925" fill="none" style="stroke: #A80036; stroke-width: 1.5;"/><!--link AMiRoOS to amiroblt.h--><path d="M880.6688,252.7769 C745.496,255.4154 397.4396,266.7363 293,314 C271.7498,323.6167 252.9912,343.0537 241.1561,357.4143 " fill="none" id="AMiRoOS-amiroblt.h" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M243.267,368.3904 A9,9 0 0 0 229.9901 357.9107" fill="none" style="stroke: #A80036; stroke-width: 1.5;"/><!--link AMiRoOS to alldconf.h--><path d="M989.2597,256.4206 C1076.6479,264.3507 1243.8485,283.1113 1294,314 C1392.4738,374.6507 1456.1074,509.7811 1472.057,546.5872 " fill="none" id="AMiRoOS-alldconf.h" style="stroke: #A80036; stroke-width: 1.0;"/><!--link AMiRoOS to alldh--><path d="M989.1373,257.6357 C1064.3117,266.3895 1195.3309,285.2921 1233,314 C1315.6039,376.9529 1347.8095,510.4287 1355.2338,546.7238 " fill="none" id="AMiRoOS-alldh" style="stroke: #A80036; stroke-width: 1.0;"/><!--link AMiRoOS to periphAL.h--><path d="M989.1174,264.9844 C1024.6379,275.0077 1071.1607,291.0728 1108,314 C1131.2661,328.4798 1152.9605,352.7549 1163.791,365.892 " fill="none" id="AMiRoOS-periphAL.h" style="stroke: #A80036; stroke-width: 1.0;"/><!--
|
|
1 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="778px" preserveAspectRatio="none" style="width:1475px;height:778px;" version="1.1" viewBox="0 0 1475 778" width="1475px" zoomAndPan="magnify"><defs><filter height="300%" id="fhfq0xrb38rx9" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><!--cluster AMiRoBLT_node--><polygon fill="#FFFFFF" filter="url(#fhfq0xrb38rx9)" points="14,324,24,314,285,314,285,756,275,766,14,766,14,324" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="275" x2="284" y1="324" y2="315"/><line style="stroke: #000000; stroke-width: 1.5;" x1="14" x2="275" y1="324" y2="324"/><line style="stroke: #000000; stroke-width: 1.5;" x1="275" x2="275" y1="324" y2="766"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="83" x="104" y="339.9951">AMiRo-BLT</text><!--cluster ChibiOS_node--><polygon fill="#FFFFFF" filter="url(#fhfq0xrb38rx9)" points="293,324,303,314,1092,314,1092,571,1082,581,293,581,293,324" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="1082" x2="1091" y1="324" y2="315"/><line style="stroke: #000000; stroke-width: 1.5;" x1="293" x2="1082" y1="324" y2="324"/><line style="stroke: #000000; stroke-width: 1.5;" x1="1082" x2="1082" y1="324" y2="581"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="61" x="658" y="339.9951">ChibiOS</text><!--cluster AMiRoLLD_node--><polygon fill="#FFFFFF" filter="url(#fhfq0xrb38rx9)" points="1111,324,1121,314,1453,314,1453,571,1443,581,1111,581,1111,324" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="1443" x2="1452" y1="324" y2="315"/><line style="stroke: #000000; stroke-width: 1.5;" x1="1111" x2="1443" y1="324" y2="324"/><line style="stroke: #000000; stroke-width: 1.5;" x1="1443" x2="1443" y1="324" y2="581"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="83" x="1236.5" y="339.9951">AMiRo-LLD</text><!--cluster AMiRoOS_node--><polygon fill="#FFFFFF" filter="url(#fhfq0xrb38rx9)" points="816,26,826,16,1027,16,1027,273,1017,283,816,283,816,26" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="1017" x2="1026" y1="26" y2="17"/><line style="stroke: #000000; stroke-width: 1.5;" x1="816" x2="1017" y1="26" y2="26"/><line style="stroke: #000000; stroke-width: 1.5;" x1="1017" x2="1017" y1="26" y2="283"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="76" x="879.5" y="41.9951">AMiRo-OS</text><!--entity OpenBLT--><rect fill="#D3D3D3" filter="url(#fhfq0xrb38rx9)" height="46.2969" style="stroke: #A80036; stroke-width: 1.5;" width="104" x="22" y="712"/><rect fill="#D3D3D3" height="10" style="stroke: #A80036; stroke-width: 1.5;" width="15" x="106" y="717"/><rect fill="#D3D3D3" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="104" y="719"/><rect fill="#D3D3D3" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="104" y="723"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="64" x="37" y="744.9951">OpenBLT</text><!--entity stm32flash--><rect fill="#D3D3D3" filter="url(#fhfq0xrb38rx9)" height="46.2969" style="stroke: #A80036; stroke-width: 1.5;" width="116" x="161" y="712"/><rect fill="#D3D3D3" height="10" style="stroke: #A80036; stroke-width: 1.5;" width="15" x="257" y="717"/><rect fill="#D3D3D3" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="255" y="719"/><rect fill="#D3D3D3" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="255" y="723"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="76" x="176" y="744.9951">stm32flash</text><!--entity amiroblt.h--><ellipse cx="222" cy="375" fill="#FEFECE" filter="url(#fhfq0xrb38rx9)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="188" y="404.9951">amiroblt.h</text><!--entity AMiRoBLT--><rect fill="#FEFECE" filter="url(#fhfq0xrb38rx9)" height="46.2969" style="stroke: #A80036; stroke-width: 1.5;" width="114" x="162" y="527"/><rect fill="#FEFECE" height="10" style="stroke: #A80036; stroke-width: 1.5;" width="15" x="256" y="532"/><rect fill="#FEFECE" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="254" y="534"/><rect fill="#FEFECE" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="254" y="538"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="74" x="177" y="559.9951">AMiRo-BLT</text><!--entity hal.h--><ellipse cx="730" cy="375" fill="#D3D3D3" filter="url(#fhfq0xrb38rx9)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="33" x="713.5" y="404.9951">hal.h</text><!--entity osal.h--><ellipse cx="820" cy="375" fill="#D3D3D3" filter="url(#fhfq0xrb38rx9)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="41" x="799.5" y="404.9951">osal.h</text><!--entity cmsis.h--><ellipse cx="434" cy="375" fill="#D3D3D3" filter="url(#fhfq0xrb38rx9)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="53" x="407.5" y="404.9951">cmsis.h</text><!--entity ch.h--><ellipse cx="530" cy="375" fill="#D3D3D3" filter="url(#fhfq0xrb38rx9)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="30" x="515" y="404.9951">ch.h</text><!--entity ch.hpp--><ellipse cx="333" cy="375" fill="#D3D3D3" filter="url(#fhfq0xrb38rx9)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="48" x="309" y="404.9951">ch.hpp</text><!--entity mcuconf.h--><ellipse cx="927" cy="375" fill="#D3D3D3" filter="url(#fhfq0xrb38rx9)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="73" x="890.5" y="404.9951">mcuconf.h</text><!--entity halconf.h--><ellipse cx="1045" cy="375" fill="#D3D3D3" filter="url(#fhfq0xrb38rx9)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="63" x="1013.5" y="404.9951">halconf.h</text><!--entity chconf.h--><ellipse cx="630" cy="375" fill="#D3D3D3" filter="url(#fhfq0xrb38rx9)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="60" x="600" y="404.9951">chconf.h</text><!--entity ChibiOS_HAL--><rect fill="#D3D3D3" filter="url(#fhfq0xrb38rx9)" height="46.2969" style="stroke: #A80036; stroke-width: 1.5;" width="125" x="810.5" y="527"/><rect fill="#D3D3D3" height="10" style="stroke: #A80036; stroke-width: 1.5;" width="15" x="915.5" y="532"/><rect fill="#D3D3D3" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="913.5" y="534"/><rect fill="#D3D3D3" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="913.5" y="538"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="85" x="825.5" y="559.9951">ChibiOS/HAL</text><!--entity ChibiOS_RT--><rect fill="#D3D3D3" filter="url(#fhfq0xrb38rx9)" height="46.2969" style="stroke: #A80036; stroke-width: 1.5;" width="118" x="521" y="527"/><rect fill="#D3D3D3" height="10" style="stroke: #A80036; stroke-width: 1.5;" width="15" x="619" y="532"/><rect fill="#D3D3D3" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="617" y="534"/><rect fill="#D3D3D3" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="617" y="538"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="78" x="536" y="559.9951">ChibiOS/RT</text><!--entity alldconf.h--><ellipse cx="1404" cy="375" fill="#FEFECE" filter="url(#fhfq0xrb38rx9)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="66" x="1371" y="404.9951">alldconf.h</text><!--entity periphAL.h--><ellipse cx="1284" cy="375" fill="#FEFECE" filter="url(#fhfq0xrb38rx9)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="73" x="1247.5" y="404.9951">periphAL.h</text><!--entity alldh--><ellipse cx="1162" cy="375" fill="#FEFECE" filter="url(#fhfq0xrb38rx9)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="71" x="1126.5" y="404.9951">amiro-lld.h</text><!--entity AMiRoLLD--><rect fill="#FEFECE" filter="url(#fhfq0xrb38rx9)" height="46.2969" style="stroke: #A80036; stroke-width: 1.5;" width="113" x="1227.5" y="527"/><rect fill="#FEFECE" height="10" style="stroke: #A80036; stroke-width: 1.5;" width="15" x="1320.5" y="532"/><rect fill="#FEFECE" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="1318.5" y="534"/><rect fill="#FEFECE" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="1318.5" y="538"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="73" x="1242.5" y="559.9951">AMiRo-LLD</text><!--entity osconf.h--><ellipse cx="862" cy="77" fill="#FEFECE" filter="url(#fhfq0xrb38rx9)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="60" x="832" y="106.9951">osconf.h</text><!--entity amiroos.h--><ellipse cx="977" cy="77" fill="#FEFECE" filter="url(#fhfq0xrb38rx9)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="943" y="106.9951">amiroos.h</text><!--entity AMiRoOS--><rect fill="#FEFECE" filter="url(#fhfq0xrb38rx9)" height="46.2969" style="stroke: #A80036; stroke-width: 1.5;" width="108" x="873" y="229"/><rect fill="#FEFECE" height="10" style="stroke: #A80036; stroke-width: 1.5;" width="15" x="961" y="234"/><rect fill="#FEFECE" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="959" y="236"/><rect fill="#FEFECE" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="959" y="240"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="888" y="261.9951">AMiRo-OS</text><!--link AMiRoBLT to OpenBLT--><path d="M200.9288,573.0563 C176.8219,603.8135 133.7946,658.7104 104.5882,695.9737 " fill="none" id="AMiRoBLT-OpenBLT" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="109.9177,700.5215,92.0706,711.9444,98.8989,691.8851,109.9177,700.5215" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="31" x="153" y="647.0669">forks</text><!--link AMiRoBLT to stm32flash--><path d="M219,573.0563 C219,606.9378 219,670.1123 219,706.7397 " fill="none" id="AMiRoBLT-stm32flash" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="219,711.9444,223,702.9444,219,706.9444,215,702.9444,219,711.9444" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="44" x="220" y="647.0669">utilizes</text><!--link amiroblt.h to AMiRoBLT--><path d="M221.8387,384.4088 C221.3811,411.1028 220.0647,487.8944 219.3976,526.8065 " fill="none" id="amiroblt.h-AMiRoBLT" style="stroke: #A80036; stroke-width: 1.0;"/><!--link mcuconf.h to ChibiOS_HAL--><path d="M921.1371,394.0002 C911.1671,426.3104 890.9445,491.8464 880.1568,526.8065 " fill="none" id="mcuconf.h-ChibiOS_HAL" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M915.1078,384.8565 A9,9 0 0 0 931.2703 389.8438" fill="none" style="stroke: #A80036; stroke-width: 1.5;"/><!--link halconf.h to ChibiOS_HAL--><path d="M1028.3496,391.9408 C997.384,423.4465 930.9036,491.0864 895.7959,526.8065 " fill="none" id="halconf.h-ChibiOS_HAL" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1027.5631,380.6759 A9,9 0 0 0 1039.6265 392.5324" fill="none" style="stroke: #A80036; stroke-width: 1.5;"/><!--link hal.h to ChibiOS_HAL--><path d="M737.6883,384.4088 C759.5011,411.1028 822.2509,487.8944 854.0476,526.8065 " fill="none" id="hal.h-ChibiOS_HAL" style="stroke: #A80036; stroke-width: 1.0;"/><!--link osal.h to ChibiOS_HAL--><path d="M825.7543,394.0002 C835.5397,426.3104 855.3878,491.8464 865.9757,526.8065 " fill="none" id="osal.h-ChibiOS_HAL" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M815.6476,389.8063 A9,9 0 0 0 831.8359 384.9033" fill="none" style="stroke: #A80036; stroke-width: 1.5;"/><!--link chconf.h to ChibiOS_RT--><path d="M624.4504,394.4235 C615.1772,426.8797 596.5719,491.9984 586.6267,526.8065 " fill="none" id="chconf.h-ChibiOS_RT" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M618.3343,385.0451 A9,9 0 0 0 634.5979 389.692" fill="none" style="stroke: #A80036; stroke-width: 1.5;"/><!--link hal.h to ChibiOS_RT--><path d="M715.1329,392.3449 C687.9815,424.0216 630.3671,491.2384 599.8801,526.8065 " fill="none" id="hal.h-ChibiOS_RT" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M713.5108,381.2421 A9,9 0 0 0 726.3533 392.2498" fill="none" style="stroke: #A80036; stroke-width: 1.5;"/><!--link osal.h to ChibiOS_RT--><path d="M810.8848,381.6465 C778.3481,405.3712 666.927,486.6158 611.6381,526.9306 " fill="none" id="osal.h-ChibiOS_RT" style="stroke: #A80036; stroke-width: 1.0;"/><!--link cmsis.h to ChibiOS_RT--><path d="M441.8496,384.4088 C464.12,411.1028 528.1862,487.8944 560.65,526.8065 " fill="none" id="cmsis.h-ChibiOS_RT" style="stroke: #A80036; stroke-width: 1.0;"/><!--link ch.h to ChibiOS_RT--><path d="M532.6882,384.4088 C540.3151,411.1028 562.2555,487.8944 573.3733,526.8065 " fill="none" id="ch.h-ChibiOS_RT" style="stroke: #A80036; stroke-width: 1.0;"/><!--link ch.hpp to ChibiOS_RT--><path d="M342.0838,381.4359 C375.1572,404.8685 490.1916,486.3706 547.3079,526.8376 " fill="none" id="ch.hpp-ChibiOS_RT" style="stroke: #A80036; stroke-width: 1.0;"/><!--link alldconf.h to AMiRoLLD--><path d="M1391.8265,392.753 C1369.9916,424.5955 1324.1894,491.3904 1299.9041,526.8065 " fill="none" id="alldconf.h-AMiRoLLD" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1388.8326,382.1647 A9,9 0 0 0 1402.7824 391.7303" fill="none" style="stroke: #A80036; stroke-width: 1.5;"/><!--link periphAL.h to AMiRoLLD--><path d="M1284,394.4235 C1284,426.8797 1284,491.9984 1284,526.8065 " fill="none" id="periphAL.h-AMiRoLLD" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1275.5428,387.4871 A9,9 0 0 0 1292.4573 387.4869" fill="none" style="stroke: #A80036; stroke-width: 1.5;"/><!--link alldh to AMiRoLLD--><path d="M1168.5592,384.4088 C1187.1688,411.1028 1240.7035,487.8944 1267.8308,526.8065 " fill="none" id="alldh-AMiRoLLD" style="stroke: #A80036; stroke-width: 1.0;"/><!--link osconf.h to AMiRoOS--><path d="M869.0572,96.0002 C881.0581,128.3104 905.4001,193.8464 918.3853,228.8065 " fill="none" id="osconf.h-AMiRoOS" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M858.6385,92.2391 A9,9 0 0 0 874.4945 86.3496" fill="none" style="stroke: #A80036; stroke-width: 1.5;"/><!--link amiroos.h to AMiRoOS--><path d="M974.3118,86.4088 C966.6849,113.1028 944.7445,189.8944 933.6267,228.8065 " fill="none" id="amiroos.h-AMiRoOS" style="stroke: #A80036; stroke-width: 1.0;"/><!--link AMiRoOS to mcuconf.h--><path d="M927,275.1354 C927,302.5538 927,346.9112 927,365.9009 " fill="none" id="AMiRoOS-mcuconf.h" style="stroke: #A80036; stroke-width: 1.0;"/><!--link AMiRoOS to halconf.h--><path d="M950.4964,275.0264 C962.1893,286.6038 976.4674,300.9204 989,314 C1006.3063,332.0617 1025.9574,353.7512 1036.7708,365.793 " fill="none" id="AMiRoOS-halconf.h" style="stroke: #A80036; stroke-width: 1.0;"/><!--link AMiRoOS to chconf.h--><path d="M872.8525,257.0004 C821.6408,263.711 744.1784,279.1298 686,314 C663.8043,327.3034 645.1358,352.0564 636.0075,365.5809 " fill="none" id="AMiRoOS-chconf.h" style="stroke: #A80036; stroke-width: 1.0;"/><!--link AMiRoOS to hal.h--><path d="M872.9536,266.0825 C842.0876,275.9767 803.9031,291.5101 775,314 C759.9561,325.7059 747.5301,343.6931 739.5756,357.1064 " fill="none" id="AMiRoOS-hal.h" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M743.4774,367.3912 A9,9 0 0 0 728.7521 359.0688" fill="none" style="stroke: #A80036; stroke-width: 1.5;"/><!--link AMiRoOS to ch.h--><path d="M872.747,256.6188 C786.7655,264.7486 623.9211,283.6836 575,314 C558.6173,324.1524 546.2516,342.6528 538.6684,356.627 " fill="none" id="AMiRoOS-ch.h" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M542.9376,366.9016 A9,9 0 0 0 527.855 359.2456" fill="none" style="stroke: #A80036; stroke-width: 1.5;"/><!--link AMiRoOS to amiroblt.h--><path d="M872.6241,252.6791 C737.3471,255.0897 389.0676,265.9227 285,314 C264.1694,323.6233 246.0295,343.0592 234.6324,357.4177 " fill="none" id="AMiRoOS-amiroblt.h" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M237.0407,368.2313 A9,9 0 0 0 223.5693 358.0029" fill="none" style="stroke: #A80036; stroke-width: 1.5;"/><!--link AMiRoOS to alldconf.h--><path d="M981.105,255.6183 C1079.516,262.9132 1283.4248,281.5217 1346,314 C1369.6059,326.2521 1388.9622,351.9146 1398.1802,365.727 " fill="none" id="AMiRoOS-alldconf.h" style="stroke: #A80036; stroke-width: 1.0;"/><!--link AMiRoOS to alldh--><path d="M981.1781,264.8874 C1016.7242,274.8698 1063.2527,290.9257 1100,314 C1118.8825,325.8566 1136.6088,344.3292 1148.2309,357.8414 " fill="none" id="AMiRoOS-alldh" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1159.462,358.105 A9,9 0 0 0 1146.4708 368.9368" fill="none" style="stroke: #A80036; stroke-width: 1.5;"/><!--link AMiRoOS to periphAL.h--><path d="M981.2458,259.567 C1054.8513,270.4754 1181.9011,291.7639 1223,314 C1246.974,326.9709 1267.6914,352.3301 1277.6653,365.9072 " fill="none" id="AMiRoOS-periphAL.h" style="stroke: #A80036; stroke-width: 1.0;"/><!--
|
|
2 | 2 |
@startuml |
3 | 3 |
skinparam componentStyle uml2 |
4 | 4 |
|
... | ... | |
8 | 8 |
|
9 | 9 |
node "AMiRo-BLT" as AMiRoBLT_node { |
10 | 10 |
component OpenBLT #lightgrey |
11 |
component STM32Flash #lightgrey
|
|
11 |
component stm32flash #lightgrey
|
|
12 | 12 |
|
13 | 13 |
interface amiroblt.h |
14 | 14 |
|
15 | 15 |
component "AMiRo-BLT" as AMiRoBLT |
16 | 16 |
AMiRoBLT -down-|> OpenBLT : forks |
17 |
AMiRoBLT .down.> STM32Flash : utilizes
|
|
17 |
AMiRoBLT .down.> stm32flash : utilizes
|
|
18 | 18 |
AMiRoBLT -up- amiroblt.h |
19 | 19 |
} |
20 | 20 |
|
... | ... | |
53 | 53 |
node "AMiRo-LLD" as AMiRoLLD_node { |
54 | 54 |
interface alldconf.h |
55 | 55 |
interface periphAL.h |
56 |
interface periphALtypes.h |
|
57 | 56 |
interface "amiro-lld.h" as alldh |
58 | 57 |
|
59 | 58 |
component "AMiRo-LLD" as AMiRoLLD |
60 | 59 |
AMiRoLLD -up-( alldconf.h |
61 | 60 |
AMiRoLLD -up-( periphAL.h |
62 | 61 |
AMiRoLLD -up- alldh |
63 |
AMiRoLLD -up- periphALtypes.h |
|
64 |
periphAL.h - -( periphALtypes.h |
|
65 | 62 |
} |
66 | 63 |
|
67 | 64 |
|
... | ... | |
84 | 81 |
AMiRoOS - -( ch.h |
85 | 82 |
AMiRoOS - -( amiroblt.h |
86 | 83 |
AMiRoOS - - alldconf.h |
87 |
AMiRoOS - - alldh |
|
84 |
AMiRoOS - -( alldh
|
|
88 | 85 |
AMiRoOS - - periphAL.h |
89 | 86 |
|
90 | 87 |
@enduml |
91 | 88 |
|
92 |
PlantUML version 1.2018.13(Mon Nov 26 18:11:51 CET 2018)
|
|
89 |
PlantUML version 1.2019.08(Sat Jul 13 21:25:14 CEST 2019)
|
|
93 | 90 |
(GPL source distribution) |
94 | 91 |
Java Runtime: OpenJDK Runtime Environment |
95 | 92 |
JVM: OpenJDK 64-Bit Server VM |
96 |
Java Version: 10.0.2+13-Ubuntu-1ubuntu0.18.04.4
|
|
93 |
Java Version: 11.0.4+11-post-Ubuntu-1ubuntu218.04.3
|
|
97 | 94 |
Operating System: Linux |
98 |
OS Version: 4.15.0-46-generic
|
|
95 |
OS Version: 4.15.0-66-generic
|
|
99 | 96 |
Default Encoding: UTF-8 |
100 | 97 |
Language: en |
101 | 98 |
Country: US |
doc/AMiRo-OS.uml | ||
---|---|---|
86 | 86 |
AMiRoOS --( ch.h |
87 | 87 |
AMiRoOS --( amiroblt.h |
88 | 88 |
AMiRoOS -- alldconf.h |
89 |
AMiRoOS -- alldh |
|
89 |
AMiRoOS --( alldh
|
|
90 | 90 |
AMiRoOS -- periphAL.h |
91 | 91 |
|
92 | 92 |
@enduml |
periphery-lld/AMiRo-LLD | ||
---|---|---|
1 |
Subproject commit 1304b12bd859603ad9f9b68493e1a3257f5e4595 |
|
1 |
Subproject commit 72369edc914c55785d0654e4aa5bee9a3aed9290 |
Also available in: Unified diff