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

error in keil 7.06 a

1 open project HELLO
2 insert int e,b,c; after main
3 in project devce select extended linker
4 translate
5 debug and see that variable e ?????
what is it?
is it new version?

Parents
  • special for you




    e=0;
    /*------------------------------------------------
    Note that an embedded program never exits (because
    there is no operating system to return to). It
    must loop and execute forever.
    ------------------------------------------------*/
    while (1) {
    P1 ^= 0x01; /* Toggle P1.0 each time we print */
    printf ("Hello World %i \n",e); /* Print "Hello World" */
    e=e+10;
    P0 =e;
    }

Reply
  • special for you




    e=0;
    /*------------------------------------------------
    Note that an embedded program never exits (because
    there is no operating system to return to). It
    must loop and execute forever.
    ------------------------------------------------*/
    while (1) {
    P1 ^= 0x01; /* Toggle P1.0 each time we print */
    printf ("Hello World %i \n",e); /* Print "Hello World" */
    e=e+10;
    P0 =e;
    }

Children
  • Yes! It's true.
    I just now repeat this experiment and see: if I select extended linker LX51 then I don't see value of variable 'e', ever I use this variable in my program. When I change C51 Optimizing Level to 7 (Extended Index Access Optimizing) - voila! I see variable in debugger! Great! But if optimizing level more than 7 or Emphasis no 'Favor Speed' or I check box 'Linker Code Packing' - this bug return.

    What is it?

  • "But if optimizing level more than 7 or Emphasis no 'Favor Speed' or I check box 'Linker Code Packing' - this bug return."

    Have you actually tried reading any of the answers to your original post? You have just demonstrated in agreement with those answers that you are NOT seeing a bug - you are seeing expected behaviour.

  • Stefan wrote:"Have you actually tried reading any of the answers to your original post?"
    Yes, I read carefully original post and ALL answers. Excuse me for my bad English. But you don't see what exactly happens.

    I have very little main function:

    main()
    {
      int e;
    
      while(1)
      {
        e++;
      }
    }
    

    When I compiling this code (with C51 Optimization level=7 + check 'Linker Code Packing' + LX51) and start debugging I see on 'Local' Tab of 'Watch & Call Stack Window':
    'e ????????'

    When I re-compiling this code with C51 Optimization level=7 + no check 'Linker Code Packing' + LX51, in debugger I see real value of variable.

    Is it "expected behaviour"?

    In Disassembly window I see that code is correct - variable 'e' placed in internal RAM at address: 0x08 - high byte & 0x09 - low byte. So, generated code is correct. Debugger simply did not show variable.

  • Well I'm sorry, but I read "ever I use this variable in my program" as "never I use this variable in my program".

    It works fine on v7.01.

    Stefan

  • few words about magic select EXTENDED LINKER
    all began in 702 - if you have no this select the longest linear program didnt translate - in 704 ver is ok - but variable dont show- in 705 ok - and now 706 repeat all bugs - I think is programm eror which swimming in progam - and dificult for programmer which dont work whith IDE

  • I think is programm =I think It is ....

  • This problem has been corrected. Refer to the following knowledgebase for the fix:

    http://www.keil.com/support/docs/2592.htm

    Jon

  • 3 days discussion - it isnot ;-) and fix bug ;-)

  • wow - remove one bug but add two soft bugs ;-(
    after patch I see


    FIRST
    When i switch number base from HEX to DECIMAL for variable e i see ok
    but if execute printf ("Hello World %i \n",e);
    after it number base switch again to HEX - it isnt good
    Second problem only soft problem
    when i translate program and switch to debug first time all ok
    after it switch to translate and switch to debug again i see what function debug not active but if i go to function(step and so on) debug mouse - function will be select and active and all work ok
    but again it isnt good