]> begriffs open source - freertos/log
freertos
5 years agoThis change prevents tickless idle mode potentially sleeping for an extra tick in...
RichardBarry [Fri, 28 Feb 2020 20:40:11 +0000 (12:40 -0800)]
This change prevents tickless idle mode potentially sleeping for an extra tick in the corer case that a tick interrupt occurred between the scheduler being suspended and the expected idle time being checked for a second time (within the idle task) - as described by the sequence below.  Th change updates eTaskConfirmSleepModeStatus() to specifically check if a tick is pending, and if so, abort entering sleep mode.

+ The idle task decides to enter sleep mode on the following line.
```
if( xExpectedIdleTime >= configEXPECTED_IDLE_TIME_BEFORE_SLEEP )
```

+ The scheduler is suspended, preventing any context switches.

[Potentially a tick interrupt could occur here.  That could happen if other tasks executing consumed a lot of time since the above code line executed.  If a tick interrupt occurs here the interrupt will be entered but the interrupt will not do anything other than increment xPendedTicks.]

+ The expected idle time is checked again.  No context switches can occur now so the code will execute until the scheduler is unsuspended.  Assuming configEXPECTED_IDLE_TIME_BEFORE_SLEEP is set to a sensible value, a tick interrupt won't occur for some time.

+ portSUPPRESS_TICKS_AND_SLEEP() is called.

+ The default implementation of the tickless function calls eTaskConfirmSleep() - which prior to this change does not return eAbortSleep even though xPendedTicks is not 0, and after this change does return eAbortSleep.

5 years agoBring license in sync with FreeRTOS/FreeRTOS. (#20)
Yuhui.Zheng [Thu, 27 Feb 2020 22:33:46 +0000 (14:33 -0800)]
Bring license in sync with FreeRTOS/FreeRTOS. (#20)

5 years agoUpdates vCoRoutineSchedule() so it returns without doing anything if if the co-routin...
ribarry [Sun, 23 Feb 2020 01:48:22 +0000 (17:48 -0800)]
Updates vCoRoutineSchedule() so it returns without doing anything if if the co-routine internal data structures have not been initialised.  The internal data structures are initialised when the first co-routine is created.
NOTE: Co-routines are a deprecated feature.  This change was made to close off an old ticket as the source control transitions from SourceForge to Github.

5 years agoAdded CONTRIBUTING (#18)
lundinc2 [Wed, 26 Feb 2020 00:22:57 +0000 (16:22 -0800)]
Added CONTRIBUTING (#18)

.md

5 years agoSmall typo on L1287 (#14)
AniruddhaKanhere [Wed, 19 Feb 2020 22:05:48 +0000 (14:05 -0800)]
Small typo on L1287 (#14)

Added a missing ')'

5 years agoversion bump to v10.3.1 (#16) V10.3.1-kernel-only
Yuhui.Zheng [Wed, 19 Feb 2020 06:03:54 +0000 (22:03 -0800)]
version bump to v10.3.1 (#16)

* Verion bump from 10.3.0 to 10.3.1.
* version bump in task.h
* change history for 10.3.1.

5 years agoRemoving License/license.txt and add LICENSE under root. (#12)
Yuhui.Zheng [Mon, 17 Feb 2020 17:52:58 +0000 (09:52 -0800)]
Removing License/license.txt and add LICENSE under root. (#12)

5 years agoReplacing readme.txt with README.md. (#11)
Yuhui.Zheng [Sun, 16 Feb 2020 21:18:58 +0000 (13:18 -0800)]
Replacing readme.txt with README.md. (#11)

5 years agoCorrect the xTimerCreate() documentation which said NULL was returned if the timer...
Yuhui.Zheng [Fri, 14 Feb 2020 20:16:10 +0000 (12:16 -0800)]
Correct the xTimerCreate() documentation which said NULL was returned if the timer period was passed into the function as 0, whereas that is not the case. (#10)

Add a note to the documentation for both the xTimerCreate() and xTimerCreateStatic() functions that the timer period must be greater than 0.

5 years agoRe-sync with upstream and stripping away none kernel related. V10.3.0-kernel-only
Yuhui Zheng [Mon, 10 Feb 2020 21:45:57 +0000 (13:45 -0800)]
Re-sync with upstream and stripping away none kernel related.

5 years agoAdded back some TCP/IP stack port layer files.
Richard Barry [Fri, 7 Feb 2020 21:51:48 +0000 (21:51 +0000)]
Added back some TCP/IP stack port layer files.

5 years ago(no commit message)
Richard Barry [Fri, 7 Feb 2020 21:49:55 +0000 (21:49 +0000)]

5 years agoUpdate version number in readiness for V10.3.0 release. Sync SVN with reviewed releas...
Yuhui.Zheng [Fri, 7 Feb 2020 20:14:50 +0000 (20:14 +0000)]
Update version number in readiness for V10.3.0 release. Sync SVN with reviewed release candidate.

5 years agoFix spelling issues.
Yuhui.Zheng [Fri, 7 Feb 2020 19:19:47 +0000 (19:19 +0000)]
Fix spelling issues.

5 years agoAdd "is inside interrupt" function to MPU ports.
Richard Barry [Fri, 7 Feb 2020 01:56:25 +0000 (01:56 +0000)]
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.

5 years agoUpdate TCP to last release versions in preparation for kernel V10.3.0 release.
Richard Barry [Thu, 6 Feb 2020 22:45:37 +0000 (22:45 +0000)]
Update TCP to last release versions in preparation for kernel V10.3.0 release.

5 years agoUpdate libraries and sundry check-ins ready for the V10.3.0 kernel release.
Richard Barry [Thu, 6 Feb 2020 18:52:35 +0000 (18:52 +0000)]
Update libraries and sundry check-ins ready for the V10.3.0 kernel release.

5 years agoESP GCC port -- Added LoadStore Exception handlers.
Yuhui.Zheng [Fri, 31 Jan 2020 19:31:50 +0000 (19:31 +0000)]
ESP GCC port -- Added LoadStore Exception handlers.

https://github.com/FreeRTOS/FreeRTOS-Kernel/pull/9 -- Handles LoadStoreErrorCause and LoadStoreAlignmentCause allowing to use 32-bit memory region (IRAM) as 8-bit or 16-bit memory region

5 years agoSync FreeRTOS-Labs -CLI -TCP -Trace with the version in FreeRTOS-Plus.
Yuhui.Zheng [Fri, 31 Jan 2020 19:21:15 +0000 (19:21 +0000)]
Sync FreeRTOS-Labs -CLI -TCP -Trace with the version in FreeRTOS-Plus.

Projects under FreeRTOS-Labs directory are in beta, developers updating projects please make sure you are using the correct version of -CLI -TCP -Trace. If you must edit -CLI -TCP and -Trace, please ensure the copies are synced.

5 years agoSync FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP with the version in GitHub at (23665258ca...
Yuhui.Zheng [Fri, 31 Jan 2020 00:07:53 +0000 (00:07 +0000)]
Sync FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP with the version in GitHub at (23665258cabe49d5d68ba23968b6845a7c80eb34).

Notes:
- header has version 2.2.0.
- This sync did not bring in ./test directory, though we should.
- New NetworkInterfaces are introduced by this merge.
- Keil compiler support.
- FreeRTOS_IP.h new API xApplicationGetRandomNumber().
- FreeRTOS_IP_Private.h new eIPEvent_t eNetworkTxEvent.
- FreeRTOS_Stream_Buffer.h removing static xStreamBufferIsEmpty() and xStreamBufferIsFull().
- FreeRTOSConfigDefaults.h provides default ipconfigDNS_RECEIVE_BLOCK_TIME_TICKS.
- other type changes.

5 years agoRemoving RISC-V port under ThirdParty.
Yuhui.Zheng [Thu, 30 Jan 2020 22:23:03 +0000 (22:23 +0000)]
Removing RISC-V port under ThirdParty.

RISC-V ports for IAR and GCC can now be found under \FreeRTOS\Source\portable\GCC\RISC-V and \FreeRTOS\Source\portable\IAR\RISC-V.

5 years agoRemoving unnecessary ThirdParty ports -- Wiced_CY and nrf52840-dk.
Yuhui.Zheng [Thu, 30 Jan 2020 19:45:03 +0000 (19:45 +0000)]
Removing unnecessary ThirdParty ports -- Wiced_CY and nrf52840-dk.

For projects depending on either of these two ports, please update your projects according to below:
Wiced_CY -- Use GCC/ARM_CRx_No_GIC instead.
nrf52840-dk -- Use GCC/ARM_CM7/r0p1 instead. Please note that, kernel port shall only take dependency on MCU core, not MCU peripherals. (Please take out RTC related from kernel port.) For low power feature (tickless) in FreeRTOS, please follow this page https://www.freertos.org/low-power-ARM-cortex-rtos.html. In case ARM_CM7/rop1 is missing any feature, reach out to us.

5 years agoRemove the FreeRTOS-IoT-Libraries from FreeRTOS-Plus as it was an old copy with a...
Richard Barry [Thu, 30 Jan 2020 00:05:23 +0000 (00:05 +0000)]
Remove the FreeRTOS-IoT-Libraries from FreeRTOS-Plus as it was an old copy with a newer copy in FreeRTOS-Labs.

5 years agoCorrect an err in queue.c introduced when previously updating behaviour when queue...
Richard Barry [Wed, 29 Jan 2020 19:52:38 +0000 (19:52 +0000)]
Correct an err in queue.c introduced when previously updating behaviour when queue sets are used in combination with queue overwrites.

5 years agoCleaning up LPC51U68 projects:
Yuhui.Zheng [Fri, 24 Jan 2020 07:53:14 +0000 (07:53 +0000)]
Cleaning up LPC51U68 projects:
- user playable settings are all in FreeRTOSConfig.h.
- removed reference to IntQueue.h in main_full.c
- readme.txt wording.

5 years agoIntroduce the portSOFTWARE_BARRIER macro which thus far is only used by the Win32...
Richard Barry [Thu, 23 Jan 2020 23:49:24 +0000 (23:49 +0000)]
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.

5 years agoAdd MPU demo project for Nulceo-L152RE which is Coretx-M3.
Gaurav Aggarwal [Thu, 23 Jan 2020 01:56:36 +0000 (01:56 +0000)]
Add MPU demo project for Nulceo-L152RE which is Coretx-M3.

5 years agoUpdates to CM3_MPU GCC port
Gaurav Aggarwal [Thu, 23 Jan 2020 01:50:25 +0000 (01:50 +0000)]
Updates to CM3_MPU GCC port

- System calls are now only allowed from kernel code. This change can be turned on
  or off using configENFORCE_SYSTEM_CALLS_FROM_KERNEL_ONLY.
- MPU is disabled before reprogramming it and enabled afterwards to be compliant
  with ARM recommendations.

5 years agoEnsure both one-shot and auto-reload are written consistently with a hyphen in comments.
Richard Barry [Thu, 16 Jan 2020 04:25:29 +0000 (04:25 +0000)]
Ensure both one-shot and auto-reload are written consistently with a hyphen in comments.

5 years agoAdded uxTimerGetReloadMode() API function.
Richard Barry [Thu, 16 Jan 2020 04:10:18 +0000 (04:10 +0000)]
Added uxTimerGetReloadMode() API function.

5 years agoAdd MPU demo project for LPC54018 board.
Gaurav Aggarwal [Sun, 12 Jan 2020 12:33:17 +0000 (12:33 +0000)]
Add MPU demo project for LPC54018 board.

5 years agoIntroduce a port for T-HEAD CK802. A simple demo for T-HEAD CB2201 is also included.
Yuhui.Zheng [Fri, 10 Jan 2020 07:53:14 +0000 (07:53 +0000)]
Introduce a port for T-HEAD CK802. A simple demo for T-HEAD CB2201 is also included.

5 years agoUpdate the GCC and IAR SiFive HiFive rev-b demos to use the new configMTIME_BASE_ADDR...
Richard Barry [Thu, 9 Jan 2020 02:28:45 +0000 (02:28 +0000)]
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.

5 years agoReplace portasmHAS_CLINT with configMTIME_BASE_ADDRESS and configMTIMECMP_BASE_ADDRES...
Richard Barry [Thu, 9 Jan 2020 02:23:51 +0000 (02:23 +0000)]
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.

5 years agoWork in progress update of LPC51U68 MCUXpresso project to rearrange the folder struct...
Richard Barry [Thu, 9 Jan 2020 00:19:36 +0000 (00:19 +0000)]
Work in progress update of LPC51U68 MCUXpresso project to rearrange the folder structure and names.

5 years agoReplace portasmHAS_CLINT with configMTIME_BASE_ADDRESS and configMTIMECMP_BASE_ADDRES...
Richard Barry [Tue, 7 Jan 2020 01:14:36 +0000 (01:14 +0000)]
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.

5 years agoAdd Source/portable/ARMClang file that directs users to the GCC port if they which...
Richard Barry [Sat, 4 Jan 2020 00:14:18 +0000 (00:14 +0000)]
Add Source/portable/ARMClang file that directs users to the GCC port if they which to use the ARMClang compiler.

5 years agoIf tickless idle mode is in use then ensure prvResetNextTaskUnblockTime() is called...
Richard Barry [Fri, 3 Jan 2020 22:50:31 +0000 (22:50 +0000)]
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.

5 years agoCorrect #error text in multiple fat file system files.
Richard Barry [Fri, 3 Jan 2020 20:53:27 +0000 (20:53 +0000)]
Correct #error text in multiple fat file system files.

6 years agoAdd xPortIsInsideInterrupt() to the IAR ARMv7-M ports.
Richard Barry [Fri, 3 Jan 2020 01:17:29 +0000 (01:17 +0000)]
Add xPortIsInsideInterrupt() to the IAR ARMv7-M ports.

6 years agoAdded xTaskAbortDelayFromISR() and ulTaskNotifyValueClear() API functions.
Richard Barry [Thu, 2 Jan 2020 18:55:20 +0000 (18:55 +0000)]
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.

6 years agoRenamed RISC-V_RV32_SiFive_HiFive1_IAR directory to RISC-V_RV32_SiFive_HiFive1-RevB_I...
Richard Barry [Wed, 1 Jan 2020 22:38:23 +0000 (22:38 +0000)]
Renamed RISC-V_RV32_SiFive_HiFive1_IAR directory to RISC-V_RV32_SiFive_HiFive1-RevB_IAR as it targets the RevB hardware.

6 years agoMinor updates to comment block for xTaskCheckForTimeOut().
Richard Barry [Wed, 1 Jan 2020 22:24:44 +0000 (22:24 +0000)]
Minor updates to comment block for xTaskCheckForTimeOut().

6 years agoRename RISC-V_RV32_SiFive_HiFive1-FreedomStudio directory to RISC-V_RV32_SiFive_HiFiv...
Richard Barry [Wed, 1 Jan 2020 22:05:35 +0000 (22:05 +0000)]
Rename RISC-V_RV32_SiFive_HiFive1-FreedomStudio directory to RISC-V_RV32_SiFive_HiFive1-RevB-FreedomStudio as it targets Rev B of the hardware.

6 years agoUpdate RISCC-V-RV32-SiFive_HiFive1_FreedomStudio project to latest tools and metal...
Richard Barry [Wed, 1 Jan 2020 22:02:06 +0000 (22:02 +0000)]
Update RISCC-V-RV32-SiFive_HiFive1_FreedomStudio project to latest tools and metal library versions.

6 years agoRename STM32Cube to GCC for STM32L4 Discovery projects as GCC is
Gaurav Aggarwal [Wed, 1 Jan 2020 00:35:42 +0000 (00:35 +0000)]
Rename STM32Cube to GCC for STM32L4 Discovery projects as GCC is
the compiler used.

6 years agoMake vSetupTimerInterrupt weak in the RVDS M4 MPU port to give the
Gaurav Aggarwal [Wed, 1 Jan 2020 00:04:10 +0000 (00:04 +0000)]
Make vSetupTimerInterrupt weak in the RVDS M4 MPU port to give the
application writer a chance to override this function. This gives
the application write ability to use a different timer.

6 years agoUpdate documentation of xTaskCheckForTimeOut function to reflect the
Gaurav Aggarwal [Tue, 31 Dec 2019 20:49:07 +0000 (20:49 +0000)]
Update documentation of xTaskCheckForTimeOut function to reflect the
intended use of this API.

6 years ago- Updates to projects due to demo folder name change. (IAR source file paths and...
Yuhui.Zheng [Tue, 31 Dec 2019 08:06:33 +0000 (08:06 +0000)]
- Updates to projects due to demo folder name change. (IAR source file paths and assembler path were fixed. Keil source file paths were fixed.)
- Added back power static library for GCC and IAR. (Power management related interface definitions are in drivers/fsl_power.h. power.c is empty due to "implementation is in header file and power library")
- Note for GCC link: the command used for linking is `arm-none-eabi-gcc -nostdlib -L<additional lib search path> -Xlinker ... -o "CORTEX_M0+_LPC51U68_LPCXpresso.axf" <all *.o> -lpower`. Per GCC doc, static library name in file system is libpower.a.

6 years agoPreviously the STM32F0518 compiler setting was changed to enable the use of the __wea...
Richard Barry [Mon, 30 Dec 2019 22:24:58 +0000 (22:24 +0000)]
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.

6 years agoEnsure the CORTEX_M0_STM32F0518_IAR demo builds after updates to the Cortex-M0 port...
Richard Barry [Mon, 30 Dec 2019 22:07:33 +0000 (22:07 +0000)]
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.

6 years agoEnsure the LPC1114 demo still builds after updates to the Cortex-M0 port layer -...
Richard Barry [Mon, 30 Dec 2019 22:00:26 +0000 (22:00 +0000)]
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.

6 years agoEnsure the LPC1114 demo still builds after updates to the Cortex-M0 port layer -...
Richard Barry [Mon, 30 Dec 2019 21:59:11 +0000 (21:59 +0000)]
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.

6 years agoEnsure the XMC1000_IAR_KEIL_GCC projects still build after updates to the Cortex...
Richard Barry [Mon, 30 Dec 2019 21:44:22 +0000 (21:44 +0000)]
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.

6 years agoReplace the static prvSetupTimerInterrupt() function in the Cortex-M port layers...
Richard Barry [Mon, 30 Dec 2019 21:16:09 +0000 (21:16 +0000)]
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.

6 years agoCorrect use of xStreamBufferRead() to xStreamBufferReceive() in code comments - no...
Richard Barry [Mon, 30 Dec 2019 20:00:49 +0000 (20:00 +0000)]
Correct use of xStreamBufferRead() to xStreamBufferReceive() in code comments - no source code changes.

6 years agoTidy up comments only.
Richard Barry [Fri, 27 Dec 2019 21:22:07 +0000 (21:22 +0000)]
Tidy up comments only.

6 years agoEnable the Win32 comprehensive test/demo build and run when configUSE_QUEUE_SETS...
Richard Barry [Fri, 27 Dec 2019 21:02:23 +0000 (21:02 +0000)]
Enable the Win32 comprehensive test/demo build and run when configUSE_QUEUE_SETS is set to 0.

6 years agoUpdate the LM3Sxxxx_IAR_Keil demo so the IAR project writes to the UART and executes...
Richard Barry [Fri, 27 Dec 2019 20:59:57 +0000 (20:59 +0000)]
Update the LM3Sxxxx_IAR_Keil demo so the IAR project writes to the UART and executes in QEMU.

6 years agoUpdates to CM4_MPU RCDS port
Gaurav Aggarwal [Tue, 24 Dec 2019 22:45:32 +0000 (22:45 +0000)]
Updates to CM4_MPU RCDS port

- System calls are now only allowed from kernel code. This change can be turned on
  or off using configENFORCE_SYSTEM_CALLS_FROM_KERNEL_ONLY.
- MPU is disabled before reprogramming it and enabled afterwards to be compliant
  with ARM recommendations.

6 years agoRemove local paths from the URL files
Gaurav Aggarwal [Tue, 24 Dec 2019 19:16:19 +0000 (19:16 +0000)]
Remove local paths from the URL files

6 years agoAdd readme into the third party RISC-V port that points to the directories that conta...
Richard Barry [Tue, 24 Dec 2019 17:24:23 +0000 (17:24 +0000)]
Add readme into the third party RISC-V port that points to the directories that contains the official ports.

6 years agoAdd IAR MPU project for STM32L475 Discovery Kit IoT Node
Gaurav Aggarwal [Sat, 21 Dec 2019 00:04:04 +0000 (00:04 +0000)]
Add IAR MPU project for STM32L475 Discovery Kit IoT Node

6 years agoUpdates to CM4_MPU IAR port
Gaurav Aggarwal [Sat, 21 Dec 2019 00:02:31 +0000 (00:02 +0000)]
Updates to CM4_MPU IAR port

- System calls are now only allowed from kernel code. This change can be turned on
  or off using configENFORCE_SYSTEM_CALLS_FROM_KERNEL_ONLY.
- MPU is disabled before reprogramming it and enabled afterwards to be compliant
  with ARM recommendations.

6 years agoIncrease test coverage for queue sets.
Richard Barry [Fri, 20 Dec 2019 02:54:30 +0000 (02:54 +0000)]
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.

6 years agoRemove build files accidentally checked in.
Richard Barry [Fri, 20 Dec 2019 02:49:15 +0000 (02:49 +0000)]
Remove build files accidentally checked in.
Remove the CMSIS math library as it is large and not used.

6 years agoAdd MPU projects for STM32L475 Discovery Kit IoT Node
Gaurav Aggarwal [Fri, 20 Dec 2019 02:07:09 +0000 (02:07 +0000)]
Add MPU projects for STM32L475 Discovery Kit IoT Node

6 years agoUpdates to CM4_MPU GCC port
Gaurav Aggarwal [Fri, 20 Dec 2019 02:05:44 +0000 (02:05 +0000)]
Updates to CM4_MPU GCC port

- System calls are now only allowed from kernel code. This change can be turned on
  or off using configENFORCE_SYSTEM_CALLS_FROM_KERNEL_ONLY.
- MPU is disabled before reprogramming it and enabled afterwards to be compliant
  with ARM recommendations.

6 years agoAdding GCC/Keil/IAR projects for NXP LPC51U68 (CM0+).
Yuhui.Zheng [Wed, 18 Dec 2019 10:06:30 +0000 (10:06 +0000)]
Adding GCC/Keil/IAR projects for NXP LPC51U68 (CM0+).

Please see readme.txt for todo items.

6 years agoCortex M0 GCC/IAR/Keil ports -- tickless support.
Yuhui.Zheng [Wed, 18 Dec 2019 09:55:08 +0000 (09:55 +0000)]
Cortex M0 GCC/IAR/Keil ports -- tickless support.

The default portMISSED_COUNTS_FACTOR is set to 45 cycles. User could override this value, if a more accurate count is available.

6 years agoRVDS/Keil weak linkage for vPortSetupTimerInterrupt() -- CM4F, CM3
Yuhui.Zheng [Wed, 18 Dec 2019 02:08:06 +0000 (02:08 +0000)]
RVDS/Keil weak linkage for vPortSetupTimerInterrupt() -- CM4F, CM3

Test steps are documented in this PR https://github.com/aws/amazon-freertos/pull/1141.

6 years agoUse linker script variables for MPU setup for Nuvoton M2351 Keil Project
Gaurav Aggarwal [Tue, 17 Dec 2019 01:45:53 +0000 (01:45 +0000)]
Use linker script variables for MPU setup for Nuvoton M2351 Keil Project

Earlier we were using hard-coded addresses for MPU setup which
were ensured to be the same as linker script setup. This change
updates the Keil uVision project for Nuvoton Numaker-PFM-M2351
to use the variables exported from the linker script. This ensures
that the MPU setup never goes out of sync with linker script.

6 years agoUse the linker script variables for MPU setup for Keil Simulator Demo
Gaurav Aggarwal [Tue, 17 Dec 2019 00:14:26 +0000 (00:14 +0000)]
Use the linker script variables for MPU setup for Keil Simulator Demo

Earlier we were using hard-coded addresses for MPU setup which
were ensured to be the same as linker script setup. This change
updates the Keil Simulator demo to use the variables exported
from the linker script. This ensures that the MPU setup does not
go out of sync with linker script.

6 years agoMove warning suppression for IAR compiler to portmacro.h for v8M ports
Gaurav Aggarwal [Sat, 7 Dec 2019 01:23:17 +0000 (01:23 +0000)]
Move warning suppression for IAR compiler to portmacro.h for v8M ports

IAR produces some warnings which can not be fixed in the source code because
then other compilers start generating warnings. We suppressed those warnings
in the project file before. This change moves the warning suppression from
project files to portmacro.h.

6 years agoCheck socket binding result before doing anything with socket. (This is to address...
Yuhui.Zheng [Wed, 4 Dec 2019 07:52:49 +0000 (07:52 +0000)]
Check socket binding result before doing anything with socket. (This is to address ARG findings.) Breaking the single return rule here, due to precedent violation at line 1039 and 1144.

prvTransferConnect() now returns:
- pdTRUE: everything's good. pdTRUE = 1.
- -pdFREERTOS_ERRNO_ENOMEM: FreeRTOS_socket() failed. -pdFREERTOS_ERRNO_ENOMEM = -12.
- -pdFREERTOS_ERRNO_EINVAL || -pdFREERTOS_ERRNO_ECANCELED: FreeRTOS_bind() failed. Negative values.

Thus, at line 569 and line 617, needs to check != pdTRUE instead of == pdFALSE.

This commit is done on behalf of Alfred.

6 years agoFix bug when xQueueOverwrite() and xQueueOverwrite() from ISR are used to overwrite...
Richard Barry [Tue, 3 Dec 2019 01:50:07 +0000 (01:50 +0000)]
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.

6 years agoAdd the Labs projects provided in the V10.2.1_191129 zip file.
Richard Barry [Mon, 2 Dec 2019 23:39:25 +0000 (23:39 +0000)]
Add the Labs projects provided in the V10.2.1_191129 zip file.

6 years agoRemove guards against __ARMCC_VERSION version numbers that were previously used to...
Richard Barry [Thu, 21 Nov 2019 22:35:21 +0000 (22:35 +0000)]
Remove guards against __ARMCC_VERSION version numbers that were previously used to avoid compiler warnings in some GCC ARM Cortex ports.

6 years agoAdd software timer to the Win32 blinky demo.
Richard Barry [Mon, 18 Nov 2019 17:35:40 +0000 (17:35 +0000)]
Add software timer to the Win32 blinky demo.

6 years agoRemove driver files that generate compiler warnings from the RISC-V_Renode_Emulator_S...
Richard Barry [Mon, 18 Nov 2019 17:23:14 +0000 (17:23 +0000)]
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.

6 years agoUpdate to the latest atomic.h.
Richard Barry [Mon, 18 Nov 2019 16:28:03 +0000 (16:28 +0000)]
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.

6 years agoRename the RISC-V_RV32_SiFive_Hifive1_GCC folder to RISC-V_RV32_SiFive_HiFive1_Freedo...
Richard Barry [Tue, 22 Oct 2019 22:30:06 +0000 (22:30 +0000)]
Rename the RISC-V_RV32_SiFive_Hifive1_GCC folder to RISC-V_RV32_SiFive_HiFive1_FreedomStudio as it is built with Freedom Studio.

6 years agoAdd nano-specs linker option to HiFive1_GCC demo.
Richard Barry [Tue, 22 Oct 2019 22:27:55 +0000 (22:27 +0000)]
Add nano-specs linker option to HiFive1_GCC demo.

6 years agoFix spelling mistakes copied and pasted into a couple of RISC-V demo main.c files.
Richard Barry [Tue, 22 Oct 2019 16:31:57 +0000 (16:31 +0000)]
Fix spelling mistakes copied and pasted into a couple of RISC-V demo main.c files.

6 years agoChange version and license text in RISC-V_RV32_SiFive_HiFive1_GCC FreeRTOSConfig...
Richard Barry [Tue, 22 Oct 2019 02:17:15 +0000 (02:17 +0000)]
Change version and license text in RISC-V_RV32_SiFive_HiFive1_GCC FreeRTOSConfig.h file.

6 years agoTidy up main_full.c and change alignment of variable accesses in RegTest.S for the...
Richard Barry [Tue, 22 Oct 2019 02:15:28 +0000 (02:15 +0000)]
Tidy up main_full.c and change alignment of variable accesses in RegTest.S for the RISC-V_Renode_Emulator_SoftConsole demo.

6 years agoRework RISC-V QEMU example to use vanilla Eclipse in place of Freedom Studio. NOTE...
Richard Barry [Tue, 22 Oct 2019 02:03:15 +0000 (02:03 +0000)]
Rework RISC-V QEMU example to use vanilla Eclipse in place of Freedom Studio.  NOTE:  RISC-V QEMU mtime interrupts are not generated consistently.

6 years agoAdd some asserts into the common demo tasks to catch scenarios where the tasks are...
Richard Barry [Mon, 21 Oct 2019 17:17:34 +0000 (17:17 +0000)]
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.

6 years agoUpdate RISK-V GCC port to ensure the first task starts with interrupts enabled -...
Richard Barry [Mon, 21 Oct 2019 04:16:32 +0000 (04:16 +0000)]
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.

6 years agoAdd the miv-basic.resc reNode script into the RISC-V_Renode_Emulator_SoftConsole...
Richard Barry [Thu, 17 Oct 2019 20:39:40 +0000 (20:39 +0000)]
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.

6 years agoRename RISC-V-Qemu-sive_e_Freedom_Studio directory to RISC-V-Qemu-sifive_e-Eclipse...
Richard Barry [Wed, 16 Oct 2019 04:31:57 +0000 (04:31 +0000)]
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.

6 years agoRecreate the RISC-V-Qemu demo using Vanilla Eclipse in place of Freedom Studio as...
Richard Barry [Wed, 16 Oct 2019 04:28:28 +0000 (04:28 +0000)]
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.

6 years agoMove the call to traceTASK_DELETE() to before port portPRE_TASK_DELETE_HOOK() as...
Richard Barry [Tue, 15 Oct 2019 22:14:40 +0000 (22:14 +0000)]
Move the call to traceTASK_DELETE() to before port portPRE_TASK_DELETE_HOOK() as in the Windows port portPRE_TASK_DELETE_HOOK() never returns.

6 years agoAdd IAR demo for the SiFive RISC-V HiFive Rev B board.
Richard Barry [Mon, 14 Oct 2019 03:20:18 +0000 (03:20 +0000)]
Add IAR demo for the SiFive RISC-V HiFive Rev B board.

6 years agoUpdate the RegTest.S file used by several GCC RISC-V demos to ensure correct alignmen...
Richard Barry [Mon, 14 Oct 2019 00:16:25 +0000 (00:16 +0000)]
Update the RegTest.S file used by several GCC RISC-V demos to ensure correct alignment of constant loads from assembly code.

6 years agoTidy up the RISC-V_RV32_SiFive_HiFive1_GCC demo ready for its eventual release.
Richard Barry [Mon, 14 Oct 2019 00:04:53 +0000 (00:04 +0000)]
Tidy up the RISC-V_RV32_SiFive_HiFive1_GCC demo ready for its eventual release.

6 years agoAdded the "full" demo to the RISC-V_RV32_SiFive_HiFive1_GCC demo - backup check in...
Richard Barry [Sun, 13 Oct 2019 22:53:00 +0000 (22:53 +0000)]
Added the "full" demo to the RISC-V_RV32_SiFive_HiFive1_GCC demo - backup check in only as still a work in progress.

6 years agoRIS-V_RV32_SiFive_HiFive1_GCC project now running the blinky demo - still a work...
Richard Barry [Fri, 11 Oct 2019 02:59:13 +0000 (02:59 +0000)]
RIS-V_RV32_SiFive_HiFive1_GCC project now running the blinky demo - still a work in progress.

6 years agoFormatting changes only.
Richard Barry [Thu, 10 Oct 2019 17:56:10 +0000 (17:56 +0000)]
Formatting changes only.

6 years agoRISC-V-RV32_SiFive_HiFive1_GCC project is now also building the FreeRTOS kernel code...
Richard Barry [Thu, 10 Oct 2019 17:54:56 +0000 (17:54 +0000)]
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.