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

missing compile what is going on

I am thoroughly puzzled about this, any suggestions

source starting line 152

  while (!UnblankSlot);
  SB_CR = FALSE;    // stop the CCAP counter
  BSP1_PSTB_N   =   0;        // strobe the map in
  BSP1_PSTB_N   =   1;

// unblank color 1 and upload color 2
  SetPCA();
  UpdateDisplay(2);
  SetColor(d2color);
  while ( !UnblankSlot);
  SB_CR = FALSE;              // stop the CCAP counter
  BSP1_PSTB_N   =   0;        // strobe the map in
  BSP1_PSTB_N   =   1;

// unblank color 2 and upload color 0
  SetPCA();
  UpdateDisplay(0);
  SetColor(d0color);
  while ( !UnblankSlot);
  SB_CR = FALSE;              // stop the CCAP counter
  BSP1_PSTB_N   =   0;        // strobe the map in
  BSP1_PSTB_N   =   1;
listing, please see marks "WHY NOTHING" and "HERE IT IS"
00C8         ?C0020:
                                           ; SOURCE LINE # 152
00C8 3000FD      R     JNB     UnblankSlot,?C0020
00CB         ?C0021:
                                           ; SOURCE LINE # 153 WHY NOTHING
                                           ; SOURCE LINE # 154 WHY NOTHING
                                           ; SOURCE LINE # 155 WHY NOTHING
                                           ; SOURCE LINE # 158
00CB 120000      R     LCALL   ?C0038
                                           ; SOURCE LINE # 159
C51 COMPILER V7.00 Beta 6  AVMAIN                                                          12/03/2002 16:33:11 PAGE 38  

00CE 7F02              MOV     R7,#02H
00D0 120000      E     LCALL   _UpdateDisplay
                                           ; SOURCE LINE # 160
00D3 AF00        R     MOV     R7,d2color
00D5 120000      R     LCALL   _SetColor
00D8         ?C0022:
                                           ; SOURCE LINE # 161
00D8 3000FD      R     JNB     UnblankSlot,?C0022
00DB         ?C0023:
                                           ; SOURCE LINE # 162 WHY NOTHING
                                           ; SOURCE LINE # 163 WHY NOTHING
                                           ; SOURCE LINE # 164 WHY NOTHING
                                           ; SOURCE LINE # 167
00DB 120000      R     LCALL   ?C0038
                                           ; SOURCE LINE # 168
00DE E4                CLR     A
00DF FF                MOV     R7,A
00E0 120000      E     LCALL   _UpdateDisplay
                                           ; SOURCE LINE # 169
00E3 AF00        R     MOV     R7,d0color
00E5 120000      R     LCALL   _SetColor
00E8         ?C0024:
                                           ; SOURCE LINE # 170
00E8 3000FD      R     JNB     UnblankSlot,?C0024
00EB         ?C0025:
                                           ; SOURCE LINE # 171
00EB C2C6              CLR     SB_CR HERE IT IS
                                           ; SOURCE LINE # 172
00ED C290              CLR     BSP1_PSTB_N HERE IT IS
                                           ; SOURCE LINE # 173
00EF D290              SETB    BSP1_PSTB_N HERE IT IS
                                           ; SOURCE LINE # 176

In advance, thanks

Erik

Parents
  • There is a knowledgebase article that addresses this problem:

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

    In a nutshell, you can create a project with 2 targets: 1 for debugging and 1 for production. (I prefer to debug using the production code.)

    In the Debugging target, set the optimizer level to 3. That causes the compiler and linker to perform no optimizations that move code around.

    In the Production target, set the optimizer level to whatever you want.

    Note that code may be moved around by the higher level optimizations.

    Jon

Reply
  • There is a knowledgebase article that addresses this problem:

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

    In a nutshell, you can create a project with 2 targets: 1 for debugging and 1 for production. (I prefer to debug using the production code.)

    In the Debugging target, set the optimizer level to 3. That causes the compiler and linker to perform no optimizations that move code around.

    In the Production target, set the optimizer level to whatever you want.

    Note that code may be moved around by the higher level optimizations.

    Jon

Children