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

C51: IN-SYSTEM FLASH PROGRAMMING (PART 2) and 80c400

I have been trying to run the demo program in the C51: IN-SYSTEM FLASH PROGRAMMING (PART 2) artical on the dallas 80c400 in contiguout mode.

the only changes I have made are:
change device to 80c400
change memory model: Large
code rom size: contiguous: 16M
far memory support.

but when I build the code I get the following errors. Any idea what I am doing wrong?

*** ERROR L127: UNRESOLVED EXTERNAL SYMBOL
SYMBOL: _CODE_FLASHMEM_L_
MODULE: Srom.obj (SROM)
*** ERROR L127: UNRESOLVED EXTERNAL SYMBOL
SYMBOL: _CODE_FLASHMEM_S_
MODULE: Srom.obj (SROM)
*** ERROR L127: UNRESOLVED EXTERNAL SYMBOL
SYMBOL: _CODE_FLASHMEM_T_
MODULE: Srom.obj (SROM)
*** ERROR L128: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: _CODE_FLASHMEM_L_
MODULE: Srom.obj (SROM)
ADDRESS: 10000CEH
*** ERROR L128: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: _CODE_FLASHMEM_L_
MODULE: Srom.obj (SROM)
ADDRESS: 10000D0H
*** ERROR L128: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: _CODE_FLASHMEM_S_
MODULE: Srom.obj (SROM)
ADDRESS: 10000D2H
*** ERROR L128: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: _CODE_FLASHMEM_S_
MODULE: Srom.obj (SROM)
ADDRESS: 10000D4H
*** ERROR L128: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: _CODE_FLASHMEM_T_
MODULE: Srom.obj (SROM)
ADDRESS: 10000D8H
*** ERROR L128: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: _CODE_FLASHMEM_T_
MODULE: Srom.obj (SROM)
ADDRESS: 10000DAH

Parents
No data
Reply
  • just thought I would pass a warning onto to you about a bug I encountered (and spent all day yesterday tracking down) relating to this.

    my board has flash at 0x200000 (rather than ram as in the tini)

    it seems SROM_MC_SRC returns the correct value if my code <64K (i.e. if code starts at 0x200000 and the address of the segment is 0x206E5A SROM_MC_SRC returns a generic pointer with value 0xa16e5a as expected) however if the code is over 64K it returns the generic pointer with an incorrect xbyte (i.e. if code starts at 0x200000 and the address of the segment is 0x21D097 SROM_MC_SRC returns a generic pointer with value 0xa1d097 ... the generic pointer should be 0xa2d097).... so the wrong code gets copied to RAM.

Children