Enable independent watchdog. Update version to 2.1.7.

m17
Rob Riggs 2021-02-16 19:54:28 -06:00
rodzic 88989be73f
commit 6311ef8134
8 zmienionych plików z 33 dodań i 6 usunięć

Wyświetl plik

@ -3,7 +3,7 @@
<configuration id="ilg.gnuarmeclipse.managedbuild.cross.config.elf.debug.1309195742.6250637" name="ARM_Debug">
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="-1331898584055533658" id="ilg.gnuarmeclipse.managedbuild.cross.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT ARM Cross GCC Built-in Compiler Settings " parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="-1483812282268530309" id="ilg.gnuarmeclipse.managedbuild.cross.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT ARM Cross GCC Built-in Compiler Settings " parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
@ -14,7 +14,7 @@
<configuration id="ilg.gnuarmeclipse.managedbuild.cross.config.elf.debug.1309195742.6250637.815824991" name="ARM_Release">
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="-1246231711512111338" id="ilg.gnuarmeclipse.managedbuild.cross.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT ARM Cross GCC Built-in Compiler Settings " parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="-1398145274611460181" id="ilg.gnuarmeclipse.managedbuild.cross.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT ARM Cross GCC Built-in Compiler Settings " parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
@ -22,4 +22,4 @@
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
</extension>
</configuration>
</project>
</project>

Wyświetl plik

@ -399,6 +399,7 @@ int main(void)
} else {
reset_button = 0;
}
__HAL_RCC_CLEAR_RESET_FLAGS();
/* USER CODE END 1 */
/* MCU Configuration----------------------------------------------------------*/
@ -662,6 +663,8 @@ int main(void)
}
#endif
MX_IWDG_Init();
/* USER CODE END RTOS_QUEUES */

Wyświetl plik

@ -19,6 +19,7 @@ extern osMessageQId hdlcOutputQueueHandle;
extern osMessageQId dacOutputQueueHandle;
extern TIM_HandleTypeDef htim7;
extern DAC_HandleTypeDef hdac1;
extern IWDG_HandleTypeDef hiwdg;
namespace mobilinkd { namespace tnc {
@ -134,6 +135,8 @@ struct AFSKModulator : Modulator
void fill(uint16_t* buffer, bool bit)
{
HAL_IWDG_Refresh(&hiwdg);
for (size_t i = 0; i != BIT_LEN; i++)
{
int s = sin_table[pos_];
@ -183,6 +186,8 @@ struct AFSKModulator : Modulator
void empty()
{
HAL_IWDG_Refresh(&hiwdg);
switch (running_) {
case 1:
running_ = 0;

Wyświetl plik

@ -25,6 +25,7 @@
#include <atomic>
extern osMessageQId ioEventQueueHandle;
extern IWDG_HandleTypeDef hiwdg;
extern "C" void SystemClock_Config(void);
@ -183,6 +184,8 @@ void demodulatorTask() {
continue;
}
HAL_IWDG_Refresh(&hiwdg);
auto block = (adc_pool_type::chunk_type*) evt.value.p;
auto samples = (int16_t*) block->buffer;

Wyświetl plik

@ -5,10 +5,14 @@
#include "Modulator.hpp"
#include "stm32l4xx_hal.h"
#include <array>
#include <algorithm>
#include <cstdint>
extern IWDG_HandleTypeDef hiwdg;
namespace mobilinkd { namespace tnc {
struct Scrambler
@ -128,6 +132,8 @@ struct Fsk9600Modulator : Modulator
void empty()
{
HAL_IWDG_Refresh(&hiwdg);
switch (state)
{
case State::STARTING:
@ -204,6 +210,7 @@ private:
void fill(uint16_t* buffer, bool bit)
{
HAL_IWDG_Refresh(&hiwdg);
switch (level)
{
case Level::HIGH:

Wyświetl plik

@ -29,6 +29,7 @@
extern osMessageQId hdlcOutputQueueHandle;
extern PCD_HandleTypeDef hpcd_USB_FS;
extern osTimerId usbShutdownTimerHandle;
extern IWDG_HandleTypeDef hiwdg;
extern "C" void stop2(void);
extern "C" void shutdown(void const * argument);
@ -121,7 +122,11 @@ void startIOEventTask(void const*)
/* Infinite loop */
for (;;)
{
osEvent evt = osMessageGet(ioEventQueueHandle, osWaitForever);
osEvent evt = osMessageGet(ioEventQueueHandle, 100);
if (hdlc::ioFramePool().size() != 0)
HAL_IWDG_Refresh(&hiwdg);
else
CxxErrorHandler();
if (evt.status != osEventMessage)
continue;

Wyświetl plik

@ -44,10 +44,10 @@ int powerOffViaUSB(void)
namespace mobilinkd { namespace tnc { namespace kiss {
#ifdef NUCLEOTNC
const char FIRMWARE_VERSION[] = "2.1.6";
const char FIRMWARE_VERSION[] = "2.1.7";
const char HARDWARE_VERSION[] = "Mobilinkd NucleoTNC";
#else
const char FIRMWARE_VERSION[] = "2.1.6";
const char FIRMWARE_VERSION[] = "2.1.7";
const char HARDWARE_VERSION[] = "Mobilinkd TNC3 2.1.1";
#endif

Wyświetl plik

@ -29,6 +29,7 @@ static osMessageQId m17EncoderInputQueueHandle;
static osMessageQId m17EncoderOutputQueueHandle;
extern RNG_HandleTypeDef hrng;
extern IWDG_HandleTypeDef hiwdg;
namespace mobilinkd
{
@ -522,6 +523,9 @@ void M17Encoder::encoderTask(void const*)
{
osEvent evt = osMessageGet(m17EncoderInputQueueHandle, osWaitForever);
if (evt.status != osEventMessage) continue;
HAL_IWDG_Refresh(&hiwdg);
auto frame = static_cast<IoFrame*>(evt.value.p);
if (frame->size() != 48) WARN("Bad frame size %u", frame->size());