mirror of
https://git.intern.spaceteamaachen.de/ALPAKA/TACOS.git
synced 2025-06-10 16:45:59 +00:00
Changed TacosThread termination to work correctly; fixed bugs in the testing
This commit is contained in:
parent
a70dc00f4c
commit
2b4e634179
@ -25,6 +25,7 @@
|
||||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.1523528544" name="Board" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="genericBoard" valueType="string"/>
|
||||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1559967274" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.6 || Debug || true || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32F411RETx || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Core/Inc | ../Drivers/STM32F4xx_HAL_Driver/Inc | ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy | ../Drivers/CMSIS/Device/ST/STM32F4xx/Include | ../Drivers/CMSIS/Include | ../Middlewares/Third_Party/FreeRTOS/Source/include | ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 | ../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F || || || USE_HAL_DRIVER | STM32F411xE || || Drivers | Core/Startup | Middlewares | Core || || || ${workspace_loc:/${ProjName}/STM32F411RETX_FLASH.ld} || true || NonSecure || || secure_nsclib.o || || None || || || " valueType="string"/>
|
||||
<option id="com.st.stm32cube.ide.mcu.debug.option.cpuclock.1388963198" name="Cpu clock frequence" superClass="com.st.stm32cube.ide.mcu.debug.option.cpuclock" useByScannerDiscovery="false" value="16" valueType="string"/>
|
||||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.nanoprintffloat.2054601156" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.nanoprintffloat" value="true" valueType="boolean"/>
|
||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.682707397" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/>
|
||||
<builder buildPath="${workspace_loc:/TACOS}/Debug" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.1663759602" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder"/>
|
||||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.1268227203" name="MCU GCC Assembler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler">
|
||||
|
@ -5,7 +5,7 @@
|
||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-409744681908698058" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1366383323889271194" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
@ -16,7 +16,7 @@
|
||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-409744681908698058" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1366383323889271194" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
|
@ -16,6 +16,7 @@
|
||||
#include <tasks/disturb.hpp>
|
||||
#include <gpio.h>
|
||||
#include <sta/devices/stm32/gpio_pin.hpp>
|
||||
#include <sta/rtos/debug/heap_stats.hpp>
|
||||
|
||||
#include <memory>
|
||||
|
||||
@ -39,6 +40,10 @@ namespace sta
|
||||
Manager::instance()->registerThread(std::make_shared<demo::DummyTask>("State 2 - FAIL"), {2});
|
||||
Manager::instance()->registerThread(std::make_shared<demo::Toggle>(), {0, 1});
|
||||
Manager::instance()->registerThread(std::make_shared<demo::DisturbTask>(), {0, 1});
|
||||
|
||||
STA_DEBUG_PRINTF("The answer to everything is %d", 42);
|
||||
|
||||
STA_DEBUG_HEAP_STATS();
|
||||
}
|
||||
} // namespace tacos
|
||||
} // namespace sta
|
||||
|
@ -27,7 +27,7 @@ namespace demo
|
||||
osDelay(5000);
|
||||
|
||||
// Have we been requested to terminate while waiting?
|
||||
if (!isRunning())
|
||||
if (isTerminationRequested())
|
||||
return;
|
||||
|
||||
// Do some important stuff...
|
||||
@ -38,14 +38,10 @@ namespace demo
|
||||
if (state != 2)
|
||||
{
|
||||
next = 1 - state;
|
||||
}
|
||||
else
|
||||
{
|
||||
next = 0;
|
||||
}
|
||||
|
||||
STA_DEBUG_PRINTLN("Toggle!");
|
||||
sta::tacos::Statemachine::instance()->requestStateTransition(state, next, 0);
|
||||
STA_DEBUG_PRINTLN("Toggle!");
|
||||
sta::tacos::Statemachine::instance()->requestStateTransition(state, next, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit 615900f16e246f3f33eebb9b022b7da3c62b7162
|
||||
Subproject commit dccdacae426f699405da195f7d6ddb283a12e632
|
@ -1 +1 @@
|
||||
Subproject commit 4da1f0bb7dd48f89e9dd5ee0ec181638894e55e2
|
||||
Subproject commit fb17c11903d1e7c92a2de3ea08bbed8386a7f35a
|
@ -81,21 +81,26 @@ namespace sta
|
||||
// Infinite loop allowing quick restarts of this thread after termination.
|
||||
while (true)
|
||||
{
|
||||
// The thread has to wait until the startup has been completed.
|
||||
// The thread has to wait until the system startup has been completed.
|
||||
rtos::waitForStartupEvent();
|
||||
|
||||
// Wait for a thread start flag.
|
||||
wait(STA_RTOS_THREAD_FLAG_START);
|
||||
|
||||
// Call user-defined initialization code.
|
||||
running_ = true;
|
||||
init();
|
||||
|
||||
// Run the thread until the termination flag is set.
|
||||
while (!resetTerminationRequest())
|
||||
// Run the thread until the termination flag is set. Reset this
|
||||
while (!isTerminationRequested())
|
||||
{
|
||||
func();
|
||||
}
|
||||
|
||||
// Clear the termination request flag for this thread.
|
||||
deleteTerminationRequest();
|
||||
|
||||
// Call user-defined cleanup code.
|
||||
cleanup();
|
||||
running_ = false;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user