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
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.