Merge branch 'new-PC' into 'master'
init new PC See merge request coldbox/tec!2
This commit is contained in:
20
.mxproject
20
.mxproject
@@ -14,19 +14,19 @@ CDefines=USE_HAL_DRIVER;STM32L432xx;USE_HAL_DRIVER;USE_HAL_DRIVER;
|
|||||||
[PreviousGenFiles]
|
[PreviousGenFiles]
|
||||||
AdvancedFolderStructure=true
|
AdvancedFolderStructure=true
|
||||||
HeaderFileListSize=4
|
HeaderFileListSize=4
|
||||||
HeaderFiles#0=C:/Users/pique_n/Documents/GitHub/tec/Core/Inc/FreeRTOSConfig.h
|
HeaderFiles#0=..\Core\Inc\FreeRTOSConfig.h
|
||||||
HeaderFiles#1=C:/Users/pique_n/Documents/GitHub/tec/Core/Inc/stm32l4xx_it.h
|
HeaderFiles#1=..\Core\Inc\stm32l4xx_it.h
|
||||||
HeaderFiles#2=C:/Users/pique_n/Documents/GitHub/tec/Core/Inc/stm32l4xx_hal_conf.h
|
HeaderFiles#2=..\Core\Inc\stm32l4xx_hal_conf.h
|
||||||
HeaderFiles#3=C:/Users/pique_n/Documents/GitHub/tec/Core/Inc/main.h
|
HeaderFiles#3=..\Core\Inc\main.h
|
||||||
HeaderFolderListSize=1
|
HeaderFolderListSize=1
|
||||||
HeaderPath#0=C:/Users/pique_n/Documents/GitHub/tec/Core/Inc
|
HeaderPath#0=..\Core\Inc
|
||||||
HeaderFiles=;
|
HeaderFiles=;
|
||||||
SourceFileListSize=4
|
SourceFileListSize=4
|
||||||
SourceFiles#0=C:/Users/pique_n/Documents/GitHub/tec/Core/Src/freertos.c
|
SourceFiles#0=..\Core\Src\freertos.c
|
||||||
SourceFiles#1=C:/Users/pique_n/Documents/GitHub/tec/Core/Src/stm32l4xx_it.c
|
SourceFiles#1=..\Core\Src\stm32l4xx_it.c
|
||||||
SourceFiles#2=C:/Users/pique_n/Documents/GitHub/tec/Core/Src/stm32l4xx_hal_msp.c
|
SourceFiles#2=..\Core\Src\stm32l4xx_hal_msp.c
|
||||||
SourceFiles#3=C:/Users/pique_n/Documents/GitHub/tec/Core/Src/main.c
|
SourceFiles#3=..\Core\Src\main.c
|
||||||
SourceFolderListSize=1
|
SourceFolderListSize=1
|
||||||
SourcePath#0=C:/Users/pique_n/Documents/GitHub/tec/Core/Src
|
SourcePath#0=..\Core\Src
|
||||||
SourceFiles=;
|
SourceFiles=;
|
||||||
|
|
||||||
|
|||||||
2
.vscode/c_cpp_properties.json
vendored
2
.vscode/c_cpp_properties.json
vendored
@@ -20,7 +20,7 @@
|
|||||||
"STM32L432xx",
|
"STM32L432xx",
|
||||||
"USE_HAL_DRIVER"
|
"USE_HAL_DRIVER"
|
||||||
],
|
],
|
||||||
"compilerPath": "C:\\USERS\\PIQUE_N\\APPDATA\\ROAMING\\CODE\\USER\\GLOBALSTORAGE\\BMD.STM32-FOR-VSCODE\\@XPACK-DEV-TOOLS\\ARM-NONE-EABI-GCC\\10.3.1-2.3.1\\.CONTENT\\BIN\\ARM-NONE-EABI-GCC.EXE"
|
"compilerPath": "C:\\USERS\\PIQUE_N\\APPDATA\\ROAMING\\CODE\\USER\\GLOBALSTORAGE\\BMD.STM32-FOR-VSCODE\\@XPACK-DEV-TOOLS\\ARM-NONE-EABI-GCC\\11.3.1-1.1.2\\.CONTENT\\BIN\\ARM-NONE-EABI-GCC.EXE"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"version": 4
|
"version": 4
|
||||||
|
|||||||
9
.vscode/settings.json
vendored
9
.vscode/settings.json
vendored
@@ -5,8 +5,11 @@
|
|||||||
"cmsis_os2.h": "c",
|
"cmsis_os2.h": "c",
|
||||||
"varh_variablehandler.h": "c"
|
"varh_variablehandler.h": "c"
|
||||||
},
|
},
|
||||||
"cortex-debug.armToolchainPath": "c:\\Users\\pique_n\\AppData\\Roaming\\Code\\User\\globalStorage\\bmd.stm32-for-vscode\\@xpack-dev-tools\\arm-none-eabi-gcc\\10.3.1-2.3.1\\.content\\bin",
|
"cortex-debug.armToolchainPath": "c:\\Users\\pique_n\\AppData\\Roaming\\Code\\User\\globalStorage\\bmd.stm32-for-vscode\\@xpack-dev-tools\\arm-none-eabi-gcc\\11.3.1-1.1.2\\.content\\bin",
|
||||||
"cortex-debug.openocdPath": "C:\\USERS\\PIQUE_N\\APPDATA\\ROAMING\\CODE\\USER\\GLOBALSTORAGE\\BMD.STM32-FOR-VSCODE\\@XPACK-DEV-TOOLS\\OPENOCD\\0.11.0-2.1\\.CONTENT\\BIN\\OPENOCD.EXE",
|
"cortex-debug.openocdPath": "C:\\USERS\\PIQUE_N\\APPDATA\\ROAMING\\CODE\\USER\\GLOBALSTORAGE\\BMD.STM32-FOR-VSCODE\\@XPACK-DEV-TOOLS\\OPENOCD\\0.11.0-5.1\\.CONTENT\\BIN\\OPENOCD.EXE",
|
||||||
"cortex-debug.variableUseNaturalFormat": true
|
"cortex-debug.variableUseNaturalFormat": true,
|
||||||
|
"stm32-for-vscode.openOCDPath": "C:\\USERS\\PIQUE_N\\APPDATA\\ROAMING\\CODE\\USER\\GLOBALSTORAGE\\BMD.STM32-FOR-VSCODE\\@XPACK-DEV-TOOLS\\OPENOCD\\0.11.0-5.1\\.CONTENT\\BIN\\OPENOCD.EXE",
|
||||||
|
"stm32-for-vscode.makePath": "C:\\USERS\\PIQUE_N\\APPDATA\\ROAMING\\CODE\\USER\\GLOBALSTORAGE\\BMD.STM32-FOR-VSCODE\\@XPACK-DEV-TOOLS\\WINDOWS-BUILD-TOOLS\\4.3.0-1.1\\.CONTENT\\BIN\\MAKE.EXE",
|
||||||
|
"stm32-for-vscode.armToolchainPath": "c:\\Users\\pique_n\\AppData\\Roaming\\Code\\User\\globalStorage\\bmd.stm32-for-vscode\\@xpack-dev-tools\\arm-none-eabi-gcc\\11.3.1-1.1.2\\.content\\bin"
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -239,19 +239,22 @@ PRIVATE VOID vTask( PVOID arg )
|
|||||||
U8 u8Type = stMessage.u8Type;
|
U8 u8Type = stMessage.u8Type;
|
||||||
|
|
||||||
if( u8Type == MESSAGE_TYPE_READ ){ // Message type read
|
if( u8Type == MESSAGE_TYPE_READ ){ // Message type read
|
||||||
|
|
||||||
|
osDelay(100);
|
||||||
|
|
||||||
if( u8Register >= VARH_eNumberOfVariables ){ // check register
|
if( u8Register >= VARH_eNumberOfVariables ){ // check register
|
||||||
// send register not found
|
// send register not found
|
||||||
au8Buffer[0] = 0xFF;
|
au8Buffer[0] = 0xFF;
|
||||||
CAND_boSendMessage( au8Buffer, 1 );
|
CAND_boSendMessage( stMessage.u16Id, au8Buffer, 1 );
|
||||||
} else {
|
} else {
|
||||||
VARH_UVariable uVariable = VARH_uGetVariableData(u8Register); // get data
|
VARH_UVariable uVariable = VARH_uGetVariableData(u8Register); // get data
|
||||||
au8Buffer[0] = u8Register;
|
au8Buffer[0] = u8Register;
|
||||||
UTIL_vMemCopy(&uVariable, &au8Buffer[1], 4); // copy data in buffer
|
UTIL_vMemCopy(&uVariable, &au8Buffer[1], 4); // copy data in buffer
|
||||||
|
|
||||||
CAND_boSendMessage( au8Buffer, 5 );
|
CAND_boSendMessage( stMessage.u16Id, au8Buffer, 5 );
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if( u8Type == MESSAGE_TYPE_WRITE ){ // Message type write
|
} else if( u8Type == MESSAGE_TYPE_WRITE ){ // Message type writeset
|
||||||
VARH_UVariable uData;
|
VARH_UVariable uData;
|
||||||
UTIL_vMemCopy(&stMessage.au8Data[1], &uData, 4);
|
UTIL_vMemCopy(&stMessage.au8Data[1], &uData, 4);
|
||||||
|
|
||||||
|
|||||||
@@ -90,8 +90,6 @@ LOCAL osThreadId_t m_pstThreadID = NULL;
|
|||||||
LOCAL osTimerId_t m_pstUpdateTimer = NULL;
|
LOCAL osTimerId_t m_pstUpdateTimer = NULL;
|
||||||
LOCAL osEventFlagsId_t m_pstEventID = NULL;
|
LOCAL osEventFlagsId_t m_pstEventID = NULL;
|
||||||
|
|
||||||
BOOL boEnableOutput = FALSE;
|
|
||||||
|
|
||||||
//=================================================================================================
|
//=================================================================================================
|
||||||
// Section: LOCAL CONSTANTS
|
// Section: LOCAL CONSTANTS
|
||||||
// Description: Definition of local constants (visible by this module only).
|
// Description: Definition of local constants (visible by this module only).
|
||||||
@@ -184,7 +182,7 @@ BOOL PECO_boInitializeModule( VOID )
|
|||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
VOID PECO_Enable( BOOL boEnable ){
|
VOID PECO_Enable( BOOL boEnable ){
|
||||||
DIPO_vSetState(DIPO_eEN, boEnable);
|
DIPO_vSetState(DIPO_eEN, boEnable);
|
||||||
boEnableOutput = boEnable;
|
VARH_vSetVariableDataFromSystemU32( VARH_ePowerState, (U32)boEnable );
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
@@ -194,7 +192,7 @@ VOID PECO_Enable( BOOL boEnable ){
|
|||||||
// Returns: BOOL boEnableOutput
|
// Returns: BOOL boEnableOutput
|
||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
BOOL PECO_isEnabled( VOID ){
|
BOOL PECO_isEnabled( VOID ){
|
||||||
return boEnableOutput;
|
return (BOOL)VARH_u32GetVariableData( VARH_ePowerState );
|
||||||
}
|
}
|
||||||
|
|
||||||
//=================================================================================================
|
//=================================================================================================
|
||||||
|
|||||||
@@ -94,6 +94,8 @@ LOCAL CONST VARH_StVarInfo m_astVarInfo[VARH_eNumberOfVariables] =
|
|||||||
{ VARH_FLAGINFO_READONLY | VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)20.0f, (VARH_UVariable)30.0f }, // VARH_eSupply_U
|
{ VARH_FLAGINFO_READONLY | VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)20.0f, (VARH_UVariable)30.0f }, // VARH_eSupply_U
|
||||||
{ VARH_FLAGINFO_READONLY | VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)0.0f, (VARH_UVariable)5.0f }, // VARH_eSupply_I
|
{ VARH_FLAGINFO_READONLY | VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)0.0f, (VARH_UVariable)5.0f }, // VARH_eSupply_I
|
||||||
{ VARH_FLAGINFO_READONLY | VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)0.0f, (VARH_UVariable)150.0f }, // VARH_eSupply_P
|
{ VARH_FLAGINFO_READONLY | VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)0.0f, (VARH_UVariable)150.0f }, // VARH_eSupply_P
|
||||||
|
|
||||||
|
{ VARH_FLAGINFO_READONLY, (VARH_UVariable)(U32)0, (VARH_UVariable)(U32)0, (VARH_UVariable)(U32)1 }, // VARH_ePowerState
|
||||||
};
|
};
|
||||||
|
|
||||||
LOCAL CONST osMutexAttr_t m_stMutexAttr =
|
LOCAL CONST osMutexAttr_t m_stMutexAttr =
|
||||||
@@ -217,7 +219,7 @@ VOID VARH_vSetVariableDataFloat( U8 u8Variable, FLOAT flData )
|
|||||||
VOID VARH_vSetVariableDataFromSystem( U8 u8Variable, VARH_UVariable uData )
|
VOID VARH_vSetVariableDataFromSystem( U8 u8Variable, VARH_UVariable uData )
|
||||||
{
|
{
|
||||||
osMutexAcquire( m_pstMutexID, osWaitForever ); // aquire mutex
|
osMutexAcquire( m_pstMutexID, osWaitForever ); // aquire mutex
|
||||||
if( boCheckRange( u8Variable, uData ) )
|
if( !boCheckRange( u8Variable, uData ) )
|
||||||
{
|
{
|
||||||
m_auVariable[u8Variable].u8Flags |= VARH_FLAG_OUTOFRANGE; // check the value
|
m_auVariable[u8Variable].u8Flags |= VARH_FLAG_OUTOFRANGE; // check the value
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -89,6 +89,8 @@ typedef enum
|
|||||||
VARH_eSupply_I,
|
VARH_eSupply_I,
|
||||||
VARH_eSupply_P,
|
VARH_eSupply_P,
|
||||||
|
|
||||||
|
VARH_ePowerState,
|
||||||
|
|
||||||
VARH_eNumberOfVariables, // Must be last entry
|
VARH_eNumberOfVariables, // Must be last entry
|
||||||
} VARH_EnVariables;
|
} VARH_EnVariables;
|
||||||
|
|
||||||
|
|||||||
@@ -48,12 +48,13 @@
|
|||||||
// Description: Definition of local constants (visible by this module only).
|
// Description: Definition of local constants (visible by this module only).
|
||||||
//=================================================================================================
|
//=================================================================================================
|
||||||
|
|
||||||
#define CAND_SHIFT 0x0 // Shift address space (0-3)
|
#define CAND_SHIFT 0x1 // Shift address space (0-3)
|
||||||
|
|
||||||
#define CAND_PRIVATE 1
|
#define CAND_PRIVATE 1
|
||||||
#define CAND_PUBLIC 0
|
#define CAND_PUBLIC 0
|
||||||
|
|
||||||
#define MASTER_ID ((CAND_SHIFT<<8) | 0x0000)
|
#define CAND_RECEIVE 0
|
||||||
|
#define CAND_SEND 1
|
||||||
|
|
||||||
//=================================================================================================
|
//=================================================================================================
|
||||||
// Section: MACROS
|
// Section: MACROS
|
||||||
@@ -80,10 +81,12 @@
|
|||||||
//=================================================================================================
|
//=================================================================================================
|
||||||
CAND_pfnRxCallback m_pfnRxCallback = NULL;
|
CAND_pfnRxCallback m_pfnRxCallback = NULL;
|
||||||
|
|
||||||
|
U8 u8BoardId = 0x00;
|
||||||
|
|
||||||
CAN_FilterTypeDef stFilter_public = {
|
CAN_FilterTypeDef stFilter_public = {
|
||||||
(CAND_SHIFT<<14)|(CAND_PUBLIC<<13), // FilterIdHigh
|
(CAND_SHIFT<<14)|(CAND_PUBLIC<<13)|(CAND_RECEIVE<<11), // FilterIdHigh
|
||||||
0x0000, // FilterIdLow
|
0x0000, // FilterIdLow
|
||||||
0xE000, // FilterMaskIdHigh
|
0xE800, // FilterMaskIdHigh
|
||||||
0x0000, // FilterMaskIdLow
|
0x0000, // FilterMaskIdLow
|
||||||
CAN_FILTER_FIFO0, // FilterFIFOAssignment
|
CAN_FILTER_FIFO0, // FilterFIFOAssignment
|
||||||
0x00, // FilterBank
|
0x00, // FilterBank
|
||||||
@@ -94,9 +97,9 @@ CAN_FilterTypeDef stFilter_public = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
CAN_FilterTypeDef stFilter_private = {
|
CAN_FilterTypeDef stFilter_private = {
|
||||||
(CAND_SHIFT<<14)|(CAND_PRIVATE<<13), // FilterIdHigh
|
(CAND_SHIFT<<14)|(CAND_PRIVATE<<13)|(CAND_RECEIVE<<11), // FilterIdHigh
|
||||||
0x0000, // FilterIdLow
|
0x0000, // FilterIdLow
|
||||||
0xE1E0, // FilterMaskIdHigh
|
0xE9E0, // FilterMaskIdHigh
|
||||||
0x0000, // FilterMaskIdLow
|
0x0000, // FilterMaskIdLow
|
||||||
CAN_FILTER_FIFO0, // FilterFIFOAssignment
|
CAN_FILTER_FIFO0, // FilterFIFOAssignment
|
||||||
0x01, // FilterBank
|
0x01, // FilterBank
|
||||||
@@ -147,7 +150,6 @@ BOOL CAND_boInitializeModule( VOID )
|
|||||||
{
|
{
|
||||||
BOOL boOK = TRUE;
|
BOOL boOK = TRUE;
|
||||||
|
|
||||||
U8 u8BoardId = 0x00;
|
|
||||||
u8BoardId |= DIPO_boGetInput(DIPO_eADR0) << 0;
|
u8BoardId |= DIPO_boGetInput(DIPO_eADR0) << 0;
|
||||||
u8BoardId |= DIPO_boGetInput(DIPO_eADR1) << 1;
|
u8BoardId |= DIPO_boGetInput(DIPO_eADR1) << 1;
|
||||||
u8BoardId |= DIPO_boGetInput(DIPO_eADR2) << 2;
|
u8BoardId |= DIPO_boGetInput(DIPO_eADR2) << 2;
|
||||||
@@ -165,6 +167,15 @@ BOOL CAND_boInitializeModule( VOID )
|
|||||||
return( boOK );
|
return( boOK );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------
|
||||||
|
// Function: CAND_u8GetBoardId
|
||||||
|
// Description: Returns the Board ID
|
||||||
|
// Parameters: None
|
||||||
|
// Returns: U8 Board ID
|
||||||
|
//-------------------------------------------------------------------------------------------------
|
||||||
|
U8 CAND_u8GetBoardId( VOID ){
|
||||||
|
return u8BoardId;
|
||||||
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
// Function: CAND_boSendMessage
|
// Function: CAND_boSendMessage
|
||||||
@@ -174,13 +185,13 @@ BOOL CAND_boInitializeModule( VOID )
|
|||||||
// PU8 Data Buffer
|
// PU8 Data Buffer
|
||||||
// Returns: Boolean, TRUE if successful
|
// Returns: Boolean, TRUE if successful
|
||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
BOOL CAND_boSendMessage( PU8 pu8Buffer, U8 u8Len ){
|
BOOL CAND_boSendMessage( U16 u16Id, PU8 pu8Buffer, U8 u8Len ){
|
||||||
BOOL boOK = TRUE;
|
BOOL boOK = TRUE;
|
||||||
|
|
||||||
if( u8Len > 8 ) return FALSE;
|
if( u8Len > 8 ) return FALSE;
|
||||||
|
|
||||||
CAN_TxHeaderTypeDef header = {
|
CAN_TxHeaderTypeDef header = {
|
||||||
MASTER_ID,
|
u16Id | (CAND_SEND<<6),
|
||||||
0,
|
0,
|
||||||
CAN_ID_STD,
|
CAN_ID_STD,
|
||||||
CAN_RTR_DATA,
|
CAN_RTR_DATA,
|
||||||
@@ -227,6 +238,7 @@ void HAL_CAN_RxFifo0MsgPendingCallback( CAN_HandleTypeDef *hcan ){
|
|||||||
|
|
||||||
CAND_Message stMessage;
|
CAND_Message stMessage;
|
||||||
|
|
||||||
|
stMessage.u16Id = header.StdId;
|
||||||
stMessage.u8Type = (header.StdId & 0x030) >> 4;
|
stMessage.u8Type = (header.StdId & 0x030) >> 4;
|
||||||
stMessage.u8Len = header.DLC;
|
stMessage.u8Len = header.DLC;
|
||||||
UTIL_vMemCopy( au8Data,stMessage.au8Data,stMessage.u8Len );
|
UTIL_vMemCopy( au8Data,stMessage.au8Data,stMessage.u8Len );
|
||||||
|
|||||||
@@ -67,6 +67,7 @@ typedef struct {
|
|||||||
U8 au8Data[8];
|
U8 au8Data[8];
|
||||||
U8 u8Len;
|
U8 u8Len;
|
||||||
U8 u8Type;
|
U8 u8Type;
|
||||||
|
U16 u16Id;
|
||||||
} CAND_Message;
|
} CAND_Message;
|
||||||
|
|
||||||
// callback functions
|
// callback functions
|
||||||
@@ -78,7 +79,6 @@ typedef VOID (*CAND_pfnRxCallback)( CAND_Message stMessage );
|
|||||||
//=================================================================================================
|
//=================================================================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//=================================================================================================
|
//=================================================================================================
|
||||||
// Section: GLOBAL CONSTANTS
|
// Section: GLOBAL CONSTANTS
|
||||||
// Description: Definition of global constants (visible by all modules).
|
// Description: Definition of global constants (visible by all modules).
|
||||||
@@ -92,8 +92,9 @@ typedef VOID (*CAND_pfnRxCallback)( CAND_Message stMessage );
|
|||||||
//=================================================================================================
|
//=================================================================================================
|
||||||
|
|
||||||
BOOL CAND_boInitializeModule( VOID );
|
BOOL CAND_boInitializeModule( VOID );
|
||||||
BOOL CAND_boSendMessage( PU8 pu8Buffer, U8 u8Len );
|
BOOL CAND_boSendMessage( U16 u16Id, PU8 pu8Buffer, U8 u8Len );
|
||||||
VOID CAND_vSetRxCallback( CAND_pfnRxCallback pfnRxCallback );
|
VOID CAND_vSetRxCallback( CAND_pfnRxCallback pfnRxCallback );
|
||||||
|
U8 CAND_u8GetBoardId( VOID );
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -328,11 +328,11 @@ static void MX_CAN1_Init(void)
|
|||||||
|
|
||||||
/* USER CODE END CAN1_Init 1 */
|
/* USER CODE END CAN1_Init 1 */
|
||||||
hcan1.Instance = CAN1;
|
hcan1.Instance = CAN1;
|
||||||
hcan1.Init.Prescaler = 128;
|
hcan1.Init.Prescaler = 32;
|
||||||
hcan1.Init.Mode = CAN_MODE_NORMAL;
|
hcan1.Init.Mode = CAN_MODE_NORMAL;
|
||||||
hcan1.Init.SyncJumpWidth = CAN_SJW_1TQ;
|
hcan1.Init.SyncJumpWidth = CAN_SJW_1TQ;
|
||||||
hcan1.Init.TimeSeg1 = CAN_BS1_3TQ;
|
hcan1.Init.TimeSeg1 = CAN_BS1_13TQ;
|
||||||
hcan1.Init.TimeSeg2 = CAN_BS2_1TQ;
|
hcan1.Init.TimeSeg2 = CAN_BS2_6TQ;
|
||||||
hcan1.Init.TimeTriggeredMode = DISABLE;
|
hcan1.Init.TimeTriggeredMode = DISABLE;
|
||||||
hcan1.Init.AutoBusOff = DISABLE;
|
hcan1.Init.AutoBusOff = DISABLE;
|
||||||
hcan1.Init.AutoWakeUp = DISABLE;
|
hcan1.Init.AutoWakeUp = DISABLE;
|
||||||
|
|||||||
2
Makefile
2
Makefile
@@ -1,5 +1,5 @@
|
|||||||
##########################################################################################################################
|
##########################################################################################################################
|
||||||
# File automatically-generated by tool: [projectgenerator] version: [3.15.2] date: [Tue Sep 06 08:17:33 CEST 2022]
|
# File automatically-generated by tool: [projectgenerator] version: [3.17.1] date: [Tue Sep 27 08:33:11 CEST 2022]
|
||||||
##########################################################################################################################
|
##########################################################################################################################
|
||||||
|
|
||||||
# ------------------------------------------------
|
# ------------------------------------------------
|
||||||
|
|||||||
@@ -25,13 +25,14 @@ ADC1.SamplingTime-1\#ChannelRegularConversion=ADC_SAMPLETIME_640CYCLES_5
|
|||||||
ADC1.SamplingTime-2\#ChannelRegularConversion=ADC_SAMPLETIME_640CYCLES_5
|
ADC1.SamplingTime-2\#ChannelRegularConversion=ADC_SAMPLETIME_640CYCLES_5
|
||||||
ADC1.SamplingTime-3\#ChannelRegularConversion=ADC_SAMPLETIME_640CYCLES_5
|
ADC1.SamplingTime-3\#ChannelRegularConversion=ADC_SAMPLETIME_640CYCLES_5
|
||||||
ADC1.master=1
|
ADC1.master=1
|
||||||
CAN1.BS1=CAN_BS1_3TQ
|
CAN1.BS1=CAN_BS1_13TQ
|
||||||
|
CAN1.BS2=CAN_BS2_6TQ
|
||||||
CAN1.CalculateBaudRate=125000
|
CAN1.CalculateBaudRate=125000
|
||||||
CAN1.CalculateTimeBit=8000
|
CAN1.CalculateTimeBit=8000
|
||||||
CAN1.CalculateTimeQuantum=1600.0
|
CAN1.CalculateTimeQuantum=400.0
|
||||||
CAN1.IPParameters=CalculateTimeQuantum,CalculateTimeBit,CalculateBaudRate,BS1,Prescaler,NART
|
CAN1.IPParameters=CalculateTimeQuantum,CalculateTimeBit,CalculateBaudRate,BS1,Prescaler,NART,BS2
|
||||||
CAN1.NART=ENABLE
|
CAN1.NART=ENABLE
|
||||||
CAN1.Prescaler=128
|
CAN1.Prescaler=32
|
||||||
Dma.ADC1.2.Direction=DMA_PERIPH_TO_MEMORY
|
Dma.ADC1.2.Direction=DMA_PERIPH_TO_MEMORY
|
||||||
Dma.ADC1.2.Instance=DMA2_Channel3
|
Dma.ADC1.2.Instance=DMA2_Channel3
|
||||||
Dma.ADC1.2.MemDataAlignment=DMA_MDATAALIGN_HALFWORD
|
Dma.ADC1.2.MemDataAlignment=DMA_MDATAALIGN_HALFWORD
|
||||||
@@ -77,6 +78,7 @@ IWDG.Prescaler=IWDG_PRESCALER_256
|
|||||||
IWDG.Reload=150
|
IWDG.Reload=150
|
||||||
IWDG.Window=4095
|
IWDG.Window=4095
|
||||||
KeepUserPlacement=false
|
KeepUserPlacement=false
|
||||||
|
Mcu.CPN=STM32L432KBU6
|
||||||
Mcu.Family=STM32L4
|
Mcu.Family=STM32L4
|
||||||
Mcu.IP0=ADC1
|
Mcu.IP0=ADC1
|
||||||
Mcu.IP1=CAN1
|
Mcu.IP1=CAN1
|
||||||
@@ -125,29 +127,29 @@ Mcu.UserConstants=
|
|||||||
Mcu.UserName=STM32L432KBUx
|
Mcu.UserName=STM32L432KBUx
|
||||||
MxCube.Version=6.4.0
|
MxCube.Version=6.4.0
|
||||||
MxDb.Version=DB.6.0.40
|
MxDb.Version=DB.6.0.40
|
||||||
NVIC.ADC1_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true
|
NVIC.ADC1_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
||||||
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
||||||
NVIC.CAN1_RX0_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true
|
NVIC.CAN1_RX0_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
||||||
NVIC.CAN1_RX1_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true
|
NVIC.CAN1_RX1_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
||||||
NVIC.CAN1_SCE_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true
|
NVIC.CAN1_SCE_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
||||||
NVIC.CAN1_TX_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true
|
NVIC.CAN1_TX_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
||||||
NVIC.DMA1_Channel2_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true
|
NVIC.DMA1_Channel2_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
|
||||||
NVIC.DMA1_Channel3_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true
|
NVIC.DMA1_Channel3_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
|
||||||
NVIC.DMA2_Channel3_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true
|
NVIC.DMA2_Channel3_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
|
||||||
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
||||||
NVIC.ForceEnableDMAVector=true
|
NVIC.ForceEnableDMAVector=true
|
||||||
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
||||||
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
||||||
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
||||||
NVIC.PendSV_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:false
|
NVIC.PendSV_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:false\:false
|
||||||
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
|
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
|
||||||
NVIC.SPI1_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true
|
NVIC.SPI1_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
||||||
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:false\:false\:false\:false
|
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:false\:false\:false\:false\:false
|
||||||
NVIC.SavedPendsvIrqHandlerGenerated=false
|
NVIC.SavedPendsvIrqHandlerGenerated=false
|
||||||
NVIC.SavedSvcallIrqHandlerGenerated=false
|
NVIC.SavedSvcallIrqHandlerGenerated=false
|
||||||
NVIC.SavedSystickIrqHandlerGenerated=false
|
NVIC.SavedSystickIrqHandlerGenerated=false
|
||||||
NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:true\:false\:true
|
NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:true\:false\:true\:false
|
||||||
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
||||||
PA0.Mode=HSE-External-Clock-Source-for-LittleOrca
|
PA0.Mode=HSE-External-Clock-Source-for-LittleOrca
|
||||||
PA0.Signal=RCC_CK_IN
|
PA0.Signal=RCC_CK_IN
|
||||||
PA1.Locked=true
|
PA1.Locked=true
|
||||||
|
|||||||
204
STM32L432KBUx_FLASH.ld
Normal file
204
STM32L432KBUx_FLASH.ld
Normal file
@@ -0,0 +1,204 @@
|
|||||||
|
/*
|
||||||
|
******************************************************************************
|
||||||
|
**
|
||||||
|
|
||||||
|
** File : LinkerScript.ld
|
||||||
|
**
|
||||||
|
** Author : Auto-generated by System Workbench for STM32
|
||||||
|
**
|
||||||
|
** Abstract : Linker script for STM32L432KBUx series
|
||||||
|
** 128Kbytes FLASH and 80Kbytes RAM
|
||||||
|
**
|
||||||
|
** Set heap size, stack size and stack location according
|
||||||
|
** to application requirements.
|
||||||
|
**
|
||||||
|
** Set memory bank area and size if external memory is used.
|
||||||
|
**
|
||||||
|
** Target : STMicroelectronics STM32
|
||||||
|
**
|
||||||
|
** Distribution: The file is distributed “as is,” without any warranty
|
||||||
|
** of any kind.
|
||||||
|
**
|
||||||
|
*****************************************************************************
|
||||||
|
** @attention
|
||||||
|
**
|
||||||
|
** <h2><center>© COPYRIGHT(c) 2019 STMicroelectronics</center></h2>
|
||||||
|
**
|
||||||
|
** Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
** are permitted provided that the following conditions are met:
|
||||||
|
** 1. Redistributions of source code must retain the above copyright notice,
|
||||||
|
** this list of conditions and the following disclaimer.
|
||||||
|
** 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
** this list of conditions and the following disclaimer in the documentation
|
||||||
|
** and/or other materials provided with the distribution.
|
||||||
|
** 3. Neither the name of STMicroelectronics nor the names of its contributors
|
||||||
|
** may be used to endorse or promote products derived from this software
|
||||||
|
** without specific prior written permission.
|
||||||
|
**
|
||||||
|
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||||
|
** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
|
** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
**
|
||||||
|
*****************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Entry Point */
|
||||||
|
ENTRY(Reset_Handler)
|
||||||
|
|
||||||
|
/* Highest address of the user mode stack */
|
||||||
|
_estack = 0x20010000; /* end of RAM */
|
||||||
|
/* Generate a link error if heap and stack don't fit into RAM */
|
||||||
|
_Min_Heap_Size = 0x200; /* required amount of heap */
|
||||||
|
_Min_Stack_Size = 0x400; /* required amount of stack */
|
||||||
|
|
||||||
|
/* Specify the memory areas */
|
||||||
|
MEMORY
|
||||||
|
{
|
||||||
|
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 64K
|
||||||
|
RAM2 (xrw) : ORIGIN = 0x10000000, LENGTH = 16K
|
||||||
|
FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 128K
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Define output sections */
|
||||||
|
SECTIONS
|
||||||
|
{
|
||||||
|
/* The startup code goes first into FLASH */
|
||||||
|
.isr_vector :
|
||||||
|
{
|
||||||
|
. = ALIGN(8);
|
||||||
|
KEEP(*(.isr_vector)) /* Startup code */
|
||||||
|
. = ALIGN(8);
|
||||||
|
} >FLASH
|
||||||
|
|
||||||
|
/* The program code and other data goes into FLASH */
|
||||||
|
.text :
|
||||||
|
{
|
||||||
|
. = ALIGN(8);
|
||||||
|
*(.text) /* .text sections (code) */
|
||||||
|
*(.text*) /* .text* sections (code) */
|
||||||
|
*(.glue_7) /* glue arm to thumb code */
|
||||||
|
*(.glue_7t) /* glue thumb to arm code */
|
||||||
|
*(.eh_frame)
|
||||||
|
|
||||||
|
KEEP (*(.init))
|
||||||
|
KEEP (*(.fini))
|
||||||
|
|
||||||
|
. = ALIGN(8);
|
||||||
|
_etext = .; /* define a global symbols at end of code */
|
||||||
|
} >FLASH
|
||||||
|
|
||||||
|
/* Constant data goes into FLASH */
|
||||||
|
.rodata :
|
||||||
|
{
|
||||||
|
. = ALIGN(8);
|
||||||
|
*(.rodata) /* .rodata sections (constants, strings, etc.) */
|
||||||
|
*(.rodata*) /* .rodata* sections (constants, strings, etc.) */
|
||||||
|
. = ALIGN(8);
|
||||||
|
} >FLASH
|
||||||
|
|
||||||
|
.ARM.extab :
|
||||||
|
{
|
||||||
|
. = ALIGN(8);
|
||||||
|
*(.ARM.extab* .gnu.linkonce.armextab.*)
|
||||||
|
. = ALIGN(8);
|
||||||
|
} >FLASH
|
||||||
|
.ARM : {
|
||||||
|
. = ALIGN(8);
|
||||||
|
__exidx_start = .;
|
||||||
|
*(.ARM.exidx*)
|
||||||
|
__exidx_end = .;
|
||||||
|
. = ALIGN(8);
|
||||||
|
} >FLASH
|
||||||
|
|
||||||
|
.preinit_array :
|
||||||
|
{
|
||||||
|
. = ALIGN(8);
|
||||||
|
PROVIDE_HIDDEN (__preinit_array_start = .);
|
||||||
|
KEEP (*(.preinit_array*))
|
||||||
|
PROVIDE_HIDDEN (__preinit_array_end = .);
|
||||||
|
. = ALIGN(8);
|
||||||
|
} >FLASH
|
||||||
|
|
||||||
|
.init_array :
|
||||||
|
{
|
||||||
|
. = ALIGN(8);
|
||||||
|
PROVIDE_HIDDEN (__init_array_start = .);
|
||||||
|
KEEP (*(SORT(.init_array.*)))
|
||||||
|
KEEP (*(.init_array*))
|
||||||
|
PROVIDE_HIDDEN (__init_array_end = .);
|
||||||
|
. = ALIGN(8);
|
||||||
|
} >FLASH
|
||||||
|
.fini_array :
|
||||||
|
{
|
||||||
|
. = ALIGN(8);
|
||||||
|
PROVIDE_HIDDEN (__fini_array_start = .);
|
||||||
|
KEEP (*(SORT(.fini_array.*)))
|
||||||
|
KEEP (*(.fini_array*))
|
||||||
|
PROVIDE_HIDDEN (__fini_array_end = .);
|
||||||
|
. = ALIGN(8);
|
||||||
|
} >FLASH
|
||||||
|
|
||||||
|
/* used by the startup to initialize data */
|
||||||
|
_sidata = LOADADDR(.data);
|
||||||
|
|
||||||
|
/* Initialized data sections goes into RAM, load LMA copy after code */
|
||||||
|
.data :
|
||||||
|
{
|
||||||
|
. = ALIGN(8);
|
||||||
|
_sdata = .; /* create a global symbol at data start */
|
||||||
|
*(.data) /* .data sections */
|
||||||
|
*(.data*) /* .data* sections */
|
||||||
|
|
||||||
|
. = ALIGN(8);
|
||||||
|
_edata = .; /* define a global symbol at data end */
|
||||||
|
} >RAM AT> FLASH
|
||||||
|
|
||||||
|
|
||||||
|
/* Uninitialized data section */
|
||||||
|
. = ALIGN(4);
|
||||||
|
.bss :
|
||||||
|
{
|
||||||
|
/* This is used by the startup in order to initialize the .bss secion */
|
||||||
|
_sbss = .; /* define a global symbol at bss start */
|
||||||
|
__bss_start__ = _sbss;
|
||||||
|
*(.bss)
|
||||||
|
*(.bss*)
|
||||||
|
*(COMMON)
|
||||||
|
|
||||||
|
. = ALIGN(4);
|
||||||
|
_ebss = .; /* define a global symbol at bss end */
|
||||||
|
__bss_end__ = _ebss;
|
||||||
|
} >RAM
|
||||||
|
|
||||||
|
/* User_heap_stack section, used to check that there is enough RAM left */
|
||||||
|
._user_heap_stack :
|
||||||
|
{
|
||||||
|
. = ALIGN(8);
|
||||||
|
PROVIDE ( end = . );
|
||||||
|
PROVIDE ( _end = . );
|
||||||
|
. = . + _Min_Heap_Size;
|
||||||
|
. = . + _Min_Stack_Size;
|
||||||
|
. = ALIGN(8);
|
||||||
|
} >RAM
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* Remove information from the standard libraries */
|
||||||
|
/DISCARD/ :
|
||||||
|
{
|
||||||
|
libc.a ( * )
|
||||||
|
libm.a ( * )
|
||||||
|
libgcc.a ( * )
|
||||||
|
}
|
||||||
|
|
||||||
|
.ARM.attributes 0 : { *(.ARM.attributes) }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -110,7 +110,7 @@ PREFIX = arm-none-eabi-
|
|||||||
POSTFIX = "
|
POSTFIX = "
|
||||||
# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx)
|
# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx)
|
||||||
# either it can be added to the PATH environment variable.
|
# either it can be added to the PATH environment variable.
|
||||||
GCC_PATH="c:/Users/pique_n/AppData/Roaming/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-none-eabi-gcc/10.3.1-2.3.1/.content/bin
|
GCC_PATH="c:/Users/pique_n/AppData/Roaming/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-none-eabi-gcc/11.3.1-1.1.2/.content/bin
|
||||||
ifdef GCC_PATH
|
ifdef GCC_PATH
|
||||||
CXX = $(GCC_PATH)/$(PREFIX)g++$(POSTFIX)
|
CXX = $(GCC_PATH)/$(PREFIX)g++$(POSTFIX)
|
||||||
CC = $(GCC_PATH)/$(PREFIX)gcc$(POSTFIX)
|
CC = $(GCC_PATH)/$(PREFIX)gcc$(POSTFIX)
|
||||||
@@ -262,13 +262,13 @@ $(BUILD_DIR):
|
|||||||
# flash
|
# flash
|
||||||
#######################################
|
#######################################
|
||||||
flash: $(BUILD_DIR)/$(TARGET).elf
|
flash: $(BUILD_DIR)/$(TARGET).elf
|
||||||
"C:/USERS/PIQUE_N/APPDATA/ROAMING/CODE/USER/GLOBALSTORAGE/BMD.STM32-FOR-VSCODE/@XPACK-DEV-TOOLS/OPENOCD/0.11.0-2.1/.CONTENT/BIN/OPENOCD.EXE" -f ./openocd.cfg -c "program $(BUILD_DIR)/$(TARGET).elf verify reset exit"
|
"C:/USERS/PIQUE_N/APPDATA/ROAMING/CODE/USER/GLOBALSTORAGE/BMD.STM32-FOR-VSCODE/@XPACK-DEV-TOOLS/OPENOCD/0.11.0-5.1/.CONTENT/BIN/OPENOCD.EXE" -f ./openocd.cfg -c "program $(BUILD_DIR)/$(TARGET).elf verify reset exit"
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# erase
|
# erase
|
||||||
#######################################
|
#######################################
|
||||||
erase: $(BUILD_DIR)/$(TARGET).elf
|
erase: $(BUILD_DIR)/$(TARGET).elf
|
||||||
"C:/USERS/PIQUE_N/APPDATA/ROAMING/CODE/USER/GLOBALSTORAGE/BMD.STM32-FOR-VSCODE/@XPACK-DEV-TOOLS/OPENOCD/0.11.0-2.1/.CONTENT/BIN/OPENOCD.EXE" -f ./openocd.cfg -c "init; reset halt; stm32l4x mass_erase 0; exit"
|
"C:/USERS/PIQUE_N/APPDATA/ROAMING/CODE/USER/GLOBALSTORAGE/BMD.STM32-FOR-VSCODE/@XPACK-DEV-TOOLS/OPENOCD/0.11.0-5.1/.CONTENT/BIN/OPENOCD.EXE" -f ./openocd.cfg -c "init; reset halt; stm32l4x mass_erase 0; exit"
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# clean up
|
# clean up
|
||||||
|
|||||||
Reference in New Issue
Block a user