Прога ужата до 20 кб флеш: удален HAL_TIM и HAL_GPIO

удалена ненужна по сути MyLibs библиотека
This commit is contained in:
2025-03-06 12:44:55 +03:00
parent fad121a9fd
commit dbc9388f67
20 changed files with 484 additions and 1166 deletions

View File

@@ -1,13 +1,6 @@
#include "crc_algs.h"
uint32_t CRC_calc;
uint32_t CRC_ref;
//uint16_t CRC_calc;
//uint16_t CRC_ref;
/*Table of CRC values for high order byte*/
const unsigned char auchCRCHi[]=

View File

@@ -1,4 +1,4 @@
#include "mylibs_include.h"
#include "main.h"
// extern here to use in bootloader.c
extern uint32_t CRC_calc;

View File

@@ -88,7 +88,7 @@ UART_SettingsTypeDef modbus1_suart;
TIM_SettingsTypeDef modbus1_stim;
#else
extern UART_HandleTypeDef rs_huart;
extern TIM_HandleTypeDef rs_htim;
//extern TIM_HandleTypeDef rs_htim;
#endif
RS_HandleTypeDef hmodbus1;
@@ -136,7 +136,7 @@ void MODBUS_FirstInit(void)
#ifdef INCLUDE_GENERAL_PERIPH_LIBS
hmodbus1.RS_STATUS = RS_Init(&hmodbus1, &modbus1_suart, &modbus1_stim, 0);
#else
hmodbus1.RS_STATUS = RS_Init(&hmodbus1, &rs_huart, &rs_htim, 0);
hmodbus1.RS_STATUS = RS_Init(&hmodbus1, &rs_huart, NULL, 0);
#endif
RS_EnableReceive();
@@ -738,12 +738,12 @@ RS_StatusTypeDef RS_Response(RS_HandleTypeDef *hmodbus, RS_MsgTypeDef *modbus_ms
if(hmodbus->f.MessageHandled == 0)
{
TrackerCnt_Err(hmodbus->rs_err);
modbus_msg->Func_Code += ERR_VALUES_START;
}
else
{
TrackerCnt_Ok(hmodbus->rs_err);
}
@@ -798,7 +798,7 @@ RS_StatusTypeDef RS_Collect_Message(RS_HandleTypeDef *hmodbus, RS_MsgTypeDef *mo
if (modbus_msg->ByteCnt > DATA_SIZE*2) // if ByteCnt less than DATA_SIZE
{
TrackerCnt_Err(hmodbus->rs_err);
return RS_COLLECT_MSG_ERR;
}
@@ -820,7 +820,7 @@ RS_StatusTypeDef RS_Collect_Message(RS_HandleTypeDef *hmodbus, RS_MsgTypeDef *mo
modbus_uart_buff[ind++] = modbus_msg->ByteCnt;
else // otherwise return data_size err
{
TrackerCnt_Err(hmodbus->rs_err);
return RS_COLLECT_MSG_ERR;
}
@@ -908,7 +908,7 @@ RS_StatusTypeDef RS_Parse_Message(RS_HandleTypeDef *hmodbus, RS_MsgTypeDef *modb
//check that data size is correct
if (modbus_msg->ByteCnt > DATA_SIZE*2)
{
TrackerCnt_Err(hmodbus->rs_err);
modbus_msg->Func_Code += ERR_VALUES_START;
return RS_PARSE_MSG_ERR;
}
@@ -935,7 +935,7 @@ RS_StatusTypeDef RS_Parse_Message(RS_HandleTypeDef *hmodbus, RS_MsgTypeDef *modb
// compare crc
if (modbus_msg->MB_CRC != CRC_VALUE)
{
TrackerCnt_Err(hmodbus->rs_err);
modbus_msg->Func_Code += ERR_VALUES_START;
}
// hmodbus->MB_RESPONSE = MB_CRC_ERR; // set func code - error about wrong crc

View File

@@ -12,7 +12,7 @@
#ifndef __MODBUS_H_
#define __MODBUS_H_
#include "mylibs_include.h"
#include "main.h"
#include "modbus_data.h"
//#include "settings.h" // for modbus settings
@@ -330,7 +330,44 @@ uint8_t MB_Write_Miltuple_Regs(RS_MsgTypeDef *modbus_msg);
* @}
*/
/////////////////////////---FUNCTIONS---/////////////////////////////
/***************************************************************************
*******************************MATH_DEFINES********************************/
/**
* @addtogroup MATH_DEFINES Math defines
* @ingroup MYLIBS_DEFINES
* @brief Дефайны для различных математических функций
@{
*/
/**
* @brief Calc dividing including remainder
* @param _val_ - делимое.
* @param _div_ - делитель.
* @details Если результат деления без остатка: он возвращается как есть
Если с остатком - округляется вверх
*/
//#define Divide_Up(_val_, _div_) (((_val_)%(_div_))? (_val_)/(_div_)+1 : (_val_)/_div_) /* через тернарный оператор */
#define Divide_Up(_val_, _div_) ((_val_ - 1) / _div_) + 1 /* через мат выражение */
/**
* @brief Swap between Little Endian and Big Endian
* @param v - Переменная для свапа.
* @return v (new) - Свапнутая переменная.
* @details Переключения между двумя типами хранения слова: HI-LO байты и LO-HI байты.
*/
#define ByteSwap16(v) (((v&0xFF00) >> (8)) | ((v&0x00FF) << (8)))
/**
* @brief Absolute
* @param x - Переменная для модудя.
* @return x (new) - Число по модулю.
* @details Берет число по модулю. Хз как работает библиотечный abs в stdlib.h, мб это быстрее, но вряд ли конечно.
*/
#define ABS(x) ( ((x) > 0)? (x) : -(x))?
/** MATH_DEFINES
* @}
*/
/////////////////////////////////////////////////////////////////////

View File

@@ -82,13 +82,13 @@ RS_StatusTypeDef RS_Receive_IT(RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg)
{
RS_RES = RS_Abort(hRS, ABORT_RS);
printf_rs_err("\n%d: Error RS: Failed to start RS receiving...", uwTick);
TrackerCnt_Err(hRS->rs_err);
}
else
{
RS_RES = RS_OK;
printf_rs("\n%d: RS: Start Receiving...", uwTick);
TrackerCnt_Ok(hRS->rs_err);
}
hRS->RS_STATUS = RS_RES;
@@ -138,13 +138,13 @@ RS_StatusTypeDef RS_Transmit_IT(RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg)
{
RS_RES = RS_Abort(hRS, ABORT_RS);
printf_rs_err("\n%d: Error RS: Failed to start RS transmitting...", uwTick);
TrackerCnt_Err(hRS->rs_err);
}
else
{
RS_RES = RS_OK;
printf_rs("\n%d: RS: Start Transmitting...", uwTick);
TrackerCnt_Ok(hRS->rs_err);
}
}
@@ -345,7 +345,7 @@ RS_StatusTypeDef RS_Handle_Receive_Start(RS_HandleTypeDef *hRS, RS_MsgTypeDef *R
if(RS_RES != RS_OK)
{
TrackerCnt_Err(hRS->rs_err);
}
return RS_RES;
@@ -369,7 +369,7 @@ RS_StatusTypeDef RS_Handle_Transmit_Start(RS_HandleTypeDef *hRS, RS_MsgTypeDef *
}
if(RS_RES != RS_OK)
{
TrackerCnt_Err(hRS->rs_err);
}
return RS_RES;
@@ -398,7 +398,7 @@ RS_StatusTypeDef RS_UART_RxCpltCallback(RS_HandleTypeDef *hRS)
// if we need to skip this message - restart receive
if(RS_RES == RS_SKIP || NuRS_of_Rest_Bytes == 0xFFFF)
{
TrackerCnt_Err(hRS->rs_err);
RS_Abort(hRS, ABORT_RX);
RS_RES = RS_Handle_Receive_Start(hRS, hRS->pMessagePtr);
return RS_RES;
@@ -433,7 +433,6 @@ RS_StatusTypeDef RS_UART_RxCpltCallback(RS_HandleTypeDef *hRS)
if(uart_res != HAL_OK)
{// need uart status, so doesnt write abort to RS_RES
TrackerCnt_Err(hRS->rs_err);
RS_RES = RS_Abort(hRS, ABORT_RS);
}
else
@@ -523,7 +522,7 @@ void RS_UART_Handler(RS_HandleTypeDef *hRS)
//----------------ERRORS HANDLER----------------
else
{
TrackerCnt_Err(hRS->rs_err);
/* de-init uart transfer */
RS_Abort(hRS, ABORT_RS);
RS_Handle_Receive_Start(hRS, hRS->pMessagePtr);

View File

@@ -27,7 +27,6 @@
#include "modbus.h"
#include "mylibs_include.h"
#include "crc_algs.h"
@@ -187,7 +186,6 @@ typedef struct // RS_HandleTypeDef
/* RS STATUS */
RS_StatusTypeDef RS_STATUS; ///< RS status
RS_TrackerTypeDef rs_err;
}RS_HandleTypeDef;
extern RS_HandleTypeDef hmodbus1;