Hi I am new to FreeRTOS, I am studying it by curiosity and eventually to port it to another platform. I was reading the code and found that there is a lot of "functions" that are defined, not declared. I suppose that it was made to reduce the function calls and the memory usage and generated instructios that are involved with. But this can also produce a bigger memory footprint… I didn’t make an exhaustive analysis function per function (if it is called one time in OS life cycle, it is perfect), I wonder if some of you did it ? GCC compiler (and others) can optimize source code inlining some functions, and you can even suggest GCC to do it (inline keyword); the advantage is that GCC analyse all the application, FreeRTOS developers cannot predict that ;-) , but obviously there would compatibility issues in common files (like tasks.c). Maybe one could use a defined keyword ? like #define INLINE inline in GCC ? Regards,
There is always going to be a trade off. Which macros are you concerned about in particular? The last FreeRTOS release actually removed all use of inline because it is a pain for some compilers (its not actually C).
I am not really concerned about any macro in particular, I am just wondering if anyone made some experments about converting these macros into real functions, and see how this modifies performance and memory footprint. Who knows, we couldd see some surprises ! "inline" is included in C99 standard but not in ANSI C.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.