Richard Barry
9c0c37ab9b
Added back some TCP/IP stack port layer files.
2020-02-07 21:51:48 +00:00
Richard Barry
7cf721ccf7
2020-02-07 21:49:55 +00:00
Richard Barry
28efb5449c
Add "is inside interrupt" function to MPU ports.
...
Make clock setup functions weak symbols in ARMv8-M ports.
Update Cortex-M33 ports to use an interrupt mask in place of globally disabling interrupts, as per the other Cortex-M ports.
2020-02-07 01:56:25 +00:00
Richard Barry
8e5addee1e
Update TCP to last release versions in preparation for kernel V10.3.0 release.
2020-02-06 22:45:37 +00:00
Richard Barry
7bea399061
Update libraries and sundry check-ins ready for the V10.3.0 kernel release.
2020-02-06 18:52:35 +00:00
Richard Barry
4d4493e61a
Remove the FreeRTOS-IoT-Libraries from FreeRTOS-Plus as it was an old copy with a newer copy in FreeRTOS-Labs.
2020-01-30 00:05:23 +00:00
Richard Barry
0d54d1c4dc
Correct an err in queue.c introduced when previously updating behaviour when queue sets are used in combination with queue overwrites.
2020-01-29 19:52:38 +00:00
Richard Barry
2415dc26b0
Introduce the portSOFTWARE_BARRIER macro which thus far is only used by the Win32 demo to hold execution up in case a simulated interrupt is executing simultaneously. That should never happen as all threads should execute on the same core, but we have had numerous reports that this and other Win32 port changes we have made fixed these issues - although we have not been able to replicate them ourselves.
2020-01-23 23:49:24 +00:00
Richard Barry
42a0eaafdc
Ensure both one-shot and auto-reload are written consistently with a hyphen in comments.
2020-01-16 04:25:29 +00:00
Richard Barry
9456992c1f
Added uxTimerGetReloadMode() API function.
2020-01-16 04:10:18 +00:00
Richard Barry
d2914041f8
Update the GCC and IAR SiFive HiFive rev-b demos to use the new configMTIME_BASE_ADDRESS and configMTIMECMP_BASE_ADDRESS constants in place of the deprecated configCLINT_BASE_ADDRESS constant.
...
Update the IAR RISC-V HiFive demo to use the latest IAR Embedded Workbench version.
2020-01-09 02:28:45 +00:00
Richard Barry
066e2bc7d2
Replace portasmHAS_CLINT with configMTIME_BASE_ADDRESS and configMTIMECMP_BASE_ADDRESS definitions in the IAR RISC-V port - portasmHAS_CLIT will still work by deriving the new definitions from the old.
2020-01-09 02:23:51 +00:00
Richard Barry
75b81a1fab
Work in progress update of LPC51U68 MCUXpresso project to rearrange the folder structure and names.
2020-01-09 00:19:36 +00:00
Richard Barry
fbb23055cd
Replace portasmHAS_CLINT with configMTIME_BASE_ADDRESS and configMTIMECMP_BASE_ADDRESS definitions in the GCC RISC-V port - portasmHAS_CLIT will still work by deriving the new definitions from the old.
2020-01-07 01:14:36 +00:00
Richard Barry
eaf9318df8
Add Source/portable/ARMClang file that directs users to the GCC port if they which to use the ARMClang compiler.
2020-01-04 00:14:18 +00:00
Richard Barry
881958514b
If tickless idle mode is in use then ensure prvResetNextTaskUnblockTime() is called after a task is unblocked due to a bit being set in an event group. This allows the MCU to re-enter sleep mode at the earliest possible time (rather than waiting until the timeout that would occur had the task not being unblocked be the event group) and matches a similar change made for queues and derivative objects (semaphores, etc.) some time ago.
2020-01-03 22:50:31 +00:00
Richard Barry
853856e8cc
Correct #error text in multiple fat file system files.
2020-01-03 20:53:27 +00:00
Richard Barry
9e86cb95a7
Add xPortIsInsideInterrupt() to the IAR ARMv7-M ports.
2020-01-03 01:17:29 +00:00
Richard Barry
be3561ed53
Added xTaskAbortDelayFromISR() and ulTaskNotifyValueClear() API functions.
...
Added tests for xTaskAbortDelayFromISR() into Demo/Common/Minimal/AbortDelay.c.
Added tests for ulTaskNotifyValueClear() into Demo/Common/Minimal/TaskNotify.c.
2020-01-02 18:55:20 +00:00
Richard Barry
0a29d350b1
Renamed RISC-V_RV32_SiFive_HiFive1_IAR directory to RISC-V_RV32_SiFive_HiFive1-RevB_IAR as it targets the RevB hardware.
2020-01-01 22:38:23 +00:00
Richard Barry
62b413627a
Minor updates to comment block for xTaskCheckForTimeOut().
2020-01-01 22:24:44 +00:00
Richard Barry
dfc1bf8ec3
Rename RISC-V_RV32_SiFive_HiFive1-FreedomStudio directory to RISC-V_RV32_SiFive_HiFive1-RevB-FreedomStudio as it targets Rev B of the hardware.
2020-01-01 22:05:35 +00:00
Richard Barry
4b943b35e0
Update RISCC-V-RV32-SiFive_HiFive1_FreedomStudio project to latest tools and metal library versions.
2020-01-01 22:02:06 +00:00
Richard Barry
3203c5cc85
Previously the STM32F0518 compiler setting was changed to enable the use of the __weak attribute - however changing the port layer to use #pragma weak in place of __weak means the compiler setting change is not required and removes the risk of introducing incompatibilities - so this check in reverts the compiler settings change.
2019-12-30 22:24:58 +00:00
Richard Barry
cc673eb6a5
Ensure the CORTEX_M0_STM32F0518_IAR demo builds after updates to the Cortex-M0 port layer - required an update to the project settings to allow IAR extensions as the port layer now uses the _weak qualifier.
2019-12-30 22:07:33 +00:00
Richard Barry
801e63bd10
Ensure the LPC1114 demo still builds after updates to the Cortex-M0 port layer - includes minor update to remove compiler warning that resulted from a newer compiler version.
2019-12-30 22:00:26 +00:00
Richard Barry
53c98357b0
Ensure the LPC1114 demo still builds after updates to the Cortex-M0 port layer - includes minor update to remove compiler warning that resulted from a newer compiler version.
2019-12-30 21:59:11 +00:00
Richard Barry
49052a6581
Ensure the XMC1000_IAR_KEIL_GCC projects still build after updates to the Cortex-M0 port layer - minor change to remove warning related to using a newer version of the IAR tools.
2019-12-30 21:44:22 +00:00
Richard Barry
e292c67933
Replace the static prvSetupTimerInterrupt() function in the Cortex-M port layers that still used it (other than MPU ports so far) with a weakly defined function call vPortSetupTimerInterrupt() - which allows application writers to override the function with one that uses a different clock.
2019-12-30 21:16:09 +00:00
Richard Barry
e23d638afd
Correct use of xStreamBufferRead() to xStreamBufferReceive() in code comments - no source code changes.
2019-12-30 20:00:49 +00:00
Richard Barry
c72df2f98d
Tidy up comments only.
2019-12-27 21:22:07 +00:00
Richard Barry
7ddea8fc8b
Enable the Win32 comprehensive test/demo build and run when configUSE_QUEUE_SETS is set to 0.
2019-12-27 21:02:23 +00:00
Richard Barry
70dbc12579
Update the LM3Sxxxx_IAR_Keil demo so the IAR project writes to the UART and executes in QEMU.
2019-12-27 20:59:57 +00:00
Richard Barry
05adf564f6
Add readme into the third party RISC-V port that points to the directories that contains the official ports.
2019-12-24 17:24:23 +00:00
Richard Barry
b27fb82bc1
Increase test coverage for queue sets.
...
Rename the CORTEX_M0+_LPC51U68_LPCXpresso demo to CORTEX_M0+_LPC51U68_GCC_IAR_KEIL as it supports all three compilers.
2019-12-20 02:54:30 +00:00
Richard Barry
b55bbe55ac
Remove build files accidentally checked in.
...
Remove the CMSIS math library as it is large and not used.
2019-12-20 02:49:15 +00:00
Richard Barry
9491af1fd7
Fix bug when xQueueOverwrite() and xQueueOverwrite() from ISR are used to overwrite items in two queues that are part of the same set.
...
Minor queue optimisations.
2019-12-03 01:50:07 +00:00
Richard Barry
e5708b38e9
Add the Labs projects provided in the V10.2.1_191129 zip file.
2019-12-02 23:39:25 +00:00
Richard Barry
46e5937529
Remove guards against __ARMCC_VERSION version numbers that were previously used to avoid compiler warnings in some GCC ARM Cortex ports.
2019-11-21 22:35:21 +00:00
Richard Barry
d1fb8907ab
Add software timer to the Win32 blinky demo.
2019-11-18 17:35:40 +00:00
Richard Barry
07622ed3ee
Remove driver files that generate compiler warnings from the RISC-V_Renode_Emulator_SoftConsole project.
...
Update RISC-V ports so the interrupt stack is set to a known value before the scheduler is started if the interrupt stack is statically defined rather than re-using the main.c() stack.
2019-11-18 17:23:14 +00:00
Richard Barry
16639d2d63
Update to the latest atomic.h.
...
Improve commenting in RISC-V GCC port.
Fix IAR RISC-V port so the first task starts with interrupts enabled.
Add references to third party page ref using newlib with FreeRTOS into the tasks.c file in each place newlib is referenced.
Move the position of the traceTASK_DELETE() trace macro in case of use with a memory allocator that writes over freed memory even when inside a critical section.
Efficiency improvement: Make sure xTaskIncrementTick() does not return pdTRUE when the scheduler is locked. This just prevents an unnecessary yield interrupt (unnecessary as it is ignored) when xYieldPending happens to be pdTRUE.
2019-11-18 16:28:03 +00:00
Richard Barry
18916d5820
Rename the RISC-V_RV32_SiFive_Hifive1_GCC folder to RISC-V_RV32_SiFive_HiFive1_FreedomStudio as it is built with Freedom Studio.
2019-10-22 22:30:06 +00:00
Richard Barry
5306ba245d
Add nano-specs linker option to HiFive1_GCC demo.
2019-10-22 22:27:55 +00:00
Richard Barry
c0741e36ed
Fix spelling mistakes copied and pasted into a couple of RISC-V demo main.c files.
2019-10-22 16:31:57 +00:00
Richard Barry
fccc445865
Change version and license text in RISC-V_RV32_SiFive_HiFive1_GCC FreeRTOSConfig.h file.
2019-10-22 02:17:15 +00:00
Richard Barry
11c391dfb3
Tidy up main_full.c and change alignment of variable accesses in RegTest.S for the RISC-V_Renode_Emulator_SoftConsole demo.
2019-10-22 02:15:28 +00:00
Richard Barry
343fbe795f
Rework RISC-V QEMU example to use vanilla Eclipse in place of Freedom Studio. NOTE: RISC-V QEMU mtime interrupts are not generated consistently.
2019-10-22 02:03:15 +00:00
Richard Barry
ef31243396
Add some asserts into the common demo tasks to catch scenarios where the tasks are not being used but the part of the demo/test that gets called from the tick hook is called resultant in an access to objects that were not created.
2019-10-21 17:17:34 +00:00
Richard Barry
61a003088d
Update RISK-V GCC port to ensure the first task starts with interrupts enabled - previously its interrupts were only enabled after it yielded for the first time.
2019-10-21 04:16:32 +00:00
Richard Barry
a83244a37e
Add the miv-basic.resc reNode script into the RISC-V_Renode_Emulator_SoftConsole demo as it is no longer shipped with the Microsemi tools.
2019-10-17 20:39:40 +00:00
Richard Barry
c7c60cff15
Rename RISC-V-Qemu-sive_e_Freedom_Studio directory to RISC-V-Qemu-sifive_e-Eclipse-GCC as it is now using Vanilla Eclipse and vanilla GCC in place of Freedom Studio.
2019-10-16 04:31:57 +00:00
Richard Barry
f78ccd077a
Recreate the RISC-V-Qemu demo using Vanilla Eclipse in place of Freedom Studio as there is not a new Freedom Studio project that targets the HiFive1 board, and the updated Freedom Studio version didn't work with this project any more anyway.
2019-10-16 04:28:28 +00:00
Richard Barry
d435a7b62d
Move the call to traceTASK_DELETE() to before port portPRE_TASK_DELETE_HOOK() as in the Windows port portPRE_TASK_DELETE_HOOK() never returns.
2019-10-15 22:14:40 +00:00
Richard Barry
4922cff4ce
Add IAR demo for the SiFive RISC-V HiFive Rev B board.
2019-10-14 03:20:18 +00:00
Richard Barry
f6edf4adf9
Update the RegTest.S file used by several GCC RISC-V demos to ensure correct alignment of constant loads from assembly code.
2019-10-14 00:16:25 +00:00
Richard Barry
96e61a10a5
Tidy up the RISC-V_RV32_SiFive_HiFive1_GCC demo ready for its eventual release.
2019-10-14 00:04:53 +00:00
Richard Barry
d4216903d9
Added the "full" demo to the RISC-V_RV32_SiFive_HiFive1_GCC demo - backup check in only as still a work in progress.
2019-10-13 22:53:00 +00:00
Richard Barry
71d9450836
RIS-V_RV32_SiFive_HiFive1_GCC project now running the blinky demo - still a work in progress.
2019-10-11 02:59:13 +00:00
Richard Barry
dbac79045c
Formatting changes only.
2019-10-10 17:56:10 +00:00
Richard Barry
dbbebbfcbc
RISC-V-RV32_SiFive_HiFive1_GCC project is now also building the FreeRTOS kernel code - but not using it yet - still a work in progress.
2019-10-10 17:54:56 +00:00
Richard Barry
9bb072a2ab
Base project to replace existing Freedom Studio project using latest Freedom Studio project format - builds and executes but does not yet include RTOS code.
2019-10-09 04:50:11 +00:00
Richard Barry
fd118f1888
Minor formatting change in comment only.
2019-10-07 18:56:33 +00:00
Richard Barry
80c1cb5de1
Correct code comments that referred to taskYIELD_FROM_ISR to portYIELD_FROM_ISR.
...
Update RV32 port to use 16 byte-alignment all the time (only strictly necessary when using FLOP instructions).
2019-09-24 16:06:21 +00:00
Richard Barry
da3d370ff7
RISC-V port updates: The machine timer compare register can now be for any HART, and correct the sequence used to update the 64-bit machine timer compare register on 32-bit cores.
2019-09-04 15:46:45 +00:00
Richard Barry
96bad0f6c3
Minor bug fix in NTPDemo.c -> use of FREERTOS_INVALID_SOCKET in place of NULL.
...
Update trace recorder code to account for uxPendedTicks renaming to xPendedTicks.
2019-09-04 00:13:17 +00:00
Richard Barry
ab41d89285
Add IAR RISC-V port to SVN - a work in progress.
2019-09-03 01:39:29 +00:00
Richard Barry
973a4f9869
Correct alignment of stack top in RISC-V port when configISR_STACK_SIZE_WORDS is defined to a non zero value.
2019-08-27 15:57:45 +00:00
Richard Barry
7d285f3dcb
+ Moved the History.txt file from the website git repo into the source code SVN repo.
...
+ Added xTaskCatchUpTicks() which corrects the tick count value after the application code has held interrupts disabled for an extended period.
+ Updated the xTaskResumeAll() implementation so it uses the new xTaskCatchUpTicks() function mentioned above to unwind ticks that were pended while the scheduler was suspended.
+ Various maintenance on the message buffer, stream buffer and abort delay demos.
+ Change type of uxPendedTicks from UBaseType_t to TickType_t to ensure it has same type as variables it is compared to, and therefore also rename the variable xPendingTicks.
+ Correct spelling mistake within a comment that was common to all the ARMv7-M ports.
2019-08-25 19:35:59 +00:00
Richard Barry
72af51cd86
Starting point for IAR RISC-V project created some time ago - checking in now so it can be completed - currently work in progress.
2019-08-04 15:24:15 +00:00
Richard Barry
5352cb4f45
Tidy up Win32 port layer - include addition of new variable that prevents recursive attempts to obtain a mutex when the trace recorder is used inside an interrupt.
2019-08-04 01:14:43 +00:00
Richard Barry
b4c06085e1
Files as per 190725_FreeRTOS_IoT_Libs_Task_Pool_and_MQTT_Preview interim release.
2019-07-25 20:20:24 +00:00
Richard Barry
b24ab46d39
Delete obsolete makefiles that were causing confusion from RISC-V-Qemu-sifive_e-FreedomStudio demo.
2019-07-25 20:11:37 +00:00
Richard Barry
10b7b52995
Remove unnecessary include path from the MQTT demo.
2019-07-24 02:01:43 +00:00
Richard Barry
fe4511b35e
Continued to work on the MQTT demo project.
...
A few review comments added into the MQTT implementation.
2019-07-24 00:27:14 +00:00
Richard Barry
53842d4cac
Remove the simple UDP client/server tasks from the MQTT demo as the demo's network connection can be tested more easily just by pinging it.
...
Tidy up the iot_config.h header files a little.
2019-07-23 19:23:12 +00:00
Richard Barry
17b18c8b7e
Reduce warning level in Visual Studio project as it generates lots of warnings in the library files.
2019-07-23 17:30:18 +00:00
Richard Barry
d1dd8da12e
Revert a couple of changes in Win32 demo that should not have been checked in.
2019-07-23 17:02:59 +00:00
Richard Barry
7af8756c97
Update task pool so tasks and timer are allocated statically.
2019-07-23 01:46:59 +00:00
Richard Barry
1840d38abf
Another backup check-in during process of optimising task pool for FreeRTOS. This checkin is prior to making the task pool statically allocated.
2019-07-23 00:00:37 +00:00
Richard Barry
63c87504a0
Backup checking on - part way through optimising task pool.
2019-07-22 21:46:13 +00:00
Richard Barry
238a23e4d5
Add the files from the MQTT project that were not check in.
2019-07-19 01:39:42 +00:00
Richard Barry
5dd6cf1295
Add missing files so base MQTT project builds.
2019-07-19 00:37:33 +00:00
Richard Barry
2b295f9015
Added simple UDP demo into the mqtt project to enable the network connectivity to be tested in a simple way prior to performing any MQTT operations.
2019-07-17 20:50:15 +00:00
Richard Barry
d362efca8d
Add MQTT project that builds on the task pool project - currently the library is building but not being used.
2019-07-17 19:44:13 +00:00
Richard Barry
3c3b32b8e4
Rename the FreeRTOS_Plus_IoT_SDK directory to FreeRTOS_IoT_Libraries.
2019-07-16 18:21:42 +00:00
Richard Barry
290c8cedfd
Function rename in task pool demo.
2019-07-16 18:19:44 +00:00
Richard Barry
bb0e1f356d
Remove any TCP/IP functionality from the task pool demo - the TCP/IP stack is still built as it will be used in later revisions.
2019-07-14 23:33:05 +00:00
Richard Barry
2e18203bb7
Update TCP/IP tack to latest form Git.
2019-07-14 22:07:41 +00:00
Richard Barry
a6a0403fd6
Synch IoT libraries with latest versions.
2019-07-14 19:29:16 +00:00
Richard Barry
e4e86a464e
New MSVC task pool demo now building both the task pool and TCP libraries.
2019-07-14 19:13:51 +00:00
Richard Barry
3afd918ecd
Rename the task pool version of FreeRTOS_Plus_TCP_Minimal.sln to task_pool_demo.sln.
2019-07-14 18:04:40 +00:00
Richard Barry
232a94c3f0
Restart the task pool demo, this time using the minimal FreeRTOS+TCP project as a base.
2019-07-14 18:01:57 +00:00
Richard Barry
d8a3ad3c6f
Minor modification to the WIn32 simple TCP/IP stack example only.
2019-07-14 16:06:31 +00:00
Richard Barry
8bd1813446
Only partially implemented and may get reverted - updates to the Win32 port that uses a per-task event to prevent the task proceeding past its yield point if the SuspendThread() call used to stop the task does not take effect immediately. This is intended to fix issues reported by users, although we have been unable to replicate them ourselves.
2019-07-12 01:52:22 +00:00
Richard Barry
e60f71855a
Remove IotTaskPool_CreateRecyclableSystemJob() and IotTaskPool_ScheduleSystemJob() again, which were intended to be alternative APIs that only access the system task pool, and instead update IotTaskPool_CreateRecyclableJob() and IotTaskPool_ScheduleJob() to allow the parameter used to pass in the task pool handle to be NULL if the system task pool is the only one available.
...
Update the task pool demo app to include a lot more functionality.
2019-07-08 15:48:21 +00:00
Richard Barry
4d6570b009
Exercise the new vPortGetHeapStats() function from the Win32 demo projects.
2019-07-05 20:21:59 +00:00
Richard Barry
fa404422b9
Add link to dual core blog post into STM32H745I demo.
...
Doxygen corrections in list.h.
Use #error to check FreeRTOS.h is included before message_buffer.h and stream_buffer.h.
2019-07-04 21:18:36 +00:00
Richard Barry
246bb6e806
Add vPortGetHeapStats() function to query heap statistics.
2019-07-04 19:34:48 +00:00
Richard Barry
e75b609c74
In small FreeRTOS applications it is unlikely there will be any task pools other than the system task pool. IotTaskPool_CreateRecyclableSystemJob() is therefore introduced to complement IotTaskPool_CreateRecyclableJob() that does not require the handle of the target task pool to be specified as a parameter. Likewise IotTaskPool_ScheduleSystemJob() is introduced to complement IotTaskPool_ScheduleJob() for the same reason.
...
IotTaskPool_CreateSystemTaskPool() calls synchronisation primitives, so cannot be called before the scheduler starts. Add a configASSERT() to ensure the scheduler is running when it executes.
IotTaskPool_CreateSystemTaskPool() can conceivably be called from multiple different libraries that depend on the thread pool. In this version _IotSystemTaskPool.running can be used to check the system task pool has not already been created. If the task pool has been created simply return from IotTaskPool_CreateSystemTaskPool() instead of re-creating it (which would leak memory and leave orphaned tasks).
Call taskENTER_CRITICAL() and taskEXIT_CRITICAL() directly in place of mapping them to TASKPOOL_ENTER_CRITICAL() and TASKPOOL_EXIT_CRITICAL() in the same file.
Rename _timerThread() _timerCallback(), as it is a callback function and not a thread.
Remove the unused flags parameter from _scheduleInternal().
2019-07-01 17:05:20 +00:00