Hi, I am using c51 keil compiler with cygnal chip c8051C020. I find problem in initilise static variable. exp. main() { static unsigned char i =0 ; i++; } when i write this type of code & simulate it ,i find that i is not initilise to 0. Note:this is just example code & not the actual program i work. If any specify me the reasion it will help me lot. Regards, Pandurang S.
static unsigned char i =0 ;
unsigned char i =0 ;
hi, The code that i have put in the forum is just an examle,i am using the static variable not in main routine but in other function which i calling in main routine. And in any way the variable should initilise to 0 even if it not make any sense. Regards, Pandurang S.
never include the start.A51 & init.A51 And in any way the variable should initilise to 0 even if it not make any sense. what does not make sense is that you "never include" the code that initializes the variables and the complain that they are not initialized. Erik
"The code that i have put in the forum is just an examle" Please don't do that, it is a waste of our time. Copy and paste the code you are using, do not retype it as you will make mistakes.
hi, I have add the INIT.A51 & STARTUP.A51 files.But still i have facing the same problem (i.e. static variable not initilise to proper value). Regards, Pandurang S.
still i have facing the same problem (i.e. static variable not initilise to proper value). if you are using internal XRAM you will not, unless you put all memory related initialize at the very beginning of (a renamed copy of) startup.a51. Erik
"I have add the INIT.A51 & STARTUP.A51 files.But still i have facing the same problem (i.e. static variable not initilise to proper value)." Including those files in your project will not make any difference unless you modify them.
"if you are using internal XRAM you will not, unless you put all memory related initialize at the very beginning of (a renamed copy of) startup.a51." I don't understand what you're trying to say here, so I doubt the OP will be able to make much sense of it. Can you explain better?
I don't understand what you're trying to say here, so I doubt the OP will be able to make much sense of it. Can you explain better? If you "knew" the f020 the OP is using, you would. The f020 has a rather intricate memory configuring process and if that is not dome before the "clear XRAM" in startup and "init XRAM variables" in init, the processes are writing "out in thin air" Erik
"The f020 has a rather intricate memory configuring process and if that is not dome before the "clear XRAM" in startup and "init XRAM variables" in init, the processes are writing "out in thin air"" I thought that one defaulted to using internal XDATA?
I thought that one defaulted to using internal XDATA? you're right this one does.
View all questions in Keil forum