Add bootloader
This commit is contained in:
@ -70,7 +70,9 @@
|
|||||||
#define COMMAND_ALARM 4
|
#define COMMAND_ALARM 4
|
||||||
#define COMMAND_CLEAR_ERROR 5
|
#define COMMAND_CLEAR_ERROR 5
|
||||||
|
|
||||||
#define WATCHDOG 33000
|
#define COMMAND_REBOOT 255
|
||||||
|
|
||||||
|
#define WATCHDOG 3000
|
||||||
|
|
||||||
//=================================================================================================
|
//=================================================================================================
|
||||||
// Section: MACROS
|
// Section: MACROS
|
||||||
@ -276,6 +278,10 @@ PRIVATE VOID vTask( PVOID arg )
|
|||||||
case COMMAND_CLEAR_ERROR:
|
case COMMAND_CLEAR_ERROR:
|
||||||
VARH_vSetVariableDataFromSystemU32( VARH_eError, 0x00000000 );
|
VARH_vSetVariableDataFromSystemU32( VARH_eError, 0x00000000 );
|
||||||
break;
|
break;
|
||||||
|
case COMMAND_REBOOT:
|
||||||
|
PECO_Enable( FALSE );
|
||||||
|
HAL_NVIC_SystemReset();
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -189,12 +189,12 @@ PRIVATE BOOL boReadReg( U8 u8Register, PU16 pu16Data, BOOL boIs16bit );
|
|||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
BOOL ADCD_boInitializeModule( VOID )
|
BOOL ADCD_boInitializeModule( VOID )
|
||||||
{
|
{
|
||||||
BOOL boOK = TRUE;
|
BOOL boOK = TRUE;
|
||||||
|
|
||||||
boOK &= ( ( m_pstMutexID = osMutexNew( &m_stMutexAttr ) ) == NULL ) ? FALSE : TRUE;
|
boOK &= ( ( m_pstMutexID = osMutexNew( &m_stMutexAttr ) ) == NULL ) ? FALSE : TRUE;
|
||||||
|
|
||||||
osMutexAcquire( m_pstMutexID, osWaitForever );
|
osMutexAcquire( m_pstMutexID, osWaitForever );
|
||||||
|
|
||||||
// Conifg ADC Cold
|
// Conifg ADC Cold
|
||||||
DIPO_vSetOutput( DIPO_eCS_Module );
|
DIPO_vSetOutput( DIPO_eCS_Module );
|
||||||
boOK &= boWriteReg( REG_CONFIG, (U16) CONFIG | CONFIG_FAULTSTATCLEAR, FALSE );
|
boOK &= boWriteReg( REG_CONFIG, (U16) CONFIG | CONFIG_FAULTSTATCLEAR, FALSE );
|
||||||
@ -204,10 +204,13 @@ BOOL ADCD_boInitializeModule( VOID )
|
|||||||
DIPO_vSetOutput( DIPO_eCS_Water );
|
DIPO_vSetOutput( DIPO_eCS_Water );
|
||||||
boOK &= boWriteReg( REG_CONFIG, (U16) CONFIG | CONFIG_FAULTSTATCLEAR, FALSE );
|
boOK &= boWriteReg( REG_CONFIG, (U16) CONFIG | CONFIG_FAULTSTATCLEAR, FALSE );
|
||||||
DIPO_vResetOutput( DIPO_eCS_Water );
|
DIPO_vResetOutput( DIPO_eCS_Water );
|
||||||
|
|
||||||
|
/** @todo read back configuration */
|
||||||
|
|
||||||
|
|
||||||
osMutexRelease( m_pstMutexID );
|
osMutexRelease( m_pstMutexID );
|
||||||
|
|
||||||
return( boOK );
|
return( boOK );
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
|
@ -91,7 +91,24 @@ void vDefaultTask(void *argument);
|
|||||||
|
|
||||||
/* Private user code ---------------------------------------------------------*/
|
/* Private user code ---------------------------------------------------------*/
|
||||||
/* USER CODE BEGIN 0 */
|
/* USER CODE BEGIN 0 */
|
||||||
|
/**
|
||||||
|
* @brief Vector base address configuration. It should no longer be at the start of
|
||||||
|
* flash memory but moved forward because the first part of flash is
|
||||||
|
* reserved for the bootloader. Note that this is already done by the
|
||||||
|
* bootloader before starting this program. Unfortunately, function
|
||||||
|
* SystemInit() overwrites this change again.
|
||||||
|
* @return none.
|
||||||
|
*/
|
||||||
|
static void VectorBase_Config(void)
|
||||||
|
{
|
||||||
|
/* The constant array with vectors of the vector table is declared externally in the
|
||||||
|
* c-startup code.
|
||||||
|
*/
|
||||||
|
extern const unsigned long g_pfnVectors[];
|
||||||
|
|
||||||
|
/* Remap the vector table to where the vector table is located for this program. */
|
||||||
|
SCB->VTOR = (unsigned long)&g_pfnVectors[0];
|
||||||
|
}
|
||||||
/* USER CODE END 0 */
|
/* USER CODE END 0 */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -101,7 +118,7 @@ void vDefaultTask(void *argument);
|
|||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
/* USER CODE BEGIN 1 */
|
/* USER CODE BEGIN 1 */
|
||||||
|
VectorBase_Config();
|
||||||
/* USER CODE END 1 */
|
/* USER CODE END 1 */
|
||||||
|
|
||||||
/* MCU Configuration--------------------------------------------------------*/
|
/* MCU Configuration--------------------------------------------------------*/
|
||||||
|
7
Makefile
7
Makefile
@ -201,6 +201,13 @@ $(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR)
|
|||||||
$(BUILD_DIR):
|
$(BUILD_DIR):
|
||||||
mkdir $@
|
mkdir $@
|
||||||
|
|
||||||
|
#######################################
|
||||||
|
# size
|
||||||
|
#######################################
|
||||||
|
|
||||||
|
size:
|
||||||
|
"C:\Program Files (x86)\Arm GNU Toolchain arm-none-eabi\12.2 mpacbti-bet1\bin\arm-none-eabi-size.exe" $(BUILD_DIR)/$(TARGET).elf
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# clean up
|
# clean up
|
||||||
#######################################
|
#######################################
|
||||||
|
@ -63,7 +63,7 @@ MEMORY
|
|||||||
{
|
{
|
||||||
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 64K
|
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 64K
|
||||||
RAM2 (xrw) : ORIGIN = 0x10000000, LENGTH = 16K
|
RAM2 (xrw) : ORIGIN = 0x10000000, LENGTH = 16K
|
||||||
FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 128K
|
FLASH (rx) : ORIGIN = 0x8002800, LENGTH = 128K-10K
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Define output sections */
|
/* Define output sections */
|
||||||
|
@ -63,7 +63,7 @@ MEMORY
|
|||||||
{
|
{
|
||||||
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 64K
|
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 64K
|
||||||
RAM2 (xrw) : ORIGIN = 0x10000000, LENGTH = 16K
|
RAM2 (xrw) : ORIGIN = 0x10000000, LENGTH = 16K
|
||||||
FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 128K
|
FLASH (rx) : ORIGIN = 0x8002800, LENGTH = 128K-10K
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Define output sections */
|
/* Define output sections */
|
||||||
|
@ -230,6 +230,7 @@ g_pfnVectors:
|
|||||||
.word RNG_IRQHandler
|
.word RNG_IRQHandler
|
||||||
.word FPU_IRQHandler
|
.word FPU_IRQHandler
|
||||||
.word CRS_IRQHandler
|
.word CRS_IRQHandler
|
||||||
|
.word 0x55AA11EE
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
|
Reference in New Issue
Block a user