Joel Bodenmann Posted May 10, 2014 Report 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
m_b Posted August 6, 2014 Report 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.
Joel Bodenmann Posted August 6, 2014 Author Report 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
m_b Posted August 6, 2014 Report 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
Joel Bodenmann Posted August 6, 2014 Author Report 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
m_b Posted August 6, 2014 Report 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
Joel Bodenmann Posted August 6, 2014 Author Report 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
steved Posted August 6, 2014 Report 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
Joel Bodenmann Posted August 6, 2014 Author Report 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
inmarket Posted August 7, 2014 Report 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
Joel Bodenmann Posted August 8, 2014 Author Report 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
Joel Bodenmann Posted August 8, 2014 Author Report 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
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