diff --git a/targets/TARGET_Cypress/TARGET_PSOC6/cy_mbed_post_init.h b/targets/TARGET_Cypress/TARGET_PSOC6/cy_mbed_post_init.h new file mode 100644 index 0000000000..e307a7f065 --- /dev/null +++ b/targets/TARGET_Cypress/TARGET_PSOC6/cy_mbed_post_init.h @@ -0,0 +1,45 @@ +/* + * mbed Microcontroller Library + * Copyright (c) 2019, Arm Limited and affiliates. + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef CY_MBED_POST_INIT_H +#define CY_MBED_POST_INIT_H + +#include "mbed_toolchain.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/******************************************************************************* +* Function Name: cy_mbed_post_bsp_init_hook +****************************************************************************//** +* +* Function that is called immediately after cybsp_init finishes executing +* Applications can override this definition if they need to reserve resources +* early in the startup process so that later stages won't try and use them. +* For example, a timer instance might be reserved so that the us_ticker won't +* try to allocate it. +* +*******************************************************************************/ +void cy_mbed_post_bsp_init_hook(void); + +#ifdef __cplusplus +} +#endif + +#endif /* CY_MBED_POST_INIT_H */ diff --git a/targets/TARGET_Cypress/TARGET_PSOC6/mbed_overrides.c b/targets/TARGET_Cypress/TARGET_PSOC6/mbed_overrides.c index f030dd4be6..c62c895624 100644 --- a/targets/TARGET_Cypress/TARGET_PSOC6/mbed_overrides.c +++ b/targets/TARGET_Cypress/TARGET_PSOC6/mbed_overrides.c @@ -20,6 +20,7 @@ #include "cycfg.h" #include "cyhal_hwmgr.h" #include "cybsp.h" +#include "cy_mbed_post_init.h" #include "mbed_power_mgmt.h" #if MBED_CONF_RTOS_PRESENT #include "rtos_idle.h" @@ -49,6 +50,11 @@ static void active_idle_hook(void) } #endif +MBED_WEAK void cy_mbed_post_bsp_init_hook(void) +{ + /* By default, do nothing */ +} + /******************************************************************************* * Function Name: mbed_sdk_init ****************************************************************************//** @@ -71,6 +77,8 @@ void mbed_sdk_init(void) /* Set up the device based on configurator selections */ cybsp_init(); + cy_mbed_post_bsp_init_hook(); + #if CY_CPU_CORTEX_M0P /* Enable global interrupts */ __enable_irq();