Joel Bodenmann Posted May 10, 2014 Report Share Posted May 10, 2014 We'd welcome any feedback and bug fixes for the FreeRTOS support that is now part of the master branch and therefore the upcoming 2.1 release.~ Tectu Link to comment Share on other sites More sharing options...
m_b Posted August 6, 2014 Report Share Posted August 6, 2014 I am currently running uGFX (git download from 2014/07/31) with FreeRTOS (v7.3.0) on an Altera NiosII target platform (gcc v4.5.3) with a framebuffer display driver.My problems were: freertos.h files in src\gos\gos module conflicted the original FreeRTOS.h file. I renamed them to freertos_gfx.h/c Missing type definitions in freertos_gfx.h such as, int8_t, uint8_t, etc. This might work on other platforms without modifications? freertos_gfx.c: renamed portTICK_PERIOD_MS to portTICK_RATE_MS. Again, this might be a platform/port/version issue. Link to comment Share on other sites More sharing options...
Joel Bodenmann Posted August 6, 2014 Author Report Share Posted August 6, 2014 Thank you very much for your feedback.We are aware of the conflicting file names on a case insensitive operating system since a short while. The changes have been made but not yet tested and pushed. We will push a fix to the repository this evening (GTM+01:00).About the definitions: Which FreeRTOS version are you using? We have tested with FreeRTOS 8.x without any problems so far. Neither did any user report a conflict there.~ Tectu Link to comment Share on other sites More sharing options...
m_b Posted August 6, 2014 Report Share Posted August 6, 2014 I am running FreeRTOS v7.3.0.A quick look-up on the FreeRTOS homepage might give an explanation:http://www.freertos.org/upgrading-to-FreeRTOS-V8.html#stdint Link to comment Share on other sites More sharing options...
Joel Bodenmann Posted August 6, 2014 Author Report Share Posted August 6, 2014 Thank you for the link. We'll take a look if it's possible to make the types conditional by reading out the FreeRTOS version (is there such a macro?) at compile time. We are doing the same to support ChibiOS/RT 2.x and 3.x in the same way.~ Tectu Link to comment Share on other sites More sharing options...
m_b Posted August 6, 2014 Report Share Posted August 6, 2014 Yes there is (defined in task.h)Before FreeRTOS 8.x.x#define tskKERNEL_VERSION_NUMBER "V7.3.0"From FreeRTOS 8.x.x on#define tskKERNEL_VERSION_NUMBER "V8.0.1"#define tskKERNEL_VERSION_MAJOR 8#define tskKERNEL_VERSION_MINOR 0#define tskKERNEL_VERSION_BUILD 1 Link to comment Share on other sites More sharing options...
Joel Bodenmann Posted August 6, 2014 Author Report Share Posted August 6, 2014 Too bad that they don't have separate macros for each individual digit before 8.x.I don't know FreeRTOS that well, what do you think about this?#if tskKERNEL_VERSION_MAJOR == 8 /* Types for 8.x */#else /* Types for 7.x (and lower?) */I assume taht this should work as the tskKERNEL_VERSION_MAJOR macro should not be implemented at all at any < 8.x release.~ Tectu Link to comment Share on other sites More sharing options...
m_b Posted August 6, 2014 Report Share Posted August 6, 2014 Yes that should work. Link to comment Share on other sites More sharing options...
steved Posted August 6, 2014 Report Share Posted August 6, 2014 Too bad that they don't have separate macros for each individual digit before 8.x.#if tskKERNEL_VERSION_MAJOR == 8 /* Types for 8.x */#else /* Types for 7.x (and lower?) */I assume taht this should work as the tskKERNEL_VERSION_MAJOR macro should not be implemented at all at any < 8.x release.~ TectuAre undefined preprocessor symbols handled consistently across compilers?Defensive coding might suggest:#ifdef tskKERNEL_VERSION_MAJOR#if tskKERNEL_VERSION_MAJOR == 8 /* Types for 8.x */#else /* Types for 7.x (and lower?) */#endif#else /* Types for 7.x (and lower?) */#endif Link to comment Share on other sites More sharing options...
Joel Bodenmann Posted August 6, 2014 Author Report Share Posted August 6, 2014 Are undefined preprocessor symbols handled consistently across compilers?I'm not sure, that's why I am asking ;-)Thank you for your suggestion. Looks like a safe way to go.~ Tectu Link to comment Share on other sites More sharing options...
inmarket Posted August 7, 2014 Report Share Posted August 7, 2014 The c standard says that undefined macro variables if used in an expression will evaluate as 0.Not all compilers always follow the rules though.Try...#if defined (var) && var == 8 Link to comment Share on other sites More sharing options...
Joel Bodenmann Posted August 8, 2014 Author Report Share Posted August 8, 2014 We have added the missing type definitions for the FreeRTOS 7.x versions: https://bitbucket.org/Tectu/ugfx/commit ... cabe37a83aCan you please make sure that everything compiles fine?~ Tectu Link to comment Share on other sites More sharing options...
Joel Bodenmann Posted August 8, 2014 Author Report Share Posted August 8, 2014 We also renamed the FreeRTOS files to avoid file name conflicts on case insensitive systems: https://bitbucket.org/Tectu/ugfx/commit ... e619ac333f~ Tectu Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now