Which features of the API are supported?

gasilvis wrote on Monday, May 11, 2009:

If a feature (eg configUSE_MUTEXES) is not defined in the FreeRTOSconfig.h of a particular port, does this mean that that feature is not supported by that port of the RTOS?

I understand that you can enable/disable features from the config.h. But if an API feature defined in the book is not mentioned in the config.h, does this mean that it is not supported in this particular port.

I’m trying to use a mutex with the LPC2000 port and having some difficulty. I want to know if this is my problem or if its a feature not available with this port.

Thanks
George

rtel wrote on Monday, May 11, 2009:

All features are supported in all ports - other than stack checking which does not work on architectures with segmented memory (PIC18 and x86).  Some FreeRTOSConfig.h files do not contain all the available macros simply because they were written prior to the macros being introduced into later versions of FreeRTOS.

What is the problem you are experiencing?

Regards.

gasilvis wrote on Monday, May 11, 2009:

Thanks. I’ll review FreeRTOS.h for defaulted features. The documentation book does mention that interrupt nesting comes only with some ports that are for architectures that permit the feature. I’ll take a closer look for the LPC2000.

My application is on the LPC2148, using the IAR compiler.

The problem I’m having is with my first experiment with a mutex. I have a I2C service that needs to be accessed by 2 tasks. It seems straight forward to have them take turns by using a mutex: All access is always bracketed by I2C_Start() and I2C_Stop(), so I added the semaphoreTake to the Start and the Give to the End. It works a short while then the debugger finds the code hung in the idle state. The tasks have different priorities. If you have any suggestions on how to debug, gratefully received!

Thanks,
George

gasilvis wrote on Monday, May 11, 2009:

Never mind. My problem with the mutex wrapped around the I2C service is self inflicted.

Thanks
George