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

📄 history.txt

📁 FREERTOS的3.2.4版,关键是这个包里面含有FreeRTOS的官方网站的镜像,内含FreeRTOS的完全文档和好多种CPU的移植成果.
💻 TXT
📖 第 1 页 / 共 2 页
字号:
	  The previous definitions prevented V2.3.0 operating if the iom323.h
	  header file was included in portmacro.s90.

Changes between V2.2.0 and V2.3.0 - Released June 19, 2004

	+ Added an AVR port that uses the IAR compiler.
	+ Explicit use of 'signed' qualifier on plain char types.
	+ Modified the Open Watcom project files to use 'signed' as the 
	  default char type.
	+ Changed odd calculation of initial pxTopOfStack value when 
	  portSTACK_GROWTH < 0.
	+ Added inline qualifier to context switch functions within task.c.
	  Ports that do not support the (non ANSI) inline keyword have the
	  inline #define'd away in  their respective portmacro.h files.

Changes between V2.1.1 and V2.2.0 - Released May 18, 2004

	+ Added Cygnal 8051 port.
	+ PCLATU and PCLATH are now saved as part of the PIC18 context.  This 
	  allows function pointers to be used within tasks.  Thanks to Javier 
	  Espeche for the enhancement. 
	+ Minor changes to demo application files to reduce stack usage.
	+ Minor changes to prevent compiler warnings when compiling the new port.

Changes between V2.1.0 and V2.1.1 - Released March 12, 2004

	+ Bug fix - pxCurrentTCB is now initialised before the call to 
	  prvInitialiseTaskLists().  Previously pxCurrentTCB could be accessed 
	  while null during the initialisation sequence.  Thanks to Giuseppe 
	  Franco for the correction.
	  
Changes between V2.0.0 and V2.1.0 - Released Feb 29, 2004

	V2.1.0 has significant reworks that greatly reduce the amount of time 
	the kernel has interrupts disabled.  The first section of modifications
	listed here must be taken into account by users.  The second section
	are related to the kernel implementation and as such are transparent.

	Section1 :

	+ The typedef portTickType has been introduced.  All delay times should
	  now use a variable of type portTickType in place of the unsigned long's
	  used previously.  API function prototypes have been updated 
	  appropriately.
	+ The configuration macro USE_16_BIT_TICKS has been introduced.  If set
	  to 1 portTickType is defined as an unsigned short.  If set to 0
	  portTickType is defined as an unsigned long.  See the configuration 
	  section of the API documentation for more details.
	+ The configuration macro INCLUDE_vTaskSuspendAll is now obsolete.
	+ vTaskResumeAll() has been renamed cTaskResumeAll() as it now returns a
	  value (see the API documentation).
	+ ulTaskGetTickCount() has been renamed xTaskGetTickCount() as the type
	  it returns now depends on the USE_16_BIT_TICKS definition.
	+ cQueueReceive() must now >never< be used from within an ISR.  Use the new
	  cQueueReceiveFromISR() function instead.

	Section 2:

	+ A mechanism has been introduced that allows a queue to be accessed by
	  a task and ISR simultaneously.
	+ A "pending ready" queue has been introduced that enables interrupts to 
	  be processed when the scheduler is suspended.
	+ The list implementation has been improved to provide faster item 
	  removal.
	+ The scheduler now makes use of the scheduler suspend mechanism in places 
	  where previously interrupts were disabled.

Changes between V1.2.6 and V2.0.0 - Released Jan 31, 2004
	
	+ Introduced new API functions:
		vTaskPriorityGet ()
		vTaskPrioritySet ()
		vTaskSuspend ()
		vTaskResume ()
		vTaskSuspendAll ()
		vTaskResumeAll ()
	+ Added conditional compilation options that allow the components of the
	  kernel that are unused by an application to be excluded from the build.
	  See the Configuration section on the WEB site for more information (on
	  the API pages).  The macros have been added to each portmacro.h file (
	  sometimes called prtmacro.h).
	+ Rearranged tasks.c.
	+ Added demo application file dynamic.c.
	+ Updated the PC demo application to make use of dynamic.c.
	+ Updated the documentation contained in the kernel header files.
	+ Creating a task now causes a context switch if the task being created
	  has a higher priority than the calling task - assuming the kernel is
	  running.
	+ vTaskDelete() now only causes a context switch if the calling task is
	  the task being deleted.

Changes between V1.2.5 and V1.2.6 - Released December 31, 2003

	Barring the change to the interrupt vector (PIC port) these are minor
	enhancements.

	+ The interrupt vector used for the PIC master ISR has been changed from
	  0x18 to 0x08 - where it should have always been.  The incorrect address
	  still works but probably executes a number of NOP's before getting to the
	  ISR.
	+ Changed the baud rate used by the AVR demo application to 38400.  This
	  has an error percentage of less than one percent with an 8MHz clock.
	+ Raised the priority of the Rx task in demo\full\comtest.c.  This only
	  affects the Flashlite and PC ports.  This was done to prevent the Rx
	  buffer becoming full.
	+ Reverted the Flashlite COM port driver back so it does not use the DMA.
	  The DMA appears to miss characters under stress.  The Borland Flashlite
	  port was also calculating a register value incorrectly resulting in the
	  wrong DMA source address being used.  The same code worked fine when
	  compiling with Open Watcom.  Other minor enhancements were made to the
	  interrupt handling.
	+ Modified the PIC serial Rx ISR to check for and clear overrun errors.
	  Overrun errors seem to prevent any further characters being received.
	+ The PIC demo projects now have some optimisation switched on.


Changes between V1.2.4 and V1.2.5

	Small fix made to the PIC specific port.c file described below.

	+ Introduced portGLOBAL_INTERRUPT_FLAG definition to test the global 
	  interrupt flag setting.  Using the two bits defined within
	  portINITAL_INTERRUPT_STATE was causing the w register to get clobbered
	  before the test was performed.

Changes between V1.2.3 and V1.2.4

	V1.2.4 contains a release version of the PIC18 port.
	An optional exception has been included with the GPL.  See the licensing
	section of www.FreeRTOS.org for details.

	+ The function xPortInitMinimal() has been renamed to 
	  xSerialPortInitMinimal() and the function xPortInit() has been renamed
	  to xSerialPortInit().
	+ The function sSerialPutChar() has been renamed cSerialPutChar() and
	  the function return type chaned to portCHAR.
	+ The integer and flop tasks now include calls to tskYIELD(), allowing
	  them to be used with the cooperative scheduler.
	+ All the demo applications now use the integer and comtest tasks when the
 	  cooperative scheduler is being used.  Previously they were only used with
	  the preemptive scheduler.
	+ Minor changes made to operation of minimal versions of comtest.c and
	  integer.c.
	+ The ATMega port definition of portCPU_CLOSK_HZ definition changed to 
	  8MHz base 10, previously it base 16.



Changes between V1.2.2a and V1.2.3

	The only change of any significance is to the license, which has changed 
	from the Open Software License to the GNU GPL.

	The zip file also contains a pre-release version of the PIC18 port.  This
	has not yet completed testing and as such does not constitute part of the
	V1.2.3 release.  It is still however covered by the GNU GPL.

	There are minor source code changes to accommodate the PIC C compiler.
	These mainly involve more explicit casting.

	+ sTaskCreate() has been modified slightly to make use of the 
	  portSTACK_GROWTH macro.  This is required for the PIC port where the
	  stack grows in the opposite direction to the other existing ports.
	+ prvCheckTasksWaitingTermination() has been modified slightly to bring
	  the decrementing of usCurrentNumberOfTasks within the critical section,
	  where it should have been since the creation of an eight bit port. 

Changes between V1.2.2 and V1.2.2a

	The makefile and buildcoff.bat files included with the AVR demo application
	have been modified for use with the September 2003 build of WinAVR.  No
	source files have changed.

Changes between V1.2.1 and V1.2.2

	There are only minor changes here to allow the PC and Flashlite 186 ports
	to use the Borland V4.52 compiler, as supplied with the Flashlite 186
	development kit.

	+ Introduced a BCC directory under source\portable.  This contains all the
	  files specific to the Borland compiler port.
	+ Corrected the macro naming of portMS_PER_TICK to portTICKS_PER_MS.
	+ Modified comtest.c to increase the rate at which the string is 
	  transmitted and received on the serial port.  The Flashlite 186 demo
	  app baud rate has also been increased.
	+ The values of the constants used in both integer.c files have been
          increased to force the Borland compiler to use 32 bit values.  The 
          Borland optimiser placed the previous values in 16 bit registers, and in
          So doing invalidated the test.

Changes between V1.2.0 and V1.2.1

	This version includes some minor changes to the list implementation aimed
	at improving the context switch time - with is now approximately 10% faster.
	Changes include the removal of some null pointer assignment checks.  These
	were redundant where the scheduler uses the list functions, but means any
	user application choosing to use the same list functions must now check 
	that no NULL pointers are passed as a parameter.

	The Flashlite 186 serial port driver has also been modified to use a DMA
	channel for transmissions.  The serial driver is fully functional but still
	under development.  Flashlite users may prefer to use V1.2.0 for now.

	Details:

	+ Changed the baud rate for the ATMega323 serial test from 19200 to 57600.
	+ Use vSerialPutString() instead of single character puts in
	  Demo\Full\Comtest.c.  This allows the use of the flashlite DMA serial 
	  driver.  Also the check variable only stops incrementing after two 
	  consecutive failures.
	+ semtest.c creates four tasks, two of which operate at the idle priority.
	  The tasks that operate at the idle priority now use a lower expected
	  count than those running at a higher priority.  This prevents the low
	  priority tasks from signalling an error because they have not been 
	  scheduled enough time for each of them to count the shared variable to
	  the higher original value.
	+ The flashlite 186 serial driver now uses a DMA channel for transmissions.
	+ Removed the volatile modifier from the list function parameters.  This was
	  only ever included to prevent compiler warnings.  Now warnings are 
	  removed by casting parameters where the calls are made.
	+ prvListGetOwnerOfNextEntry() and prvListGetOwnerOfHeadEntry() have been
	  removed from list.c and added as macros in list.h.
	+ usNumberOfItems has been added to the list structure.  This removes the
	  need for a pointer comparison when checking if a list is empty, and so
	  is slightly faster.
	+ Removed the NULL check in vListRemove().  This makes the call faster but
	  necessitates any application code utilising the list implementation to
	  ensure NULL pointers are not passed.
	+ Renamed portTICKS_PER_MS definition to portMS_PER_TICK (milli seconds
	  per tick).  This is what it always should have been.

Changes between V1.01 and V1.2.0

	The majority of these changes were made to accommodate the 8bit AVR port.  
	The scheduler workings have not changed, but some of the data types used 
	have been made more friendly to an eight bit environment.

	Details:

	+ Changed the version numbering format.
	+ Added AVR port.
	+ Split the directory demo\common into demo\common\minimal and 
	  demo\common\full.  The files in the full directory are for systems with 
	  a display (currently PC and Flashlite 186 demo's).  The files in the 
	  minimal directory are for systems with limited RAM and no display 
	  (currently MegaAVR).
	+ Minor changes to demo application function prototypes to make more use 
	  of 8bit data types.
	+ Within the scheduler itself the following functions have slightly 
	  modified declarations to make use of 8bit data types where possible: 
		xQueueCreate(), 
		sQueueReceive(), 
		sQUeueReceive(), 
		usQueueMessageWaiting(), 
		sQueueSendFromISR(), 
		sSemaphoreTake(), 
		sSemaphoreGive(), 
		sSemaphoreGiveFromISR(), 
		sTaskCreate(), 
		sTaskMoveFromEventList().  

	  Where the return type has changed the function name has also changed in 
	  accordance with the naming convention.  For example 
	  usQueueMessageWaiting() has become ucQueueMessageWaiting().
	+ The definition tskMAX_PRIORITIES has been moved from task.h to 
	  portmacro.h and renamed portMAX_PRIORITIES.  This allows different 
	  ports to allocate a different maximum number of priorities.
	+ By default the trace facility is off, previously USE_TRACE_FACILITY 
	  was defined.
	+ comtest.c now uses a psuedo random delay between sends.  This allows for
	  better testing as the interrupts do not arrive at regular intervals.
	+ Minor change to the Flashlite serial port driver.  The driver is written
	  to demonstrate the scheduler and is not written to be efficient.



Changes between V1.00 and V1.01

	These changes improve the ports.  The scheduler itself has not changed.

	Improved context switch mechanism used when performing a context
	switch from an ISR (both the tick ISR and the serial comms ISR's within
	the demo application).  The new mechanism is faster and uses less stack.

	The assembler file portasm.asm has been replaced by a header file
	portasm.h.  This includes a few assembler macro definitions.

	All saving and restoring of registers onto/off of the stack is now handled
	by the compiler.  This means the initial stack setup for a task has to
	mimic the stack used by the compiler, which is different for debug and
	release builds.

	Slightly changed the operation of the demo application, details below.

	Details:

	+ portSWITCH_CONTEXT() replaced by vPortFirstContext().
	+ pxPortInitialiseStack() modified to replicate the stack used by the
	  compiler.
	+ portasm.asm file removed.
	+ portasm.h introduced.  This contains macro definitions for 
	  portSWITCH_CONTEXT() and portFIRST_CONTEXT().
	+ Context switch from ISR now uses the compiler generated interrupt
	  mechanism.  This is done simply by calling portSWITCH_CONTEXT and leaving
	  the save/restore to compiler generated code.
	+ Calls to taskYIELD() during ISR's have been replaced by calling the
	  simpler and faster portSWITCH_CONTEXT().
	+ The Flashlite 186 port now uses 186 instruction set (used to use 80x86 
	  instructions only).
	+ The blocking queue tasks within the demo application did not operate
	  quite as described.  This has been corrected.
	+ The priority of the comtest Rx task within the demo application has been
	  lowered.  Received characters are now processed (read from the queue) at 
	  the idle priority, allowing low priority tasks to run evenly at times of 
	  a high communications overhead.
	+ Prevent the call to kbhit() in main.c for debug builds as the debugger 
	  seems to have problems stepping over the call.  This if for the PC port
	  only.



⌨️ 快捷键说明

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