Discussion in "8051 Discussion Forum" started by    scorcho    Oct 9, 2007.
Tue Oct 09 2007, 04:56 AM

I'm wondering what the difference is when I declare a variable with one of the modifiers, eg

1. BYTE xdata temp;
2. BYTE idata temp;
3. BYTE data temp;
4. BYTE temp;

I notice that some data types aren't allowed to be placed in xdata, for example BOOL. I get an error telling me it's in a different/illegal memory space.

I also notice that there are code size differences. When I put variables in xdata/idata(1/2), my code seems to be larger by a few bytes than if I were to put them in data or not specify them(3/4). I'm wondering if there are any functional differences. I'm trying to keep my code as small as possible now so should I not put anything in xdata/idata? What are the guidelines?

btw I'm programming in C and using Keil uVision2 as my IDE.

Tue Oct 09 2007, 11:08 AM
Xdata doesn't allow BOOL the reason is external RAM is byte oriented and is not accessible bit wise.

Regarding the reason of increase in code space when u put variables in xdata/idata is that when you declare a variable and initialize it... the whole initialization code as well as creating a data space for that variable is generated as a code.
Like if you declare something like...
BYTE idata a[10] = "test";
when you compile this, the compiler generate a code which includes the code for creating a variable of 10 bytes in idata and then initialize it with string "test" So this increase your code.. there is actually nothing can be done regarding this..
The only optimization tip i can give you is.. if you have constant strings, which are not going to change throughout the program then its better to store them in the code space instead of idata/xdata.. e.g.

BYTE code string[]="Welcome to Rickey's World";

this will take no space in RAM and will save the initialization part and ultimately the code space..
Tue Oct 09 2007, 05:39 PM
u can also refer c51.pdf for more ... of the topic...

Get Social


Powered by e107 Forum System


Sat Oct 12 2019, 10:23 PM
Log in.. then post your code in the 8051 forum
Sat Oct 12 2019, 10:18 AM
Bhadra Sajikumar
i am doing a countdown timer with 8051 for my project, unfortunately our professor had to take a leave of absence before he could teach us most of it.. can someone explain the .asm code of it for me?
Mon Sep 23 2019, 07:37 AM
I am doing a project for my schools wireless security system with cameras,sensors and spot lights using 8051 micro controller, could you help me out with the design and its source code.
Wed Sep 18 2019, 08:48 PM
Caryn Kover
Thank you for your time,
Mon Aug 05 2019, 07:09 PM
@Ismail ..post in forum, give details
Mon Aug 05 2019, 04:33 PM
Ismail balghmi
Hello. Please I won't download
Wed Jul 24 2019, 12:47 AM
@BUSTER123 Please post in the forum
Tue Jul 23 2019, 06:13 PM
hello! newbie here. i am kind of a guy who hates using ready - made existing libraries, so this helped a lot as i was trying to control and write to a character lcd display. however, i can't figure out how to set the cursor position. for example, i want to set it to the 5th column in the first row, so position 5. so according to the table, i am sending 10000101 on the 8 data lines of the lcd (register select pulled low). the cursor does not move there however. and i cant move the cursor left or right too. is it something wrong that i am doing? thank you.
Thu Jul 11 2019, 07:55 PM
@ramos https://www.theengineeringprojects.com/2017/09/l298-motor-driver-library-proteus.html
Thu Jul 11 2019, 07:44 PM
@praveen123. Can you give a link to the project ?



Wed Nov 13 2019, 06:25 AM
Mon Nov 11 2019, 01:31 PM
Sun Nov 10 2019, 04:42 AM
Sat Nov 09 2019, 03:41 PM
Fri Nov 08 2019, 10:06 AM
Fri Nov 08 2019, 07:28 AM
Tue Oct 15 2019, 04:32 PM
Tue Oct 15 2019, 02:27 AM


Guests: 45, Members: 1 ...
ilylily07 viewing chatbox_menu.php

most ever online: 182184
(Members: , Guests: 182184) on 06 Aug 2010: 05:37 AM

Members: 38103
Newest member: Casmir
Forum Activity
ilylily07 Avatar
Posted By ilylily07
Mon Nov 18 2019, 09:54 AM
0v7670 camera interfacing with stc 8051.using asse...
Jeanbusatta Avatar
Posted By Jeanbusatta
Sun Nov 10 2019, 04:43 AM
ty, really needed it
ExperimenterUK Avatar
Posted By ExperimenterUK
Tue Oct 22 2019, 05:18 AM
wimac Avatar
Posted By wimac
Mon Oct 21 2019, 09:18 AM
I’ve been following this thread and looking at the...
s_dinesh40@yahoo.com Avatar
Posted By [email protected]
Sun Oct 20 2019, 03:09 PM
s_dinesh40@yahoo.com Avatar
Posted By [email protected]
Sun Oct 20 2019, 03:02 PM
sir, when i on display ,sometime 3rd display is no...
s_dinesh40@yahoo.com Avatar
Posted By [email protected]
Sun Oct 20 2019, 02:53 PM
sir, when i on display ,sometime 3rd display is no...
ExperimenterUK Avatar
Posted By ExperimenterUK
Sun Oct 20 2019, 12:21 AM
Your code seems okay on my simulationTry my code o...
s_dinesh40@yahoo.com Avatar
Posted By [email protected]
Sat Oct 19 2019, 07:13 PM
please find video attachment. 3rd & 4th displa...
s_dinesh40@yahoo.com Avatar
Posted By [email protected]
Sat Oct 19 2019, 07:05 PM
sir, 3rd and 4th dot matrix display flickering, ...