FreeRTOS 是一个源码公开的免费的嵌入式实时操作系统

源代码在线查看: errata.txt

软件大小: 555 K
上传用户: liuhong22008
关键词: FreeRTOS 源码 嵌入式 实时操作系统
下载地址: 免注册下载 普通下载 VIP

相关代码

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

相关资源