AFAIK you can access hw registers in two way:

[pascal]
const
MY_REGISTER: pinteger = pointer($04000000);
...
MY_REGISTER^ := $B00B5
[/pascal]
or
[pascal]
var
MY_REGISTER: pinteger absolute $04000000;
...
MY_REGISTER^ := $B00B5
[/pascal]

I do it in arm nds and all works without exceptions, though I don't know if it works fine on gp2x because the linux OS :?