解决自动更新bootloader死机的问题

软件版本2.00
解决检测任务中重试失败后不会填充返回值的bug
This commit is contained in:
ranchuan
2023-10-16 18:53:12 +08:00
parent 54bc5b44ac
commit cbbb2af298
21 changed files with 337 additions and 110 deletions

View File

@@ -24,14 +24,14 @@ static volatile uint16_t SMod_Read_Idle_C;
static uint16_t firebus_idle_diff = SMod_Read_Idle_Filter;
const static uint16_t data2bit_signal[]={200,234,275,323,380,446};
static uint16_t datapulus[6][2];
volatile static uint16_t datapulus[6][2];
//发送起始信号
#define SMod_Begin_Plus() SMod_2Bit_Plus(4)
//发送结束信号
#define SMod_End_Plus() SMod_2Bit_Plus(5)
uint8_t EW_CommBuf[EW_DMODE_FRAME_SIZE];
uint16_t EW_DMOD_Peroid = 300;
uint16_t EW_DMOD_READ_Timeout = 6000;
volatile uint8_t EW_CommBuf[EW_DMODE_FRAME_SIZE];
volatile uint16_t EW_DMOD_Peroid = 300;
volatile uint16_t EW_DMOD_READ_Timeout = 6000;
//发送唤醒信号
static void SMod_Wake_Plus(void)
{

View File

@@ -5,7 +5,7 @@
#include "hardware/power.h"
#include "hardware/timer_cfg.h"
#include "hardware/power.h"
static uint16_t jq_idle_current;
volatile static uint16_t jq_idle_current;
#define JQ_IDLE_NOISE 100
@@ -14,19 +14,19 @@ static uint16_t jq_idle_current;
#else
volatile uint16_t* JQ_Read_AD_V = FireBus_ADC_Buf;
#endif
static uint16_t jq_ad_last_sample;
volatile static uint16_t jq_ad_last_sample;
static volatile CurrentSample_Range_eu buscurrent_range = Current_Max;
uint16_t JQ_FreeBack_MaxCur;
uint16_t JQ_FreeBack_MaxTime;
uint16_t JQ_FreeBack_MinCur;
uint16_t JQ_FreeBack_MinTime;
volatile uint16_t JQ_FreeBack_MaxCur;
volatile uint16_t JQ_FreeBack_MaxTime;
volatile uint16_t JQ_FreeBack_MinCur;
volatile uint16_t JQ_FreeBack_MinTime;
uint16_t JQ_CommEnd_MaxCur = 0;
uint8_t JQ_CommEnd_CurEn = 0;
volatile uint16_t JQ_CommEnd_MaxCur = 0;
volatile uint8_t JQ_CommEnd_CurEn = 0;
uint16_t JQ_EnFreeBack_Test = 0;
volatile uint16_t JQ_EnFreeBack_Test = 0;
static void JQ_CommBegin()
{

View File

@@ -16,12 +16,12 @@
#define JQ_Read_AD_Sample_C 140
#define JQ_Read_AD_Sample_C_IDLE 80
extern uint16_t JQ_FreeBack_MaxCur;
extern uint16_t JQ_FreeBack_MaxTime;
extern uint16_t JQ_FreeBack_MinCur;
extern uint16_t JQ_FreeBack_MinTime;
extern uint16_t JQ_CommEnd_MaxCur ;
extern uint8_t JQ_CommEnd_CurEn ;
extern volatile uint16_t JQ_FreeBack_MaxCur;
extern volatile uint16_t JQ_FreeBack_MaxTime;
extern volatile uint16_t JQ_FreeBack_MinCur;
extern volatile uint16_t JQ_FreeBack_MinTime;
extern volatile uint16_t JQ_CommEnd_MaxCur ;
extern volatile uint8_t JQ_CommEnd_CurEn ;
//@brief 读OTP

View File

@@ -1,9 +1,9 @@
#include "XTDriver.h"
#include "hardware/adc_cfg.h"
#include "hardware/timer_cfg.h"
uint32_t XT_SquareCount = 0; //发送载波个数
uint16_t XT_FreeBackMaxCur,XT_FreeBackMinCur,XT_FreeBackMaxTime,XT_FreeBackMinTime,XT_CommEndMaxCur;
uint8_t XT_EnFreeBack_Test,XT_CommEnd_CurEn;
volatile uint32_t XT_SquareCount = 0; //发送载波个数
volatile uint16_t XT_FreeBackMaxCur,XT_FreeBackMinCur,XT_FreeBackMaxTime,XT_FreeBackMinTime,XT_CommEndMaxCur;
volatile uint8_t XT_EnFreeBack_Test,XT_CommEnd_CurEn;
volatile uint8_t XT_SendSquareFlag = 1; //发送方波标志
volatile uint8_t XT_ReadUIDFlag = 1; //扫描标志
@@ -18,8 +18,8 @@ volatile uint16_t* XT_ADC_Buf = FireBus_ADC_Buf;//AD采样缓存区
volatile uint8_t XT_ADCCollectStartFlag = 1; //ADC采集标志
uint32_t XT_ADC_BaseValue = 0; //ADC采集最低电压
uint32_t XT_ADC_CollectValue_sum = 0; //ADC采集电压和
volatile uint32_t XT_ADC_BaseValue = 0; //ADC采集最低电压
volatile uint32_t XT_ADC_CollectValue_sum = 0; //ADC采集电压和
#define XT_FreeBack_Noise 800
//static uint32_t XT_ADCCollectIncrementValue = XTCollectIncrementValue;

View File

@@ -129,8 +129,8 @@
#define XT_CMDC_MEASURE_RES 0x2F //测量药头电阻_C
extern uint16_t XT_FreeBackMaxCur,XT_FreeBackMinCur,XT_FreeBackMaxTime,XT_FreeBackMinTime,XT_CommEndMaxCur;
extern uint8_t XT_EnFreeBack_Test,XT_CommEnd_CurEn;
extern volatile uint16_t XT_FreeBackMaxCur,XT_FreeBackMinCur,XT_FreeBackMaxTime,XT_FreeBackMinTime,XT_CommEndMaxCur;
extern volatile uint8_t XT_EnFreeBack_Test,XT_CommEnd_CurEn;
//************************************************************************//
/*