From db8a69ef4c22fe18ff0676ddc942545a4eb82875 Mon Sep 17 00:00:00 2001 From: Chiri Date: Sat, 9 Aug 2025 08:34:13 +0800 Subject: [PATCH] =?UTF-8?q?2025.07.09=E4=B8=8A=E5=8D=88=20=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E8=84=89=E5=86=B2=E8=AE=A1=E6=95=B0=EF=BC=88=E5=A4=96?= =?UTF-8?q?=E9=83=A8=E6=97=B6=E9=92=9F=EF=BC=89=20=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E4=BA=86=E4=B8=89=E4=B8=AA=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Core/Inc/main.h | 14 + Core/Inc/stm32f4xx_it.h | 2 +- Core/Inc/tim.h | 4 +- Core/Inc/usart.h | 5 + Core/Src/gpio.c | 9 +- Core/Src/main.c | 328 +++- Core/Src/stm32f4xx_it.c | 125 +- Core/Src/tim.c | 107 +- Core/Src/usart.c | 12 +- EWARM/PLSR.dep | 1490 ++++++++--------- EWARM/PLSR.ewp | 2 +- EWARM/settings/PLSR.PLSR.cspy.bat | 4 +- EWARM/settings/PLSR.PLSR.cspy.ps1 | 4 +- EWARM/settings/PLSR.PLSR.general.xcl | 2 +- EWARM/settings/PLSR.dbgdt | 104 +- EWARM/settings/PLSR.dnx | 21 +- EWARM/settings/PLSR.reggroups | 1 + EWARM/settings/Project.wsdt | 57 +- Hardware/PLSR.c | 206 ++- Hardware/PLSR.h | 49 +- Hardware/modbus.c | 6 +- Hardware/modbus.h | 3 + Hardware/sram.c | 6 +- PLSR.ioc | 71 +- Words/流程图.md | 49 + Words/设计方案书 .doc | Bin 0 -> 150528 bytes Words/设计方案书.doc | Bin 35840 -> 0 bytes Words/需求规格书.doc | Bin 20992 -> 43520 bytes .../图1脉冲计数设计流程图.png | Bin 0 -> 11119 bytes .../流程图/图2脉冲加速流程图.png | Bin 0 -> 21887 bytes 30 files changed, 1676 insertions(+), 1005 deletions(-) create mode 100644 EWARM/settings/PLSR.reggroups create mode 100644 Words/流程图.md create mode 100644 Words/设计方案书 .doc delete mode 100644 Words/设计方案书.doc create mode 100644 pictures/流程图/图1脉冲计数设计流程图.png create mode 100644 pictures/流程图/图2脉冲加速流程图.png diff --git a/Core/Inc/main.h b/Core/Inc/main.h index 9e6ffde..2b0e719 100644 --- a/Core/Inc/main.h +++ b/Core/Inc/main.h @@ -36,7 +36,13 @@ extern "C" { /* Exported types ------------------------------------------------------------*/ /* USER CODE BEGIN ET */ +extern uint8_t ArrFlag; /* ٶFlag */ +extern float Acc; /* ٶ */ +extern uint8_t PulseNum; /* μ */ +extern uint32_t AllPulseCNT; +extern uint8_t EndFlag; +extern uint8_t FullFlag; /* USER CODE END ET */ /* Exported constants --------------------------------------------------------*/ @@ -57,6 +63,14 @@ void Error_Handler(void); /* USER CODE END EFP */ /* Private defines -----------------------------------------------------------*/ +#define Y15_Pin GPIO_PIN_6 +#define Y15_GPIO_Port GPIOH +#define Y14_Pin GPIO_PIN_7 +#define Y14_GPIO_Port GPIOH +#define Y13_Pin GPIO_PIN_8 +#define Y13_GPIO_Port GPIOH +#define Y12_Pin GPIO_PIN_9 +#define Y12_GPIO_Port GPIOH /* USER CODE BEGIN Private defines */ diff --git a/Core/Inc/stm32f4xx_it.h b/Core/Inc/stm32f4xx_it.h index a453eb7..b4ab761 100644 --- a/Core/Inc/stm32f4xx_it.h +++ b/Core/Inc/stm32f4xx_it.h @@ -55,7 +55,7 @@ void SVC_Handler(void); void DebugMon_Handler(void); void PendSV_Handler(void); void SysTick_Handler(void); -void TIM1_BRK_TIM9_IRQHandler(void); +void TIM2_IRQHandler(void); void USART1_IRQHandler(void); void DMA2_Stream2_IRQHandler(void); void DMA2_Stream7_IRQHandler(void); diff --git a/Core/Inc/tim.h b/Core/Inc/tim.h index a67653e..dbcfe47 100644 --- a/Core/Inc/tim.h +++ b/Core/Inc/tim.h @@ -32,7 +32,7 @@ extern "C" { /* USER CODE END Includes */ -extern TIM_HandleTypeDef htim9; +extern TIM_HandleTypeDef htim2; extern TIM_HandleTypeDef htim10; @@ -40,7 +40,7 @@ extern TIM_HandleTypeDef htim10; /* USER CODE END Private defines */ -void MX_TIM9_Init(void); +void MX_TIM2_Init(void); void MX_TIM10_Init(void); void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim); diff --git a/Core/Inc/usart.h b/Core/Inc/usart.h index 10c6193..972b42f 100644 --- a/Core/Inc/usart.h +++ b/Core/Inc/usart.h @@ -35,7 +35,12 @@ extern "C" { extern UART_HandleTypeDef huart1; /* USER CODE BEGIN Private defines */ +#define RX_BUFFER_SIZE 1024 +extern uint8_t RX1DataTemp; +extern uint8_t RX1Data[RX_BUFFER_SIZE]; +extern uint8_t RX1Flag; +extern volatile uint16_t RX1Count; /* USER CODE END Private defines */ void MX_USART1_UART_Init(void); diff --git a/Core/Src/gpio.c b/Core/Src/gpio.c index 33eb032..f641b36 100644 --- a/Core/Src/gpio.c +++ b/Core/Src/gpio.c @@ -45,20 +45,19 @@ void MX_GPIO_Init(void) GPIO_InitTypeDef GPIO_InitStruct = {0}; /* GPIO Ports Clock Enable */ - __HAL_RCC_GPIOI_CLK_ENABLE(); __HAL_RCC_GPIOF_CLK_ENABLE(); __HAL_RCC_GPIOH_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(GPIOI, GPIO_PIN_8, GPIO_PIN_RESET); + HAL_GPIO_WritePin(GPIOH, Y15_Pin|Y14_Pin|Y13_Pin|Y12_Pin, GPIO_PIN_RESET); - /*Configure GPIO pin : PI8 */ - GPIO_InitStruct.Pin = GPIO_PIN_8; + /*Configure GPIO pins : PHPin PHPin PHPin PHPin */ + GPIO_InitStruct.Pin = Y15_Pin|Y14_Pin|Y13_Pin|Y12_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - HAL_GPIO_Init(GPIOI, &GPIO_InitStruct); + HAL_GPIO_Init(GPIOH, &GPIO_InitStruct); } diff --git a/Core/Src/main.c b/Core/Src/main.c index 1cd84dd..fb9a0a6 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -26,13 +26,18 @@ /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include "PLSR.h" -#include "includes.h" +#include "includes.h" +#include "modbus.h" /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ /* USER CODE BEGIN PTD */ uint8_t ArrFlag = 0; /* ٶFlag */ -int32_t Acc; /* ٶ */ +float Acc; /* ٶ */ +uint32_t AllPulseCNT = 0; + +uint8_t EndFlag = 0; +uint8_t FullFlag = 0; /* USER CODE END PTD */ /* Private define ------------------------------------------------------------*/ @@ -54,7 +59,7 @@ int32_t Acc; /* /* Private function prototypes -----------------------------------------------*/ void SystemClock_Config(void); /* USER CODE BEGIN PFP */ - +void PVD_Init(void); /* USER CODE END PFP */ /* Private user code ---------------------------------------------------------*/ @@ -62,20 +67,28 @@ void SystemClock_Config(void); /* ȼ */ #define TASK_Y1Direction 4 - +#define TASK_PulseStart 4 +#define TASK_DirOutput 4 + /* ջС */ - #define Task_Y1Direction_SIZE 256 - +#define Task_Y1Direction_SIZE 256 +#define Task_PulseStart_SIZE 256 +#define Task_DirOutput_SIZE 256 + /* ƿ */ - OS_TCB Y1Direction_Tsk; - +OS_TCB Y1Direction_Tsk; +OS_TCB PulseStart_Tsk; +OS_TCB DirOutput_Tsk; /* ջ */ CPU_STK Task_Y1Direction_STK[Task_Y1Direction_SIZE]; +CPU_STK Task_PulseStart_STK[Task_PulseStart_SIZE]; +CPU_STK Task_DirOutput_STK[Task_DirOutput_SIZE]; /* */ void Y1Direction(void *p_arg); - +void PulseStartTsk(void *p_arg); +void DirOutput(void *p_arg); /* USER CODE END 0 */ @@ -95,14 +108,16 @@ int main(void) HAL_Init(); /* USER CODE BEGIN Init */ - + PVD_Init(); /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ - + HAL_PWR_EnableBkUpAccess();/* ʹܱ */ + __HAL_RCC_BKPSRAM_CLK_ENABLE();/* ʹܱSRAMʱ */ + HAL_PWREx_EnableBkUpReg();/* ʹܱSRAM */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ @@ -110,38 +125,64 @@ int main(void) MX_DMA_Init(); MX_USART1_UART_Init(); MX_TIM10_Init(); - MX_TIM9_Init(); + MX_TIM2_Init(); /* USER CODE BEGIN 2 */ + PulseBaseInit(0, 0, 200);//Ϊ0忪ʼģʽ, Ϊ0 + AccCount = 50; -// PulseInit(0, 0, 0);//Ϊ0忪ʼģʽ, Ϊ0 -// Base.AccCount = 50; - SetPulse(0, 1, 5, 0, 1); -// SetPulse(1, 100, 200, 0, -1); - - + PulseInit(0, 1, 5, 0); //ڼ壬Ƶʣһ + AddPulse(1, 100, -200, 0); + AddPulse(2, 1, 55, 0); + - __HAL_TIM_SET_AUTORELOAD(&htim9,5-1); //ҪPWM 5 - HAL_TIM_Base_Start_IT(&htim9); //Ӷʱ -// PulseStart(); //ʼ -// HAL_TIM_PWM_Start(&htim10, TIM_CHANNEL_1); //ʱPWM - BSP_Init(); + BSP_Init(); OSInit(&err); - OSTaskCreate((OS_TCB * )&Y1Direction_Tsk, /* ƿ */ - (CPU_CHAR* )"Y1Direction", /* */ - (OS_TASK_PTR)Y1Direction, /* */ - (void * )0, /* ݸIJ */ + /* 1 */ + OSTaskCreate((OS_TCB * )&Y1Direction_Tsk, /* ƿ */ + (CPU_CHAR* )"Y1Direction", /* */ + (OS_TASK_PTR)Y1Direction, /* */ + (void * )0, /* ݸIJ */ (OS_PRIO )TASK_Y1Direction, /* ȼ */ (CPU_STK * )&Task_Y1Direction_STK[0], /* ջַ */ (CPU_STK_SIZE)Task_Y1Direction_SIZE/10, /* ջλ */ - (CPU_STK_SIZE)Task_Y1Direction_SIZE, /* ջС */ + (CPU_STK_SIZE)Task_Y1Direction_SIZE, /* ջС */ (OS_MSG_QTY)0, /* ڲϢܹյϢĿ,Ϊ0ʱֹϢ */ (OS_TICK )0, /* ʹʱƬתʱʱƬȣΪ0ʱΪĬϳ */ (void * )0, /* ûĴ洢 */ (OS_OPT )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR, /* ѡ */ (OS_ERR * )&err); /* Ÿúʱķֵ */ + /* 2 */ + OSTaskCreate((OS_TCB * )&PulseStart_Tsk, + (CPU_CHAR* )"PulseStartTsk", + (OS_TASK_PTR)PulseStartTsk, + (void * )0, + (OS_PRIO )TASK_PulseStart, + (CPU_STK * )&Task_PulseStart_STK[0], + (CPU_STK_SIZE)Task_PulseStart_SIZE/10, + (CPU_STK_SIZE)Task_PulseStart_SIZE, + (OS_MSG_QTY)0, + (OS_TICK )0, + (void * )0, + (OS_OPT )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR, + (OS_ERR * )&err); + /* 3 */ + OSTaskCreate((OS_TCB * )&DirOutput_Tsk, + (CPU_CHAR* )"DirOutput_Tsk", + (OS_TASK_PTR)DirOutput, + (void * )0, + (OS_PRIO )TASK_DirOutput, + (CPU_STK * )&Task_DirOutput_STK[0], + (CPU_STK_SIZE)Task_DirOutput_SIZE/10, + (CPU_STK_SIZE)Task_DirOutput_SIZE, + (OS_MSG_QTY)0, + (OS_TICK )0, + (void * )0, + (OS_OPT )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR, + (OS_ERR * )&err); + OSStart(&err); /* USER CODE END 2 */ @@ -174,12 +215,11 @@ void SystemClock_Config(void) /** Initializes the RCC Oscillators according to the specified parameters * in the RCC_OscInitTypeDef structure. */ - RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; - RCC_OscInitStruct.HSIState = RCC_HSI_ON; - RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; + RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; - RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI; - RCC_OscInitStruct.PLL.PLLM = 8; + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; + RCC_OscInitStruct.PLL.PLLM = 6; RCC_OscInitStruct.PLL.PLLN = 72; RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; RCC_OscInitStruct.PLL.PLLQ = 4; @@ -206,27 +246,136 @@ void SystemClock_Config(void) /* USER CODE BEGIN 4 */ /** -* @brief 1Y1ķ +* @brief 1ȡ, Ӽ * @return */ void Y1Direction(void *p_arg) { p_arg = p_arg; + OS_ERR err; while(1) { - if (PulseOutput[Base.NowPulse].Direction == 1) + /* Ӽ */ + if (ArrFlag == 1) { - HAL_GPIO_WritePin(GPIOI, GPIO_PIN_8, GPIO_PIN_SET); + if(TIM2->CNT < AccCount) + { + SetFrequency(0, PulseOutput[PrePulse].Frequency + TIM2->CNT * Acc); + } + else + { + SetFrequency(0, PulseOutput[NowPulse].Frequency); + ArrFlag = 0; + } } - else + + /* ȡܵ */ + if(EndFlag || FullFlag) { - HAL_GPIO_WritePin(GPIOI, GPIO_PIN_8, GPIO_PIN_RESET); + if(EndFlag) + { + AllPulseCNT = GetBase(NowPulse) + PulseOutput[NowPulse].PulseCount; + } + if(FullFlag) + { + AllPulseCNT = MAX_Pulse; + } + } + else + { + AllPulseCNT = TIM2->CNT + GetBase(NowPulse); + } + OSTimeDly(100, OS_OPT_TIME_DLY, &err); // ʱ 100 } - } +/** +* @brief 2忪ʼ +* @return +*/ +void PulseStartTsk(void *p_arg) +{ + p_arg = p_arg; + OS_ERR err; + uint8_t EN = 1; + while(1) + { + if(Register_L[3000] == 0x01 && EN == 1) + { + PulseStart(); + EN = 0; + } + else if(Register_L[3000] == 0x02 && EN == 0) + { + EN = 1; + } + OSTimeDly(100, OS_OPT_TIME_DLY, &err); // ʱ 100 + } +} + +/** +* @brief 3巽 +* @return +*/ +void DirOutput(void *p_arg) +{ + p_arg = p_arg; + OS_ERR err; + + while(1) + { + if (Options.DirPost == 0) + { + if (Options.Dir == 1) + { + HAL_GPIO_WritePin(GPIOH, Y12_Pin, GPIO_PIN_SET); + } + else + { + HAL_GPIO_WritePin(GPIOH, Y12_Pin, GPIO_PIN_RESET); + } + } + if (Options.DirPost == 1) + { + if (Options.Dir == 1) + { + HAL_GPIO_WritePin(GPIOH, Y13_Pin, GPIO_PIN_SET); + } + else + { + HAL_GPIO_WritePin(GPIOH, Y13_Pin, GPIO_PIN_RESET); + } + } + if (Options.DirPost == 2) + { + if (Options.Dir == 1) + { + HAL_GPIO_WritePin(GPIOH, Y14_Pin, GPIO_PIN_SET); + } + else + { + HAL_GPIO_WritePin(GPIOH, Y14_Pin, GPIO_PIN_RESET); + } + } + if (Options.DirPost == 3) + { + if (Options.Dir == 1) + { + HAL_GPIO_WritePin(GPIOH, Y15_Pin, GPIO_PIN_SET); + } + else + { + HAL_GPIO_WritePin(GPIOH, Y15_Pin, GPIO_PIN_RESET); + } + } + OSTimeDly(100, OS_OPT_TIME_DLY, &err); // ʱ 100 + } +} + +#if 0 + /** * @brief ʱжϻصPWM * @return @@ -235,26 +384,32 @@ void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) { if (htim->Instance == TIM10) { + PulseCount++; if (1 == Base.PulseMod) /* Ǿģʽ */ { - if (AllPulseCount == Base.MAX_Pulse) /* ﵽ */ + if (TIM2->CNT == Base.MAX_Pulse) /* ﵽ */ { HAL_TIM_PWM_Stop_IT(&htim10,TIM_CHANNEL_1); /* ֹͣPWM */ - HAL_GPIO_WritePin(GPIOF, GPIO_PIN_6, GPIO_PIN_RESET); } - else if(PulseCount == PulseOutput[Base.NowPulse].PulseCount) /* ǰεļҪļ */ + else if(PulseCount == PulseOutput[NowPulse].PulseCount) /* ǰεļҪļ */ { PulseCount = 0; - HAL_TIM_PWM_Stop_IT(&htim10,TIM_CHANNEL_1); /* ֹͣPWM */ - HAL_GPIO_WritePin(GPIOF, GPIO_PIN_6, GPIO_PIN_RESET); + HAL_TIM_PWM_Stop_IT(&htim10,TIM_CHANNEL_1); /* ֹͣPWM */ - if(PulseOutput[Base.NowPulse].NextPulse != -1) + if(Base.PulseNum - NowPulse >= 1) { - Base.PrePulse = Base.NowPulse; /* ֮ǰ */ - Base.NowPulse = PulseOutput[Base.NowPulse].NextPulse; /* һ */ + Base.PrePulse = NowPulse; /* ֮ǰ */ + if(PulseOutput[NowPulse].NextPulse == 0) + { + NowPulse = NowPulse+ 1; + } + else + { + NowPulse = PulseOutput[NowPulse].NextPulse; /* һ */ + } Acc = GetAcc(PulseOutput[Base.PrePulse].Frequency, - PulseOutput[Base.NowPulse].Frequency, Base.AccCount); /* Acc */ + PulseOutput[NowPulse].Frequency, Base.AccCount); /* Acc */ ArrFlag = 1; PulseStart(); //ʼ } @@ -262,27 +417,32 @@ void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) } else if (0 == Base.PulseMod) /* ģʽ */ { - if (PulseCount == PulseOutput[Base.NowPulse].PulseCount) /* ǰεļҪļ */ + if (PulseCount == PulseOutput[NowPulse].PulseCount) /* ǰεļҪļ */ { PulseCount = 0; - HAL_TIM_PWM_Stop_IT(&htim10,TIM_CHANNEL_1); /* ֹͣPWM */ - HAL_GPIO_WritePin(GPIOF, GPIO_PIN_6, GPIO_PIN_RESET); - - if(PulseOutput[Base.NowPulse].NextPulse != -1) + HAL_TIM_PWM_Stop_IT(&htim10,TIM_CHANNEL_1); /* ֹͣPWM */ + if(Base.PulseNum - NowPulse > 1) { - Base.PrePulse = Base.NowPulse; /* ֮ǰ */ - Base.NowPulse = PulseOutput[Base.NowPulse].NextPulse; /* һ */ + Base.PrePulse = NowPulse; /* ֮ǰ */ + if(PulseOutput[NowPulse].NextPulse == 0) + { + NowPulse = NowPulse+ 1; + } + else + { + NowPulse = PulseOutput[NowPulse].NextPulse; /* һ */ + } Acc = GetAcc(PulseOutput[Base.PrePulse].Frequency, - PulseOutput[Base.NowPulse].Frequency, Base.AccCount); /* Acc */ + PulseOutput[NowPulse].Frequency, Base.AccCount); /* Acc */ ArrFlag = 1; PulseStart(); //ʼ } + else + { + PulseCount = 0; + HAL_TIM_PWM_Stop_IT(&htim10,TIM_CHANNEL_1); /* ֹͣPWM */ + } } - else - { - PulseCount++; - AllPulseCount++; - } } if (ArrFlag == 1) { @@ -292,7 +452,7 @@ void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) } else { - SetFrequency(0, PulseOutput[Base.NowPulse].Frequency); + SetFrequency(0, PulseOutput[NowPulse].Frequency); ArrFlag = 0; } } @@ -300,16 +460,42 @@ void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) } } -void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) +#endif + +/** +* @brief ж +* @return +*/ +void HAL_PWR_PVDCallback(void) { - if(htim == &htim9) - { - if(__HAL_TIM_GET_FLAG(&htim9, TIM_FLAG_CC2) != RESET) //жǷ񴥷ж - { - __HAL_TIM_CLEAR_FLAG(&htim9, TIM_FLAG_CC2); //жϱ־ - HAL_GPIO_TogglePin(GPIOI, GPIO_PIN_8); - } - } + OSIntEnter(); /* ж */ + // ѹǷֵ + if (__HAL_PWR_GET_FLAG(PWR_FLAG_PVDO)) + { + /* 紦 */ + PLSRSramSave(); + } + + + OSIntExit(); /* ˳ж */ +} + +/** +* @brief PVD +* @return +*/ +void PVD_Init(void) +{ + PWR_PVDTypeDef PvdStruct; + + HAL_PWR_EnablePVD(); /* ʹPVD */ + + PvdStruct.PVDLevel = PWR_PVDLEVEL_3; /* PVDֵ3.1V */ + PvdStruct.Mode = PWR_PVD_MODE_IT_RISING; /* */ + HAL_PWR_ConfigPVD(&PvdStruct); + + HAL_NVIC_SetPriority(PVD_IRQn, 0, 0); /* PVDжȼ */ + HAL_NVIC_EnableIRQ(PVD_IRQn); /* ʹPVDж */ } /* USER CODE END 4 */ diff --git a/Core/Src/stm32f4xx_it.c b/Core/Src/stm32f4xx_it.c index 85604ca..8937dc6 100644 --- a/Core/Src/stm32f4xx_it.c +++ b/Core/Src/stm32f4xx_it.c @@ -22,6 +22,11 @@ #include "stm32f4xx_it.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ +#include "PLSR.h" +#include "tim.h" +#include "usart.h" +#include "modbus.h" +#include "string.h" /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ @@ -55,7 +60,7 @@ /* USER CODE END 0 */ /* External variables --------------------------------------------------------*/ -extern TIM_HandleTypeDef htim9; +extern TIM_HandleTypeDef htim2; extern DMA_HandleTypeDef hdma_usart1_rx; extern DMA_HandleTypeDef hdma_usart1_tx; extern UART_HandleTypeDef huart1; @@ -202,17 +207,93 @@ void SysTick_Handler(void) /******************************************************************************/ /** - * @brief This function handles TIM1 break interrupt and TIM9 global interrupt. + * @brief This function handles TIM2 global interrupt. */ -void TIM1_BRK_TIM9_IRQHandler(void) +void TIM2_IRQHandler(void) { - /* USER CODE BEGIN TIM1_BRK_TIM9_IRQn 0 */ - - /* USER CODE END TIM1_BRK_TIM9_IRQn 0 */ - HAL_TIM_IRQHandler(&htim9); - /* USER CODE BEGIN TIM1_BRK_TIM9_IRQn 1 */ - - /* USER CODE END TIM1_BRK_TIM9_IRQn 1 */ + /* USER CODE BEGIN TIM2_IRQn 0 */ + + /* USER CODE END TIM2_IRQn 0 */ + HAL_TIM_IRQHandler(&htim2); + /* USER CODE BEGIN TIM2_IRQn 1 */ + + PulseNum ++; /* */ + + if(Options.RunMod == 0) + { + /* ֮ */ + if(Options.AllPulse - PulseNum > 0) + { + PrePulse = NowPulse; /* ֮ǰ */ + if(PulseOutput[NowPulse].NextPulse == 0) + { + NowPulse = NowPulse + 1; /* һ */ + } + else + { + NowPulse = PulseOutput[NowPulse].NextPulse; /* һ */ + } + + /* ׼Ӽ */ + Acc = GetAcc(PulseOutput[PrePulse].Frequency, + PulseOutput[NowPulse].Frequency, AccCount); /* ٶ */ + ArrFlag = 1; + + SetNextPulse();/* һνжϵ */ + PulseStart(); /* ʼ */ + } + /* ֮û */ + else + { + PulseCount = 0; + HAL_TIM_PWM_Stop_IT(&htim10,TIM_CHANNEL_1); /* ֹͣPWM */ + EndFlag = 1; + } + } + else + { + if(AllPulseCNT >= MAX_Pulse) + { + PulseCount = 0; + HAL_TIM_PWM_Stop_IT(&htim10,TIM_CHANNEL_1); /* ֹͣPWM */ + FullFlag = 1; + } + else + { + /* ֮ */ + if(Options.AllPulse - PulseNum > 0) + { + PrePulse = NowPulse; /* ֮ǰ */ + if(PulseOutput[NowPulse].NextPulse == 0) + { + NowPulse = NowPulse + 1; /* һ */ + } + else + { + NowPulse = PulseOutput[NowPulse].NextPulse; /* һ */ + } + + /* ׼Ӽ */ + Acc = GetAcc(PulseOutput[PrePulse].Frequency, + PulseOutput[NowPulse].Frequency, AccCount); /* ٶ */ + ArrFlag = 1; + + SetNextPulse();/* һνжϵ */ + PulseStart(); /* ʼ */ + } + /* ֮û */ + else + { + PulseCount = 0; + HAL_TIM_PWM_Stop_IT(&htim10,TIM_CHANNEL_1); /* ֹͣPWM */ + EndFlag = 1; + } + } + } + + + + /* USER CODE END TIM2_IRQn 1 */ } /** @@ -221,7 +302,29 @@ void TIM1_BRK_TIM9_IRQHandler(void) void USART1_IRQHandler(void) { /* USER CODE BEGIN USART1_IRQn 0 */ - + + uint32_t temp; + // жϴ + if(__HAL_UART_GET_FLAG(&huart1, UART_FLAG_IDLE)) + { + __HAL_UART_CLEAR_IDLEFLAG(&huart1); + temp = huart1.Instance->SR; + temp = huart1.Instance->DR; + HAL_UART_DMAStop(&huart1); + // յݳ + uint16_t len = RX_BUFFER_SIZE - __HAL_DMA_GET_COUNTER(&hdma_usart1_rx); + + // + if(len > 0) + { + ProcessModbusFrame(RX1Data, len); /* ֡ */ +// HAL_UART_Transmit(&huart1, RX1Data, len, 0xffff); // յٷ + len = 0; + memset(RX1Data, 0, RX_BUFFER_SIZE); + HAL_UART_Receive_DMA(&huart1, RX1Data, RX_BUFFER_SIZE); /* */ + } + } + /* USER CODE END USART1_IRQn 0 */ HAL_UART_IRQHandler(&huart1); /* USER CODE BEGIN USART1_IRQn 1 */ diff --git a/Core/Src/tim.c b/Core/Src/tim.c index d0aa509..a0e4720 100644 --- a/Core/Src/tim.c +++ b/Core/Src/tim.c @@ -24,41 +24,51 @@ /* USER CODE END 0 */ -TIM_HandleTypeDef htim9; +TIM_HandleTypeDef htim2; TIM_HandleTypeDef htim10; -/* TIM9 init function */ -void MX_TIM9_Init(void) +/* TIM2 init function */ +void MX_TIM2_Init(void) { - /* USER CODE BEGIN TIM9_Init 0 */ + /* USER CODE BEGIN TIM2_Init 0 */ - /* USER CODE END TIM9_Init 0 */ + /* USER CODE END TIM2_Init 0 */ - TIM_SlaveConfigTypeDef sSlaveConfig = {0}; + TIM_ClockConfigTypeDef sClockSourceConfig = {0}; + TIM_MasterConfigTypeDef sMasterConfig = {0}; - /* USER CODE BEGIN TIM9_Init 1 */ + /* USER CODE BEGIN TIM2_Init 1 */ - /* USER CODE END TIM9_Init 1 */ - htim9.Instance = TIM9; - htim9.Init.Prescaler = 0; - htim9.Init.CounterMode = TIM_COUNTERMODE_UP; - htim9.Init.Period = 65535; - htim9.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; - htim9.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; - if (HAL_TIM_Base_Init(&htim9) != HAL_OK) + /* USER CODE END TIM2_Init 1 */ + htim2.Instance = TIM2; + htim2.Init.Prescaler = 0; + htim2.Init.CounterMode = TIM_COUNTERMODE_UP; + htim2.Init.Period = 4294967295; + htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + if (HAL_TIM_Base_Init(&htim2) != HAL_OK) { Error_Handler(); } - sSlaveConfig.SlaveMode = TIM_SLAVEMODE_GATED; - sSlaveConfig.InputTrigger = TIM_TS_ITR2; - if (HAL_TIM_SlaveConfigSynchro(&htim9, &sSlaveConfig) != HAL_OK) + sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_ETRMODE2; + sClockSourceConfig.ClockPolarity = TIM_CLOCKPOLARITY_NONINVERTED; + sClockSourceConfig.ClockPrescaler = TIM_CLOCKPRESCALER_DIV1; + sClockSourceConfig.ClockFilter = 0; + if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK) { Error_Handler(); } - /* USER CODE BEGIN TIM9_Init 2 */ - __HAL_TIM_CLEAR_FLAG(&htim9, TIM_FLAG_CC2); //жϱ־ - /* USER CODE END TIM9_Init 2 */ + sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; + sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; + if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN TIM2_Init 2 */ + __HAL_TIM_CLEAR_FLAG(&htim2, TIM_FLAG_UPDATE); + HAL_TIM_Base_Start_IT(&htim2); + /* USER CODE END TIM2_Init 2 */ } /* TIM10 init function */ @@ -90,7 +100,7 @@ void MX_TIM10_Init(void) } sConfigOC.OCMode = TIM_OCMODE_PWM1; sConfigOC.Pulse = 32767; - sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; + sConfigOC.OCPolarity = TIM_OCPOLARITY_LOW; sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; if (HAL_TIM_PWM_ConfigChannel(&htim10, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) { @@ -113,20 +123,32 @@ void MX_TIM10_Init(void) void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) { - if(tim_baseHandle->Instance==TIM9) + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(tim_baseHandle->Instance==TIM2) { - /* USER CODE BEGIN TIM9_MspInit 0 */ + /* USER CODE BEGIN TIM2_MspInit 0 */ + + /* USER CODE END TIM2_MspInit 0 */ + /* TIM2 clock enable */ + __HAL_RCC_TIM2_CLK_ENABLE(); - /* USER CODE END TIM9_MspInit 0 */ - /* TIM9 clock enable */ - __HAL_RCC_TIM9_CLK_ENABLE(); + __HAL_RCC_GPIOA_CLK_ENABLE(); + /**TIM2 GPIO Configuration + PA15 ------> TIM2_ETR + */ + GPIO_InitStruct.Pin = GPIO_PIN_15; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF1_TIM2; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - /* TIM9 interrupt Init */ - HAL_NVIC_SetPriority(TIM1_BRK_TIM9_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(TIM1_BRK_TIM9_IRQn); - /* USER CODE BEGIN TIM9_MspInit 1 */ + /* TIM2 interrupt Init */ + HAL_NVIC_SetPriority(TIM2_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(TIM2_IRQn); + /* USER CODE BEGIN TIM2_MspInit 1 */ - /* USER CODE END TIM9_MspInit 1 */ + /* USER CODE END TIM2_MspInit 1 */ } else if(tim_baseHandle->Instance==TIM10) { @@ -171,19 +193,24 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle) void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle) { - if(tim_baseHandle->Instance==TIM9) + if(tim_baseHandle->Instance==TIM2) { - /* USER CODE BEGIN TIM9_MspDeInit 0 */ + /* USER CODE BEGIN TIM2_MspDeInit 0 */ - /* USER CODE END TIM9_MspDeInit 0 */ + /* USER CODE END TIM2_MspDeInit 0 */ /* Peripheral clock disable */ - __HAL_RCC_TIM9_CLK_DISABLE(); + __HAL_RCC_TIM2_CLK_DISABLE(); + + /**TIM2 GPIO Configuration + PA15 ------> TIM2_ETR + */ + HAL_GPIO_DeInit(GPIOA, GPIO_PIN_15); - /* TIM9 interrupt Deinit */ - HAL_NVIC_DisableIRQ(TIM1_BRK_TIM9_IRQn); - /* USER CODE BEGIN TIM9_MspDeInit 1 */ + /* TIM2 interrupt Deinit */ + HAL_NVIC_DisableIRQ(TIM2_IRQn); + /* USER CODE BEGIN TIM2_MspDeInit 1 */ - /* USER CODE END TIM9_MspDeInit 1 */ + /* USER CODE END TIM2_MspDeInit 1 */ } else if(tim_baseHandle->Instance==TIM10) { diff --git a/Core/Src/usart.c b/Core/Src/usart.c index c746da6..683b96a 100644 --- a/Core/Src/usart.c +++ b/Core/Src/usart.c @@ -21,7 +21,10 @@ #include "usart.h" /* USER CODE BEGIN 0 */ - +uint8_t RX1DataTemp = 0; +uint8_t RX1Data[RX_BUFFER_SIZE] = {0}; +uint8_t RX1Flag = 0; +volatile uint16_t RX1Count = 0; /* USER CODE END 0 */ UART_HandleTypeDef huart1; @@ -42,9 +45,9 @@ void MX_USART1_UART_Init(void) /* USER CODE END USART1_Init 1 */ huart1.Instance = USART1; huart1.Init.BaudRate = 19200; - huart1.Init.WordLength = UART_WORDLENGTH_8B; + huart1.Init.WordLength = UART_WORDLENGTH_9B; huart1.Init.StopBits = UART_STOPBITS_1; - huart1.Init.Parity = UART_PARITY_NONE; + huart1.Init.Parity = UART_PARITY_ODD; huart1.Init.Mode = UART_MODE_TX_RX; huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart1.Init.OverSampling = UART_OVERSAMPLING_16; @@ -53,7 +56,8 @@ void MX_USART1_UART_Init(void) Error_Handler(); } /* USER CODE BEGIN USART1_Init 2 */ - + __HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE); + HAL_UART_Receive_DMA(&huart1, RX1Data, RX_BUFFER_SIZE); /* USER CODE END USART1_Init 2 */ } diff --git a/EWARM/PLSR.dep b/EWARM/PLSR.dep index 7867334..35acaef 100644 --- a/EWARM/PLSR.dep +++ b/EWARM/PLSR.dep @@ -1,424 +1,396 @@ 4 - 3933514701 + 1083477749 PLSR - $PROJ_DIR$\PLSR\Obj\cpu_c.__cstat.et - $PROJ_DIR$\PLSR\Obj\os_mem.o - $PROJ_DIR$\..\cmsis\uCOS-III\Ports\ARM-Cortex-M4\Generic\IAR\os_cpu_c.c - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal.__cstat.et - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_dma.xcl - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h - $PROJ_DIR$\PLSR\Obj\os_cfg_app.__cstat.et - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_uart.xcl - $PROJ_DIR$\PLSR\Obj\os_q.o - $PROJ_DIR$\PLSR\Obj\os_core.xcl - $PROJ_DIR$\PLSR\Obj\main.xcl - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_dma.__cstat.et - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_tim.xcl - $PROJ_DIR$\..\Drivers\CMSIS\Include\core_cm4.h - $PROJ_DIR$\PLSR\Obj\os_int.o - $PROJ_DIR$\PLSR\Obj\PLSR.pbd - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_flash.xcl - $TOOLKIT_DIR$\inc\c\string.h - $PROJ_DIR$\..\Core\Inc\main.h - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_cortex.h - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_uart.__cstat.et + $PROJ_DIR$\PLSR\Obj\os_task.xcl + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_msp.__cstat.et + $PROJ_DIR$\PLSR\Obj\cpu_a.o + $PROJ_DIR$\PLSR\Obj\os_core.__cstat.et + $PROJ_DIR$\PLSR\Obj\os_tmr.o $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc_ex.h - $PROJ_DIR$\PLSR\Obj\os_task.__cstat.et - $PROJ_DIR$\..\cmsis\uCOS-III\Ports\ARM-Cortex-M4\Generic\IAR\os_cpu_a.asm - $PROJ_DIR$\PLSR\Exe\PLSR.out - $PROJ_DIR$\PLSR\Obj\os_cfg_app.o + $PROJ_DIR$\PLSR\Obj\stm32f4xx_it.__cstat.et + $PROJ_DIR$\..\Drivers\CMSIS\Include\core_cm4.h + $PROJ_DIR$\PLSR\Obj\PLSR.o + $PROJ_DIR$\PLSR\Obj\os_dbg.xcl + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_exti.o + $PROJ_DIR$\PLSR\Obj\os_pend_multi.o + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_tim.xcl + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_rcc_ex.o + $PROJ_DIR$\PLSR\Obj\modbus.__cstat.et $PROJ_DIR$\PLSR\Obj\gpio.__cstat.et - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_flash_ramfunc.xcl + $PROJ_DIR$\PLSR\Obj\os_cpu_c.__cstat.et $PROJ_DIR$\PLSR\Obj\bsp.o - $PROJ_DIR$\PLSR\Obj\os_msg.xcl - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_tim.o - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_uart.o - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_msp.xcl - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_rcc.xcl - $PROJ_DIR$\PLSR\Obj\sram.xcl - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_rcc_ex.o - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_rcc.__cstat.et - $PROJ_DIR$\PLSR\Obj\os_tick.xcl - $PROJ_DIR$\PLSR\Obj\os_time.o - $PROJ_DIR$\..\Core\Inc\gpio.h - $PROJ_DIR$\PLSR\Obj\os_tmr.xcl - $PROJ_DIR$\PLSR\List\PLSR.map - $PROJ_DIR$\PLSR\Obj\modbus.xcl - $PROJ_DIR$\PLSR\Obj\lib_str.xcl - $PROJ_DIR$\PLSR\Obj\CRC.o - $PROJ_DIR$\PLSR\Obj\os_prio.o - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr_ex.h - $PROJ_DIR$\PLSR\Obj\os_pend_multi.o - $PROJ_DIR$\PLSR\Obj\bsp.__cstat.et - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os.h - $TOOLKIT_DIR$\inc\c\DLib_Defaults.h - $PROJ_DIR$\PLSR\Obj\tim.xcl - $PROJ_DIR$\PLSR\Obj\dma.xcl - $PROJ_DIR$\PLSR\Obj\os_mutex.o - $PROJ_DIR$\PLSR\Obj\os_sem.__cstat.et - $PROJ_DIR$\PLSR\Obj\system_stm32f4xx.o - $PROJ_DIR$\PLSR\Obj\tim.__cstat.et - $PROJ_DIR$\PLSR\Obj\os_cpu_c.xcl - $PROJ_DIR$\..\Hardware\PSCARR.h - $PROJ_DIR$\PLSR\Obj\os_task.xcl - $PROJ_DIR$\PLSR\Obj\dma.__cstat.et - $PROJ_DIR$\..\Hardware\modbus.h $PROJ_DIR$\..\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f407xx.h - $PROJ_DIR$\PLSR\Obj\sram.__cstat.et - $PROJ_DIR$\PLSR\Obj\gpio.o - $PROJ_DIR$\PLSR\Obj\cpu_core.xcl - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_flash.o - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_tim.__cstat.et - $PROJ_DIR$\PLSR\Obj\PSCARR.xcl - $TOOLKIT_DIR$\inc\c\math.h - $PROJ_DIR$\PLSR\Obj\usart.__cstat.et - $PROJ_DIR$\..\Core\Inc\stm32f4xx_it.h - $PROJ_DIR$\PLSR\Obj\modbus.o - $PROJ_DIR$\PLSR\Obj\PSCARR.o - $TOOLKIT_DIR$\inc\c\stdarg.h - $PROJ_DIR$\PLSR\Obj\os_int.__cstat.et - $PROJ_DIR$\PLSR\Obj\dma.o - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc.h - $PROJ_DIR$\PLSR\Obj\stm32f4xx_it.xcl + $PROJ_DIR$\PLSR\Obj\os_tmr.__cstat.et + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_uart.__cstat.et + $PROJ_DIR$\PLSR\Obj\os_tick.o + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_cortex.h $PROJ_DIR$\PLSR\Obj\os_mem.__cstat.et - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_pwr.o - $PROJ_DIR$\PLSR\Obj\sram.o - $PROJ_DIR$\..\Hardware\sram.h - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_cortex.o - $PROJ_DIR$\PLSR\Obj\os_cpu_a.o - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal.xcl - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c - $PROJ_DIR$\..\Core\Src\stm32f4xx_it.c - $PROJ_DIR$\..\Core\Src\usart.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c - $PROJ_DIR$\..\Core\Src\dma.c - $PROJ_DIR$\..\Core\Src\tim.c - $PROJ_DIR$\..\Core\Src\stm32f4xx_hal_msp.c - $PROJ_DIR$\..\Core\Src\system_stm32f4xx.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c - $PROJ_DIR$\PLSR\Obj\usart.xcl - $PROJ_DIR$\PLSR\Obj\lib_math.xcl - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_exti.o - $TOOLKIT_DIR$\inc\c\ctype.h - $PROJ_DIR$\PLSR\Obj\stm32f4xx_it.o - $PROJ_DIR$\PLSR\Obj\os_flag.o - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_pwr_ex.o - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ramfunc.h - $PROJ_DIR$\PLSR\Obj\os_flag.xcl - $PROJ_DIR$\PLSR\Obj\lib_math.o - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_type.h - $PROJ_DIR$\PLSR\Obj\PLSR.__cstat.et - $PROJ_DIR$\..\Hardware\PLSR.h - $PROJ_DIR$\PLSR\Obj\PSCARR.__cstat.et - $PROJ_DIR$\PLSR\Obj\cpu_a.o - $PROJ_DIR$\PLSR\Obj\usart.o + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_cortex.__cstat.et + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_dma_ex.xcl + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_gpio.o + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h $PROJ_DIR$\PLSR\Obj\cpu_c.xcl - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_cortex.xcl - $PROJ_DIR$\PLSR\Obj\cpu_core.o - $TOOLKIT_DIR$\inc\c\DLib_float_setup.h - $TOOLKIT_DIR$\inc\c\stdio.h + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio.h + $PROJ_DIR$\PLSR\Obj\dma.__cstat.et $PROJ_DIR$\..\Drivers\CMSIS\Include\cmsis_iccarm.h - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_cortex.__cstat.et - $PROJ_DIR$\PLSR\Obj\startup_stm32f407xx.o - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_rcc.o - $PROJ_DIR$\PLSR\Obj\os_sem.o - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr.h - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ex.h - $PROJ_DIR$\PLSR\Obj\os_var.o - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_dma_ex.__cstat.et - $TOOLKIT_DIR$\lib\rt7M_tl.a - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_exti.__cstat.et - $PROJ_DIR$\PLSR\Obj\os_pend_multi.xcl - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_tim_ex.o - $PROJ_DIR$\PLSR\Obj\lib_mem.xcl - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h - $PROJ_DIR$\PLSR\Obj\os_stat.xcl - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_rcc_ex.__cstat.et - $TOOLKIT_DIR$\inc\c\ycheck.h - $TOOLKIT_DIR$\inc\c\stdint.h - $PROJ_DIR$\PLSR\Obj\os_prio.xcl - $PROJ_DIR$\PLSR\Obj\os_mutex.xcl - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_dma.o - $TOOLKIT_DIR$\inc\c\ysizet.h - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio_ex.h - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_msp.o - $PROJ_DIR$\PLSR\Obj\os_dbg.__cstat.et - $PROJ_DIR$\PLSR\Obj\os_flag.__cstat.et - $TOOLKIT_DIR$\inc\c\iccarm_builtin.h - $PROJ_DIR$\..\Core\Inc\stm32f4xx_hal_conf.h - $PROJ_DIR$\PLSR\Obj\os_time.xcl - $PROJ_DIR$\PLSR\Obj\cpu_c.o - $PROJ_DIR$\PLSR\Obj\os_msg.__cstat.et - $PROJ_DIR$\PLSR\Obj\os_var.xcl - $PROJ_DIR$\PLSR\Obj\os_stat.o - $PROJ_DIR$\PLSR\Obj\os_core.o - $PROJ_DIR$\PLSR\Obj\gpio.xcl - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_msp.__cstat.et - $PROJ_DIR$\PLSR\Obj\system_stm32f4xx.xcl - $PROJ_DIR$\..\Core\Inc\tim.h - $TOOLKIT_DIR$\inc\c\DLib_Config_Full.h - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_flash_ramfunc.__cstat.et - $TOOLKIT_DIR$\inc\c\iar_intrinsics_common.h - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_flash_ex.xcl + $PROJ_DIR$\PLSR\Obj\cpu_c.__cstat.et + $PROJ_DIR$\PLSR\Obj\cpu_core.__cstat.et $PROJ_DIR$\PLSR\Obj\os_app_hooks.xcl - $TOOLKIT_DIR$\lib\dl7M_tlf.a - $PROJ_DIR$\PLSR\Obj\os_app_hooks.__cstat.et - $PROJ_DIR$\PLSR\Obj\os_q.__cstat.et - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_rcc_ex.xcl - $TOOLKIT_DIR$\lib\shb_l.a - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_def.h - $PROJ_DIR$\PLSR\Obj\os_dbg.o + $TOOLKIT_DIR$\inc\c\DLib_Product_stdlib.h $PROJ_DIR$\PLSR\Obj\os_q.xcl - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_pwr_ex.__cstat.et - $PROJ_DIR$\PLSR\Obj\os_cpu_c.__cstat.et - $PROJ_DIR$\PLSR\Obj\os_dbg.xcl - $PROJ_DIR$\PLSR\Obj\PLSR.o - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio.h - $PROJ_DIR$\..\Drivers\CMSIS\Device\ST\STM32F4xx\Include\system_stm32f4xx.h - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_pwr.xcl - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_dma_ex.o - $PROJ_DIR$\PLSR\Obj\os_cfg_app.xcl - $PROJ_DIR$\..\Hardware\CRC.h - $PROJ_DIR$\PLSR\Obj\lib_mem.o - $TOOLKIT_DIR$\inc\c\intrinsics.h - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma.h - $PROJ_DIR$\PLSR\Obj\os_task.o - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal.o - $PROJ_DIR$\..\Core\Inc\dma.h - $PROJ_DIR$\PLSR\Obj\lib_ascii.xcl - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_gpio.__cstat.et - $PROJ_DIR$\PLSR\Obj\os_int.xcl - $PROJ_DIR$\PLSR\Obj\bsp.xcl - $PROJ_DIR$\..\cmsis\uC-LIB\lib_def.h - $PROJ_DIR$\..\cmsis\uC-LIB\lib_math.c - $PROJ_DIR$\..\cmsis\uC-LIB\lib_mem.h - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_prio.c + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_flash.xcl + $PROJ_DIR$\PLSR\Obj\os_msg.o + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_flash_ramfunc.__cstat.et + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_flash_ex.__cstat.et + $PROJ_DIR$\PLSR\Obj\lib_str.__cstat.et + $PROJ_DIR$\PLSR\Obj\gpio.xcl + $PROJ_DIR$\..\Core\Src\main.c + $PROJ_DIR$\..\Core\Src\dma.c + $PROJ_DIR$\..\Core\Src\tim.c + $PROJ_DIR$\..\Core\Src\usart.c + $PROJ_DIR$\..\Core\Src\system_stm32f4xx.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c + $PROJ_DIR$\..\Core\Src\stm32f4xx_hal_msp.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c + $PROJ_DIR$\..\Core\Src\stm32f4xx_it.c + $PROJ_DIR$\startup_stm32f407xx.s + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c + $PROJ_DIR$\..\Core\Src\gpio.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c + $PROJ_DIR$\..\Hardware\CRC.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_exti.c + $PROJ_DIR$\..\cmsis\uCOS-BSP\bsp.h + $PROJ_DIR$\..\cmsis\uCOS-Config\cpu_cfg.h + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_dbg.c + $PROJ_DIR$\..\cmsis\uCOS-Config\os_app_hooks.h + $PROJ_DIR$\..\cmsis\uCOS-Config\os_cfg.h $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_sem.c - $PROJ_DIR$\..\cmsis\uC-CPU\ARM-Cortex-M4\IAR\cpu_c.c - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_tick.c - $PROJ_DIR$\..\cmsis\uC-LIB\Ports\ARM-Cortex-M4\IAR\lib_mem_a.asm - $PROJ_DIR$\..\cmsis\uC-LIB\lib_math.h - $PROJ_DIR$\..\cmsis\uC-LIB\lib_str.c - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_msg.c - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_pend_multi.c - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_time.c - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_var.c $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_int.c - $PROJ_DIR$\..\cmsis\uC-CPU\ARM-Cortex-M4\IAR\cpu.h $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_mem.c - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_mutex.c - $PROJ_DIR$\..\cmsis\uC-CPU\cpu_core.h - $PROJ_DIR$\..\cmsis\uC-CPU\cpu_def.h - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_q.c - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_tmr.c - $PROJ_DIR$\..\cmsis\uC-LIB\lib_mem.c - $PROJ_DIR$\..\cmsis\uC-LIB\lib_str.h - $PROJ_DIR$\..\cmsis\uC-CPU\ARM-Cortex-M4\IAR\cpu_a.asm - $PROJ_DIR$\..\cmsis\uC-LIB\lib_ascii.c - $PROJ_DIR$\..\cmsis\uCOS-III\Ports\ARM-Cortex-M4\Generic\IAR\os_cpu.h + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_pend_multi.c + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_core.c $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_stat.c - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_task.c - $PROJ_DIR$\..\cmsis\uC-LIB\lib_ascii.h - $PROJ_DIR$\..\cmsis\uC-CPU\cpu_core.c - $PROJ_DIR$\..\Hardware\CRC.c + $PROJ_DIR$\..\cmsis\uCOS-Config\os_app_hooks.c $PROJ_DIR$\..\Hardware\PLSR.c + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_cfg_app.c $PROJ_DIR$\..\Hardware\PSCARR.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c - $PROJ_DIR$\..\cmsis\uCOS-Config\app_cfg.h - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c - $PROJ_DIR$\..\cmsis\uCOS-Config\cpu_cfg.h - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c - $PROJ_DIR$\..\cmsis\uCOS-BSP\bsp.c - $PROJ_DIR$\..\cmsis\uCOS-Config\os_app_hooks.c - $PROJ_DIR$\..\Hardware\sram.c - $PROJ_DIR$\..\cmsis\uCOS-Config\os_app_hooks.h - $PROJ_DIR$\..\cmsis\uCOS-BSP\bsp.h - $PROJ_DIR$\..\cmsis\uCOS-Config\includes.h - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_core.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c - $PROJ_DIR$\..\cmsis\uCOS-Config\os_cfg.h $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_flag.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_cfg_app.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c + $PROJ_DIR$\..\cmsis\uCOS-Config\includes.h + $PROJ_DIR$\..\cmsis\uCOS-BSP\bsp.c $PROJ_DIR$\..\cmsis\uCOS-Config\lib_cfg.h $PROJ_DIR$\..\cmsis\uCOS-Config\os_cfg_app.h - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_dbg.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_exti.c + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_mutex.c + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_prio.c + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_q.c + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_msg.c $PROJ_DIR$\..\Hardware\modbus.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c + $PROJ_DIR$\..\Hardware\sram.c + $PROJ_DIR$\..\cmsis\uCOS-Config\app_cfg.h + $PROJ_DIR$\..\cmsis\uC-CPU\cpu_core.c + $PROJ_DIR$\..\cmsis\uC-LIB\lib_mem.c + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_time.c + $PROJ_DIR$\PLSR\Obj\lib_str.o + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_tick.c + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_tmr.c + $PROJ_DIR$\..\cmsis\uC-LIB\lib_ascii.c + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_flash_ramfunc.xcl + $PROJ_DIR$\PLSR\Obj\os_sem.o + $PROJ_DIR$\..\cmsis\uCOS-III\Ports\ARM-Cortex-M4\Generic\IAR\os_cpu_c.c + $PROJ_DIR$\..\cmsis\uC-CPU\cpu_core.h + $PROJ_DIR$\..\cmsis\uCOS-III\Ports\ARM-Cortex-M4\Generic\IAR\os_cpu_a.asm + $PROJ_DIR$\PLSR\Obj\system_stm32f4xx.o + $PROJ_DIR$\..\cmsis\uC-CPU\ARM-Cortex-M4\IAR\cpu.h + $PROJ_DIR$\..\cmsis\uCOS-III\Ports\ARM-Cortex-M4\Generic\IAR\os_cpu.h + $PROJ_DIR$\..\cmsis\uC-LIB\lib_math.h + $PROJ_DIR$\PLSR\Obj\lib_mem.xcl + $PROJ_DIR$\..\cmsis\uC-CPU\ARM-Cortex-M4\IAR\cpu_a.asm + $PROJ_DIR$\..\cmsis\uC-LIB\lib_def.h + $PROJ_DIR$\..\cmsis\uC-LIB\lib_mem.h + $PROJ_DIR$\..\cmsis\uC-LIB\lib_math.c + $PROJ_DIR$\..\cmsis\uC-LIB\Ports\ARM-Cortex-M4\IAR\lib_mem_a.asm + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_var.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h + $PROJ_DIR$\..\cmsis\uC-LIB\lib_str.c + $PROJ_DIR$\PLSR\Obj\os_dbg.o + $PROJ_DIR$\..\cmsis\uC-CPU\ARM-Cortex-M4\IAR\cpu_c.c + $PROJ_DIR$\..\cmsis\uC-CPU\cpu_def.h + $PROJ_DIR$\..\cmsis\uC-LIB\lib_ascii.h + $PROJ_DIR$\..\cmsis\uC-LIB\lib_str.h + $PROJ_DIR$\PLSR\Obj\dma.o + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_task.c + $PROJ_DIR$\PLSR\Obj\os_var.xcl + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc.h + $PROJ_DIR$\PLSR\Obj\tim.o + $PROJ_DIR$\PLSR\Obj\PLSR.pbd + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr_ex.h + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h + $PROJ_DIR$\PLSR\Obj\CRC.__cstat.et + $TOOLKIT_DIR$\inc\c\math.h + $PROJ_DIR$\PLSR\Obj\os_task.o + $PROJ_DIR$\PLSR\Obj\lib_ascii.o + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_dma.xcl + $TOOLKIT_DIR$\inc\c\stdlib.h + $PROJ_DIR$\PLSR\Obj\os_cpu_a.o + $PROJ_DIR$\PLSR\Obj\lib_str.xcl + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal.__cstat.et + $PROJ_DIR$\PLSR\Obj\os_prio.xcl + $PROJ_DIR$\..\Drivers\CMSIS\Include\cmsis_version.h + $PROJ_DIR$\PLSR\Obj\os_app_hooks.__cstat.et + $PROJ_DIR$\PLSR\Obj\modbus.o + $PROJ_DIR$\PLSR\Obj\PLSR.__cstat.et + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_tim.__cstat.et + $PROJ_DIR$\PLSR\Obj\stm32f4xx_it.o + $PROJ_DIR$\PLSR\Obj\os_mem.o + $PROJ_DIR$\..\Core\Inc\usart.h + $TOOLKIT_DIR$\inc\c\iar_intrinsics_common.h + $PROJ_DIR$\PLSR\Obj\sram.xcl + $TOOLKIT_DIR$\inc\c\DLib_Product.h + $PROJ_DIR$\PLSR\Obj\os_q.__cstat.et + $PROJ_DIR$\PLSR\Obj\cpu_c.o + $PROJ_DIR$\PLSR\Obj\os_cpu_c.o + $PROJ_DIR$\PLSR\Obj\cpu_core.o + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_exti.h + $PROJ_DIR$\PLSR\Obj\sram.o + $PROJ_DIR$\PLSR\Obj\main.xcl + $PROJ_DIR$\PLSR\Obj\CRC.xcl + $PROJ_DIR$\PLSR\Obj\lib_ascii.xcl + $PROJ_DIR$\PLSR\Obj\PLSR.xcl + $PROJ_DIR$\PLSR\Obj\os_tick.__cstat.et + $PROJ_DIR$\PLSR\Obj\os_cfg_app.__cstat.et + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_uart.o + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_tim_ex.__cstat.et + $TOOLKIT_DIR$\inc\c\ctype.h + $PROJ_DIR$\PLSR\Obj\os_tick.xcl + $PROJ_DIR$\..\Hardware\PSCARR.h + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ramfunc.h + $TOOLKIT_DIR$\inc\c\string.h $PROJ_DIR$\PLSR\Obj\os_time.__cstat.et + $PROJ_DIR$\..\Drivers\CMSIS\Include\cmsis_compiler.h + $PROJ_DIR$\PLSR\Obj\os_time.o + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio_ex.h + $TOOLKIT_DIR$\lib\shb_l.a + $TOOLKIT_DIR$\inc\c\DLib_Config_Full.h + $PROJ_DIR$\..\Hardware\modbus.h + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_uart.xcl + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_dma.o + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_flash_ramfunc.o + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_tim_ex.xcl $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash.h - $PROJ_DIR$\..\Drivers\CMSIS\Include\mpu_armv7.h - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_exti.h + $PROJ_DIR$\..\Core\Inc\stm32f4xx_hal_conf.h + $TOOLKIT_DIR$\lib\rt7M_tl.a $TOOLKIT_DIR$\inc\c\yvals.h - $TOOLKIT_DIR$\inc\c\stddef.h - $PROJ_DIR$\PLSR\Obj\lib_ascii.__cstat.et - $PROJ_DIR$\PLSR\Obj\PLSR.xcl - $PROJ_DIR$\PLSR\Obj\os_stat.__cstat.et - $PROJ_DIR$\PLSR\Obj\os_tmr.__cstat.et - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_pwr_ex.xcl - $PROJ_DIR$\PLSR\Obj\cpu_core.__cstat.et - $PROJ_DIR$\PLSR\Obj\CRC.__cstat.et - $PROJ_DIR$\PLSR\Obj\os_core.__cstat.et + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_flash.o + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_tim_ex.o + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_flash.__cstat.et + $PROJ_DIR$\PLSR\Obj\os_time.xcl $PROJ_DIR$\PLSR\Obj\lib_math.__cstat.et - $PROJ_DIR$\..\Drivers\CMSIS\Include\cmsis_compiler.h - $TOOLKIT_DIR$\lib\m7M_tl.a - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h - $PROJ_DIR$\stm32f407xx_flash.icf + $PROJ_DIR$\PLSR\Obj\startup_stm32f407xx.o + $PROJ_DIR$\PLSR\Obj\CRC.o + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_def.h + $PROJ_DIR$\PLSR\Obj\os_mutex.__cstat.et + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_cortex.o + $PROJ_DIR$\PLSR\Obj\os_var.__cstat.et + $TOOLKIT_DIR$\inc\c\DLib_Defaults.h + $PROJ_DIR$\PLSR\Obj\os_stat.o + $PROJ_DIR$\PLSR\Obj\os_stat.__cstat.et + $PROJ_DIR$\PLSR\Obj\os_q.o + $PROJ_DIR$\PLSR\Obj\tim.__cstat.et + $PROJ_DIR$\PLSR\Obj\lib_math.o + $PROJ_DIR$\PLSR\Obj\modbus.xcl + $PROJ_DIR$\PLSR\Obj\usart.xcl + $PROJ_DIR$\PLSR\Obj\os_app_hooks.o + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_pwr.o $PROJ_DIR$\PLSR\Obj\lib_mem.__cstat.et - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_dma_ex.xcl - $TOOLKIT_DIR$\inc\c\DLib_Product.h - $PROJ_DIR$\PLSR\Obj\os_mutex.__cstat.et - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_flash.__cstat.et + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_pwr_ex.__cstat.et + $PROJ_DIR$\PLSR\Obj\os_mutex.xcl + $PROJ_DIR$\PLSR\Obj\os_pend_multi.xcl + $PROJ_DIR$\PLSR\Obj\lib_mem_a.o + $PROJ_DIR$\PLSR\Obj\os_task.__cstat.et + $PROJ_DIR$\PLSR\Exe\PLSR.hex + $TOOLKIT_DIR$\inc\c\stdint.h + $PROJ_DIR$\..\Drivers\CMSIS\Include\mpu_armv7.h + $PROJ_DIR$\..\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h + $TOOLKIT_DIR$\inc\c\iccarm_builtin.h + $PROJ_DIR$\PLSR\Obj\bsp.xcl + $PROJ_DIR$\PLSR\Exe\PLSR.out + $PROJ_DIR$\PLSR\Obj\os_core.xcl + $PROJ_DIR$\..\Core\Inc\stm32f4xx_it.h + $PROJ_DIR$\PLSR\Obj\os_flag.xcl + $PROJ_DIR$\PLSR\Obj\os_var.o + $PROJ_DIR$\PLSR\Obj\dma.xcl + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_pwr.__cstat.et + $PROJ_DIR$\PLSR\List\PLSR.map + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_pwr.xcl + $PROJ_DIR$\PLSR\Obj\os_msg.__cstat.et + $TOOLKIT_DIR$\lib\m7M_tl.a + $PROJ_DIR$\PLSR\Obj\cpu_core.xcl + $PROJ_DIR$\PLSR\Obj\os_tmr.xcl + $TOOLKIT_DIR$\inc\c\stdarg.h + $TOOLKIT_DIR$\inc\c\intrinsics.h + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_gpio.xcl + $TOOLKIT_DIR$\inc\c\ysizet.h + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr.h + $PROJ_DIR$\..\Core\Inc\dma.h + $PROJ_DIR$\PLSR\Obj\PSCARR.__cstat.et + $PROJ_DIR$\PLSR\Obj\os_pend_multi.__cstat.et + $PROJ_DIR$\PLSR\Obj\system_stm32f4xx.__cstat.et + $TOOLKIT_DIR$\lib\dl7M_tlf.a $PROJ_DIR$\PLSR\Obj\main.o - $PROJ_DIR$\PLSR\Obj\tim.o + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_type.h + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ex.h + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_dma_ex.o + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_exti.__cstat.et + $TOOLKIT_DIR$\inc\c\stdio.h + $PROJ_DIR$\stm32f407xx_flash.icf + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma_ex.h + $PROJ_DIR$\PLSR\Obj\PSCARR.xcl + $PROJ_DIR$\..\Core\Inc\gpio.h + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_flash_ex.xcl + $PROJ_DIR$\PLSR\Obj\os_msg.xcl + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_gpio.__cstat.et + $PROJ_DIR$\PLSR\Obj\bsp.__cstat.et + $PROJ_DIR$\PLSR\Obj\os_flag.o + $PROJ_DIR$\PLSR\Obj\os_flag.__cstat.et + $PROJ_DIR$\PLSR\Obj\os_mem.xcl + $PROJ_DIR$\PLSR\Obj\os_core.o + $PROJ_DIR$\PLSR\Obj\os_cfg_app.o + $PROJ_DIR$\PLSR\Obj\os_int.o + $PROJ_DIR$\PLSR\Obj\lib_mem.o + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_msp.o + $PROJ_DIR$\PLSR\Obj\gpio.o $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_exti.xcl - $PROJ_DIR$\PLSR\Obj\lib_mem_a.o - $PROJ_DIR$\PLSR\Obj\os_cpu_c.o - $PROJ_DIR$\PLSR\Obj\os_app_hooks.o + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_rcc_ex.xcl + $PROJ_DIR$\PLSR\Obj\usart.__cstat.et + $PROJ_DIR$\PLSR\Obj\tim.xcl + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_dma.__cstat.et + $PROJ_DIR$\PLSR\Obj\sram.__cstat.et + $TOOLKIT_DIR$\inc\c\DLib_float_setup.h + $PROJ_DIR$\..\Hardware\CRC.h + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal.xcl + $PROJ_DIR$\..\Drivers\CMSIS\Device\ST\STM32F4xx\Include\system_stm32f4xx.h + $PROJ_DIR$\PLSR\Obj\os_mutex.o + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma.h + $PROJ_DIR$\PLSR\Obj\os_int.__cstat.et + $PROJ_DIR$\..\Hardware\sram.h + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_rcc.__cstat.et + $PROJ_DIR$\PLSR\Obj\system_stm32f4xx.xcl + $PROJ_DIR$\PLSR\Obj\os_int.xcl + $PROJ_DIR$\PLSR\Obj\os_stat.xcl + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h + $PROJ_DIR$\PLSR\Obj\os_prio.__cstat.et + $PROJ_DIR$\PLSR\Obj\os_cfg_app.xcl + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_pwr_ex.o + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_cortex.xcl + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_tim.o + $PROJ_DIR$\PLSR\Obj\usart.o + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_rcc.o + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_dma_ex.__cstat.et + $PROJ_DIR$\..\Core\Inc\main.h + $PROJ_DIR$\PLSR\Obj\os_sem.__cstat.et + $PROJ_DIR$\PLSR\Obj\PSCARR.o $TOOLKIT_DIR$\inc\c\DLib_Product_string.h - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_flash_ramfunc.o - $TOOLKIT_DIR$\inc\c\DLib_Product_stdlib.h - $PROJ_DIR$\..\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h - $PROJ_DIR$\PLSR\Obj\lib_ascii.o + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_rcc_ex.__cstat.et $PROJ_DIR$\PLSR\Obj\os_sem.xcl - $PROJ_DIR$\PLSR\Obj\stm32f4xx_it.__cstat.et + $PROJ_DIR$\PLSR\Obj\os_dbg.__cstat.et + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h + $PROJ_DIR$\PLSR\Obj\stm32f4xx_it.xcl + $TOOLKIT_DIR$\inc\c\ycheck.h $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_flash_ex.o - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_tim_ex.__cstat.et + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_pwr_ex.xcl + $PROJ_DIR$\PLSR\Obj\lib_math.xcl + $TOOLKIT_DIR$\inc\c\stddef.h + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal.o $PROJ_DIR$\PLSR\Obj\main.__cstat.et - $PROJ_DIR$\PLSR\Obj\os_tmr.o - $PROJ_DIR$\PLSR\Obj\os_tick.__cstat.et - $PROJ_DIR$\PLSR\Obj\os_msg.o - $PROJ_DIR$\PLSR\Exe\PLSR.hex - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_flash_ex.__cstat.et - $PROJ_DIR$\PLSR\Obj\lib_str.o - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_tim_ex.xcl - $PROJ_DIR$\PLSR\Obj\os_mem.xcl - $PROJ_DIR$\PLSR\Obj\lib_str.__cstat.et - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_gpio.xcl - $PROJ_DIR$\PLSR\Obj\os_var.__cstat.et - $PROJ_DIR$\PLSR\Obj\os_tick.o - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma_ex.h - $PROJ_DIR$\PLSR\Obj\os_pend_multi.__cstat.et - $PROJ_DIR$\PLSR\Obj\modbus.__cstat.et - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_pwr.__cstat.et - $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_gpio.o - $PROJ_DIR$\PLSR\Obj\CRC.xcl - $PROJ_DIR$\..\Core\Inc\usart.h - $PROJ_DIR$\..\Drivers\CMSIS\Include\cmsis_version.h - $PROJ_DIR$\PLSR\Obj\os_prio.__cstat.et - $PROJ_DIR$\PLSR\Obj\system_stm32f4xx.__cstat.et - $TOOLKIT_DIR$\inc\c\stdlib.h - $PROJ_DIR$\..\Core\Src\gpio.c - $PROJ_DIR$\startup_stm32f407xx.s - $PROJ_DIR$\..\Core\Src\main.c + $PROJ_DIR$\PLSR\Obj\os_prio.o + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_rcc.xcl + $PROJ_DIR$\..\Core\Inc\tim.h + $PROJ_DIR$\..\Hardware\PLSR.h + $PROJ_DIR$\PLSR\Obj\lib_ascii.__cstat.et + $PROJ_DIR$\PLSR\Obj\os_cpu_c.xcl + $PROJ_DIR$\PLSR\Obj\stm32f4xx_hal_msp.xcl + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os.h - $PROJ_DIR$\..\cmsis\uCOS-III\Ports\ARM-Cortex-M4\Generic\IAR\os_cpu_c.c + $PROJ_DIR$\..\Core\Src\main.c ICCARM - 281 - - - BICOMP - 58 + 245 __cstat - 172 - - - - - ICCARM - 50 240 209 206 182 146 257 51 158 274 160 210 229 191 193 246 214 220 108 217 - - - - - $PROJ_DIR$\..\cmsis\uCOS-III\Ports\ARM-Cortex-M4\Generic\IAR\os_cpu_a.asm - - - AARM - 86 - - - - - $PROJ_DIR$\PLSR\Exe\PLSR.out - - - OBJCOPY - 296 + 310 - ILINK - 42 + BICOMP + 161 - ILINK - 271 29 112 149 116 45 78 65 287 107 181 280 298 277 74 282 25 153 86 281 169 103 14 1 295 54 48 46 8 123 152 184 304 39 293 126 174 75 83 121 185 85 140 178 100 67 290 284 309 143 82 104 122 36 31 131 32 102 56 278 113 167 128 269 163 + ICCARM + 295 302 186 129 196 219 18 7 217 304 188 200 179 154 144 175 31 220 218 277 119 308 238 5 29 177 159 279 252 22 185 247 172 239 132 286 133 27 240 313 151 254 314 83 250 173 298 169 139 35 235 135 274 318 71 106 109 236 152 123 68 114 115 85 125 124 246 110 111 95 67 180 281 275 - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c + $PROJ_DIR$\..\Core\Src\dma.c ICCARM - 131 + 126 - BICOMP - 299 + __cstat + 30 - __cstat - 291 + BICOMP + 227 ICCARM - 270 147 79 168 286 63 13 137 136 257 51 158 274 312 268 119 146 255 176 27 258 141 21 175 142 256 183 305 19 254 125 105 124 47 133 68 5 + 240 295 302 186 129 196 219 18 7 217 304 188 200 179 154 144 175 31 220 218 277 119 308 238 5 29 177 159 279 252 22 185 247 172 239 132 286 133 27 - $PROJ_DIR$\..\Core\Src\stm32f4xx_it.c + $PROJ_DIR$\..\Core\Src\tim.c ICCARM - 102 + 130 - BICOMP - 80 + __cstat + 204 - __cstat - 289 + BICOMP + 271 ICCARM - 18 270 147 79 168 286 63 13 137 136 257 51 158 274 312 268 119 146 255 176 27 258 141 21 175 142 256 183 305 19 254 125 105 124 47 133 68 5 73 + 313 295 302 186 129 196 219 18 7 217 304 188 200 179 154 144 175 31 220 218 277 119 308 238 5 29 177 159 279 252 22 185 247 172 239 132 286 133 27 @@ -427,600 +399,605 @@ ICCARM - 113 - - - BICOMP - 98 + 292 __cstat - 72 - - - - - ICCARM - 311 18 270 147 79 168 286 63 13 137 136 257 51 158 274 312 268 119 146 255 176 27 258 141 21 175 142 256 183 305 19 254 125 105 124 47 133 68 5 - - - - - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c - - - ICCARM - 122 + 270 BICOMP - 34 - - - __cstat - 37 + 207 ICCARM - 270 147 79 168 286 63 13 137 136 257 51 158 274 312 268 119 146 255 176 27 258 141 21 175 142 256 183 305 19 254 125 105 124 47 133 68 5 + 151 295 302 186 129 196 219 18 7 217 304 188 200 179 154 144 175 31 220 218 277 119 308 238 5 29 177 159 279 252 22 185 247 172 239 132 286 133 27 - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c + $PROJ_DIR$\..\Core\Src\system_stm32f4xx.c ICCARM - 36 + 108 - BICOMP - 166 + __cstat + 243 - __cstat - 135 + BICOMP + 283 ICCARM - 270 147 79 168 286 63 13 137 136 257 51 158 274 312 268 119 146 255 176 27 258 141 21 175 142 256 183 305 19 254 125 105 124 47 133 68 5 + 219 18 7 217 304 188 200 179 154 144 175 31 220 218 277 302 186 129 196 119 308 238 5 29 177 159 279 252 22 185 247 172 239 132 286 133 27 - $PROJ_DIR$\..\Core\Src\dma.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c ICCARM - 78 + 26 - BICOMP - 53 + __cstat + 257 - __cstat - 61 + BICOMP + 237 ICCARM - 186 18 270 147 79 168 286 63 13 137 136 257 51 158 274 312 268 119 146 255 176 27 258 141 21 175 142 256 183 305 19 254 125 105 124 47 133 68 5 + 302 186 129 196 219 18 7 217 304 188 200 179 154 144 175 31 220 218 277 119 308 238 5 29 177 159 279 252 22 185 247 172 239 132 286 133 27 - $PROJ_DIR$\..\Core\Src\tim.c + $PROJ_DIR$\..\Core\Src\stm32f4xx_hal_msp.c ICCARM - 278 + 266 - BICOMP - 52 + __cstat + 1 - __cstat - 57 + BICOMP + 317 ICCARM - 157 18 270 147 79 168 286 63 13 137 136 257 51 158 274 312 268 119 146 255 176 27 258 141 21 175 142 256 183 305 19 254 125 105 124 47 133 68 5 + 295 302 186 129 196 219 18 7 217 304 188 200 179 154 144 175 31 220 218 277 119 308 238 5 29 177 159 279 252 22 185 247 172 239 132 286 133 27 - $PROJ_DIR$\..\Core\Src\stm32f4xx_hal_msp.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c ICCARM - 143 + 209 - BICOMP - 33 + __cstat + 228 - __cstat - 155 + BICOMP + 230 ICCARM - 18 270 147 79 168 286 63 13 137 136 257 51 158 274 312 268 119 146 255 176 27 258 141 21 175 142 256 183 305 19 254 125 105 124 47 133 68 5 + 302 186 129 196 219 18 7 217 304 188 200 179 154 144 175 31 220 218 277 119 308 238 5 29 177 159 279 252 22 185 247 172 239 132 286 133 27 - $PROJ_DIR$\..\Core\Src\system_stm32f4xx.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c ICCARM - 56 - - - BICOMP - 156 + 289 __cstat - 314 + 211 + + + BICOMP + 306 ICCARM - 286 63 13 137 136 257 51 158 274 312 268 119 146 255 176 270 147 79 168 27 258 141 21 175 142 256 183 305 19 254 125 105 124 47 133 68 5 + 302 186 129 196 219 18 7 217 304 188 200 179 154 144 175 31 220 218 277 119 308 238 5 29 177 159 279 252 22 185 247 172 239 132 286 133 27 - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c + $PROJ_DIR$\..\Core\Src\stm32f4xx_it.c ICCARM - 31 + 149 - BICOMP - 12 + __cstat + 6 - __cstat - 69 + BICOMP + 303 ICCARM - 270 147 79 168 286 63 13 137 136 257 51 158 274 312 268 119 146 255 176 27 258 141 21 175 142 256 183 305 19 254 125 105 124 47 133 68 5 + 295 302 186 129 196 219 18 7 217 304 188 200 179 154 144 175 31 220 218 277 119 308 238 5 29 177 159 279 252 22 185 247 172 239 132 286 133 27 224 314 313 151 180 281 275 173 298 139 35 - [ROOT_NODE] + $PROJ_DIR$\startup_stm32f407xx.s - ILINK - 24 42 + AARM + 194 - $PROJ_DIR$\..\cmsis\uC-LIB\lib_math.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c ICCARM - 107 + 291 - BICOMP - 99 + __cstat + 148 - __cstat - 267 + BICOMP + 12 ICCARM - 199 206 182 146 257 51 158 274 160 210 229 209 191 193 246 214 220 + 302 186 129 196 219 18 7 217 304 188 200 179 154 144 175 31 220 218 277 119 308 238 5 29 177 159 279 252 22 185 247 172 239 132 286 133 27 - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_prio.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c ICCARM - 46 + 183 - BICOMP - 138 + __cstat + 39 - __cstat - 313 + BICOMP + 103 ICCARM - 50 240 209 206 182 146 257 51 158 274 160 210 229 191 193 246 214 220 108 217 + 302 186 129 196 219 18 7 217 304 188 200 179 154 144 175 31 220 218 277 119 308 238 5 29 177 159 279 252 22 185 247 172 239 132 286 133 27 - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_sem.c + $PROJ_DIR$\..\Core\Src\gpio.c ICCARM - 123 + 267 - BICOMP - 288 + __cstat + 15 - __cstat - 55 + BICOMP + 42 ICCARM - 50 240 209 206 182 146 257 51 158 274 160 210 229 191 193 246 214 220 108 217 + 254 295 302 186 129 196 219 18 7 217 304 188 200 179 154 144 175 31 220 218 277 119 308 238 5 29 177 159 279 252 22 185 247 172 239 132 286 133 27 - $PROJ_DIR$\..\cmsis\uC-CPU\ARM-Cortex-M4\IAR\cpu_c.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c ICCARM - 149 + 190 - BICOMP - 114 + __cstat + 168 - __cstat - 0 + BICOMP + 184 ICCARM - 206 182 146 257 51 158 274 160 210 229 209 191 193 246 214 220 + 302 186 129 196 219 18 7 217 304 188 200 179 154 144 175 31 220 218 277 119 308 238 5 29 177 159 279 252 22 185 247 172 239 132 286 133 27 - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_tick.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c ICCARM - 304 + 13 - BICOMP - 38 + __cstat + 299 - __cstat - 294 + BICOMP + 269 ICCARM - 50 240 209 206 182 146 257 51 158 274 160 210 229 191 193 246 214 220 108 217 + 302 186 129 196 219 18 7 217 304 188 200 179 154 144 175 31 220 218 277 119 308 238 5 29 177 159 279 252 22 185 247 172 239 132 286 133 27 - $PROJ_DIR$\..\cmsis\uC-LIB\Ports\ARM-Cortex-M4\IAR\lib_mem_a.asm + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c - AARM - 280 + ICCARM + 293 + + + __cstat + 282 + + + BICOMP + 312 + + + ICCARM + 302 186 129 196 219 18 7 217 304 188 200 179 154 144 175 31 220 218 277 119 308 238 5 29 177 159 279 252 22 185 247 172 239 132 286 133 27 + + - $PROJ_DIR$\..\cmsis\uC-LIB\lib_str.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c ICCARM - 298 + 189 - BICOMP - 44 + __cstat + 191 - __cstat - 301 + BICOMP + 37 ICCARM - 214 206 182 146 257 51 158 274 160 210 229 191 220 246 + 302 186 129 196 219 18 7 217 304 188 200 179 154 144 175 31 220 218 277 119 308 238 5 29 177 159 279 252 22 185 247 172 239 132 286 133 27 - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_msg.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c ICCARM - 295 + 305 - BICOMP - 30 + __cstat + 40 - __cstat - 150 + BICOMP + 255 ICCARM - 50 240 209 206 182 146 257 51 158 274 160 210 229 191 193 246 214 220 108 217 + 302 186 129 196 219 18 7 217 304 188 200 179 154 144 175 31 220 218 277 119 308 238 5 29 177 159 279 252 22 185 247 172 239 132 286 133 27 - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_pend_multi.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c ICCARM - 48 + 248 - BICOMP - 130 + __cstat + 294 - __cstat - 306 + BICOMP + 25 ICCARM - 50 240 209 206 182 146 257 51 158 274 160 210 229 191 193 246 214 220 108 217 + 302 186 129 196 219 18 7 217 304 188 200 179 154 144 175 31 220 218 277 119 308 238 5 29 177 159 279 252 22 185 247 172 239 132 286 133 27 - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_time.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c ICCARM - 39 + 182 - BICOMP - 148 + __cstat + 272 - __cstat - 253 + BICOMP + 138 ICCARM - 50 240 209 206 182 146 257 51 158 274 160 210 229 191 193 246 214 220 108 217 + 302 186 129 196 219 18 7 217 304 188 200 179 154 144 175 31 220 218 277 119 308 238 5 29 177 159 279 252 22 185 247 172 239 132 286 133 27 - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_var.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c ICCARM - 126 + 167 - BICOMP - 151 + __cstat + 20 - __cstat - 303 + BICOMP + 181 ICCARM - 50 240 209 206 182 146 257 51 158 274 160 210 229 191 193 246 214 220 108 217 + 302 186 129 196 219 18 7 217 304 188 200 179 154 144 175 31 220 218 277 119 308 238 5 29 177 159 279 252 22 185 247 172 239 132 286 133 27 - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_int.c + $PROJ_DIR$\..\Hardware\CRC.c ICCARM - 14 + 195 - BICOMP - 189 + __cstat + 134 - __cstat - 77 + BICOMP + 162 ICCARM - 50 240 209 206 182 146 257 51 158 274 160 210 229 191 193 246 214 220 108 217 + 275 217 304 188 200 179 154 - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_mem.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_exti.c ICCARM - 1 + 10 - BICOMP - 300 + __cstat + 249 - __cstat - 81 + BICOMP + 268 ICCARM - 50 240 209 206 182 146 257 51 158 274 160 210 229 191 193 246 214 220 108 217 + 302 186 129 196 219 18 7 217 304 188 200 179 154 144 175 31 220 218 277 119 308 238 5 29 177 159 279 252 22 185 247 172 239 132 286 133 27 - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_mutex.c + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_dbg.c ICCARM - 54 + 121 - BICOMP - 139 + __cstat + 301 - __cstat - 275 + BICOMP + 9 ICCARM - 50 240 209 206 182 146 257 51 158 274 160 210 229 191 193 246 214 220 108 217 + 318 71 106 109 236 220 188 200 179 154 152 123 68 114 115 85 125 124 246 110 - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_q.c + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_sem.c ICCARM - 8 + 104 - BICOMP - 170 + __cstat + 296 - __cstat - 165 + BICOMP + 300 ICCARM - 50 240 209 206 182 146 257 51 158 274 160 210 229 191 193 246 214 220 108 217 + 318 71 106 109 236 220 188 200 179 154 152 123 68 114 115 85 125 124 246 110 - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_tmr.c + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_int.c ICCARM - 293 + 264 - BICOMP - 41 + __cstat + 280 - __cstat - 262 + BICOMP + 284 ICCARM - 50 240 209 206 182 146 257 51 158 274 160 210 229 191 193 246 214 220 108 217 + 318 71 106 109 236 220 188 200 179 154 152 123 68 114 115 85 125 124 246 110 - $PROJ_DIR$\..\cmsis\uC-LIB\lib_mem.c + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_mem.c ICCARM - 181 + 150 - BICOMP - 132 + __cstat + 23 - __cstat - 272 + BICOMP + 261 ICCARM - 193 206 182 146 257 51 158 274 160 210 229 209 191 214 220 246 199 + 318 71 106 109 236 220 188 200 179 154 152 123 68 114 115 85 125 124 246 110 - $PROJ_DIR$\..\cmsis\uC-CPU\ARM-Cortex-M4\IAR\cpu_a.asm + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_pend_multi.c - AARM - 112 + ICCARM + 11 + + + __cstat + 242 + + + BICOMP + 213 + + + ICCARM + 318 71 106 109 236 220 188 200 179 154 152 123 68 114 115 85 125 124 246 110 + + - $PROJ_DIR$\..\cmsis\uC-LIB\lib_ascii.c + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_core.c ICCARM - 287 + 262 - BICOMP - 187 + __cstat + 3 - __cstat - 259 + BICOMP + 223 ICCARM - 220 206 182 146 257 51 158 274 160 210 229 191 + 318 71 106 109 236 220 188 200 179 154 152 123 68 114 115 85 125 124 246 110 @@ -1029,653 +1006,676 @@ ICCARM - 152 + 201 - BICOMP - 134 + __cstat + 202 - __cstat - 261 + BICOMP + 285 ICCARM - 50 240 209 206 182 146 257 51 158 274 160 210 229 191 193 246 214 220 108 217 + 318 71 106 109 236 220 188 200 179 154 152 123 68 114 115 85 125 124 246 110 - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_task.c + $PROJ_DIR$\..\cmsis\uCOS-Config\os_app_hooks.c ICCARM - 184 + 208 - BICOMP - 60 + __cstat + 145 - __cstat - 22 + BICOMP + 34 ICCARM - 50 240 209 206 182 146 257 51 158 274 160 210 229 191 193 246 214 220 108 217 + 318 71 106 109 236 220 188 200 179 154 152 123 68 114 115 85 125 124 246 110 70 - $PROJ_DIR$\..\cmsis\uC-CPU\cpu_core.c + $PROJ_DIR$\..\Hardware\PLSR.c ICCARM - 116 + 8 - BICOMP - 66 + __cstat + 147 - __cstat - 264 + BICOMP + 164 ICCARM - 209 206 182 146 257 51 158 274 160 210 229 191 193 246 214 220 + 314 217 304 188 200 179 154 171 313 295 302 186 129 196 219 18 7 144 175 31 220 218 277 119 308 238 5 29 177 159 279 252 22 185 247 172 239 132 286 133 27 281 173 298 180 151 275 139 35 - $PROJ_DIR$\..\Hardware\CRC.c + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_cfg_app.c ICCARM - 45 + 263 - BICOMP - 310 + __cstat + 166 - __cstat - 265 + BICOMP + 288 ICCARM - 180 137 136 257 51 158 274 + 86 318 71 106 109 236 220 188 200 179 154 152 123 68 114 115 85 125 124 246 110 - $PROJ_DIR$\..\Hardware\PLSR.c + $PROJ_DIR$\..\Hardware\PSCARR.c ICCARM - 174 + 297 - BICOMP - 260 + __cstat + 241 - __cstat - 109 + BICOMP + 253 ICCARM - 110 137 136 257 51 158 274 59 157 18 270 147 79 168 286 63 13 312 268 119 146 255 176 27 258 141 21 175 142 256 183 305 19 254 125 105 124 47 133 68 5 + 171 217 304 188 200 179 154 - $PROJ_DIR$\..\Hardware\PSCARR.c + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_flag.c ICCARM - 75 + 259 - BICOMP - 70 + __cstat + 260 - __cstat - 111 + BICOMP + 225 ICCARM - 59 137 136 257 51 158 274 + 318 71 106 109 236 220 188 200 179 154 152 123 68 114 115 85 125 124 246 110 - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c + $PROJ_DIR$\..\cmsis\uCOS-BSP\bsp.c ICCARM - 82 + 17 - BICOMP - 177 + __cstat + 258 - __cstat - 308 + BICOMP + 221 ICCARM - 270 147 79 168 286 63 13 137 136 257 51 158 274 312 268 119 146 255 176 27 258 141 21 175 142 256 183 305 19 254 125 105 124 47 133 68 5 + 83 250 304 188 200 179 154 238 173 298 169 139 35 235 135 274 318 71 106 109 236 220 152 123 68 114 115 85 125 124 246 110 111 95 67 302 186 129 196 219 18 7 217 144 175 31 218 277 119 308 5 29 177 159 279 252 22 185 247 172 239 132 286 133 27 - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_mutex.c ICCARM - 185 + 278 - BICOMP - 87 + __cstat + 197 - __cstat - 3 + BICOMP + 212 ICCARM - 270 147 79 168 286 63 13 137 136 257 51 158 274 312 268 119 146 255 176 27 258 141 21 175 142 256 183 305 19 254 125 105 124 47 133 68 5 + 318 71 106 109 236 220 188 200 179 154 152 123 68 114 115 85 125 124 246 110 - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_prio.c ICCARM - 178 + 311 - BICOMP - 273 + __cstat + 287 - __cstat - 127 + BICOMP + 143 ICCARM - 270 147 79 168 286 63 13 137 136 257 51 158 274 312 268 119 146 255 176 27 258 141 21 175 142 256 183 305 19 254 125 105 124 47 133 68 5 + 318 71 106 109 236 220 188 200 179 154 152 123 68 114 115 85 125 124 246 110 - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_q.c ICCARM - 140 + 203 - BICOMP - 4 + __cstat + 155 - __cstat - 11 + BICOMP + 36 ICCARM - 270 147 79 168 286 63 13 137 136 257 51 158 274 312 268 119 146 255 176 27 258 141 21 175 142 256 183 305 19 254 125 105 124 47 133 68 5 + 318 71 106 109 236 220 188 200 179 154 152 123 68 114 115 85 125 124 246 110 - $PROJ_DIR$\..\cmsis\uCOS-BSP\bsp.c + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_msg.c ICCARM - 29 + 38 - BICOMP - 190 + __cstat + 231 - __cstat - 49 + BICOMP + 256 ICCARM - 236 118 136 257 51 158 274 141 17 283 101 315 285 76 71 117 50 240 209 206 182 146 160 210 229 191 193 246 214 220 108 217 199 226 235 270 147 79 168 286 63 13 137 312 268 119 255 176 27 258 21 175 142 256 183 305 19 254 125 105 124 47 133 68 5 + 318 71 106 109 236 220 188 200 179 154 152 123 68 114 115 85 125 124 246 110 - $PROJ_DIR$\..\cmsis\uCOS-Config\os_app_hooks.c + $PROJ_DIR$\..\Hardware\modbus.c ICCARM - 282 + 146 - BICOMP - 162 + __cstat + 14 - __cstat - 164 + BICOMP + 206 ICCARM - 50 240 209 206 182 146 257 51 158 274 160 210 229 191 193 246 214 220 108 217 234 + 180 151 295 302 186 129 196 219 18 7 217 304 188 200 179 154 144 175 31 220 218 277 119 308 238 5 29 177 159 279 252 22 185 247 172 239 132 286 133 27 281 275 173 298 139 35 314 - $PROJ_DIR$\..\Hardware\sram.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c ICCARM - 83 + 309 - BICOMP - 35 + __cstat + 142 - __cstat - 64 + BICOMP + 276 ICCARM - 84 18 270 147 79 168 286 63 13 137 136 257 51 158 274 312 268 119 146 255 176 27 258 141 21 175 142 256 183 305 19 254 125 105 124 47 133 68 5 + 302 186 129 196 219 18 7 217 304 188 200 179 154 144 175 31 220 218 277 119 308 238 5 29 177 159 279 252 22 185 247 172 239 132 286 133 27 - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_core.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c ICCARM - 153 + 198 - BICOMP - 9 + __cstat + 24 - __cstat - 266 + BICOMP + 290 ICCARM - 50 240 209 206 182 146 257 51 158 274 160 210 229 191 193 246 214 220 108 217 + 302 186 129 196 219 18 7 217 304 188 200 179 154 144 175 31 220 218 277 119 308 238 5 29 177 159 279 252 22 185 247 172 239 132 286 133 27 - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c + $PROJ_DIR$\..\Hardware\sram.c ICCARM - 290 + 160 - BICOMP - 161 + __cstat + 273 - __cstat - 297 + BICOMP + 153 ICCARM - 270 147 79 168 286 63 13 137 136 257 51 158 274 312 268 119 146 255 176 27 258 141 21 175 142 256 183 305 19 254 125 105 124 47 133 68 5 + 281 295 302 186 129 196 219 18 7 217 304 188 200 179 154 144 175 31 220 218 277 119 308 238 5 29 177 159 279 252 22 185 247 172 239 132 286 133 27 - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c + $PROJ_DIR$\..\cmsis\uC-CPU\cpu_core.c ICCARM - 104 + 158 - BICOMP - 263 + __cstat + 33 - __cstat - 171 + BICOMP + 233 ICCARM - 270 147 79 168 286 63 13 137 136 257 51 158 274 312 268 119 146 255 176 27 258 141 21 175 142 256 183 305 19 254 125 105 124 47 133 68 5 + 106 109 236 220 188 200 179 154 152 123 68 114 115 85 125 124 - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_flag.c + $PROJ_DIR$\..\cmsis\uC-LIB\lib_mem.c ICCARM - 103 + 265 - BICOMP - 106 + __cstat + 210 - __cstat - 145 + BICOMP + 112 ICCARM - 50 240 209 206 182 146 257 51 158 274 160 210 229 191 193 246 214 220 108 217 + 115 109 236 220 188 200 179 154 152 123 68 106 114 125 124 85 111 - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_time.c ICCARM - 85 + 176 - BICOMP - 115 + __cstat + 174 - __cstat - 120 + BICOMP + 192 ICCARM - 270 147 79 168 286 63 13 137 136 257 51 158 274 312 268 119 146 255 176 27 258 141 21 175 142 256 183 305 19 254 125 105 124 47 133 68 5 + 318 71 106 109 236 220 188 200 179 154 152 123 68 114 115 85 125 124 246 110 - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_cfg_app.c + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_tick.c ICCARM - 25 + 21 - BICOMP - 179 + __cstat + 165 - __cstat - 6 + BICOMP + 170 ICCARM - 247 50 240 209 206 182 146 257 51 158 274 160 210 229 191 193 246 214 220 108 217 + 318 71 106 109 236 220 188 200 179 154 152 123 68 114 115 85 125 124 246 110 - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_tmr.c ICCARM - 309 + 4 - BICOMP - 302 + __cstat + 19 - __cstat - 188 + BICOMP + 234 ICCARM - 270 147 79 168 286 63 13 137 136 257 51 158 274 312 268 119 146 255 176 27 258 141 21 175 142 256 183 305 19 254 125 105 124 47 133 68 5 + 318 71 106 109 236 220 188 200 179 154 152 123 68 114 115 85 125 124 246 110 - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c + $PROJ_DIR$\..\cmsis\uC-LIB\lib_ascii.c ICCARM - 32 + 137 - BICOMP - 7 + __cstat + 315 - __cstat - 20 + BICOMP + 163 ICCARM - 270 147 79 168 286 63 13 137 136 257 51 158 274 312 268 119 146 255 176 27 258 141 21 175 142 256 183 305 19 254 125 105 124 47 133 68 5 + 124 109 236 220 188 200 179 154 152 123 68 114 - $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_dbg.c + $PROJ_DIR$\..\cmsis\uCOS-III\Ports\ARM-Cortex-M4\Generic\IAR\os_cpu_c.c ICCARM - 169 + 157 - BICOMP - 173 + __cstat + 16 - __cstat - 144 + BICOMP + 316 ICCARM - 50 240 209 206 182 146 257 51 158 274 160 210 229 191 193 246 214 220 108 217 + 318 71 106 109 236 220 188 200 179 154 152 123 68 114 115 85 125 124 246 110 - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c + $PROJ_DIR$\..\cmsis\uCOS-III\Ports\ARM-Cortex-M4\Generic\IAR\os_cpu_a.asm - ICCARM - 67 + AARM + 140 + + + + $PROJ_DIR$\..\cmsis\uC-CPU\ARM-Cortex-M4\IAR\cpu_a.asm + - BICOMP - 16 + AARM + 2 + + + + + $PROJ_DIR$\..\cmsis\uC-LIB\lib_math.c + + + ICCARM + 205 __cstat - 276 + 193 + + + BICOMP + 307 ICCARM - 270 147 79 168 286 63 13 137 136 257 51 158 274 312 268 119 146 255 176 27 258 141 21 175 142 256 183 305 19 254 125 105 124 47 133 68 5 + 111 109 236 220 188 200 179 154 152 123 68 106 114 115 85 125 124 - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c + $PROJ_DIR$\..\cmsis\uC-LIB\Ports\ARM-Cortex-M4\IAR\lib_mem_a.asm - ICCARM - 284 + AARM + 214 + + + + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_var.c + - BICOMP - 28 + ICCARM + 226 __cstat - 159 + 199 + + + BICOMP + 128 ICCARM - 270 147 79 168 286 63 13 137 136 257 51 158 274 312 268 119 146 255 176 27 258 141 21 175 142 256 183 305 19 254 125 105 124 47 133 68 5 + 318 71 106 109 236 220 188 200 179 154 152 123 68 114 115 85 125 124 246 110 - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_exti.c + $PROJ_DIR$\..\cmsis\uC-LIB\lib_str.c ICCARM - 100 + 99 - BICOMP - 279 + __cstat + 41 - __cstat - 129 + BICOMP + 141 ICCARM - 270 147 79 168 286 63 13 137 136 257 51 158 274 312 268 119 146 255 176 27 258 141 21 175 142 256 183 305 19 254 125 105 124 47 133 68 5 + 125 109 236 220 188 200 179 154 152 123 68 114 124 85 - $PROJ_DIR$\..\Hardware\modbus.c + $PROJ_DIR$\..\cmsis\uC-CPU\ARM-Cortex-M4\IAR\cpu_c.c ICCARM - 74 + 156 - BICOMP - 43 + __cstat + 32 - __cstat - 307 + BICOMP + 28 ICCARM - 62 311 18 270 147 79 168 286 63 13 137 136 257 51 158 274 312 268 119 146 255 176 27 258 141 21 175 142 256 183 305 19 254 125 105 124 47 133 68 5 84 180 17 283 315 285 + 109 236 220 188 200 179 154 152 123 68 106 114 115 85 125 124 - $PROJ_DIR$\..\Core\Src\gpio.c + $PROJ_DIR$\..\cmsis\uCOS-III\Source\os_task.c ICCARM - 65 + 136 - BICOMP - 154 + __cstat + 215 - __cstat - 26 + BICOMP + 0 ICCARM - 40 18 270 147 79 168 286 63 13 137 136 257 51 158 274 312 268 119 146 255 176 27 258 141 21 175 142 256 183 305 19 254 125 105 124 47 133 68 5 + 318 71 106 109 236 220 188 200 179 154 152 123 68 114 115 85 125 124 246 110 - $PROJ_DIR$\startup_stm32f407xx.s - - - AARM - 121 - - - - - $PROJ_DIR$\..\Core\Src\main.c + $PROJ_DIR$\PLSR\Exe\PLSR.out - ICCARM - 277 - - - BICOMP - 10 + ILINK + 229 - __cstat - 292 + OBJCOPY + 216 - ICCARM - 18 270 147 79 168 286 63 13 137 136 257 51 158 274 312 268 119 146 255 176 27 258 141 21 175 142 256 183 305 19 254 125 105 124 47 133 68 5 186 157 311 40 110 236 118 17 283 101 315 285 76 71 117 50 240 209 206 182 160 210 229 191 193 246 214 220 108 217 199 226 235 + ILINK + 251 17 2 156 158 195 126 267 137 205 265 214 99 245 146 208 263 262 140 157 121 259 264 150 38 278 11 311 203 104 201 136 21 176 4 226 8 297 160 194 309 198 182 248 10 189 305 183 26 266 209 289 293 13 291 190 167 149 108 130 292 178 187 232 244 + + [ROOT_NODE] + + + ILINK + 222 229 + + + diff --git a/EWARM/PLSR.ewp b/EWARM/PLSR.ewp index 919036a..48db6a9 100644 --- a/EWARM/PLSR.ewp +++ b/EWARM/PLSR.ewp @@ -356,7 +356,7 @@ $PROJ_DIR$/../Drivers/CMSIS/Device/ST/STM32F4xx/Include $PROJ_DIR$/../Drivers/CMSIS/Include $PROJ_DIR$\..\Hardware - C:\Users\Chiri\Desktop\PLSR\cmsis\uC-CPU + $PROJ_DIR$\..\cmsis\uC-CPU $PROJ_DIR$\..\cmsis\uC-CPU\ARM-Cortex-M4\IAR $PROJ_DIR$\..\cmsis\uC-LIB $PROJ_DIR$\..\cmsis\uC-LIB\Ports\ARM-Cortex-M4\IAR diff --git a/EWARM/settings/PLSR.PLSR.cspy.bat b/EWARM/settings/PLSR.PLSR.cspy.bat index 765114a..12c3b15 100644 --- a/EWARM/settings/PLSR.PLSR.cspy.bat +++ b/EWARM/settings/PLSR.PLSR.cspy.bat @@ -25,7 +25,7 @@ if not "%~1" == "" goto debugFile @echo on -"D:\IAR8.40.1\common\bin\cspybat" -f "C:\Users\Chiri\Desktop\PLSR\EWARM\settings\PLSR.PLSR.general.xcl" --backend -f "C:\Users\Chiri\Desktop\PLSR\EWARM\settings\PLSR.PLSR.driver.xcl" +"D:\IAR8.40.1\common\bin\cspybat" -f "C:\Users\Chiri\Desktop\TrainCamp-Jiangyunsong-PLSR\EWARM\settings\PLSR.PLSR.general.xcl" --backend -f "C:\Users\Chiri\Desktop\TrainCamp-Jiangyunsong-PLSR\EWARM\settings\PLSR.PLSR.driver.xcl" @echo off goto end @@ -34,7 +34,7 @@ goto end @echo on -"D:\IAR8.40.1\common\bin\cspybat" -f "C:\Users\Chiri\Desktop\PLSR\EWARM\settings\PLSR.PLSR.general.xcl" "--debug_file=%~1" --backend -f "C:\Users\Chiri\Desktop\PLSR\EWARM\settings\PLSR.PLSR.driver.xcl" +"D:\IAR8.40.1\common\bin\cspybat" -f "C:\Users\Chiri\Desktop\TrainCamp-Jiangyunsong-PLSR\EWARM\settings\PLSR.PLSR.general.xcl" "--debug_file=%~1" --backend -f "C:\Users\Chiri\Desktop\TrainCamp-Jiangyunsong-PLSR\EWARM\settings\PLSR.PLSR.driver.xcl" @echo off :end \ No newline at end of file diff --git a/EWARM/settings/PLSR.PLSR.cspy.ps1 b/EWARM/settings/PLSR.PLSR.cspy.ps1 index 3fe29cd..7aef21b 100644 --- a/EWARM/settings/PLSR.PLSR.cspy.ps1 +++ b/EWARM/settings/PLSR.PLSR.cspy.ps1 @@ -23,9 +23,9 @@ if ($debugfile -eq "") { -& "D:\IAR8.40.1\common\bin\cspybat" -f "C:\Users\Chiri\Desktop\PLSR\EWARM\settings\PLSR.PLSR.general.xcl" --backend -f "C:\Users\Chiri\Desktop\PLSR\EWARM\settings\PLSR.PLSR.driver.xcl" +& "D:\IAR8.40.1\common\bin\cspybat" -f "C:\Users\Chiri\Desktop\TrainCamp-Jiangyunsong-PLSR\EWARM\settings\PLSR.PLSR.general.xcl" --backend -f "C:\Users\Chiri\Desktop\TrainCamp-Jiangyunsong-PLSR\EWARM\settings\PLSR.PLSR.driver.xcl" } else { -& "D:\IAR8.40.1\common\bin\cspybat" -f "C:\Users\Chiri\Desktop\PLSR\EWARM\settings\PLSR.PLSR.general.xcl" --debug_file=$debugfile --backend -f "C:\Users\Chiri\Desktop\PLSR\EWARM\settings\PLSR.PLSR.driver.xcl" +& "D:\IAR8.40.1\common\bin\cspybat" -f "C:\Users\Chiri\Desktop\TrainCamp-Jiangyunsong-PLSR\EWARM\settings\PLSR.PLSR.general.xcl" --debug_file=$debugfile --backend -f "C:\Users\Chiri\Desktop\TrainCamp-Jiangyunsong-PLSR\EWARM\settings\PLSR.PLSR.driver.xcl" } diff --git a/EWARM/settings/PLSR.PLSR.general.xcl b/EWARM/settings/PLSR.PLSR.general.xcl index 5fd8995..55c6bff 100644 --- a/EWARM/settings/PLSR.PLSR.general.xcl +++ b/EWARM/settings/PLSR.PLSR.general.xcl @@ -2,7 +2,7 @@ "D:\IAR8.40.1\arm\bin\armstlink2.dll" -"C:\Users\Chiri\Desktop\PLSR\EWARM\PLSR\Exe\PLSR.out" +"C:\Users\Chiri\Desktop\TrainCamp-Jiangyunsong-PLSR\EWARM\PLSR\Exe\PLSR.out" --plugin="D:\IAR8.40.1\arm\bin\armbat.dll" diff --git a/EWARM/settings/PLSR.dbgdt b/EWARM/settings/PLSR.dbgdt index 0d78e31..5b0c90a 100644 --- a/EWARM/settings/PLSR.dbgdt +++ b/EWARM/settings/PLSR.dbgdt @@ -153,11 +153,11 @@ 1 1 1 - F50100001000138600000200000010860000F00000005F860000020000000F810000010000000C8100000C000000568600001C00000000840000010000000E810000020000001F8100002700000000E10000020000000B81000005000000148600002F0000001186000047000000058100000100000046810000370000005D86000002000000 + 160400001B00298100000300000013860000020000002CE100000100000010860000CE010000239200000400000029E10000040000005F860000020000000F810000010000000C8100000C00000059860000010000000486000001000000568600003E000000288100000200000000840000010000002BE100000700000009860000010000000E810000020000001F8100005000000000E10000020000000B81000005000000148600006000000011860000C10000000581000001000000468100007700000008860000010000005D860000030000001686000001000000 - 150020870000238700002487000021870000198600000D8400000F84000008840000FFFFFFFF54840000328100001C810000098400002AE10000008200001C8200000182000067860000838600005886000004DC0000 - 1D00578600001C0000002CE100007500000023920000000000005F8600006600000023E100006F00000019820000470000004A8100007900000016820000450000009A8600001A0000002BE1000074000000008400007A0000000E84000082000000308400008400000025E10000710000002F820000480000001A860000340000000B8100005100000022E100006E0000008E8600003D0000001882000046000000698600003A000000498100007800000055860000080000000E8600001B0000000D81000053000000A18600003E000000C3860000040000003787000003000000C08600000E000000 + 300020870000238700002487000021870000198600000D8400000F84000008840000FFFFFFFF54840000328100001C810000098400002AE10000008200001C8200000182000067860000838600005886000004DC00007784000007840000808C000044D500007486000045D5000046D5000047D5000048D5000049D500004AD500004BD500004CD500001C8F00001E8F00001F8F0000208F0000218F0000118F000000DC000001DC000002DC000003DC0000A4860000A38600005486000059860000 + 5800578600001C0000000286000013000000048400007E00000013860000310000002CE10000750000001581000057000000108600002F000000768600003B000000D9860000100000000D860000190000002392000000000000318400008500000007E100006D000000848600003C0000000A8600002D0000005F860000660000000F81000055000000208100005D00000004E100006B00000023E100006F000000078600002A0000000C810000520000000D8000004900000001E10000680000001982000047000000048600002700000006840000800000004A8100007900000016820000450000009A8600001A0000000186000012000000038400007D000000178100005900000056860000350000002BE1000074000000008400007A0000001481000056000000D88600000F0000000C860000180000000E840000820000003084000084000000008100004B000000098600002C00000025E10000710000002F820000480000001A860000340000000E810000540000001F8100005C00000003E100006A0000005E860000370000000B8100005100000022E100006E0000008E8600003D000000068600002900000000E10000670000001882000046000000698600003A0000000386000014000000058400007F000000D18400002000000041E10000770000001486000032000000498100007800000055860000080000000086000011000000028400007C00000016810000580000001186000030000000DA860000060000000E8600001B0000003284000086000000108400008300000046810000640000000B8600002E000000518400008800000005E100006C0000006086000039000000088600002B0000000D81000053000000A18600003E000000C3860000040000000A8400008100000002E10000690000005D8600003600000016860000330000003787000003000000C08600000E0000000586000028000000 0 @@ -189,7 +189,7 @@ 34053 000000001700000022010000C8000000 - 000000000000000022010000B1000000 + 00000000850200000006000036030000 32768 0 0 @@ -215,7 +215,7 @@ 34054 000000001700000022010000C8000000 - 040000009F020000FC0500001C030000 + 0400000091020000FC0500001C030000 32768 0 0 @@ -223,12 +223,12 @@ 0 - 1 + 0 34064 000000001700000022010000C8000000 - 040000009F020000FC0500001C030000 + 000000008D0200000006000036030000 4096 0 0 @@ -241,7 +241,7 @@ 34070 000000001700000022010000C8000000 - 040000009F020000FC0500001C030000 + 0400000091020000FC0500001C030000 4096 0 0 @@ -254,7 +254,7 @@ 34071 000000001700000022010000C8000000 - 040000009F020000FC0500001C030000 + 0400000091020000FC0500001C030000 4096 0 0 @@ -267,7 +267,7 @@ 34072 000000001700000022010000C8000000 - 040000009F020000FC0500001C030000 + 0400000091020000FC0500001C030000 4096 0 0 @@ -280,7 +280,7 @@ 34092 000000001700000022010000C8000000 - 040000009F020000FC0500001C030000 + 0400000091020000FC0500001C030000 4096 0 0 @@ -293,7 +293,7 @@ 34103 000000001700000022010000C8000000 - 040000009F020000FC0500001C030000 + 0400000091020000FC0500001C030000 4096 0 0 @@ -319,7 +319,7 @@ 34056 00000000170000000601000078010000 - 00000000320000000601000081020000 + 00000000320000000601000075020000 4096 0 0 @@ -438,7 +438,7 @@ 34065 00000000170000000601000078010000 - 24050000320000000006000083020000 + B4040000320000000006000075020000 16384 0 0 @@ -446,7 +446,7 @@ 0 - 1 + 0 34066 @@ -479,7 +479,7 @@ 34068 00000000170000000601000078010000 - F003000032000000F604000081020000 + FA040000320000000006000075020000 16384 0 0 @@ -710,7 +710,7 @@ 34087 00000000170000000601000078010000 - 00000000000000000601000061010000 + 6D040000320000002005000057020000 16384 0 0 @@ -720,11 +720,26 @@ 0 - + + + Access + Name + Value + + + 180 + 180 + 180 + + + CNT + + 63 + 34088 00000000170000000601000078010000 - 00000000000000000601000061010000 + 10030000320000001604000083020000 16384 0 0 @@ -734,7 +749,20 @@ 0 - + + 0 + + Access + Name + Value + + + 180 + 180 + 180 + + + 34089 00000000170000000601000078010000 @@ -766,7 +794,7 @@ 34091 00000000170000000601000078010000 - 00000000000000000601000061010000 + 10030000320000001604000083020000 16384 0 0 @@ -776,7 +804,16 @@ 0 - + + + Format + Group + + + 180 + 180 + + 34093 000000001700000022010000C8000000 @@ -918,7 +955,7 @@ 34104 00000000170000000601000078010000 - 4D040000320000002005000083020000 + 11050000320000000006000075020000 16384 0 0 @@ -930,8 +967,15 @@ - AllPulseCount PulseCount + AllPulseCNT + PulseNum + PulseOutput + Base + Acc + len + Register_L + Register_L @@ -992,7 +1036,7 @@ 34108 00000000170000000601000078010000 - 0000000032000000CE00000083020000 + 00000000320000000901000075020000 4096 0 0 @@ -1003,7 +1047,7 @@ 1 - 0000000060000000000000000010000001000000FFFFFFFFFFFFFFFFCE00000032000000D2000000830200000100000002000010040000000100000093FFFFFF410300003C85000000000000000000000000000000000000010000003C850000010000003C850000000000000040000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000002000000040000000100000000000000000000003B85000000000000000000000000000000000000010000003B850000010000003B850000000000000040000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000002000000040000000100000000000000000000003A85000000000000000000000000000000000000010000003A850000010000003A850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000398500000000000000000000000000000000000001000000398500000100000039850000000000000040000001000000FFFFFFFFFFFFFFFF49040000320000004D0400008302000001000000020000100400000001000000E4FCFFFFAE000000388500000000000000000000000000000000000001000000388500000100000038850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000368500000000000000000000000000000000000001000000368500000100000036850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000358500000000000000000000000000000000000001000000358500000100000035850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000348500000000000000000000000000000000000001000000348500000100000034850000000000000020000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000338500000000000000000000000000000000000001000000338500000100000033850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000328500000000000000000000000000000000000001000000328500000100000032850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000318500000000000000000000000000000000000001000000318500000100000031850000000000000010000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000308500000000000000000000000000000000000001000000308500000100000030850000000000000010000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000002000000040000000100000000000000000000002F85000000000000000000000000000000000000010000002F850000010000002F850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000002E85000000000000000000000000000000000000010000002E850000010000002E850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000002D85000000000000000000000000000000000000010000002D850000010000002D850000000000000040000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000002000000040000000100000000000000000000002B85000000000000000000000000000000000000010000002B850000010000002B850000000000000040000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000002000000040000000100000000000000000000002A85000000000000000000000000000000000000010000002A850000010000002A850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000298500000000000000000000000000000000000001000000298500000100000029850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000288500000000000000000000000000000000000001000000288500000100000028850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000278500000000000000000000000000000000000001000000278500000100000027850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000268500000000000000000000000000000000000001000000268500000100000026850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000258500000000000000000000000000000000000001000000258500000100000025850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000248500000000000000000000000000000000000001000000248500000100000024850000000000000080000000000000FFFFFFFFFFFFFFFF00000000BC01000000060000C0010000000000000100000004000000010000000000000000000000FFFFFFFF0400000020850000218500002285000023850000FFFF02000B004354616262656450616E65008000000000000000000000D7010000000600009802000000000000C00100000006000081020000000000004080004604000000FFFEFF084D0065006D006F007200790020003100000000002085000001000000FFFFFFFFFFFFFFFFFFFEFF084D0065006D006F007200790020003200000000002185000001000000FFFFFFFFFFFFFFFFFFFEFF084D0065006D006F007200790020003300000000002285000001000000FFFFFFFFFFFFFFFFFFFEFF084D0065006D006F007200790020003400000000002385000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFF2085000001000000FFFFFFFF20850000000000000040000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000002000000040000000100000000000000000000001F85000000000000000000000000000000000000010000001F850000010000001F850000000000000040000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000002000000040000000100000000000000000000001E85000000000000000000000000000000000000010000001E850000010000001E850000000000000040000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000002000000040000000100000000000000000000001D85000000000000000000000000000000000000010000001D850000010000001D850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000001C85000000000000000000000000000000000000010000001C850000010000001C850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000001B85000000000000000000000000000000000000010000001B850000010000001B850000000000000020000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000001A85000000000000000000000000000000000000010000001A850000010000001A850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000198500000000000000000000000000000000000001000000198500000100000019850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000158500000000000000000000000000000000000001000000158500000100000015850000000000000040000000000000FFFFFFFFFFFFFFFFEC03000032000000F003000081020000000000000200000004000000010000000000000000000000148500000000000000000000000000000000000001000000148500000100000014850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000138500000000000000000000000000000000000001000000138500000100000013850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000128500000000000000000000000000000000000001000000128500000100000012850000000000000040000001000000FFFFFFFFFFFFFFFF2005000032000000240500008302000001000000020000100400000001000000E1FBFFFFB5000000118500000000000000000000000000000000000001000000118500000100000011850000000000000040000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000002000000040000000100000000000000000000000F85000000000000000000000000000000000000010000000F850000010000000F850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000E85000000000000000000000000000000000000010000000E850000010000000E850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000D85000000000000000000000000000000000000010000000D850000010000000D850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000C85000000000000000000000000000000000000010000000C850000010000000C850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000B85000000000000000000000000000000000000010000000B850000010000000B850000000000000020000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000A85000000000000000000000000000000000000010000000A850000010000000A850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000098500000000000000000000000000000000000001000000098500000100000009850000000000000010000000000000FFFFFFFFFFFFFFFF06010000320000000A01000081020000000000000200000004000000010000000000000000000000088500000000000000000000000000000000000001000000088500000100000008850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000078500000000000000000000000000000000000001000000078500000100000007850000000000000080000001000000FFFFFFFFFFFFFFFF0000000083020000000600008702000001000000010000100400000001000000B6FDFFFF6F000000FFFFFFFF0700000006850000108500001685000017850000188500002C8500003785000001800080000001000000000000009E020000000600004D03000000000000870200000006000036030000000000004080005607000000FFFEFF054200750069006C006400010000000685000001000000FFFFFFFFFFFFFFFFFFFEFF094400650062007500670020004C006F006700010000001085000001000000FFFFFFFFFFFFFFFFFFFEFF0C4400650063006C00610072006100740069006F006E007300000000001685000001000000FFFFFFFFFFFFFFFFFFFEFF0A5200650066006500720065006E00630065007300000000001785000001000000FFFFFFFFFFFFFFFFFFFEFF0D460069006E006400200069006E002000460069006C0065007300000000001885000001000000FFFFFFFFFFFFFFFFFFFEFF1541006D0062006900670075006F0075007300200044006500660069006E006900740069006F006E007300000000002C85000001000000FFFFFFFFFFFFFFFFFFFEFF0B54006F006F006C0020004F0075007400700075007400000000003785000001000000FFFFFFFFFFFFFFFF01000000000000000000000000000000000000000000000001000000FFFFFFFF0685000001000000FFFFFFFF06850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000058500000000000000000000000000000000000001000000058500000100000005850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000048500000000000000000000000000000000000001000000048500000100000004850000000000000000000000000000 + 0000000060000000000000000010000001000000FFFFFFFFFFFFFFFF09010000320000000D010000750200000100000002000010040000000100000074FFFFFF010300003C85000000000000000000000000000000000000010000003C850000010000003C850000000000000040000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000002000000040000000100000000000000000000003B85000000000000000000000000000000000000010000003B850000010000003B850000000000000040000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000002000000040000000100000000000000000000003A85000000000000000000000000000000000000010000003A850000010000003A850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000398500000000000000000000000000000000000001000000398500000100000039850000000000000040000001000000FFFFFFFFFFFFFFFF0D05000032000000110500007502000001000000020000100400000001000000EBFDFFFF26010000388500000000000000000000000000000000000001000000388500000100000038850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000368500000000000000000000000000000000000001000000368500000100000036850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000358500000000000000000000000000000000000001000000358500000100000035850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000348500000000000000000000000000000000000001000000348500000100000034850000000000000020000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000338500000000000000000000000000000000000001000000338500000100000033850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000328500000000000000000000000000000000000001000000328500000100000032850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000318500000000000000000000000000000000000001000000318500000100000031850000000000000010000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000308500000000000000000000000000000000000001000000308500000100000030850000000000000010000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000002000000040000000100000000000000000000002F85000000000000000000000000000000000000010000002F850000010000002F850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000002E85000000000000000000000000000000000000010000002E850000010000002E850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000002D85000000000000000000000000000000000000010000002D850000010000002D850000000000000040000000000000FFFFFFFFFFFFFFFF0C0300003200000010030000830200000000000002000000040000000100000000000000000000002B85000000000000000000000000000000000000010000002B850000010000002B850000000000000040000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000002000000040000000100000000000000000000002A85000000000000000000000000000000000000010000002A850000010000002A850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000298500000000000000000000000000000000000001000000298500000100000029850000000000000040000000000000FFFFFFFFFFFFFFFF0C030000320000001003000083020000000000000200000004000000010000000000000000000000288500000000000000000000000000000000000001000000288500000100000028850000000000000040000000000000FFFFFFFFFFFFFFFF69040000320000006D040000570200000000000002000000040000000100000070FCFFFF9B000000278500000000000000000000000000000000000001000000278500000100000027850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000268500000000000000000000000000000000000001000000268500000100000026850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000258500000000000000000000000000000000000001000000258500000100000025850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000248500000000000000000000000000000000000001000000248500000100000024850000000000000080000000000000FFFFFFFFFFFFFFFF00000000BC01000000060000C0010000000000000100000004000000010000000000000000000000FFFFFFFF0400000020850000218500002285000023850000FFFF02000B004354616262656450616E65008000000000000000000000D7010000000600009802000000000000C00100000006000081020000000000004080004604000000FFFEFF084D0065006D006F007200790020003100000000002085000001000000FFFFFFFFFFFFFFFFFFFEFF084D0065006D006F007200790020003200000000002185000001000000FFFFFFFFFFFFFFFFFFFEFF084D0065006D006F007200790020003300000000002285000001000000FFFFFFFFFFFFFFFFFFFEFF084D0065006D006F007200790020003400000000002385000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFF2085000001000000FFFFFFFF20850000000000000040000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000002000000040000000100000000000000000000001F85000000000000000000000000000000000000010000001F850000010000001F850000000000000040000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000002000000040000000100000000000000000000001E85000000000000000000000000000000000000010000001E850000010000001E850000000000000040000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000002000000040000000100000000000000000000001D85000000000000000000000000000000000000010000001D850000010000001D850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000001C85000000000000000000000000000000000000010000001C850000010000001C850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000001B85000000000000000000000000000000000000010000001B850000010000001B850000000000000020000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000001A85000000000000000000000000000000000000010000001A850000010000001A850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000198500000000000000000000000000000000000001000000198500000100000019850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000158500000000000000000000000000000000000001000000158500000100000015850000000000000040000000000000FFFFFFFFFFFFFFFFF604000032000000FA04000075020000000000000200000004000000010000000000000000000000148500000000000000000000000000000000000001000000148500000100000014850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000138500000000000000000000000000000000000001000000138500000100000013850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000128500000000000000000000000000000000000001000000128500000100000012850000000000000040000000000000FFFFFFFFFFFFFFFFB004000032000000B404000075020000000000000200000004000000010000002FFCFFFFC8000000118500000000000000000000000000000000000001000000118500000100000011850000000000000040000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000002000000040000000100000000000000000000000F85000000000000000000000000000000000000010000000F850000010000000F850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000E85000000000000000000000000000000000000010000000E850000010000000E850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000D85000000000000000000000000000000000000010000000D850000010000000D850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000C85000000000000000000000000000000000000010000000C850000010000000C850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000B85000000000000000000000000000000000000010000000B850000010000000B850000000000000020000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000A85000000000000000000000000000000000000010000000A850000010000000A850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000098500000000000000000000000000000000000001000000098500000100000009850000000000000010000000000000FFFFFFFFFFFFFFFF06010000320000000A01000075020000000000000200000004000000010000000000000000000000088500000000000000000000000000000000000001000000088500000100000008850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000078500000000000000000000000000000000000001000000078500000100000007850000000000000080000001000000FFFFFFFFFFFFFFFF0000000075020000000600007902000001000000010000100400000001000000E0FDFFFF99000000FFFFFFFF0700000006850000108500001685000017850000188500002C85000037850000018000800000010000000000000090020000000600004D03000000000000790200000006000036030000000000004080005607000000FFFEFF054200750069006C006400000000000685000001000000FFFFFFFFFFFFFFFFFFFEFF094400650062007500670020004C006F006700010000001085000001000000FFFFFFFFFFFFFFFFFFFEFF0C4400650063006C00610072006100740069006F006E007300000000001685000001000000FFFFFFFFFFFFFFFFFFFEFF0A5200650066006500720065006E00630065007300000000001785000001000000FFFFFFFFFFFFFFFFFFFEFF0D460069006E006400200069006E002000460069006C0065007300000000001885000001000000FFFFFFFFFFFFFFFFFFFEFF1541006D0062006900670075006F0075007300200044006500660069006E006900740069006F006E007300000000002C85000001000000FFFFFFFFFFFFFFFFFFFEFF0B54006F006F006C0020004F0075007400700075007400000000003785000001000000FFFFFFFFFFFFFFFF01000000000000000000000000000000000000000000000001000000FFFFFFFF0685000001000000FFFFFFFF06850000000000000080000000000000FFFFFFFFFFFFFFFF00000000810200000006000085020000000000000100000004000000010000000000000000000000058500000000000000000000000000000000000001000000058500000100000005850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000048500000000000000000000000000000000000001000000048500000100000004850000000000000000000000000000 CMSIS-Pack @@ -1012,7 +1056,7 @@ 34048 0A0000000A0000006E0000006E000000 - 2B04000000000000590400001A000000 + F1030000000000001F0400001A000000 8192 0 0 @@ -1024,7 +1068,7 @@ Debug - 00200000010000000800FFFF01001100434D4643546F6F6C426172427574746F6E568600000000040035000000FFFEFF0000000000000000000000000001000000010000000180138600000000040031000000FFFEFF00000000000000000000000000010000000100000001805E8600000000040037000000FFFEFF0000000000000000000000000001000000010000000180608600000000040039000000FFFEFF00000000000000000000000000010000000100000001805D8600000000040036000000FFFEFF000000000000000000000000000100000001000000018010860000000004002F000000FFFEFF0000000000000000000000000001000000010000000180118600000000000030000000FFFEFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E148600000000040032000000FFFEFF205200650073006500740020007400680065002000640065006200750067006700650064002000700072006F006700720061006D000A00520065007300650074000000000000000000000000000100000001000000000000000000000001000000060009802087000000000000FFFFFFFFFFFEFF06530079007300740065006D000100000000000000000000000100000001000000000000000000000001000000000009802387000000000000FFFFFFFFFFFEFF0443006F00720065000100000000000000000000000100000001000000000000000000000001000000000009802487000000000000FFFFFFFFFFFEFF0853006F006600740077006100720065000100000000000000000000000100000001000000000000000000000001000000000009802187000000000000FFFFFFFFFFFEFF12480061007200640077006100720065002000720065007300650074002000700069006E000100000000000000000000000100000001000000000000000000000001000000000009800000000000000400FFFFFFFFFFFEFF000000000000000000000000000100000001000000000000000000000001000000000009801986000000000000FFFFFFFFFFFEFF000100000000000000000000000100000001000000000000000000000001000000000000000000FFFEFF0544006500620075006700C6000000 + 00200000010000000800FFFF01001100434D4643546F6F6C426172427574746F6E568600000000000035000000FFFEFF0000000000000000000000000001000000010000000180138600000000000031000000FFFEFF00000000000000000000000000010000000100000001805E8600000000000037000000FFFEFF0000000000000000000000000001000000010000000180608600000000000039000000FFFEFF00000000000000000000000000010000000100000001805D8600000000000036000000FFFEFF000000000000000000000000000100000001000000018010860000000000002F000000FFFEFF0000000000000000000000000001000000010000000180118600000000040030000000FFFEFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E148600000000000032000000FFFEFF205200650073006500740020007400680065002000640065006200750067006700650064002000700072006F006700720061006D000A00520065007300650074000000000000000000000000000100000001000000000000000000000001000000060009802087000000000000FFFFFFFFFFFEFF06530079007300740065006D000100000000000000000000000100000001000000000000000000000001000000000009802387000000000000FFFFFFFFFFFEFF0443006F00720065000100000000000000000000000100000001000000000000000000000001000000000009802487000000000000FFFFFFFFFFFEFF0853006F006600740077006100720065000100000000000000000000000100000001000000000000000000000001000000000009802187000000000000FFFFFFFFFFFEFF12480061007200640077006100720065002000720065007300650074002000700069006E000100000000000000000000000100000001000000000000000000000001000000000009800000000000000400FFFFFFFFFFFEFF000000000000000000000000000100000001000000000000000000000001000000000009801986000000000000FFFFFFFFFFFEFF000100000000000000000000000100000001000000000000000000000001000000000000000000FFFEFF0544006500620075006700C6000000 34049 @@ -1046,7 +1090,7 @@ 34050 0A0000000A0000006E0000006E000000 - F1030000000000002B0400001A000000 + 1F04000000000000590400001A000000 8192 0 0 @@ -1058,7 +1102,7 @@ Main - 00200000010000002100FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000067000000FFFEFF000000000000000000000000000100000001000000018001E100000000000068000000FFFEFF000000000000000000000000000100000001000000018003E10000000000006A000000FFFEFF000000000000000000000000000100000001000000018000810000000000004B000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018007E10000000000006D000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018023E10000000004006F000000FFFEFF000000000000000000000000000100000001000000018022E10000000004006E000000FFFEFF000000000000000000000000000100000001000000018025E100000000000071000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001802BE100000000000074000000FFFEFF00000000000000000000000000010000000100000001802CE100000000040075000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6E4281000000000000FFFFFFFFFFFEFF0001000000000000000100000000000000010000007800000002002050FFFFFFFFFFFEFF0096000000000000000000018021810000000004005E000000FFFEFF000000000000000000000000000100000001000000018024E100000000000070000000FFFEFF000000000000000000000000000100000001000000018028E100000000040072000000FFFEFF000000000000000000000000000100000001000000018029E100000000000073000000FFFEFF000000000000000000000000000100000001000000018002810000000000004D000000FFFEFF0000000000000000000000000001000000010000000180298100000000000062000000FFFEFF0000000000000000000000000001000000010000000180278100000000000060000000FFFEFF0000000000000000000000000001000000010000000180288100000000000061000000FFFEFF00000000000000000000000000010000000100000001801D810000000000005A000000FFFEFF00000000000000000000000000010000000100000001801E810000000004005B000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800B8100000000000051000000FFFEFF00000000000000000000000000010000000100000001800C8100000000000052000000FFFEFF00000000000000000000000000010000000100000001805F8600000000000066000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001801F810000000000005C000000FFFEFF000000000000000000000000000100000001000000018020810000000000005D000000FFFEFF0000000000000000000000000001000000010000000180468100000000020064000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF044D00610069006E00FF020000 + 00200000010000002100FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000066000000FFFEFF000000000000000000000000000100000001000000018001E100000000000067000000FFFEFF000000000000000000000000000100000001000000018003E100000000000069000000FFFEFF000000000000000000000000000100000001000000018000810000000000004A000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018007E10000000000006C000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018023E10000000004006E000000FFFEFF000000000000000000000000000100000001000000018022E10000000004006D000000FFFEFF000000000000000000000000000100000001000000018025E100000000000070000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001802BE100000000000073000000FFFEFF00000000000000000000000000010000000100000001802CE100000000040074000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6E4281000000000000FFFFFFFFFFFEFF0001000000000000000100000000000000010000007800000002002050FFFFFFFFFFFEFF0096000000000000000000018021810000000004005D000000FFFEFF000000000000000000000000000100000001000000018024E10000000000006F000000FFFEFF000000000000000000000000000100000001000000018028E100000000040071000000FFFEFF000000000000000000000000000100000001000000018029E100000000000072000000FFFEFF000000000000000000000000000100000001000000018002810000000000004C000000FFFEFF0000000000000000000000000001000000010000000180298100000000000061000000FFFEFF000000000000000000000000000100000001000000018027810000000000005F000000FFFEFF0000000000000000000000000001000000010000000180288100000000000060000000FFFEFF00000000000000000000000000010000000100000001801D8100000000040059000000FFFEFF00000000000000000000000000010000000100000001801E810000000004005A000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800B8100000000000050000000FFFEFF00000000000000000000000000010000000100000001800C8100000000000051000000FFFEFF00000000000000000000000000010000000100000001805F8600000000000065000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001801F810000000000005B000000FFFEFF000000000000000000000000000100000001000000018020810000000000005C000000FFFEFF0000000000000000000000000001000000010000000180468100000000020063000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF044D00610069006E00FF020000 34051 diff --git a/EWARM/settings/PLSR.dnx b/EWARM/settings/PLSR.dnx index 715adbc..01a3c8d 100644 --- a/EWARM/settings/PLSR.dnx +++ b/EWARM/settings/PLSR.dnx @@ -20,15 +20,15 @@ _ 0 - 1504644991 + 1004691111 _ 0 _ 0 - 0 1 + 0 0 @@ -56,6 +56,17 @@ 0 $PROJ_DIR$\ITM.log + + TIM2_CNT 10 + + + Pulse-Frequency 3 0 + Pulse-NextPulse 3 0 + Pulse-PulseCount 3 0 + + + {W}1:AllPulseCNT 3 0 + 0 0 @@ -127,11 +138,11 @@ 0 - _ 1 "EMUL_CODE" "{$PROJ_DIR$\..\Core\Src\main.c}.309.13" 0 0 1 "" 0 "" 0 - 1 + 0 - 0 + _ "C:\Users\Chiri\Desktop\PLSR\cmsis\uC-CPU\ARM-Cortex-M4\IAR\cpu_a.asm" "C:\Users\Chiri\Desktop\TrainCamp-Jiangyunsong-PLSR\cmsis\uC-CPU\ARM-Cortex-M4\IAR\cpu_a.asm" + 1 0 diff --git a/EWARM/settings/PLSR.reggroups b/EWARM/settings/PLSR.reggroups new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/EWARM/settings/PLSR.reggroups @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/EWARM/settings/Project.wsdt b/EWARM/settings/Project.wsdt index 73da039..e8948e5 100644 --- a/EWARM/settings/Project.wsdt +++ b/EWARM/settings/Project.wsdt @@ -8,8 +8,8 @@ - 23 - 1480 + 20 + 1491 2 0 @@ -60,7 +60,7 @@ - 182 + 159 30 30 30 @@ -72,6 +72,7 @@ PLSR/Application/User PLSR/Application/User/Core PLSR/Hardware + PLSR/uCOS_CPU @@ -86,11 +87,11 @@ 1 1 1 - 2C01000010001386000002000000108600004A0000005F860000020000000F810000030000000C8100004C000000568600001400000000840000020000000E8100002B0000001F8100001300000000E10000020000000B8100000A000000148600001200000011860000160000000581000001000000468100000D0000005D86000001000000 + 2C0400001B00298100000300000013860000020000002CE100000A00000010860000AE010000239200000400000029E10000050000005F860000020000000F810000020000000C8100004F00000059860000010000000486000001000000568600003B000000288100000200000000840000020000002BE100000700000009860000010000000E8100000E0000001F8100004700000000E10000020000000B81000005000000148600005900000011860000AE0000000581000001000000468100006B00000008860000010000005D860000030000001686000001000000 - 3200FFFFFFFF0D8400000F8400000884000054840000328100001C810000098400000484000053840000068400003C8400003D840000408400004C8400003E8400004B8400004D8400003F8400003A8400003B8400005A8400005B840000D6840000D7840000D8840000D9840000DA840000DB840000DC840000DD840000DE840000DF840000E0840000E1840000E2840000EA8400002481000008800000098000000A8000000B8000000C800000158000000A81000001E800000C840000338400007884000011840000 - 0C00268100002D000000048100001C0000002392000000000000098100001E000000008400004800000030840000520000000E840000500000000B8100001F000000058100001D0000000D8100002100000002E100003700000035E1000044000000 + 0800FFFFFFFF1C8F00001D8F00001F8F0000208F0000218F00002AE10000118F0000 + 03002392000000000000008400004800000022E100003C000000 0 @@ -118,11 +119,25 @@ 0 - + + + Extra + Location + Type + _I0 + + + 500 + 200 + 100 + 35 + + 2 + 4294967295 - 000000009C020000000600004D030000 - 00000000850200000006000036030000 + EB00000076020000000600004D030000 + EB0000005F0200000006000036030000 4096 0 0 @@ -135,7 +150,7 @@ 34052 000000001700000022010000C8000000 - 040000009D020000FC0500001C030000 + EF00000077020000FC0500001C030000 32768 0 0 @@ -158,7 +173,7 @@ 34048 000000001700000022010000C8000000 - 040000009D020000FC0500001C030000 + EF00000077020000FC0500001C030000 4096 0 0 @@ -171,7 +186,7 @@ 34056 000000001700000022010000C8000000 - 040000009D020000FC0500001C030000 + EF00000077020000FC0500001C030000 4096 0 0 @@ -185,7 +200,7 @@ 34057 000000001700000022010000C8000000 - 040000009D020000FC0500001C030000 + EF00000077020000FC0500001C030000 4096 0 0 @@ -199,7 +214,7 @@ 34058 000000001700000022010000C8000000 - 040000009D020000FC0500001C030000 + EF00000077020000FC0500001C030000 4096 0 0 @@ -213,7 +228,7 @@ 34059 000000001700000022010000C8000000 - 040000009D020000FC0500001C030000 + EF00000077020000FC0500001C030000 4096 0 0 @@ -227,7 +242,7 @@ 34062 000000001700000022010000C8000000 - 040000009D020000FC0500001C030000 + EF00000077020000FC0500001C030000 4096 0 0 @@ -310,8 +325,8 @@ 34063 - 5A0200006B01000060030000CC020000 - 0000000032000000FE00000081020000 + 9EFFFFFFBD010000A40000001E030000 + 0000000032000000E700000036030000 4096 0 0 @@ -322,7 +337,7 @@ 1 - 0000000004000000000000000010000001000000FFFFFFFFFFFFFFFFFE000000320000000201000081020000010000000200001004000000010000000000000000000000000000000000000000000000010000000F8500000000000000000000000000000000000000000000010000000F850000010000000F850000000000000080000001000000FFFFFFFFFFFFFFFF00000000810200000006000085020000010000000100001004000000010000000000000000000000FFFFFFFF07000000048500000085000008850000098500000A8500000B8500000E850000FFFF02000B004354616262656450616E650080000001000000000000009C020000000600004D03000000000000850200000006000036030000000000004080005607000000FFFEFF054200750069006C006400010000000485000001000000FFFFFFFFFFFFFFFFFFFEFF094400650062007500670020004C006F006700010000000085000001000000FFFFFFFFFFFFFFFFFFFEFF0C4400650063006C00610072006100740069006F006E007300000000000885000001000000FFFFFFFFFFFFFFFFFFFEFF0A5200650066006500720065006E00630065007300000000000985000001000000FFFFFFFFFFFFFFFFFFFEFF0D460069006E006400200069006E002000460069006C0065007300000000000A85000001000000FFFFFFFFFFFFFFFFFFFEFF1541006D0062006900670075006F0075007300200044006500660069006E006900740069006F006E007300000000000B85000001000000FFFFFFFFFFFFFFFFFFFEFF0B54006F006F006C0020004F0075007400700075007400000000000E85000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFF0485000001000000FFFFFFFF0485000006000000FFFF02001200434D756C746950616E654672616D65576E6400010084000000001700000080020000A8000000000000000000000002000000000000000D85000000000000000000000000000000000000010000000D850000038000010084000000001700000022010000C8000000000000000000000002000000000000000C85000000000000000000000000000000000000010000000C850000038000010084000000001700000022010000C80000000000000000000000020000000000000007850000000000000000000000000000000000000100000007850000038000010084000000001700000022010000C80000000000000000000000020000000000000006850000000000000000000000000000000000000100000006850000038000010084000000001700000080020000A80000000000000000000000020000000000000005850000000000000000000000000000000000000100000005850000038000010084000000001700000022010000C800000000000000000000000200000000000000038500000000000000000000000000000000000001000000038500000000000000000000 + 0000000004000000000000000080000001000000FFFFFFFFFFFFFFFFEB0000005B020000000600005F0200000100000001000010040000000100000044FEFFFFFD000000FFFFFFFF07000000048500000085000008850000098500000A8500000B8500000E850000FFFF02000B004354616262656450616E650080000001000000EB00000076020000000600004D030000EB0000005F0200000006000036030000000000004080005607000000FFFEFF054200750069006C006400010000000485000001000000FFFFFFFFFFFFFFFFFFFEFF094400650062007500670020004C006F006700010000000085000001000000FFFFFFFFFFFFFFFFFFFEFF0C4400650063006C00610072006100740069006F006E007300000000000885000001000000FFFFFFFFFFFFFFFFFFFEFF0A5200650066006500720065006E00630065007300000000000985000001000000FFFFFFFFFFFFFFFFFFFEFF0D460069006E006400200069006E002000460069006C0065007300000000000A85000001000000FFFFFFFFFFFFFFFFFFFEFF1541006D0062006900670075006F0075007300200044006500660069006E006900740069006F006E007300000000000B85000001000000FFFFFFFFFFFFFFFFFFFEFF0B54006F006F006C0020004F0075007400700075007400000000000E85000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFF0485000001000000FFFFFFFF04850000000000000010000001000000FFFFFFFFFFFFFFFFE700000032000000EB00000036030000010000000200001004000000010000009BFFFFFFFB040000000000000000000000000000010000000F8500000000000000000000000000000000000000000000010000000F850000010000000F85000006000000FFFF02001200434D756C746950616E654672616D65576E6400010084000000001700000080020000A8000000000000000000000002000000000000000D85000000000000000000000000000000000000010000000D850000038000010084000000001700000022010000C8000000000000000000000002000000000000000C85000000000000000000000000000000000000010000000C850000038000010084000000001700000022010000C80000000000000000000000020000000000000007850000000000000000000000000000000000000100000007850000038000010084000000001700000022010000C80000000000000000000000020000000000000006850000000000000000000000000000000000000100000006850000038000010084000000001700000080020000A80000000000000000000000020000000000000005850000000000000000000000000000000000000100000005850000038000010084000000001700000022010000C800000000000000000000000200000000000000038500000000000000000000000000000000000001000000038500000000000000000000 CMSIS-Pack @@ -343,7 +358,7 @@ Main - 00200000010000002000FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000035000000FFFEFF000000000000000000000000000100000001000000018001E100000000000036000000FFFEFF000000000000000000000000000100000001000000018003E100000000040038000000FFFEFF0000000000000000000000000001000000010000000180008100000000000019000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018007E10000000004003B000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018023E10000000004003D000000FFFEFF000000000000000000000000000100000001000000018022E10000000004003C000000FFFEFF000000000000000000000000000100000001000000018025E10000000004003F000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001802BE100000000040042000000FFFEFF00000000000000000000000000010000000100000001802CE100000000040043000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6E4281000000000400FFFFFFFFFFFEFF0001000000000000000100000000000000010000007800000002002050FFFFFFFFFFFEFF0096000000000000000000018021810000000004002C000000FFFEFF000000000000000000000000000100000001000000018024E10000000004003E000000FFFEFF000000000000000000000000000100000001000000018028E100000000040040000000FFFEFF000000000000000000000000000100000001000000018029E100000000040041000000FFFEFF000000000000000000000000000100000001000000018002810000000004001B000000FFFEFF0000000000000000000000000001000000010000000180298100000000040030000000FFFEFF000000000000000000000000000100000001000000018027810000000004002E000000FFFEFF000000000000000000000000000100000001000000018028810000000004002F000000FFFEFF00000000000000000000000000010000000100000001801D8100000000000028000000FFFEFF00000000000000000000000000010000000100000001801E8100000000040029000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800B810000000004001F000000FFFEFF00000000000000000000000000010000000100000001800C8100000000000020000000FFFEFF00000000000000000000000000010000000100000001805F8600000000000034000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800E8100000000000022000000FFFEFF00000000000000000000000000010000000100000001800F8100000000000023000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF044D00610069006E00E8020000 + 00200000010000002000FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000035000000FFFEFF000000000000000000000000000100000001000000018001E100000000000036000000FFFEFF000000000000000000000000000100000001000000018003E100000000000038000000FFFEFF0000000000000000000000000001000000010000000180008100000000000019000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018007E10000000000003B000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018023E10000000004003D000000FFFEFF000000000000000000000000000100000001000000018022E10000000004003C000000FFFEFF000000000000000000000000000100000001000000018025E10000000000003F000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001802BE100000000000042000000FFFEFF00000000000000000000000000010000000100000001802CE100000000040043000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6E4281000000000000FFFFFFFFFFFEFF0001000000000000000100000000000000010000007800000002002050FFFFFFFFFFFEFF0096000000000000000000018021810000000004002C000000FFFEFF000000000000000000000000000100000001000000018024E10000000000003E000000FFFEFF000000000000000000000000000100000001000000018028E100000000040040000000FFFEFF000000000000000000000000000100000001000000018029E100000000000041000000FFFEFF000000000000000000000000000100000001000000018002810000000000001B000000FFFEFF0000000000000000000000000001000000010000000180298100000000000030000000FFFEFF000000000000000000000000000100000001000000018027810000000000002E000000FFFEFF000000000000000000000000000100000001000000018028810000000000002F000000FFFEFF00000000000000000000000000010000000100000001801D8100000000000028000000FFFEFF00000000000000000000000000010000000100000001801E8100000000040029000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800B810000000000001F000000FFFEFF00000000000000000000000000010000000100000001800C8100000000000020000000FFFEFF00000000000000000000000000010000000100000001805F8600000000000034000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800E8100000000000022000000FFFEFF00000000000000000000000000010000000100000001800F8100000000000023000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF044D00610069006E00E8020000 34050 @@ -379,7 +394,7 @@ - 0100000003000000010000000000000000000000010000000100000002000000000000000100000001000000000000002800000028000000010000000A0000000000000001000000FFFEFF1B2400570053005F0044004900520024005C002E002E005C0043006F00720065005C005300720063005C006D00610069006E002E00630001000000FFFF010014004966436F6E74656E7453746F72616765496D706CFFFEFF00FFFEFFFF28013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E003100370034003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0032003300350030003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0032003300350030003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF066D00610069006E002E00630000000000FFFFFFFFFFFFFFFFFFFEFF1B2400570053005F0044004900520024005C002E002E005C00480061007200640077006100720065005C0050004C00530052002E006300010000000180FFFEFF00FFFEFFFF24013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E0030003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E003400350034003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E003400350039003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF0650004C00530052002E00630000000000FFFFFFFFFFFFFFFFFFFEFF1B2400570053005F0044004900520024005C002E002E005C00480061007200640077006100720065005C0050004C00530052002E006800010000000180FFFEFF00FFFEFFFF26013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E0030003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0031003100310038003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0031003100310038003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF0650004C00530052002E00680000000000FFFFFFFFFFFFFFFFFFFEFF232400570053005F0044004900520024005C002E002E005C0043006F00720065005C005300720063005C00730074006D003300320066003400780078005F00690074002E006300010000000180FFFEFF00FFFEFFFF21013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E00370036003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0030003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0030003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF0E730074006D003300320066003400780078005F00690074002E00630000000000FFFFFFFFFFFFFFFFFFFEFF2B2400570053005F0044004900520024005C002E002E005C0063006D007300690073005C00750043004F0053002D004900490049005C0053006F0075007200630065005C006F0073005F0063006F00720065002E006300010000000180FFFEFF00FFFEFFFF2A013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E003300390037003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E00310036003300340034003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E00310036003300340034003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF096F0073005F0063006F00720065002E00630000000000FFFFFFFFFFFFFFFFFFFEFF412400570053005F0044004900520024005C002E002E005C0044007200690076006500720073005C00530054004D003300320046003400780078005F00480041004C005F004400720069007600650072005C005300720063005C00730074006D003300320066003400780078005F00680061006C005F006700700069006F002E006300010000000180FFFEFF00FFFEFFFF2A013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E003300390032003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E00310036003200340038003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E00310036003200340038003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF14730074006D003300320066003400780078005F00680061006C005F006700700069006F002E00630000000000FFFFFFFFFFFFFFFFFFFEFF1B2400570053005F0044004900520024005C002E002E005C0043006F00720065005C005300720063005C006700700069006F002E006300010000000180FFFEFF00FFFEFFFF20013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E0036003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0030003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0030003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF066700700069006F002E00630000000000FFFFFFFFFFFFFFFFFFFEFF1A2400570053005F0044004900520024005C002E002E005C0043006F00720065005C005300720063005C00740069006D002E006300010000000180FFFEFF00FFFEFFFF21013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E00360035003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0030003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0030003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF05740069006D002E00630000000000FFFFFFFFFFFFFFFFFFFEFF1D2400570053005F0044004900520024005C002E002E005C00480061007200640077006100720065005C005000530043004100520052002E006300010000000180FFFEFF00FFFEFFFF24013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E0030003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E003100300034003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E003100310030003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF085000530043004100520052002E00630000000000FFFFFFFFFFFFFFFFFFFEFF402400570053005F0044004900520024005C002E002E005C0044007200690076006500720073005C00530054004D003300320046003400780078005F00480041004C005F004400720069007600650072005C005300720063005C00730074006D003300320066003400780078005F00680061006C005F00740069006D002E006300010000000180FFFEFF00FFFEFFFF2D013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E0033003900330033003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E003100330030003800360032003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E003100330030003800360032003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF13730074006D003300320066003400780078005F00680061006C005F00740069006D002E00630000000000FFFFFFFFFFFFFFFF0000000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000010000000200000002010000490000000006000098020000 + 0100000003000000010000000000000000000000010000000100000002000000000000000100000001000000000000002800000028000000010000000C0000000600000001000000FFFEFF1B2400570053005F0044004900520024005C002E002E005C0043006F00720065005C005300720063005C006D00610069006E002E00630001000000FFFF010014004966436F6E74656E7453746F72616765496D706CFFFEFF00FFFEFFFF28013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E003100320033003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0032003700390033003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0032003700390033003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF066D00610069006E002E00630000000000FFFFFFFFFFFFFFFFFFFEFF1A2400570053005F0044004900520024005C002E002E005C0043006F00720065005C005300720063005C00740069006D002E006300010000000180FFFEFF00FFFEFFFF22013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E003100360039003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0030003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0030003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF05740069006D002E00630000000000FFFFFFFFFFFFFFFFFFFEFF1B2400570053005F0044004900520024005C002E002E005C00480061007200640077006100720065005C007300720061006D002E006800010000000180FFFEFF00FFFEFFFF24013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E0030003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E003200310034003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E003200330031003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF067300720061006D002E00680000000000FFFFFFFFFFFFFFFFFFFEFF1C2400570053005F0044004900520024005C002E002E005C0043006F00720065005C005300720063005C00750073006100720074002E006300010000000180FFFEFF00FFFEFFFF21013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E00380032003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0030003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0030003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF07750073006100720074002E00630000000000FFFFFFFFFFFFFFFFFFFEFF1C2400570053005F0044004900520024005C002E002E005C0043006F00720065005C0049006E0063005C00750073006100720074002E006800010000000180FFFEFF00FFFEFFFF26013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E0030003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0031003300310037003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0031003300310037003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF07750073006100720074002E00680000000000FFFFFFFFFFFFFFFFFFFEFF412400570053005F0044004900520024005C002E002E005C0044007200690076006500720073005C00530054004D003300320046003400780078005F00480041004C005F004400720069007600650072005C005300720063005C00730074006D003300320066003400780078005F00680061006C005F006700700069006F002E006300010000000180FFFEFF00FFFEFFFF2A013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E003300390036003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E00310036003300310032003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E00310036003300310032003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF14730074006D003300320066003400780078005F00680061006C005F006700700069006F002E00630000000000FFFFFFFFFFFFFFFFFFFEFF1B2400570053005F0044004900520024005C002E002E005C00480061007200640077006100720065005C0050004C00530052002E006300010000000180FFFEFF00FFFEFFFF28013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E003200300039003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0034003800390039003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0034003800390039003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF0650004C00530052002E00630000000000FFFFFFFFFFFFFFFFFFFEFF1B2400570053005F0044004900520024005C002E002E005C00480061007200640077006100720065005C0050004C00530052002E006800010000000180FFFEFF00FFFEFFFF24013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E0030003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E003300390031003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E003300390031003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF0650004C00530052002E00680000000000FFFFFFFFFFFFFFFFFFFEFF1D2400570053005F0044004900520024005C002E002E005C00480061007200640077006100720065005C006D006F0064006200750073002E006300010000000180FFFEFF00FFFEFFFF25013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E00330030003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E003100310039003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E003100310039003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF086D006F0064006200750073002E00630000000000FFFFFFFFFFFFFFFFFFFEFF1D2400570053005F0044004900520024005C002E002E005C00480061007200640077006100720065005C006D006F0064006200750073002E006800010000000180FFFEFF00FFFEFFFF27013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E00310034003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0031003400330030003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0031003400330030003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF086D006F0064006200750073002E00680000000000FFFFFFFFFFFFFFFFFFFEFF1B2400570053005F0044004900520024005C002E002E005C0043006F00720065005C005300720063005C006700700069006F002E006300010000000180FFFEFF00FFFEFFFF26013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E0035003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0031003700340035003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0031003700350032003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF066700700069006F002E00630000000000FFFFFFFFFFFFFFFFFFFEFF232400570053005F0044004900520024005C002E002E005C0043006F00720065005C005300720063005C00730074006D003300320066003400780078005F00690074002E006300010000000180FFFEFF00FFFEFFFF28013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E003100370039003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0037003600360030003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0037003600360030003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF0E730074006D003300320066003400780078005F00690074002E00630000000000FFFFFFFFFFFFFFFF0000000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000100000002000000EB000000490000000006000072020000 diff --git a/Hardware/PLSR.c b/Hardware/PLSR.c index bdc2634..3c4abfc 100644 --- a/Hardware/PLSR.c +++ b/Hardware/PLSR.c @@ -1,22 +1,33 @@ #include "PLSR.h" #include "PSCARR.h" #include "tim.h" +#include "sram.h" +#include +#include "modbus.h" + +Pulse PulseOutput[10]; // ʮ +Option Options; + + +uint8_t NowPulse; /* ǰڵڼ */ +uint8_t PrePulse; /* ֮ǰڵڼ */ +uint8_t PulseNum; /* һжٶ */ +int32_t MAX_Pulse; /* */ +int32_t AccCount; /* */ +int32_t NowMAXPulse; /* ǰҪﵽ */ -Pulse PulseOutput[10]; -BaseOption Base; int32_t PulseCount = 0; -int32_t AllPulseCount = 0; /** * @brief ƵöӦPSCARR -* @param[in] Channel ͨĿǰֻͨ0 +* @param[in] SentPost ͨĿǰֻͨY0 * @param[in] Ferquency Ƶ * @return */ -void SetFrequency(uint8_t Channel, uint32_t Frequency) +void SetFrequency(uint8_t SentPost, uint32_t Frequency) { Frequency_Change_PSC_And_ARR(Frequency, &psc, &arr); - switch(Channel) + switch(SentPost) { case 0: TIM10->ARR = arr, TIM10->PSC = psc, TIM10->CCR1 = arr / 2; break; } @@ -28,15 +39,15 @@ void SetFrequency(uint8_t Channel, uint32_t Frequency) * @param[in] Pulse ڼ * @param[in] Ferquency Ƶ * @param[in] Count -* @param[in] Direction ķ +* @param[in] EXT EXTź * @param[in] NextPulse һ * @return */ -void SetPulse(uint8_t Pulse, uint32_t Ferquency, int32_t Count, uint8_t Direction, int8_t NextPulse) +void SetPulse(uint8_t Pulse, uint32_t Ferquency, int32_t Count, uint8_t EXT, int8_t NextPulse) { PulseOutput[Pulse].Frequency = Ferquency; PulseOutput[Pulse].PulseCount = Count; - PulseOutput[Pulse].Direction = Direction; + PulseOutput[Pulse].EXT = EXT; PulseOutput[Pulse].NextPulse = NextPulse; } @@ -46,22 +57,18 @@ void SetPulse(uint8_t Pulse, uint32_t Ferquency, int32_t Count, uint8_t Directio * @param[in] PulseMod 1/0 * @return */ -void PulseInit(uint8_t StartPulse, uint8_t PulseMod, int32_t MAX_Pulse) +void PulseBaseInit(uint8_t StartPulse, uint8_t PulseMod, int32_t MAX_Pulse) { - Base.StartPulse = StartPulse; - Base.PulseMod = PulseMod; - Base.NowPulse = StartPulse; - Base.MAX_Pulse = MAX_Pulse; + Options.StartPulse = StartPulse; + Options.RunMod = PulseMod; + NowPulse = StartPulse; + MAX_Pulse = MAX_Pulse; } void PulseStart(void) { -// SetPulse(Base.NowPulse, PulseOutput[Base.NowPulse].Frequency, -// PulseOutput[Base.NowPulse].PulseCount, -// PulseOutput[Base.NowPulse].Direction, -// PulseOutput[Base.NowPulse].NextPulse -// ); - SetFrequency(0, PulseOutput[Base.NowPulse].Frequency); + SetFrequency(Options.DirPost, PulseOutput[NowPulse].Frequency); + TIM2->ARR = PulseOutput[NowPulse].PulseCount; HAL_TIM_PWM_Start_IT(&htim10, TIM_CHANNEL_1); } /** @@ -71,7 +78,162 @@ void PulseStart(void) * @param[in] AccCount Ҫٸɼ * @return ٶ */ -int32_t GetAcc(int32_t Start, int32_t End, int32_t AccCount) +float GetAcc(int32_t Start, int32_t End, int32_t AccCount) +{ + return ((float)End - (float)Start) / (float)AccCount; +} + +/** +* @brief µ(ֻ˳) +* @param[in] Pulse ڼ +* @param[in] Ferquency Ƶ +* @param[in] Count +* @param[in] NextPulse һ +* @return +*/ +void AddPulse(uint8_t Pulse, uint32_t Ferquency, int32_t Count, int8_t NextPulse) +{ + if(Pulse == Options.AllPulse) + { + if(Count > 0) + { + SetPulse(Pulse, Ferquency, Count, 0, NextPulse); + } + else + { + SetPulse(Pulse, Ferquency, -Count, 1, NextPulse); + } + + Options.AllPulse ++; + } + +} + +/** +* @brief ʼ +* @param[in] Pulse ڼ +* @param[in] Ferquency Ƶ +* @param[in] Count +* @param[in] Direction ķ +* @param[in] NextPulse һ +* @return +*/ +void PulseInit(uint8_t Pulse, uint32_t Ferquency, int32_t Count, int8_t NextPulse) +{ + if(Count > 0) + { + SetPulse(Pulse, Ferquency, Count, 0, NextPulse); + } + else + { + SetPulse(Pulse, Ferquency, -Count, 1, NextPulse); + } + Options.AllPulse = 1; +} + +/** +* @brief ý +* @param[in] PulseCount Ҫ趨 +* @return +*/ +void MAXPulseSet(int32_t PulseCount) +{ + if(NowPulse == 0) + { + NowMAXPulse = PulseOutput[NowPulse].PulseCount; + } + else + { + NowMAXPulse += PulseOutput[NowPulse].PulseCount; + } +} + +/** +* @brief һνжϵ +* @return +*/ +void SetNextPulse(void) +{ + MAXPulseSet(PulseOutput[NowPulse].PulseCount); /* Ľ */ + + if(Options.RunMod == 0) /* ģʽ */ + { + TIM2->ARR = PulseOutput[NowPulse].PulseCount; + } + else /* Ǿģʽ */ + { + if(NowMAXPulse >= MAX_Pulse) /* */ + { + TIM2->ARR = - (MAX_Pulse - NowMAXPulse); + } + else + { + TIM2->ARR = PulseOutput[NowPulse].PulseCount; + } + } +} + +/** +* @brief ȡCNTӵĻֵ +* @param[in] NowPulseNUM ǰ +* @return ֵ +*/ +uint32_t GetBase(uint8_t NowPulseNUM) +{ + uint32_t temp = 0; + if(NowPulseNUM == 0) + { + temp = 0; + } + else + { + for(int i = 0; i < NowPulseNUM; i++) + { + temp += PulseOutput[i].PulseCount; + } + } + return temp; +} + +/** +* @brief ݵ籣 +* @return +*/ +void PLSRSramSave(void) +{ + uint32_t temp[80] = {0}; //һ4 * 80 = 320 + + Write_Backup_SRAM(temp, 80); + +} + +/** +* @brief ϵȡ +* @return +*/ +void PLSRSramRead(void) { - return (End - Start) / AccCount; + uint32_t temp[80] = {0}; + Read_Backup_SRAM(temp, 80); + } + +/** +* @brief ӼĴȡò +* @return +*/ +void PLSROptionLoad(void) +{ + Options.SentPost = Register_L[0x1000]; + Options.DirPost = Register_L[0x1001]; + Options.EXT = Register_L[0x1002]; + Options.DirDelay = Register_L[0x1003]; //ܸ + Options.Dir = Register_L[0x1004]; + Options.AccMod = Register_L[0x1005]; + Options.RunMod = Register_L[0x1006]; + Options.AllPulse = Register_L[0x1007]; + Options.StartPulse = Register_L[0x1008]; + Options.InitSpeed = Register_L[0x1009]; //Ҫ޸ġ + Options.AccUpTime = Register_L[0x100B]; + Options.AddDownTime = Register_L[0x100C]; +} \ No newline at end of file diff --git a/Hardware/PLSR.h b/Hardware/PLSR.h index 6437594..58929ad 100644 --- a/Hardware/PLSR.h +++ b/Hardware/PLSR.h @@ -9,32 +9,53 @@ typedef struct { uint32_t Frequency ; ///<< Ƶ int32_t PulseCount; ///<< - int8_t NextPulse; ///<< һǵڼ Ϊ -1 һ - uint8_t Direction; ///<< ķ 0Ϊת 1Ϊת + int8_t NextPulse; ///<< һǵڼ Ϊ0Ĭһ + uint8_t EXT; ///<< EXT } Pulse; typedef struct { - uint8_t StartPulse; ///<< ʼ - uint8_t PulseMod; ///<< ģʽǾģʽ - uint8_t NowPulse; ///<< ǰڵڼ - uint8_t PrePulse; ///<< ֮ǰڵڼ - int32_t MAX_Pulse; ///<< - int32_t AccCount; -} BaseOption; + uint8_t SentPost; ///<<巢Ͷ + uint8_t DirPost; ///<<巽 + uint8_t EXT; ///< B(脉冲完成) +B --> C(中断) +C -->D(脉冲计数) +D --> E[结束] +``` + +```mermaid +flowchart +A[开始] --> |检测到清零指令|B(清零计数) +B --> C[结束] +``` + +## 脉冲加减速流程图 + +```mermaid +flowchart +A[开始] --> B(计算加速度) +B --> C(计算下一个脉冲的频率) +C -->D(设置脉冲的频率) +D --> E(开启脉冲) +E --> F[结束] +``` +## 脉冲方向流程图 + +```mermaid +flowchart +A[开始] --> B{变量是否改变} +B --> |是| C(修改引脚电平) +B --> |否| D[结束] +C --> D +``` + +## 模式选择流程图 + +```mermaid +flowchart +A[开始] --> B{模式判断} +B --> |相对模式| C(启用相对模式函数) +B --> |绝对模式| D(启用绝对模式函数) +C --> E[结束] +D --> E[结束] +``` + diff --git a/Words/设计方案书 .doc b/Words/设计方案书 .doc new file mode 100644 index 0000000000000000000000000000000000000000..5a83dace10cb732bef38c3d30c7ff0ffc94fa105 GIT binary patch literal 150528 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 L(g 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 literal 0 HcmV?d00001 diff --git a/Words/设计方案书.doc b/Words/设计方案书.doc deleted file mode 100644 index abe3288f7e8b1d4694c2a73d95257891f0f79d52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35840 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 diff --git a/Words/需求规格书.doc b/Words/需求规格书.doc index 52e8a0283c592ae811f0d7a1a0a9d4350cddf700..de0481bb694dea268d0def26e2e4985a7f351084 100644 GIT binary patch literal 43520 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 diff --git a/pictures/流程图/图1脉冲计数设计流程图.png b/pictures/流程图/图1脉冲计数设计流程图.png new file mode 100644 index 0000000000000000000000000000000000000000..6eab135566085947defc9c7e9b89ab7a601da0ca GIT binary patch literal 11119 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 literal 0 HcmV?d00001 diff --git a/pictures/流程图/图2脉冲加速流程图.png b/pictures/流程图/图2脉冲加速流程图.png new file mode 100644 index 0000000000000000000000000000000000000000..35d3b2c4ebe847e820b3cd79273d0cc6d7d4cd58 GIT binary patch literal 21887 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