fix sytick drift after tickless wakeup from sleep or stop
1. make port_systick_reload the same as port_systick_config
This commit is contained in:
@@ -42,17 +42,7 @@ __PORT__ void port_systick_suspend(void)
|
||||
|
||||
__PORT__ void port_systick_reload(uint32_t cycle_per_tick)
|
||||
{
|
||||
uint32_t max_cycle;
|
||||
|
||||
max_cycle = SysTick_LOAD_RELOAD_Msk; // 24 bit
|
||||
|
||||
if (max_cycle - SysTick->VAL > cycle_per_tick - 1u) {
|
||||
SysTick->LOAD = max_cycle;
|
||||
} else {
|
||||
SysTick->LOAD = (cycle_per_tick - 1u) + SysTick->VAL;
|
||||
}
|
||||
|
||||
SysTick->VAL = 0;
|
||||
port_systick_config(cycle_per_tick);
|
||||
}
|
||||
|
||||
__PORT__ void port_systick_pending_reset(void)
|
||||
|
@@ -42,17 +42,7 @@ __PORT__ void port_systick_suspend(void)
|
||||
|
||||
__PORT__ void port_systick_reload(uint32_t cycle_per_tick)
|
||||
{
|
||||
uint32_t max_cycle;
|
||||
|
||||
max_cycle = SysTick_LOAD_RELOAD_Msk; // 24 bit
|
||||
|
||||
if (max_cycle - SysTick->VAL > cycle_per_tick - 1u) {
|
||||
SysTick->LOAD = max_cycle;
|
||||
} else {
|
||||
SysTick->LOAD = (cycle_per_tick - 1u) + SysTick->VAL;
|
||||
}
|
||||
|
||||
SysTick->VAL = 0;
|
||||
port_systick_config(cycle_per_tick);
|
||||
}
|
||||
|
||||
__PORT__ void port_systick_pending_reset(void)
|
||||
|
@@ -42,17 +42,7 @@ __PORT__ void port_systick_suspend(void)
|
||||
|
||||
__PORT__ void port_systick_reload(uint32_t cycle_per_tick)
|
||||
{
|
||||
uint32_t max_cycle;
|
||||
|
||||
max_cycle = SysTick_LOAD_RELOAD_Msk; // 24 bit
|
||||
|
||||
if (max_cycle - SysTick->VAL > cycle_per_tick - 1u) {
|
||||
SysTick->LOAD = max_cycle;
|
||||
} else {
|
||||
SysTick->LOAD = (cycle_per_tick - 1u) + SysTick->VAL;
|
||||
}
|
||||
|
||||
SysTick->VAL = 0;
|
||||
port_systick_config(cycle_per_tick);
|
||||
}
|
||||
|
||||
__PORT__ void port_systick_pending_reset(void)
|
||||
|
@@ -59,17 +59,7 @@ __PORT__ void port_systick_suspend(void)
|
||||
|
||||
__PORT__ void port_systick_reload(uint32_t cycle_per_tick)
|
||||
{
|
||||
uint32_t max_cycle;
|
||||
|
||||
max_cycle = SysTick_LOAD_RELOAD_Msk; // 24 bit
|
||||
|
||||
if (max_cycle - SysTick->VAL > cycle_per_tick - 1u) {
|
||||
SysTick->LOAD = max_cycle;
|
||||
} else {
|
||||
SysTick->LOAD = (cycle_per_tick - 1u) + SysTick->VAL;
|
||||
}
|
||||
|
||||
SysTick->VAL = 0;
|
||||
port_systick_config(cycle_per_tick);
|
||||
}
|
||||
|
||||
__PORT__ void port_systick_pending_reset(void)
|
||||
|
@@ -59,17 +59,7 @@ __PORT__ void port_systick_suspend(void)
|
||||
|
||||
__PORT__ void port_systick_reload(uint32_t cycle_per_tick)
|
||||
{
|
||||
uint32_t max_cycle;
|
||||
|
||||
max_cycle = SysTick_LOAD_RELOAD_Msk; // 24 bit
|
||||
|
||||
if (max_cycle - SysTick->VAL > cycle_per_tick - 1u) {
|
||||
SysTick->LOAD = max_cycle;
|
||||
} else {
|
||||
SysTick->LOAD = (cycle_per_tick - 1u) + SysTick->VAL;
|
||||
}
|
||||
|
||||
SysTick->VAL = 0;
|
||||
port_systick_config(cycle_per_tick);
|
||||
}
|
||||
|
||||
__PORT__ void port_systick_pending_reset(void)
|
||||
|
@@ -59,17 +59,7 @@ __PORT__ void port_systick_suspend(void)
|
||||
|
||||
__PORT__ void port_systick_reload(uint32_t cycle_per_tick)
|
||||
{
|
||||
uint32_t max_cycle;
|
||||
|
||||
max_cycle = SysTick_LOAD_RELOAD_Msk; // 24 bit
|
||||
|
||||
if (max_cycle - SysTick->VAL > cycle_per_tick - 1u) {
|
||||
SysTick->LOAD = max_cycle;
|
||||
} else {
|
||||
SysTick->LOAD = (cycle_per_tick - 1u) + SysTick->VAL;
|
||||
}
|
||||
|
||||
SysTick->VAL = 0;
|
||||
port_systick_config(cycle_per_tick);
|
||||
}
|
||||
|
||||
__PORT__ void port_systick_pending_reset(void)
|
||||
|
@@ -84,17 +84,7 @@ __PORT__ void port_systick_suspend(void)
|
||||
|
||||
__PORT__ void port_systick_reload(uint32_t cycle_per_tick)
|
||||
{
|
||||
uint32_t max_cycle;
|
||||
|
||||
max_cycle = SysTick_LOAD_RELOAD_Msk; // 24 bit
|
||||
|
||||
if (max_cycle - SysTick->VAL > cycle_per_tick - 1u) {
|
||||
SysTick->LOAD = max_cycle;
|
||||
} else {
|
||||
SysTick->LOAD = (cycle_per_tick - 1u) + SysTick->VAL;
|
||||
}
|
||||
|
||||
SysTick->VAL = 0;
|
||||
port_systick_config(cycle_per_tick);
|
||||
}
|
||||
|
||||
__PORT__ void port_systick_pending_reset(void)
|
||||
|
@@ -59,17 +59,7 @@ __PORT__ void port_systick_suspend(void)
|
||||
|
||||
__PORT__ void port_systick_reload(uint32_t cycle_per_tick)
|
||||
{
|
||||
uint32_t max_cycle;
|
||||
|
||||
max_cycle = SysTick_LOAD_RELOAD_Msk; // 24 bit
|
||||
|
||||
if (max_cycle - SysTick->VAL > cycle_per_tick - 1u) {
|
||||
SysTick->LOAD = max_cycle;
|
||||
} else {
|
||||
SysTick->LOAD = (cycle_per_tick - 1u) + SysTick->VAL;
|
||||
}
|
||||
|
||||
SysTick->VAL = 0;
|
||||
port_systick_config(cycle_per_tick);
|
||||
}
|
||||
|
||||
__PORT__ void port_systick_pending_reset(void)
|
||||
|
@@ -89,17 +89,7 @@ __PORT__ k_cycle_t port_systick_max_reload_cycle(void)
|
||||
|
||||
__PORT__ void port_systick_reload(uint32_t cycle_per_tick)
|
||||
{
|
||||
uint32_t max_cycle;
|
||||
|
||||
max_cycle = SysTick_LOAD_RELOAD_Msk; // 24 bit
|
||||
|
||||
if (max_cycle - SysTick->VAL > cycle_per_tick - 1u) {
|
||||
SysTick->LOAD = max_cycle;
|
||||
} else {
|
||||
SysTick->LOAD = (cycle_per_tick - 1u) + SysTick->VAL;
|
||||
}
|
||||
|
||||
SysTick->VAL = 0;
|
||||
port_systick_config(cycle_per_tick);
|
||||
}
|
||||
|
||||
__PORT__ void port_systick_pending_reset(void)
|
||||
|
@@ -84,17 +84,7 @@ __PORT__ void port_systick_suspend(void)
|
||||
|
||||
__PORT__ void port_systick_reload(uint32_t cycle_per_tick)
|
||||
{
|
||||
uint32_t max_cycle;
|
||||
|
||||
max_cycle = SysTick_LOAD_RELOAD_Msk; // 24 bit
|
||||
|
||||
if (max_cycle - SysTick->VAL > cycle_per_tick - 1u) {
|
||||
SysTick->LOAD = max_cycle;
|
||||
} else {
|
||||
SysTick->LOAD = (cycle_per_tick - 1u) + SysTick->VAL;
|
||||
}
|
||||
|
||||
SysTick->VAL = 0;
|
||||
port_systick_config(cycle_per_tick);
|
||||
}
|
||||
|
||||
__PORT__ void port_systick_pending_reset(void)
|
||||
|
@@ -89,17 +89,7 @@ __PORT__ k_cycle_t port_systick_max_reload_cycle(void)
|
||||
|
||||
__PORT__ void port_systick_reload(uint32_t cycle_per_tick)
|
||||
{
|
||||
uint32_t max_cycle;
|
||||
|
||||
max_cycle = SysTick_LOAD_RELOAD_Msk; // 24 bit
|
||||
|
||||
if (max_cycle - SysTick->VAL > cycle_per_tick - 1u) {
|
||||
SysTick->LOAD = max_cycle;
|
||||
} else {
|
||||
SysTick->LOAD = (cycle_per_tick - 1u) + SysTick->VAL;
|
||||
}
|
||||
|
||||
SysTick->VAL = 0;
|
||||
port_systick_config(cycle_per_tick);
|
||||
}
|
||||
|
||||
__PORT__ void port_systick_pending_reset(void)
|
||||
|
@@ -89,17 +89,7 @@ __PORT__ k_cycle_t port_systick_max_reload_cycle(void)
|
||||
|
||||
__PORT__ void port_systick_reload(uint32_t cycle_per_tick)
|
||||
{
|
||||
uint32_t max_cycle;
|
||||
|
||||
max_cycle = SysTick_LOAD_RELOAD_Msk; // 24 bit
|
||||
|
||||
if (max_cycle - SysTick->VAL > cycle_per_tick - 1u) {
|
||||
SysTick->LOAD = max_cycle;
|
||||
} else {
|
||||
SysTick->LOAD = (cycle_per_tick - 1u) + SysTick->VAL;
|
||||
}
|
||||
|
||||
SysTick->VAL = 0;
|
||||
port_systick_config(cycle_per_tick);
|
||||
}
|
||||
|
||||
__PORT__ void port_systick_pending_reset(void)
|
||||
|
@@ -67,17 +67,7 @@ __PORT__ void port_systick_suspend(void)
|
||||
|
||||
__PORT__ void port_systick_reload(uint32_t cycle_per_tick)
|
||||
{
|
||||
uint32_t max_cycle;
|
||||
|
||||
max_cycle = SysTick_LOAD_RELOAD_Msk; // 24 bit
|
||||
|
||||
if (max_cycle - SysTick->VAL > cycle_per_tick - 1u) {
|
||||
SysTick->LOAD = max_cycle;
|
||||
} else {
|
||||
SysTick->LOAD = (cycle_per_tick - 1u) + SysTick->VAL;
|
||||
}
|
||||
|
||||
SysTick->VAL = 0;
|
||||
port_systick_config(cycle_per_tick);
|
||||
}
|
||||
|
||||
__PORT__ void port_systick_pending_reset(void)
|
||||
|
@@ -72,17 +72,7 @@ __PORT__ k_cycle_t port_systick_max_reload_cycle(void)
|
||||
|
||||
__PORT__ void port_systick_reload(uint32_t cycle_per_tick)
|
||||
{
|
||||
uint32_t max_cycle;
|
||||
|
||||
max_cycle = SysTick_LOAD_RELOAD_Msk; // 24 bit
|
||||
|
||||
if (max_cycle - SysTick->VAL > cycle_per_tick - 1u) {
|
||||
SysTick->LOAD = max_cycle;
|
||||
} else {
|
||||
SysTick->LOAD = (cycle_per_tick - 1u) + SysTick->VAL;
|
||||
}
|
||||
|
||||
SysTick->VAL = 0;
|
||||
port_systick_config(cycle_per_tick);
|
||||
}
|
||||
|
||||
__PORT__ void port_systick_pending_reset(void)
|
||||
|
@@ -59,17 +59,7 @@ __PORT__ void port_systick_suspend(void)
|
||||
|
||||
__PORT__ void port_systick_reload(uint32_t cycle_per_tick)
|
||||
{
|
||||
uint32_t max_cycle;
|
||||
|
||||
max_cycle = SysTick_LOAD_RELOAD_Msk; // 24 bit
|
||||
|
||||
if (max_cycle - SysTick->VAL > cycle_per_tick - 1u) {
|
||||
SysTick->LOAD = max_cycle;
|
||||
} else {
|
||||
SysTick->LOAD = (cycle_per_tick - 1u) + SysTick->VAL;
|
||||
}
|
||||
|
||||
SysTick->VAL = 0;
|
||||
port_systick_config(cycle_per_tick);
|
||||
}
|
||||
|
||||
__PORT__ void port_systick_pending_reset(void)
|
||||
|
@@ -59,17 +59,7 @@ __PORT__ void port_systick_suspend(void)
|
||||
|
||||
__PORT__ void port_systick_reload(uint32_t cycle_per_tick)
|
||||
{
|
||||
uint32_t max_cycle;
|
||||
|
||||
max_cycle = SysTick_LOAD_RELOAD_Msk; // 24 bit
|
||||
|
||||
if (max_cycle - SysTick->VAL > cycle_per_tick - 1u) {
|
||||
SysTick->LOAD = max_cycle;
|
||||
} else {
|
||||
SysTick->LOAD = (cycle_per_tick - 1u) + SysTick->VAL;
|
||||
}
|
||||
|
||||
SysTick->VAL = 0;
|
||||
port_systick_config(cycle_per_tick);
|
||||
}
|
||||
|
||||
__PORT__ void port_systick_pending_reset(void)
|
||||
|
@@ -59,17 +59,7 @@ __PORT__ void port_systick_suspend(void)
|
||||
|
||||
__PORT__ void port_systick_reload(uint32_t cycle_per_tick)
|
||||
{
|
||||
uint32_t max_cycle;
|
||||
|
||||
max_cycle = SysTick_LOAD_RELOAD_Msk; // 24 bit
|
||||
|
||||
if (max_cycle - SysTick->VAL > cycle_per_tick - 1u) {
|
||||
SysTick->LOAD = max_cycle;
|
||||
} else {
|
||||
SysTick->LOAD = (cycle_per_tick - 1u) + SysTick->VAL;
|
||||
}
|
||||
|
||||
SysTick->VAL = 0;
|
||||
port_systick_config(cycle_per_tick);
|
||||
}
|
||||
|
||||
__PORT__ void port_systick_pending_reset(void)
|
||||
|
Reference in New Issue
Block a user