We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
I'm currently running a SiLabs C8051F336 processor using the CX51 compiler. I'm getting and illegal op-code (A5-the EMOV instruction) when I compile the following line:
*string = map_char_to_index(*string, font);
this get compiled as
; SOURCE LINE # 77 001E AD00 R MOV R5,font 0020 120000 R LCALL _map_char_to_index 0023 AB00 R MOV R3,string 0025 AA00 R MOV R2,string+01H 0027 A900 R MOV R1,string+02H 0029 EF MOV A,R7 002A A558 EMOV @PR0,A
Any ideas as to why that instruction is implemented on a non MX core, and non Phillips device? How do I disable it?
That's not quite true.
You can use C51 with LX51 without the OMF2 control provided you don't want to use any of the features that require OMF2!
eg, the documentation of the USERCLASS Compiler Directive says,
"Memory classes are only available when you use the OMF2 format and the extended LX51 Linker/Locater."
http://www.keil.com/support/man/docs/c51/c51_userclass.htm
At this point I believe all the fly *** has been removed from the pepper. Moving along now.