We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
How can I access the XDATA memory block after 64Kbypes in Dallas DS5240 environment? I now use 24bit contiguous mode to compile the program and I want to access a memory address in xdata 0x200000.... *((unsigned char xdata *)0x200000) = 0x0b; C Compiler error occur. Then I try... DPX = 0x20; *((unsigned char xdata *)0x0000) = 0x0b; There is no error in C compiler. However, I find the object code is 0034 90000000 MOV DPTR,#00H ^^-- force DPX = 0x00 0038 740b MOV A,#0bH 003A F0 MOVX @DPTR,A How can I do?
The 'far' memory type implements access to the full 24-bit XDATA address range.
I have checked the "Options for target"/"'far' memory type support". How can I point to 24-bit XDATA address range? I have tried ... *((unsigned char xdata far *)0x200000) = 0x01; ---- not compiled *((unsigned char far *)0x200000) = 0x01; ---- I have checked the list file... This statement is compiled as follwing and it does not sound work ; SOURCE LINE # 91 000A 7800 MOV R0,#00H 000C 7601 MOV @R0,#01H Do I miss any steps or keywords? Thank you!