summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Bartell <pbartell@amazon.com>2023-03-20 11:42:52 -0700
committerPaul Bartell <paul.bartell@gmail.com>2023-03-30 12:32:55 -0700
commit63cfc621edf735f8bf2e066f997cd68017466bbf (patch)
tree0ae9081ed075ee82de249408d0d06fd5e1157004
parentc6325a02ff6f5ca680f41ad9c8a91b071ff668c8 (diff)
downloadfreertos-git-63cfc621edf735f8bf2e066f997cd68017466bbf.tar.gz
Enable newlib and picolibc thread local storage
-rw-r--r--FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/FreeRTOSConfig.h17
-rw-r--r--FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/Makefile22
2 files changed, 24 insertions, 15 deletions
diff --git a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/FreeRTOSConfig.h
index c312f4272..3da46b6fb 100644
--- a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/FreeRTOSConfig.h
+++ b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/FreeRTOSConfig.h
@@ -53,15 +53,16 @@ extern void vAssertCalled( const char * pcFileName,
} \
} while( 0 )
-
-#define configQUEUE_REGISTRY_SIZE 20
-
-#ifdef PICOLIBC_TLS
+#ifdef __PICOLIBC__
#define configUSE_PICOLIBC_TLS 1
-#endif
+#endif /* __PICOLIBC__ */
+
+#ifdef __NEWLIB__
+ #define configUSE_NEWLIB_REENTRANT 1
+#endif /* __NEWLIB__ */
#define configUSE_PREEMPTION 1
-#define configUSE_TIME_SLICING 0
+#define configUSE_TIME_SLICING 1
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 0
#define configUSE_IDLE_HOOK 1
@@ -82,8 +83,10 @@ extern void vAssertCalled( const char * pcFileName,
#define configUSE_COUNTING_SEMAPHORES 1
#define configSUPPORT_DYNAMIC_ALLOCATION 1
#define configSUPPORT_STATIC_ALLOCATION 1
-#define configNUM_TX_DESCRIPTORS 15
+#define configNUM_TX_DESCRIPTORS 15
#define configSTREAM_BUFFER_TRIGGER_LEVEL_TEST_MARGIN 2
+#define configQUEUE_REGISTRY_SIZE 20
+#define configUSE_QUEUE_SETS 1
/* Set the following definitions to 1 to include the API function, or zero
* to exclude the API function. */
diff --git a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/Makefile b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/Makefile
index d4a48ebdb..4fbd9225a 100644
--- a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/Makefile
+++ b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/Makefile
@@ -67,26 +67,33 @@ endif
DEFINES := -DQEMU_SOC_MPS2 -DHEAP3
LDFLAGS = -T ./scripts/mps2_m3.ld
-ifneq ($(PICOLIBC), 1)
-LDFLAGS += -specs=nano.specs --specs=rdimon.specs -lc -lrdimon
+
+ifeq ($(PICOLIBC), 1)
+ LDFLAGS += -lc
+ CFLAGS += -specs=picolibc.specs --oslib=semihost -DPICOLIBC_INTEGER_PRINTF_SCANF -DPICOLIBC_TLS --include picolibc.h
+else
+ LDFLAGS += -lc -lrdimon
+ CFLAGS += -specs=nano.specs --specs=rdimon.specs --include newlib.h
endif
+
LDFLAGS += -Xlinker -Map=${BUILD_DIR}/output.map
LDFLAGS += -Wl,--gc-sections
-CFLAGS += -nostartfiles -mthumb -mcpu=cortex-m3 -Wno-error=implicit-function-declaration
+CFLAGS += -nostartfiles
+CFLAGS += -mthumb
+CFLAGS += -mcpu=cortex-m3
+CFLAGS += -Wno-error=implicit-function-declaration
CFLAGS += -Wno-builtin-declaration-mismatch -Werror
CFLAGS += -Wall -Wextra
CFLAGS += -ffunction-sections -fdata-sections
-ifeq ($(PICOLIBC), 1)
-CFLAGS += -specs=picolibc.specs -DPICOLIBC_INTEGER_PRINTF_SCANF
-endif
ifeq ($(DEBUG), 1)
CFLAGS += -ggdb3 -Og
else
CFLAGS += -O3
endif
- CFLAGS += -fstrict-aliasing -Wstrict-aliasing -Wno-error=address-of-packed-member
+
+CFLAGS += -fstrict-aliasing -Wstrict-aliasing -Wno-error=address-of-packed-member
OBJ_FILES := $(SOURCE_FILES:%.c=$(BUILD_DIR)/%.o)
@@ -113,4 +120,3 @@ ${BUILD_DIR}/%.o : %.c Makefile
clean:
-rm -rf build
-