Microchip Technology XC8 Standard Compiler (Workstation) SW006021-1 SW006021-1 User Manual

Product codes
SW006021-1
Page of 518
XC8 Command-line Driver
 2012 Microchip Technology Inc.
DS52053B-page 103
4.8.27
--ERRATA: Specify Errata Workarounds
This option allows specification of software workarounds to documented silicon errata 
issues. A default set of errata issues apply to each device, but this set can be adjusted 
by using this option and the arguments presented in Table 4-10.
At present workarounds are only employed for PIC18 devices.
To disable all software workarounds, use the following.
--ERRATA=none
To apply the default set of workarounds, but to specifically disable the jump across 
4000 errata, for example, use the following.
--ERRATA=default,-4000
A preprocessor macro ERRATA_TYPES (see Section 5.14.3 “Predefined Macros”) i
set to a value to indicate the errata applied. Each errata listed in Table 4-10 represents 
a bit position in the value, with the top most errata in the table the least significant. The 
bit position is set if the errata is applied. That is, if the 4000, reset and bsr15 errata 
were applied, the value assigned to ERRATA_TYPES would be 0x31.
TABLE 4-10:
ERRATA WORKAROUNDS
Symbol
Workaround
4000
Program mem accesses/jumps across 4000h address boundary
fastints
Fast interrupt shadow registers corruption 
lfsr
Broken LFSR instruction
minus40
Program memory reads at -40 degrees
reset
GOTO instruction cannot exist at Reset vector
bsr15
Flag problems when BSR holds value 15
daw
Broken DAW instruction
eedatard
Read EEDAT in immediate instruction after RD set
eeadr
Don't set RD bit immediately after loading EEADR
ee_lvd
LVD must stabilise before writing EEPROM
fl_lvd
LVD must stabilise before writing Flash
tblwtint
Clear interrupt registers before tblwt instruction
fw4000
Flash write exe must act on opposite side of 4000h boundary.
resetram
RAM contents can corrupt if async. Reset occur during write access.
fetch
Corruptible instruction fetch. Apply FFFFh (NOP) at required locations.