A while ago I started playing with the uncontrolled upper 32meg of RAM we have access to, mostly so I could feed "real" addresses to the 2D blitter.
Initally my experiaments have been restricted to the lower 16meg of this 32, which afaik is utterly unused, however I'd like to make use of the upper 16meg as well.
I've got a very basic memory manager backend in place (a simple frame allocator, which imo is perfect for games and the resources it'll be managing), however there is one little little problem.
While it appears I can stomp all over memory as much as I like if I stomp on the section which holds the code to controll the hardware video decoding (based at the start of the upper 16meg) then ofcourse hardware decoding no longer works.
So, I was wondering, does anyone know how to work out the size of the code region I shouldnt stomp on (so I can place a 'hole' in my memory controller system) or a way to force the GP2x to reload the decoder into that memory (without forcing a restart?).
A contiguous area of ram would be much prefered to having to work around a hole, but thats do able if I knew how large I had to avoid.
Initally my experiaments have been restricted to the lower 16meg of this 32, which afaik is utterly unused, however I'd like to make use of the upper 16meg as well.
I've got a very basic memory manager backend in place (a simple frame allocator, which imo is perfect for games and the resources it'll be managing), however there is one little little problem.
While it appears I can stomp all over memory as much as I like if I stomp on the section which holds the code to controll the hardware video decoding (based at the start of the upper 16meg) then ofcourse hardware decoding no longer works.
So, I was wondering, does anyone know how to work out the size of the code region I shouldnt stomp on (so I can place a 'hole' in my memory controller system) or a way to force the GP2x to reload the decoder into that memory (without forcing a restart?).
A contiguous area of ram would be much prefered to having to work around a hole, but thats do able if I knew how large I had to avoid.