typedef struct corCoRoutineControlBlock ... corCRCB undeclared

pugglewuggle wrote on Wednesday, February 26, 2014:

Upgrading to 8.0.0 from 7.6.0. I’m seeing this issue in Atmel Studio 6.1.2730 - SP2. I’ve had the same issue with some structs where I was doing the exact same typedef syntax. I never could get it figured out so I just referred to them as “struct Name” instead of the typedef’d name. This could be as simple as a compiler flag but I just don’t know what to look for.

The error I’m getting over 30 times is:

‘corCRCB’ undeclared (first use in this function)

From croutine.h:

typedef struct corCoRoutineControlBlock
	crCOROUTINE_CODE 		pxCoRoutineFunction;
	xListItem				xGenericListItem;	/*< List item used to place the CRCB in ready and blocked queues. */
	xListItem				xEventListItem;		/*< List item used to place the CRCB in event lists. */
	unsigned portBASE_TYPE 	uxPriority;			/*< The priority of the co-routine in relation to other co-routines. */
	unsigned portBASE_TYPE 	uxIndex;			/*< Used to distinguish between co-routines when multiple co-routines use the same co-routine function. */
	unsigned short 		uxState;			/*< Used internally by the co-routine implementation. */
} corCRCB; /* Co-routine control block.  Note must be identical in size down to uxPriority with tskTCB. */

rtel wrote on Wednesday, February 26, 2014:

Are you sure that is a V8 file? If you go to the very top of the file, what is the version number? In v8 the structure is called CRCB_t not corCRCB.


pugglewuggle wrote on Wednesday, February 26, 2014:

I restarted Atmel studio since this happened and now it works without me having changed anything. Hmmm. It shows 8.0.0 now. I wonder if something was cached.