FreeRTOS + Yagarto + LPC2294 ISR issues

egnascimento wrote on Wednesday, November 07, 2007:

Hello friends,
I’m a newbie with ARM development.
I bought LPC-E2294 from Olimex and now I’m trying to use FreeRTOS with this board. I’m using ARM7_LPC2106_GCC example to port to LPC2294. With a few of changes in ld script (to right memory values), the LED position and other little things the code start to work with only “flash.c” uncommented. The others examples was commented like this in “main.c”.

//    vStartIntegerMathTasks( tskIDLE_PRIORITY );
//    vAltStartComTestTasks( mainCOM_TEST_PRIORITY, mainCOM_TEST_BAUD_RATE, mainCOM_TEST_LED );
    vStartLEDFlashTasks( mainLED_TASK_PRIORITY );
//    vStartPolledQueueTasks( mainQUEUE_POLL_PRIORITY );
//    vStartMathTasks( tskIDLE_PRIORITY );
//    vStartSemaphoreTasks( mainSEM_TEST_PRIORITY );
//    vStartDynamicPriorityTasks();
//    vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY );

When I uncomment in main routine "vAltStartComTestTasks" or trying to work with a little code using interrupts the program stop to work.
I did a simple test using vectored EINT2 and, when the button in EINT2 is pressed the program stops.

This is the same issue of ISR new implementations for ARM7/9 ports??

All of this tries are using ISR_Wrapper like in the ARM7_LPC2106_GCC examples.

I’ve tried to change optimization (from -O0 to -03) and delete -fomit-frame-pointer but with no changes of this strange behaviour.

I’m working with:
Windows XP SP2
Yagarto with arm-elf-gcc 4.2.1
FreeRTOS 4.6.1

Please, If anybody want take a look at the source code I can send by mail with no problems.

Thanks all in advance,
Eduardo Garcia

davedoors wrote on Wednesday, November 07, 2007:

Can you confirm that your interrupt works when not using FreeRTOS?  That is, when used in just a simple hello world program.  This will show that your interrupt setup is correct.  When doing this you can just use the standard GCC way of writing interrupt handlers without the FreeRTOS macros.

If your interrupt works without FreeRTOS present, then post your interrupt handler code (with the FreeRTOS macros) here.

Did you change the start up code at all?

egnascimento wrote on Wednesday, November 07, 2007:

Hello Dave,
Thanks a lot your fast response.

No, the start up code (boot.s) is exactly the same. Shoud I change it?

I will do a simple test using interrupts and will post here the results as fast as possible.


davedoors wrote on Wednesday, November 07, 2007:

No, don’t change the start up code.  I was just checking as this is a common source of problems.

egnascimento wrote on Wednesday, November 07, 2007:

Thanks your help Dave.

Following your suggestion I saw that I was not clearing interrupt correctly on EXINT.

Now EINT2 is working fine and the next step is try the UART example.