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

How to store program code in flash?

Hello. I'm am a postgraduate engineering student and I'm currently working on a project that requires more than the available 1000H of program space and need to use the flash memory to store the program. I can't make the program any smaller at the and as it is barely functional as it current is with the code I've needed to remove.

I've never needed to use the flash memory in the past nor taught (I'm mechatronics major not electronics) and the lecturer that is an expert in the microprocessors has recently left and has not been replaced yet. Where would I find a step by step guide how to do it?

I looked through the support page for examples

www.silabs.com/.../mcu_applications_appnotes.htm

I found the example and notes about Code Banking but this does not say how to direct program code to the flash memory to start with and the code banking does not help as I'm using C8051FX20 micro that only has one bank.

Found the information about programming the flash memory with the JTAG but this seem to be example how to allow an update of the program while the micro is running

Any advice would be much appreciated

Thanks

Michael Edmondson

Parents
  • this is the print out from the complier

    Link in progress...
    C:\SiLabs\MCU\IDEfiles\C51\BIN\bl51.exe @H:\Control\Micro_Controllers\Code_devlopment\Backup_30_05_2007\BasicSMPS\Brainsmicro\cyglink.txt
    .

    BL51 BANKED LINKER/LOCATER V5.03 - SN: Cygnal_8051Fxxx
    COPYRIGHT KEIL ELEKTRONIK GmbH 1987 - 2002
    H:\Control\Micro_Controllers\Code_devlopment\Backup_30_05_2007\BasicSMPS\Brainsmicro\main.obj TO H:\Control\Micro_Controllers\Code_devlopment\Backup_30_05_2007\BasicSMPS\Brainsmicro\main RS(256) PL(68) PW(78)

    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?CHECKSENDEDINPUTES?MAIN

    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_SENDRESULT?MAIN

    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?INIT_TIMER4?MAIN

    *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL: INIT_TIMER2 MODULE: H:\CONTROL\MICRO_CONTROLLERS\CODE_DEVLOPMENT\BACKUP_30_05_2007\BASICSMPS\BRAINSMICRO\MAIN.OBJ (MAIN)

    >>
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: INIT_TIMER2 MODULE: H:\CONTROL\MICRO_CONTROLLERS\CODE_DEVLOPMENT\BACKUP_30_05_2007\BASICSMPS\BRAINSMICRO\MAIN.OBJ (MAIN)

    >> ADDRESS: 126FH

    ******************************************************************************
    * RESTRICTED VERSION WITH 1000H BYTE CODE SIZE LIMIT; USED: 12CFH BYTE (117%) *
    ******************************************************************************

    >>
    >>
    >>
    Program Size: data=125.2 xdata=147 code=4748
    LINK/LOCATE RUN COMPLETE. 5 WARNING(S), 0 ERROR(S)

    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?CHECKSENDEDINPUTES?MAIN

    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_SENDRESULT?MAIN

    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?INIT_TIMER4?MAIN

    *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL: INIT_TIMER2 MODULE: H:\CONTROL\MICRO_CONTROLLERS\CODE_DEVLOPMENT\BACKUP_30_05_2007\BASICSMPS\BRAINSMICRO\MAIN.OBJ (MAIN)

    >>
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: INIT_TIMER2 MODULE: H:\CONTROL\MICRO_CONTROLLERS\CODE_DEVLOPMENT\BACKUP_30_05_2007\BASICSMPS\BRAINSMICRO\MAIN.OBJ (MAIN)

    >> ADDRESS: 126FH

    *** FATAL ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED MODULE: H:\CONTROL\MICRO_CONTROLLERS\CODE_DEVLOPMENT\BACKUP_30_05_2007\BASICSMPS\BRAINSMICRO\MAIN.OBJ (-----)

    >> LIMIT: 1000H BYTE

Reply
  • this is the print out from the complier

    Link in progress...
    C:\SiLabs\MCU\IDEfiles\C51\BIN\bl51.exe @H:\Control\Micro_Controllers\Code_devlopment\Backup_30_05_2007\BasicSMPS\Brainsmicro\cyglink.txt
    .

    BL51 BANKED LINKER/LOCATER V5.03 - SN: Cygnal_8051Fxxx
    COPYRIGHT KEIL ELEKTRONIK GmbH 1987 - 2002
    H:\Control\Micro_Controllers\Code_devlopment\Backup_30_05_2007\BasicSMPS\Brainsmicro\main.obj TO H:\Control\Micro_Controllers\Code_devlopment\Backup_30_05_2007\BasicSMPS\Brainsmicro\main RS(256) PL(68) PW(78)

    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?CHECKSENDEDINPUTES?MAIN

    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_SENDRESULT?MAIN

    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?INIT_TIMER4?MAIN

    *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL: INIT_TIMER2 MODULE: H:\CONTROL\MICRO_CONTROLLERS\CODE_DEVLOPMENT\BACKUP_30_05_2007\BASICSMPS\BRAINSMICRO\MAIN.OBJ (MAIN)

    >>
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: INIT_TIMER2 MODULE: H:\CONTROL\MICRO_CONTROLLERS\CODE_DEVLOPMENT\BACKUP_30_05_2007\BASICSMPS\BRAINSMICRO\MAIN.OBJ (MAIN)

    >> ADDRESS: 126FH

    ******************************************************************************
    * RESTRICTED VERSION WITH 1000H BYTE CODE SIZE LIMIT; USED: 12CFH BYTE (117%) *
    ******************************************************************************

    >>
    >>
    >>
    Program Size: data=125.2 xdata=147 code=4748
    LINK/LOCATE RUN COMPLETE. 5 WARNING(S), 0 ERROR(S)

    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?CHECKSENDEDINPUTES?MAIN

    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_SENDRESULT?MAIN

    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?INIT_TIMER4?MAIN

    *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL: INIT_TIMER2 MODULE: H:\CONTROL\MICRO_CONTROLLERS\CODE_DEVLOPMENT\BACKUP_30_05_2007\BASICSMPS\BRAINSMICRO\MAIN.OBJ (MAIN)

    >>
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: INIT_TIMER2 MODULE: H:\CONTROL\MICRO_CONTROLLERS\CODE_DEVLOPMENT\BACKUP_30_05_2007\BASICSMPS\BRAINSMICRO\MAIN.OBJ (MAIN)

    >> ADDRESS: 126FH

    *** FATAL ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED MODULE: H:\CONTROL\MICRO_CONTROLLERS\CODE_DEVLOPMENT\BACKUP_30_05_2007\BASICSMPS\BRAINSMICRO\MAIN.OBJ (-----)

    >> LIMIT: 1000H BYTE

Children