Commit ef8955f2 authored by Kajetan Weinmann's avatar Kajetan Weinmann
Browse files

Merge remote-tracking branch 'origin/develop' into dan_dev

parents a5807971 de2c5384
......@@ -17,13 +17,15 @@ inside the common submodule.
# Prerequisites
If you have not set up the prerequisites yet, go to the [prerequisites chapter](#prerequisites).
If you have not set up the prerequisites yet, go to the [prerequisites chapter](#prereq) for
detailed instructions on how to install these.
1. [[Ninja](https://ninja-build.org/) as build tools
installed on Windows. You can also use `Make` or MSYS MinGW64 make](https://www.msys2.org/)
on Windows.
2. [CMake](https://cmake.org/) installed
3. [GNU ARM Toolchain](https://xpack.github.io/arm-none-eabi-gcc/install/) installed
Here is a brief overview of the required tools to develop software for the Vorago microcontroller:
1. CMake build system generator installed
2. Build system like [Ninja Build](https://ninja-build.org/) or [Make](https://www.msys2.org/)
installed.
3. Bare-Metal ARM toolchain installed
4. [SEGGER J-Link Software](https://www.segger.com/downloads/jlink/#J-LinkSoftwareAndDocumentationPack) installed
5. Recommended for application code development: [Eclipse for C/C++](https://www.eclipse.org/downloads/packages/)
installed with MCU plugin
......@@ -209,123 +211,151 @@ located in the build folder can be used as well to configure the application man
is not possible to configure an application for NVM1 or NVM2 in that way because the application
needs to be build with a different linker script in that case.
# <a name="prereqsetup"></a> Setting up Prerequisites
# <a name="prereq"></a> Setting up Prerequisites
1. Install [ARM Toolchain](https://xpack.github.io/arm-none-eabi-gcc/install/)
## CMake
**Windows**
On Windows, it is recommended to perform the `xpm` and toolchain installation from the Windows
command line.The simple way required npm, which can be installed by installing
[NodeJS](https://nodejs.org/en/). Make sure `npm` can be run from the command line by adding
the folder containing `npm.exe` to the system path and running the following command
**Linux**
```sh
npm install --global xpm@latest
xpm install --global @xpack-dev-tools/arm-none-eabi-gcc@10.3.1-2.3.1 --verbose
```
```sh
sudo apt-get install cmake
```
On Windows, the toolchain binaries will be located in a folder like this
**Windows**
```sh
C:\Users\<User>\AppData\Roaming\xPacks\@xpack-dev-tools\arm-none-eabi-gcc\<version>\.content\bin
```
On Windows, you can use `pacman -S mingw-w64-x86_64-cmake`, but you can also install the Windows
CMake via the [installer](https://cmake.org/download/). It is recommended to pick the install
option `Add CMake to system PATH for all users` to CMake can be used from the command line.
Please note that you need to add the Windows CMake path to the MinGW64 path manually
if you want to use it in CMake.
You can now run the following commands in the repository root:
## Cross-Compiler
```sh
xpm init
xpm install @xpack-dev-tools/arm-none-eabi-gcc@10.3.1-2.3.1
```
The instuctions here specify how to install and use a specific version of the xPacks cross-compiler
but you can use any other ARM cross-compiler which can generate bare-metal code, usually denoted by
the `arm-none-eabi` cross-compiler triplet.
to create symlinks to the toolchain in `./xpacks/.bin`.
You can now set up the environment by using `. load_path.sh` or the following command
If you don't want to install nodejs you may go with the
[four-command manual installation](https://xpack.github.io/arm-none-eabi-gcc/install/#manual-install).
```sh
export PATH="$(pwd)/xpacks/.bin":$PATH
```
**Windows**
On Windows, you can use the graphical system environmental variables editor to add the
`.bin` path to the system variables permanently or use the appriate command for `CMD` or
PowerShell to update the `PATH`
On Windows, it is recommended to perform the `xpm` and toolchain installation from the Windows
command line.The simple way required npm, which can be installed by installing
[NodeJS](https://nodejs.org/en/). Make sure `npm` can be run from the command line by adding
the folder containing `npm.exe` to the system path and running the following command
```sh
npm install --global xpm@latest
xpm install --global @xpack-dev-tools/arm-none-eabi-gcc@10.3.1-2.3.1 --verbose
```
**Linux**
On Windows, the toolchain binaries will be located in a folder like this
Example for Ubuntu:
```sh
C:\Users\<User>\AppData\Roaming\xPacks\@xpack-dev-tools\arm-none-eabi-gcc\<version>\.content\bin
```
```sh
sudo npm install --global xpm@latest
xpm install --global @xpack-dev-tools/arm-none-eabi-gcc@10.3.1-2.3.1 --verbose
```
You can now run the following commands in the repository root:
You can now run the following commands in the repository root:
```sh
xpm init
xpm install @xpack-dev-tools/arm-none-eabi-gcc@10.3.1-2.3.1
```
```sh
xpm init
xpm install @xpack-dev-tools/arm-none-eabi-gcc@10.3.1-2.3.1
```
to create symlinks to the toolchain in `./xpacks/.bin`.
You can now set up the environment by using `. load_path.sh` or the following command
to create symlinks to the toolchain in `./xpacks/.bin`.
You can now set up the environment by using `. load_path.sh` or the following command
```sh
export PATH="$(pwd)/xpacks/.bin":$PATH
```
```sh
export PATH="$(pwd)/xpacks/.bin":$PATH
```
On Windows, you can use the graphical system environmental variables editor to add the
`.bin` path to the system variables permanently or use the appriate command for `CMD` or
PowerShell to update the `PATH`
2. You can either install Ninja or Make as a build system.
**Windows**
**Linux**
It is recommended to use the [Ninja build system](https://ninja-build.org/).
You need to add the folder containing the ninja executable to the system environmental variables
so it can be used in the build process. You can test whether `ninja` works by running
`ninja --version` in the command line. You can also install the native
[Windows CMake](https://cmake.org/) and use it for build generation. On Ubuntu, you can install
Ninja with `sudo apt-get install ninja-build`. Make should be pre-installed.
Install `npm` and `nodejs` first. Example for Ubuntu according to
[this guide](https://linuxize.com/post/how-to-install-node-js-on-ubuntu-20-04/).
Alternatively or additionally, you can also install `mingw32-make`
which comes bundled with [MinGW64](https://www.msys2.org/). Make sure to add the binaries path to
the Windows path during installation. Otherwise, you need to add `msys64/mingw64/bin` to the
Windows path so you can run installed binaries from the command line.
Open the `MinGW64` shell and run the following commands.
```sh
pacman -S mingw-w64-x86_64-toolchain mingw-w64-x86_64-make mingw-w64-x86_64-cmake
```
```sh
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get update && sudo apt-get install nodejs
```
You can test successfull installation with `mingw32-make -v` from the Windows Command Line.
Check that `npm` is installed with `npm --version`.
Then `xpm` and the cross-compiler are installed.
**Linux**
```sh
sudo npm install --global xpm@latest
xpm install --global @xpack-dev-tools/arm-none-eabi-gcc@10.3.1-2.3.1 --verbose
```
On Linux, `make` is pre-installed. You can install ninja with
You can now run the following commands in the repository root:
```sh
sudo apt-get install ninja
```
```sh
xpm init
xpm install @xpack-dev-tools/arm-none-eabi-gcc@10.3.1-2.3.1
```
3. Install CMake. On Ubuntu, you can run
to create symlinks to the toolchain in `./xpacks/.bin`.
You can now set up the environment by using `. load_path.sh` or the following command
```sh
sudo apt-get install cmake
```
```sh
export PATH="$(pwd)/xpacks/.bin":$PATH
```
On Windows, you can use `pacman -S mingw-w64-x86_64-cmake`, but you can also install the Windows
CMake via the [installer](https://cmake.org/download/). It is recommended to pick the install
option `Add CMake to system PATH for all users` to CMake can be used from the command line.
Please note that you need to add the Windows CMake path to the MinGW64 path manually
if you want to use it in CMake.
## Build System
4. It is recommended to install [Eclipse for C/C++ developers](https://www.eclipse.org/downloads/packages/)
and also get the Eclipse Embedded CDT plugin. After setting the path to the installed ARM
toolchain, the includes should be updated with ARM toolchain binaries after hitting Apply
inside the project settings.
5. Install [Keil MDK](https://www.keil.com/demo/eval/arm.htm) too create
bootloader binaries which can be used to program the non-volatile memory
of the REB1 board. The bootloader needs to be flashed with Keil MDK.
The binaries can be flashed with ExtraPutty if the bootloader is already running. It is also
possible to flash the NVM1 and NVM2 images with Keil. Keil can only be installed on a Windows
system.
It is recommended to use `ninja` or `make` as the software build system.
**Windows**
It is recommended to use the [Ninja build system](https://ninja-build.org/).
You need to add the folder containing the ninja executable to the system environmental variables
so it can be used in the build process. You can test whether `ninja` works by running
`ninja --version` in the command line. You can also install the native
[Windows CMake](https://cmake.org/) and use it for build generation.
Alternatively or additionally, you can also install `mingw32-make`
which comes bundled with [MinGW64](https://www.msys2.org/). Make sure to add the binaries path to
the Windows path during installation. Otherwise, you need to add `msys64/mingw64/bin` to the
Windows path so you can run installed binaries from the command line.
Open the `MinGW64` shell and run the following commands.
```sh
pacman -S mingw-w64-x86_64-toolchain mingw-w64-x86_64-make mingw-w64-x86_64-cmake
```
You can test successfull installation with `mingw32-make -v` from the Windows Command Line.
**Linux**
On Linux, `make` is pre-installed and it is recommended to use it directly.
You can install `ninja` with
```sh
sudo apt-get install ninja-build
```
## IDEs
### Primary Software
It is recommended to install [Eclipse for C/C++ developers](https://www.eclipse.org/downloads/packages/)
and also get the Eclipse Embedded CDT plugin. After setting the path to the installed ARM
toolchain, the includes should be updated with ARM toolchain binaries after hitting Apply
inside the project settings. You can also use other IDEs like VS Code or CLion.
### Bootloader
Install [Keil MDK](https://www.keil.com/demo/eval/arm.htm) too create
bootloader binaries which can be used to program the non-volatile memory
of the REB1 board. The bootloader needs to be flashed with Keil MDK.
The binaries can be flashed with ExtraPutty if the bootloader is already running. It is also
possible to flash the NVM1 and NVM2 images with Keil. Keil can only be installed on a Windows
system.
# Flashing the non-volatile memory
......
#ifndef MISSION_POWER_CONFIG_VORCONFIG_H_
#define MISSION_POWER_CONFIG_VORCONFIG_H_
#include "config/definitions.h"
#include <commonConfig.h>
#include <cstdint>
#include <cstddef>
......@@ -32,32 +33,7 @@ const uint8_t PAYLOAD_MAP_ID = 0b000011;
#define VOR_ADD_UART_TEST_TASK 0
#endif
//! Maximum size of UART packets receiving
static constexpr size_t UART_MAX_PACKET_SIZE = 64;
//! Size of the UART TM ring buffer. Should be able to hold multiple packets
static constexpr size_t UART_TM_RING_BUFFER_SIZE = 1024;
//! Size of UART send buffer. Should be able to accomodate the largest
//! packet size.
static constexpr size_t UART_SEND_BUFFER_SIZE = 256;
//! Configure whether old packets are overwritten when ring buffer is full.
#define UART_OVERWRITE_OLD_PACKETS 1
//! The maximum number of packets the queue can hold.
#define UART_MAX_NUMBER_OF_QUEUE_PACKETS 20
//! Configure scrub rates for ROM and RAM. A scrub cycle will occur every
//! n-th scrub cycles with n being the configured value.
//! The scrub engine will process one address (4 bytes)
//! See VA10820 AN1212 Application note on the EDAC functionality.
//! Lower values will lead to more scrubbing, which will not decrease the
//! speed of the CPU but might lead to higher power consumption.
#define VOR_ROM_SCRUB_RATE 1000
#define VOR_RAM_SCRUB_RATE 4000
//! Configure periodic task periods in milliseconds.
#define TEST_TASK_PERIOD 1000
#define UART_TASK_PERIOD 500
#endif /* MISSION_POWER_CONFIG_VORCONFIG_H_ */
#ifndef CONFIG_DEFINITIONS_H_
#define CONFIG_DEFINITIONS_H_
#include <cstdint>
#include <cstddef>
// Maximum size of UART packets coming from the OBC
static constexpr size_t VOR_UART_OBC_MAX_PACKET_SIZE = 64;
// Size of UART send buffer. Should be able to accommodate the USLP frame size
static constexpr size_t UART_OBC_REPLY_BUFFER_SIZE = 256;
// Size of the UART TM ring buffer. Should be able to hold multiple packets
static constexpr size_t UART_OBC_REPLY_RING_BUFFER_SIZE = 1024;
// The maximum number of packets the reply queue holding commands to be sent to the
// OBC can hold
static constexpr size_t UART_OBC_MAX_NUMBER_OF_REPLY_QUEUE_PACKETS = 20;
//! Configure scrub rates for ROM and RAM. A scrub cycle will occur every
//! n-th scrub cycles with n being the configured value.
//! The scrub engine will process one address (4 bytes)
//! See VA10820 AN1212 Application note on the EDAC functionality.
//! Lower values will lead to more scrubbing, which will not decrease the
//! speed of the CPU but might lead to higher power consumption.
#define VOR_ROM_SCRUB_RATE 1000
#define VOR_RAM_SCRUB_RATE 4000
//! Configure periodic task periods in milliseconds.
#define TEST_TASK_PERIOD 1000
#define UART_TASK_PERIOD 500
#endif /* CONFIG_DEFINITIONS_H_ */
......@@ -94,17 +94,28 @@
<builder arguments="--build . -j" buildPath="${workspace_loc:/src-payload-obsw/build-Debug-REB1}" command="cmake" id="ilg.gnuarmeclipse.managedbuild.cross.builder.1818544887" incrementalBuildTarget="" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="ilg.gnuarmeclipse.managedbuild.cross.builder"/>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.652817955" name="GNU Arm Cross Assembler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler">
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor.2142131294" name="Use preprocessor" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor" useByScannerDiscovery="false" value="true" valueType="boolean"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths.105865252" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw/vor_common}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw/vor_common/vorago/hdr}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw/build-Debug-REB1}&quot;"/>
</option>
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input.1017344999" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input"/>
</tool>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.572659175" name="GNU Arm Cross C Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler">
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths.2136038224" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths" useByScannerDiscovery="true" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw/vor_common}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw/vor_common/vorago/hdr}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw/build-Debug-REB1}&quot;"/>
</option>
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.664916476" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input"/>
</tool>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.1643986232" name="GNU Arm Cross C++ Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler">
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.paths.1154937573" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.paths" useByScannerDiscovery="true" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw/vor_common}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw/vor_common/vorago/hdr}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw/build-Debug-REB1}&quot;"/>
</option>
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input.1969838140" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input"/>
</tool>
......@@ -230,17 +241,25 @@
<builder arguments="" command="make" id="ilg.gnuarmeclipse.managedbuild.cross.builder.1819987791" incrementalBuildTarget="mission" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="ilg.gnuarmeclipse.managedbuild.cross.builder"/>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.314847502" name="GNU Arm Cross Assembler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler">
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor.339425903" name="Use preprocessor" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor" useByScannerDiscovery="false" value="true" valueType="boolean"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths.1617734669" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw/vor_common}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw/vor_common/vorago/hdr}&quot;"/>
</option>
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input.2076008618" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input"/>
</tool>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.373132988" name="GNU Arm Cross C Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler">
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths.902264438" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths" useByScannerDiscovery="true" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw/vor_common}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw/vor_common/vorago/hdr}&quot;"/>
</option>
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.1163466114" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input"/>
</tool>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.1413840727" name="GNU Arm Cross C++ Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler">
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.paths.1257963605" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.paths" useByScannerDiscovery="true" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw/vor_common}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw/vor_common/vorago/hdr}&quot;"/>
</option>
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input.1034906667" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input"/>
</tool>
......@@ -366,17 +385,28 @@
<builder arguments="--build . -j" buildPath="${workspace_loc:/src-payload-obsw/build-Debug-Payload}" command="cmake" id="ilg.gnuarmeclipse.managedbuild.cross.builder.1088271884" incrementalBuildTarget="" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="ilg.gnuarmeclipse.managedbuild.cross.builder"/>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.1651109302" name="GNU Arm Cross Assembler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler">
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor.1575473114" name="Use preprocessor" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor" useByScannerDiscovery="false" value="true" valueType="boolean"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths.250863918" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw/vor_common}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw/vor_common/vorago/hdr}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw/build-Debug-Payload}&quot;"/>
</option>
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input.813322041" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input"/>
</tool>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.230423325" name="GNU Arm Cross C Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler">
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths.1881912520" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths" useByScannerDiscovery="true" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw/vor_common}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw/vor_common/vorago/hdr}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw/build-Debug-Payload}&quot;"/>
</option>
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.785746596" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input"/>
</tool>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.179728942" name="GNU Arm Cross C++ Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler">
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.paths.1316591058" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.paths" useByScannerDiscovery="true" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw/vor_common}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw/vor_common/vorago/hdr}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/src-payload-obsw/build-Debug-Payload}&quot;"/>
</option>
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input.1484389411" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input"/>
</tool>
......@@ -472,16 +502,13 @@
<scannerConfigBuildInfo instanceId="ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.1477472704;ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.1477472704.487760446;ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.1690925271;ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.931517386">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.1477472704;ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.1477472704.487760446;ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.1328483799;ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.1080845560">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="0.174638098">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.1477472704;ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.1477472704.487760446;ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.2144996725;ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input.914128222">
<scannerConfigBuildInfo instanceId="ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.2026717977.1213136039;ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.2026717977.1213136039.;ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.230423325;ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.785746596">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.1477472704;ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.1477472704.487760446;ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.1221184303;ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input.1479772720">
<scannerConfigBuildInfo instanceId="ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.2026717977.1213136039;ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.2026717977.1213136039.;ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.179728942;ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input.1484389411">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.2026717977;ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.2026717977.2122423923;ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.572659175;ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.664916476">
......@@ -493,10 +520,19 @@
<scannerConfigBuildInfo instanceId="ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.2026717977.421340819;ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.2026717977.421340819.;ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.1413840727;ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input.1034906667">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.2026717977;ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.2026717977.2122423923;ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.1643986232;ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input.1969838140">
<scannerConfigBuildInfo instanceId="ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.2026717977.421340819;ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.2026717977.421340819.;ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.373132988;ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.1163466114">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.2026717977.421340819;ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.2026717977.421340819.;ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.373132988;ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.1163466114">
<scannerConfigBuildInfo instanceId="ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.1477472704;ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.1477472704.487760446;ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.1328483799;ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.1080845560">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.1477472704;ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.1477472704.487760446;ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.2144996725;ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input.914128222">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.1477472704;ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.1477472704.487760446;ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.1221184303;ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input.1479772720">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.2026717977;ilg.gnuarmeclipse.managedbuild.cross.toolchain.base.2026717977.2122423923;ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.1643986232;ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input.1969838140">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
</storageModule>
......
......@@ -6,8 +6,8 @@
#include "vorago/reb/reb_log.h"
GlobParams glob::globparams(0, 0, 0);
volatile uint32_t glob::msSystemTicks = 0;
volatile uint32_t glob::secondTicks = 0;
volatile uint32_t glob::MS_SYSTEM_TICKS = 0;
volatile uint32_t glob::SECOND_TICKS = 0;
#if VOR_ADD_TEST_TASKS == 1
......
......@@ -2,7 +2,7 @@
#include "globalObjects.h"
#include "VORConfig.h"
#include "commonConfig.h"
#include "common/core/setup.h"
#include "common/setup.h"
#include "vorago/common/va108xx.h"
#include "vorago/reb/reb_log.h"
......
#include "ObcComHandler.h"
ObcComHandler::ObcComHandler(std::string name, uint32_t periodMs, UartPortType uartPort,
pinCfgCallback pinCb, uint32_t baudrate, bool overwriteOldTms):
Rs485Handler(name, periodMs, uartPort, pinCb, baudrate, overwriteOldTms){
ObcComHandler::ObcComHandler(std::string name, uint32_t periodMs, Rs485Config cfg):
Rs485Handler(name, periodMs, cfg) {
}
int ObcComHandler::handlePacketParsing() {
......
#ifndef MISSION_PERIPHERALS_SYRLINKSHANDLER_H_
#define MISSION_PERIPHERALS_SYRLINKSHANDLER_H_
#ifndef MISSION_PERIPHERALS_OBCCOMHANDLER_H_
#define MISSION_PERIPHERALS_OBCCOMHANDLER_H_
#include "VORConfig.h"
#include "common/peripherals/Rs485Handler.h"
class ObcComHandler: public Rs485Handler {
class ObcComHandler: public Rs485Handler<
VOR_UART_OBC_MAX_PACKET_SIZE,
UART_OBC_REPLY_BUFFER_SIZE,
UART_OBC_MAX_NUMBER_OF_REPLY_QUEUE_PACKETS
> {
public:
ObcComHandler(std::string name, uint32_t periodMs, UartPortType uartPort,
pinCfgCallback pinCb, uint32_t baudrate, bool overwriteOldTms);
ObcComHandler(std::string name, uint32_t periodMs, Rs485Config cfg);
int handlePacketParsing() override;
private:
......
Subproject commit d21139c2701a8330bf7f947ae4711a78025c9fab
Subproject commit 985fe0c32fb72ad5024cb27701702bef6ae77aa7
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment