Commit Graph

238 Commits (03410500483e0ab03480858a7f1d7df33c76ab06)

Author SHA1 Message Date
Richard Barry 0b0a02b76a Bring in a minimum subset of the IoT SDK - at this time just a subset of the library dependencies rather than the libraries themselves.
Richard Barry b51529a284 Update version number ready for next release.
Richard Barry 606845492b Fix potential memory leak in the Win32 FreeRTOS+TCP network interface initialisation sequence.
Introduce portMEMORY_BARRIER() macro to assist with memory access ordering when suspending the scheduler if link time optimization is used.
Richard Barry 50e67a89f1 Update version number in +TCP code.
Richard Barry 58ba10eee8 Update version number in readiness for V10.2.0 release.
Richard Barry ab49c6ae04 Very minor formatting changes, and remove legacy link to V8 upgrade information.
Richard Barry 92ae8e7aff Update version numbers ready for release.
Richard Barry 1a235efd2b Update trace configuration files for the updated trace recorder code.
Richard Barry be9c0730c3 Update trace recorder code to the latest.
Some minor changes to enable the configREMOVE_STATIC_QUALIFIER constant to be used by those debuggers that cannot cope with statics being used.
Richard Barry 97a686b2e1 Fix mixed tabs and spaces in the latest TCP patches.
Richard Barry 9bda04b472 Fix build issues in the FreeRTOS_Plus_TCP_Minimal_Windows_Simulator project:
+ Set configENABLE_BACKWARD_COMPATIBILITY to 1 in FreeRTOSConfig.h to account for the fact that a member of the List_t structure has been renamed.
+ Provide a dummy implementation of ulApplicationGetNextSequenceNumber() to prevent linker warnings.
Richard Barry a11b1a494d FreeRTOS+UDP was removed in FreeRTOS V10.1.0 as it was replaced by FreeRTOS+TCP,
which was brought into the main download in FreeRTOS V10.0.0.  FreeRTOS+TCP can
be configured as a UDP only stack, and FreeRTOS+UDP does not contain the patches
applied to FreeRTOS+TCP.
Richard Barry bdb088e66f Fix some build issues in older kernel demo projects.
Update to V2.0.7 of the TCP/IP stack:
   + Multiple security improvements and fixes in packet parsing routines, DNS
     caching, and TCP sequence number and ID generation.
   + Disable NBNS and LLMNR by default.
   + Add TCP hang protection by default.

We thank Ori Karliner of Zimperium zLabs Team for reporting these issues.
Richard Barry d525d5092d Update trace recorder code.
Add TCP Echo server to the FreeR_Plus_TCP_Minimal_Window_Simulator project.
Richard Barry 7d92e4dd8f Sync with TCP version from AWS, including:
+ Add FreeRTOS_UpdateMACAddress().
+ Fix bug in lTCPWindowRxCheck() that manifested itself when flooded with lots of very small packets.
Richard Barry 9ed3a9fe18 Fix buffer clean up in \FreeRTOS_Plus_TCP_Minimal_Windows_Simulator\demo_logging.c.
Update queue code to allow an overwrite operation on a queue that is in a queue set, and add prvTestQueueOverwriteWithQueueSet() to test function.
Update Eclipse Win32 project to bring it closer the the Visual Studio equivalent.
Richard Barry ff74e7aa63 Allow IP address to be passed into gethostbyname().
Ensure xNetworkBuffersInitialise() doesn't use a semaphore before it has been tested against NULL.
Richard Barry 208cc18a90 Ensure data cannot be sent to a TCP socket if the socket is in the process of closing.
Correct definition of StaticTask_t in the case that portUSE_MPU_WRAPPERS is set to 1.
prvTaskCheckFreeStackSpace() now returns configSTACK_DEPTH_TYPE to allow return values greater than max uint16_t value if required.
xStreamBufferSend() and xStreamBufferReceive() no longer clear task notification bits - clearing was unnecessary as only the task notification state is used.
Richard Barry 13651934be Roll up the minor changes checked into svn since V10.0.0 into new V10.0.1 ready for release.
Richard Barry f998c8119a Update license information text files for the CLI, TCP and UDP products to be correct for V10.
Richard Barry 0d903cf2d6 FreeRTOS+TCP: Added ipconfigSOCKET_HAS_USER_WAKE_CALLBACK configuration option so the user can specify a callback to execute when data arrives.
FreeRTOS+TCP: Improve print output when using WinPCap to assist in selecting the correct network interface.
FreeRTOS kernel: Fix extern "C" { in stream_buffer.h.
FreeRTOS kernel: Correct tskKERNEL_VERSION_NUMBER and tskKERNEL_VERSION_MAJOR constants for V10.
Ensure the currently executing task is printed correctly in vTaskList().
Richard Barry cfc268814a Update to MIT licensed FreeRTOS V10.0.0 - see https://www.freertos.org/History.txt
Richard Barry e42a701e99 Add missing +TCP code.
Richard Barry 77e95538dc Added +TCP code to main repo.
Richard Barry b6f2402f3f Update trace recorder source to fix some compile time warnings.
Richard Barry 533b533820 Fix typo in comment that got copied into multiple main.c file.s
Richard Barry 504d9c8bab Update the FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator demo to use the latest FreeRTOS+Trace recorder code.
Richard Barry f289bfb388 Update to the latest trace recorder library.
Richard Barry 67def3c14b Update Reliance Edge fail safe file system to the latest version.
Richard Barry 7fcc976248 Update version of Reliance Edge.
Richard Barry 2bd7884ace Prepare for V9.0.0 release:
+ Change version number from V9.0.0rc2 to V9.0.0.
Richard Barry 07ac1399ee Update version number to 9.0.0rc2.
Richard Barry 26d3770fad - Rework the StaticAllocation.c common demo file to reflect the changes to the static allocation object create functions from the previous check-in.
- Correct various typos in comments.
- Add xTimerGetPeriod() function (feature request).
Richard Barry f4033581b5 Update FreeRTOS+ version number ready for version 9 release candidate 1.
Richard Barry d7253324cd Prepare for a FreeRTOS V9 release candidate:
- Remove the standard demo files that used the [long since deprecated] alternative API.
- Add standard demo task that tests the new xTaskAbortDelay() function.
- Update the Win32 Visual Studio project to use Visual Studio 2015 Community Edition.
- Rename the xGenericListItem TCB member to xStateListItem as it better describes the member's purpose.
Richard Barry 2acc8f2c99 FreeRTOS source:
- Major refactor to consolidate the multiple places where a task is removed from a ready list and placed in a delay list into a single function, reducing code size, and enabling the easy addition of up-coming functionality.
 - Replace the enum used for task notification states with a uint8_t to reduce the TCB struct size with some compilers, and allow additional members to be added without increasing its size.
 - Rearrange FreeRTOS.h so all INCLUDE_ defaults are grouped together.
Richard Barry 802af0150c Add vTaskGetTaskInfo() function that allows a TaskStatus_t structure to be returned for an individual task (previously information could only be obtained for all the tasks at once).
Add a member to the TaskStatus_t structure that is used to return the base address of the stack used by the task being queried.
Add xTaskGetTaskHandle() that allows the handle of a task to be looked up from the task's text name.
Continue to document the macros that allow RTOS objects to be created using statically allocated memory.
Introduced vApplicationDaemonTaskStartupHook(), which allows initialisation that that needs to be executed after the scheduler has been started to be executed from the RTOS daemon task.
Call prvResetNextTaskUnblockTime() in xTaskResumeAll() if a task is moved from the pending ready list - this can prevent an unnecessary wake from sleep mode if a task is unblocked by an interrupt while in a low power tickless state.
Richard Barry e9561c946c Kernel changes:
+ Support tickless idle when configUSE_PREEMPTION is 0 (previously tickless idle was only supported when the pre-emptive scheduler was being used).
+ If a stack was statically allocated, then don't try freeing it if the TCB cannot be allocated.
+ Remove use of INCLUDE_xEventGroupsSetBitsFromISR() pre-processor macro, as it was not tested anyway.

Demo app changes:

+ Updated SAM4L Atmel Studio project to use Atmel Studio 7.
Richard Barry 5e9787978c Final tidy up before tagging V8.2.3.
Richard Barry 825b43a188 Update version number ready for the V8.2.3 release.
Richard Barry c6a4e3191e Add FreeRTOS+CLI examples to the Renesas RZ/T demos.
Fix some compiler warnings.
Correct spellings in comments.
Richard Barry 96ff3925d2 Update FreeRTOS+Trace recorder library to v3.0.2
Add streaming version of the FreeRTOS+Trace recorder, also V3.0.2
Richard Barry 717654471e Update the FreeRTOS+WolfSSL Win32 demo to use the latest WolfSSL libraries.
Richard Barry 02d0847567 Rename the FreeRTOS_Plus_CyaSSL_Windows_Simulator directory to FreeRTOS_Plus_WolfSSL_Windows_Simulator.
Richard Barry 5a6242fbd0 Update WolfSSL library to the latest version.
Richard Barry 8af1ad9bac Rename the CyaSSL directory to WolfSSL
Richard Barry 1b010fbaa7 Final commit before tagging - cosmetic changes only.
Richard Barry 3291f5a08d Final preparation for new release:
FreeRTOS+Trace:
 - Add trace macros for task notifications.
 - Update to the latest trace recorder library.

Demo projects:
 - Only include the CLI command to show run time states if configGENERATE_RUN_TIME_STATS is set to 1.
Richard Barry 99d4f2c454 Update version numbers in preparation for new release.
Richard Barry a9d1ff4f5e Change some data types in heap_4.c to allow it to be used on hardware that has 16-bit pointers without generating compiler warnings.
Add a small data model configuration to the MSP43FR5969 IAR demo.
Correct some code comments in the SAMA5D4 demo.
Richard Barry 976a9b44af Rename /Demo/MSP430FR5969_LaunchPad to /Demo/MSP430X_MSP430FR5969_LaunchPad for consistency with other MSP430 demo directory names.
Fixed typos in comments repeated in multiple source files.
Richard Barry d39c0d5926 Update TimerDemo.c to test the new vTimerSetTimerID() function.
Update WinPCap NetworkInterface.c for FreeRTOS+UDP to correctly store a pointer to the network buffer structure at the beginning of the network buffer.
Richard Barry 03213b9e4a Add the errno definitions used by FreeRTOS+TCP and FreeRTOS+FAT into FreeRTOS's projdefs.h.
Remove redundant global definition vPortInstallFreeRTOSVectorTable from the GCC ARM_CA9 portASM.S file.
Ensure correct sequence of start up sequence when the Windows port is used on multi-core Windows machines by starting one thread in the suspended state.
Move initialisation of xNextTaskUnblockTime to the function that starts the scheduler, rather than from where the variable is declared - this fixes a compiler warning in newer IAR compilers.
Fix "elif (SELECTED_PORT == PORT_MICROCHIP_PIC32MX || PORT_MICROCHIP_PIC32MZ)" in the FreeRTOS+Trace trcHardwarePort.h header file.
Richard Barry 693d0520bc Update version number ready for V8.2.1 release.
Richard Barry dfdc319518 Kernel updates:
- Add user configurable thread local storage array, with get/set access function.
Richard Barry acfbb7dd14 Add the beginnings of a Microblaze project for the KC705.
Richard Barry 501a531d46 Update version number in preparation for official V8.2.0 release.
Richard Barry c37b2ca39b Demo app changes:
Add a "query heap" command to the standard sample CLI commands.
Remove casting from configMAX_PRIORITIES setting in Win32 simulator demos as it was preventing a clean build. 

Source code changes.
General tidy up and addition of assert points.
Richard Barry e4e6328300 Remove casting from configMAX_PRIORITIES setting in FAT SL / CLI demo as it was preventing a clean build.
Richard Barry 271393b7d9 Release candidate - this will be tagged as FreeRTOS V8.2.0rc1 and a zip file provided.
Minor lint changes.
Richard Barry 6741592026 Update version numbers in preparation for V8.2.0 release candidate 1.
Richard Barry fd02010886 Kernel changes:
+ Made xTaskNotifyGiveFromISR() its own function, rather than a macro that calls xTaskNotifyFromISR() (minor performance improvement).
+ GCC and Keil Cortex-M4F ports now use vPortRaiseBASEPRI() in place of ulPortRaiseBASEPRI() where the return value is not required (minor performance improvement).

Demo changes:
Change the [very basic] FreeRTOS+UDP SAM4E driver to use task notifications rather than a semaphore (execution time now 55% what it was in FreeRTOS V8.1.2!).
Robustness improvements to IntQueue.c standard demo task.h.
Added the latest standard demo tasks, reg test tasks and int q  tasks to the SAM4E demo.
Richard Barry f407b70dcc + Update demos that use FreeRTOS+Trace to work with the latest trace recorder library.
+ Fix a few compiler warnings.
+ Add TickType_t specific critical sections so critical sections are not used when accessing the tick count in cases where the access is atomic (32-bit tick count, 32-bit architecture).
Richard Barry 85fb1cc024 + New feature added: Task notifications.
+ Optimise Cortex-M4F ports by inlining some critical section macros.
+ Original ports used a #define to set the path to portmacro.h - that method has been obsolete for years and now all the old definitions have been moved into a separate header files called deprecated_definitions.h.
+ Cortex-M port now check the active vector bits against 0xff when determining if a function is called from an interrupt - previously only a subset of the bits (0x1f) were checked.
+ Add in new standard demo/test files TaskNotify.c/h and include the files in the simulator demos.
+ Update trace recorder code, and some demos to use the new version (more to do).
+ Introduce uxTaskPriorityGetFromISR().
+ Minor typo corrections.
+ Update MingW simulator demo to match the MSVC simulator demo.
Richard Barry d55e7e77a2 Update version number to 8.1.2 after moving the defaulting of configUSE_PORT_OPTIMISED_TASK_SELECTION into individual port layers so it does not affect ports that do not support the definition.
Richard Barry a60ce58731 Update version number to 8.1.1 for patch release that re-enables mutexes to be given from an interrupt.
Richard Barry d33a14b5fb ***IMMINENT RELEASE NOTICE***
Update version numbers ready for FreeRTOS V8.1.0 release in about 10 days.
Richard Barry e491610725 Remove some irrelevant CyaSSL files.
Richard Barry 162448f06b General maintenance - changing comments and correcting spellings only.
Richard Barry 3d007d0b4b Update CyaSSL to latest version.
Richard Barry 5e47df8c01 Update FreeRTOS+ components and demos to use typedef names introduced in FreeRTOS V8.
Richard Barry 0bb794301a Update version number ready for release.
Richard Barry a46f251d11 Update FreeRTOS+FAT SL to version 1.0.1.
Richard Barry e101e7e437 Update version number to V8.0.0 (without the release candidate number).
Richard Barry 2346014918 Update final demos that use the trace recorder code to use the new version.
Richard Barry 33e11c72c3 Update LPC1830 example to use the latest trace recorder code.
Richard Barry 04ae37ef12 Update trace recorder to include heap tracing and new v8 features.
Richard Barry e4f495012f Fixes to FreeRTOS+UDP trace macro parameters and placements.
Richard Barry a8836b5c43 Change version numbers ready for V8.0.0 release candidate 1 tag.
Richard Barry 38e7554138 Update FreeRTOS+ more demos that use FreeRTOS+CLI to remove casting to int8_t * from strings.
Richard Barry 31609c7c3e Update FreeRTOS+ demos that use FreeRTOS+CLI to remove casting to int8_t * from strings.
Richard Barry f292243dcf Change 'signed char *pcTaskName) to 'char *pcTaskName' in vApplicationStackOverflowHook().
Richard Barry 3517bbdcce Remove unnecessary 'signed char *' casts from strings that are now just plain char * types in the FreeRTOS-Plus directory.
Richard Barry a320d6dffd Update the ucQueueNumber member of the queue structure (used with FreeRTOS+Trace to be an unsigned portBASE_TYPE instead of an unsigned char.
Richard Barry ad67be1577 Tidy up SAM4E NetworkInterface.c.
Richard Barry 8cd71348be Make SAM4E network driver a little more robust.
Richard Barry 6be1ffccfb Update version numbers in FreeRTOS-Plus demo files.
Richard Barry cbb14d30c5 Add basic SAM4E driver.
Add ipconfigETHERNET_DRIVER_ADDS_UDP_CHECKSUM, ipconfigETHERNET_DRIVER_ADDS_IP_CHECKSUM, ipconfigETHERNET_DRIVER_CHECKS_IP_CHECKSUM and ipconfigETHERNET_DRIVER_CHECKS_UDP_CHECKSUM definitions.
Richard Barry 0cd79ad81d Change version numbers in preparation for V7.6.0 release.
Richard Barry 6642926d43 Update the FreeRTOS+ Win32 MSVC demos to account for the changes to the Win32 port layer (more accurate timing).
Richard Barry aa9ec31ba9 Add missing header file to the UDP BufferAllocation_1.c scheme.
Richard Barry e46fe7c049 Second attempt - Ensure the private port number wrap check is inside the critical section in prvGetPrivatePortNumber() (UDP).
Richard Barry 818abc468d Ensure the private port number wrap check is inside the critical section in prvGetPrivatePortNumber() (UDP).
Add missing default values for some of the trace macros.
Richard Barry a12ea2d212 Update FreeRTOS version number to V7.5.3
Update FreeRTOS+CLI version number to V1.0.2
Update FreeRTOS+UDP version number to V1.0.1
Richard Barry 6280324778 Add a configASSERT() that checks the gateway address is on the same subnet as the device in FreeRTOS+UDP.
Richard Barry 81e141ad86 Ensure the statically configured gateway address is on the same subnet.
Richard Barry e2afb24747 Take out nonsensical #if configMAC_INTERRUPT_PRIORITY > configMAC_INTERRUPT_PRIORITY check from the LPC18xx Ethernet driver.
Richard Barry 0c849fa597 Update FreeRTOS_FD_SET() to check there is enough space in the queue before adding the socket to the socket set.
Richard Barry 10fa546e60 Make corrections to the interrupt priority configuration in the LPC1800 UDP demo that resulted from an incorrect NVIC_PRIOR_BITS setting in the LPC18xx.h header file.
Richard Barry be44f8aaa7 Improve DCHP handling by removing the yiaddr field from outgoing DHCP packets and adding the broadcast bit in the flags field.
Correct the check to ensure the application network event hook is not called when the first network down event is sent.
Add in defaults for the Nabto task stack and priority.
Richard Barry 747a0e15fa Convert double quotes in a command help string to single quotes to allow the string to be processed by Javascript.
Richard Barry dac40d1677 Update version numbers.
Richard Barry 203ae64600 Rename xTaskGetSystemState() uxTaskGetSystemState().
Richard Barry 92fae7d262 For consistency change the name of configINCLUDE_STATS_FORMATTING_FUNCTIONS to configUSE_STATS_FORMATTING_FUNCTIONS.
Richard Barry 7d6758ee1a Minor updates and change version number for V7.5.0 release.
Richard Barry d04c2fa753 Correct compiler warnings in trace recorder code.
Richard Barry 0fd81d6d8e Update FreeRTOS+Trace recorder code.
Richard Barry 5ad3b59783 Add the new configINCLUDE_STATS_FORMATTING_FUNCTIONS configuration parameter to FreeRTOS+ demo applications that make use of vTaskStats() or vTaskGetRunTimeStats().
Richard Barry 87049ac37c Re-implement the LPC18xx and SmartFusion2 run time stats implementation to use the free running Cortex-M cycle counter in place of the systick.
Correct the run-time stats counter implementation in the RZ demo.
Guard against run time counters going backwards in tasks.c.
Richard Barry 00136d4b51 Update trace recorder code in the LPC18xx project.
Richard Barry d8248c49fc Remove old trace recorder source from LPC18xx project.
Richard Barry 0ca2110982 Split the LPC18xx FreeRTOS+UDP drivers between those that use the LPCOpen library and those that use the older CMSIS library.
Richard Barry a1145a1b78 Remove DemoIPTrace.h from LPC18xx demo as it should be copied from is standard location.
Richard Barry 34e7cfc2a2 Back out changes to LPC18xx UDP demo.
Richard Barry 3b004f9900 Add the APPLICATION_DEFINED port type to the trcHardwarePort.h template.
Richard Barry 6330e06975 Remove compiler warnings from the trace recorder code.
Richard Barry 6438027bb9 Update the FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator demo to use the latest version of the trace recorder code.
Richard Barry f928b0e296 Update to latest FreeRTOS+Trace recorder code.
Richard Barry f9d0a153b4 Update the FreeRTOS+UDP LPC18xx MAC driver to use the LPCOpen drivers.
Richard Barry 54c62d429f Update LPC18xx FreeRTOS+UDP demo to use LPCOpen USB and Ethernet drivers.
Update LPC18xx FreeRTOS+UDP eclipse project to use linked resources rather than a CreateProjectDirectoryStructure.bat batch file.
Richard Barry 0158039f99 Slight modification to license blub text in header comments.
Richard Barry a03b171992 Fix compiler warning in psp_test.c when compiled with ARM compiler.
Add portYIELD_FROM_ISR() macros to Cortex-M ports.  The new macro just calls the exiting portEND_SWITCHING_ISR() macro.
Remove code from the MSVC port layer that was left over from a previous implementation and become obsolete.
Richard Barry 8732e8efc5 Minor cosmetics to comments.
Richard Barry 39147e83a0 Update version numbers in a couple of files that got left behind.
Richard Barry 96ceae8edd Update version number ready to release the FAT file system demo.
Richard Barry a4a830c44d Add FAT SL code and demo project.
Richard Barry bbe48d31a4 Clarify license blurb at the top of the FreeRTOS+UDP and FreeRTOS+CLI source files.
Richard Barry f9918345e1 Update version numbers to V7.4.1.
Richard Barry c60973c34a Change version number in common files within the FreeRTOS-plus directory and check all demos still execute.
Richard Barry 64a3ab321a Add FreeRTOS-Plus directory with new directory structure so it matches the FreeRTOS directory.
Richard Barry 80f7e8cdd4 Remove subdirectories of FreeRTOS-Plus in preparation for changing the directory structure to match the FreeRTOS directory.
Richard Barry 902f9e1a58 Update PIC32 demo application to remove reliance on PLIB functions.
Update the default low power implementation in all the Cortex-M port layers to add a small critical section.
Richard Barry 26152204a4 Update the FreeRTOS+Trace recorder and Win32 demo app.
Richard Barry 48a307ff5f Allow mutex type semaphores to be given from an interrupt (not a normal thing to do - use a binary semaphore!).
Allow FreeRTOS+CLI commands to have spaces at the end without it being taken as a parameter.
Richard Barry c0de8c984c Improve command input string handling in FreeRTOS+CLI to allow allow commands to be sub-strings of each other, and not to count trailing white space as a parameter.
Richard Barry e0bab5981a Prepare for V7.2.0 release.
Richard Barry 4dbef6afe9 Add readme files to the various FreeRTOS+ directories.
Richard Barry f508a5f653 Add FreeRTOS-Plus directory.