|ARM Technical Support Knowledge Articles|
Applies to: C51 C Compiler
Information in this knowledgebase article applies to:
Is there a checking tool for the SYS XC8.001 problem that is present in the Infineon XC800 (in example XC888 or XC886) devices? Are these instructions generated by the C51 Compiler?
Yes, the instruction is generated by the C51 Compiler. It actually is very rare and depends on the way you assign results to an SFR register. To avoid the instruction you may change the source code and assign the value to a temporary variable before the final assignment to the SFR register.
For existing code you may check the image with the attached mddfind scanning tool for the erroneous instruction. The checking tool is invoked with the output file of the LX51 or BL51 Linker/Locoter.
When erroneous instructions are detected the following output is generated:
Looking for 'MOV dir,dir' with 'dir >= 0x80': ?C_STARTUP - 0x000001A1: MOV 0x80,0xCC ?C_STARTUP - 0x000001A5: MOV 0xD8,0x90 ?C?LSTKXDATA - 0x00000102: MOV 0xF0,0x83 3 'MOV dir,dir' found.
To automate the checking apply the following changes to your µVision project:
To locate the source code that causes the problem you can load the application into the µVision Debugger. When you select Use Simulator under Project - Options for Target - Debug no target hardware is required. Then perform the following steps:
Request the files attached to this knowledgebase article.
Article last edited on: 2009-01-17 03:54:25
Did you find this article helpful? Yes No
How can we improve this article?