I have a c++ project for RT1176 using MCUExpresso 11.6 for development. Uses FreeRTOS with heap_4. Installed SDK 2.12.0 and performed "Refresh SDK Components". After Clean and Build, found that the application would get MemManager fault when attempted to allocate memory pool or instance an object. After some investigation, discovered the file startup_mimxrt1176_cm7.c (which is the 'c' start-up file) was put in the project's startup folder The startup folder already contained startup_mimxrt1176_cm7.cpp for a c++ project. See below, but it looks like the autogenerated ../Debug/startup/subdir.mk builds both startup_mimxrt1176_cm7.cpp and .c, but builds the .c version last, which means the 'cpp' version's .d obj file is overwritten by the 'c' verison. There are no build errors or warnings. The firmware starts up, but fails when it attempts to allocate memory off the heap for a memory pool or task. [Memory allocation for some things such as queues are okay for some reason.]
Is this adding startup_mimxrt1176_cm7.c to the startup folder a bug? Or, is there something I should do to prevent this from happening during future SDK updates? Note that I've been through updates of 2.9.x, 2.10.x, and 2.11.x prior to updating to SDK 2.12.0. Previously did not have a problem with startup_mimxrt1176_cm7.c being added to the startup folder. Let me know if this should be posted to a different board. Thank you.
Excerpt from ...\Debug\startup\subdir.mk showing that both startup_mimxrt1176_cm7.cpp and .c are built.
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
# Add inputs and outputs from these tool invocations to the build variables
CPP_SRCS += \
../startup/startup_mimxrt1176_cm7.cpp
C_SRCS += \
../startup/boot_multicore_slave.c \
../startup/startup_mimxrt1176_cm7.c <= This overwrites the .c++ version's startup file.
CPP_DEPS += \
./startup/startup_mimxrt1176_cm7.d
C_DEPS += \
./startup/boot_multicore_slave.d \
./startup/startup_mimxrt1176_cm7.d
OBJS += \
./startup/boot_multicore_slave.o \
./startup/startup_mimxrt1176_cm7.o