FreeRTOS+EK-LM3S6965 display problem

justgreg wrote on Tuesday, July 03, 2012:


I’d like to evaluate the freeRTOS demo on my Stellaris evaluation kit (EK-LM3S6965). As far as I know it is supported by a demo available in the freeRTOS package. I was able to compile and download the application in both IDEs (IAR & KEIL). Running the application there is nothing on the display, however. I checked the code and found that in the main.c the display is assumed to be an OSRAM type and not the RIT one. I modified the switch conditional part and managed the display to show something which resembles to the demo but it is obviously buggy. Is there any better or updated version of the demo available? Or any tip how to modify the demo? Thank you!

rtel wrote on Tuesday, July 03, 2012:

That demo is very, very old, and was written on the original EK hardware.  Since then the display used on the hardware has been changed (more than once I believe) so you have to take the display driver from StellarisWare that is correct for your revision of the hardware.  I only have OSRAM hardware here, so cannot test anything else, but I know lots of people have been able to change display drivers successfully.

Searching for OSRAM here: might help.


justgreg wrote on Tuesday, July 03, 2012:

Hi Richard,

thank you for your quick reply. I replaced the driver file from my Stellarisware, have sorted the header file issues and it works (at least it seems to) with IAR Kickstart. With Keil the linker still complains. More work is needed.

justgreg wrote on Tuesday, July 03, 2012:

All right, I have the Keil version up and running. I had to replace freeRTOS’s driverlib.lib with the updated one in Stellarisware/driverlib/rvmdk.

Basically, the following is needed:

1. Find the part below in main.c, and modify it like this:

/* Map the OLED access functions to the driver functions that are appropriate
	for the evaluation kit being used. */	
		//case SYSCTL_DID1_PRTNO_6965	:	
		case SYSCTL_DID1_PRTNO_2965	:	vOLEDInit = OSRAM128x64x4Init;
										vOLEDStringDraw = OSRAM128x64x4StringDraw;
										vOLEDImageDraw = OSRAM128x64x4ImageDraw;
										vOLEDClear = OSRAM128x64x4Clear;
										ulMaxY = mainMAX_ROWS_64;
										pucImage = pucBasicBitmap;
		case SYSCTL_DID1_PRTNO_6965	:								
		case SYSCTL_DID1_PRTNO_1968	:	
		case SYSCTL_DID1_PRTNO_8962 :	vOLEDInit = RIT128x96x4Init;
										vOLEDStringDraw = RIT128x96x4StringDraw;
										vOLEDImageDraw = RIT128x96x4ImageDraw;
										vOLEDClear = RIT128x96x4Clear;
										ulMaxY = mainMAX_ROWS_96;
										pucImage = pucBasicBitmap;

2. Update rit128x96x4.c and rit128x96x4.h by copying them from Stellarisware
3. In rit128x96x4.c find the includes and remove ‘inc’, ‘driverlib’ etc.
4. Update ssi.h from Stellarisware
5. Update driverlib.a (IAR) or driverlib.lib (Keil) from Stellarisware