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

Cygnal constants in upper 64k w/o bankswitching

The Cygnal f12x has 128k of flash and using code banking defeats the purpose of using Cygnal. The overhead of banking slows the program down as much as using the Cygnal speed it up.
Thus:

Is there a way in Keil to make all movc a,@a+dptr generated by the compiler/written in assembler access the upper 64k WITHOUT using bankswitching. The Cygnal chip has simple means of data bank select.

in advance thanks,

Erik

Parents
  • I don't know how the Cygnal (Silicon Labs?) works, but this is quite easy with the Triscend - if I understand you correctly:

    You use the XCONST option to place items defined as const into the Flash, and then use a Data Mapper to map this into XDATA space - without the need for any (Keil) Bank-switching.
    String literals can similarly be placed in the Flash to appear in XDATA space.

    You need the OHX51 Object-to-Hex converter, but I think the version shipping with C51 still has a bug:
    http://www.keil.com/forum/docs/thread2074.asp
    You may need to contact Keil direct for the fixed version.

    Hope that heps,

    A.

Reply
  • I don't know how the Cygnal (Silicon Labs?) works, but this is quite easy with the Triscend - if I understand you correctly:

    You use the XCONST option to place items defined as const into the Flash, and then use a Data Mapper to map this into XDATA space - without the need for any (Keil) Bank-switching.
    String literals can similarly be placed in the Flash to appear in XDATA space.

    You need the OHX51 Object-to-Hex converter, but I think the version shipping with C51 still has a bug:
    http://www.keil.com/forum/docs/thread2074.asp
    You may need to contact Keil direct for the fixed version.

    Hope that heps,

    A.

Children
No data