From: Andy G. <and...@ox...> - 2009-01-30 10:02:06
|
Maarten, Many thanks for the excellent response so far. Please bear with the following lengthy explanation.... It _IS_ a small app: the .map file shows all the code:- Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ CSEG 407A 0CE8 = 3304. bytes (REL,CON,CODE) Value Global -------- -------------------------------- 0C:407A _app_entry 0C:40F7 _main 0C:40FD _Timer_Init 0C:4169 _Timer_Allocate 0C:4228 _Timer_AllocateTimeout 0C:4232 _Timer_Deallocate 0C:4270 _Timer_HasExpired 0C:42D4 _Timer_ISR0Guts 0C:43A9 _Timer_DelayUS 0C:43ED _Timer_DelayMS 0C:4419 _UART_Init 0C:4427 _UART_TxCh 0C:4431 _UART_RxAvailable 0C:4438 _UART_RxCh 0C:448D _UART_RxHexU08 0C:44B1 _UART_RxHexU16 0C:44D4 _UART_TxHexU08 0C:44EE _Console_PollOnce 0C:4673 _strlen 0C:4697 _putchar 0C:469A _HexToDec 0C:46D5 _DecToHex 0C:46F3 ___printf_no_irq 0C:4727 _do_stuff1 0C:473D _do_stuff0 0C:475E _vprintf 0C:4777 _printf 0C:4837 __print_format 0C:4D25 __mulint 0C:4D25 __mulint_dummy 0C:4D42 __gptrget 0C:4D5E __sdcc_external_startup However the .ihx output has inserted a spurious extended address record. <snippet> :0E4EB900616420524F4D2F434F4445206164E9 :0E4EC7006472657373203078585858580A0A80 :014ED50000DC :0E4ED6004F69202D2057617463682077686152 :0E4EE4007420796F7527726520646F696E67A0 :0E4EF200206661742066696E676572730A003F :020000040001F9 ; spurious! :08467300AA82AB83ACF07D00CC ; _strlen not in high segment :0E467B008A828B838CF0124D42FEA3AA82AB82 :0746890083EE60030D80EBDE </snippet> I've done some more work on this, and I'm pretty sure it's a linker bug. as/link/mcs51/lkihx.c reads as follows:- VOID hexRecord(unsigned addr, int rtvalIndex) { Addr_T chksum; int i, overrun, bytes; for (i = rtvalIndex, chksum = 0; i < rtcnt; i++) { if (rtflg[i]) { if (addr + ++chksum > 0xffff) break; } } if (chksum == 0) return; // nothing to output if ( (lastHexAddr > addr) && (rflag) ) { /* <-- BUG?? */ overrun = hexPageOverrun + 1; ihxExtendedLinearAddress(lastExtendedAddress + overrun); hexPageOverrun = overrun; hexRecord(addr, rtvalIndex); return; } ... etc. } I think the line I've marked assumes that the output is always ascending, therefore if (lastHexAddr > addr) it must have wrapped around into a different bank. However, look at the .ihx output above: the addresses are rising (E4ED, E4EE, E4EF) then the next address is 4673 - still in the common area, but less than the previous address, so it inserts the extended record. I've tried a replacement as follows. This 'fixes' the problem for this case, but is not extendable to >2 banks (and obviously I don't know the code that well, so I may break something else...) Can you confirm I'm on the right lines, or suggest a better way? unsigned masked1, masked2; masked1 = lastHexAddr & ~0xFFFFUL; masked2 = addr & ~0xFFFFUL; /* Is this record in the same bank as previous? */ if ( (masked1 != masked2) && (rflag) ) { overrun = hexPageOverrun + 1; ihxExtendedLinearAddress(lastExtendedAddress + overrun); hexPageOverrun = overrun; hexRecord(addr, rtvalIndex); return; } I've tried to compress the app even further, to get something small enough to submit as a how-to-reproduce sample. However the problem goes away if I get it any smaller. So, I'm stuck with 8 compilation units and makefile. I can send you this off-list if you need it. Regards, Andy > > Andy, > > If you still have code above 0x00010000 as indicated by > the second record you mention, you either have placed > code above that address yourself with a option for the > linker or your program is not "a small app". > > Maarten > > > Thanks a lot Maarten, > > > > I've made sense of the extended address record. However one > thing still > > confuses me. If I build a small app that all fits in the > common area, > > the output.ihx still contains two extended address records, > along the > > lines of:- > > > > :020000040000FA // I guess this means bank0? > > .. > > <some data records> > > .. > > :020000040001F9 // I guess this means bank1? > > .. > > <more data records> > > .. > > :0400000500000000F7 > > :00000001FF > > > > I guess the linker must think the banked area starts at a > lower address. > > How do I set the banked area? > > (or have I misunderstood completely?!) > > |
From: Maarten B. <sou...@ds...> - 2009-01-31 09:43:05
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head> <title></title> <meta http-equiv="content-type" content="text/html;charset=utf-8"/> <meta http-equiv="Content-Style-Type" content="text/css"/> </head> <body> <div align="left"> <font face="Courier New" size="2"> <span style=" font-size:10pt"> Hi Andy,</span></font> </div> <div align="left"> <font face="Courier New" size="2"> <span style=" font-size:10pt"> <br /> </span> </font> </div> <div align="left"> <font face="Courier New" size="2"> <span style=" font-size:10pt"> Please send me the files to reproduce this error. I'll see if I can do something about it.</span></font> </div> <div align="left"> <font face="Courier New" size="2"> <span style=" font-size:10pt"> <br /> </span> </font> </div> <div align="left"> <font face="Courier New" size="2"> <span style=" font-size:10pt"> Maarten</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> <br /> </span> </font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> <br /> </span> </font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > Maarten,</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > Many thanks for the excellent response so far.</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > Please bear with the following lengthy explanation....</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > It _IS_ a small app: the .map file shows all the code:-</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >          Area                               Addr   Size   Decimal Bytes</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > (Attributes)</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >          --------------------------------   ----   ----   ------- -----</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > ------------</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >          CSEG                               407A   0CE8 =   3304. bytes</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > (REL,CON,CODE)</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >           Value  Global</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >             --------  --------------------------------</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:407A    _app_entry</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:40F7    _main</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:40FD    _Timer_Init</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:4169    _Timer_Allocate</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:4228    _Timer_AllocateTimeout</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:4232    _Timer_Deallocate</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:4270    _Timer_HasExpired</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:42D4    _Timer_ISR0Guts</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:43A9    _Timer_DelayUS</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:43ED    _Timer_DelayMS</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:4419    _UART_Init</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:4427    _UART_TxCh</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:4431    _UART_RxAvailable</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:4438    _UART_RxCh</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:448D    _UART_RxHexU08</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:44B1    _UART_RxHexU16</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:44D4    _UART_TxHexU08</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:44EE    _Console_PollOnce</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:4673    _strlen</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:4697    _putchar</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:469A    _HexToDec</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:46D5    _DecToHex</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:46F3    ___printf_no_irq</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:4727    _do_stuff1</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:473D    _do_stuff0</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:475E    _vprintf</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:4777    _printf</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:4837    __print_format</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:4D25    __mulint</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:4D25    __mulint_dummy</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:4D42    __gptrget</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            0C:4D5E    __sdcc_external_startup</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > However the .ihx output has inserted a spurious extended address record.</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >          <snippet></span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >          :0E4EB900616420524F4D2F434F4445206164E9</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >          :0E4EC7006472657373203078585858580A0A80</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >          :014ED50000DC</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >          :0E4ED6004F69202D2057617463682077686152</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >          :0E4EE4007420796F7527726520646F696E67A0</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >          :0E4EF200206661742066696E676572730A003F</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >          :020000040001F9                                                                     ;</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > spurious!</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >          :08467300AA82AB83ACF07D00CC                                           ;</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > _strlen not in high segment</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >          :0E467B008A828B838CF0124D42FEA3AA82AB82</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >          :0746890083EE60030D80EBDE</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >          </snippet></span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > I've done some more work on this, and I'm pretty sure it's a linker bug.</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > as/link/mcs51/lkihx.c reads as follows:-</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >          VOID</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >          hexRecord(unsigned addr, int rtvalIndex)</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >          {</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >              Addr_T chksum;</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >              int i, overrun, bytes;</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >          </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >              for (i = rtvalIndex, chksum = 0; i < rtcnt; i++) {</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >                  if (rtflg[i]) {</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >                      if (addr + ++chksum > 0xffff)</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >                          break;</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >                  }</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >              }</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >              if (chksum == 0)</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >                  return;         // nothing to output</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >          </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >              if ( (lastHexAddr > addr) && (rflag) ) {         /* <--</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > BUG?? */</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >                  overrun = hexPageOverrun + 1;</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >                  ihxExtendedLinearAddress(lastExtendedAddress + overrun);</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >                  hexPageOverrun = overrun;</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >                  hexRecord(addr, rtvalIndex);</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >                  return;</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >              }</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >            ... etc.</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >          }</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > I think the line I've marked assumes that the output is always</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > ascending, therefore if (lastHexAddr > addr) it must have wrapped around</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > into a different bank. However, look at the .ihx output above: the</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > addresses are rising (E4ED, E4EE, E4EF) then the next address is 4673 -</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > still in the common area, but less than the previous address, so it</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > inserts the extended record.</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > I've tried a replacement as follows. This 'fixes' the problem for this</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > case, but is not extendable to >2 banks (and obviously I don't know the</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > code that well, so I may break something else...) Can you confirm I'm on</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > the right lines, or suggest a better way?</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >              unsigned masked1, masked2;</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >              masked1 = lastHexAddr & ~0xFFFFUL;</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >              masked2 = addr & ~0xFFFFUL;</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >              /* Is this record in the same bank as previous? */ </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >              if ( (masked1 != masked2) && (rflag) ) {</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >             overrun = hexPageOverrun + 1;</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >                  ihxExtendedLinearAddress(lastExtendedAddress + overrun);</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >                  hexPageOverrun = overrun;</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >                  hexRecord(addr, rtvalIndex);</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >                  return;</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> >              }</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > I've tried to compress the app even further, to get something small</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > enough to submit as a how-to-reproduce sample. However the problem goes</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > away if I get it any smaller. So, I'm stuck with 8 compilation units and</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > makefile. I can send you this off-list if you need it.</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > Regards,</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > Andy</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > Andy,</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > If you still have code above 0x00010000 as indicated by </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > the second record you mention, you either have placed </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > code above that address yourself with a option for the </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > linker or your program is not "a small app".</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > Maarten</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > > Thanks a lot Maarten,</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > > I've made sense of the extended address record. However one </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > thing still</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > > confuses me. If I build a small app that all fits in the </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > common area,</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > > the output.ihx still contains two extended address records, </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > along the</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > > lines of:-</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > > :020000040000FA     // I guess this means bank0?</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > > ..</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > >   <some data records></span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > > ..</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > > :020000040001F9     // I guess this means bank1?</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > > ..</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > >   <more data records></span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > > ..</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > > :0400000500000000F7</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > > :00000001FF</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > > I guess the linker must think the banked area starts at a </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > lower address.</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > > How do I set the banked area? </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > > (or have I misunderstood completely?!)</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > > > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > </span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > ------------------------------------------------------------------------------</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > This SF.net email is sponsored by:</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > SourcForge Community</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > SourceForge wants to tell your story.</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > http://p.sf.net/sfu/sf-spreadtheword</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > _______________________________________________</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > Sdcc-user mailing list</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > Sdc...@li...</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > https://lists.sourceforge.net/lists/listinfo/sdcc-user</span></font> </div> <div align="left"> <font face="Arial" color="#7f0000" size="2"> <span style=" font-size:10pt"> > </span></font> </div> <div align="left"> <font face="Arial" size="2"> <span style=" font-size:10pt"> <br /> </span> </font> </div> <div align="left"> </div> </body> </html> |