I'm working on a LPC2468 board equipped with the Micrel KSZ8001L phy. I am trying to implement a simple network stack (no TCP or IP, I invented my own simple protocol). I am running uC/OS-II on this board. What I'm trying to do is the following: I installed an ISR which is called every time an Ethernet frame is received. In this ISR, I allocate a 1500 byte buffer using uC/OS' OSMemGet. The problem is: every time when I call OSMemGet inside this Ethernet-ISR, my LPC2468 crashes (in fact, it branches to the data abort handler). But why? I cannot understand this behaviour; OSMemGet works just fine in normal tasks or in an other ISR. It is even not possible to use OSQPost in this strange Ethernet-ISR. What I want to do is the following: every time when a frame is received, allocate a buffer in the memory and copy the just received frame into this buffer. Then post the buffer's base address on a queue so that the Rx-Task can pend on this queue. Any ideas?
Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
Log in with Google account
No account? Register here.