Merge latest FreeRTOS/SMP upstream branch (#1449)

Update to head of upstream FreeRTOS/SMP branch.  Very minor changes.

Remove the custom getreent implementation, use the one that was defined
in the upstream FreeRTOS/smp branch (callback related vs. static vars).
This commit is contained in:
Earle F. Philhower, III 2023-05-16 12:13:51 -07:00 committed by GitHub
parent 16c2e8e454
commit a851a928d2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 18 additions and 5 deletions

View file

@ -162,6 +162,7 @@ extern "C" void __register_impure_ptr(struct _reent *p) {
} }
} }
extern "C" struct _reent *__wrap___getreent() __attribute__((weak));
extern "C" struct _reent *__wrap___getreent() { extern "C" struct _reent *__wrap___getreent() {
if (get_core_num() == 0) { if (get_core_num() == 0) {
return _impure_ptr; return _impure_ptr;

View file

@ -36,6 +36,7 @@ pcTaskGetName KEYWORD2
ulTaskNotifyTake KEYWORD2 ulTaskNotifyTake KEYWORD2
vTaskNotifyGiveFromISR KEYWORD2 vTaskNotifyGiveFromISR KEYWORD2
taskYIELD KEYWORD2 taskYIELD KEYWORD2
vTaskCoreAffinitySet KEYWORD2
vTaskSuspend KEYWORD2 vTaskSuspend KEYWORD2
vTaskResume KEYWORD2 vTaskResume KEYWORD2
xTaskResumeFromISR KEYWORD2 xTaskResumeFromISR KEYWORD2
@ -43,6 +44,7 @@ xTaskGetTickCount KEYWORD2
xTaskGetTickCountFromISR KEYWORD2 xTaskGetTickCountFromISR KEYWORD2
uxTaskGetNumberOfTasks KEYWORD2 uxTaskGetNumberOfTasks KEYWORD2
uxTaskGetStackHighWaterMark KEYWORD2 uxTaskGetStackHighWaterMark KEYWORD2
uxTaskGetSystemState KEYWORD2
# Instances (KEYWORD2) # Instances (KEYWORD2)

@ -1 +1 @@
Subproject commit 4588fd64342d2e0f43bc6603e7220ee708dbd9ac Subproject commit 29fdcf092a8dd25605c7c15246b05ee153bbdaa6

View file

@ -29,10 +29,7 @@
#define configUSE_TASK_PREEMPTION_DISABLE 1 #define configUSE_TASK_PREEMPTION_DISABLE 1
#define configUSE_NEWLIB_REENTRANT 1 #define configUSE_NEWLIB_REENTRANT 1
#define configNEWLIB_REENTRANT_IS_DYNAMIC 0 /* Note that we have a different config option, portSET_IMPURE_PTR */ #define configNEWLIB_REENTRANT_IS_DYNAMIC 1
#include <reent.h>
extern void __register_impure_ptr(struct _reent *p);
#define portSET_IMPURE_PTR(x) __register_impure_ptr(x)
/* Run time stats related definitions. */ /* Run time stats related definitions. */
void vMainConfigureTimerForRunTimeStats(void); void vMainConfigureTimerForRunTimeStats(void);

View file

@ -1 +1,14 @@
#include "../lib/FreeRTOS-Kernel/tasks.c" #include "../lib/FreeRTOS-Kernel/tasks.c"
//See https://github.com/FreeRTOS/FreeRTOS-Kernel/pull/496
struct _reent* __wrap___getreent(void) {
// No lock needed because if this changes, we won't be running anymore.
TCB_t *pxCurTask = xTaskGetCurrentTaskHandle();
if (pxCurTask == NULL) {
// No task running. Return global struct.
return _GLOBAL_REENT;
} else {
// We have a task; return its reentrant struct.
return &pxCurTask->xNewLib_reent;
}
}