diff --git a/PLSR/PLSR/Core/Inc/tim.h b/PLSR/PLSR/Core/Inc/tim.h index d8b6d27..c1f0112 100644 --- a/PLSR/PLSR/Core/Inc/tim.h +++ b/PLSR/PLSR/Core/Inc/tim.h @@ -144,7 +144,7 @@ typedef struct { PLSR_WaitCondition_t wait_condition; // 等待条件 } PLSR_SectionConfig_t; -// PLSR路径控制结构体 +// PLSR路径控制结构体 - 添加三部分状态管理 typedef struct { PLSR_RouteState_t route_state; // 路径状态 uint8_t current_section_num; // 当前段号 @@ -161,10 +161,26 @@ typedef struct { PLSR_AccelConfig_t accel_config; // 加减速配置 // 运行状态参数 - PLSR_RunState_t run_state; // 运行状态 - uint32_t accel_pulse_count; // 加速脉冲数 - uint32_t decel_pulse_count; // 减速脉冲数 - uint32_t const_pulse_count; // 匀速脉冲计数 + PLSR_RunState_t run_state; // 当前运行状态 + + // 三部分脉冲计数(重新定义用途) + uint32_t accel_pulse_count; // 第一部分脉冲数(可能是加速、减速或匀速) + uint32_t const_pulse_count; // 第二部分脉冲数(匀速) + uint32_t decel_pulse_count; // 第三部分脉冲数(减速到0) + + // 新增:三部分状态标识 + PLSR_RunState_t part1_state; // 第一部分状态(ACCEL/DECEL/CONST) + PLSR_RunState_t part2_state; // 第二部分状态(通常是CONST) + PLSR_RunState_t part3_state; // 第三部分状态(通常是DECEL) + + // 新增:三部分目标频率 + uint32_t part1_target_freq; // 第一部分目标频率 + uint32_t part2_target_freq; // 第二部分目标频率(匀速频率) + uint32_t part3_target_freq; // 第三部分目标频率(通常是0) + + // 新增:当前执行部分 + uint8_t current_part; // 当前执行部分:1-第一部分,2-第二部分,3-第三部分 + uint32_t freq_step; // 频率步长 uint32_t wait_start_tick; // 等待开始时间 uint32_t act_start_tick; // ACT开始时间 @@ -174,7 +190,7 @@ typedef struct { uint16_t start_section; //<起始段数 uint32_t default_freq; //<脉冲默认速度 - // 新增:默认加减速参数 + // 默认加减速参数 uint32_t default_accel_time_ms; // 默认加速时间(ms) uint32_t default_decel_time_ms; // 默认减速时间(ms) uint32_t accel_rate; // 加速度(Hz/ms) = default_freq / default_accel_time_ms @@ -183,6 +199,14 @@ typedef struct { PLSR_SectionConfig_t section[PLSR_MAX_SECTIONS]; // 段配置数组 } PLSR_RouteConfig_t; +// 三部分执行状态枚举 +typedef enum { + PLSR_PART_1 = 1, // 执行第一部分 + PLSR_PART_2 = 2, // 执行第二部分 + PLSR_PART_3 = 3, // 执行第三部分 + PLSR_PART_COMPLETE = 4 // 三部分全部完成 +} PLSR_PartState_t; + // 默认参数定义 #define PLSR_DEFAULT_STEP_FREQ_US 1000 // 默认TIM6更新频率1000微秒(1ms) #define PLSR_DEFAULT_ACCEL_TIME_MS 100 // 默认加速时间100ms @@ -212,6 +236,7 @@ uint8_t PLSR_Section_CheckWaitCondition(PLSR_RouteConfig_t* route); //<检查等 void PLSR_Section_StartNewSection(PLSR_RouteConfig_t* route); //<启动新段,段更新后调用 void Calculate_PluseNum(PLSR_RouteConfig_t *route); //<计算段脉冲数,根据加减速率和目标频率计算每段的加速、匀速、减速脉冲数 void Calculate_PluseNum_Simplified(PLSR_RouteConfig_t *route); //<简化的脉冲数计算,用于快速计算每段的脉冲数,不考虑加减速 +void PLSR_SetupThreePartExecution(PLSR_RouteConfig_t* route); //<设置三部分执行状态和目标频率 // ==================== PLSR加减速算法函数 ==================== void PLSR_Accel_Process(PLSR_RouteConfig_t* route); //<加减速执行函数(新的直线加减速) diff --git a/PLSR/PLSR/Core/Src/tim.c b/PLSR/PLSR/Core/Src/tim.c index fe8469e..f6fe597 100644 --- a/PLSR/PLSR/Core/Src/tim.c +++ b/PLSR/PLSR/Core/Src/tim.c @@ -1231,13 +1231,12 @@ void Calculate_PluseNum_Simplified(PLSR_RouteConfig_t *route) } void Calculate_PluseNum(PLSR_RouteConfig_t *route) { - uint32_t accel_pulse_num = 0; // 加速过程脉冲数 - uint32_t decel_pulse_num = 0; // 减速过程脉冲数 - uint32_t total_pulse_num = 0; // 加减速总脉冲数 - uint32_t const_pulse_num = 0; // 匀速过程脉冲数 - uint32_t accel_time = 0; // 加速时间(ms) - uint32_t decel_time = 0; // 减速时间(ms) - uint32_t actual_target_freq = 0; // 实际能达到的目标频率 + uint32_t part1_pulse_num = 0; // 第一部分脉冲数 + uint32_t part2_pulse_num = 0; // 第二部分脉冲数 + uint32_t part3_pulse_num = 0; // 第三部分脉冲数 + uint32_t part1_time = 0; // 第一部分时间(ms) + uint32_t part2_time = 0; // 第二部分时间(ms) + uint32_t part3_time = 0; // 第三部分时间(ms) // 参数有效性检查 if (route == NULL || route->current_section_num == 0) return; @@ -1253,6 +1252,7 @@ void Calculate_PluseNum(PLSR_RouteConfig_t *route) { uint32_t v0 = route->current_freq; // 起始频率 uint32_t vt = current_section->target_freq; // 期望目标频率 + uint32_t vf = 0; // 最终频率(必须为0) uint32_t a = route->accel_rate; // 加速度 uint32_t d = route->decel_rate; // 减速度 uint32_t total_pulses = current_section->target_pulse; // 总脉冲数 @@ -1261,206 +1261,235 @@ void Calculate_PluseNum(PLSR_RouteConfig_t *route) if (a == 0) a = 1; if (d == 0) d = 1; - // 情况1:检查是否只需要减速 - if (vt <= v0) - { - // 只需要减速或保持当前速度 - if (vt == v0) - { - // 保持当前速度 - route->run_state = PLSR_STATE_CONST; - accel_pulse_num = 0; - const_pulse_num = total_pulses; - decel_pulse_num = 0; - } - else - { - // 需要减速 - route->run_state = PLSR_STATE_DECEL; - - // decel_time = (v0 - vt) / d; // 整数除法,结果取整 - decel_time = (v0 - vt) / d; - if (decel_time == 0) decel_time = 1; // 至少1ms - - // decel_pulse_num = (v0 + vt) * decel_time / 2000 - // 使用64位避免中间计算溢出 - uint64_t temp_calc = (uint64_t)(v0 + vt) * decel_time; - decel_pulse_num = (uint32_t)(temp_calc / 2000); - - if (decel_pulse_num <= total_pulses) - { - // 脉冲数足够,剩余为匀速 - accel_pulse_num = 0; - const_pulse_num = total_pulses - decel_pulse_num; - actual_target_freq = vt; - } - else - { - // 脉冲数不够,重新计算实际能减速到的频率 - // vf^2 = v0^2 - total_pulses * 2000 * d - uint64_t v0_squared = (uint64_t)v0 * v0; - uint64_t reduction = (uint64_t)total_pulses * 2000ULL * d; - - if (v0_squared > reduction) - { - uint32_t vf_squared = (uint32_t)(v0_squared - reduction); - actual_target_freq = integer_sqrt(vf_squared); - - if (actual_target_freq < v0 && d > 0) { - decel_time = (v0 - actual_target_freq) / d; - if (decel_time == 0) decel_time = 1; - } - accel_pulse_num = 0; - const_pulse_num = 0; - decel_pulse_num = total_pulses; - } - else - { - // 数学上不可行,设为停止 - actual_target_freq = 0; - decel_time = v0 / d; - accel_pulse_num = 0; - const_pulse_num = 0; - decel_pulse_num = total_pulses; - } - } - } - } - else - { - // 需要加速:从v0加速到vt - // 先检查理想情况下是否可行 - - // accel_time = (vt - v0) / a - accel_time = (vt - v0) / a; - if (accel_time == 0) accel_time = 1; // 至少1ms - - // decel_time = vt / d (假设最终减速到0) - decel_time = vt / d; - if (decel_time == 0) decel_time = 1; // 至少1ms + // 三部分运动规划: + // 第一部分:从v0到vt(加速或减速或保持) + // 第二部分:在vt保持匀速 + // 第三部分:从vt减速到0 + + // 计算第一部分:v0 -> vt + PLSR_RunState_t part1_state = PLSR_STATE_CONST; // 默认匀速 + if (v0 < vt) { + // 需要加速 + part1_state = PLSR_STATE_ACCEL; + part1_time = (vt - v0) / a; + if (part1_time == 0) part1_time = 1; - // accel_pulse_num = (v0 + vt) * accel_time / 2000 - uint64_t temp_accel = (uint64_t)(v0 + vt) * accel_time; - accel_pulse_num = (uint32_t)(temp_accel / 2000); + uint64_t temp_calc = (uint64_t)(v0 + vt) * part1_time; + part1_pulse_num = (uint32_t)(temp_calc / 2000); + } + else if (v0 > vt) { + // 需要减速 + part1_state = PLSR_STATE_DECEL; + part1_time = (v0 - vt) / d; + if (part1_time == 0) part1_time = 1; - // decel_pulse_num = vt * decel_time / 2000 - uint64_t temp_decel = (uint64_t)vt * decel_time; - decel_pulse_num = (uint32_t)(temp_decel / 2000); + uint64_t temp_calc = (uint64_t)(v0 + vt) * part1_time; + part1_pulse_num = (uint32_t)(temp_calc / 2000); + } + else { + // v0 == vt,无需第一部分 + part1_state = PLSR_STATE_CONST; + part1_pulse_num = 0; + part1_time = 0; + } + + // 计算第三部分:vt -> 0(必须减速到0) + PLSR_RunState_t part3_state = PLSR_STATE_DECEL; + if (vt > 0) { + part3_time = vt / d; + if (part3_time == 0) part3_time = 1; - total_pulse_num = accel_pulse_num + decel_pulse_num; + // 从vt减速到0的脉冲数:(vt + 0) * part3_time / 2000 + uint64_t temp_calc = (uint64_t)vt * part3_time; + part3_pulse_num = (uint32_t)(temp_calc / 2000); + } else { + // 目标频率已经是0,无需第三部分 + part3_pulse_num = 0; + part3_time = 0; + } + + // 计算第二部分:匀速部分 + PLSR_RunState_t part2_state = PLSR_STATE_CONST; + uint32_t used_pulses = part1_pulse_num + part3_pulse_num; + + if (used_pulses < total_pulses) { + // 有剩余脉冲用于匀速阶段 + part2_pulse_num = total_pulses - used_pulses; - if (total_pulse_num <= total_pulses) - { - // 脉冲数充足,有匀速过程 - const_pulse_num = total_pulses - total_pulse_num; - actual_target_freq = vt; - route->run_state = PLSR_STATE_ACCEL; + // 计算匀速时间 + if (vt > 0) { + part2_time = (part2_pulse_num * 1000) / vt; } - else - { - // 脉冲数不足,需要求解实际能达到的最大频率 - // 这是最复杂的部分,需要求解二次方程 - // vm^2 * (a + d)/(2000*a*d) = total_pulses + v0^2/(2000*a) - - // 重新整理避免浮点运算: - // vm^2 * (a + d) = (total_pulses * 2000*a*d + v0^2*d) - - uint64_t right_side = (uint64_t)total_pulses * 2000ULL * a * d; - right_side += (uint64_t)v0 * v0 * d; + } + else if (used_pulses > total_pulses) { + // 脉冲数不足,需要调整运动参数 + // 策略:优先保证能减速到0,然后调整第一部分 + + if (part3_pulse_num <= total_pulses) { + // 第三部分可以完成,调整第一部分 + uint32_t remaining_pulses = total_pulses - part3_pulse_num; - uint32_t left_coefficient = a + d; - if (left_coefficient > 0) { - uint64_t vm_squared = right_side / left_coefficient; - - // 检查是否会溢出uint32_t - if (vm_squared <= 0xFFFFFFFFULL) - { - uint32_t vm = integer_sqrt((uint32_t)vm_squared); - actual_target_freq = vm; + if (remaining_pulses > 0) { + if (v0 < vt) { + // 加速情况:计算实际能加速到的频率 + // vm^2 = v0^2 + remaining_pulses * 2000 * a + uint64_t v0_squared = (uint64_t)v0 * v0; + uint64_t addition = (uint64_t)remaining_pulses * 2000ULL * a; + uint64_t vm_squared = v0_squared + addition; - // 确保不超过期望目标频率 - if (actual_target_freq > vt) - { - actual_target_freq = vt; - vm = vt; - } - - // 重新计算各阶段时间和脉冲数 - if (vm > v0) - { - accel_time = (vm - v0) / a; - if (accel_time == 0) accel_time = 1; - - decel_time = vm / d; - if (decel_time == 0) decel_time = 1; + if (vm_squared <= 0xFFFFFFFFULL) { + uint32_t vm = integer_sqrt((uint32_t)vm_squared); + if (vm > vt) vm = vt; // 不超过期望目标频率 - uint64_t temp_accel_calc = (uint64_t)(v0 + vm) * accel_time; - accel_pulse_num = (uint32_t)(temp_accel_calc / 2000); + // 重新计算第一部分和第三部分 + vt = vm; // 更新实际目标频率 + part1_time = (vt - v0) / a; + if (part1_time == 0) part1_time = 1; + part1_pulse_num = remaining_pulses; - uint64_t temp_decel_calc = (uint64_t)vm * decel_time; - decel_pulse_num = (uint32_t)(temp_decel_calc / 2000); + // 重新计算第三部分 + part3_time = vt / d; + if (part3_time == 0) part3_time = 1; + uint64_t temp_calc = (uint64_t)vt * part3_time; + part3_pulse_num = (uint32_t)(temp_calc / 2000); + } + } + else if (v0 > vt) { + // 减速情况:计算实际能减速到的频率 + // vm^2 = v0^2 - remaining_pulses * 2000 * d + uint64_t v0_squared = (uint64_t)v0 * v0; + uint64_t reduction = (uint64_t)remaining_pulses * 2000ULL * d; + + if (v0_squared > reduction) { + uint32_t vm_squared = (uint32_t)(v0_squared - reduction); + uint32_t vm = integer_sqrt(vm_squared); + if (vm < vt) vm = vt; // 不低于期望目标频率 - // 调整脉冲数确保总和正确 - uint32_t calculated_total = accel_pulse_num + decel_pulse_num; - if (calculated_total < total_pulses) - { - // 余数分配给加速阶段 - accel_pulse_num += (total_pulses - calculated_total); - } - else if (calculated_total > total_pulses) - { - // 从减速阶段减去多余的脉冲 - uint32_t excess = calculated_total - total_pulses; - if (decel_pulse_num > excess) - { - decel_pulse_num -= excess; - } - else - { - decel_pulse_num = 0; - accel_pulse_num = total_pulses; - } - } + // 更新实际目标频率 + vt = vm; + part1_time = (v0 - vt) / d; + if (part1_time == 0) part1_time = 1; + part1_pulse_num = remaining_pulses; - const_pulse_num = 0; - route->run_state = PLSR_STATE_ACCEL; + // 重新计算第三部分 + part3_time = vt / d; + if (part3_time == 0) part3_time = 1; + uint64_t temp_calc = (uint64_t)vt * part3_time; + part3_pulse_num = (uint32_t)(temp_calc / 2000); } - else - { - // 实际频率不高于起始频率,直接设为匀速 - actual_target_freq = v0; - accel_pulse_num = 0; - const_pulse_num = total_pulses; - decel_pulse_num = 0; - route->run_state = PLSR_STATE_CONST; - } - } - else - { - // vm_squared太大,溢出了,保持当前频率 - actual_target_freq = v0; - accel_pulse_num = 0; - const_pulse_num = total_pulses; - decel_pulse_num = 0; - route->run_state = PLSR_STATE_CONST; + } + else { + // v0 == vt,直接分配给第一部分作为匀速 + part1_pulse_num = remaining_pulses; + part1_state = PLSR_STATE_CONST; } + } else { + // remaining_pulses == 0,只有第三部分 + part1_pulse_num = 0; } - else - { - // 系数为0,保持当前频率 - actual_target_freq = v0; - accel_pulse_num = 0; - const_pulse_num = total_pulses; - decel_pulse_num = 0; - route->run_state = PLSR_STATE_CONST; + + part2_pulse_num = 0; // 无匀速阶段 + } + else { + // 连第三部分都无法完成,重新规划整个运动 + // 计算在total_pulses内能实现的运动 + + // 简化处理:直接从v0减速,看能减速到什么频率 + // vf^2 = v0^2 - total_pulses * 2000 * d + uint64_t v0_squared = (uint64_t)v0 * v0; + uint64_t reduction = (uint64_t)total_pulses * 2000ULL * d; + + if (v0_squared > reduction) { + uint32_t vf_squared = (uint32_t)(v0_squared - reduction); + uint32_t actual_vf = integer_sqrt(vf_squared); + + // 设置为单一减速阶段 + part1_state = PLSR_STATE_DECEL; + part1_pulse_num = total_pulses; + part1_time = (v0 - actual_vf) / d; + if (part1_time == 0) part1_time = 1; + + vt = actual_vf; // 更新目标频率 + part2_pulse_num = 0; + part3_pulse_num = 0; + } + else { + // 数学上不可行,保持当前频率 + part1_state = PLSR_STATE_CONST; + part1_pulse_num = total_pulses; + part2_pulse_num = 0; + part3_pulse_num = 0; + vt = v0; } } + } + else { + // used_pulses == total_pulses,刚好用完,无匀速阶段 + part2_pulse_num = 0; + } + + // 保存三个部分的状态和脉冲计数到结构体 + // 使用现有的字段来存储三个部分的信息 + + // 第一部分 + if (part1_state == PLSR_STATE_ACCEL) { + route->accel_pulse_count = part1_pulse_num; + } else { + route->accel_pulse_count = (part1_state == PLSR_STATE_DECEL) ? part1_pulse_num : 0; + } + + // 第二部分(匀速) + route->const_pulse_count = part2_pulse_num; + + // 第三部分(减速到0) + route->decel_pulse_count = part3_pulse_num; + + route->part1_state = part1_state; // 保存第一部分状态 + route->part2_state = part2_state; // 保存第二部分状态 + route->part3_state = part3_state; // 保存第三部分状态 + // 设置初始运行状态 + if (part1_pulse_num > 0) { + route->run_state = part1_state; + route->target_freq = vt; + } else if (part2_pulse_num > 0) { + route->run_state = PLSR_STATE_CONST; + route->target_freq = vt; + } else if (part3_pulse_num > 0) { + route->run_state = PLSR_STATE_DECEL; + route->target_freq = 0; + } else { + route->run_state = PLSR_STATE_CONST; + route->target_freq = v0; } - // 保存计算结果 - route->accel_pulse_count = accel_pulse_num; - route->const_pulse_count = const_pulse_num; - route->decel_pulse_count = decel_pulse_num; + } +} +// 新增函数:处理段结束逻辑 +void PLSR_HandleSectionEnd(void) +{ + // 清零所有部分的脉冲计数 + g_plsr_route.accel_pulse_count = 0; + g_plsr_route.const_pulse_count = 0; + g_plsr_route.decel_pulse_count = 0; + + // 重置部分状态 + g_plsr_route.current_part = PLSR_PART_COMPLETE; + + if(g_plsr_route.current_section_num == g_plsr_route.section_num) + { + PLSR_Route_Stop(&g_plsr_route); + } + else + { + // 非最后一段,进入等待状态准备切换到下一段 + g_plsr_route.run_state = PLSR_STATE_WAIT; + + // 重要:确保当前频率已经减为0(符合函数设计要求) + g_plsr_route.current_freq = 0; + + // 设置任务通知标志,通知任务进行段切换处理 + s_task_notification_flag = 1; + PLSR_SectionSwitchSignal(); } } @@ -1469,14 +1498,13 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) // TIM2中断:负责段切换逻辑 if(htim->Instance == TIM2) { - // 立即停止PWM输出,防止多发脉冲 PLSR_PWM_Stop(); // 精确累加当前段已发送的脉冲数 uint32_t current_section_pulses = __HAL_TIM_GetAutoreload(&htim2); AllPluse += current_section_pulses; g_plsr_route.pulse_count = AllPluse; PLSR_UpdateGlobalPulseCount(AllPluse); - /*如果当前段不是最后一段且,等待条件为脉冲发送完成*/ + /*如果当前段不是最后一段且等待条件为脉冲发送完成*/ if(g_plsr_route.current_section_num < g_plsr_route.section_num && g_plsr_route.section[g_plsr_route.current_section_num - 1].wait_condition.wait_type == PLSR_WAIT_PLUSEEND) { @@ -1490,94 +1518,78 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) } else { - if(g_plsr_route.run_state == PLSR_STATE_ACCEL) + // 三部分状态机处理 + switch(g_plsr_route.current_part) { - // 加速阶段完成,清零加速脉冲计数 - g_plsr_route.accel_pulse_count = 0; - - // 判断下一阶段:优先匀速,如果匀速脉冲数为0则直接进入减速 - if(g_plsr_route.const_pulse_count > 0) - { - // 进入匀速阶段 - g_plsr_route.run_state = PLSR_STATE_CONST; - __HAL_TIM_SetAutoreload(&htim2, g_plsr_route.const_pulse_count); - __HAL_TIM_SET_COUNTER(&htim2, 0); - PLSR_PWM_Start(); - } - else if(g_plsr_route.decel_pulse_count > 0) - { - // 无匀速阶段,直接进入减速 - g_plsr_route.run_state = PLSR_STATE_DECEL; - // 设置减速目标频率:如果是最后一段则减速到0,否则减速到下一段的起始频率 - if(g_plsr_route.current_section_num == g_plsr_route.section_num) + case PLSR_PART_1: + + g_plsr_route.accel_pulse_count = 0; // 清零第一部分脉冲计数 + + // 判断下一部分 + if(g_plsr_route.const_pulse_count > 0) { - // 最后一段,减速到0 - g_plsr_route.target_freq = 0; + // 进入第二部分:匀速 + g_plsr_route.current_part = PLSR_PART_2; + g_plsr_route.run_state = g_plsr_route.part2_state; + g_plsr_route.target_freq = g_plsr_route.part2_target_freq; + + __HAL_TIM_SetAutoreload(&htim2, g_plsr_route.const_pulse_count); + __HAL_TIM_SET_COUNTER(&htim2, 0); + PLSR_PWM_Start(); + } + else if(g_plsr_route.decel_pulse_count > 0) + { + // 无匀速阶段,直接进入第三部分:减速 + g_plsr_route.current_part = PLSR_PART_3; + g_plsr_route.run_state = g_plsr_route.part3_state; + g_plsr_route.target_freq = g_plsr_route.part3_target_freq; + + __HAL_TIM_SetAutoreload(&htim2, g_plsr_route.decel_pulse_count); + __HAL_TIM_SET_COUNTER(&htim2, 0); + PLSR_PWM_Start(); } else { - // 不是最后一段,减速到下一段的起始频率(当前频率) - g_plsr_route.target_freq = g_plsr_route.current_freq; + // 第一部分完成且无后续部分,当前段结束 + g_plsr_route.current_part = PLSR_PART_COMPLETE; + PLSR_HandleSectionEnd(); } - __HAL_TIM_SetAutoreload(&htim2, g_plsr_route.decel_pulse_count); - __HAL_TIM_SET_COUNTER(&htim2, 0); - PLSR_PWM_Start(); - } - else - { - // 加速完成且无后续阶段,路径结束 - PLSR_Route_Stop(&g_plsr_route); - return; - } - } - else if(g_plsr_route.run_state == PLSR_STATE_CONST) - { - // 匀速阶段完成,清零匀速脉冲计数 - g_plsr_route.const_pulse_count = 0; - - // 进入减速阶段 - if(g_plsr_route.decel_pulse_count > 0) - { - g_plsr_route.run_state = PLSR_STATE_DECEL; - // 最后一段,减速到0 - g_plsr_route.target_freq = 0; - __HAL_TIM_SetAutoreload(&htim2, g_plsr_route.decel_pulse_count); - __HAL_TIM_SET_COUNTER(&htim2, 0); - PLSR_PWM_Start(); - } - else - { - // 匀速完成且无减速阶段,路径结束 - PLSR_Route_Stop(&g_plsr_route); - return; - } - } - else if(g_plsr_route.run_state == PLSR_STATE_DECEL) - { - if(g_plsr_route.current_section_num == g_plsr_route.section_num) - { - printf("路径完成:全部%lu脉冲发送完毕\n", AllPluse); - // 减速阶段完成,清零减速脉冲计数 - g_plsr_route.decel_pulse_count = 0; - - // 减速完成,路径结束 - PLSR_Route_Stop(&g_plsr_route); - return; - } - else - { - // 减速阶段完成,清零减速脉冲计数 - g_plsr_route.decel_pulse_count = 0; + break; - // 进入等待状态,等待下一段开始 - g_plsr_route.run_state = PLSR_STATE_WAIT; - // TIM2中断只设置等待状态,段切换逻辑移到任务中处理 - // 设置任务通知标志,通知任务进行段切换处理 - s_task_notification_flag = 1; + case PLSR_PART_2: - } + g_plsr_route.const_pulse_count = 0; // 清零第二部分脉冲计数 + + // 进入第三部分:减速 + if(g_plsr_route.decel_pulse_count > 0) + { + g_plsr_route.current_part = PLSR_PART_3; + g_plsr_route.run_state = g_plsr_route.part3_state; + g_plsr_route.target_freq = g_plsr_route.part3_target_freq; + + __HAL_TIM_SetAutoreload(&htim2, g_plsr_route.decel_pulse_count); + __HAL_TIM_SET_COUNTER(&htim2, 0); + PLSR_PWM_Start(); + } + else + { + // 第二部分完成且无减速阶段,当前段结束 + g_plsr_route.current_part = PLSR_PART_COMPLETE; + PLSR_HandleSectionEnd(); + } + break; + + case PLSR_PART_3: + g_plsr_route.current_part = PLSR_PART_COMPLETE; + PLSR_HandleSectionEnd(); + break; + + case PLSR_PART_COMPLETE: + default: + PLSR_HandleSectionEnd(); + break; } - } + } } // TIM6中断:负责加减速过程的频率更新、等待时间计时和实时脉冲计数更新 if(htim->Instance == TIM6) @@ -1739,42 +1751,6 @@ void PLSR_Route_Stop(PLSR_RouteConfig_t* route) } - - -/** - * @brief PLSR段处理主函数 - * @param route: 路径控制结构体指针 - * @retval None - * @note 在TIM6中断中调用,仅处理加减速过程中的频率更新 - * 段切换逻辑已移至TIM2中断处理 - */ -void PLSR_Section_Process(PLSR_RouteConfig_t* route) -{ - // 参数有效性检查 - if (route == NULL) return; // 空指针检查 - if (route->route_state != PLSR_ROUTE_RUNNING) return; // 路径必须处于运行状态 - - // 根据当前运行状态执行相应的处理逻辑 - switch (route->run_state) - { - case PLSR_STATE_ACCEL: - // 加速状态:执行加速算法 - // 根据加速算法(线性/曲线/正弦)逐步提高频率 - PLSR_Accel_Process(route); - break; - - case PLSR_STATE_DECEL: - // 减速状态:执行减速算法 - // 根据减速算法逐步降低频率到目标值 - PLSR_Accel_Process(route); - break; - - default: - // 其他状态不需要在TIM6中处理 - break; - } -} - /** * @brief 开始新段处理 * @param route: 路径控制结构体指针 @@ -1788,91 +1764,96 @@ void PLSR_Section_StartNewSection(PLSR_RouteConfig_t* route) if(current_section->section_num == route->section_num) { + // 最后一段:使用完整的三部分计算(必须减速到0) Calculate_PluseNum(route); + if(route->accel_pulse_count > 0) + { + route->current_part = PLSR_PART_1; + } else if(route->const_pulse_count > 0) + { + route->current_part = PLSR_PART_2; + } else if(route->decel_pulse_count > 0) + { + route->current_part = PLSR_PART_3; + } else + { + route->current_part = PLSR_PART_COMPLETE; + } } - else if(current_section->section_num < route->section_num) //不是最后一段 + else if(current_section->section_num < route->section_num) // 不是最后一段 { // 对于非最后一段,根据等待条件决定脉冲分配策略 if(current_section->wait_condition.wait_type == PLSR_WAIT_PLUSEEND) { - // 脉冲结束等待:只进行加速匀速或减速匀速,不进行完整的三段式分配,更新初始段状态 Calculate_PluseNum_Simplified(route); } else { - // 外部事件等待:进行完整的加速、匀速、减速三段式分配 + // 外部事件等待:进行完整的三部分分配(必须减速到0等待外部事件) Calculate_PluseNum(route); + // 确定第一个有效部分 + if(route->accel_pulse_count > 0) + { + route->current_part = PLSR_PART_1; + } else if(route->const_pulse_count > 0) + { + route->current_part = PLSR_PART_2; + } else if(route->decel_pulse_count > 0) + { + route->current_part = PLSR_PART_3; + } else + { + route->current_part = PLSR_PART_COMPLETE; + } } } // 设置本段的目标频率到路径控制结构体中 route->target_freq = current_section->target_freq; + // 根据段类型和等待条件设置TIM2参数 if(current_section->section_num != route->section_num) { - // 根据等待条件决定运行状态和TIM2设置 - if(current_section->wait_condition.wait_type == PLSR_WAIT_PLUSEEND) - { - // 脉冲发送完成等待:计算当前段需要发送的脉冲数 - uint32_t current_pulse_target; - if (route->mode == PLSR_MODE_RELATIVE) - { - // 相对模式:每段发送指定的脉冲数 - current_pulse_target = current_section->target_pulse; - } - else - { - // 绝对模式:发送到绝对位置所需的脉冲数 - current_pulse_target = current_section->target_pulse - route->prevPulseCount; - } - - // 设置TIM2自动重装值为当前段的目标脉冲数 - if (current_pulse_target > 0 && current_pulse_target <= 0xFFFF) - { - __HAL_TIM_SetAutoreload(&htim2, current_pulse_target); - } - else - { - // 脉冲数无效,设置为1避免除零错误 - __HAL_TIM_SetAutoreload(&htim2, 1); - } - } - else - { - if(route->run_state == PLSR_STATE_ACCEL) - { - // 如果是加速状态,设置TIM2自动重装值为加速脉冲数 - __HAL_TIM_SetAutoreload(&htim2, route->accel_pulse_count); - } - else if(route->run_state == PLSR_STATE_CONST) + // 非最后一段的处理 + if(current_section->wait_condition.wait_type == PLSR_WAIT_PLUSEEND) { - // 如果是匀速状态,设置TIM2自动重装值为匀速脉冲数 - __HAL_TIM_SetAutoreload(&htim2, route->const_pulse_count); + // 脉冲发送完成等待:简单模式,直接发送整段脉冲 + uint32_t current_pulse_target; + if (route->mode == PLSR_MODE_RELATIVE) + { + // 相对模式:每段发送指定的脉冲数 + current_pulse_target = current_section->target_pulse; + } + else + { + // 绝对模式:发送到绝对位置所需的脉冲数 + current_pulse_target = current_section->target_pulse - route->prevPulseCount; + } + + // 设置TIM2自动重装值为当前段的目标脉冲数 + if (current_pulse_target > 0 && current_pulse_target <= 0xFFFF) + { + __HAL_TIM_SetAutoreload(&htim2, current_pulse_target); + } + else + { + // 脉冲数无效,设置为1避免除零错误 + __HAL_TIM_SetAutoreload(&htim2, 1); + } + + // 简化模式不使用三部分状态机 + route->current_part = PLSR_PART_COMPLETE; // 标记为单一处理模式 } - else if(route->run_state == PLSR_STATE_DECEL) + else { - // 如果是减速状态,设置TIM2自动重装值为减速脉冲数 - __HAL_TIM_SetAutoreload(&htim2, route->decel_pulse_count); + // 外部事件等待:使用三部分运动状态机 + PLSR_SetupThreePartExecution(route); } } - } else { - if(route->run_state == PLSR_STATE_ACCEL) - { - // 如果是加速状态,设置TIM2自动重装值为加速脉冲数 - __HAL_TIM_SetAutoreload(&htim2, route->accel_pulse_count); - } - else if(route->run_state == PLSR_STATE_CONST) - { - // 如果是匀速状态,设置TIM2自动重装值为匀速脉冲数 - __HAL_TIM_SetAutoreload(&htim2, route->const_pulse_count); - } - else if(route->run_state == PLSR_STATE_DECEL) - { - // 如果是减速状态,设置TIM2自动重装值为减速脉冲数 - __HAL_TIM_SetAutoreload(&htim2, route->decel_pulse_count); - } + // 最后一段:使用三部分运动状态机 + PLSR_SetupThreePartExecution(route); } // 重置TIM2计数器 @@ -1884,10 +1865,81 @@ void PLSR_Section_StartNewSection(PLSR_RouteConfig_t* route) PLSR_PWM_SetFrequency(route->current_freq); } - //为等待时间计数赋值 + // 为等待时间计数赋值 PLSR_Wait_StartTimer(route); } +/** + * @brief 设置三部分运动执行参数 + * @param route: 路径控制结构体指针 + * @retval None + * @note 根据当前应该执行的部分设置TIM2参数 + */ +void PLSR_SetupThreePartExecution(PLSR_RouteConfig_t* route) +{ + switch(route->current_part) + { + case PLSR_PART_1: + // 第一部分:根据状态设置对应的脉冲数 + if(route->part1_state == PLSR_STATE_ACCEL || + route->part1_state == PLSR_STATE_DECEL || + route->part1_state == PLSR_STATE_CONST) + { + __HAL_TIM_SetAutoreload(&htim2, route->accel_pulse_count); + route->run_state = route->part1_state; + route->target_freq = route->part1_target_freq; + } + else + { + // 第一部分无效,跳到第二部分 + route->current_part = PLSR_PART_2; + PLSR_SetupThreePartExecution(route); // 递归调用设置第二部分 + } + break; + + case PLSR_PART_2: + // 第二部分:匀速 + if(route->const_pulse_count > 0) + { + __HAL_TIM_SetAutoreload(&htim2, route->const_pulse_count); + route->run_state = route->part2_state; // 通常是PLSR_STATE_CONST + route->target_freq = route->part2_target_freq; + } + else + { + // 第二部分无效,跳到第三部分 + route->current_part = PLSR_PART_3; + PLSR_SetupThreePartExecution(route); // 递归调用设置第三部分 + } + break; + + case PLSR_PART_3: + // 第三部分:减速到0 + if(route->decel_pulse_count > 0) + { + __HAL_TIM_SetAutoreload(&htim2, route->decel_pulse_count); + route->run_state = route->part3_state; // 通常是PLSR_STATE_DECEL + route->target_freq = route->part3_target_freq; // 通常是0 + //printf("设置第三部分:减速,脉冲数=%lu,目标频率=%lu\n", + //route->decel_pulse_count, route->part3_target_freq); + } + else + { + // 第三部分无效,标记为完成 + route->current_part = PLSR_PART_COMPLETE; + __HAL_TIM_SetAutoreload(&htim2, 1); // 设置最小值避免错误 + } + break; + + case PLSR_PART_COMPLETE: + default: + // 所有部分完成或无效状态 + __HAL_TIM_SetAutoreload(&htim2, 1); // 设置最小值 + route->run_state = PLSR_STATE_CONST; + break; + } +} + /** * @brief 段切换到下一段 * @param route: 路径控制结构体指针 @@ -1919,54 +1971,6 @@ void PLSR_Section_SwitchNext(PLSR_RouteConfig_t* route) route->current_freq = current_section->target_freq; } - -// ==================== PLSR加减速算法函数实现 ==================== - -// /** -// * @brief 曲线加减速算法 -// * @param progress: 进度值(0.0-1.0) -// * @retval 频率比例(0.0-1.0) -// * @note S型曲线加减速算法,提供平滑的加减速过程 -// */ -// float PLSR_Accel_CalculateCurve(float progress) -// { -// // 曲线加减速算法 (S型曲线) -// // 使用三次函数实现平滑的加减速曲线 - -// if (progress < 0.0f) progress = 0.0f; -// if (progress > 1.0f) progress = 1.0f; - -// // S型曲线: f(x) = 3x² - 2x³ -// // 这个函数在x=0时f(0)=0,在x=1时f(1)=1 -// // 并且具有平滑的一阶和二阶导数 -// return 3.0f * progress * progress - 2.0f * progress * progress * progress; -// } - -// /** -// * @brief 正弦加减速算法 -// * @param progress: 进度值(0.0-1.0) -// * @retval 频率比例(0.0-1.0) -// * @note 基于正弦函数的平滑加减速算法 -// */ -// float PLSR_Accel_CalculateSine(float progress) -// { -// // 进度值边界限制:确保输入值在有效范围内 -// if (progress < 0.0f) progress = 0.0f; // 最小值限制 -// if (progress > 1.0f) progress = 1.0f; // 最大值限制 - -// // 正弦加减速:使用sin(π/2 * x)实现平滑的加减速曲线 -// // 在起始和结束时变化率较小,中间变化率较大 -// return sinf(progress * 3.14159f / 2.0f); -// } - -/** - * @brief 计算加减速步数 - * @param route: 路径控制结构体指针 - * @param time_ms: 加减速时间(毫秒) - * @param is_accel: 1-加速, 0-减速 - * @retval None - * @note 根据时间和频率差计算加减速所需的步数 - */ /** * @brief 加减速处理函数 * @param route: 路径控制结构体指针 @@ -1987,7 +1991,6 @@ void PLSR_Accel_Process(PLSR_RouteConfig_t* route) if (route->run_state == PLSR_STATE_ACCEL && route->current_freq >= route->target_freq) { route->current_freq = route->target_freq; // 限制到目标频率 - route->run_state = PLSR_STATE_CONST; PLSR_PWM_SetFrequency(route->current_freq); return; } @@ -1996,7 +1999,6 @@ void PLSR_Accel_Process(PLSR_RouteConfig_t* route) if (route->run_state == PLSR_STATE_DECEL && route->current_freq <= route->target_freq && route->target_freq > 0) { route->current_freq = route->target_freq; // 限制到目标频率 - route->run_state = PLSR_STATE_CONST; PLSR_PWM_SetFrequency(route->current_freq); return; } @@ -2012,7 +2014,6 @@ void PLSR_Accel_Process(PLSR_RouteConfig_t* route) // 检查是否达到目标频率 if (route->current_freq >= route->target_freq) { route->current_freq = route->target_freq; // 限制到目标频率 - route->run_state = PLSR_STATE_CONST; // 切换到匀速状态 } // 更新PWM频率 PLSR_PWM_SetFrequency(route->current_freq); @@ -2043,19 +2044,20 @@ void PLSR_Accel_Process(PLSR_RouteConfig_t* route) route->current_freq = route->target_freq; // 限制到目标频率 // 如果目标频率为0,说明减速到停止 - if (route->target_freq == 0) { + if (route->target_freq == 0) + { route->run_state = PLSR_STATE_IDLE; // 切换到空闲状态 PLSR_PWM_Stop(); // 停止PWM输出 return; - } else { - route->run_state = PLSR_STATE_CONST; // 切换到匀速状态 - } + } } // 更新PWM频率或停止PWM - if (route->current_freq > 0) { + if (route->current_freq > 0) + { PLSR_PWM_SetFrequency(route->current_freq); - } else { + } else + { // 频率减速到0,停止PWM输出 route->run_state = PLSR_STATE_IDLE; PLSR_PWM_Stop(); @@ -2109,24 +2111,6 @@ void PLSR_Accel_SetDefaultParams(PLSR_RouteConfig_t* route, uint32_t accel_time_ PLSR_Accel_UpdateRates(route); } - -/** - * @brief 匀速状态处理 - * @param route: 路径控制结构体指针 - * @retval None - * @note 处理匀速运行状态 - */ -void PLSR_Section_ProcessConstSpeed(PLSR_RouteConfig_t* route) -{ - if (route == NULL) return; - - //检查段脉冲是否发完,若完成进入等待模式 - if (PLSR_Section_CheckPulseComplete(route)) - { - route->run_state = PLSR_STATE_WAIT; //如果发完进入等待条件 - } -} - /** * @brief 等待状态处理 * @param route: 路径控制结构体指针 diff --git a/PLSR/PLSR/EWARM/test.1.dep b/PLSR/PLSR/EWARM/test.1.dep index 4d3d5b8..a850d5f 100644 --- a/PLSR/PLSR/EWARM/test.1.dep +++ b/PLSR/PLSR/EWARM/test.1.dep @@ -5,1183 +5,485 @@ test.1 - $PROJ_DIR$\..\Core\Src\stm32f4xx_hal_msp.c - $PROJ_DIR$\..\Core\Src\stm32f4xx_hal_timebase_tim.c - $PROJ_DIR$\..\Core\Src\stm32f4xx_it.c + $PROJ_DIR$\startup_stm32f407xx.s $PROJ_DIR$\..\Core\Src\flash_save.c - $PROJ_DIR$\..\Core\Src\main.c - $PROJ_DIR$\..\Core\Src\modbus_log.c $PROJ_DIR$\..\Core\Src\tim.c - $PROJ_DIR$\..\Core\Src\usart.c - $PROJ_DIR$\..\Core\Src\system_stm32f4xx.c - $PROJ_DIR$\..\Core\Src\dma.c - $PROJ_DIR$\..\Core\Src\gpio.c - $PROJ_DIR$\startup_stm32f407xx.s $PROJ_DIR$\..\Core\Src\modbus_crc.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c + $PROJ_DIR$\..\Core\Src\stm32f4xx_it.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_crc.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_exti.c + $PROJ_DIR$\..\Core\Src\gpio.c + $PROJ_DIR$\..\Core\Src\system_stm32f4xx.c $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c + $PROJ_DIR$\..\Core\Src\main.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c + $PROJ_DIR$\..\Core\Src\modbus_log.c + $PROJ_DIR$\..\Core\Src\usart.c + $PROJ_DIR$\..\Core\Src\stm32f4xx_hal_timebase_tim.c $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_crc.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_i2c.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_i2c_ex.c $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_exti.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c + $PROJ_DIR$\..\Core\Src\dma.c + $PROJ_DIR$\..\Core\Src\stm32f4xx_hal_msp.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_sram.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_i2c.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_usart.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_wwdg.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_crc.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_rcc.c + $PROJ_DIR$\..\UCOS\Ports\os_dbg.c + $PROJ_DIR$\..\UCOS\Source\ucos_ii.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_dma.c + $PROJ_DIR$\test.1\Obj\tim.o + $PROJ_DIR$\..\Core\Inc\modbus_crc.h $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_gpio.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_dac.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_spi.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_tim.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c + $PROJ_DIR$\..\UCOS\Config\app_hooks.c $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_i2c.c $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_rng.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_crc.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_dac.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_i2c_ex.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c + $PROJ_DIR$\..\UCOS\Ports\os_cpu_a.asm $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_exti.c + $PROJ_DIR$\..\UCOS\Ports\os_cpu_c.c + $PROJ_DIR$\test.1\Obj\system_stm32f4xx.o + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c + $TOOLKIT_DIR$\inc\c\stdio.h + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_wwdg.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_usart.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc_ex.h $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_pwr.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_dma.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_rcc.c - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c - $TOOLKIT_DIR$\inc\c\math.h - $PROJ_DIR$\..\Drivers\CMSIS\Include\cmsis_compiler.h - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_tim.o - $PROJ_DIR$\test.1\Obj\app_hooks.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_rng.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_crc.xcl + $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_dma.o + $TOOLKIT_DIR$\lib\rt7M_tl.a + $PROJ_DIR$\..\Drivers\CMSIS\Device\ST\STM32F4xx\Include\system_stm32f4xx.h + $TOOLKIT_DIR$\inc\c\DLib_float_setup.h + $PROJ_DIR$\test.1\Obj\modbus_log.o + $PROJ_DIR$\..\Core\Inc\stm32f4xx_hal_conf.h + $TOOLKIT_DIR$\inc\c\DLib_Product.h $PROJ_DIR$\..\Drivers\CMSIS\Include\core_cm4.h - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_dma.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_uart.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_usart.xcl - $PROJ_DIR$\test.1\Obj\os_dbg.xcl - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_timebase_tim.xcl - $TOOLKIT_DIR$\inc\c\ycheck.h - $PROJ_DIR$\test.1\Obj\flash_save.o - $PROJ_DIR$\test.1\List\test.1.map - $PROJ_DIR$\..\UCOS\Source\os_trace.h - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_spi.__cstat.et - $PROJ_DIR$\test.1\Obj\system_stm32f4xx.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_i2c.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_usart.__cstat.et $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio.h - $PROJ_DIR$\test.1\Obj\os_dbg.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_i2c_ex.o - $PROJ_DIR$\test.1\Obj\dma.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_rcc.o - $TOOLKIT_DIR$\inc\c\DLib_Product.h - $PROJ_DIR$\test.1\Exe\test.1.hex - $PROJ_DIR$\test.1\Obj\gpio.xcl - $TOOLKIT_DIR$\inc\c\DLib_float_setup.h - $PROJ_DIR$\test.1\Obj\modbus_log.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_dma.o - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_cortex.__cstat.et - $TOOLKIT_DIR$\inc\c\stdlib.h - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_gpio.o - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_tim.o - $PROJ_DIR$\test.1\Obj\modbus_crc.xcl - $PROJ_DIR$\..\UCOS\Source\os_mutex.c - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_rcc.xcl - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_cortex.o - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_exti.h - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_i2c_ex.xcl - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_tim.xcl - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal.xcl $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_spi.o - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_usart.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_it.__cstat.et - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc_ex.h + $TOOLKIT_DIR$\inc\c\DLib_Product_stdlib.h + $PROJ_DIR$\test.1\Obj\modbus_crc.o + $TOOLKIT_DIR$\inc\c\yvals.h + $PROJ_DIR$\..\UCOS\Source\os_trace.h + $PROJ_DIR$\..\UCOS\Ports\os_cpu.h + $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_rcc.o + $TOOLKIT_DIR$\inc\c\ysizet.h + $PROJ_DIR$\test.1\Exe\test.1.hex + $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_exti.o + $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_crc.o + $TOOLKIT_DIR$\lib\dl7M_tlf.a $PROJ_DIR$\test.1\Obj\os_dbg.o - $TOOLKIT_DIR$\inc\c\ctype.h - $PROJ_DIR$\test.1\Obj\ucos_ii.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_timebase_tim.o - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_pwr.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_msp.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_it.o - $PROJ_DIR$\test.1\Obj\usart.o - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_pwr.xcl - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_dma.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_flash_ramfunc.xcl - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_exti.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_flash_ex.o + $PROJ_DIR$\test.1\Obj\ucos_ii.o + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h $TOOLKIT_DIR$\lib\m7M_tls.a - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_crc.o - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_sram.xcl - $TOOLKIT_DIR$\inc\c\string.h - $PROJ_DIR$\test.1\Obj\usart.xcl - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_gpio.xcl - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_i2c.xcl - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal.o - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_tim.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_flash_ramfunc.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_gpio.__cstat.et - $TOOLKIT_DIR$\lib\shb_l.a - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_uart.o - $PROJ_DIR$\..\Drivers\CMSIS\Include\cmsis_iccarm.h - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_rcc_ex.__cstat.et - $PROJ_DIR$\..\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f407xx.h - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_tim_ex.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_exti.o - $PROJ_DIR$\test.1\Obj\os_cpu_c.xcl - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_cortex.xcl - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_rcc.__cstat.et - $PROJ_DIR$\..\UCOS\Source\os_core.c - $PROJ_DIR$\test.1\Obj\flash_save.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_dac.xcl - $PROJ_DIR$\test.1\Obj\gpio.o - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_dma_ex.xcl + $PROJ_DIR$\test.1\List\test.1.map $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_dma_ex.o - $PROJ_DIR$\..\UCOS\Config\app_cfg.h - $PROJ_DIR$\test.1\Obj\system_stm32f4xx.o - $PROJ_DIR$\test.1\Obj\modbus_crc.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_exti.o - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_msp.o - $PROJ_DIR$\test.1\Obj\system_stm32f4xx.xcl + $PROJ_DIR$\test.1\Obj\os_cpu_a.o + $PROJ_DIR$\test.1\Obj\gpio.o + $PROJ_DIR$\test.1\Obj\os_cpu_c.o $PROJ_DIR$\..\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_exti.xcl - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_i2c.xcl - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_flash_ex.xcl - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_pwr.o - $TOOLKIT_DIR$\inc\c\DLib_Product_string.h - $PROJ_DIR$\..\UCOS\Source\os_task.c - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_pwr_ex.xcl - $PROJ_DIR$\test.1\Obj\main.xcl - $PROJ_DIR$\..\Drivers\CMSIS\Device\ST\STM32F4xx\Include\system_stm32f4xx.h - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_gpio.xcl - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_dma.o - $PROJ_DIR$\test.1\Obj\dma.o - $PROJ_DIR$\test.1\Obj\main.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_i2c.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_tim_ex.xcl - $PROJ_DIR$\test.1\Obj\modbus_log.o - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_uart.xcl - $PROJ_DIR$\..\UCOS\Source\os_q.c - $PROJ_DIR$\test.1\Obj\os_cpu_c.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_pwr_ex.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_usart.xcl - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_flash.o - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_msp.xcl - $TOOLKIT_DIR$\inc\c\stdarg.h - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_sram.o - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_wwdg.o - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_pwr_ex.o - $PROJ_DIR$\stm32f407xx_flash.icf - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_rcc.o - $PROJ_DIR$\test.1\Obj\modbus_crc.o - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_i2c.o - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio_ex.h - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_flash_ramfunc.o - $PROJ_DIR$\test.1\Obj\tim.xcl - $PROJ_DIR$\..\Core\Inc\gpio.h - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_rcc.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_rcc_ex.o - $TOOLKIT_DIR$\lib\dl7M_tlf.a - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ex.h - $PROJ_DIR$\..\UCOS\Source\os_mem.c - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_usart.o - $PROJ_DIR$\test.1\Obj\ucos_ii.o $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ramfunc.h - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_wwdg.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_sram.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_crc.__cstat.et - $TOOLKIT_DIR$\inc\c\DLib_Product_stdlib.h - $PROJ_DIR$\test.1\Obj\stm32f4xx_it.xcl - $PROJ_DIR$\test.1\Obj\modbus_log.xcl - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_rng.xcl - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_dma_ex.__cstat.et - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma.h - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h - $PROJ_DIR$\test.1\Obj\dma.xcl - $PROJ_DIR$\..\Core\Inc\usart.h - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_wwdg.xcl - $PROJ_DIR$\..\UCOS\Source\os.h - $PROJ_DIR$\test.1\Obj\tim.o - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_tim_ex.o - $PROJ_DIR$\..\Core\Inc\tim.h - $PROJ_DIR$\test.1\Exe\test.1.out - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_spi.xcl - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_tim.__cstat.et - $PROJ_DIR$\..\Core\Inc\stm32f4xx_it.h - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_gpio.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_dma.xcl - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_pwr.o - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_flash_ex.__cstat.et - $PROJ_DIR$\..\Core\Inc\modbus_crc.h - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_rcc_ex.xcl - $PROJ_DIR$\..\UCOS\Ports\os_cpu.h + $PROJ_DIR$\test.1\Obj\app_hooks.o $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_gpio.o + $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_tim.o + $TOOLKIT_DIR$\inc\c\math.h + $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_usart.o + $PROJ_DIR$\test.1\Obj\flash_save.o + $TOOLKIT_DIR$\inc\c\stdarg.h + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_def.h + $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_rng.o $PROJ_DIR$\test.1\Obj\startup_stm32f407xx.o - $PROJ_DIR$\..\UCOS\Source\os_sem.c - $PROJ_DIR$\..\Core\Inc\dma.h + $PROJ_DIR$\..\UCOS\Config\app_cfg.h + $PROJ_DIR$\test.1\Exe\test.1.out + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h + $PROJ_DIR$\stm32f407xx_flash.icf + $TOOLKIT_DIR$\lib\shb_l.a + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash.h + $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_pwr.o + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr_ex.h $TOOLKIT_DIR$\inc\c\DLib_Defaults.h + $PROJ_DIR$\test.1\Obj\stm32f4xx_hal.o + $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_i2c.o $PROJ_DIR$\..\Core\Inc\flash_save.h - $PROJ_DIR$\..\Core\Inc\modbus_log.h - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_dac.o - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash.h - $PROJ_DIR$\..\UCOS\Ports\os_dbg.c - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_dac.__cstat.et - $PROJ_DIR$\..\UCOS\Ports\os_cpu_c.c - $PROJ_DIR$\..\UCOS\Source\ucos_ii.c - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_pwr.xcl - $PROJ_DIR$\..\UCOS\Source\os_flag.c - $PROJ_DIR$\test.1\Obj\os_cpu_a.o - $PROJ_DIR$\test.1\Obj\usart.__cstat.et - $PROJ_DIR$\..\UCOS\Source\os_time.c + $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_tim.o + $PROJ_DIR$\..\Drivers\CMSIS\Include\cmsis_compiler.h + $PROJ_DIR$\..\Core\Inc\tim.h + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr.h + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h + $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_timebase_tim.o $PROJ_DIR$\..\Drivers\CMSIS\Include\cmsis_version.h - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_timebase_tim.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_crc.xcl - $TOOLKIT_DIR$\inc\c\iccarm_builtin.h - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_rng.o + $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_tim_ex.o + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma_ex.h + $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_rcc_ex.o + $PROJ_DIR$\..\Core\Inc\usart.h + $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_flash_ex.o + $PROJ_DIR$\..\UCOS\Source\ucos_ii.h + $TOOLKIT_DIR$\inc\c\ctype.h + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma.h + $PROJ_DIR$\test.1\Obj\dma.o $TOOLKIT_DIR$\inc\c\stdint.h - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_tim.c - $PROJ_DIR$\test.1\Obj\app_hooks.o - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_i2c_ex.__cstat.et - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_exti.xcl - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_crc.__cstat.et + $TOOLKIT_DIR$\inc\c\iccarm_builtin.h + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_exti.h + $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_dac.o + $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_pwr.o + $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_flash_ramfunc.o + $PROJ_DIR$\..\UCOS\Config\os_cfg.h + $PROJ_DIR$\..\Core\Inc\modbus_log.h + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio.h + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio_ex.h + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ex.h + $TOOLKIT_DIR$\inc\c\string.h + $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_uart.o + $PROJ_DIR$\..\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f407xx.h $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_usart.o - $PROJ_DIR$\test.1\Obj\tim.__cstat.et - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_spi.c - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_i2c.o - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc.h - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_usart.c - $PROJ_DIR$\..\UCOS\Config\app_hooks.c - $PROJ_DIR$\..\UCOS\Ports\os_cpu_a.asm - $PROJ_DIR$\..\UCOS\Source\os_tmr.c - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_exti.__cstat.et - $PROJ_DIR$\test.1\Obj\main.o - $PROJ_DIR$\..\UCOS\Source\os_mbox.c - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_rcc.xcl - $PROJ_DIR$\test.1\Obj\app_hooks.xcl - $TOOLKIT_DIR$\inc\c\yvals.h - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr_ex.h - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr.h - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_flash.xcl - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal.__cstat.et - $PROJ_DIR$\..\Core\Inc\stm32f4xx_hal_conf.h - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_flash.__cstat.et - $TOOLKIT_DIR$\inc\c\DLib_Config_Full.h - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_cortex.h - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_tim.xcl - $TOOLKIT_DIR$\inc\c\stddef.h - $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_dma.xcl - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_crc.o - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma_ex.h - $PROJ_DIR$\..\Core\Inc\main.h - $TOOLKIT_DIR$\inc\c\stdio.h - $TOOLKIT_DIR$\inc\c\ysizet.h - $PROJ_DIR$\test.1\Obj\flash_save.xcl + $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_sram.o $PROJ_DIR$\..\Drivers\CMSIS\Include\mpu_armv7.h - $PROJ_DIR$\..\UCOS\Config\os_cfg.h - $PROJ_DIR$\..\UCOS\Source\ucos_ii.h - $PROJ_DIR$\test.1\Obj\ucos_ii.xcl - $TOOLKIT_DIR$\lib\rt7M_tl.a - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_def.h - $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_pwr.__cstat.et - $PROJ_DIR$\test.1\Obj\os_cpu_c.o - $PROJ_DIR$\test.1\Obj\gpio.__cstat.et - - - [ROOT_NODE] - - - ILINK - 201 58 - - - - - $PROJ_DIR$\..\Core\Src\stm32f4xx_hal_msp.c - - - ICCARM - 136 - - - BICOMP - 163 - - - __cstat - 97 - - - - - ICCARM - 270 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 - - - - - $PROJ_DIR$\..\Core\Src\stm32f4xx_hal_timebase_tim.c - - - ICCARM - 95 - - - BICOMP - 55 - - - __cstat - 231 - - - - - ICCARM - 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 - - - - - $PROJ_DIR$\..\Core\Src\stm32f4xx_it.c - - - ICCARM - 98 - - - BICOMP - 188 - - - __cstat - 90 - - - - - ICCARM - 270 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 204 276 132 164 271 275 211 59 - - - - - $PROJ_DIR$\..\Core\Src\flash_save.c - - - ICCARM - 57 - - - BICOMP - 273 - - - __cstat - 127 - - - - - ICCARM - 217 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 195 270 271 108 145 93 77 187 164 209 218 - - - - - $PROJ_DIR$\..\Core\Src\main.c - - - ICCARM - 251 - - - BICOMP - 148 - - - __cstat - 153 - - - - - ICCARM - 270 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 175 276 132 164 271 275 211 59 200 195 108 145 93 77 187 209 217 218 44 73 215 - - - - - $PROJ_DIR$\..\Core\Src\modbus_log.c - - - ICCARM - 156 - - - BICOMP - 189 - - - __cstat - 74 - - - - - ICCARM - 218 195 270 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 271 108 145 93 77 187 164 209 217 - - - - - $PROJ_DIR$\..\Core\Src\tim.c - - - ICCARM - 198 - - - BICOMP - 174 - - - __cstat - 242 - - - - - ICCARM - 200 270 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 195 271 108 145 93 77 187 164 209 217 218 44 73 276 132 275 211 59 - - - - - $PROJ_DIR$\..\Core\Src\usart.c - - - ICCARM - 99 - - - BICOMP - 109 - - - __cstat - 228 - - - - - ICCARM - 195 270 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 271 108 145 93 77 187 164 209 217 218 - - - - - $PROJ_DIR$\..\Core\Src\system_stm32f4xx.c - - - ICCARM - 133 - - - BICOMP - 137 - - - __cstat - 61 - - - - - ICCARM - 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 139 260 245 279 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 - - - - - $PROJ_DIR$\..\Core\Src\dma.c - - - ICCARM - 152 - - - BICOMP - 194 - - - __cstat - 68 - - - - - ICCARM - 215 270 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 - - - + $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_wwdg.o + $PROJ_DIR$\test.1\Obj\main.o + $PROJ_DIR$\..\Drivers\CMSIS\Include\cmsis_iccarm.h + $PROJ_DIR$\test.1\Obj\stm32f4xx_it.o + $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_exti.o + $TOOLKIT_DIR$\inc\c\DLib_Config_Full.h + $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_rcc.o + $TOOLKIT_DIR$\inc\c\ycheck.h + $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_i2c.o + $PROJ_DIR$\test.1\Obj\stm32f4xx_ll_crc.o + $TOOLKIT_DIR$\inc\c\DLib_Product_string.h + $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_msp.o + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc.h + $PROJ_DIR$\..\Core\Inc\main.h + $TOOLKIT_DIR$\inc\c\stddef.h + $PROJ_DIR$\test.1\Obj\usart.o + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_cortex.h + $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_cortex.o + $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_pwr_ex.o + $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_gpio.o + $TOOLKIT_DIR$\inc\c\stdlib.h + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h + $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_flash.o + $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_dma.o + $PROJ_DIR$\test.1\Obj\stm32f4xx_hal_i2c_ex.o + - $PROJ_DIR$\..\Core\Src\gpio.c + [ROOT_NODE] - ICCARM - 129 - - - BICOMP - 72 - - - __cstat - 282 + ILINK + 100 82 - - - ICCARM - 175 270 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 - - $PROJ_DIR$\startup_stm32f407xx.s AARM - 213 - - - - - $PROJ_DIR$\..\Core\Src\modbus_crc.c - - - ICCARM - 170 - - - BICOMP - 80 - - - __cstat - 134 + 98 - - - ICCARM - 209 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 139 260 245 279 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 - - - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c + $PROJ_DIR$\..\Core\Src\flash_save.c ICCARM - 167 - - - BICOMP - 147 - - - __cstat - 160 + 94 - - - ICCARM - 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 - - - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c + $PROJ_DIR$\..\Core\Src\tim.c ICCARM - 104 - - - BICOMP - 142 - - - __cstat - 208 + 34 ICCARM - 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 + 113 157 101 62 156 96 87 140 64 127 151 69 107 149 63 117 112 146 128 143 59 65 158 73 55 135 136 129 125 119 160 104 137 88 114 106 165 80 115 121 52 138 154 124 164 67 95 35 110 134 92 60 123 99 133 71 70 - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c + $PROJ_DIR$\..\Core\Src\modbus_crc.c ICCARM - 112 - - - BICOMP - 87 - - - __cstat - 259 + 68 - - - ICCARM - 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 - - - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c + $PROJ_DIR$\..\Core\Src\stm32f4xx_it.c ICCARM - 75 - - - BICOMP - 267 - - - __cstat - 101 + 147 - - - ICCARM - 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 - - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_crc.c ICCARM - 106 - - - BICOMP - 49 - - - __cstat - 186 + 76 - - - ICCARM - 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 - - - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_exti.c ICCARM - 78 - - - BICOMP - 110 - - - __cstat - 115 + 148 - - - ICCARM - 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 - - - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c + $PROJ_DIR$\..\Core\Src\gpio.c ICCARM - 144 - - - BICOMP - 100 - - - __cstat - 96 + 85 - - - ICCARM - 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 - - - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c + $PROJ_DIR$\..\Core\Src\system_stm32f4xx.c ICCARM - 177 - - - BICOMP - 210 - - - __cstat - 119 + 50 - - - ICCARM - 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 - - - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_exti.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c ICCARM - 135 - - - BICOMP - 140 - - - __cstat - 250 + 122 - - - ICCARM - 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 - - - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_sram.c + $PROJ_DIR$\..\Core\Src\main.c ICCARM - 165 - - - BICOMP - 107 - - - __cstat - 185 + 145 - - - ICCARM - 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 - - - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c ICCARM - 83 - - - BICOMP - 124 - - - __cstat - 76 + 132 - - - ICCARM - 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 - - - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_i2c.c + $PROJ_DIR$\..\Core\Src\modbus_log.c ICCARM - 244 - - - BICOMP - 141 - - - __cstat - 62 + 61 - - - ICCARM - 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 - - - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c + $PROJ_DIR$\..\Core\Src\usart.c ICCARM - 69 - - - BICOMP - 82 - - - __cstat - 125 + 159 - - - ICCARM - 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 - - - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c + $PROJ_DIR$\..\Core\Src\stm32f4xx_hal_timebase_tim.c ICCARM - 199 - - - BICOMP - 155 - - - __cstat - 121 + 116 - - - ICCARM - 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 - - - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c ICCARM - 131 - - - BICOMP - 130 - - - __cstat - 191 + 108 - - - ICCARM - 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 - - - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_usart.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c ICCARM - 241 - - - BICOMP 161 - - __cstat - 89 - - - - ICCARM - 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 - - - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c - - - ICCARM - 46 - - - BICOMP - 265 - - - __cstat - 203 - - - + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c + ICCARM - 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 + 83 - + - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_wwdg.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c ICCARM 166 - - BICOMP - 196 - - - __cstat - 184 - - + + + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c + ICCARM - 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 + 163 - + - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_gpio.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_i2c.c ICCARM - 212 - - - BICOMP - 150 - - - __cstat - 205 + 152 - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_i2c.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_i2c_ex.c ICCARM - 171 - - - BICOMP - 111 - - - __cstat - 154 + 168 - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_rng.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c ICCARM - 234 - - - BICOMP - 190 - - - __cstat - 48 + 131 - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_crc.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c ICCARM - 268 - - - BICOMP - 232 - - - __cstat - 240 + 162 - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_dac.c + $PROJ_DIR$\..\Core\Src\dma.c ICCARM - 219 - - - BICOMP - 128 - - - __cstat - 222 + 126 - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_i2c_ex.c + $PROJ_DIR$\..\Core\Src\stm32f4xx_hal_msp.c ICCARM - 67 - - - BICOMP - 85 - - - __cstat - 238 + 155 - + + + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c + ICCARM - 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 + 167 - + - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_sram.c ICCARM - 173 - - - BICOMP - 102 - - - __cstat - 114 + 142 - + + + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_usart.c + ICCARM - 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 + 141 - + - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_crc.c ICCARM - 117 - - - BICOMP - 157 - - - __cstat - 52 + 153 - + + + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_rcc.c + ICCARM - 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 + 72 - + - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_exti.c + $PROJ_DIR$\..\UCOS\Ports\os_dbg.c ICCARM - 122 - - - BICOMP - 239 - - - __cstat - 103 + 78 - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_pwr.c + $PROJ_DIR$\..\UCOS\Source\ucos_ii.c ICCARM - 207 - - - BICOMP - 225 - - - __cstat - 280 + 79 @@ -1190,177 +492,151 @@ ICCARM - 151 - - - BICOMP - 206 - - - __cstat - 51 + 57 - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_rcc.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_gpio.c ICCARM - 169 - - - BICOMP - 253 - - - __cstat - 176 + 90 - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c ICCARM - 162 - - - BICOMP - 258 - - - __cstat - 262 + 120 - + + + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c + ICCARM - 139 260 245 279 138 120 50 235 56 255 216 263 70 230 45 118 233 274 149 64 266 272 91 65 172 84 192 269 264 220 179 183 257 256 261 193 143 + 118 - + - $PROJ_DIR$\test.1\Exe\test.1.out + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c - OBJCOPY - 71 - - - ILINK - 58 + ICCARM + 150 - - - ILINK - 168 237 152 57 129 251 170 156 227 281 92 213 112 83 106 75 131 135 162 104 173 78 244 67 136 144 167 69 177 165 46 199 95 117 241 166 98 268 219 151 122 212 171 207 169 234 88 79 181 133 198 182 99 116 278 105 178 - - - $PROJ_DIR$\..\UCOS\Ports\os_dbg.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_dac.c ICCARM - 92 - - - BICOMP - 54 + 130 + + + + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_spi.c + - __cstat + ICCARM 66 - + + + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_tim.c + ICCARM - 276 132 164 271 56 255 216 263 70 272 275 211 59 + 91 - + - $PROJ_DIR$\..\UCOS\Ports\os_cpu_c.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c ICCARM - 281 - - - BICOMP - 123 - - - __cstat - 159 + 111 - + + + $PROJ_DIR$\..\UCOS\Config\app_hooks.c + ICCARM - 276 132 164 271 56 255 216 263 70 272 275 211 59 + 89 - + - $PROJ_DIR$\..\UCOS\Source\ucos_ii.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_i2c.c ICCARM - 182 + 109 + + + + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_rng.c + - BICOMP - 277 + ICCARM + 97 + + + + $PROJ_DIR$\..\UCOS\Ports\os_cpu_a.asm + - __cstat - 94 + AARM + 84 - + + + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_exti.c + ICCARM - 276 132 164 271 56 255 216 263 70 272 275 211 59 126 226 252 180 81 158 214 146 229 249 + 75 - + - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_tim.c + $PROJ_DIR$\..\UCOS\Ports\os_cpu_c.c ICCARM - 79 - - - BICOMP 86 - - __cstat - 113 - - $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_spi.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c ICCARM - 88 - - - BICOMP - 202 + 139 + + + + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_wwdg.c + - __cstat - 60 + ICCARM + 144 @@ -1369,49 +645,37 @@ ICCARM - 181 - - - BICOMP - 53 - - - __cstat - 63 + 93 - $PROJ_DIR$\..\UCOS\Config\app_hooks.c + $PROJ_DIR$\..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_pwr.c ICCARM - 237 + 105 + + + + $PROJ_DIR$\test.1\Exe\test.1.out + - BICOMP - 254 + ILINK + 82 - __cstat - 47 + OBJCOPY + 74 - ICCARM - 197 276 132 164 271 56 255 216 263 70 272 275 211 59 + ILINK + 102 89 126 94 85 145 68 61 84 86 78 98 108 161 76 167 83 148 166 122 132 163 152 168 155 131 162 150 120 142 111 118 116 139 141 144 147 153 130 57 75 90 109 105 72 97 66 91 93 50 34 79 159 103 58 81 77 - - $PROJ_DIR$\..\UCOS\Ports\os_cpu_a.asm - - - AARM - 227 - - - diff --git a/PLSR/PLSR/EWARM/test.1/Exe/test.1.sim b/PLSR/PLSR/EWARM/test.1/Exe/test.1.sim index 92b22af..bed4257 100644 Binary files a/PLSR/PLSR/EWARM/test.1/Exe/test.1.sim and b/PLSR/PLSR/EWARM/test.1/Exe/test.1.sim differ