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)