mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-11 13:00:19 +00:00
freertos: Rename CORE_ID_PRO/CORE_ID_APP macros to CORE_ID_REGVAL_xxx
Old values remain for compatibility. As suggested in https://github.com/espressif/esp-idf/issues/2567
This commit is contained in:

committed by
Angus Gratton

parent
a40e164988
commit
4fe74b8f64
@@ -138,13 +138,13 @@ typedef struct {
|
|||||||
/* owner field values:
|
/* owner field values:
|
||||||
* 0 - Uninitialized (invalid)
|
* 0 - Uninitialized (invalid)
|
||||||
* portMUX_FREE_VAL - Mux is free, can be locked by either CPU
|
* portMUX_FREE_VAL - Mux is free, can be locked by either CPU
|
||||||
* CORE_ID_PRO / CORE_ID_APP - Mux is locked to the particular core
|
* CORE_ID_REGVAL_PRO / CORE_ID_REGVAL_APP - Mux is locked to the particular core
|
||||||
*
|
*
|
||||||
* Note that for performance reasons we use the full Xtensa CORE ID values
|
* Note that for performance reasons we use the full Xtensa CORE ID values
|
||||||
* (CORE_ID_PRO, CORE_ID_APP) and not the 0,1 values which are used in most
|
* (CORE_ID_REGVAL_PRO, CORE_ID_REGVAL_APP) and not the 0,1 values which are used in most
|
||||||
* other FreeRTOS code.
|
* other FreeRTOS code.
|
||||||
*
|
*
|
||||||
* Any value other than portMUX_FREE_VAL, CORE_ID_PRO, CORE_ID_APP indicates corruption
|
* Any value other than portMUX_FREE_VAL, CORE_ID_REGVAL_PRO, CORE_ID_REGVAL_APP indicates corruption
|
||||||
*/
|
*/
|
||||||
uint32_t owner;
|
uint32_t owner;
|
||||||
/* count field:
|
/* count field:
|
||||||
|
@@ -325,11 +325,17 @@ STRUCT_END(XtSolFrame)
|
|||||||
.endm
|
.endm
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Note: These are different to xCoreID used in ESP-IDF FreeRTOS, we just use
|
/* Note: These are different to xCoreID used in ESP-IDF FreeRTOS, most places use
|
||||||
0 and 1 which are determined by checking bit 13 (see previous comment)
|
0 and 1 which are determined by checking bit 13 (see previous comment)
|
||||||
*/
|
*/
|
||||||
#define CORE_ID_PRO 0xCDCD
|
#define CORE_ID_REGVAL_PRO 0xCDCD
|
||||||
#define CORE_ID_APP 0xABAB
|
#define CORE_ID_REGVAL_APP 0xABAB
|
||||||
|
|
||||||
|
/* Included for compatibility, recommend using CORE_ID_REGVAL_PRO instead */
|
||||||
|
#define CORE_ID_PRO CORE_ID_REGVAL_PRO
|
||||||
|
|
||||||
|
/* Included for compatibility, recommend using CORE_ID_REGVAL_APP instead */
|
||||||
|
#define CORE_ID_APP CORE_ID_REGVAL_APP
|
||||||
|
|
||||||
/*
|
/*
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
|
@@ -49,7 +49,7 @@
|
|||||||
#include "soc/soc_memory_layout.h"
|
#include "soc/soc_memory_layout.h"
|
||||||
|
|
||||||
/* XOR one core ID with this value to get the other core ID */
|
/* XOR one core ID with this value to get the other core ID */
|
||||||
#define CORE_ID_XOR_SWAP (CORE_ID_PRO ^ CORE_ID_APP)
|
#define CORE_ID_REGVAL_XOR_SWAP (CORE_ID_REGVAL_PRO ^ CORE_ID_REGVAL_APP)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -61,7 +61,7 @@ PORTMUX_AQUIRE_MUX_FN_NAME(portMUX_TYPE *mux, int timeout_cycles) {
|
|||||||
|
|
||||||
#ifdef CONFIG_FREERTOS_PORTMUX_DEBUG
|
#ifdef CONFIG_FREERTOS_PORTMUX_DEBUG
|
||||||
uint32_t owner = mux->owner;
|
uint32_t owner = mux->owner;
|
||||||
if (owner != portMUX_FREE_VAL && owner != CORE_ID_PRO && owner != CORE_ID_APP) {
|
if (owner != portMUX_FREE_VAL && owner != CORE_ID_REGVAL_PRO && owner != CORE_ID_REGVAL_APP) {
|
||||||
ets_printf("ERROR: vPortCPUAcquireMutex: mux %p is uninitialized (0x%X)! Called from %s line %d.\n", mux, owner, fnName, line);
|
ets_printf("ERROR: vPortCPUAcquireMutex: mux %p is uninitialized (0x%X)! Called from %s line %d.\n", mux, owner, fnName, line);
|
||||||
mux->owner=portMUX_FREE_VAL;
|
mux->owner=portMUX_FREE_VAL;
|
||||||
}
|
}
|
||||||
@@ -70,13 +70,13 @@ PORTMUX_AQUIRE_MUX_FN_NAME(portMUX_TYPE *mux, int timeout_cycles) {
|
|||||||
/* Spin until we own the core */
|
/* Spin until we own the core */
|
||||||
|
|
||||||
RSR(PRID, coreID);
|
RSR(PRID, coreID);
|
||||||
/* Note: coreID is the full 32 bit core ID (CORE_ID_PRO/CORE_ID_APP),
|
/* Note: coreID is the full 32 bit core ID (CORE_ID_REGVAL_PRO/CORE_ID_REGVAL_APP),
|
||||||
not the 0/1 value returned by xPortGetCoreID()
|
not the 0/1 value returned by xPortGetCoreID()
|
||||||
*/
|
*/
|
||||||
otherCoreID = CORE_ID_XOR_SWAP ^ coreID;
|
otherCoreID = CORE_ID_REGVAL_XOR_SWAP ^ coreID;
|
||||||
do {
|
do {
|
||||||
/* mux->owner should be one of portMUX_FREE_VAL, CORE_ID_PRO,
|
/* mux->owner should be one of portMUX_FREE_VAL, CORE_ID_REGVAL_PRO,
|
||||||
CORE_ID_APP:
|
CORE_ID_REGVAL_APP:
|
||||||
|
|
||||||
- If portMUX_FREE_VAL, we want to atomically set to 'coreID'.
|
- If portMUX_FREE_VAL, we want to atomically set to 'coreID'.
|
||||||
- If "our" coreID, we can drop through immediately.
|
- If "our" coreID, we can drop through immediately.
|
||||||
@@ -138,7 +138,7 @@ static inline void PORTMUX_RELEASE_MUX_FN_NAME(portMUX_TYPE *mux) {
|
|||||||
mux->lastLockedFn=fnName;
|
mux->lastLockedFn=fnName;
|
||||||
mux->lastLockedLine=line;
|
mux->lastLockedLine=line;
|
||||||
uint32_t owner = mux->owner;
|
uint32_t owner = mux->owner;
|
||||||
if (owner != portMUX_FREE_VAL && owner != CORE_ID_PRO && owner != CORE_ID_APP) {
|
if (owner != portMUX_FREE_VAL && owner != CORE_ID_REGVAL_PRO && owner != CORE_ID_REGVAL_APP) {
|
||||||
ets_printf("ERROR: vPortCPUReleaseMutex: mux %p is invalid (0x%x)!\n", mux, mux->owner);
|
ets_printf("ERROR: vPortCPUReleaseMutex: mux %p is invalid (0x%x)!\n", mux, mux->owner);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user