Code: Select all
#include <stdio.h>
#include <nds.h>
#include <malloc.h>
u16 m[1000]={0};
void WriteRAM(u32 address,const u8* buffer,u32 size)
{ u32 i=0;
u16* addr=m+address;
u16* pData=(u16*)buffer;
for(i=0;i<size;i+=2)
{
addr[i>>1]=pData[i>>1];
}
}
void ReadRAM(u32 address,u8* buffer,u32 size)
{
u32 i=0;
u16* addr=m+address;
u16* pData=(u16*)buffer;
for(i=0;i<size;i+=2)
{
pData[i>>1]=addr[i>>1];
//Here!The ReadRAM function will work fine if I add i++,i--
}
//Here!The ReadRAM function will work fine if I put a iprintf() blew.
//iprintf("");
}
//---------------------------------------------------------------------------------
int main(void) {
//---------------------------------------------------------------------------------
consoleDemoInit();
int in[3]={10,1100000,20};
int out[3]={0};
WriteRAM(0,(u8*)in,sizeof(int)*3);
ReadRAM(0,(u8*)out,sizeof(int)*3);
iprintf("%d %d %d\n",out[0],out[1],out[2]);
while(1);
}