This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Program with initialised global variables does not run

Experts, I have a 'C' program that contains an array of around 10 unsigned int's. If I initialise it during the declaration, the code never enters main() (I placed a breakpoint on the first instruction inside my main() but it never got hit).
unsigned int array[10]={0,0,0,0,0,0,0,0,0,0}; // does not work.

If I remove the initialisation part, it works. Why?
MCU = C8051F340 (Silabs)
Keil version = C51 COMPILER V7.10
Assembler command line flags: XR GEN DB EP NOMOD51
Compiler command line flags: PW(80) SB LC OT(9,Size) CD DB OE DF(__F340_VER__) Large
Linker command line flags: RS(256) PL(68) PW(78) IX

Thanks.

Regards,
Ganesh

Parents
  • startup.c no such thing it is startup.a51

    But turning off the watchdog is normally not something you want to do. In real life, the watchdog is something you should be ready to pay extra for, because you really do want your hardware to be restarted in case something goes wrong.
    there is a caveat: the Keil 'preprocessing' do not kick the puppy and thus with these chips you need to muzzle the puppy in startup.a51 and release it at the top of main

    Erik

Reply
  • startup.c no such thing it is startup.a51

    But turning off the watchdog is normally not something you want to do. In real life, the watchdog is something you should be ready to pay extra for, because you really do want your hardware to be restarted in case something goes wrong.
    there is a caveat: the Keil 'preprocessing' do not kick the puppy and thus with these chips you need to muzzle the puppy in startup.a51 and release it at the top of main

    Erik

Children