Compare commits

...

5 Commits

8 changed files with 118 additions and 74 deletions

View File

@ -47,12 +47,12 @@ extern "C" {
/** /**
* @brief Verbose level for all trace logs * @brief Verbose level for all trace logs
*/ */
#define VERBOSE_LEVEL VLEVEL_OFF #define VERBOSE_LEVEL VLEVEL_M
/** /**
* @brief Enable trace logs * @brief Enable trace logs
*/ */
#define APP_LOG_ENABLED 0 #define APP_LOG_ENABLED 1
/** /**
* @brief Activate monitoring (probes) of some internal RF signals for debug purpose * @brief Activate monitoring (probes) of some internal RF signals for debug purpose
@ -75,13 +75,13 @@ extern "C" {
* @brief Enable/Disable MCU Debugger pins (dbg serial wires) * @brief Enable/Disable MCU Debugger pins (dbg serial wires)
* @note by HW serial wires are ON by default, need to put them OFF to save power * @note by HW serial wires are ON by default, need to put them OFF to save power
*/ */
#define DEBUGGER_ENABLED 0 #define DEBUGGER_ENABLED 1
/** /**
* @brief Disable Low Power mode * @brief Disable Low Power mode
* @note 0: LowPowerMode enabled. MCU enters stop2 mode, 1: LowPowerMode disabled. MCU enters sleep mode only * @note 0: LowPowerMode enabled. MCU enters stop2 mode, 1: LowPowerMode disabled. MCU enters sleep mode only
*/ */
#define LOW_POWER_DISABLE 0 #define LOW_POWER_DISABLE 1
/* USER CODE BEGIN EC */ /* USER CODE BEGIN EC */

View File

@ -112,7 +112,7 @@
#define YUNHORN_STS_AC_CODE_SIZE 20U #define YUNHORN_STS_AC_CODE_SIZE 20U
#define STS_NVM_CFG_SIZE 32U #define STS_NVM_CFG_SIZE 32U
#define STS_CFG_PCFG_SIZE 28U #define STS_CFG_PCFG_SIZE 20U
#define STS_CFG_CMD_SIZE 30U #define STS_CFG_CMD_SIZE 30U
#define STS_CFG_CMD_SHORT_LEN 8U #define STS_CFG_CMD_SHORT_LEN 8U
#define STS_MODE_COLOR_CMD_LEN 5U #define STS_MODE_COLOR_CMD_LEN 5U

View File

@ -485,29 +485,55 @@ typedef struct
// 0 --- 10 11 12 -- 39 40 41 42 43 44-63 // 0 --- 10 11 12 -- 39 40 41 42 43 44-63
// LEN P RSS FALL_DETECTION AC_CODE // LEN P RSS FALL_DETECTION AC_CODE
enum nvm_order { enum nvm_order {
NVM_MTM1=0, NVM_MTM1=0, // 0
NVM_MTM2, NVM_MTM2, // 1
NVM_VER, NVM_VER, // 2
NVM_HWV, NVM_HWV, // 3
NVM_PERIODICITY, NVM_PERIODICITY, // 4
NVM_UNIT, NVM_UNIT, // 5
NVM_SAMPLING, NVM_SAMPLING, // 6
NVM_S_UNIT, NVM_S_UNIT, // 7
NVM_WORK_MODE, NVM_WORK_MODE, // 8
NVM_SERVICE_MASK, NVM_SERVICE_MASK, // 9
NVM_RESERVE01, //10 NVM_IOC_MASK, //10
NVM_LEN, //11, 32=0x20 NVM_LEN, //11, 32=0x20
NVM_CFG_START, //12, p[0] bytes for configs, NVM_CFG_START=12, //12, p[0] bytes for configs,
//13, p[1] //13, p[1]
//14, p[2] //14, p[2]
// ... //15, p[3]
//39, P[27] //16, p[4]
NVM_FALL_DETECTION_ACC_THRESHOLD=40, //40 //17, p[5]
NVM_FALL_DETECTION_DEPTH_THRESHOLD, //41 //18, p[6]
NVM_FALL_DETECTION_RESERVE, //42 //19, p[7]
NVM_OCCUPANCY_OVERTIME_THRESHOLD, //43 //20, p[8]
NVM_AC_CODE_START=44 //STORED, NO UPLOAD //21, p[9]
//63, 20 bytes for AC code //22, p[10]
//23, p[11]
//24, p[12]
//25, p[13]
//26, p[14]
//27, p[15]
//28, p[16]
//29, p[17]
//30, p[18]
NVM_CFG_START_END=31, //31, p[19]
NVM_RESERVE02, //32
NVM_RESERVE03, //33
NVM_SENSOR_INSTALL_HEIGHT, //34
NVM_ALARM_PARAMETER05, //35
NVM_ALARM_MUTE_RESET_TIMER, //36
NVM_ALARM_LAMP_BAR_FLASHING_COLOR, //37
NVM_OCCUPANCY_OVERTIME_THRESHOLD, //38
NVM_MOTIONLESS_DURATION_THRESHOLD, //39
NVM_UNCONSCIOUS_LEVEL_THRESHOLD, //40
NVM_FALL_DETECTION_ACC_THRESHOLD, //41
NVM_FALL_DETECTION_DEPTH_THRESHOLD, //42
NVM_FALL_CONFIRM_THRESHOLD, //43
NVM_AC_CODE_START=44 //STORED, NO UPLOAD
//63, 20 bytes for AC code
}; };
typedef struct sts_cfg_nvm { typedef struct sts_cfg_nvm {
@ -524,10 +550,22 @@ typedef struct sts_cfg_nvm {
uint8_t reseve01; uint8_t reseve01;
uint8_t length; // length of following parameters except AC CODE(20bytes) uint8_t length; // length of following parameters except AC CODE(20bytes)
uint8_t p[STS_CFG_PCFG_SIZE]; uint8_t p[STS_CFG_PCFG_SIZE];
uint8_t fall_detection_acc_threshold; // 0 - 9: 0:disable: 1-9 accelaration mg/s2
uint8_t reserve02;
uint8_t reserve03;
uint8_t sensor_install_height_in_10cm;
uint8_t alarm_parameter05;
uint8_t alarm_mute_reset_timer_in_10sec; //60(0x3C) sec alarm_mute_or_reset_expire_timer_in_sec
uint8_t alarm_lamp_bar_flashing_color; //Lamp Bar Flashing color define, 0x20, 2==STS_RED, 0 = STS_DARK, 0x23, 2=STS_RED, 3=STS_BLUE
uint8_t occupancy_overtime_threshold_in_10min; // 0 - 9 0disable, 1-9 occupy over time threshold * 10 min
uint8_t motionless_duration_threshold_in_min; // 10(0x0A) min (2 min.) motionless_duration_threshold_in_min
uint8_t unconscious_or_motionless_level_threshold; // 0 - 9 motion level *128
uint8_t fall_detection_acc_threshold; // 0 - 9: 0:disable: 1-9 accelaration mg/s2
uint8_t fall_detection_depth_threshold; // 0 - 9: 0:disable: 1-9 fall down depth * 10 cm uint8_t fall_detection_depth_threshold; // 0 - 9: 0:disable: 1-9 fall down depth * 10 cm
uint8_t fall_detection_reserve; uint8_t fall_confirm_threshold_in_10sec; // 0-60(0x3C) Sec, or 3*10(0x03) sec default falldown_confirm_threshold_in_10sec
uint8_t occupancy_overtime_threshold; // 0 - 9 0disable, 1-9 occupy over time threshold * 10 min
uint8_t ac[YUNHORN_STS_AC_CODE_SIZE]; // authorization code, 20 bytes MCU UUID coded uint8_t ac[YUNHORN_STS_AC_CODE_SIZE]; // authorization code, 20 bytes MCU UUID coded
} sts_cfg_nvm_t; } sts_cfg_nvm_t;

View File

@ -77,7 +77,7 @@ void MX_DMA_Init(void)
HAL_NVIC_SetPriority(DMA1_Channel6_IRQn, 0, 0); HAL_NVIC_SetPriority(DMA1_Channel6_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(DMA1_Channel6_IRQn); HAL_NVIC_EnableIRQ(DMA1_Channel6_IRQn);
#endif #endif
#if 0 #if 1
/* DMA1_Channel7_IRQn interrupt configuration */ /* DMA1_Channel7_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA1_Channel7_IRQn, 2, 0); HAL_NVIC_SetPriority(DMA1_Channel7_IRQn, 2, 0);
HAL_NVIC_EnableIRQ(DMA1_Channel7_IRQn); HAL_NVIC_EnableIRQ(DMA1_Channel7_IRQn);

View File

@ -108,7 +108,7 @@ int main(void)
/* Initialize all configured peripherals */ /* Initialize all configured peripherals */
MX_GPIO_Init(); MX_GPIO_Init();
HAL_UART_DeInit(&huart2); //HAL_UART_DeInit(&huart2);
MX_DMA_Init(); MX_DMA_Init();
MX_I2C2_Init(); MX_I2C2_Init();
#if 0 #if 0

View File

@ -68,19 +68,19 @@ volatile sts_cfg_nvm_t sts_cfg_nvm = {
sts_mtmcode2, sts_mtmcode2,
sts_version, sts_version,
sts_hardware_ver, sts_hardware_ver,
0x01, //Regular TxPeriodicity interval 0x01, //Regular TxPeriodicity interval
'M', //unit of Regular TxPeriodicity interval 'M', //Uplink data interval unit, for heart-beat uplink
0x3C, //Heart-beat interval or Sampling interval 0x3C, //Heart-beat interval or Sampling interval
'M', //unit of Heart-beat interval or Sampling interval 'M', //Sampling sensor interval unit, for real-time sensing of MEMS
0x04, // dual mode 0x04, // dual mode=4, uni_mode =5
0x00, // service mask 0x00, // sts service mask
0x00, // reserve01 0x00, //sts_ioc_mask
0x20, //32 bytes, below start of p[0] 0x20, //32 bytes, below start of p[0] 20 BYTES AND 12 BYTES FALL DOWN CFG
{ // *******************below 28 bytes { // below 20 bytes
0x08, //start_m [8]*0.1 meter =0.8 0x08, //start_m [8]*0.1 meter =0.8
0x19, //lenght_m 0x19=[25]*0.1=2.5f meter 0x19, //lenght_m 0x19=[25]*0.1=2.5f meter
0x0F, //threshold 0X0F=[15]*0.1=1.5f 0x0F, //threshold 0X0F=[15]*0.1=1.5f
0x28, //receiver gain 0x28 =[40]*0.01=0.40f max 99=0x63 0x28, //receiver gain 0x28 =[40]*0.01=0.40f max 99=0x63
0x04, //profile [4]=4 0x04, //profile [4]=4
0x0A, //rate tracking 0x0A=10= 10U 0x0A, //rate tracking 0x0A=10= 10U
0x41, //rate presence 0x41=65= 65U 0x41, //rate presence 0x41=65= 65U
@ -89,32 +89,32 @@ volatile sts_cfg_nvm_t sts_cfg_nvm = {
0x05, //inter frame deviation time const 0x05=[5]*0.1=0.5f 0x05, //inter frame deviation time const 0x05=[5]*0.1=0.5f
0x0A, //inter frame fast cutoff 0x0A=[10] = 10U 0x0A, //inter frame fast cutoff 0x0A=[10] = 10U
0x01, //inter frame slow cutoff,0x01=1[1]*0.01=0.01f 0x01, //inter frame slow cutoff,0x01=1[1]*0.01=0.01f
0x00, //intra frame time const [0]=0 0x00, ///intra frame time const [0]=0 Lower to reduce sensitivity, higher to increase sensitivity
0x00, //intra frame weight, 0x00=[0]*0.1=0.0F 0x0A, //intra frame weight, 0x00=[0]*0.1=0.0F 0x0A=10, 10*0.1=1 FOR FAST MOVEMENT TRACKING FALL DETECTION
0x05, //output time const 0x05=[5]*0.1=0.5 0x05, //output time const 0x05=[5]*0.1=0.5
0x02, //downsampling factor [2]=2 0x02, //downsampling factor [2]=2
0x03, //power saving mode ACTIVE [3] = 3U 0x03, //power saving mode ACTIVE [3] = 3U
0xFF, //reserve 0x00, //reserve --P[17]
0xFF, //reserve 0x00, //reserve --P[18]
0xFF, //reserve 0x00, //reserve --P[19]
0xFF, //reserve }, // above 20 bytes
0xFF, //reserve 0x00, //reserve2
0xFF, //reserve 0x00, //reserve3
0xFF, //reserve 0x20, //sensor install height in 10 cm, default 32*10=320cm, 3.2meter
0xFF, //reserve
0xFF, //reserve 0x00, //reserve5 alarm_parameter05
0xFF, //reserve 0x06, //reserve6 alarm_mute_or_reset_expire_timer_in_10sec, 60 seconds
0xF, //reserve 0x23, //reserve7 alarm Lamp Bar Flashing color define, 0x20, 2==STS_RED, 0 = STS_DARK, 0x23, 2=STS_RED, 3=STS_BLUE
}, // ******************* above 28 bytes28 bytes 0x03, //reserve8 occupancy over time threshold 3*10 = 30 minutes
// ******************* below 4 bytes
0x09, //reserve8 motionless_duration_threshold_in_min+1, normal: 10 min(0x0A) Minutes (2 min.) 1-9== 2-10min
0x09, //unconscious threshold * 128, 0-9, 9*128=1280 motion level
0x01, //fall_detection_acc_threshold = *10 acceleration measure 0x01, //fall_detection_acc_threshold = *10 acceleration measure
0x03, //fall detection_depth_threshold *10cm 0x03, //fall detection_depth_threshold *10cm
0x00, //reserve 0x03, //falldown_confirm_threshold_in_10sec, 0x3=30 sec default
0x02, //occupancy over time threshold *10 minutes // below 20 bytes for RFAC code
// ******************* ABOVE 4 bytes {0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0},
// below 20 bytes AC
{0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0}
}; };
@ -1010,6 +1010,12 @@ static void OnJoinRequest(LmHandlerJoinParams_t *joinParams)
} }
STS_LoRa_WAN_Joined = (uint8_t) joinParams->Mode; STS_LoRa_WAN_Joined = (uint8_t) joinParams->Mode;
AppData.Port = 1;
AppData.BufferSize = 10;
UTIL_MEM_cpy_8((uint8_t*)AppData.Buffer, "YUNHORN168", 10);
LmHandlerParams.IsTxConfirmed = true;
LmHandlerErrorStatus_t status = LmHandlerSend(&AppData, LmHandlerParams.IsTxConfirmed, false);
if (status ==LORAMAC_HANDLER_SUCCESS ) LmHandlerParams.IsTxConfirmed = false;
OnYunhornSTSHeartBeatPeriodicityChanged(HeartBeatPeriodicity); OnYunhornSTSHeartBeatPeriodicityChanged(HeartBeatPeriodicity);
OnTxPeriodicityChanged(TxPeriodicity); OnTxPeriodicityChanged(TxPeriodicity);
@ -1023,7 +1029,7 @@ static void OnJoinRequest(LmHandlerJoinParams_t *joinParams)
APP_LOG(TS_OFF, VLEVEL_M, "###### U/L FRAME:JOIN | DR:%d | PWR:%d\r\n", joinParams->Datarate, joinParams->TxPower); APP_LOG(TS_OFF, VLEVEL_M, "###### U/L FRAME:JOIN | DR:%d | PWR:%d\r\n", joinParams->Datarate, joinParams->TxPower);
} }
//heart_beat_timer = 1; //heart_beat_timer = 1;
SendTxData(); //SendTxData();
//UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); //UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0);
//STS_SENSOR_Upload_Message(LORAWAN_USER_HTBT_PORT, 12,"Yunhorn88STS"); //STS_SENSOR_Upload_Message(LORAWAN_USER_HTBT_PORT, 12,"Yunhorn88STS");
//STS_SENSOR_Upload_Message(LORAWAN_USER_HTBT_PORT, 12,"Yunhorn88STS"); //STS_SENSOR_Upload_Message(LORAWAN_USER_HTBT_PORT, 12,"Yunhorn88STS");
@ -1582,7 +1588,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_S_UNIT]; //Heart-beat or SAMPLING Periodicity unit outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_S_UNIT]; //Heart-beat or SAMPLING Periodicity unit
outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_WORK_MODE]; // STS WORK MODE outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_WORK_MODE]; // STS WORK MODE
outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_SERVICE_MASK]; //service mask outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_SERVICE_MASK]; //service mask
outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_RESERVE01]; //service mask outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_IOC_MASK]; //service mask
outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_LEN]; //length of following cfg value outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_LEN]; //length of following cfg value
for (uint8_t j=0; j < cfg_in_nvm[NVM_LEN]; j++) { for (uint8_t j=0; j < cfg_in_nvm[NVM_LEN]; j++) {
@ -1945,8 +1951,8 @@ void OnStoreSTSCFGContextRequest(void)
nvm_store_value[i++] = sts_cfg_nvm.fall_detection_acc_threshold; nvm_store_value[i++] = sts_cfg_nvm.fall_detection_acc_threshold;
nvm_store_value[i++] = sts_cfg_nvm.fall_detection_depth_threshold; nvm_store_value[i++] = sts_cfg_nvm.fall_detection_depth_threshold;
nvm_store_value[i++] = sts_cfg_nvm.fall_detection_reserve; nvm_store_value[i++] = sts_cfg_nvm.fall_confirm_threshold_in_10sec;
nvm_store_value[i++] = sts_cfg_nvm.occupancy_overtime_threshold; //nvm_store_value[i++] = sts_cfg_nvm.occupancy_overtime_threshold;
if ((sts_cfg_nvm.ac[0]!=0x0) && (sts_cfg_nvm.ac[19]!=0x0)) { if ((sts_cfg_nvm.ac[0]!=0x0) && (sts_cfg_nvm.ac[19]!=0x0)) {
for (j = 0; j < YUNHORN_STS_AC_CODE_SIZE; j++) { for (j = 0; j < YUNHORN_STS_AC_CODE_SIZE; j++) {
nvm_store_value[i++] = (sts_cfg_nvm.ac[j]); nvm_store_value[i++] = (sts_cfg_nvm.ac[j]);
@ -2008,7 +2014,7 @@ void STS_REBOOT_CONFIG_Init(void)
sts_cfg_nvm.s_unit = (uint8_t)(nvm_stored_value[NVM_S_UNIT]); sts_cfg_nvm.s_unit = (uint8_t)(nvm_stored_value[NVM_S_UNIT]);
sts_cfg_nvm.work_mode = (uint8_t)(nvm_stored_value[NVM_WORK_MODE]); sts_cfg_nvm.work_mode = (uint8_t)(nvm_stored_value[NVM_WORK_MODE]);
sts_cfg_nvm.sts_service_mask = (uint8_t)(nvm_stored_value[NVM_SERVICE_MASK]); sts_cfg_nvm.sts_service_mask = (uint8_t)(nvm_stored_value[NVM_SERVICE_MASK]);
sts_cfg_nvm.reseve01 = (uint8_t)(nvm_stored_value[NVM_RESERVE01]); sts_cfg_nvm.reseve01 = (uint8_t)(nvm_stored_value[NVM_IOC_MASK]);
sts_cfg_nvm.length = (uint8_t)(nvm_stored_value[NVM_LEN]&0x3F); //MAX 32 bytes sts_cfg_nvm.length = (uint8_t)(nvm_stored_value[NVM_LEN]&0x3F); //MAX 32 bytes
for (uint8_t j=0; j< sts_cfg_nvm.length; j++) { for (uint8_t j=0; j< sts_cfg_nvm.length; j++) {
@ -2017,8 +2023,8 @@ void STS_REBOOT_CONFIG_Init(void)
sts_cfg_nvm.fall_detection_acc_threshold = (uint8_t)nvm_stored_value[NVM_FALL_DETECTION_ACC_THRESHOLD]; sts_cfg_nvm.fall_detection_acc_threshold = (uint8_t)nvm_stored_value[NVM_FALL_DETECTION_ACC_THRESHOLD];
sts_cfg_nvm.fall_detection_depth_threshold = (uint8_t)nvm_stored_value[NVM_FALL_DETECTION_DEPTH_THRESHOLD]; sts_cfg_nvm.fall_detection_depth_threshold = (uint8_t)nvm_stored_value[NVM_FALL_DETECTION_DEPTH_THRESHOLD];
sts_cfg_nvm.fall_detection_reserve = (uint8_t)nvm_stored_value[NVM_FALL_DETECTION_RESERVE]; sts_cfg_nvm.fall_confirm_threshold_in_10sec = (uint8_t)nvm_stored_value[NVM_FALL_CONFIRM_THRESHOLD];
sts_cfg_nvm.occupancy_overtime_threshold = (uint8_t)nvm_stored_value[NVM_OCCUPANCY_OVERTIME_THRESHOLD]; //sts_cfg_nvm.occupancy_overtime_threshold = (uint8_t)nvm_stored_value[NVM_OCCUPANCY_OVERTIME_THRESHOLD];
for (uint8_t j=0; j< YUNHORN_STS_AC_CODE_SIZE; j++) { for (uint8_t j=0; j< YUNHORN_STS_AC_CODE_SIZE; j++) {
sts_cfg_nvm.ac[j] = (uint8_t)nvm_stored_value[NVM_AC_CODE_START +j]; sts_cfg_nvm.ac[j] = (uint8_t)nvm_stored_value[NVM_AC_CODE_START +j];

View File

@ -71,7 +71,7 @@ extern "C" {
/*! /*!
* LoRaWAN default class * LoRaWAN default class
*/ */
#define LORAWAN_DEFAULT_CLASS CLASS_A #define LORAWAN_DEFAULT_CLASS CLASS_C
/*! /*!
* LoRaWAN default confirm state * LoRaWAN default confirm state

View File

@ -5,7 +5,7 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> <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.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" 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="862132610873898441" 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 &quot;${INPUTS}&quot;" prefer-non-shared="true"> <provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1048471218779752885" 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 &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/> <language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/> <language-scope id="org.eclipse.cdt.core.g++"/>
</provider> </provider>
@ -16,7 +16,7 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> <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.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" 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="862132610873898441" 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 &quot;${INPUTS}&quot;" prefer-non-shared="true"> <provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1048471218779752885" 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 &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/> <language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/> <language-scope id="org.eclipse.cdt.core.g++"/>
</provider> </provider>