-
Cheers John and Dave for your suggestions. John the interrupt is a specific one for ARM, the undef IRQ happens when a instruction not recognised by the CPU or it's coprocessor(s) is attempted to be executed. Dave you are right, the IRQ link register (R14_undef) contained the return address which was the same as the stack view. This is what I was seeing as 'the functions the undefined IRQ had...
2009-07-15 06:00:34 UTC in FreeRTOS Real Time Kernel
-
Cheers John and Dave for your suggestions. John the interrupt is a specific one for ARM, the undef IRQ happens when a instruction not recognised by the CPU or it's coprocessor(s) is attempted to be executed. Dave you are right, the IRQ link register (R14_undef) contained the return address which was the same as the stack view. This is what I was seeing as 'the functions the undefined IRQ had...
2009-07-14 23:39:20 UTC in FreeRTOS Real Time Kernel
-
I have had some success by changing the compilation of the functions the undefined IRQ seemed to have jumped from to ARM code (previously the files the function were in were compiled as Thumb). Although I haven't been able to find an explanation as to why this helps. The undef IRQ is called when a unknown instruction is attempted to be executed by the CPU. I'm aware that the IRQ handlers must...
2009-07-14 02:01:15 UTC in FreeRTOS Real Time Kernel
-
Hello All,
I'm using the V4.2.0 ARM7_LPC2000 port of the FreeRTOS and have a almost working system with 5 tasks (including the Idle task) using cooperative task switching. My problem is I consistently get an undef irq occurring which resets the system. If I break the system at the point the undef handler is executed the call stack is only one function deep. The position it seems to have...
2009-07-10 07:58:29 UTC in FreeRTOS Real Time Kernel
-
I discovered that for some reason the CPU mode had changed to FIQ after power up and before vTaskStartScheduler was being called. This made me look at the start up files 'Philips_LPC230X_Startup.s' and 'crt0.s' and discovered that crt0.s had been changed (particularly the supervisor set up for some unknown reason) from the original project (unfortunately not currently under revision control)...
2009-07-06 02:19:52 UTC in FreeRTOS Real Time Kernel
-
In the current task the CPSR register shows that it is in System mode and just before portSAVE_CONTEXT is called it is in Supervisor mode. I have to break it on the line 'asm volatile ( "ADD LR, LR, #4");' else it will not break and the board needs to be disconnected from the PC to get it to work again.
Cheers.
2009-07-06 01:55:25 UTC in FreeRTOS Real Time Kernel
-
In the current task the CPSR register shows that it is in System mode and just before portSAVE_CONTEXT is called it is in Supervisor mode. I have to break it on the line 'asm volatile ( "ADD LR, LR, #4");' else it will not break and the board needs to be disconnected from the PC to get it to work again.
Cheers.
2009-07-06 00:45:58 UTC in FreeRTOS Real Time Kernel
-
Yes the kernel seems to have started correctly. The tick interrupt is working, memory seems to be successfully allocated to the tasks and the program runs into the last defined task. I'll check the CPU mode asap.
2009-07-05 23:14:43 UTC in FreeRTOS Real Time Kernel
-
Hello All,
I'm using the V4.2.0 ARM7_LPC2000 port of the FreeRTOS and am now getting the dabort irq on the first call to portSAVE_CONTEXT. Previously I did not have this problem but I think I have changed something. I am using source code control but reverting to a previous commit doesn't seem to help. I have been trying to work this out for a while now and have been browsing the forums...
2009-07-03 03:25:56 UTC in FreeRTOS Real Time Kernel