diff --git a/workspace/TS100/HAL_Driver/Src/stm32f1xx_hal_i2c.c b/workspace/TS100/HAL_Driver/Src/stm32f1xx_hal_i2c.c
index b6336c13..cf56db87 100644
--- a/workspace/TS100/HAL_Driver/Src/stm32f1xx_hal_i2c.c
+++ b/workspace/TS100/HAL_Driver/Src/stm32f1xx_hal_i2c.c
@@ -3478,48 +3478,7 @@ void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c)
}
}
}
- /* Slave mode selected */
- else
- {
- /* ADDR set --------------------------------------------------------------*/
- if(((sr1itflags & I2C_FLAG_ADDR) != RESET) && ((itsources & I2C_IT_EVT) != RESET))
- {
- I2C_Slave_ADDR(hi2c);
- }
- /* STOPF set --------------------------------------------------------------*/
- else if(((sr1itflags & I2C_FLAG_STOPF) != RESET) && ((itsources & I2C_IT_EVT) != RESET))
- {
- I2C_Slave_STOPF(hi2c);
- }
- /* I2C in mode Transmitter -----------------------------------------------*/
- else if((sr2itflags & I2C_FLAG_TRA) != RESET)
- {
- /* TXE set and BTF reset -----------------------------------------------*/
- if(((sr1itflags & I2C_FLAG_TXE) != RESET) && ((itsources & I2C_IT_BUF) != RESET) && ((sr1itflags & I2C_FLAG_BTF) == RESET))
- {
- I2C_SlaveTransmit_TXE(hi2c);
- }
- /* BTF set -------------------------------------------------------------*/
- else if(((sr1itflags & I2C_FLAG_BTF) != RESET) && ((itsources & I2C_IT_EVT) != RESET))
- {
- I2C_SlaveTransmit_BTF(hi2c);
- }
- }
- /* I2C in mode Receiver --------------------------------------------------*/
- else
- {
- /* RXNE set and BTF reset ----------------------------------------------*/
- if(((sr1itflags & I2C_FLAG_RXNE) != RESET) && ((itsources & I2C_IT_BUF) != RESET) && ((sr1itflags & I2C_FLAG_BTF) == RESET))
- {
- I2C_SlaveReceive_RXNE(hi2c);
- }
- /* BTF set -------------------------------------------------------------*/
- else if(((sr1itflags & I2C_FLAG_BTF) != RESET) && ((itsources & I2C_IT_EVT) != RESET))
- {
- I2C_SlaveReceive_BTF(hi2c);
- }
- }
- }
+
}
/**
diff --git a/workspace/TS100/LinkerScript.ld b/workspace/TS100/LinkerScript.ld
index 6d1b4983..cf06f1fd 100644
--- a/workspace/TS100/LinkerScript.ld
+++ b/workspace/TS100/LinkerScript.ld
@@ -6,14 +6,19 @@ ENTRY(Reset_Handler)
/* Highest address of the user mode stack */
_estack = 0x20005000; /* end of RAM */
-_Min_Heap_Size = 0x200; /* required amount of heap */
-_Min_Stack_Size = 0x400; /* required amount of stack */
+_Min_Heap_Size = 0x300; /* required amount of heap */
+_Min_Stack_Size = 1024; /* required amount of stack */
/* Memories definition */
MEMORY
{
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 20K
- ROM (rx) : ORIGIN = 0x08004000, LENGTH = 46K
+ /* LOCAL_BUILD*/
+/*ROM (rx) : ORIGIN = 0x08000000, LENGTH = 46K*/
+ /* production*/
+ROM (rx) : ORIGIN = 0x08004000, LENGTH = 46K
+
+
}
/* ROM is normally 48K after the bootloader, however we allocate the last page for settings, and the second last one for display boot logo*/
diff --git a/workspace/TS100/inc/FreeRTOSConfig.h b/workspace/TS100/inc/FreeRTOSConfig.h
index 31dcdfab..658c6bea 100644
--- a/workspace/TS100/inc/FreeRTOSConfig.h
+++ b/workspace/TS100/inc/FreeRTOSConfig.h
@@ -101,13 +101,13 @@
#define configTICK_RATE_HZ ((TickType_t)100)
#define configMAX_PRIORITIES ( 4 )
#define configMINIMAL_STACK_SIZE ((uint16_t)256)
-#define configTOTAL_HEAP_SIZE ((size_t)10240+2048) /*Currently use about 9000*/
+#define configTOTAL_HEAP_SIZE ((size_t)1024*14) /*Currently use about 9000*/
#define configMAX_TASK_NAME_LEN ( 24 )
#define configUSE_16_BIT_TICKS 0
#define configUSE_MUTEXES 1
#define configQUEUE_REGISTRY_SIZE 8
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
-#define configCHECK_FOR_STACK_OVERFLOW 0 /*Bump this to 2 during development and bug hunting*/
+#define configCHECK_FOR_STACK_OVERFLOW 2 /*Bump this to 2 during development and bug hunting*/
/* Co-routine definitions. */
diff --git a/workspace/TS100/src/Setup.c b/workspace/TS100/src/Setup.c
index ce834931..8108d1a5 100644
--- a/workspace/TS100/src/Setup.c
+++ b/workspace/TS100/src/Setup.c
@@ -32,8 +32,13 @@ static void MX_ADC2_Init(void);
void Setup_HAL() {
SystemClock_Config();
- __HAL_AFIO_REMAP_SWJ_DISABLE()
- ;
+ #ifndef LOCAL_BUILD
+__HAL_AFIO_REMAP_SWJ_DISABLE();
+ #else
+__HAL_AFIO_REMAP_SWJ_NOJTAG();
+ #endif
+
+
MX_GPIO_Init();
MX_DMA_Init();
MX_I2C1_Init();
@@ -226,7 +231,7 @@ static void MX_ADC2_Init(void) {
/* I2C1 init function */
static void MX_I2C1_Init(void) {
hi2c1.Instance = I2C1;
- hi2c1.Init.ClockSpeed = 50000;
+ hi2c1.Init.ClockSpeed = 75000;
// OLED doesnt handle >100k when its asleep (off).
hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2;
hi2c1.Init.OwnAddress1 = 0;
@@ -243,7 +248,9 @@ static void MX_IWDG_Init(void) {
hiwdg.Instance = IWDG;
hiwdg.Init.Prescaler = IWDG_PRESCALER_256;
hiwdg.Init.Reload = 100;
+#ifndef LOCAL_BUILD
HAL_IWDG_Init(&hiwdg);
+#endif
}
/* TIM3 init function */
@@ -253,11 +260,11 @@ static void MX_TIM3_Init(void) {
TIM_OC_InitTypeDef sConfigOC;
htim3.Instance = TIM3;
- htim3.Init.Prescaler = 4;
+ htim3.Init.Prescaler = 8;
htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
htim3.Init.Period = 100; // 10 Khz PWM freq
htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV4; // 4mhz before div
- htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
HAL_TIM_Base_Init(&htim3);
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
@@ -314,7 +321,7 @@ static void MX_TIM2_Init(void) {
htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
htim2.Init.Period = 255 + 60;
htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV4; // 4mhz before divide
- htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
HAL_TIM_Base_Init(&htim2);
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
diff --git a/workspace/TS100/src/gui.cpp b/workspace/TS100/src/gui.cpp
index a2ab5b1a..b9d7b3b1 100644
--- a/workspace/TS100/src/gui.cpp
+++ b/workspace/TS100/src/gui.cpp
@@ -580,7 +580,7 @@ static void settings_displayTipModel(void) {
OLED::setFont(1);
// set the cursor
// Print the mfg
- OLED::setCursor(40, 0);
+ OLED::setCursor(55, 0);
if (systemSettings.tipType < Tip_MiniWare) {
#ifdef MODEL_TS100
OLED::print("TS100");
@@ -596,7 +596,7 @@ static void settings_displayTipModel(void) {
else if (systemSettings.tipType == Tip_Custom) {
OLED::print("User");
}
- OLED::setCursor(40, 8);
+ OLED::setCursor(55, 8);
#ifdef MODEL_TS100
switch ((enum TipType)systemSettings.tipType) {
case TS_B2:
diff --git a/workspace/TS100/src/main.cpp b/workspace/TS100/src/main.cpp
index 6720dc6c..4637f6e1 100644
--- a/workspace/TS100/src/main.cpp
+++ b/workspace/TS100/src/main.cpp
@@ -555,68 +555,70 @@ static void gui_solderingMode(uint8_t jumpToSleep) {
OLED::clearScreen();
OLED::setFont(0);
uint16_t tipTemp = getTipRawTemp(0);
- if (tipTemp > 32760) {
- badTipCounter++;
+ if (tipTemp > 32700) {
+ badTipCounter++;// Use a counter so that error has to persist for > 1 second continious so that peak errors dont trip it
} else {
badTipCounter = 0;
- if (systemSettings.detailedSoldering) {
- OLED::setFont(1);
- OLED::print(SolderingAdvancedPowerPrompt); // Power:
- OLED::printNumber(milliWattHistory[0] / 1000, 2);
- OLED::drawChar('.');
- OLED::printNumber(milliWattHistory[0] / 100 % 10, 1);
- OLED::drawChar('W');
+ }
+ //Draw in the screen details
+ if (systemSettings.detailedSoldering) {
+ OLED::setFont(1);
+ OLED::print(SolderingAdvancedPowerPrompt); // Power:
+ OLED::printNumber(milliWattHistory[0] / 1000, 2);
+ OLED::drawChar('.');
+ OLED::printNumber(milliWattHistory[0] / 100 % 10, 1);
+ OLED::drawChar('W');
- if (systemSettings.sensitivity && systemSettings.SleepTime) {
- OLED::print(" ");
- display_countdown(sleepThres);
- }
-
- OLED::setCursor(0, 8);
- OLED::print(SleepingTipAdvancedString);
- gui_drawTipTemp(true);
+ if (systemSettings.sensitivity && systemSettings.SleepTime) {
OLED::print(" ");
- printVoltage();
- OLED::drawChar('V');
+ display_countdown(sleepThres);
+ }
+
+ OLED::setCursor(0, 8);
+ OLED::print(SleepingTipAdvancedString);
+ gui_drawTipTemp(true);
+ OLED::print(" ");
+ printVoltage();
+ OLED::drawChar('V');
+ } else {
+ // We switch the layout direction depending on the orientation of the
+ // OLED::
+ if (OLED::getRotation()) {
+ // battery
+ gui_drawBatteryIcon();
+ OLED::drawChar(' '); // Space out gap between battery <-> temp
+ gui_drawTipTemp(true); // Draw current tip temp
+
+ // We draw boost arrow if boosting, or else gap temp <-> heat
+ // indicator
+ if (boostModeOn)
+ OLED::drawSymbol(2);
+ else
+ OLED::drawChar(' ');
+
+ // Draw heating/cooling symbols
+ OLED::drawHeatSymbol(
+ milliWattsToPWM(milliWattHistory[0],
+ systemSettings.voltageDiv));
} else {
- // We switch the layout direction depending on the orientation of the
- // OLED::
- if (OLED::getRotation()) {
- // battery
- gui_drawBatteryIcon();
- OLED::drawChar(' '); // Space out gap between battery <-> temp
- gui_drawTipTemp(true); // Draw current tip temp
+ // Draw heating/cooling symbols
+ OLED::drawHeatSymbol(
+ milliWattsToPWM(milliWattHistory[0],
+ systemSettings.voltageDiv));
+ // We draw boost arrow if boosting, or else gap temp <-> heat
+ // indicator
+ if (boostModeOn)
+ OLED::drawSymbol(2);
+ else
+ OLED::drawChar(' ');
+ gui_drawTipTemp(true); // Draw current tip temp
- // We draw boost arrow if boosting, or else gap temp <-> heat
- // indicator
- if (boostModeOn)
- OLED::drawSymbol(2);
- else
- OLED::drawChar(' ');
+ OLED::drawChar(' '); // Space out gap between battery <-> temp
- // Draw heating/cooling symbols
- OLED::drawHeatSymbol(
- milliWattsToPWM(milliWattHistory[0],
- systemSettings.voltageDiv));
- } else {
- // Draw heating/cooling symbols
- OLED::drawHeatSymbol(
- milliWattsToPWM(milliWattHistory[0],
- systemSettings.voltageDiv));
- // We draw boost arrow if boosting, or else gap temp <-> heat
- // indicator
- if (boostModeOn)
- OLED::drawSymbol(2);
- else
- OLED::drawChar(' ');
- gui_drawTipTemp(true); // Draw current tip temp
-
- OLED::drawChar(' '); // Space out gap between battery <-> temp
-
- gui_drawBatteryIcon();
- }
+ gui_drawBatteryIcon();
}
}
+
if (badTipCounter > 128) {
OLED::print(BadTipString);
OLED::refresh();
diff --git a/workspace/TS100/src/stm32f1xx_hal_msp.c b/workspace/TS100/src/stm32f1xx_hal_msp.c
index 6715d4bf..d0b6cebd 100644
--- a/workspace/TS100/src/stm32f1xx_hal_msp.c
+++ b/workspace/TS100/src/stm32f1xx_hal_msp.c
@@ -26,12 +26,6 @@ void HAL_MspInit(void) {
/* SysTick_IRQn interrupt configuration */
HAL_NVIC_SetPriority(SysTick_IRQn, 15, 0);
- /**NOJTAG: JTAG-DP Disabled and SW-DP Enabled
- */
- //__HAL_AFIO_REMAP_SWJ_NOJTAG()
- //;
- __HAL_AFIO_REMAP_SWJ_DISABLE()
- ; /*Disable swd for debug io use*/
}
diff --git a/workspace/TS100/src/system_stm32f1xx.c b/workspace/TS100/src/system_stm32f1xx.c
index f38ce823..662d38d6 100644
--- a/workspace/TS100/src/system_stm32f1xx.c
+++ b/workspace/TS100/src/system_stm32f1xx.c
@@ -11,9 +11,14 @@
#if defined(STM32F100xE) || defined(STM32F101xE) || defined(STM32F101xG) || defined(STM32F103xE) || defined(STM32F103xG)
/* #define DATA_IN_ExtSRAM */
#endif /* STM32F100xE || STM32F101xE || STM32F101xG || STM32F103xE || STM32F103xG */
-
+#ifndef LOCAL_BUILD
#define VECT_TAB_OFFSET 0x00004000U /*!< Vector Table base offset field.
This value must be a multiple of 0x200. */
+#else
+#define VECT_TAB_OFFSET 0x00000000U /*!< Vector Table base offset field.
+ This value must be a multiple of 0x200. */
+#warning LOCAL_BUILD SETUP
+ #endif
//We offset this by 0x4000 to because of the bootloader
/*******************************************************************************
* Clock Definitions
diff --git a/workspace/TS100A/.cproject b/workspace/TS100A/.cproject
index 0d7af38f..031f03fc 100644
--- a/workspace/TS100A/.cproject
+++ b/workspace/TS100A/.cproject
@@ -46,7 +46,7 @@
-
+
@@ -126,7 +126,7 @@
-
+
@@ -315,6 +315,166 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/workspace/TS100A/.gitignore b/workspace/TS100A/.gitignore
index 2018cd2b..c4a1dda3 100644
--- a/workspace/TS100A/.gitignore
+++ b/workspace/TS100A/.gitignore
@@ -1,2 +1,3 @@
/Release/
/TS100/
+/TS100_LOCAL/
diff --git a/workspace/TS100A/.settings/language.settings.xml b/workspace/TS100A/.settings/language.settings.xml
index 45af93f2..b0df2033 100644
--- a/workspace/TS100A/.settings/language.settings.xml
+++ b/workspace/TS100A/.settings/language.settings.xml
@@ -20,4 +20,14 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/workspace/TS100A/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/workspace/TS100A/.settings/org.eclipse.cdt.managedbuilder.core.prefs
index ec2ba202..331f04f5 100644
--- a/workspace/TS100A/.settings/org.eclipse.cdt.managedbuilder.core.prefs
+++ b/workspace/TS100A/.settings/org.eclipse.cdt.managedbuilder.core.prefs
@@ -1,4 +1,10 @@
eclipse.preferences.version=1
+environment/buildEnvironmentInclude/com.atollic.truestudio.configuration.release.200032419.2005314669.1746279461/CPATH/delimiter=;
+environment/buildEnvironmentInclude/com.atollic.truestudio.configuration.release.200032419.2005314669.1746279461/CPATH/operation=remove
+environment/buildEnvironmentInclude/com.atollic.truestudio.configuration.release.200032419.2005314669.1746279461/C_INCLUDE_PATH/delimiter=;
+environment/buildEnvironmentInclude/com.atollic.truestudio.configuration.release.200032419.2005314669.1746279461/C_INCLUDE_PATH/operation=remove
+environment/buildEnvironmentInclude/com.atollic.truestudio.configuration.release.200032419.2005314669.1746279461/append=true
+environment/buildEnvironmentInclude/com.atollic.truestudio.configuration.release.200032419.2005314669.1746279461/appendContributed=true
environment/buildEnvironmentInclude/com.atollic.truestudio.configuration.release.200032419.2005314669/CPATH/delimiter=;
environment/buildEnvironmentInclude/com.atollic.truestudio.configuration.release.200032419.2005314669/CPATH/operation=remove
environment/buildEnvironmentInclude/com.atollic.truestudio.configuration.release.200032419.2005314669/C_INCLUDE_PATH/delimiter=;
@@ -11,6 +17,10 @@ environment/buildEnvironmentInclude/com.atollic.truestudio.configuration.release
environment/buildEnvironmentInclude/com.atollic.truestudio.configuration.release.200032419/C_INCLUDE_PATH/operation=remove
environment/buildEnvironmentInclude/com.atollic.truestudio.configuration.release.200032419/append=true
environment/buildEnvironmentInclude/com.atollic.truestudio.configuration.release.200032419/appendContributed=true
+environment/buildEnvironmentLibrary/com.atollic.truestudio.configuration.release.200032419.2005314669.1746279461/LIBRARY_PATH/delimiter=;
+environment/buildEnvironmentLibrary/com.atollic.truestudio.configuration.release.200032419.2005314669.1746279461/LIBRARY_PATH/operation=remove
+environment/buildEnvironmentLibrary/com.atollic.truestudio.configuration.release.200032419.2005314669.1746279461/append=true
+environment/buildEnvironmentLibrary/com.atollic.truestudio.configuration.release.200032419.2005314669.1746279461/appendContributed=true
environment/buildEnvironmentLibrary/com.atollic.truestudio.configuration.release.200032419.2005314669/LIBRARY_PATH/delimiter=;
environment/buildEnvironmentLibrary/com.atollic.truestudio.configuration.release.200032419.2005314669/LIBRARY_PATH/operation=remove
environment/buildEnvironmentLibrary/com.atollic.truestudio.configuration.release.200032419.2005314669/append=true
diff --git a/workspace/TS100A/TS100A.elf.launch b/workspace/TS100A/TS100A.elf.launch
new file mode 100644
index 00000000..e2380e8e
--- /dev/null
+++ b/workspace/TS100A/TS100A.elf.launch
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+