i could read address 0x82800 by this code :
mov R2,#0x2800 EXTS #8,#1 mov R1,[R2]
which R1 contains right answer .
but i cant write to this address with this code :
mov R1,0xffff mov R2,#0x2800 EXTS #8,#1 Mov [R2],R1
when i can read this location , why i can not write ? please help me.
resend on that thread shows this error message:
HTTP Error 500.100 Page Cannot Be Displayed --------------------
now how could write??
this is exact question: how to write to address 0x82800 ? i tried this code but does not work:
So what did you find from your checking in the manual about pointer implementation ?
nothing, i cant understand hope this works:
int *p_a = (int *)(0x82800) ; int a = *p_a ;
but .... i cant understand why when i could read , i cant write? i think addressing is correct using EXTR instruction, but that not work.
now i'm testing flash register (FCR0H FAR FDR0) but does not work, and i dont know what to do
So if you read the cite, why aren't your trying with a far or huge pointer?
What exactly trying to achieve with this hacking around? And if something would be easier to achieve as an assembly function why don't you just do that?
Try printing the sizeof(int *)
ok , i will try and post results soon
i tried many times using C code , but no success, then searching internet, but no success,then i read datasheet and understand using off DPP register, tried, but no success,and then using EXT instructions and no success,using flash programming register , but... , then ask question here...
this is new test result:
#define memory_location *( unsigned int huge *)(0x00082800) and in main function { uart_send(memory_location); //send value to uart > this value is correct i.e. 0x1111 memory_location = 0xffff; //write to location > correct??? uart_send(memory_location); //send value to uart > but this is last data, not 0xffff }
Maybe google for the keyword "volatile"?
Have you spent some time looking inside the processor-specific header files, to see how the processor-specific register declarations are written? There is lot to learn by reading code.
What is special about this address? Is it RAM, a peripheral register, or FLASH? You are overly cryptic and vague about your purpose here.
If FLASH, perhaps memory_location = 0x0000; would be more instructive as most flash implementation erase to 0xFFFF and permit writes where bits transition from 1 -> 0, but not the other way round.