* Update getting started * Rename getting started * Remove rc reference --------- Co-authored-by: shubnil <103672514+shubnil@users.noreply.github.com>
3.8 KiB
Moving to 4.0.0 from 3.x.x:
Version 4.0.0 adds new files to support IPv6 functionality, breaking each file into logically separated IPv4 and IPv6 files. The folder structure of FreeRTOS-Plus-TCP remains unchanged. Build separation is added to make the library modular, enabling users to compile and create a low-footprint binary with only the required functionalities. For more details on supported build combinations, see History.txt .
Some of the APIs have changed which is illustrated in the section below. However, there is a backward compatibility mode provided as well.
Backward Compatibility Mode:
If you are moving your code from V3.x.x to V4.0.0, then set the "ipconfigIPv4_BACKWARD_COMPATIBLE" macro to 1 in “FreeRTOSIPConfigDefaults.h” to run the code in backward compatible mode. The "Existing API's" defined in all the API changes below work only when the backward compatibility mode is enabled.
API changes in 4.0.0:
The changes mentioned below uses ipconfigIPv4_BACKWARD_COMPATIBLE flag to differentiate between old API and new API.
Change 1:
- Existing API: FreeRTOS_IPInit
- Backward compatibility with the IPv4 FreeRTOS+TCP V3.x.x which only supports single network interface. This can be used for single interface IPv4 systems.
- New API: FreeRTOS_IPInit_Multi
- Supports multiple interfaces. Before calling this function, at least 1 interface and 1 end-point must have been set-up. FreeRTOS_IPInit_Multi() replaces the earlier FreeRTOS_IPInit().
Change 2:
- Existing API: FreeRTOS_GetAddressConfiguration/FreeRTOS_SetAddressConfiguration
- Get/Set the address configuration from the global variables initialised during FreeRTOS_IPInit
- New API: FreeRTOS_GetEndPointConfiguration/FreeRTOS_SetEndPointConfiguration
- Get/Set the same address configuration from/to the end point
Change 3:
- Existing API: FreeRTOS_GetUDPPayloadBuffer
- Backward compatibility with the IPv4 FreeRTOS+TCP V3.x.x. This can still be used for IPv4 use cases.
- New API:FreeRTOS_GetUDPPayloadBuffer_Multi
- A new argument (uint8_t ucIPType) to specify IP type to support both IPv4 and IPv6
Change 4:
- Existing API: pxFillInterfaceDescriptor
- It is there for backward compatibility. The function FreeRTOS_IPInit() will call it to initialise the interface and end-point objects
- New API: prefix_pxFillInterfaceDescriptor
- where prefix = Network Interface Name
- E.g pxWinPcap_FillInterfaceDescriptor
- New function with the same functionality
Change 5:
- Existing API: vApplicationIPNetworkEventHook
- New API: vApplicationIPNetworkEventHook_Multi
- New argument “struct xNetworkInterface * pxNetworkInterface” added.
Change 6:
- Existing API: xApplicationDHCPHook
- New API: xApplicationDHCPHook_Multi
- New argument "struct xNetworkEndPoint * pxEndPoint" added.
Change 7:
- Existing API: xApplicationDNSQueryHook
- New API: xApplicationDNSQueryHook_Multi
- New argument "struct xNetworkEndPoint * pxEndPoint" added.
NOTE : We are NOT considering the APIs changes in FreeRTOS_IP_Private.h for backward compatibility as those are not part of published interface.
Running Demos:
The demos can be found on this page.
In all the demos, there is a backward compatibility mode which can be enabled by setting the flag “ipconfigIPv4_BACKWARD_COMPATIBLE” to 1 in the header file “FreeRTOSIPConfigDefaults.h”. This flag is by default set to zero.
New IPv6 WinSim Demo can be found on this page.