Commit Graph

17 Commits (ab7b93ca583fe0779dd52f0ee41e41fed70ee2c5)

Author SHA1 Message Date
Oren Cohen 787317b7eb Remove uVisor from mbed-os 2018-08-22 16:36:59 +03:00
Russ Butler 05d33b068d Remove unnecessary low power ticker rescheduling
Schedule the next OS tick inside of the ticker interrupt rather than
in the systick interrupt. Scheduling this while the ticker is
dispatching prevents an unnecissary rescheduling since this
rescheduling is done anyway when dispatching is finished.

This is particularly useful for the low power ticker on devices with
LPTICKER_DELAY_TICKS set to a non-zero value. This is because the low
power ticker cannot be reschduled immediately and needs to fall back
onto the microsecond ticker which temporarily locks deep sleep.

Note - the optimization in this commit is made possible by the commit:
"Don't reschedule ticker while dispatching"
2018-07-25 23:24:12 -05:00
Bartek Szatkowski 9575dd26ec Don't use tickless if LPTICKER is not present
The current implementation of tickless requires LPTICKER to be present.
2018-05-25 12:20:09 -05:00
Bartek Szatkowski 3f1ea4b9ee CMSIS/RTX: Update idle handler and SysTick ops 2018-05-14 12:18:21 +01:00
Russ Butler 953bbeb7de Update idle loop to reduce calls to suspend
Change tickless handling to use public RTX calls and to prevent
unnecessary calls to suspend/resume by looping until the kernel
needs to be resumed.
2018-04-04 09:17:05 -05:00
Cruz Monrreal 9ddb092d43
Merge pull request #6230 from bulislaw/system_reset
Add system_reset call
2018-03-01 10:31:07 -06:00
Bartek Szatkowski 4cb47df40a Add system_reset() function to Mbed OS 2018-02-28 16:42:34 +00:00
Filip Jagodzinski d098cd6757 RTOS: SysTimer: Split methods for testing 2018-02-28 14:37:12 +01:00
Filip Jagodzinski 1054277c65 RTOS: SysTimer: Extract RtosTimer as SysTimer
RtosTimer class introduced with tickless support in #4991 had to be
renamed because that name was already present in rtos namespace.
2018-02-28 14:37:12 +01:00
Russ Butler 8ef1a73735 Remove tickless assert for tick count
Remove the assert that the tick count of the OS matches the tick
count of the tickless timer as this occurs frequently when
debugging. This is because the function svcRtxKernelResume
only increments the OS's tick count until the next wakeup event
so if the device was halted by a debugger past the next wakeup
event the tick counts will be out of sync.
2018-01-25 15:27:35 -06:00
Martin Kojtal 9a18732b20 RTX idle: sleep without locked deep sleep fix
If tickless is enabled, it should not be locking deepsleep
2018-01-17 11:14:41 +00:00
Bartek Szatkowski e8c5d652ef Remove inclusion of an internal RTX header 2017-11-28 12:07:57 +01:00
Bartek Szatkowski 7bee352dd7 Update SysTick API usage for tickless mode 2017-11-10 09:53:42 +00:00
Bartek Szatkowski 4b354f80cf Update include paths to match updated CMSIS 2017-11-10 09:53:41 +00:00
Jaeden Amero 0d34c3636e mbed_rtx_idle: uVisor: Don't attempt to sleep
When uVisor is enabled, don't attempt to sleep. Attempting to sleep will
fail, as per <https://github.com/ARMmbed/uvisor/issues/420>.
2017-09-14 17:20:23 +01:00
Russ Butler c3eae587eb Add tickless support for devices without SysTick
Some Cortex-M0 devices, such as the nrf51, don't have the SysTick.
Instead, these targets use a software interrupt to simulate SysTick.
Add the hooks in the tickless code to support these devices. Targets
which do not have SysTick should now define NO_SYSTICK in targets.json
and implement mbed_get_m0_tick_irqn to add os suport.

This patch also removes os tick handling from the existing devices
(nrf51) since this is now handled in common code.
2017-09-07 21:35:04 -05:00
Russ Butler e44d94fa1e Add initial support for tickless RTX
Add support for tickless by replacing RTX's SysTick timer code with
with code which uses an mbed timer along with suspending and
resuming the kernel in the idle loop. Tickless is enabled on a
per-target basis by defining the macro MBED_TICKLESS.
2017-09-07 21:34:57 -05:00