mirror of
https://github.com/espressif/esp-idf.git
synced 2025-10-09 06:10:24 +00:00

This commit replaces the use of portNUM_PROCESSORS and configNUM_CORES macros in all of ESP-IDF. These macros are needed to realize an SMP scenario by fetching the number of active cores FreeRTOS is running on. Instead, a new Kconfig option, CONFIG_FREERTOS_NUMBER_OF_CORES, has been added as a proxy for the FreeRTOS config option, configNUMBER_OF_CORES. This new commit is now used to realize an SMP scenario in various places in ESP-IDF. [Sudeep Mohanty: Added new Kconfig option CONFIG_FREERTOS_NUMBER_OF_CORES] Signed-off-by: Sudeep Mohanty <sudeep.mohanty@espressif.com>
34 lines
1.0 KiB
C
34 lines
1.0 KiB
C
/*
|
|
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#include "sdkconfig.h"
|
|
#include <stdint.h>
|
|
#include "FreeRTOS.h"
|
|
|
|
#if ( CONFIG_FREERTOS_NUMBER_OF_CORES > 1 )
|
|
|
|
/**
|
|
* @brief Prototype for test function.
|
|
*
|
|
* A test function can be passed to vTestOnAllCores() which will run the test function from a task on each core.
|
|
*/
|
|
typedef void (* TestFunction_t)(void *);
|
|
|
|
/**
|
|
* @brief Run a test function on each core
|
|
*
|
|
* This function will internally create a task pinned to each core, where each task will call the provided test
|
|
* function. This function will block until all cores finish executing the test function.
|
|
*
|
|
* @param pxTestCode Test function
|
|
* @param pvTestCodeArg Argument provided to test function
|
|
* @param ulStackDepth Stack depth of the created tasks
|
|
* @param uxPriority Priority of the created tasks
|
|
*/
|
|
void vTestOnAllCores(TestFunction_t pxTestCode, void * pvTestCodeArg, uint32_t ulStackDepth, UBaseType_t uxPriority);
|
|
|
|
#endif /* ( CONFIG_FREERTOS_NUMBER_OF_CORES > 1 ) */
|