??? 03/04/10 13:31 Read: times |
#173841 - this IS part of the C-hatred Responding to: ???'s previous message |
Erik Malund said:
I mean to clear the *whole* memory upon startup. I'd even consider that harmful.
a) why do you consider that 'harmful' the RAM is random after power up. I consider harmful even the "all not explicitly initialised global/static variables are zeroed upon startup". This is a C-specific thing. I hate when machines try to do "smart" things for me. I want to have control. Erik Malund said:
b) if a problem, then 'misuse' startup It can be turned around: if the startup would clear only the static/global variables, and that would be a problem, it still could be 'misused'. Now my choice would be no clear, but the C standard REQUIRES the static/global variables to be cleared, so that must be obeyed. Both the least-harm and least-surprise principles would guide NOT to clear anything else. Of course "clear all" is the simplest way of doing things, along the least-resistance path. I would say, Herr Keil was a bit lazy when dealing with this particular detail back then, and it simply remained so. Erik Malund said:
Mr C hater: in assembler, would you carefully clear only what was not to be initialized or would you clear the whole shebang with a simple loop and then set the initialized values As said above, in [my] asm (and in Pascal), there is no "always clear all just to be sure"; and that's how it's good IMHO. Erik Malund said:
Btw., how does Keil know how much XRAM is connected? as posted The startup code (if not misused) i.e. the correct value is entered. an incorrect value would constitute 'misuse' Oh, I see. And I see how THAT can constitue a potential source of error, too. So, if I don't enter the correct value (wherever it could be entered), or I enter an incorrect value (e.g. stating less XRAM than actually used by the program), and I run the simulator, are the XRAM bytes zeroed? JW |