2017년 11월 29일 수요일

Memory demystify

Program Size: data=109.5 xdata=256 const=3503 code=4401
LX51 RUN COMPLETE.  0 WARNING(S),  0 ERROR(S)


START     STOP      LENGTH    ALIGN  RELOC    MEMORY CLASS   SEGMENT NAME
=========================================================================

* * * * * * * * * * *   D A T A   M E M O R Y   * * * * * * * * * * * * *
000000H   000007H   000008H   ---    AT..     DATA           "REG BANK 0"
000008H   000009H   000002H   BYTE   UNIT     DATA           ?DT?_FLASH_BYTEWRITE?FLASH
00000AH   00000BH   000002H   BYTE   UNIT     DATA           ?DT?_FLASH_BYTEREAD?FLASH
00000CH   00000DH   000002H   BYTE   UNIT     DATA           ?DT?_FLASH_PAGEERASE?FLASH
00000EH.0 00001FH.7 000012H.0 ---    ---      **GAP**
000020H.0 000020H.0 000000H.1 BIT    UNIT     BIT            ?BI?_FLASH_BYTEWRITE?FLASH
000020H.1 000020H.1 000000H.1 BIT    UNIT     BIT            ?BI?_FLASH_BYTEREAD?FLASH
000020H.2 000020H.2 000000H.1 BIT    UNIT     BIT            ?BI?_FLASH_PAGEERASE?FLASH
000020H.3 000020H.3 000000H.1 BIT    UNIT     BIT            ?BI?SMBUS0_ISR?SMB
000020H.4 000020H.4 000000H.1 BIT    UNIT     BIT            ?BI?SMB
000020H.5 000020H   000000H.3 ---    ---      **GAP**
000021H   00007EH   00005EH   BYTE   UNIT     DATA           ?DT?DATAMANAGER

00007FH   00007FH   000001H   BYTE   UNIT     IDATA          ?STACK

두 개의 Gap 을 빼면 109.5 byte 이다.

* * * * * * * * * * *  X D A T A   M E M O R Y  * * * * * * * * * * * * *
000000H   000040H   000041H   BYTE   UNIT     XDATA          ?XD?DATAMANAGER
000041H   000078H   000038H   BYTE   UNIT     XDATA          ?XD?UART
000079H   000092H   00001AH   BYTE   UNIT     XDATA          ?XD?SMB
000093H   00009BH   000009H   BYTE   UNIT     XDATA          ?XD?_FLASH_WRITE?FLASH
00009CH   0000A4H   000009H   BYTE   UNIT     XDATA          ?XD?_FLASH_READ?FLASH
0000A5H   0000ADH   000009H   BYTE   UNIT     XDATA          ?XD?_DATAMANAGER_FILLBUFFER?DATAMANAGER
0000AEH   0000B6H   000009H   BYTE   UNIT     XDATA          ?XD?SERDES_INITPROCA?SERDES
0000B7H   0000BEH   000008H   BYTE   UNIT     XDATA          ?XD?FLASH_INIT?FLASH
0000BFH   0000C6H   000008H   BYTE   UNIT     XDATA          ?XD?_TIMER_REVOCABLEDELAY?TIMER
0000C7H   0000CDH   000007H   BYTE   UNIT     XDATA          ?XD?TIMER
0000CEH   0000D4H   000007H   BYTE   UNIT     XDATA          ?XD?_BYTE2HEX?COMMON
0000D5H   0000DAH   000006H   BYTE   UNIT     XDATA          ?XD?_SMB_WRITEREGISTER?SMB
0000DBH   0000E0H   000006H   BYTE   UNIT     XDATA          ?XD?_SERDES_READREGISTER?SERDES
0000E1H   0000E5H   000005H   BYTE   UNIT     XDATA          ?XD?_SERDES_WRITEREGISTER?SERDES
0000E6H   0000E9H   000004H   BYTE   UNIT     XDATA          ?XD?_SMB_READREGISTER?SMB
0000EAH   0000EDH   000004H   BYTE   UNIT     XDATA          ?XD?_TIMER_DELAY?TIMER
0000EEH   0000F1H   000004H   BYTE   UNIT     XDATA          ?XD?_UART_TX?UART
0000F2H   0000F4H   000003H   BYTE   UNIT     XDATA          ?XD?_SMB_SLAVETXDATA?SMB
0000F5H   0000F7H   000003H   BYTE   UNIT     XDATA          ?XD?_DATAMANAGER_CLRBUFFER?DATAMANAGER
0000F8H   0000F9H   000002H   BYTE   UNIT     XDATA          ?XD?EXTINT
0000FAH   0000FBH   000002H   BYTE   UNIT     XDATA          ?XD?SERDES_INITPROCC?SERDES
0000FCH   0000FCH   000001H   BYTE   UNIT     XDATA          ?XD?_FLASH_BYTEWRITE?FLASH
0000FDH   0000FDH   000001H   BYTE   UNIT     XDATA          ?XD?_SMB_INIT?SMB
0000FEH   0000FEH   000001H   BYTE   UNIT     XDATA          ?XD?MAIN

0000FFH   0000FFH   000001H   BYTE   UNIT     XDATA          ?XD?SERDES

모두 더하면 256 byte 이다.

* * * * * * * * * * *   C O D E   M E M O R Y   * * * * * * * * * * * * *
000000H   000002H   000003H   ---    OFFS..   CODE           ?CO?SILABS_STARTUP?3
000003H   000005H   000003H   BYTE   OFFS..   CODE           ?EXTINT?00003
000006H   000009H   000004H   BYTE   UNIT     CODE           ?PR?MCU_RSTSRC_INIT?MCU
00000AH   00000AH   000001H   ---    ---      **GAP**
00000BH   00000DH   000003H   BYTE   OFFS..   CODE           ?TIMER?0000B
00000EH   000022H   000015H   BYTE   UNIT     CODE           ?C_INITSEG
000023H   000025H   000003H   BYTE   OFFS..   CODE           ?UART?00023
000026H   00003AH   000015H   BYTE   UNIT     CODE           ?PR?MCU_INIT?MCU
00003BH   00003DH   000003H   BYTE   OFFS..   CODE           ?SMB?0003B
00003EH   000072H   000035H   BYTE   UNIT     CODE           ?PR?_FLASH_BYTEWRITE?FLASH
000073H   000075H   000003H   BYTE   OFFS..   CODE           ?TIMER?00073
000076H   000213H   00019EH   BYTE   UNIT     CODE           ?PR?DATAMANAGER_TRANSMITDATATODISPLAY?DATAMANAGER
000214H   0003ABH   000198H   BYTE   UNIT     CODE           ?C?LIB_CODE
0003ACH   00045EH   0000B3H   BYTE   UNIT     CODE           ?PR?_BYTE2HEX?COMMON
00045FH   000508H   0000AAH   BYTE   UNIT     CODE           ?PR?_SMB_WRITEREGISTER?SMB
000509H   0005ACH   0000A4H   BYTE   UNIT     CODE           ?PR?SERDES_INITPROCC?SERDES
0005ADH   000640H   000094H   BYTE   UNIT     CODE           ?PR?_SERDES_WRITEREGISTER?SERDES
000641H   0006D1H   000091H   BYTE   UNIT     CODE           ?PR?SMBUS0_ISR?SMB
0006D2H   00075DH   00008CH   BYTE   UNIT     CODE           ?C_C51STARTUP
00075EH   0007E2H   000085H   BYTE   UNIT     CODE           ?PR?UART0_ISR?UART
0007E3H   000858H   000076H   BYTE   UNIT     CODE           ?PR?_SMB_READREGISTER?SMB
000859H   0008C3H   00006BH   BYTE   UNIT     CODE           ?PR?_FLASH_READ?FLASH
0008C4H   000928H   000065H   BYTE   UNIT     CODE           ?PR?_FLASH_WRITE?FLASH
000929H   00098CH   000064H   BYTE   UNIT     CODE           ?PR?_UART_TX?UART
00098DH   0009F0H   000064H   BYTE   UNIT     CODE           ?PR?_DATAMANAGER_FILLBUFFER?DATAMANAGER
0009F1H   000A4CH   00005CH   BYTE   UNIT     CODE           ?PR?_TIMER_REVOCABLEDELAY?TIMER


LX51 LINKER/LOCATER V4.66.30.0                                                        11/29/2017  18:16:47  PAGE 3


000A4DH   000AA1H   000055H   BYTE   UNIT     CODE           ?PR?_SERDES_READREGISTER?SERDES
000AA2H   000AF5H   000054H   BYTE   UNIT     CODE           ?PR?SMB_TX?SMB
000AF6H   000B48H   000053H   BYTE   UNIT     CODE           ?PR?DATAMANAGER_CHECKSMBMESSAGE?DATAMANAGER
000B49H   000B97H   00004FH   BYTE   UNIT     CODE           ?PR?SERDES_INIT?SERDES
000B98H   000BE2H   00004BH   BYTE   UNIT     CODE           ?PR?TIMER0_ISR?TIMER
000BE3H   000C27H   000045H   BYTE   UNIT     CODE           ?PR?_SMB_SLAVETXDATA?SMB
000C28H   000C6CH   000045H   BYTE   UNIT     CODE           ?PR?SERDES_INITPROCA?SERDES
000C6DH   000CAAH   00003EH   BYTE   UNIT     CODE           ?PR?TIMER3_ISR?TIMER
000CABH   000CE6H   00003CH   BYTE   UNIT     CODE           ?PR?FLASH_INIT?FLASH
000CE7H   000D1DH   000037H   BYTE   UNIT     CODE           ?CO?DATAMANAGER
000D1EH   000D4FH   000032H   BYTE   UNIT     CODE           ?PR?_DATAMANAGER_CLRBUFFER?DATAMANAGER
000D50H   000D7EH   00002FH   BYTE   UNIT     CODE           ?PR?_FLASH_PAGEERASE?FLASH
000D7FH   000DACH   00002EH   BYTE   UNIT     CODE           ?PR?_TIMER_DELAY?TIMER
000DADH   000DD5H   000029H   BYTE   UNIT     CODE           ?PR?DATAMANAGER_CHECKINT0MESSAGE?DATAMANAGER
000DD6H   000DFCH   000027H   BYTE   UNIT     CODE           ?PR?SMB_CLEARDATA?SMB
000DFDH   000E23H   000027H   BYTE   UNIT     CODE           ?PR?SMB_RX?SMB
000E24H   000E48H   000025H   BYTE   UNIT     CODE           ?PR?SMB_STX?SMB
000E49H   000E6DH   000025H   BYTE   UNIT     CODE           ?PR?MAIN_BASETASK?MAIN
000E6EH   000E92H   000025H   BYTE   UNIT     CODE           ?PR?MAIN_SCHEDULER?MAIN
000E93H   000EB6H   000024H   BYTE   UNIT     CODE           ?PR?SMB_SADDRCHECK?SMB
000EB7H   000ED9H   000023H   BYTE   UNIT     CODE           ?PR?_SMB_INIT?SMB
000EDAH   000EF8H   00001FH   BYTE   UNIT     CODE           ?PR?SERDES_INITPROCD?SERDES
000EF9H   000F14H   00001CH   BYTE   UNIT     CODE           ?PR?UART_INIT?UART
000F15H   000F2EH   00001AH   BYTE   UNIT     CODE           ?PR?_PORT_1_CHANGECONFIG?PORT
000F2FH   000F47H   000019H   BYTE   UNIT     CODE           ?PR?SMB_START?SMB
000F48H   000F60H   000019H   BYTE   UNIT     CODE           ?PR?TIMER_0_INIT?TIMER
000F61H   000F77H   000017H   BYTE   UNIT     CODE           ?PR?INT0_ISR?EXTINT
000F78H   000F8DH   000016H   BYTE   UNIT     CODE           ?PR?_FLASH_BYTEREAD?FLASH
000F8EH   000FA1H   000014H   BYTE   UNIT     CODE           ?PR?SMB_READ?SMB
000FA2H   000FB5H   000014H   BYTE   UNIT     CODE           ?PR?SMB_SRX?SMB
000FB6H   000FC9H   000014H   BYTE   UNIT     CODE           ?PR?UART_TXBUFCLEAR?UART
000FCAH   000FDBH   000012H   BYTE   UNIT     CODE           ?PR?SERDES_INITPROCB?SERDES
000FDCH   000FECH   000011H   BYTE   UNIT     CODE           ?PR?MAIN_INITTASK?MAIN
000FEDH   000FFCH   000010H   BYTE   UNIT     CODE           ?PR?EXTINT_INIT?EXTINT
000FFDH   00100CH   000010H   BYTE   UNIT     CODE           ?PR?TIMER_1_INIT?TIMER
00100DH   00101CH   000010H   BYTE   UNIT     CODE           ?PR?TIMER_2_INIT?TIMER
00101DH   00102BH   00000FH   BYTE   UNIT     CODE           ?PR?SMB_RESET?SMB
00102CH   00103AH   00000FH   BYTE   UNIT     CODE           ?PR?TIMER_INIT?TIMER
00103BH   001048H   00000EH   BYTE   UNIT     CODE           ?CO?MAIN
001049H   001056H   00000EH   BYTE   UNIT     CODE           ?PR?DATAMANAGER_INIT?DATAMANAGER
001057H   001063H   00000DH   BYTE   UNIT     CODE           ?PR?SMB_WRITE?SMB
001064H   001070H   00000DH   BYTE   UNIT     CODE           ?PR?SMB_WAITBUSY?SMB
001071H   00107DH   00000DH   BYTE   UNIT     CODE           ?PR?TIMER_3_INIT?TIMER
00107EH   001089H   00000CH   BYTE   UNIT     CODE           ?PR?_SMB_RCVEVENTADD?SMB
00108AH   001093H   00000AH   BYTE   UNIT     CODE           ?PR?PORT_0_INIT?PORT
001094H   00109CH   000009H   BYTE   UNIT     CODE           ?PR?PORT_INIT?PORT
00109DH   0010A5H   000009H   BYTE   UNIT     CODE           ?PR?TIMER_GETDELAYCOUNT?TIMER
0010A6H   0010AEH   000009H   BYTE   UNIT     CODE           ?PR?TIMER_GETSCHEDULECOUNT500MS?TIMER
0010AFH   0010B7H   000009H   BYTE   UNIT     CODE           ?PR?TIMER_GETSCHEDULECOUNT1000MS?TIMER
0010B8H   0010BFH   000008H   BYTE   UNIT     CODE           ?PR?TIMER_CLEARDELAYCOUNT?TIMER
0010C0H   0010C7H   000008H   BYTE   UNIT     CODE           ?PR?TIMER_CLEARSCHEDULECOUNT500MS?TIMER
0010C8H   0010CFH   000008H   BYTE   UNIT     CODE           ?PR?TIMER_CLEARSCHEDULECOUNT1000MS?TIMER
0010D0H   0010D7H   000008H   BYTE   UNIT     CODE           ?PR?MCU_PERIPHERALINIT?MCU
0010D8H   0010DEH   000007H   BYTE   UNIT     CODE           ?PR?PORT_1_INIT?PORT
0010DFH   0010E5H   000007H   BYTE   UNIT     CODE           ?PR?XBAR_INIT?PORT
0010E6H   0010ECH   000007H   BYTE   UNIT     CODE           ?PR?SMB_GETSMBBUSY?SMB
0010EDH   0010F3H   000007H   BYTE   UNIT     CODE           ?PR?TIMER_CLK_INIT?TIMER
0010F4H   0010FAH   000007H   BYTE   UNIT     CODE           ?PR?MCU_WDT_INIT?MCU
0010FBH   001101H   000007H   BYTE   UNIT     CODE           ?PR?GLBINT_INIT?GLBINT
001102H   001107H   000006H   BYTE   UNIT     CODE           ?PR?SMB_GETFOUNDSLAFLAG?SMB
001108H   00110DH   000006H   BYTE   UNIT     CODE           ?PR?SMB_GETFOUNDSLAADDR?SMB
00110EH   001113H   000006H   BYTE   UNIT     CODE           ?PR?SMB_CLEARFOUNDSLAFLAG?SMB


LX51 LINKER/LOCATER V4.66.30.0                                                        11/29/2017  18:16:47  PAGE 4


001114H   001119H   000006H   BYTE   UNIT     CODE           ?PR?_SMB_SETFOUNDSLAADDR?SMB
00111AH   00111FH   000006H   BYTE   UNIT     CODE           ?PR?TIMER_GETSCHEDULECOUNT100MS?TIMER
001120H   001125H   000006H   BYTE   UNIT     CODE           ?PR?TIMER_CLEARSCHEDULECOUNT100MS?TIMER
001126H   00112BH   000006H   BYTE   UNIT     CODE           ?PR?MAIN?MAIN
00112CH   001131H   000006H   BYTE   UNIT     CODE           ?PR?UART_GETRXBUFFERSIZE?UART
001132H   001ED8H   000DA7H   BYTE   UNIT     CONST          ?CO?SERDES

001ED9H   001EE0H   000008H   BYTE   UNIT     CONST          ?CO?FLASH

0 및 - 를 제외한 것을 모두 더하면 7901 여서 빌드 결과인 7904와 3 byte 다르다.
?CO? CONST:
    - ?CO?SERDES: 3495
    - ?CO?FLASH: 8
을 더하면 3503 이 되므로 이것이 Build 결과와 같은것 같다.

?PR? CODE










댓글 없음:

댓글 쓰기