doubtlessly, I am making "cockpit error", but I would like to ask help from someone who knows what error causes this ? I've tried assembling/linking Start390.A51 and InitA51 myself but still no jump instruction in the hex file output.
I tried removing the "DB" directive from the assembler and compiler, too ... still no change.
What gives ?
Thanks.
So what do you get in the Hex file?
Presumably, these are SiLabs files?
Have you asked them if they use any "special tricks" when they build them?
www.silabs.com/community
I've not asked, I get nothing at address 0000H. First hex file record begins at 0003H. Newbie error, I'm sure. Thanks.
tjw said:I tried removing the "DB" directive from the assembler and compiler, too
That makes no sense. If your problem is that something is missing from the output, how do you figure that removing elements from the source will fix that? And since there is no "DB" directive in the compiler,it's entirely unclear what you're referring to in that regard.
You're using the wrong startup file, it's for these devices:
www.keil.com/.../c51_dv_dallasc390.htm
For the SiLabs device, just use startup.a51.
Rene Koenig - ha ha - well spotted!
tjw - if you look at that file, it does tell you:
$NOMOD51 ;------------------------------------------------------------------------------ ; This file is part of the C51 Compiler package ; Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc. ; <b>Startup code for Dallas 390/400/5240 CPU, Contigious Mode</b> ;
Rene Koenig said:For the SiLabs device, just use startup.a51
Or go to SiLabs, and see what they recommend.
https://www.silabs.com/community
Or use their 8-bit Microcontroller Studio - which would choose the appropriate one for you...
And includes a free Keil C51 Pro:
www.silabs.com/.../8-bit-8051-microcontroller-software-studio