kopia lustrzana https://github.com/micropython/micropython
renesas-ra: Consolidate hal_entry.c code and remove hal_entry() func.
The hal_entry.c code is duplicated across all boards, so consolidate it to a common ra_hal.c file. And remove the hal_entry() function because it simply calls main(). Signed-off-by: Damien George <damien@micropython.org>pull/11590/head
rodzic
b57b079bbe
commit
324d01eb52
|
@ -297,6 +297,7 @@ DRIVERS_SRC_C += $(addprefix drivers/,\
|
||||||
SRC_C += \
|
SRC_C += \
|
||||||
boardctrl.c \
|
boardctrl.c \
|
||||||
main.c \
|
main.c \
|
||||||
|
ra_hal.c \
|
||||||
ra_it.c \
|
ra_it.c \
|
||||||
mphalport.c \
|
mphalport.c \
|
||||||
mpthreadport.c \
|
mpthreadport.c \
|
||||||
|
@ -325,13 +326,11 @@ SRC_C += \
|
||||||
flashbdev.c \
|
flashbdev.c \
|
||||||
storage.c \
|
storage.c \
|
||||||
fatfs_port.c \
|
fatfs_port.c \
|
||||||
$(BOARD_DIR)/src/hal_entry.c \
|
|
||||||
$(wildcard $(BOARD_DIR)/*.c)
|
$(wildcard $(BOARD_DIR)/*.c)
|
||||||
|
|
||||||
SRC_C += $(addprefix $(BOARD_DIR)/ra_gen/,\
|
SRC_C += $(addprefix $(BOARD_DIR)/ra_gen/,\
|
||||||
common_data.c \
|
common_data.c \
|
||||||
hal_data.c \
|
hal_data.c \
|
||||||
main.c \
|
|
||||||
pin_data.c \
|
pin_data.c \
|
||||||
vector_data.c \
|
vector_data.c \
|
||||||
)
|
)
|
||||||
|
|
|
@ -27,7 +27,5 @@ extern const flash_cfg_t g_flash0_cfg;
|
||||||
void NULL(flash_callback_args_t *p_args);
|
void NULL(flash_callback_args_t *p_args);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void hal_entry(void);
|
|
||||||
|
|
||||||
FSP_FOOTER
|
FSP_FOOTER
|
||||||
#endif /* HAL_DATA_H_ */
|
#endif /* HAL_DATA_H_ */
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
/* generated main source file - do not edit */
|
|
||||||
#include "hal_data.h"
|
|
||||||
int main(void) {
|
|
||||||
hal_entry();
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -1,58 +0,0 @@
|
||||||
#include "hal_data.h"
|
|
||||||
|
|
||||||
FSP_CPP_HEADER
|
|
||||||
void R_BSP_WarmStart(bsp_warm_start_event_t event);
|
|
||||||
FSP_CPP_FOOTER
|
|
||||||
|
|
||||||
void ra_main(uint32_t reset_mode);
|
|
||||||
|
|
||||||
/*******************************************************************************************************************//**
|
|
||||||
* main() is generated by the RA Configuration editor and is used to generate threads if an RTOS is used. This function
|
|
||||||
* is called by main() when no RTOS is used.
|
|
||||||
**********************************************************************************************************************/
|
|
||||||
void hal_entry(void) {
|
|
||||||
/* TODO: add your own code here */
|
|
||||||
|
|
||||||
ra_main(1);
|
|
||||||
|
|
||||||
#if BSP_TZ_SECURE_BUILD
|
|
||||||
/* Enter non-secure code */
|
|
||||||
R_BSP_NonSecureEnter();
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
/*******************************************************************************************************************//**
|
|
||||||
* This function is called at various points during the startup process. This implementation uses the event that is
|
|
||||||
* called right before main() to set up the pins.
|
|
||||||
*
|
|
||||||
* @param[in] event Where at in the start up process the code is currently at
|
|
||||||
**********************************************************************************************************************/
|
|
||||||
void R_BSP_WarmStart(bsp_warm_start_event_t event) {
|
|
||||||
if (BSP_WARM_START_RESET == event) {
|
|
||||||
#if BSP_FEATURE_FLASH_LP_VERSION != 0
|
|
||||||
|
|
||||||
/* Enable reading from data flash. */
|
|
||||||
R_FACI_LP->DFLCTL = 1U;
|
|
||||||
|
|
||||||
/* Would normally have to wait tDSTOP(6us) for data flash recovery. Placing the enable here, before clock and
|
|
||||||
* C runtime initialization, should negate the need for a delay since the initialization will typically take more than 6us. */
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
if (BSP_WARM_START_POST_C == event) {
|
|
||||||
/* C runtime environment and system clocks are setup. */
|
|
||||||
|
|
||||||
/* Configure pins. */
|
|
||||||
R_IOPORT_Open(&g_ioport_ctrl, &g_bsp_pin_cfg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#if BSP_TZ_SECURE_BUILD
|
|
||||||
|
|
||||||
BSP_CMSE_NONSECURE_ENTRY void template_nonsecure_callable();
|
|
||||||
|
|
||||||
/* Trustzone Secure Projects require at least one nonsecure callable function in order to build (Remove this if it is not required to build). */
|
|
||||||
BSP_CMSE_NONSECURE_ENTRY void template_nonsecure_callable() {
|
|
||||||
|
|
||||||
}
|
|
||||||
#endif
|
|
|
@ -27,7 +27,5 @@ extern const flash_cfg_t g_flash0_cfg;
|
||||||
void NULL(flash_callback_args_t *p_args);
|
void NULL(flash_callback_args_t *p_args);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void hal_entry(void);
|
|
||||||
|
|
||||||
FSP_FOOTER
|
FSP_FOOTER
|
||||||
#endif /* HAL_DATA_H_ */
|
#endif /* HAL_DATA_H_ */
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
/* generated main source file - do not edit */
|
|
||||||
#include "hal_data.h"
|
|
||||||
int main(void) {
|
|
||||||
hal_entry();
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -1,59 +0,0 @@
|
||||||
#include "stdbool.h"
|
|
||||||
#include "hal_data.h"
|
|
||||||
|
|
||||||
FSP_CPP_HEADER
|
|
||||||
void R_BSP_WarmStart(bsp_warm_start_event_t event);
|
|
||||||
FSP_CPP_FOOTER
|
|
||||||
|
|
||||||
void ra_main(uint32_t reset_mode);
|
|
||||||
|
|
||||||
/*******************************************************************************************************************//**
|
|
||||||
* main() is generated by the RA Configuration editor and is used to generate threads if an RTOS is used. This function
|
|
||||||
* is called by main() when no RTOS is used.
|
|
||||||
**********************************************************************************************************************/
|
|
||||||
void hal_entry(void) {
|
|
||||||
/* TODO: add your own code here */
|
|
||||||
|
|
||||||
ra_main(1);
|
|
||||||
|
|
||||||
#if BSP_TZ_SECURE_BUILD
|
|
||||||
/* Enter non-secure code */
|
|
||||||
R_BSP_NonSecureEnter();
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
/*******************************************************************************************************************//**
|
|
||||||
* This function is called at various points during the startup process. This implementation uses the event that is
|
|
||||||
* called right before main() to set up the pins.
|
|
||||||
*
|
|
||||||
* @param[in] event Where at in the start up process the code is currently at
|
|
||||||
**********************************************************************************************************************/
|
|
||||||
void R_BSP_WarmStart(bsp_warm_start_event_t event) {
|
|
||||||
if (BSP_WARM_START_RESET == event) {
|
|
||||||
#if BSP_FEATURE_FLASH_LP_VERSION != 0
|
|
||||||
|
|
||||||
/* Enable reading from data flash. */
|
|
||||||
R_FACI_LP->DFLCTL = 1U;
|
|
||||||
|
|
||||||
/* Would normally have to wait tDSTOP(6us) for data flash recovery. Placing the enable here, before clock and
|
|
||||||
* C runtime initialization, should negate the need for a delay since the initialization will typically take more than 6us. */
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
if (BSP_WARM_START_POST_C == event) {
|
|
||||||
/* C runtime environment and system clocks are setup. */
|
|
||||||
|
|
||||||
/* Configure pins. */
|
|
||||||
R_IOPORT_Open(&g_ioport_ctrl, &g_bsp_pin_cfg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#if BSP_TZ_SECURE_BUILD
|
|
||||||
|
|
||||||
BSP_CMSE_NONSECURE_ENTRY void template_nonsecure_callable();
|
|
||||||
|
|
||||||
/* Trustzone Secure Projects require at least one nonsecure callable function in order to build (Remove this if it is not required to build). */
|
|
||||||
BSP_CMSE_NONSECURE_ENTRY void template_nonsecure_callable() {
|
|
||||||
|
|
||||||
}
|
|
||||||
#endif
|
|
|
@ -27,7 +27,5 @@ extern const flash_cfg_t g_flash0_cfg;
|
||||||
void NULL(flash_callback_args_t *p_args);
|
void NULL(flash_callback_args_t *p_args);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void hal_entry(void);
|
|
||||||
|
|
||||||
FSP_FOOTER
|
FSP_FOOTER
|
||||||
#endif /* HAL_DATA_H_ */
|
#endif /* HAL_DATA_H_ */
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
/* generated main source file - do not edit */
|
|
||||||
#include "hal_data.h"
|
|
||||||
int main(void) {
|
|
||||||
hal_entry();
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -1,58 +0,0 @@
|
||||||
#include "hal_data.h"
|
|
||||||
|
|
||||||
FSP_CPP_HEADER
|
|
||||||
void R_BSP_WarmStart(bsp_warm_start_event_t event);
|
|
||||||
FSP_CPP_FOOTER
|
|
||||||
|
|
||||||
void ra_main(uint32_t reset_mode);
|
|
||||||
|
|
||||||
/*******************************************************************************************************************//**
|
|
||||||
* main() is generated by the RA Configuration editor and is used to generate threads if an RTOS is used. This function
|
|
||||||
* is called by main() when no RTOS is used.
|
|
||||||
**********************************************************************************************************************/
|
|
||||||
void hal_entry(void) {
|
|
||||||
/* TODO: add your own code here */
|
|
||||||
|
|
||||||
ra_main(1);
|
|
||||||
|
|
||||||
#if BSP_TZ_SECURE_BUILD
|
|
||||||
/* Enter non-secure code */
|
|
||||||
R_BSP_NonSecureEnter();
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
/*******************************************************************************************************************//**
|
|
||||||
* This function is called at various points during the startup process. This implementation uses the event that is
|
|
||||||
* called right before main() to set up the pins.
|
|
||||||
*
|
|
||||||
* @param[in] event Where at in the start up process the code is currently at
|
|
||||||
**********************************************************************************************************************/
|
|
||||||
void R_BSP_WarmStart(bsp_warm_start_event_t event) {
|
|
||||||
if (BSP_WARM_START_RESET == event) {
|
|
||||||
#if BSP_FEATURE_FLASH_LP_VERSION != 0
|
|
||||||
|
|
||||||
/* Enable reading from data flash. */
|
|
||||||
R_FACI_LP->DFLCTL = 1U;
|
|
||||||
|
|
||||||
/* Would normally have to wait tDSTOP(6us) for data flash recovery. Placing the enable here, before clock and
|
|
||||||
* C runtime initialization, should negate the need for a delay since the initialization will typically take more than 6us. */
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
if (BSP_WARM_START_POST_C == event) {
|
|
||||||
/* C runtime environment and system clocks are setup. */
|
|
||||||
|
|
||||||
/* Configure pins. */
|
|
||||||
R_IOPORT_Open(&g_ioport_ctrl, &g_bsp_pin_cfg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#if BSP_TZ_SECURE_BUILD
|
|
||||||
|
|
||||||
BSP_CMSE_NONSECURE_ENTRY void template_nonsecure_callable();
|
|
||||||
|
|
||||||
/* Trustzone Secure Projects require at least one nonsecure callable function in order to build (Remove this if it is not required to build). */
|
|
||||||
BSP_CMSE_NONSECURE_ENTRY void template_nonsecure_callable() {
|
|
||||||
|
|
||||||
}
|
|
||||||
#endif
|
|
|
@ -23,6 +23,5 @@ extern const flash_instance_t g_flash0;
|
||||||
extern flash_hp_instance_ctrl_t g_flash0_ctrl;
|
extern flash_hp_instance_ctrl_t g_flash0_ctrl;
|
||||||
extern const flash_cfg_t g_flash0_cfg;
|
extern const flash_cfg_t g_flash0_cfg;
|
||||||
|
|
||||||
void hal_entry(void);
|
|
||||||
FSP_FOOTER
|
FSP_FOOTER
|
||||||
#endif /* HAL_DATA_H_ */
|
#endif /* HAL_DATA_H_ */
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
/* generated main source file - do not edit */
|
|
||||||
#include "hal_data.h"
|
|
||||||
int main(void) {
|
|
||||||
hal_entry();
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -1,58 +0,0 @@
|
||||||
#include "hal_data.h"
|
|
||||||
|
|
||||||
FSP_CPP_HEADER
|
|
||||||
void R_BSP_WarmStart(bsp_warm_start_event_t event);
|
|
||||||
FSP_CPP_FOOTER
|
|
||||||
|
|
||||||
void ra_main(uint32_t reset_mode);
|
|
||||||
|
|
||||||
/*******************************************************************************************************************//**
|
|
||||||
* main() is generated by the RA Configuration editor and is used to generate threads if an RTOS is used. This function
|
|
||||||
* is called by main() when no RTOS is used.
|
|
||||||
**********************************************************************************************************************/
|
|
||||||
void hal_entry(void) {
|
|
||||||
/* TODO: add your own code here */
|
|
||||||
|
|
||||||
ra_main(1);
|
|
||||||
|
|
||||||
#if BSP_TZ_SECURE_BUILD
|
|
||||||
/* Enter non-secure code */
|
|
||||||
R_BSP_NonSecureEnter();
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
/*******************************************************************************************************************//**
|
|
||||||
* This function is called at various points during the startup process. This implementation uses the event that is
|
|
||||||
* called right before main() to set up the pins.
|
|
||||||
*
|
|
||||||
* @param[in] event Where at in the start up process the code is currently at
|
|
||||||
**********************************************************************************************************************/
|
|
||||||
void R_BSP_WarmStart(bsp_warm_start_event_t event) {
|
|
||||||
if (BSP_WARM_START_RESET == event) {
|
|
||||||
#if BSP_FEATURE_FLASH_LP_VERSION != 0
|
|
||||||
|
|
||||||
/* Enable reading from data flash. */
|
|
||||||
R_FACI_LP->DFLCTL = 1U;
|
|
||||||
|
|
||||||
/* Would normally have to wait tDSTOP(6us) for data flash recovery. Placing the enable here, before clock and
|
|
||||||
* C runtime initialization, should negate the need for a delay since the initialization will typically take more than 6us. */
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
if (BSP_WARM_START_POST_C == event) {
|
|
||||||
/* C runtime environment and system clocks are setup. */
|
|
||||||
|
|
||||||
/* Configure pins. */
|
|
||||||
R_IOPORT_Open(&g_ioport_ctrl, &g_bsp_pin_cfg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#if BSP_TZ_SECURE_BUILD
|
|
||||||
|
|
||||||
BSP_CMSE_NONSECURE_ENTRY void template_nonsecure_callable();
|
|
||||||
|
|
||||||
/* Trustzone Secure Projects require at least one nonsecure callable function in order to build (Remove this if it is not required to build). */
|
|
||||||
BSP_CMSE_NONSECURE_ENTRY void template_nonsecure_callable() {
|
|
||||||
|
|
||||||
}
|
|
||||||
#endif
|
|
|
@ -24,6 +24,5 @@ extern const flash_instance_t g_flash0;
|
||||||
extern flash_lp_instance_ctrl_t g_flash0_ctrl;
|
extern flash_lp_instance_ctrl_t g_flash0_ctrl;
|
||||||
extern const flash_cfg_t g_flash0_cfg;
|
extern const flash_cfg_t g_flash0_cfg;
|
||||||
|
|
||||||
void hal_entry(void);
|
|
||||||
FSP_FOOTER
|
FSP_FOOTER
|
||||||
#endif /* HAL_DATA_H_ */
|
#endif /* HAL_DATA_H_ */
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
/* generated main source file - do not edit */
|
|
||||||
#include "hal_data.h"
|
|
||||||
int main(void) {
|
|
||||||
hal_entry();
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -1,58 +0,0 @@
|
||||||
#include "hal_data.h"
|
|
||||||
|
|
||||||
FSP_CPP_HEADER
|
|
||||||
void R_BSP_WarmStart(bsp_warm_start_event_t event);
|
|
||||||
FSP_CPP_FOOTER
|
|
||||||
|
|
||||||
void ra_main(uint32_t reset_mode);
|
|
||||||
|
|
||||||
/*******************************************************************************************************************//**
|
|
||||||
* main() is generated by the RA Configuration editor and is used to generate threads if an RTOS is used. This function
|
|
||||||
* is called by main() when no RTOS is used.
|
|
||||||
**********************************************************************************************************************/
|
|
||||||
void hal_entry(void) {
|
|
||||||
/* TODO: add your own code here */
|
|
||||||
|
|
||||||
ra_main(1);
|
|
||||||
|
|
||||||
#if BSP_TZ_SECURE_BUILD
|
|
||||||
/* Enter non-secure code */
|
|
||||||
R_BSP_NonSecureEnter();
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
/*******************************************************************************************************************//**
|
|
||||||
* This function is called at various points during the startup process. This implementation uses the event that is
|
|
||||||
* called right before main() to set up the pins.
|
|
||||||
*
|
|
||||||
* @param[in] event Where at in the start up process the code is currently at
|
|
||||||
**********************************************************************************************************************/
|
|
||||||
void R_BSP_WarmStart(bsp_warm_start_event_t event) {
|
|
||||||
if (BSP_WARM_START_RESET == event) {
|
|
||||||
#if BSP_FEATURE_FLASH_LP_VERSION != 0
|
|
||||||
|
|
||||||
/* Enable reading from data flash. */
|
|
||||||
R_FACI_LP->DFLCTL = 1U;
|
|
||||||
|
|
||||||
/* Would normally have to wait tDSTOP(6us) for data flash recovery. Placing the enable here, before clock and
|
|
||||||
* C runtime initialization, should negate the need for a delay since the initialization will typically take more than 6us. */
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
if (BSP_WARM_START_POST_C == event) {
|
|
||||||
/* C runtime environment and system clocks are setup. */
|
|
||||||
|
|
||||||
/* Configure pins. */
|
|
||||||
R_IOPORT_Open(&g_ioport_ctrl, &g_bsp_pin_cfg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#if BSP_TZ_SECURE_BUILD
|
|
||||||
|
|
||||||
BSP_CMSE_NONSECURE_ENTRY void template_nonsecure_callable();
|
|
||||||
|
|
||||||
/* Trustzone Secure Projects require at least one nonsecure callable function in order to build (Remove this if it is not required to build). */
|
|
||||||
BSP_CMSE_NONSECURE_ENTRY void template_nonsecure_callable() {
|
|
||||||
|
|
||||||
}
|
|
||||||
#endif
|
|
|
@ -210,7 +210,7 @@ MP_NOINLINE STATIC bool init_flash_fs(uint reset_mode) {
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void ra_main(uint32_t reset_mode) {
|
int main(void) {
|
||||||
// Hook for a board to run code at start up, for example check if a
|
// Hook for a board to run code at start up, for example check if a
|
||||||
// bootloader should be entered instead of the main application.
|
// bootloader should be entered instead of the main application.
|
||||||
MICROPY_BOARD_STARTUP();
|
MICROPY_BOARD_STARTUP();
|
||||||
|
@ -256,7 +256,7 @@ void ra_main(uint32_t reset_mode) {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
boardctrl_state_t state;
|
boardctrl_state_t state;
|
||||||
state.reset_mode = reset_mode;
|
state.reset_mode = 1;
|
||||||
state.log_soft_reset = false;
|
state.log_soft_reset = false;
|
||||||
|
|
||||||
MICROPY_BOARD_BEFORE_SOFT_RESET_LOOP(&state);
|
MICROPY_BOARD_BEFORE_SOFT_RESET_LOOP(&state);
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
#include "hal_data.h"
|
||||||
|
|
||||||
|
void R_BSP_WarmStart(bsp_warm_start_event_t event);
|
||||||
|
|
||||||
|
// This function is called at various points during the startup process.
|
||||||
|
// event: where in the start up process the code is currently at.
|
||||||
|
void R_BSP_WarmStart(bsp_warm_start_event_t event) {
|
||||||
|
if (BSP_WARM_START_RESET == event) {
|
||||||
|
#if BSP_FEATURE_FLASH_LP_VERSION != 0
|
||||||
|
|
||||||
|
// Enable reading from data flash.
|
||||||
|
R_FACI_LP->DFLCTL = 1U;
|
||||||
|
|
||||||
|
// Would normally have to wait tDSTOP(6us) for data flash recovery. Placing the
|
||||||
|
// enable here, before clock and C runtime initialization, should negate the need
|
||||||
|
// for a delay since the initialization will typically take more than 6us.
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
if (BSP_WARM_START_POST_C == event) {
|
||||||
|
// At this point, C runtime environment and system clocks are set up.
|
||||||
|
|
||||||
|
// Configure pins.
|
||||||
|
R_IOPORT_Open(&g_ioport_ctrl, &g_bsp_pin_cfg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#if BSP_TZ_SECURE_BUILD
|
||||||
|
|
||||||
|
BSP_CMSE_NONSECURE_ENTRY void template_nonsecure_callable();
|
||||||
|
|
||||||
|
// Trustzone Secure Projects require at least one nonsecure callable function in order to build.
|
||||||
|
BSP_CMSE_NONSECURE_ENTRY void template_nonsecure_callable() {
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
Ładowanie…
Reference in New Issue