mirror of https://github.com/ARMmbed/mbed-os.git
Add optional post-bsp-init hook
This allows the application to inject its own resource reservations immmediately after the BSP (and therefore HAL) is initialized, ensuring that they can claim require resources before mbed tries to use them for more flexible purposes. For example, the application might want to claim a particular timer to make sure that it doesn't get picked for us_ticker (which can use any arbitrary timer instance).pull/13130/head
parent
ab5eb07e3c
commit
6a2d93ee94
|
@ -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 */
|
|
@ -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();
|
||||
|
|
Loading…
Reference in New Issue