Rather new to the Rabbit. I need to create a linked list to track activity of unknown final dimension and have the felxibility of remiving the ones that are complete. I see that pointers cannot be used in xmem nor can the malloc/free concept be used, which is a pity.
I am using a R3300 borad and am trying to find a work around for this type of problem.
Typically the structure I am using to hold the info on the status of the activity is about 12-15 bytes long, consisting of which device I instructed to do something and what its status is.
It’s not possible to have pointers pointing out of root memory.
I usually do the following: I put all my array of structures in xmem, and every time I need to use this data, I make xmem2root. If something is changed, then root2xmem again. It’s not very fast, but it works.
Many thanks - after many hours of pondering this is pretty much what I have summized and will be implementing. Only problem is that as the activities complete I need to remove them from the list and want to avoid having to do lengthy rearrangements of arrays to keep track of items still pending - hence was hoping to use doubly linked lists.
Are you sure that there is no way to have a pointer to and xmem block? then how root2xmem knows where to place data.
I understand that there is no way to have a register pointing to a 20-bit physical address, but I think that it micht be possible to set a 16-bit register + XPC to get a 20-bit address but apparently there is no available function inDC to do it.
My problem is that I want to get some data (64Kb) and store it in RAM but apparently there is no direct way to do it. Apparently the solution would be to set a buffer in root data and then use the root2xmem funcion several times until the last received byte.