⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 errata.txt

📁 FreeRTOS 是一个源码公开的免费的嵌入式实时操作系统
💻 TXT
字号:

SILICON ERRATA ISSUES


PLEASE READ THIS:
   Some devices contains silicon bugs. The compiler will not
   automatically generate work around code for such problems. This
   file contains a list of some silicon bugs and suggested
   solutions. It is ALWAYS recommended to get (download) the latest
   errata doc from Microchip to make sure that all such issues are
   handled in the application.


1. LFSR bug. Applies to the PIC18C242 /442 /252 /452 devices.

   PROBLEM: "Using the LFSR instruction to load a value into the
   specified FSR register, may also corrupt a RAM location."

   WORK AROUND: The compiler will BY DEFAULT NOT use the LFSR
   instruction for the mentioned devices (when using the standard
   header files). For all other devices, LFSR will be used. For
   compiler version 1.0E and earlier, the default setting is to
   not use LFSR for any device.

   It is possible to override the default settings by a command
   line option:
     -LFSR-  : do not use the LFSR instruction
     -LFSR+  : use the LFSR instruction


2. TABLE READ problem. Applies to the PIC18F252 /452 /258 /458
   devices produced earlier than a certain date.

   PROBLEM: "The execution of a TABLE READ instruction may yield
   erroneous results. This has been observed when a Table Read
   instruction and its read destination, as indicated by the Table
   Pointer registers, are on opposite sides of the 4000h program
   memory address boundary. This behavior has not been observed when
   the instruction and its target both occur strictly within the
   same half of the program memory space."

   WORK AROUND: This must be handled in the application according to
   the information from Microchip. The compiler will put the _const
   access function on a specific position by using:

     #pragma insertConst

   From Microchip doc: "Insert a data word of value FFFFh
   immediately following any Table Read instruction. This behaves as
   a NOP instruction when executed. Using the actual NOP instruction
   instead of a literal FFFFh may not have the same results. This is
   a recommended solution. Others may exist."


3. Program flow problem. Applies to the PIC18F252 /452 /258 /458
   devices produced earlier than a certain date.

   PROBLEM: "The execution of some control operations may yield
   unexpected results. This has been observed when the following
   instructions vector code execution across the 4000h program
   memory address boundary: CALL, GOTO, RETURN, RETLW and RETFIE.
   There are no known issues related to any of these instructions
   when execution occurs strictly above or below the 4000h address
   boundary."

   WORK AROUND: This must be handled in the application according to
   the information from Microchip. The application should be
   partisioned to limit crossing the 4000h boundary. The required
   data words can be inserted by inline assembly and DW statements
   when using C code.

   From Microchip doc: "Two possible solutions are presented. Others
   may exist. It is recommended to implement either or both as
   needed. 1: Insert a data word of value FFFFh as the first
   instruction in the destination of a CALL or GOTO. 2: Insert a
   data word of value FFFFh immediately following any RETURN, RETLW,
   or RETFIE instruction. In either case, the literal data behaves
   as a NOP instruction when executed. Using the actual NOP
   instruction instead of a literal FFFFh may not have the same
   results."


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -