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

C8051f120 Code Banking Problem

When I compile:
Build target 'Target 1'
compiling main.c...
compiling Config.c...
assembling L51_BANK.A51...
assembling STARTUP.A51...
compiling Misc.c...
compiling MenuSettings.c...
compiling MenuHandler.c...
compiling relay.c...
compiling DSP_Data.c...
compiling TestAlgorithm..c...
compiling comuni.c...
compiling device.c...
compiling KeyBoard.c...
assembling PROBNA.ASM...
PROBNA.ASM(1999): warning A73: TEXT FOUND BEYOND END STATEMENT - IGNORED
compiling display.c...
compiling MEASURE.C...
compiling SomeMenuFunctions.c...
compiling Menu.c...
linking...
*** WARNING L16: UNCALLED FUNCTION, IGNORED FOR OVERLAY PROCESS
NAME: NEW_TICKS/MISC
*** WARNING L16: UNCALLED FUNCTION, IGNORED FOR OVERLAY PROCESS
NAME: INIT_REAL_TIME_CLOCK/COMUNI
*** WARNING L16: UNCALLED FUNCTION, IGNORED FOR OVERLAY PROCESS
NAME: PEO_DLY1/DEVICE
*** WARNING L16: UNCALLED FUNCTION, IGNORED FOR OVERLAY PROCESS
NAME: PEO_DLY2/DEVICE
*** WARNING L16: UNCALLED FUNCTION, IGNORED FOR OVERLAY PROCESS
NAME: FLASH1/DEVICE
*** WARNING L16: UNCALLED FUNCTION, IGNORED FOR OVERLAY PROCESS
NAME: FLASH2/DEVICE
*** WARNING L16: UNCALLED FUNCTION, IGNORED FOR OVERLAY PROCESS
NAME: GET_MEASURED_PRELIMINARY/MEASURE
*** WARNING L16: UNCALLED FUNCTION, IGNORED FOR OVERLAY PROCESS
NAME: SHOW_PRIMARY/MEASURE
*** WARNING L16: UNCALLED FUNCTION, IGNORED FOR OVERLAY PROCESS
NAME: GET_VT_TEST/MEASURE
*** WARNING L16: UNCALLED FUNCTION, IGNORED FOR OVERLAY PROCESS
NAME: GET_CT_TEST/MEASURE
*** WARNING L16: UNCALLED FUNCTION, IGNORED FOR OVERLAY PROCESS
NAME: SHOW_VT_PARAMETERS/MEASURE
*** WARNING L16: UNCALLED FUNCTION, IGNORED FOR OVERLAY PROCESS
NAME: GET_CT_RATIO/MEASURE
*** WARNING L16: UNCALLED FUNCTION, IGNORED FOR OVERLAY PROCESS
NAME: SHOW_VT_D/MEASURE
Program Size: data=90.0 xdata=866 const=0 code=67101
creating hex file from ".\AnalyzHEX\Meter"...
".\AnalyzHEX\Meter" - 0 Error(s), 14 Warning(s).
Everithing seems to be ok.(there are some uncalled functions currently), but ... it's ok

BUT !!! When I want to load it... It loads only .... about 12.4KB of the 65.5KB?
Load "C:\\Documents and Settings\\Angel\\Desktop\\SilverCygnal\\FirmWare\\AnalyzHEX\\Meter"
Flash Erase Done.
Flash Image Update Complete.
Beginning programming...
Flash Program Done: 12738 bytes programmed.
Flash Verify Done: 12738 bytes verified.

Can someone explain why?
The project settings are:

Device: C8051F120
Extended Linker

Memory model: small
CodeRomSize: large
OS: None

Output hex file: HEX-386
Debug Information
Browse Information

C51 Code Optimization Level: 11
Emphasis: Favor size

There are the following files in the output directory:
03/20/2006 05:25 PM 173,487 comuni.obj
03/20/2006 05:25 PM 18,975 Config.obj
03/20/2006 05:25 PM 49,723 device.obj
03/20/2006 05:25 PM 77,004 display.obj
01/28/2006 10:41 PM 51,587 DSP_Data.obj
01/28/2006 10:41 PM 20,480 KeyBoard.obj
03/20/2006 05:25 PM 69,933 main.obj
01/28/2006 10:41 PM 570,928 Measure.obj
01/28/2006 10:57 PM 162,343 MenuHandler.obj
01/28/2006 10:41 PM 60,438 MenuSettings.obj
03/20/2006 05:25 PM 273,746 Meter
03/20/2006 05:25 PM 45,114 Meter.hex
03/20/2006 05:25 PM 292 Meter.lnp
03/20/2006 05:25 PM 11,715 Meter.plg
03/20/2006 05:25 PM 178,004 Meter.SBR
01/28/2006 10:41 PM 213,346 Misc.obj
03/20/2006 05:25 PM 131,066 MMC.obj
03/20/2006 05:25 PM 15,664 PROBNA.obj
01/28/2006 10:41 PM 25,597 relay.obj
01/28/2006 10:41 PM 58,644 TestAlgorithm..obj
20 File(s) 2,208,086 bytes
2 Dir(s) 683,499,520 bytes free

  • 12.4K of code sound abour right for a 45K hex file.

  • let us see the (top of) the M51

    Erik

  • Sorry, I have copyed an incorrect directory listing. Here is the correct:
    03/29/2006 05:57 PM 172,188 comuni.obj
    03/29/2006 05:57 PM 18,657 Config.obj
    03/29/2006 05:57 PM 60,557 device.obj
    03/29/2006 05:57 PM 155,060 display.obj
    03/29/2006 05:57 PM 55,180 DSP_Data.obj
    03/29/2006 05:57 PM 24,224 KeyBoard.obj
    03/29/2006 05:57 PM 1,390 L51_BANK.obj
    03/29/2006 05:57 PM 118,738 main.obj
    03/29/2006 05:57 PM 628,922 MEASURE.obj
    03/29/2006 05:57 PM 893,826 Menu.obj
    03/29/2006 05:57 PM 158,549 MenuHandler.obj
    03/29/2006 05:57 PM 63,103 MenuSettings.obj
    03/29/2006 05:58 PM 1,190,956 Meter
    03/29/2006 04:41 PM 100,333 METER.B01
    03/29/2006 04:41 PM 111,701 METER.B02
    03/29/2006 04:41 PM 96,287 METER.B03
    03/29/2006 04:41 PM 110,379 Meter.H01
    03/29/2006 04:41 PM 123,794 Meter.H02
    03/29/2006 04:41 PM 102,289 Meter.H03
    03/29/2006 05:58 PM 298,775 Meter.hex
    03/29/2006 05:58 PM 305,589 Meter.HTM
    03/29/2006 05:57 PM 839 Meter.lnp
    03/29/2006 06:47 PM 194 Meter.plg
    03/29/2006 05:58 PM 823,087 Meter.SBR
    03/29/2006 05:57 PM 252,019 Misc.obj
    03/29/2006 05:57 PM 15,664 PROBNA.obj
    03/29/2006 05:57 PM 28,262 relay.obj
    03/29/2006 05:57 PM 260,265 SomeMenuFunctions.obj
    03/29/2006 05:57 PM 772 STARTUP.obj
    03/29/2006 05:57 PM 56,886 TestAlgorithm..obj
    30 File(s) 6,228,485 bytes
    2 Dir(s) 672,133,120 bytes free


    And what is M51 ?

  • And what is M51 ?

    the .m51 file that the linker generates

    Erik

  • Here it is:

    BL51 BANKED LINKER/LOCATER V5.11 03/29/2006 16:41:16 PAGE 1





    BL51 BANKED LINKER/LOCATER V5.11, INVOKED BY:

    C:\KEIL\C51\BIN\BL51.EXE COMMON {.\AnalyzHEX\main.obj}, COMMON {.\AnalyzHEX\TestAlgorithm..obj}, COMMON {.\AnalyzHEX\PRO

    >> BNA.obj}, COMMON {.\AnalyzHEX\KeyBoard.obj}, COMMON {.\AnalyzHEX\device.obj}, COMMON {.\AnalyzHEX\display.obj}, COMMO

    >> N {.\AnalyzHEX\comuni.obj}, COMMON {.\AnalyzHEX\Config.obj}, COMMON {.\AnalyzHEX\L51_BANK.obj}, COMMON {.\AnalyzHEX\S

    >> TARTUP.obj}, BANK1 {.\AnalyzHEX\relay.obj}, BANK1 {.\AnalyzHEX\DSP_Data.obj}, BANK1 {.\AnalyzHEX\MenuSettings.obj}, B

    >> ANK1 {.\AnalyzHEX\MEASURE.obj}, BANK2 {.\AnalyzHEX\Menu.obj}, BANK3 {.\AnalyzHEX\MenuHandler.obj}, BANK3 {.\AnalyzHEX

    >> \Misc.obj}, BANK3 {.\AnalyzHEX\SomeMenuFunctions.obj} TO .\AnalyzHEX\Meter BANKAREA (0X0000, 0X7FFF) PRINT (.\Meter.m

    >> 51) RAMSIZE (256) XDATA (0X0000-0X7FFF)





    MEMORY MODEL: SMALL WITH FLOATING POINT ARITHMETIC





    INPUT MODULES INCLUDED:

    .\AnalyzHEX\main.obj (MAIN)

    .\AnalyzHEX\TestAlgorithm..obj (TESTALGORITHM_)

    .\AnalyzHEX\PROBNA.obj (PROBNA)

    .\AnalyzHEX\KeyBoard.obj (KEYBOARD)

    .\AnalyzHEX\device.obj (DEVICE)

    .\AnalyzHEX\display.obj (DISPLAY)

    .\AnalyzHEX\comuni.obj (COMUNI)

    .\AnalyzHEX\Config.obj (CONFIG)

    .\AnalyzHEX\L51_BANK.obj

  • I just have compiled the AN130 from sillabs. There also uVision2 reports 2k when compiled, and 1k when loaded, but works ... maybe that is bug like a what is the size of the last bank loaded on the chip... I don't know ... I will cut mu code to some hello world functions from the different banks ...