FreeRTOS Support Archive
The FreeRTOS support forum is used to obtain active support directly from Real
Time Engineers Ltd. In return for using our top quality software and services for
free, we request you play fair and do your bit to help others too! Sign up
to receive notifications of new support topics then help where you can.
This is a read only archive of threads posted to the FreeRTOS support forum.
The archive is updated every week, so will not always contain the very latest posts.
Use these archive pages to search previous posts. Use the Live FreeRTOS Forum
link to reply to a post, or start a new support thread.
[FreeRTOS Home] [Live FreeRTOS Forum] [FAQ] [Archive Top] [June 2008 Threads] Defined functionsPosted by bacalao on June 27, 2008 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,
RE: Defined functionsPosted by Dave on June 27, 2008 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).
RE: Defined functionsPosted by bacalao on June 27, 2008 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.
|