diff --git a/STM32F1_HAL_freeRTOS_Framework/SYSTEM/FATFS/diskio.c b/STM32F1_HAL_freeRTOS_Framework/SYSTEM/FATFS/diskio.c
index 3b32440..fb16d20 100644
--- a/STM32F1_HAL_freeRTOS_Framework/SYSTEM/FATFS/diskio.c
+++ b/STM32F1_HAL_freeRTOS_Framework/SYSTEM/FATFS/diskio.c
@@ -75,8 +75,9 @@ DSTATUS disk_initialize (
return stat;
case DEV_SD : /*SDIO SD卡初始化*/
+ #if (SYSTEM_SDIO_SD_ENABLE) && ((STM32F103xG) || (STM32F103xE))
stat = (DSTATUS)SD_Init();
-
+ #endif
return stat;
case DEV_USB :
@@ -116,8 +117,9 @@ DRESULT disk_read (
return res;
case DEV_SD : /*SDIO SD卡读*/
+ #if (SYSTEM_SDIO_SD_ENABLE) && ((STM32F103xG) || (STM32F103xE))
res = (DRESULT)SD_ReadDisk(buff,sector,count);
-
+ #endif
return res;
case DEV_USB :
@@ -158,8 +160,9 @@ DRESULT disk_write (
return res;
case DEV_SD : /*SDIO SD卡写*/
+ #if (SYSTEM_SDIO_SD_ENABLE) && ((STM32F103xG) || (STM32F103xE))
res = (DRESULT)SD_WriteDisk((u8*)buff,sector,count);
-
+ #endif
return res;
case DEV_USB :
@@ -206,11 +209,15 @@ DRESULT disk_ioctl (
res = RES_OK;
break;
case GET_BLOCK_SIZE:
+ #if (SYSTEM_SDIO_SD_ENABLE) && ((STM32F103xG) || (STM32F103xE))
*(WORD*)buff = SDCardInfo.LogBlockSize;
+ #endif
res = RES_OK;
break;
case GET_SECTOR_COUNT:
+ #if (SYSTEM_SDIO_SD_ENABLE) && ((STM32F103xG) || (STM32F103xE))
*(DWORD*)buff = SDCardInfo.LogBlockNbr;
+ #endif
res = RES_OK;
break;
default:
diff --git a/STM32F1_HAL_freeRTOS_Framework/SYSTEM/PeriphConfig/PeriphConfig.c b/STM32F1_HAL_freeRTOS_Framework/SYSTEM/PeriphConfig/PeriphConfig.c
index f1abcd0..4413064 100644
--- a/STM32F1_HAL_freeRTOS_Framework/SYSTEM/PeriphConfig/PeriphConfig.c
+++ b/STM32F1_HAL_freeRTOS_Framework/SYSTEM/PeriphConfig/PeriphConfig.c
@@ -874,6 +874,12 @@ void sys_ADC1_ENABLE(void)
i = 1;
RCC_PeriphCLKInitTypeDef ADC_CLKInit;
+ #if SYSTEM_ADC1_useScan
+ /*先初始化DMA,再初始化ADC*/
+ ADC_DMA_Cfg();
+ //HAL_ADC_Start_DMA(&ADC1_Handler, (uint32_t*)&adValue,12); //开始DMA,指定接收数组,最后一个参数为数据长度
+ #endif
+
ADC_CLKInit.PeriphClockSelection=RCC_PERIPHCLK_ADC; //ADC外设时钟
ADC_CLKInit.AdcClockSelection=RCC_ADCPCLK2_DIV6; //分频因子6时钟为72M/6=12MHz
HAL_RCCEx_PeriphCLKConfig(&ADC_CLKInit); //设置ADC时钟
@@ -885,8 +891,10 @@ void sys_ADC1_ENABLE(void)
ADC1_Handler.Init.ScanConvMode=DISABLE; //非扫描模式
else ADC1_Handler.Init.ScanConvMode=ENABLE; //扫描模式
- ADC1_Handler.Init.ContinuousConvMode=DISABLE; //连续转换,开启则是,触发一次转换本组所有通道,否则触发一次只转换一次
-
+ if(SYSTEM_ADC1_useCircular)
+ ADC1_Handler.Init.ContinuousConvMode=ENABLE; //连续转换 开启:本次转换玩规则通道内全部通道后又自动启动下一次转换;不开启:触发一次转换一次;
+ else ADC1_Handler.Init.ContinuousConvMode=DISABLE;
+
if(SYSTEM_ADC1_useScan)
ADC1_Handler.Init.NbrOfConversion=SYSTEM_ADC1_useChanlNum; //n个转换在规则序列中
else ADC1_Handler.Init.NbrOfConversion=1; //只转换规则序列1
@@ -899,32 +907,27 @@ void sys_ADC1_ENABLE(void)
HAL_ADCEx_Calibration_Start(&ADC1_Handler); //校准ADC
if(SYSTEM_ADC1_useScan) //如果启用扫描,则把所有通道都加入到规则组里
- {
- if(SYSTEM_ADC1_useChanl & B0in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_0, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
- if(SYSTEM_ADC1_useChanl & B1in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_1, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
- if(SYSTEM_ADC1_useChanl & B2in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_2, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
- if(SYSTEM_ADC1_useChanl & B3in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_3, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
- if(SYSTEM_ADC1_useChanl & B4in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_4, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
- if(SYSTEM_ADC1_useChanl & B5in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_5, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
- if(SYSTEM_ADC1_useChanl & B6in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_6, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
- if(SYSTEM_ADC1_useChanl & B7in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_7, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
- if(SYSTEM_ADC1_useChanl & B8in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_8, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
- if(SYSTEM_ADC1_useChanl & B9in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_9, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
- if(SYSTEM_ADC1_useChanl & B10in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_10, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
- if(SYSTEM_ADC1_useChanl & B11in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_11, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
- if(SYSTEM_ADC1_useChanl & B12in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_12, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
- if(SYSTEM_ADC1_useChanl & B13in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_13, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
- if(SYSTEM_ADC1_useChanl & B14in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_14, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
- if(SYSTEM_ADC1_useChanl & B15in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_15, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
+ {
+ if((SYSTEM_ADC1_useChanl) & B1in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_0, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
+ if((SYSTEM_ADC1_useChanl) & B2in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_1, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
+ if((SYSTEM_ADC1_useChanl) & B3in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_2, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
+ if((SYSTEM_ADC1_useChanl) & B4in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_3, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
+ if((SYSTEM_ADC1_useChanl) & B5in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_4, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
+ if((SYSTEM_ADC1_useChanl) & B6in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_5, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
+ if((SYSTEM_ADC1_useChanl) & B7in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_6, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
+ if((SYSTEM_ADC1_useChanl) & B8in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_7, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
+ if((SYSTEM_ADC1_useChanl) & B9in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_8, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
+ if((SYSTEM_ADC1_useChanl) & B10in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_9, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
+ if((SYSTEM_ADC1_useChanl) & B11in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_10, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
+ if((SYSTEM_ADC1_useChanl) & B12in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_11, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
+ if((SYSTEM_ADC1_useChanl) & B13in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_12, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
+ if((SYSTEM_ADC1_useChanl) & B14in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_13, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
+ if((SYSTEM_ADC1_useChanl) & B15in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_14, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
+ //if((SYSTEM_ADC1_useChanl) & 0x10) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_15, (uint32_t)(i++), ADC_SAMPLETIME_55CYCLES_5);
- if(SYSTEM_ADC1_useChanl & InrTemp) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_TEMPSENSOR, (uint32_t)(i++), ADC_SAMPLETIME_239CYCLES_5);
+ if((SYSTEM_ADC1_useChanl) & B16in16) ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_TEMPSENSOR, (uint32_t)(i++), ADC_SAMPLETIME_239CYCLES_5);
}
- if(SYSTEM_ADC1_useDMA1)
- {
- ADC_DMA_Cfg();
- HAL_ADC_Start_DMA(&ADC1_Handler, (uint32_t*)&adValue,12); //开始DMA,最后一个参数为数据长度
- }
}
void ADC_RegularChannelConfig(ADC_HandleTypeDef *AdcHandle, uint32_t Channel, uint32_t Rank, uint32_t SamplingTime)
@@ -953,26 +956,42 @@ void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
GPIO_Initure.Mode=GPIO_MODE_ANALOG; //模拟
GPIO_Initure.Pull=GPIO_NOPULL; //不带上下拉
-
- if(SYSTEM_ADC1_useChanl & B0in16) {GPIO_Initure.Pin=GPIO_PIN_0; HAL_GPIO_Init(GPIOA,&GPIO_Initure);}
- if(SYSTEM_ADC1_useChanl & B1in16) {GPIO_Initure.Pin=GPIO_PIN_1; HAL_GPIO_Init(GPIOA,&GPIO_Initure);}
- if(SYSTEM_ADC1_useChanl & B2in16) {GPIO_Initure.Pin=GPIO_PIN_2; HAL_GPIO_Init(GPIOA,&GPIO_Initure);}
- if(SYSTEM_ADC1_useChanl & B3in16) {GPIO_Initure.Pin=GPIO_PIN_3; HAL_GPIO_Init(GPIOA,&GPIO_Initure);}
- if(SYSTEM_ADC1_useChanl & B4in16) {GPIO_Initure.Pin=GPIO_PIN_4; HAL_GPIO_Init(GPIOA,&GPIO_Initure);}
- if(SYSTEM_ADC1_useChanl & B5in16) {GPIO_Initure.Pin=GPIO_PIN_5; HAL_GPIO_Init(GPIOA,&GPIO_Initure);}
- if(SYSTEM_ADC1_useChanl & B6in16) {GPIO_Initure.Pin=GPIO_PIN_6; HAL_GPIO_Init(GPIOA,&GPIO_Initure);}
- if(SYSTEM_ADC1_useChanl & B7in16) {GPIO_Initure.Pin=GPIO_PIN_7; HAL_GPIO_Init(GPIOA,&GPIO_Initure);}
- if(SYSTEM_ADC1_useChanl & B8in16) {GPIO_Initure.Pin=GPIO_PIN_0; HAL_GPIO_Init(GPIOB,&GPIO_Initure);}
- if(SYSTEM_ADC1_useChanl & B9in16) {GPIO_Initure.Pin=GPIO_PIN_1; HAL_GPIO_Init(GPIOB,&GPIO_Initure);}
- if(SYSTEM_ADC1_useChanl & B10in16) {GPIO_Initure.Pin=GPIO_PIN_0; HAL_GPIO_Init(GPIOC,&GPIO_Initure);}
- if(SYSTEM_ADC1_useChanl & B11in16) {GPIO_Initure.Pin=GPIO_PIN_1; HAL_GPIO_Init(GPIOC,&GPIO_Initure);}
- if(SYSTEM_ADC1_useChanl & B12in16) {GPIO_Initure.Pin=GPIO_PIN_2; HAL_GPIO_Init(GPIOC,&GPIO_Initure);}
- if(SYSTEM_ADC1_useChanl & B13in16) {GPIO_Initure.Pin=GPIO_PIN_3; HAL_GPIO_Init(GPIOC,&GPIO_Initure);}
- if(SYSTEM_ADC1_useChanl & B14in16) {GPIO_Initure.Pin=GPIO_PIN_4; HAL_GPIO_Init(GPIOC,&GPIO_Initure);}
- if(SYSTEM_ADC1_useChanl & B15in16) {GPIO_Initure.Pin=GPIO_PIN_5; HAL_GPIO_Init(GPIOC,&GPIO_Initure);}
+
+ if((SYSTEM_ADC1_useChanl) & B1in16) {
+ GPIO_Initure.Pin=GPIO_PIN_0;
+ HAL_GPIO_Init(GPIOA,&GPIO_Initure);
+ }
+ if((SYSTEM_ADC1_useChanl) & B2in16) {
+ GPIO_Initure.Pin=GPIO_PIN_1;
+ HAL_GPIO_Init(GPIOA,&GPIO_Initure);
+ }
+ if((SYSTEM_ADC1_useChanl) & B3in16) {
+ GPIO_Initure.Pin=GPIO_PIN_2;
+ HAL_GPIO_Init(GPIOA,&GPIO_Initure);
+ }
+ if((SYSTEM_ADC1_useChanl) & B4in16) {
+ GPIO_Initure.Pin=GPIO_PIN_3;
+ HAL_GPIO_Init(GPIOA,&GPIO_Initure);
+ }
+ if((SYSTEM_ADC1_useChanl) & B5in16) {GPIO_Initure.Pin=GPIO_PIN_4; HAL_GPIO_Init(GPIOA,&GPIO_Initure);}
+ if((SYSTEM_ADC1_useChanl) & B6in16) {GPIO_Initure.Pin=GPIO_PIN_5; HAL_GPIO_Init(GPIOA,&GPIO_Initure);}
+ if((SYSTEM_ADC1_useChanl) & B7in16) {GPIO_Initure.Pin=GPIO_PIN_6; HAL_GPIO_Init(GPIOA,&GPIO_Initure);}
+ if((SYSTEM_ADC1_useChanl) & B8in16) {GPIO_Initure.Pin=GPIO_PIN_7; HAL_GPIO_Init(GPIOA,&GPIO_Initure);}
+ if((SYSTEM_ADC1_useChanl) & B9in16) {GPIO_Initure.Pin=GPIO_PIN_0; HAL_GPIO_Init(GPIOB,&GPIO_Initure);}
+ if((SYSTEM_ADC1_useChanl) & B10in16) {GPIO_Initure.Pin=GPIO_PIN_1; HAL_GPIO_Init(GPIOB,&GPIO_Initure);}
+ if((SYSTEM_ADC1_useChanl) & B11in16) {GPIO_Initure.Pin=GPIO_PIN_0; HAL_GPIO_Init(GPIOC,&GPIO_Initure);}
+ if((SYSTEM_ADC1_useChanl) & B12in16) {GPIO_Initure.Pin=GPIO_PIN_1; HAL_GPIO_Init(GPIOC,&GPIO_Initure);}
+ if((SYSTEM_ADC1_useChanl) & B13in16) {GPIO_Initure.Pin=GPIO_PIN_2; HAL_GPIO_Init(GPIOC,&GPIO_Initure);}
+ if((SYSTEM_ADC1_useChanl) & B14in16) {GPIO_Initure.Pin=GPIO_PIN_3; HAL_GPIO_Init(GPIOC,&GPIO_Initure);}
+ if((SYSTEM_ADC1_useChanl) & B15in16) {GPIO_Initure.Pin=GPIO_PIN_4; HAL_GPIO_Init(GPIOC,&GPIO_Initure);}
+ //if((SYSTEM_ADC1_useChanl) & B166in16) {GPIO_Initure.Pin=GPIO_PIN_5; HAL_GPIO_Init(GPIOC,&GPIO_Initure);} 留作内部温度通道,第16个ADC1通道不可用
}
}
+
+u16 adValue[SYSTEM_ADC1_useChanlNum]; /*DMA1把ADC转换结果传送的目标位置*/
+u8 adValueDone = 0; /*DMA把ADC1的值传送到adValue完成标志*/
+
//获得ADC值
//ch: 通道值 0~16,取值范围为:ADC_CHANNEL_0~ADC_CHANNEL_16
//返回值:转换结果
@@ -985,41 +1004,27 @@ u16 Get_Adc(u32 ch)
ADC1_ChanConf.Rank=1; //第1个序列,序列1
ADC1_ChanConf.SamplingTime=ADC_SAMPLETIME_239CYCLES_5; //采样时间
HAL_ADC_ConfigChannel(&ADC1_Handler,&ADC1_ChanConf); //通道配置
+
+ HAL_ADC_Start(&ADC1_Handler); //开启ADC
+ HAL_ADC_PollForConversion(&ADC1_Handler,2); //轮询转换
+ return (u16)HAL_ADC_GetValue(&ADC1_Handler); //返回最近一次ADC1规则组的转换结果
+ }else
+ {
+ return 1357;
}
-
- HAL_ADC_Start(&ADC1_Handler); //开启ADC
- HAL_ADC_PollForConversion(&ADC1_Handler,2); //轮询转换
- return (u16)HAL_ADC_GetValue(&ADC1_Handler); //返回最近一次ADC1规则组的转换结果
}
-void Get_Adc_Average(u32 ch,u8 times,u32* result)
+u32 Get_Adc_Average(u32 ch,u8 times)
{
- u32 temp_val[SYSTEM_ADC1_useChanlNum]= {0};
- u8 t,i;
+ u32 temp_val = 0;
+ u8 t;
- if (SYSTEM_ADC1_useScan)
+ for(t=0;t < times;t++)
{
- for(t=0;t < times;t++)
- {
- for(i = 0;i < SYSTEM_ADC1_useChanlNum; i++)
- {
- temp_val[i] += Get_Adc(ch);
- delay_ms(1);
- }
- }
-
- for(i = 0;i < SYSTEM_ADC1_useChanlNum; i++)
- {
- result[i] = temp_val[i]/times;
- }
- }else{
- for(t=0;t < times;t++)
- {
- temp_val[0] += Get_Adc(ch);
- delay_ms(1);
- }
- result[0] = temp_val[0]/times;
+ temp_val += Get_Adc(ch);
+ delay_ms(1);
}
+ return (temp_val/times);
}
/*把AD采集温度通道的原始值,转化为温度值*/
@@ -1031,7 +1036,7 @@ float Get_Temprate(u32 adcx)
return temperate;
}
-#if SYSTEM_ADC1_useDMA1
+#if SYSTEM_ADC1_useScan
DMA_HandleTypeDef ADC1rxDMA_Handler; //DMA句柄
//DMA1的各通道配置
@@ -1047,8 +1052,12 @@ void ADC_DMA_Cfg(void)
ADC1rxDMA_Handler.Init.MemInc=DMA_MINC_ENABLE; //存储器增量模式
ADC1rxDMA_Handler.Init.PeriphDataAlignment=DMA_PDATAALIGN_HALFWORD; //外设数据长度:16位
ADC1rxDMA_Handler.Init.MemDataAlignment=DMA_MDATAALIGN_HALFWORD; //存储器数据长度:16位
- ADC1rxDMA_Handler.Init.Mode=DMA_CIRCULAR; //不确定是正常博士还是外设循环模式
- ADC1rxDMA_Handler.Init.Priority=DMA_PRIORITY_HIGH; //优先级
+
+ if(SYSTEM_ADC1_useCircular)
+ ADC1rxDMA_Handler.Init.Mode=DMA_CIRCULAR; //如果ADC选择连续模式,这里是循环,如果不开启连续模式,这里是正常模式
+ else ADC1rxDMA_Handler.Init.Mode=DMA_NORMAL;
+
+ ADC1rxDMA_Handler.Init.Priority=DMA_PRIORITY_MEDIUM; //优先级
ADC1rxDMA_Handler.XferCpltCallback = HAL_DMA_IRQHandler;
@@ -1058,17 +1067,21 @@ void ADC_DMA_Cfg(void)
/* 数据源 数据源句柄中的DMA变量 使用的DMA句柄*/
__HAL_LINKDMA(&ADC1_Handler,DMA_Handle,ADC1rxDMA_Handler); //将DMA与ADC联系起来(发送DMA)
- HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 3, 0); //DMA中断优先级
+ HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 3, 0); //DMA中断优先级 必须开,勿动!
HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn); //使能DMA中断
}
-// DMA通道1中断服务函数 (完成传送时的中断)
+//DMA通道1中断服务函数,完成传送一次时的中断,不用,因为要等AD全部规则通道转换完后再产生一次中断
void DMA1_Channel1_IRQHandler(void)
{
- HAL_DMA_IRQHandler(&ADC1rxDMA_Handler);
- //printf("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\r\n",advalue[0],advalue[1],advalue[2],advalue[3],advalue[4],advalue[5],advalue[6],advalue[7],advalue[8],advalue[9],advalue[10],advalue[11]);
- adValueDone = 1;
+ HAL_DMA_IRQHandler(&ADC1rxDMA_Handler); /*清除中断标志,并判断是否完成全部转换,勿动!*/
+}
+
+//HAL_DMA_IRQHandler的回调函数,ADC转换完成所有规则组通道后的中断函数
+void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
+{
+ adValueDone = 1; /*标志本次规则组通道全部转换完成,勿动!*/
}
#endif
@@ -1478,7 +1491,7 @@ u16 STMFLASH_ReadHalfWord(u32 faddr)
/*__________________________DAC________________________________________*/
-#if SYSTEM_DAC_OUT1_ENABLE||SYSTEM_DAC_OUT2_ENABLE
+#if ((SYSTEM_DAC_OUT1_ENABLE) || (SYSTEM_DAC_OUT2_ENABLE)) && ((STM32F103xG) || (STM32F103xE))
DAC_HandleTypeDef DAC1_Handler;//DAC句柄
@@ -1567,7 +1580,7 @@ void DAC_Set_Ch2_Vol(float vol)
#endif
/*____________________SDIO SD_____________________________________________*/
-#if SYSTEM_SDIO_SD_ENABLE
+#if (SYSTEM_SDIO_SD_ENABLE) && ((STM32F103xG) || (STM32F103xE))
SD_HandleTypeDef SDCARD_Handler; //SD卡句柄
HAL_SD_CardInfoTypeDef SDCardInfo; //SD卡信息
diff --git a/STM32F1_HAL_freeRTOS_Framework/SYSTEM/PeriphConfig/PeriphConfig.h b/STM32F1_HAL_freeRTOS_Framework/SYSTEM/PeriphConfig/PeriphConfig.h
index 1545a14..203f514 100644
--- a/STM32F1_HAL_freeRTOS_Framework/SYSTEM/PeriphConfig/PeriphConfig.h
+++ b/STM32F1_HAL_freeRTOS_Framework/SYSTEM/PeriphConfig/PeriphConfig.h
@@ -189,12 +189,12 @@ int32_t peek_TIM2_Encoder_Value(void);
/*_______________________________ADC1___________________________________*/
extern ADC_HandleTypeDef ADC1_Handler;
void sys_ADC1_ENABLE(void);
-void Get_Adc_Average(u32 ch,u8 times,u32* result);
+u32 Get_Adc_Average(u32 ch,u8 times);
float Get_Temprate(u32 adcx);
#if SYSTEM_ADC1_ENABLE
void ADC_RegularChannelConfig(ADC_HandleTypeDef *AdcHandle, uint32_t Channel, uint32_t Rank, uint32_t SamplingTime);
u16 Get_Adc(u32 ch);
- #if SYSTEM_ADC1_useDMA1
+ #if SYSTEM_ADC1_useScan
extern DMA_HandleTypeDef ADC1rxDMA_Handler;
void ADC_DMA_Cfg(void);
#endif
@@ -248,7 +248,7 @@ void sys_CheckWKUP_4RTOS(void);
/*_____________________________________DAC________________________________________*/
-#if SYSTEM_DAC_OUT1_ENABLE||SYSTEM_DAC_OUT2_ENABLE
+#if ((SYSTEM_DAC_OUT1_ENABLE) || (SYSTEM_DAC_OUT2_ENABLE)) && ((STM32F103xG) || (STM32F103xE))
extern DAC_HandleTypeDef DAC1_Handler;//DAC句柄
void sys_DAC_ENABLE(void);
void HAL_DAC_MspInit(DAC_HandleTypeDef* hdac);
@@ -261,14 +261,14 @@ void DAC_Set_Ch2_Vol(float vol);
/*____________________SDIO SD_____________________________________________*/
-extern HAL_SD_CardInfoTypeDef SDCardInfo; //SD卡信息
-extern HAL_SD_CardCIDTypeDef SDCard_CID; //SD卡CID信息
u8 SD_Init(void);
u8 SD_ReadDisk(u8* buf,u32 sector,u32 cnt);
u8 SD_WriteDisk(u8 *buf,u32 sector,u32 cnt);
void show_sdcard_info(void); //通过串口1打印SD卡相关信息
-#if SYSTEM_SDIO_SD_ENABLE
+#if (SYSTEM_SDIO_SD_ENABLE) && ((STM32F103xG) || (STM32F103xE))
+extern HAL_SD_CardInfoTypeDef SDCardInfo; //SD卡信息
+extern HAL_SD_CardCIDTypeDef SDCard_CID; //SD卡CID信息
extern SD_HandleTypeDef SDCARD_Handler; //SD卡句柄
#define SD_TIMEOUT ((uint32_t)100000000) //超时时间
diff --git a/STM32F1_HAL_freeRTOS_Framework/SYSTEM/menu/sys_menu.c b/STM32F1_HAL_freeRTOS_Framework/SYSTEM/menu/sys_menu.c
index 925111a..8c9d070 100644
--- a/STM32F1_HAL_freeRTOS_Framework/SYSTEM/menu/sys_menu.c
+++ b/STM32F1_HAL_freeRTOS_Framework/SYSTEM/menu/sys_menu.c
@@ -228,8 +228,8 @@ void adjustFunctionsOption(const struct MenuItem *MenuItemNow,const struct input
/*姝ゅ嚱鏁板繀椤讳竴鐩村惊鐜墽琛岋紝鎺ㄨ崘100ms鍛ㄦ湡杩愯*/
void keyProcess(void)
{
- static int _10msCountDown = 50; /*0.5s鍐呯殑鍙屽嚮鏈夋晥锛岃繖閲屼笉瑕佸姩*/
- static int _10msNum = 0,isKeySetOnce = FALSE;
+ static int _100msCountDown = 5; /*0.5s鍐呯殑鍙屽嚮鏈夋晥锛岃繖閲屼笉瑕佸姩*/
+ static int _100msNum = 0,isKeySetOnce = FALSE;
char isOnce = 0; /*Magic,Don`t touch!*/
//濡傛灉鍙戠敓浜嗗閮ㄤ腑鏂
@@ -240,11 +240,11 @@ void keyProcess(void)
{
inputKey.keyValue = enter;
- _10msNum++;_10msCountDown--;
- if(_10msNum > 300) _10msNum = 300;
- if(_10msCountDown < -100) _10msCountDown = -100;
+ _100msNum++;_100msCountDown--;
+ if(_100msNum > 30) _100msNum = 30;
+ if(_100msCountDown < -10) _100msCountDown = -10;
- if((_10msCountDown > 0) && (isKeySetOnce == TRUE))//鍦0.5绉掑唴绗簩娆¤鎸変笅锛屽垯鍒囨崲鎸夐敭妯″紡涓洪暱鎸
+ if((_100msCountDown > 0) && (isKeySetOnce == TRUE))//鍦0.5绉掑唴绗簩娆¤鎸変笅锛屽垯鍒囨崲鎸夐敭妯″紡涓洪暱鎸
{
isKeySetOnce = FALSE;
isOnce = 0;
@@ -252,10 +252,10 @@ void keyProcess(void)
return ;
}else
{
- _10msCountDown = 50;
+ _100msCountDown = 5;
}
- if(_10msNum > 100) //瓒呰繃浜1绉掓寜閿粛鐒舵椂琚寜涓嬬姸鎬侊紝鍒欐妸鎸夐敭妯″紡鍒囨崲涓洪暱鎸夛紝鍚﹀垯璇嗗埆涓哄崟鍑
+ if(_100msNum > 10) //瓒呰繃浜1绉掓寜閿粛鐒舵椂琚寜涓嬬姸鎬侊紝鍒欐妸鎸夐敭妯″紡鍒囨崲涓洪暱鎸夛紝鍚﹀垯璇嗗埆涓哄崟鍑
{
isOnce = 0;
inputKey.keyMode = lon;
@@ -269,9 +269,9 @@ void keyProcess(void)
{
if(inputKey.keyMode != doub)
isKeySetOnce = TRUE;
- else isKeySetOnce = FALSE,_10msCountDown = 50;
+ else isKeySetOnce = FALSE,_100msCountDown = 5;
- _10msNum = 0;
+ _100msNum = 0;
key_Up_Interrupted = FALSE;
if(isOnce) //瀵逛簬鍗曞嚮锛屽彧鏈夊綋鎸夐敭鏉惧紑锛屾墠閲婃斁
@@ -290,11 +290,11 @@ void keyProcess(void)
{
inputKey.keyValue = down;
- _10msNum++;_10msCountDown--;
- if(_10msNum > 300) _10msNum = 300;
- if(_10msCountDown < -100) _10msCountDown = -100;
+ _100msNum++;_100msCountDown--;
+ if(_100msNum > 30) _100msNum = 30;
+ if(_100msCountDown < -10) _100msCountDown = -10;
- if((_10msCountDown > 0) && (isKeySetOnce == TRUE))//鍦0.5绉掑唴绗簩娆¤鎸変笅锛屽垯鍒囨崲鎸夐敭妯″紡涓洪暱鎸
+ if((_100msCountDown > 0) && (isKeySetOnce == TRUE))//鍦0.5绉掑唴绗簩娆¤鎸変笅锛屽垯鍒囨崲鎸夐敭妯″紡涓洪暱鎸
{
isKeySetOnce = FALSE;
isOnce = 0;
@@ -302,10 +302,10 @@ void keyProcess(void)
return ;
}else
{
- _10msCountDown = 50;
+ _100msCountDown = 5;
}
- if(_10msNum > 100) //瓒呰繃浜1绉掓寜閿粛鐒舵椂琚寜涓嬬姸鎬侊紝鍒欐妸鎸夐敭妯″紡鍒囨崲涓洪暱鎸夛紝鍚﹀垯璇嗗埆涓哄崟鍑
+ if(_100msNum > 10) //瓒呰繃浜1绉掓寜閿粛鐒舵椂琚寜涓嬬姸鎬侊紝鍒欐妸鎸夐敭妯″紡鍒囨崲涓洪暱鎸夛紝鍚﹀垯璇嗗埆涓哄崟鍑
{
isOnce = 0;
inputKey.keyMode = lon;
@@ -319,9 +319,9 @@ void keyProcess(void)
{
if(inputKey.keyMode != doub)
isKeySetOnce = TRUE;
- else isKeySetOnce = FALSE,_10msCountDown = 50;
+ else isKeySetOnce = FALSE,_100msCountDown = 5;
- _10msNum = 0;
+ _100msNum = 0;
key_Up_Interrupted = FALSE;
if(isOnce) //瀵逛簬鍗曞嚮锛屽彧鏈夊綋鎸夐敭鏉惧紑锛屾墠閲婃斁
diff --git a/STM32F1_HAL_freeRTOS_Framework/SYSTEM/sys.c b/STM32F1_HAL_freeRTOS_Framework/SYSTEM/sys.c
index 0d7d5cd..ecfe45e 100644
--- a/STM32F1_HAL_freeRTOS_Framework/SYSTEM/sys.c
+++ b/STM32F1_HAL_freeRTOS_Framework/SYSTEM/sys.c
@@ -1,36 +1,29 @@
#include "sys.h"
/*
-需要改的地方:
-
-现存BUG:
+现存BUG记录:
FIFO库的初始化经常不好使,返回值常为NULL,暂时不明原因
sprintf()函数,有时会改变MCU执行速度,会变得超级快,现在先不动,如果再另一个项目重新遇到就换一个小巧简单的库
即将加上的东西:
-
- ADC的DMA1存疑,再看看网上,ADC的软件触发和DMA的循环模式是否搭,另外启动方式看sys.h那里,也存疑,最后上板子测试,LCD显示
- DMA:中断回调函数用法,ADC那里用DMA时的回调函数用法是否正确
-
FATFS:就差移植原子两个.c文件里的各种API 和 mymolloc、myfree
+ 文件系统要实现:
+ √ SD卡文件读存,
+ 内部FLASH划分区域当作文件系统读存,
+ USB U盘读存,
+ 把内部FLASH划分一块通过USB插入电脑当作U盘,可在电脑操作文件的读存
把stdlib排除在项目之外(逐个.c文件查看),不编译,自己实现malloc和free函数(借鉴原子的),并替换在FIFO.c和ffsystem.c里面的
FSMC用于 LCD\SRAM\FLASH
上SARM后加上原子写的内存管理
-
-
IAP:即将加上
+
+
线性回归:即将加上
常用校验、加密算法:即将加上
JPEG、GIF解码和BMP编解码:即将加上
- 文件系统要实现:
- SD卡文件读存,
- 内部FLASH划分区域当作文件系统读存,
- USB U盘读存,
- 把内部FLASH划分一块通过USB插入电脑当作U盘,可在电脑操作文件的读存
-
写顺序:
完成 移植菜单模板,连带按键检测也都搞了
@@ -62,8 +55,6 @@
u16 StartUpTimes; /*用于保存开机次数,储存在最后一个或倒数第二个页*/
uint32_t UIDw[3]; /*保存STM32内部UID识别码,全球唯一识别码*/
uint32_t sysCoreClock; /*获取HCLK频率,外设时钟均来自此再分频*/
-u16 adValue[SYSTEM_ADC1_useChanlNum]; /*DMA1把ADC转换结果传送的目标位置*/
-u8 adValueDone = 0; /*DMA把ADC1的值传送到adValue完成标志*/
u8 is_buzzer_once = 0;
u8 is_buzzer_bibi = 0;
uint8_t is_quitFault;
@@ -157,7 +148,7 @@ void sys_MCU_Init_Seq(void)
sys_StdbyWKUP_ENABLE();
#endif
- #if SYSTEM_DAC_OUT1_ENABLE||SYSTEM_DAC_OUT2_ENABLE
+ #if ((SYSTEM_DAC_OUT1_ENABLE) || (SYSTEM_DAC_OUT2_ENABLE)) && ((STM32F103xG) || (STM32F103xE))
void sys_DAC_ENABLE(void);
#endif
@@ -405,10 +396,6 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
/*定时器2周期回调*/
if(htim==(&TIM2_Handler))
{
-// #if (SYSTEM_ADC1_useScan)
-// HAL_ADC_Start(&ADC1_Handler); //开启AD转换
-// #endif
-
#if (STSTEM_TIM2_asPWMorCap == 1) //使用输入捕获功能,定时器溢出一次则溢出次数加一
if((TIM2CHx_CAPTURE_STA&0X80)==0) //还未成功捕获
{
@@ -719,11 +706,11 @@ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if(huart->Instance==USART1)//如果是串口1
{
- if(!(USART1_RX_CONFIG & USART1_RX_MODE_mask)) /*协议0:只接受以'\r\n'结尾的数据:从USART1_RX_BUF[]接受数据*/
+ if(!((USART1_RX_CONFIG) & (USART1_RX_MODE_mask))) /*协议0:只接受以'\r\n'结尾的数据:从USART1_RX_BUF[]接受数据*/
{
- if(!(USART1_RX_CONFIG & USART1_RX_DONE_mask)) /*如果接收未完成*/
+ if(!((USART1_RX_CONFIG) & (USART1_RX_DONE_mask))) /*如果接收未完成*/
{
- if(USART1_RX_CONFIG & USART1_RX_Rec_r_mask) /*如果接收到了\r*/
+ if((USART1_RX_CONFIG) & (USART1_RX_Rec_r_mask)) /*如果接收到了\r*/
{
if(aRxBuffer1[0] == '\n') /*如果接受到了\r\n*/
{
@@ -738,9 +725,9 @@ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
//USART1_RX_CONFIG++; /*接受完成后的 接受数据字节计数 不包含 '\r\n' 两个*/
}
else{
- USART1_RX_BUF[USART1_RX_CONFIG & USART1_RX_Num_mask] = aRxBuffer1[0];
+ USART1_RX_BUF[(USART1_RX_CONFIG) & (USART1_RX_Num_mask)] = aRxBuffer1[0];
USART1_RX_CONFIG++;
- if((USART1_RX_CONFIG & USART1_RX_Num_mask) >= (USART1_RX_BUF_MaxNum)) USART1_SetDone;
+ if(((USART1_RX_CONFIG) & (USART1_RX_Num_mask)) >= (USART1_RX_BUF_MaxNum)) USART1_SetDone;
}
}
@@ -917,7 +904,7 @@ void sys_TIM3PWM_ENABLE(void)
HAL_TIM_PWM_Init(&TIM3_Handler); //初始化PWM
- if(STSTEM_TIM3PWM_CHANNEL_ENABLE & B0000_0010)
+ if((STSTEM_TIM3PWM_CHANNEL_ENABLE) & B0000_0010)
{
TIM3_CH2Handler.OCMode=TIM_OCMODE_PWM1; //模式选择PWM1
TIM3_CH2Handler.Pulse=tim3arr/2; //设置比较值,此值用来确定占空比,默认比较值为自动重装载值的一半,即占空比为50%
@@ -927,7 +914,7 @@ void sys_TIM3PWM_ENABLE(void)
HAL_TIM_PWM_ConfigChannel(&TIM3_Handler,&TIM3_CH2Handler,TIM_CHANNEL_2);//配置TIM3通道2
HAL_TIM_PWM_Start(&TIM3_Handler,TIM_CHANNEL_2);//开启PWM通道2
}
- if(STSTEM_TIM3PWM_CHANNEL_ENABLE & B0000_0001)
+ if((STSTEM_TIM3PWM_CHANNEL_ENABLE) & B0000_0001)
{
TIM3_CH1Handler.OCMode=TIM_OCMODE_PWM1; //模式选择PWM1
TIM3_CH1Handler.Pulse=tim3arr/2; //设置比较值,此值用来确定占空比,默认比较值为自动重装载值的一半,即占空比为50%
@@ -935,7 +922,7 @@ void sys_TIM3PWM_ENABLE(void)
HAL_TIM_PWM_ConfigChannel(&TIM3_Handler,&TIM3_CH1Handler,TIM_CHANNEL_1);//配置TIM3通道1
HAL_TIM_PWM_Start(&TIM3_Handler,TIM_CHANNEL_1);//开启PWM通道1
}
- if(STSTEM_TIM3PWM_CHANNEL_ENABLE & B0000_0100)
+ if((STSTEM_TIM3PWM_CHANNEL_ENABLE) & B0000_0100)
{
TIM3_CH3Handler.OCMode=TIM_OCMODE_PWM1; //模式选择PWM1
TIM3_CH3Handler.Pulse=tim3arr/2; //设置比较值,此值用来确定占空比,默认比较值为自动重装载值的一半,即占空比为50%
@@ -943,7 +930,7 @@ void sys_TIM3PWM_ENABLE(void)
HAL_TIM_PWM_ConfigChannel(&TIM3_Handler,&TIM3_CH3Handler,TIM_CHANNEL_3);//配置TIM3通道3
HAL_TIM_PWM_Start(&TIM3_Handler,TIM_CHANNEL_3);//开启PWM通道3
}
- if(STSTEM_TIM3PWM_CHANNEL_ENABLE & B0000_1000)
+ if((STSTEM_TIM3PWM_CHANNEL_ENABLE) & B0000_1000)
{
TIM3_CH4Handler.OCMode=TIM_OCMODE_PWM1; //模式选择PWM1
TIM3_CH4Handler.Pulse=tim3arr/2; //设置比较值,此值用来确定占空比,默认比较值为自动重装载值的一半,即占空比为50%
@@ -970,10 +957,10 @@ void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim)
{
__HAL_AFIO_REMAP_TIM3_ENABLE(); //TIM3通道引脚全部重映射使能,具体怎么映射看库函数注释或sys.h里
__HAL_RCC_GPIOC_CLK_ENABLE(); //开启GPIOC时钟
- if(STSTEM_TIM3PWM_CHANNEL_ENABLE & B0000_0001) GPIO_Initure.Pin=GPIO_PIN_6; //如果开启通道1,PC6
- if(STSTEM_TIM3PWM_CHANNEL_ENABLE & B0000_0010) GPIO_Initure.Pin=GPIO_PIN_7; //如果开启通道2,PC7
- if(STSTEM_TIM3PWM_CHANNEL_ENABLE & B0000_0100) GPIO_Initure.Pin=GPIO_PIN_8; //如果开启通道3,PC8
- if(STSTEM_TIM3PWM_CHANNEL_ENABLE & B0000_1000) GPIO_Initure.Pin=GPIO_PIN_6; //如果开启通道4,PC9
+ if((STSTEM_TIM3PWM_CHANNEL_ENABLE) & B0000_0001) GPIO_Initure.Pin=GPIO_PIN_6; //如果开启通道1,PC6
+ if((STSTEM_TIM3PWM_CHANNEL_ENABLE) & B0000_0010) GPIO_Initure.Pin=GPIO_PIN_7; //如果开启通道2,PC7
+ if((STSTEM_TIM3PWM_CHANNEL_ENABLE) & B0000_0100) GPIO_Initure.Pin=GPIO_PIN_8; //如果开启通道3,PC8
+ if((STSTEM_TIM3PWM_CHANNEL_ENABLE) & B0000_1000) GPIO_Initure.Pin=GPIO_PIN_6; //如果开启通道4,PC9
GPIO_Initure.Mode=GPIO_MODE_AF_PP; //复用推挽输出
GPIO_Initure.Pull=GPIO_PULLUP; //上拉,所以硬件上最好低电平有效,高电平截止
GPIO_Initure.Speed=GPIO_SPEED_FREQ_HIGH;//高速
@@ -982,10 +969,10 @@ void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim)
{
__HAL_AFIO_REMAP_TIM3_PARTIAL(); //TIM3通道引脚部分重映射使能,具体怎么映射看库函数注释或sys.h里
__HAL_RCC_GPIOB_CLK_ENABLE(); //开启GPIOB时钟
- if(STSTEM_TIM3PWM_CHANNEL_ENABLE & B0000_0001) GPIO_Initure.Pin=GPIO_PIN_4; //如果开启通道1,PB4
- if(STSTEM_TIM3PWM_CHANNEL_ENABLE & B0000_0010) GPIO_Initure.Pin=GPIO_PIN_5; //如果开启通道2,PB5
- if(STSTEM_TIM3PWM_CHANNEL_ENABLE & B0000_0100) GPIO_Initure.Pin=GPIO_PIN_0; //如果开启通道3,PB0
- if(STSTEM_TIM3PWM_CHANNEL_ENABLE & B0000_1000) GPIO_Initure.Pin=GPIO_PIN_1; //如果开启通道4,PB1
+ if((STSTEM_TIM3PWM_CHANNEL_ENABLE) & B0000_0001) GPIO_Initure.Pin=GPIO_PIN_4; //如果开启通道1,PB4
+ if((STSTEM_TIM3PWM_CHANNEL_ENABLE) & B0000_0010) GPIO_Initure.Pin=GPIO_PIN_5; //如果开启通道2,PB5
+ if((STSTEM_TIM3PWM_CHANNEL_ENABLE) & B0000_0100) GPIO_Initure.Pin=GPIO_PIN_0; //如果开启通道3,PB0
+ if((STSTEM_TIM3PWM_CHANNEL_ENABLE) & B0000_1000) GPIO_Initure.Pin=GPIO_PIN_1; //如果开启通道4,PB1
GPIO_Initure.Mode=GPIO_MODE_AF_PP; //复用推挽输出
GPIO_Initure.Pull=GPIO_PULLUP; //上拉,所以硬件上最好低电平有效,高电平截止
GPIO_Initure.Speed=GPIO_SPEED_FREQ_HIGH;//高速
@@ -996,22 +983,22 @@ void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim)
GPIO_Initure.Pull=GPIO_PULLUP; //上拉,所以硬件上最好低电平有效,高电平截止
GPIO_Initure.Speed=GPIO_SPEED_FREQ_HIGH;//高速
- if(STSTEM_TIM3PWM_CHANNEL_ENABLE & B0000_0001)
+ if((STSTEM_TIM3PWM_CHANNEL_ENABLE) & B0000_0001)
{
__HAL_RCC_GPIOA_CLK_ENABLE();GPIO_Initure.Pin=GPIO_PIN_6; //如果开启通道1,PA6
HAL_GPIO_Init(GPIOA,&GPIO_Initure);
}
- if(STSTEM_TIM3PWM_CHANNEL_ENABLE & B0000_0010)
+ if((STSTEM_TIM3PWM_CHANNEL_ENABLE) & B0000_0010)
{
__HAL_RCC_GPIOA_CLK_ENABLE();GPIO_Initure.Pin=GPIO_PIN_7; //如果开启通道2,PA7
HAL_GPIO_Init(GPIOA,&GPIO_Initure);
}
- if(STSTEM_TIM3PWM_CHANNEL_ENABLE & B0000_0100)
+ if((STSTEM_TIM3PWM_CHANNEL_ENABLE) & B0000_0100)
{
__HAL_RCC_GPIOB_CLK_ENABLE();GPIO_Initure.Pin=GPIO_PIN_0; //如果开启通道3,PB0
HAL_GPIO_Init(GPIOB,&GPIO_Initure);
}
- if(STSTEM_TIM3PWM_CHANNEL_ENABLE & B0000_1000)
+ if((STSTEM_TIM3PWM_CHANNEL_ENABLE) & B0000_1000)
{
__HAL_RCC_GPIOB_CLK_ENABLE();GPIO_Initure.Pin=GPIO_PIN_1; //如果开启通道4,PB1
HAL_GPIO_Init(GPIOB,&GPIO_Initure);
@@ -1028,25 +1015,25 @@ void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim)
GPIO_Initure.Pull=GPIO_PULLUP; //上拉,所以硬件上最好低电平有效,高电平截止
GPIO_Initure.Speed=GPIO_SPEED_FREQ_HIGH;//高速
- if(STSTEM_TIM2PWM_CHANNEL_ENABLE & B0000_0001) //CH1/ETR/PA15
+ if((STSTEM_TIM2PWM_CHANNEL_ENABLE) & B0000_0001) //CH1/ETR/PA15
{
__HAL_RCC_GPIOA_CLK_ENABLE();
GPIO_Initure.Pin=GPIO_PIN_15;
HAL_GPIO_Init(GPIOA,&GPIO_Initure);
}
- if(STSTEM_TIM2PWM_CHANNEL_ENABLE & B0000_0010) //CH2/PB3
+ if((STSTEM_TIM2PWM_CHANNEL_ENABLE) & B0000_0010) //CH2/PB3
{
__HAL_RCC_GPIOB_CLK_ENABLE();
GPIO_Initure.Pin=GPIO_PIN_3;
HAL_GPIO_Init(GPIOB,&GPIO_Initure);
}
- if(STSTEM_TIM2PWM_CHANNEL_ENABLE & B0000_0100) //CH3/PB10
+ if((STSTEM_TIM2PWM_CHANNEL_ENABLE) & B0000_0100) //CH3/PB10
{
__HAL_RCC_GPIOB_CLK_ENABLE();
GPIO_Initure.Pin=GPIO_PIN_10;
HAL_GPIO_Init(GPIOB,&GPIO_Initure);
}
- if(STSTEM_TIM2PWM_CHANNEL_ENABLE & B0000_1000) //CH4/PB11
+ if((STSTEM_TIM2PWM_CHANNEL_ENABLE) & B0000_1000) //CH4/PB11
{
__HAL_RCC_GPIOB_CLK_ENABLE();
GPIO_Initure.Pin=GPIO_PIN_11;
diff --git a/STM32F1_HAL_freeRTOS_Framework/SYSTEM/sys.h b/STM32F1_HAL_freeRTOS_Framework/SYSTEM/sys.h
index b3d254a..43d7e0e 100644
--- a/STM32F1_HAL_freeRTOS_Framework/SYSTEM/sys.h
+++ b/STM32F1_HAL_freeRTOS_Framework/SYSTEM/sys.h
@@ -337,47 +337,46 @@ X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 +X8 + X7 + X5 + X4 + X2 + X + 1
IO : A0 A1 A2 A3 A4 A5 A6 A7 B0 B1 C0 C1 C2 C3 C4 C5 内部温度 内部参考电压
*/
#define SYSTEM_ADC1_ENABLE 0 /*启否ADC1*/
- #define SYSTEM_ADC1_useScan 1 /*启否规则组的连续扫描,如果启用,则把下面定义的所有通道都放到规则组里,
- 然后在定时器2中断中连续采集
- 如果不启用,则为软件触发的单次转换
- 是用连续扫描还是单次采集,定下后运行时不能改变
- */
+ #define SYSTEM_ADC1_useScan 1 /*启否规则组的连续扫描,如果启用,则把下面定义的所有通道都放到规则组里,并使用DAM1的通道1把转换结果放到目标位置
+ 如果不启用,则为软件触发的单次转换*/
+ #define SYSTEM_ADC1_useCircular 1 /*只在扫描模式下有效;开启则自动循环ADC转换,只需要判断标志位和读数即可,不需要软件手动触发开启一次ADC转换*/
#define SYSTEM_ADC1_useChanlNum 3 /*定义共用多少路通道*/
- /*定义共用哪些通道,可写B0in16~B15in16,和InrTemp(内部温度通道)
- 如果只用采集内部温度,而不用其他通道,应设置:SYSTEM_ADC1_useChanlNum为1 SYSTEM_ADC1_useChanl单为InrTemp
- 如果不用
- */
- #define SYSTEM_ADC1_useChanl B0in16|B1in16|B3in16
+ #define SYSTEM_ADC1_useChanl B1in16|B4in16|B5in16 /*定义共用哪些通道,可写B1in16~B15in16(分别代表通道0~14),和InrTemp(内部温度通道)
+ (第16个ADC1通道留作内部温度标志所以不可用)*/
+ /*如果只用采集内部温度,而不用其他通道,应设置:SYSTEM_ADC1_useChanlNum为1 SYSTEM_ADC1_useChanl单为InrTemp*/
#define InrTemp B16in16
- /*下面的定时器触发不用了,何必那么麻烦,直接调用启动ADC采集一次的函数一样...*/
-// #define SYSTEM_ADC1_useTIM2trig 1 /*定时器2触发ADC采集转换,由于ADC1触发源没有TIM2TRGO,
-// 所以是在TIM2的定时中断中软件触发实现,必须打开TIM2的定时中断!后注:;不一定要非用TIM2,TIM3或者TIM4中断都行*/
- #define SYSTEM_ADC1_useDMA1 1 /*使用DAM1的通道1把转换结果放到目标位置*/
- extern u16 adValue[SYSTEM_ADC1_useChanlNum]; /*DMA1把ADC转换结果传送的目标位置*/
- extern u8 adValueDone;
- /*可用的API:
- 凡是启用 SYSTEM_ADC1_useDMA1 即用DMA传输ADC数据,读取顺序:
- 如果启用 SYSTEM_ADC1_useScan 循环一遍采集
- 这里存疑:————————————————————————再去借鉴网上,还有初始化那里配置DMA为循环模式否?ADC的触发为软件否?
- 不确定:先调用 HAL_ADC_Start(&ADC1_Handler); 调用SYSTEM_ADC1_useChanlNum次, 转换一遍每一个规则通道
- 是不是这个: HAL_ADC_Start_DMA(&ADC1_Handler, (uint32_t*)&adValue,12); //开始DMA,最后一个参数为数据长度
- 上面这一句在初始化时候已经开启了,是不是不用再软件触发,直接等adValueDone标志位就行了
+ extern u16 adValue[SYSTEM_ADC1_useChanlNum];/*扫描模式下DMA1把ADC转换结果传送的目标位置*/
+ extern u8 adValueDone; /*扫描模式下转换完成标志*/
+ /*可用的API:返回的都是原始ADC值
+ 凡是启用 SYSTEM_ADC1_useScan 扫描模式,即触发一次,自动扫描所有规则组里的通道————适合快速
+ 自动用DMA1通道1发送到adValue[],并置位adValueDone
+ 读取顺序:
+ 调用 HAL_ADC_Start_DMA(&ADC1_Handler, (uint32_t*)&adValue,SYSTEM_ADC1_useChanlNum); 一次则开启一次规则组全部通道的转换
+ 调用1次则把规则组所有通道转换一遍,然后判断标志位adValueDone等着在adValue[]取数就行了
+ 如果 SYSTEM_ADC1_useCircular 打开:只需要执行一次!一次! HAL_ADC_Start_DMA(&ADC1_Handler, (uint32_t*)&adValue,SYSTEM_ADC1_useChanlNum); 即可
+
判断 adValueDone 是否为1,是则从 adValue[x] 读值即可,如果启用 内部温度 通道,其值保存在adValue[SYSTEM_ADC1_useChanlNum-1]
- adValueDone 清零
- 如果没有启用 SYSTEM_ADC1_useScan 循环一遍采集
- 先注入本次单次通道的规则,以下函数其参数只可以改通道,通道可以为ADC_CHANNEL_0~ADC_CHANNEL_15 和 ADC_CHANNEL_TEMPSENSOR
- ADC_RegularChannelConfig(&ADC1_Handler, ADC_CHANNEL_TEMPSENSOR,1, ADC_SAMPLETIME_55CYCLES_5);
- 再调用调用 HAL_ADC_Start(&ADC1_Handler); 启动一次
- 判断 adValueDone 是否为1,是则从 adValue[x] 读值即可
- adValueDone 清零
- 凡是没有启动 SYSTEM_ADC1_useDMA1 即没用用DMA传输ADC数据,读取顺序:
- 如果启用 SYSTEM_ADC1_useScan 循环一遍采集
- 调用 Get_Adc_Average(u32 ch,u8 times,u32* result);
- 其中result为返回值,用result[0]~result[SYSTEM_ADC1_useChanlNum-1]分别保存每一通道AD值,如果启用 内部温度 通道,其值保存在result[SYSTEM_ADC1_useChanlNum-1]
- 其中 ch 通道 形参无效
- 如果没有启用 SYSTEM_ADC1_useScan 循环一遍采集
- 调用 Get_Adc_Average(u32 ch,u8 times,u32* result);
- 其中 ch 通道 形参选择想转换的通道,可以为ADC_CHANNEL_TEMPSENSOR,其中result[0]保存本次本通道的转换结果
+ 读取完后对 adValueDone 清零
+ 停止转换为 HAL_ADC_Stop_DMA(&ADC1_Handler);
+ 例子:
+ char ADC_buf[20];
+ if(adValueDone)
+ {
+ adValueDone = 0;
+ //HAL_ADC_Stop_DMA(&ADC1_Handler);
+ sprintf(ADC_buf,"adValue:%d %d %d",adValue[0],adValue[1],adValue[2]);
+ LCD_ShowString(10,180,16,(u8*)ADC_buf,0);
+ }
+ 凡是没有启动 SYSTEM_ADC1_useScan 一次触发一个通道并手动取数————适合慢速
+ 读取顺序:
+ 调用 u32 Get_Adc_Average(u32 ch,u8 times); 返回值为本次ADC值
+ 其中 ch 通道 形参选择想转换的通道,可选ADC_CHANNEL_0~15,可以为ADC_CHANNEL_TEMPSENSOR,其中result[0]保存本次本通道的转换结果
+ 例子:
+ adValue[0] = (u16)Get_Adc_Average(ADC_CHANNEL_0,10);
+ adValue[1] = (u16)Get_Adc_Average(ADC_CHANNEL_3,10);
+ adValue[2] = (u16)Get_Adc_Average(ADC_CHANNEL_4,10);
+ sprintf(ADC_buf,"adValue:%d %d %d",adValue[0],adValue[1],adValue[2]);
+ LCD_ShowString(10,180,16,(u8*)ADC_buf,0);
注意:采集温度通道返回的是ADC的原始值,用 float Get_Temprate(u32 adcx) 把原始值转换为实际温度值(float类型)
*/
@@ -385,8 +384,7 @@ X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 +X8 + X7 + X5 + X4 + X2 + X + 1
#define SYSTEM_IWDG_ENABLE 1 /*开启独立看门狗,默认1S的喂狗周期,默认在TIM4定时中断里喂狗,用IWDG必开TIM4*/
/*注:看门狗和低功耗待机模式不能同时开启,因为看门狗不能关闭,看门狗复位会唤醒低功耗状态*/
-/*开启DMA1,*/
-#define SYSTEM_DMA1_ENABLE 1
+/*DMA用法简单列举*/
/*
配置前 首先查看 “DMA1各通道一览表”
DMA配置的一般过程:(以储存器传输到UART1的TX为例子,USART1的TX连接在DMA1的通道4上)
@@ -405,17 +403,28 @@ X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 +X8 + X7 + X5 + X4 + X2 + X + 1
UART1TxDMA_Handler.Init.MemInc=DMA_MINC_ENABLE; //存储器增量模式 储存器一般都是增量(地址要增)
UART1TxDMA_Handler.Init.PeriphDataAlignment=DMA_PDATAALIGN_BYTE; //外设数据长度:8位 或者16位 或者32位 外设、存储器要一致,并且能接受
UART1TxDMA_Handler.Init.MemDataAlignment=DMA_MDATAALIGN_BYTE; //存储器数据长度:8位
- UART1TxDMA_Handler.Init.Mode=DMA_NORMAL; //外设普通模式 如果外设是ADC,则开启ADC连续采集后,这里应是循环模式
+ UART1TxDMA_Handler.Init.Mode=DMA_NORMAL; //以ADC为例:如果ADC选择连续模式,这里是循环,如果不开启连续模式,这里是正常模式
UART1TxDMA_Handler.Init.Priority=DMA_PRIORITY_MEDIUM; //中等优先级 最高、高、中、低
HAL_DMA_DeInit(&UART1TxDMA_Handler); //DMA复位
HAL_DMA_Init(&UART1TxDMA_Handler); //DMA初始化
中断初始化:(可选)
- HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 3, 0); //DMA中断优先级
- HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn); //使能DMA中断
+ HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 3, 0); //DMA中断优先级
+ HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn); //使能DMA中断
中断回调函数:
+ //DMA通道1中断服务函数,完成传送一次时的中断
+ void DMA1_Channel1_IRQHandler(void)
+ {
+ HAL_DMA_IRQHandler(&ADC1rxDMA_Handler); //清除中断标志和其他,勿动!
+ }
+
+ //HAL_DMA_IRQHandler的回调函数,ADC转换完成所有规则组通道后的中断函数
+ void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
+ {
+ //要干的活
+ }
- 查询法得到传输是否完成:(通道4为例)
+ 查询法得到传输是否完成:(通道4为例)(没实验过)
if(__HAL_DMA_GET_FLAG(&UART1TxDMA_Handler,DMA_FLAG_TC4))//等待DMA1通道4传输完成
{
__HAL_DMA_CLEAR_FLAG(&UART1TxDMA_Handler,DMA_FLAG_TC4);//清除DMA1通道4传输完成标志
@@ -429,8 +438,7 @@ X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 +X8 + X7 + X5 + X4 + X2 + X + 1
例子:HAL_UART_Transmit_DMA(&UART1_Handler,SendBuff,SEND_BUF_SIZE);
使用DMA接收 原型: HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
- 对于ADC: 发送 原型: HAL_StatusTypeDef HAL_ADC_Start_DMA(ADC_HandleTypeDef* hadc, uint32_t* pData, uint32_t Length) //启用一次规则组ADC转换并用DMA传输结果到目标位置
- 例子:HAL_ADC_Start_DMA(&ADC1_Handler, (uint32_t*)&adValue,12); //开始DMA,最后一个参数为数据长度
+ 对于更多外设: 参考上面ADC外设的DMA用法注解,和periphconfig.c里面的ADC DMA的中断服务函数,以及网上
*/
@@ -552,9 +560,9 @@ X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 +X8 + X7 + X5 + X4 + X2 + X + 1
#define SYSTEM_FLASH_IAP_ENABLE 0 /*启用对内部FLASH储存空间编程*/
#define STM32_FLASH_WREN 1 /*启用写功能,否则只读不写*/
#define STM32_FLASH_SIZE 64 /*所选STM32的FLASH容量大小(单位为KB)*/
- #define FLASH_SAVE_ADDR 0X0800F000 //设置FLASH 保存地址(必须为页的首地址!且其值要大于本代码所占用FLASH的大小+0X08000000)
+ #define FLASH_SAVE_ADDR 0X0800F000 //设置FLASH 保存地址(必须为页的首地址,且必须为2的倍数!且其值要大于代码所占用FLASH的大小+0X08000000)
#define FLASH_SAVE_ADDR1 (0X08000000 + (u32)(60*1024))
-/*可用API:
+/*可用API:(下载程序时不要擦除 整个芯片FLASH,只擦除有程序的扇区)
注:当启用本功能后,在系统初始化序列中将加入读存开机次数的一个用例,一个u16的变量会储存在最后一个或倒数第二个页
例: const u8 TEXT_Buffer[]={"STM32F103 FLASH TEST"}; //用于存入的数据
u8 datatemp[sizeof(TEXT_Buffer)]; //用于接读出的数据
@@ -620,8 +628,8 @@ PC12 SDIO_CK
PD2 SDIO_CMD
*/
/*备注:可用开发用DMA读写SD卡,这样更省时间,读写的时候就不用关中断了*/
-#define SYSTEM_SDIO_SD_ENABLE 1
-/*可用API:(不推荐直接读写!要用文件系统FATFS按照文件读写)
+#define SYSTEM_SDIO_SD_ENABLE 0
+/*可用API:(不推荐直接读写!要用文件系统FATFS按照文件读写,并且SDIO的SD初始化就在FATFS初始化里)
一个块的大小:SDCardInfo.LogBlockSize
SD卡块的数量:SDCardInfo.LogBlockNbr
u8 SD_ReadDisk(buf,secaddr,seccnt); //读取从第secaddr块开始的seccnt个块的内容,返回地址到buf(大概率一个块为512KB,buf必须先准备好足够空间)
@@ -651,7 +659,7 @@ PD2 SDIO_CMD
配置: 在ffsystem.c里面用自己内存分配和释放函数替换 malloc 和 free 两个函数——————————————————————————————当务之急
配置: FATFS的配置文件里有一个没有完全配置好:ffconf.h里在最后的RTOS支持
*/
-#define SYSTEM_FATFS_ENABLE 1
+#define SYSTEM_FATFS_ENABLE 0
/*初始化步骤:
先为每个文件设备句柄申请空间
挂载
@@ -665,8 +673,7 @@ PD2 SDIO_CMD
/*_____________系统函数_______________*/
-//extern static uint8_t Init_OK_Num;
-
+extern u16 StartUpTimes; /*用于保存开机次数,储存在最后一个或倒数第二个页*/
extern uint32_t UIDw[3]; /*保存STM32内部UID识别码,全球唯一识别码*/
extern uint32_t sysCoreClock; /*获取HCLK频率,外设时钟均来自此再分频*/
diff --git a/STM32F1_HAL_freeRTOS_Framework/USER/STM32F1_HAL_freeRTOS_Framework.uvguix.staok b/STM32F1_HAL_freeRTOS_Framework/USER/STM32F1_HAL_freeRTOS_Framework.uvguix.staok
index 95b0fae..c6849a7 100644
--- a/STM32F1_HAL_freeRTOS_Framework/USER/STM32F1_HAL_freeRTOS_Framework.uvguix.staok
+++ b/STM32F1_HAL_freeRTOS_Framework/USER/STM32F1_HAL_freeRTOS_Framework.uvguix.staok
@@ -11,17 +11,17 @@
38003
Registers
- 140 115
+ 140 100
346
Code Coverage
- 1010 160
+ 1010 656
204
Performance Analyzer
- 1170
+ 1170 175 175 146
@@ -106,8 +106,8 @@
0
- 1921
- 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000E000000060000000100000059453A5CB5E7D7D326B1E0B3CC20D1A7CFB05C333246312048414C2052544F53BBF2C2E3BBFA20C4A3B0E55C53544D333246315F48414C5F6672656552544F535F4672616D65776F726B5C555345525C5372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF56453A5CB5E7D7D326B1E0B3CC20D1A7CFB05C333246312048414C2052544F53BBF2C2E3BBFA20C4A3B0E55C53544D333246315F48414C5F6672656552544F535F4672616D65776F726B5C53595354454D5C7379732E6300000000057379732E6300000000FFDC7800FFFFFFFF5F453A5CB5E7D7D326B1E0B3CC20D1A7CFB05C333246312048414C2052544F53BBF2C2E3BBFA20C4A3B0E55C53544D333246315F48414C5F6672656552544F535F4672616D65776F726B5C555345525C5372635C5461736B436F6E6669672E63000000000C5461736B436F6E6669672E6300000000BECEA100FFFFFFFF5F453A5CB5E7D7D326B1E0B3CC20D1A7CFB05C333246312048414C2052544F53BBF2C2E3BBFA20C4A3B0E55C53544D333246315F48414C5F6672656552544F535F4672616D65776F726B5C555345525C496E635C5461736B436F6E6669672E68000000000C5461736B436F6E6669672E6800000000F0A0A100FFFFFFFF60453A5CB5E7D7D326B1E0B3CC20D1A7CFB05C333246312048414C2052544F53BBF2C2E3BBFA20C4A3B0E55C53544D333246315F48414C5F6672656552544F535F4672616D65776F726B5C53595354454D5C6D656E755C7379735F6D656E752E63000000000A7379735F6D656E752E63000000009CC1B600FFFFFFFF6C453A5CB5E7D7D326B1E0B3CC20D1A7CFB05C333246312048414C2052544F53BBF2C2E3BBFA20C4A3B0E55C53544D333246315F48414C5F6672656552544F535F4672616D65776F726B5C53595354454D5C506572697068436F6E6669675C506572697068436F6E6669672E63000000000E506572697068436F6E6669672E6300000000D9ADC200FFFFFFFF5F453A5CB5E7D7D326B1E0B3CC20D1A7CFB05C333246312048414C2052544F53BBF2C2E3BBFA20C4A3B0E55C53544D333246315F48414C5F6672656552544F535F4672616D65776F726B5C555345525C5372635C42617265436F6E6669672E63000000000C42617265436F6E6669672E6300000000A5C2D700FFFFFFFF56453A5CB5E7D7D326B1E0B3CC20D1A7CFB05C333246312048414C2052544F53BBF2C2E3BBFA20C4A3B0E55C53544D333246315F48414C5F6672656552544F535F4672616D65776F726B5C53595354454D5C7379732E6800000000057379732E6800000000B3A6BE00FFFFFFFF6C453A5CB5E7D7D326B1E0B3CC20D1A7CFB05C333246312048414C2052544F53BBF2C2E3BBFA20C4A3B0E55C53544D333246315F48414C5F6672656552544F535F4672616D65776F726B5C53595354454D5C506572697068436F6E6669675C506572697068436F6E6669672E68000000000E506572697068436F6E6669672E6800000000EAD6A300FFFFFFFF63453A5CB5E7D7D326B1E0B3CC20D1A7CFB05C333246312048414C2052544F53BBF2C2E3BBFA20C4A3B0E55C53544D333246315F48414C5F6672656552544F535F4672616D65776F726B5C555345525C496E635C4672656552544F53436F6E6669672E6800000000104672656552544F53436F6E6669672E6800000000F6FA7D00FFFFFFFF63453A5CB5E7D7D326B1E0B3CC20D1A7CFB05C333246312048414C2052544F53BBF2C2E3BBFA20C4A3B0E55C53544D333246315F48414C5F6672656552544F535F4672616D65776F726B5C446576696365735C4C434420494C49393334315C4755492E6800000000054755492E6800000000B5E99D00FFFFFFFF5F453A5CB5E7D7D326B1E0B3CC20D1A7CFB05C333246312048414C2052544F53BBF2C2E3BBFA20C4A3B0E55C53544D333246315F48414C5F6672656552544F535F4672616D65776F726B5C53595354454D5C46415446535C6469736B696F2E6300000000086469736B696F2E63000000005FC3CF00FFFFFFFF61453A5CB5E7D7D326B1E0B3CC20D1A7CFB05C333246312048414C2052544F53BBF2C2E3BBFA20C4A3B0E55C53544D333246315F48414C5F6672656552544F535F4672616D65776F726B5C53595354454D5C46415446535C666673797374656D2E63000000000A666673797374656D2E6300000000CACAD500FFFFFFFF65453A5CB5E7D7D326B1E0B3CC20D1A7CFB05C333246312048414C2052544F53BBF2C2E3BBFA20C4A3B0E55C53544D333246315F48414C5F6672656552544F535F4672616D65776F726B5C48414C5C5372635C73746D3332663178785F68616C5F6164632E63000000001373746D3332663178785F68616C5F6164632E63000000005FC3CF00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000000D010000660000008007000069030000
+ 1898
+ 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000E000000010000000100000059453A5CB5E7D7D326B1E0B3CC20D1A7CFB05C333246312048414C2052544F53BBF2C2E3BBFA20C4A3B0E55C53544D333246315F48414C5F6672656552544F535F4672616D65776F726B5C555345525C5372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF56453A5CB5E7D7D326B1E0B3CC20D1A7CFB05C333246312048414C2052544F53BBF2C2E3BBFA20C4A3B0E55C53544D333246315F48414C5F6672656552544F535F4672616D65776F726B5C53595354454D5C7379732E6300000000057379732E6300000000FFDC7800FFFFFFFF5F453A5CB5E7D7D326B1E0B3CC20D1A7CFB05C333246312048414C2052544F53BBF2C2E3BBFA20C4A3B0E55C53544D333246315F48414C5F6672656552544F535F4672616D65776F726B5C555345525C5372635C5461736B436F6E6669672E63000000000C5461736B436F6E6669672E6300000000BECEA100FFFFFFFF5F453A5CB5E7D7D326B1E0B3CC20D1A7CFB05C333246312048414C2052544F53BBF2C2E3BBFA20C4A3B0E55C53544D333246315F48414C5F6672656552544F535F4672616D65776F726B5C555345525C496E635C5461736B436F6E6669672E68000000000C5461736B436F6E6669672E6800000000F0A0A100FFFFFFFF60453A5CB5E7D7D326B1E0B3CC20D1A7CFB05C333246312048414C2052544F53BBF2C2E3BBFA20C4A3B0E55C53544D333246315F48414C5F6672656552544F535F4672616D65776F726B5C53595354454D5C6D656E755C7379735F6D656E752E63000000000A7379735F6D656E752E6300000000BCA8E100FFFFFFFF6C453A5CB5E7D7D326B1E0B3CC20D1A7CFB05C333246312048414C2052544F53BBF2C2E3BBFA20C4A3B0E55C53544D333246315F48414C5F6672656552544F535F4672616D65776F726B5C53595354454D5C506572697068436F6E6669675C506572697068436F6E6669672E63000000000E506572697068436F6E6669672E63000000009CC1B600FFFFFFFF5F453A5CB5E7D7D326B1E0B3CC20D1A7CFB05C333246312048414C2052544F53BBF2C2E3BBFA20C4A3B0E55C53544D333246315F48414C5F6672656552544F535F4672616D65776F726B5C555345525C5372635C42617265436F6E6669672E63000000000C42617265436F6E6669672E6300000000F7B88600FFFFFFFF56453A5CB5E7D7D326B1E0B3CC20D1A7CFB05C333246312048414C2052544F53BBF2C2E3BBFA20C4A3B0E55C53544D333246315F48414C5F6672656552544F535F4672616D65776F726B5C53595354454D5C7379732E6800000000057379732E6800000000D9ADC200FFFFFFFF6C453A5CB5E7D7D326B1E0B3CC20D1A7CFB05C333246312048414C2052544F53BBF2C2E3BBFA20C4A3B0E55C53544D333246315F48414C5F6672656552544F535F4672616D65776F726B5C53595354454D5C506572697068436F6E6669675C506572697068436F6E6669672E68000000000E506572697068436F6E6669672E6800000000A5C2D700FFFFFFFF63453A5CB5E7D7D326B1E0B3CC20D1A7CFB05C333246312048414C2052544F53BBF2C2E3BBFA20C4A3B0E55C53544D333246315F48414C5F6672656552544F535F4672616D65776F726B5C555345525C496E635C4672656552544F53436F6E6669672E6800000000104672656552544F53436F6E6669672E6800000000B3A6BE00FFFFFFFF63453A5CB5E7D7D326B1E0B3CC20D1A7CFB05C333246312048414C2052544F53BBF2C2E3BBFA20C4A3B0E55C53544D333246315F48414C5F6672656552544F535F4672616D65776F726B5C446576696365735C4C434420494C49393334315C4755492E6800000000054755492E6800000000EAD6A300FFFFFFFF5F453A5CB5E7D7D326B1E0B3CC20D1A7CFB05C333246312048414C2052544F53BBF2C2E3BBFA20C4A3B0E55C53544D333246315F48414C5F6672656552544F535F4672616D65776F726B5C53595354454D5C46415446535C6469736B696F2E6300000000086469736B696F2E6300000000F6FA7D00FFFFFFFF61453A5CB5E7D7D326B1E0B3CC20D1A7CFB05C333246312048414C2052544F53BBF2C2E3BBFA20C4A3B0E55C53544D333246315F48414C5F6672656552544F535F4672616D65776F726B5C53595354454D5C46415446535C666673797374656D2E63000000000A666673797374656D2E6300000000B5E99D00FFFFFFFF59453A5CB5E7D7D326B1E0B3CC20D1A7CFB05C333246312048414C2052544F53BBF2C2E3BBFA20C4A3B0E55C53544D333246315F48414C5F6672656552544F535F4672616D65776F726B5C53595354454D5C7379735661722E6800000000087379735661722E68000000005FC3CF00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000F4000000660000008007000069030000
@@ -146,11 +146,11 @@
0
16
- 03000000660000000601000039030000
+ 0300000066000000ED00000039030000
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -166,11 +166,11 @@
0
16
- 03000000660000000601000039030000
+ 0300000066000000ED00000039030000
16
- A4000000BB000000C0010000FB020000
+ D8000000EF000000F40100002F030000
@@ -190,7 +190,7 @@
16
- A4000000BB0000006C0300004B010000
+ D8000000EF000000A00300007F010000
@@ -210,7 +210,7 @@
16
- A4000000BB0000006C0300004B010000
+ D8000000EF000000A00300007F010000
@@ -230,7 +230,7 @@
16
- A4000000BB0000006C0300004B010000
+ D8000000EF000000A00300007F010000
@@ -250,7 +250,7 @@
16
- A4000000BB0000006C0300004B010000
+ D8000000EF000000A00300007F010000
@@ -270,7 +270,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -290,7 +290,7 @@
16
- A4000000BB0000006C0300004B010000
+ D8000000EF000000A00300007F010000
@@ -310,7 +310,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -322,7 +322,7 @@
0
32767
0
- 32768
+ 4096
0
16
@@ -330,7 +330,7 @@
16
- 22000000390000001201000004010000
+ D8000000EF000000C8010000BA010000
@@ -350,7 +350,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -370,7 +370,7 @@
16
- A4000000BB0000006C0300004B010000
+ D8000000EF000000A00300007F010000
@@ -390,7 +390,7 @@
16
- A4000000BB0000006C0300004B010000
+ D8000000EF000000A00300007F010000
@@ -410,7 +410,7 @@
16
- A4000000BB0000006C0300004B010000
+ D8000000EF000000A00300007F010000
@@ -430,7 +430,7 @@
16
- A4000000BB0000006C0300004B010000
+ D8000000EF000000A00300007F010000
@@ -446,11 +446,11 @@
0
16
- 03000000660000000601000039030000
+ 0300000066000000ED00000039030000
16
- A4000000BB000000C0010000FB020000
+ D8000000EF000000F40100002F030000
@@ -466,11 +466,11 @@
0
16
- 03000000660000000601000039030000
+ 0300000066000000ED00000039030000
16
- A4000000BB000000C0010000FB020000
+ D8000000EF000000F40100002F030000
@@ -486,11 +486,11 @@
0
16
- 030000006D0300007D070000CD030000
+ 000000006A03000080070000E6030000
16
- A4000000BB0000006C0300004B010000
+ D8000000EF000000A00300007F010000
@@ -510,7 +510,7 @@
16
- A4000000BB0000006C0300004B010000
+ D8000000EF000000A00300007F010000
@@ -522,7 +522,7 @@
0
32767
0
- 32768
+ 4096
0
16
@@ -530,7 +530,7 @@
16
- A4000000BB0000006C0300004B010000
+ D8000000EF000000A00300007F010000
@@ -550,7 +550,7 @@
16
- A4000000BB0000006C0300004B010000
+ D8000000EF000000A00300007F010000
@@ -570,7 +570,7 @@
16
- A4000000BB0000006C0300004B010000
+ D8000000EF000000A00300007F010000
@@ -610,7 +610,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -630,7 +630,7 @@
16
- A4000000BB0000006C0300004B010000
+ D8000000EF000000A00300007F010000
@@ -650,7 +650,7 @@
16
- A4000000BB0000006C0300004B010000
+ D8000000EF000000A00300007F010000
@@ -670,7 +670,7 @@
16
- A4000000BB0000006C0300004B010000
+ D8000000EF000000A00300007F010000
@@ -690,7 +690,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -710,7 +710,7 @@
16
- A4000000BB0000006C0300004B010000
+ D8000000EF000000A00300007F010000
@@ -730,7 +730,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -750,7 +750,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -770,7 +770,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -790,7 +790,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -810,7 +810,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -830,7 +830,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -850,7 +850,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -870,7 +870,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -890,7 +890,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -910,7 +910,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -930,7 +930,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -950,7 +950,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -970,7 +970,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -990,7 +990,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1010,7 +1010,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1030,7 +1030,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1050,7 +1050,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1070,7 +1070,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1090,7 +1090,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1110,7 +1110,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1130,7 +1130,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1146,23 +1146,23 @@
0
16
- 03000000660000000601000039030000
+ 0300000066000000ED00000039030000
16
- A4000000BB000000C0010000FB020000
+ D8000000EF000000F40100002F030000
38007
38007
- 1
+ 0
0
0
0
32767
0
- 32768
+ 4096
0
16
@@ -1170,7 +1170,7 @@
16
- A4000000BB0000006C0300004B010000
+ D8000000EF000000A00300007F010000
@@ -1182,7 +1182,7 @@
0
32767
0
- 32768
+ 4096
0
16
@@ -1190,7 +1190,7 @@
16
- A4000000BB000000C0010000FB020000
+ D8000000EF000000F40100002F030000
@@ -1210,7 +1210,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1230,7 +1230,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1242,7 +1242,7 @@
0
32767
0
- 32768
+ 4096
0
16
@@ -1250,7 +1250,7 @@
16
- A4000000BB000000C0010000FB020000
+ D8000000EF000000F40100002F030000
@@ -1262,7 +1262,7 @@
0
32767
0
- 32768
+ 4096
0
16
@@ -1270,7 +1270,7 @@
16
- A4000000BB000000C0010000FB020000
+ D8000000EF000000F40100002F030000
@@ -1290,7 +1290,7 @@
16
- A4000000BB0000006C0300004B010000
+ D8000000EF000000A00300007F010000
@@ -1310,7 +1310,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1330,7 +1330,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1350,7 +1350,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1370,7 +1370,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1390,7 +1390,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1410,7 +1410,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1430,7 +1430,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1450,7 +1450,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1470,7 +1470,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1490,7 +1490,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1510,7 +1510,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1530,7 +1530,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1550,7 +1550,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1570,7 +1570,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1590,7 +1590,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1610,7 +1610,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1630,7 +1630,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1650,7 +1650,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1670,7 +1670,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1690,7 +1690,7 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
@@ -1790,19 +1790,19 @@
16
- A4000000BB0000009401000086010000
+ D8000000EF000000C8010000BA010000
3312
- 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DF00000090050000E3000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000F40000006600000090050000F6000000F40000004F00000090050000DF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000A0040000660000009005000040020000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF090100004F0000000D010000520300000100000002000010040000000100000012FFFFFF87060000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000000000660000000901000069030000000000004F00000009010000520300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000015020000900500001902000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000000000003002000090050000D4020000000000001902000090050000BD02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000019020000CC020000BD02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000520300008007000056030000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000000000006D03000080070000FD030000000000005603000080070000E60300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572010000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000
+ 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DF00000090050000E3000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000F40000006600000090050000F6000000F40000004F00000090050000DF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000A0040000660000009005000040020000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F400000052030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000F000000069030000000000004F000000F0000000520300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000015020000900500001902000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000000000003002000090050000D4020000000000001902000090050000BD02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000019020000CC020000BD02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000520300008007000056030000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000000000006D03000080070000FD030000000000005603000080070000E60300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000
59392
File
- 2271
- 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000086D796D616C6C6F6396000000000000000400086D796D616C6C6F630466696C650B6765745F66617474696D65077479706564656600000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65B9030000
+ 2264
+ 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000001753595354454D5F414443315F7573654368616E6C4E756D960000000000000001001753595354454D5F414443315F7573654368616E6C4E756D00000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65B9030000
1423
@@ -1818,7 +1818,7 @@
Build
984
- 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000C46315F4672616D65776F726B960000000000000001000C46315F4672616D65776F726B000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000
+ 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000002001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000C46315F4672616D65776F726B960000000000000001000C46315F4672616D65776F726B000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000
583
@@ -3091,7 +3091,7 @@
16
- 22000000390000001201000004010000
+ 0A0000000A0000006E0000006E000000
@@ -3211,7 +3211,7 @@
16
- 22000000390000001201000004010000
+ 0A0000000A0000006E0000006E000000
@@ -3542,8 +3542,8 @@
59392
File
- 2253
- 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000002000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000673697A655F74960000000000000003000673697A655F74085F3130306D736563055F31736563000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000100150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65B9030000
+ 2264
+ 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000001753595354454D5F414443315F7573654368616E6C4E756D960000000000000001001753595354454D5F414443315F7573654368616E6C4E756D00000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000300150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65B9030000
1423
@@ -3559,7 +3559,7 @@
Build
955
- 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000
+ 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000
583
@@ -3575,7 +3575,7 @@
Debug
2362
- 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000004002A00000000000000000000000000000000010000000100000001801C800000000004002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000020000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
+ 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000004002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000020000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
898
@@ -3599,7 +3599,7 @@
0
100
- 6
+ 1
.\Src\main.c
0
@@ -3611,17 +3611,17 @@
..\SYSTEM\sys.c
- 38
- 1
- 13
+ 4
+ 91
+ 110
1
- 210,224,238,274,291,312,546,582,748,859,898,946,1085,1104,1117,1192,1391,1434,1439,1443,1454,1458,1490,1505,1567
+ 201,215,229,265,282,303,422,533,569,735,748,780,812,846,890,948,1047,1065,1072,1091,1104,1179,1378,1421,1426,1430,1441,1445,1451,1470,1477,1492,1507,1516,1524,1554
0
.\Src\TaskConfig.c
- 22
- 191
+ 12
+ 192
251
1
6,49
@@ -3629,7 +3629,7 @@
.\Inc\TaskConfig.h
- 23
+ 17
193
209
1
@@ -3638,45 +3638,45 @@
..\SYSTEM\menu\sys_menu.c
- 3
- 159
- 363
+ 0
+ 160
+ 367
1
147,213,217,229,366,431,446
0
..\SYSTEM\PeriphConfig\PeriphConfig.c
- 98
- 260
- 1050
+ 0
+ 161
+ 305
1
- 124,139,155,176,320,447,505,841,930,941,979,995,1026,1083,1089,1125,1161,1174,1184,1193,1203,1213,1218,1249,1262,1271,1274,1313,1329,1366,1480,1569,1579,1604,1637,1662,1684
+ 124,139,155,176,307,320,447,505,841,866,871,933,944,998,1017,1031,1038,1096,1102,1138,1174,1187,1197,1206,1216,1226,1231,1262,1275,1284,1287,1326,1342,1379,1413,1472,1493,1582,1592,1617,1650,1675,1697
0
.\Src\BareConfig.c
- 69
- 43
- 79
+ 29
+ 49
+ 86
1
50
0
..\SYSTEM\sys.h
- 8
- 390
- 417
+ 2
+ 542
+ 559
1
- 679,722,726,749,766,772,781
+ 686,729,733,756,773,779,788
0
..\SYSTEM\PeriphConfig\PeriphConfig.h
- 1
- 234
- 273
+ 37
+ 171
+ 192
1
0
@@ -3692,18 +3692,18 @@
..\Devices\LCD ILI9341\GUI.h
- 37
+ 0
1
- 26
+ 27
1
0
..\SYSTEM\FATFS\diskio.c
- 34
- 188
- 244
+ 14
+ 43
+ 86
1
27
0
@@ -3718,10 +3718,10 @@
0
- ..\HAL\Src\stm32f1xx_hal_adc.c
- 80
- 1516
- 1534
+ ..\SYSTEM\sysVar.h
+ 22
+ 59
+ 72
1
0
diff --git a/STM32F1_HAL_freeRTOS_Framework/USER/STM32F1_HAL_freeRTOS_Framework.uvoptx b/STM32F1_HAL_freeRTOS_Framework/USER/STM32F1_HAL_freeRTOS_Framework.uvoptx
index 6ce07bb..7cc61fd 100644
--- a/STM32F1_HAL_freeRTOS_Framework/USER/STM32F1_HAL_freeRTOS_Framework.uvoptx
+++ b/STM32F1_HAL_freeRTOS_Framework/USER/STM32F1_HAL_freeRTOS_Framework.uvoptx
@@ -119,13 +119,13 @@
0
- ST-LINKIII-KEIL_SWO
- -U-O206 -O206 -SF25 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("") -D00(00000000) -L00(0) -TO18 -TC10000000 -TP21 -TDS8000 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F103ZE$Flash\STM32F10x_512.FLM)
+ UL2CM3
+ -U -O206 -S8 -C0 -P00 -N00("") -D00(00000000) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FN1 -FC1000 -FD20000000 -FF0STM32F10x_128 -FL020000 -FS08000000 -FP0($$Device:STM32F103C8$Flash\STM32F10x_128.FLM)
0
- UL2CM3
- -U -O206 -S8 -C0 -P00 -N00("") -D00(00000000) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F103ZE$Flash\STM32F10x_512.FLM)
+ ST-LINKIII-KEIL_SWO
+ -U49FF6F068372525128452481 -O206 -SF4000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8004 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103C8$Flash\STM32F10x_128.FLM)
0
@@ -135,7 +135,7 @@
0
DLGTARM
- (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=-1,-1,-1,-1,0)(121=-1,-1,-1,-1,0)(122=-1,-1,-1,-1,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=-1,-1,-1,-1,0)(131=-1,-1,-1,-1,0)(132=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0)
+ (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)
0
@@ -165,6 +165,31 @@
1
menuid[3]
+
+ 3
+ 1
+ StartUpTimes
+
+
+ 4
+ 1
+ s
+
+
+ 5
+ 1
+ s2
+
+
+ 6
+ 1
+ s1
+
+
+ 7
+ 1
+ string_buf
+
0
@@ -279,8 +304,8 @@
0
0
0
- ..\CORE\startup_stm32f103xe.s
- startup_stm32f103xe.s
+ ..\CORE\startup_stm32f103xb.s
+ startup_stm32f103xb.s
0
0
@@ -1300,7 +1325,7 @@
Devices
- 1
+ 0
0
0
0
diff --git a/STM32F1_HAL_freeRTOS_Framework/USER/STM32F1_HAL_freeRTOS_Framework.uvprojx b/STM32F1_HAL_freeRTOS_Framework/USER/STM32F1_HAL_freeRTOS_Framework.uvprojx
index fa691b0..7fa6b6c 100644
--- a/STM32F1_HAL_freeRTOS_Framework/USER/STM32F1_HAL_freeRTOS_Framework.uvprojx
+++ b/STM32F1_HAL_freeRTOS_Framework/USER/STM32F1_HAL_freeRTOS_Framework.uvprojx
@@ -14,16 +14,16 @@
0
- STM32F103ZE
+ STM32F103C8
STMicroelectronics
Keil.STM32F1xx_DFP.2.3.0
http://www.keil.com/pack/
- IRAM(0x20000000,0x00010000) IROM(0x08000000,0x00080000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE
+ IRAM(0x20000000,0x00005000) IROM(0x08000000,0x00010000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_512 -FS08000000 -FL080000 -FP0($$Device:STM32F103ZE$Flash\STM32F10x_512.FLM))
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000 -FP0($$Device:STM32F103C8$Flash\STM32F10x_128.FLM))
0
- $$Device:STM32F103ZE$Device\Include\stm32f10x.h
+ $$Device:STM32F103C8$Device\Include\stm32f10x.h
@@ -33,7 +33,7 @@
- $$Device:STM32F103ZE$SVD\STM32F103xx.svd
+ $$Device:STM32F103C8$SVD\STM32F103xx.svd
0
0
@@ -138,7 +138,7 @@
1
BIN\UL2CM3.DLL
- "" ()
+
@@ -245,12 +245,12 @@
0
0x20000000
- 0x10000
+ 0x5000
1
0x8000000
- 0x80000
+ 0x10000
0
@@ -275,7 +275,7 @@
1
0x8000000
- 0x80000
+ 0x10000
1
@@ -300,7 +300,7 @@
0
0x20000000
- 0x10000
+ 0x5000
0
@@ -336,7 +336,7 @@
0
- USE_HAL_DRIVER,STM32F103xE
+ USE_HAL_DRIVER,STM32F103xB
..\CORE;..\HAL\Inc;.\Inc;..\SYSTEM;..\FreeRTOS\include;..\FreeRTOS\portable\RVDS\ARM_CM3;..\APP\Inc;..\SYSTEM\simu_i2c_spi;..\SYSTEM\ringbuf;..\SYSTEM\printf;..\SYSTEM\pid;..\SYSTEM\menu;..\SYSTEM\MyString;..\SYSTEM\PeriphConfig;..\Devices\MAX7219;..\Devices\LCD ILI9341;..\SYSTEM\FATFS
@@ -403,9 +403,9 @@
..\CORE\core_cm3.h
- startup_stm32f103xe.s
+ startup_stm32f103xb.s
2
- ..\CORE\startup_stm32f103xe.s
+ ..\CORE\startup_stm32f103xb.s
diff --git a/STM32F1_HAL_freeRTOS_Framework/USER/Src/BareConfig.c b/STM32F1_HAL_freeRTOS_Framework/USER/Src/BareConfig.c
index 6fad00b..4087de6 100644
--- a/STM32F1_HAL_freeRTOS_Framework/USER/Src/BareConfig.c
+++ b/STM32F1_HAL_freeRTOS_Framework/USER/Src/BareConfig.c
@@ -73,7 +73,7 @@ void Bare_Begin(void)
keyProcess(); //菜单框架里的输入接管和获取函数
menuProcess(); //菜单框架里的按照输入执行功能函数
-
+
}
/*____________________________________1s周期执行:通常为运行状态指示,滴答心跳提醒等等__________________________________________*/
@@ -82,11 +82,6 @@ void Bare_Begin(void)
Timer_IT_flags._1sec_flag = FALSE;
/*1s周期要做的事情*/
- //printf_uart(UART3,"UART333---One Second\r\n");
- //printf_uart(UART2,"UART222---One Second\r\n");
- //printf_uart(UART1,"UART111---One Second\r\n");
-
- //TestLED_Ctrl = !TestLED_Ctrl;
char RTC_buf[50];
// sprintf(RTC_buf,"%d-%d-%d %d-%d-%d",calendar.w_year,calendar.w_month,calendar.w_date,calendar.hour,calendar.min,calendar.sec);
@@ -95,6 +90,11 @@ void Bare_Begin(void)
sprintf(RTC_buf,"%2ds",Timer_IT_flags._1sec);
LCD_ShowString(10,20,16,(u8*)RTC_buf,0);
+ #if SYSTEM_FLASH_IAP_ENABLE
+ sprintf(RTC_buf,"%d",StartUpTimes);
+ LCD_ShowString(35,20,16,(u8*)RTC_buf,0);
+ #endif
+
}
if(Timer_IT_flags._1min_flag == TRUE)