#171975 - Ruben - Wed Jan 06, 2010 10:17 am
Hi.
So I was working on my DS stuff, and since I've been making my own library, start-up code, etc. I had to make FIFO stuff. So I was wondering if what I've done is ok or if it's bad, etc.
What I've done is use the IPC_SYNC register as a 'FIFO channel' sort of thing [so that gives me 16 'channels' for transmitting data] and simply store data in the FIFO queue. This seems to work on no$gba, but I was wondering if it would work on DS? What I do exactly is store the user data on the queue, set the channel and send an IRQ to the other CPU [which is picked up as IPC_SYNC]. The other one receives, masks the channel and calls the appropriate handler [if any].
EDIT:
I had a mate test out the executable. Everything seems to work fine [aside from a small problem not remotely related to that, but to video catching up with text], so it's mainly just a matter of knowing if this is ok.
So I was working on my DS stuff, and since I've been making my own library, start-up code, etc. I had to make FIFO stuff. So I was wondering if what I've done is ok or if it's bad, etc.
What I've done is use the IPC_SYNC register as a 'FIFO channel' sort of thing [so that gives me 16 'channels' for transmitting data] and simply store data in the FIFO queue. This seems to work on no$gba, but I was wondering if it would work on DS? What I do exactly is store the user data on the queue, set the channel and send an IRQ to the other CPU [which is picked up as IPC_SYNC]. The other one receives, masks the channel and calls the appropriate handler [if any].
EDIT:
I had a mate test out the executable. Everything seems to work fine [aside from a small problem not remotely related to that, but to video catching up with text], so it's mainly just a matter of knowing if this is ok.