Memory management setup incompatibilities between MCUXpresso IDE, GNU C/Linker for ARM, and FreeRTOS

Christoph,

the terminology you are using implies that there was something wrong or missing in FreeRTOS that needs to be bypassed. If that is your view, you are looking at it the wrong way.

The function is called …Static(), but that does not imply that one would need to pass something allocated statically to it. You just need to pass it a pointer to a memory section that you can choose freely from whereever you want, so you can fine tune the run time behavior. You could, for example, device your own memory management scheme that passes a second parameter to malloc() which is a memory range selector so you could allocate from either internal RAM or SDRAM.

FreeRTOS was/is designed as an architecture- and platform independent operating system, so you will always need to tailor it for a specific application. Frequently steps towards that tailoring are preprovisioned by the board makers, and if you are purchasing the BSP, you are entitled to support from that maker. Yet at the end of the day, the requirements of your system may even differ from whatever the board maker has put into his BSP, so you won’t have a choice but filling in those gaps yourself. Doing so is the everyday work of everybody on this forum. There is nothing wrong, dispicable or immoral about that, it is engineering.

Everybody here is eager and willing to help you with your porting issues, but you appear to expect a solution with no work of your side. That, unfortunately, is not the way it works. You have the option to pay a third party (eg an independent consultant like me or others in the forum) to prepare a platform based on your specifications onto which you can base your software, but that will cost you money. Somebody will need to do the work, and just because a lot of the know-how is offered for free does not mean that you are entitled to a care free ready to work solution for your specific needs at no cost.

2 Likes