diff --git a/kernel/arch/arm/arm9/gcc/los_context.c b/kernel/arch/arm/arm9/gcc/los_context.c index 92c8ec1c2a843823afb738592f92e3b299afac13..c4715162d3a1edc51fa469bfc75ae4556d340587 100644 --- a/kernel/arch/arm/arm9/gcc/los_context.c +++ b/kernel/arch/arm/arm9/gcc/los_context.c @@ -46,9 +46,15 @@ Output : None Return : None **************************************************************************** */ -LITE_OS_SEC_TEXT_INIT VOID HalArchInit() +LITE_OS_SEC_TEXT_INIT VOID HalArchInit(VOID) { + UINT32 ret; HalHwiInit(); + + ret = HalTickStart(OsTickHandler); + if (ret != LOS_OK) { + PRINT_ERR("Tick start failed!\n"); + } } /* **************************************************************************** @@ -116,14 +122,9 @@ LITE_OS_SEC_TEXT_INIT VOID *HalTskStackInit(UINT32 taskID, UINT32 stackSize, VOI return (VOID *)context; } -LITE_OS_SEC_TEXT_INIT UINT32 HalStartSchedule(OS_TICK_HANDLER handler) +LITE_OS_SEC_TEXT_INIT UINT32 HalStartSchedule(VOID) { (VOID)LOS_IntLock(); - UINT32 ret = HalTickStart(handler); - if (ret != LOS_OK) { - return ret; - } - OsSchedStart(); HalStartToRun(); diff --git a/kernel/arch/arm/arm9/gcc/los_timer.c b/kernel/arch/arm/arm9/gcc/los_timer.c index 62f6990d9b6190d72b3955f5ea5b069286ce12f5..972dfe6b7433def16eaf730d3e3f870c51aa6a0e 100644 --- a/kernel/arch/arm/arm9/gcc/los_timer.c +++ b/kernel/arch/arm/arm9/gcc/los_timer.c @@ -67,7 +67,7 @@ WEAK UINT32 HalTickStart(OS_TICK_HANDLER *handler) value &= ~(OS_TIMER_32K_CLK_BIT); WRITE_UINT32(value, OS_TIMER_CLK_PWD_ADDR); - value = OS_SYS_CLOCK / LOSCFG_BASE_CORE_TICK_PER_SECOND; + value = LOSCFG_BASE_CORE_TICK_RESPONSE_MAX; WRITE_UINT32(value, OS_TIMER_PERIOD_REG_ADDR); READ_UINT32(value, OS_TIMER_CTL_REG_ADDR); diff --git a/kernel/arch/arm/cortex-m3/keil/los_context.c b/kernel/arch/arm/cortex-m3/keil/los_context.c index 19ed88883ff25511377a4602f4189af10f87eaed..9277899199ac6ab40becac37a4f766aeeac6709c 100644 --- a/kernel/arch/arm/cortex-m3/keil/los_context.c +++ b/kernel/arch/arm/cortex-m3/keil/los_context.c @@ -38,6 +38,7 @@ #include "los_sched.h" #include "los_interrupt.h" #include "los_arch_timer.h" +#include "los_debug.h" /* **************************************************************************** Function : HalArchInit @@ -46,9 +47,15 @@ Output : None Return : None **************************************************************************** */ -LITE_OS_SEC_TEXT_INIT VOID HalArchInit() +LITE_OS_SEC_TEXT_INIT VOID HalArchInit(VOID) { + UINT32 ret; HalHwiInit(); + + ret = HalTickStart(OsTickHandler); + if (ret != LOS_OK) { + PRINT_ERR("Tick start failed!\n"); + } } /* **************************************************************************** @@ -147,13 +154,9 @@ LITE_OS_SEC_TEXT_INIT VOID *HalTskStackInit(UINT32 taskID, UINT32 stackSize, VOI return (VOID *)context; } -LITE_OS_SEC_TEXT_INIT UINT32 HalStartSchedule(OS_TICK_HANDLER handler) +LITE_OS_SEC_TEXT_INIT UINT32 HalStartSchedule(VOID) { (VOID)LOS_IntLock(); - UINT32 ret = HalTickStart(handler); - if (ret != LOS_OK) { - return ret; - } OsSchedStart(); HalStartToRun(); return LOS_OK; /* never return */ diff --git a/kernel/arch/arm/cortex-m3/keil/los_timer.c b/kernel/arch/arm/cortex-m3/keil/los_timer.c index f51faf3598a5426fc48d2fbd6cf3c351c8cd2872..388ed5f9b683b7bcfc840e17c7b8805128cc7cce 100644 --- a/kernel/arch/arm/cortex-m3/keil/los_timer.c +++ b/kernel/arch/arm/cortex-m3/keil/los_timer.c @@ -66,7 +66,7 @@ WEAK UINT32 HalTickStart(OS_TICK_HANDLER *handler) g_sysClock = OS_SYS_CLOCK; g_cyclesPerTick = OS_SYS_CLOCK / LOSCFG_BASE_CORE_TICK_PER_SECOND; - ret = SysTick_Config(g_cyclesPerTick); + ret = SysTick_Config(LOSCFG_BASE_CORE_TICK_RESPONSE_MAX); if (ret == 1) { return LOS_ERRNO_TICK_PER_SEC_TOO_SMALL; } diff --git a/kernel/arch/arm/cortex-m33/gcc/NTZ/los_context.c b/kernel/arch/arm/cortex-m33/gcc/NTZ/los_context.c index 19df61ce031fc407f80bf7af843bd0955c4872ec..b058362c882ec2e5bf3f0233ac900e1593b34436 100755 --- a/kernel/arch/arm/cortex-m33/gcc/NTZ/los_context.c +++ b/kernel/arch/arm/cortex-m33/gcc/NTZ/los_context.c @@ -37,6 +37,7 @@ #include "los_sched.h" #include "los_interrupt.h" #include "los_arch_timer.h" +#include "los_debug.h" /* **************************************************************************** Function : HalArchInit @@ -45,9 +46,15 @@ Output : None Return : None **************************************************************************** */ -LITE_OS_SEC_TEXT_INIT VOID HalArchInit() +LITE_OS_SEC_TEXT_INIT VOID HalArchInit(VOID) { + UINT32 ret; HalHwiInit(); + + ret = HalTickStart(OsTickHandler); + if (ret != LOS_OK) { + PRINT_ERR("Tick start failed!\n"); + } } /* **************************************************************************** @@ -146,13 +153,9 @@ LITE_OS_SEC_TEXT_INIT VOID *HalTskStackInit(UINT32 taskID, UINT32 stackSize, VOI return (VOID *)context; } -LITE_OS_SEC_TEXT_INIT UINT32 HalStartSchedule(OS_TICK_HANDLER handler) +LITE_OS_SEC_TEXT_INIT UINT32 HalStartSchedule(VOID) { (VOID)LOS_IntLock(); - UINT32 ret = HalTickStart(handler); - if (ret != LOS_OK) { - return ret; - } OsSchedStart(); HalStartToRun(); return LOS_OK; /* never return */ diff --git a/kernel/arch/arm/cortex-m33/gcc/NTZ/los_timer.c b/kernel/arch/arm/cortex-m33/gcc/NTZ/los_timer.c index 9e27972d3875d0188c86318eab0251ef9d4032ee..09802def76e10c4bd422f6e387945073d91d8981 100755 --- a/kernel/arch/arm/cortex-m33/gcc/NTZ/los_timer.c +++ b/kernel/arch/arm/cortex-m33/gcc/NTZ/los_timer.c @@ -65,7 +65,7 @@ WEAK UINT32 HalTickStart(OS_TICK_HANDLER *handler) g_sysClock = OS_SYS_CLOCK; g_cyclesPerTick = OS_SYS_CLOCK / LOSCFG_BASE_CORE_TICK_PER_SECOND; - ret = SysTick_Config(g_cyclesPerTick); + ret = SysTick_Config(LOSCFG_BASE_CORE_TICK_RESPONSE_MAX); if (ret == 1) { return LOS_ERRNO_TICK_PER_SEC_TOO_SMALL; } diff --git a/kernel/arch/arm/cortex-m33/gcc/TZ/non_secure/los_context.c b/kernel/arch/arm/cortex-m33/gcc/TZ/non_secure/los_context.c index 45fecf89aabd686504ed537c25a470da1bd5fdad..4aa333d89cc64e3f0f6b87d66a6af0d9e889fdff 100755 --- a/kernel/arch/arm/cortex-m33/gcc/TZ/non_secure/los_context.c +++ b/kernel/arch/arm/cortex-m33/gcc/TZ/non_secure/los_context.c @@ -37,6 +37,7 @@ #include "los_sched.h" #include "los_interrupt.h" #include "los_arch_timer.h" +#include "los_debug.h" /* **************************************************************************** Function : HalArchInit @@ -45,9 +46,15 @@ Output : None Return : None **************************************************************************** */ -LITE_OS_SEC_TEXT_INIT VOID HalArchInit() +LITE_OS_SEC_TEXT_INIT VOID HalArchInit(VOID) { + UINT32 ret; HalHwiInit(); + + ret = HalTickStart(OsTickHandler); + if (ret != LOS_OK) { + PRINT_ERR("Tick start failed!\n"); + } } /* **************************************************************************** @@ -150,13 +157,9 @@ LITE_OS_SEC_TEXT_INIT VOID *HalTskStackInit(UINT32 taskID, UINT32 stackSize, VOI return (VOID *)context; } -LITE_OS_SEC_TEXT_INIT UINT32 HalStartSchedule(OS_TICK_HANDLER handler) +LITE_OS_SEC_TEXT_INIT UINT32 HalStartSchedule(VOID) { (VOID)LOS_IntLock(); - UINT32 ret = HalTickStart(handler); - if (ret != LOS_OK) { - return ret; - } OsSchedStart(); HalStartToRun(); return LOS_OK; /* never return */ diff --git a/kernel/arch/arm/cortex-m33/gcc/los_context.c b/kernel/arch/arm/cortex-m33/gcc/los_context.c index 19df61ce031fc407f80bf7af843bd0955c4872ec..cf69d52eed376cfddaee569ede5305c4027b6f29 100644 --- a/kernel/arch/arm/cortex-m33/gcc/los_context.c +++ b/kernel/arch/arm/cortex-m33/gcc/los_context.c @@ -37,6 +37,7 @@ #include "los_sched.h" #include "los_interrupt.h" #include "los_arch_timer.h" +#include "los_debug.h" /* **************************************************************************** Function : HalArchInit @@ -45,9 +46,16 @@ Output : None Return : None **************************************************************************** */ -LITE_OS_SEC_TEXT_INIT VOID HalArchInit() +LITE_OS_SEC_TEXT_INIT VOID HalArchInit(VOID) { + UINT32 ret; + HalHwiInit(); + + ret = HalTickStart(OsTickHandler); + if (ret != LOS_OK) { + PRINT_ERR("Tick start failed!\n"); + } } /* **************************************************************************** @@ -146,13 +154,9 @@ LITE_OS_SEC_TEXT_INIT VOID *HalTskStackInit(UINT32 taskID, UINT32 stackSize, VOI return (VOID *)context; } -LITE_OS_SEC_TEXT_INIT UINT32 HalStartSchedule(OS_TICK_HANDLER handler) +LITE_OS_SEC_TEXT_INIT UINT32 HalStartSchedule(VOID) { (VOID)LOS_IntLock(); - UINT32 ret = HalTickStart(handler); - if (ret != LOS_OK) { - return ret; - } OsSchedStart(); HalStartToRun(); return LOS_OK; /* never return */ diff --git a/kernel/arch/arm/cortex-m33/gcc/los_timer.c b/kernel/arch/arm/cortex-m33/gcc/los_timer.c index 9e27972d3875d0188c86318eab0251ef9d4032ee..09802def76e10c4bd422f6e387945073d91d8981 100644 --- a/kernel/arch/arm/cortex-m33/gcc/los_timer.c +++ b/kernel/arch/arm/cortex-m33/gcc/los_timer.c @@ -65,7 +65,7 @@ WEAK UINT32 HalTickStart(OS_TICK_HANDLER *handler) g_sysClock = OS_SYS_CLOCK; g_cyclesPerTick = OS_SYS_CLOCK / LOSCFG_BASE_CORE_TICK_PER_SECOND; - ret = SysTick_Config(g_cyclesPerTick); + ret = SysTick_Config(LOSCFG_BASE_CORE_TICK_RESPONSE_MAX); if (ret == 1) { return LOS_ERRNO_TICK_PER_SEC_TOO_SMALL; } diff --git a/kernel/arch/arm/cortex-m33/iar/NTZ/los_context.c b/kernel/arch/arm/cortex-m33/iar/NTZ/los_context.c index 19df61ce031fc407f80bf7af843bd0955c4872ec..b058362c882ec2e5bf3f0233ac900e1593b34436 100644 --- a/kernel/arch/arm/cortex-m33/iar/NTZ/los_context.c +++ b/kernel/arch/arm/cortex-m33/iar/NTZ/los_context.c @@ -37,6 +37,7 @@ #include "los_sched.h" #include "los_interrupt.h" #include "los_arch_timer.h" +#include "los_debug.h" /* **************************************************************************** Function : HalArchInit @@ -45,9 +46,15 @@ Output : None Return : None **************************************************************************** */ -LITE_OS_SEC_TEXT_INIT VOID HalArchInit() +LITE_OS_SEC_TEXT_INIT VOID HalArchInit(VOID) { + UINT32 ret; HalHwiInit(); + + ret = HalTickStart(OsTickHandler); + if (ret != LOS_OK) { + PRINT_ERR("Tick start failed!\n"); + } } /* **************************************************************************** @@ -146,13 +153,9 @@ LITE_OS_SEC_TEXT_INIT VOID *HalTskStackInit(UINT32 taskID, UINT32 stackSize, VOI return (VOID *)context; } -LITE_OS_SEC_TEXT_INIT UINT32 HalStartSchedule(OS_TICK_HANDLER handler) +LITE_OS_SEC_TEXT_INIT UINT32 HalStartSchedule(VOID) { (VOID)LOS_IntLock(); - UINT32 ret = HalTickStart(handler); - if (ret != LOS_OK) { - return ret; - } OsSchedStart(); HalStartToRun(); return LOS_OK; /* never return */ diff --git a/kernel/arch/arm/cortex-m33/iar/NTZ/los_timer.c b/kernel/arch/arm/cortex-m33/iar/NTZ/los_timer.c index 72792526f9128b123f6a51af6cf6f4ec60e6fee5..78a9e5a175dbb057e0014a7978abe0ad919705fb 100644 --- a/kernel/arch/arm/cortex-m33/iar/NTZ/los_timer.c +++ b/kernel/arch/arm/cortex-m33/iar/NTZ/los_timer.c @@ -65,7 +65,7 @@ WEAK UINT32 HalTickStart(OS_TICK_HANDLER *handler) g_sysClock = OS_SYS_CLOCK; g_cyclesPerTick = OS_SYS_CLOCK / LOSCFG_BASE_CORE_TICK_PER_SECOND; - ret = SysTick_Config(g_cyclesPerTick); + ret = SysTick_Config(LOSCFG_BASE_CORE_TICK_RESPONSE_MAX); if (ret == 1) { return LOS_ERRNO_TICK_PER_SEC_TOO_SMALL; } diff --git a/kernel/arch/arm/cortex-m33/iar/TZ/non_secure/los_context.c b/kernel/arch/arm/cortex-m33/iar/TZ/non_secure/los_context.c index 45fecf89aabd686504ed537c25a470da1bd5fdad..4aa333d89cc64e3f0f6b87d66a6af0d9e889fdff 100644 --- a/kernel/arch/arm/cortex-m33/iar/TZ/non_secure/los_context.c +++ b/kernel/arch/arm/cortex-m33/iar/TZ/non_secure/los_context.c @@ -37,6 +37,7 @@ #include "los_sched.h" #include "los_interrupt.h" #include "los_arch_timer.h" +#include "los_debug.h" /* **************************************************************************** Function : HalArchInit @@ -45,9 +46,15 @@ Output : None Return : None **************************************************************************** */ -LITE_OS_SEC_TEXT_INIT VOID HalArchInit() +LITE_OS_SEC_TEXT_INIT VOID HalArchInit(VOID) { + UINT32 ret; HalHwiInit(); + + ret = HalTickStart(OsTickHandler); + if (ret != LOS_OK) { + PRINT_ERR("Tick start failed!\n"); + } } /* **************************************************************************** @@ -150,13 +157,9 @@ LITE_OS_SEC_TEXT_INIT VOID *HalTskStackInit(UINT32 taskID, UINT32 stackSize, VOI return (VOID *)context; } -LITE_OS_SEC_TEXT_INIT UINT32 HalStartSchedule(OS_TICK_HANDLER handler) +LITE_OS_SEC_TEXT_INIT UINT32 HalStartSchedule(VOID) { (VOID)LOS_IntLock(); - UINT32 ret = HalTickStart(handler); - if (ret != LOS_OK) { - return ret; - } OsSchedStart(); HalStartToRun(); return LOS_OK; /* never return */ diff --git a/kernel/arch/arm/cortex-m33/iar/TZ/non_secure/los_timer.c b/kernel/arch/arm/cortex-m33/iar/TZ/non_secure/los_timer.c index 7212e2c459011c55e1dced41ed5a74e75ecc25c9..29a0f4edc63045d5b0b134f7491a16559bad8664 100644 --- a/kernel/arch/arm/cortex-m33/iar/TZ/non_secure/los_timer.c +++ b/kernel/arch/arm/cortex-m33/iar/TZ/non_secure/los_timer.c @@ -65,7 +65,7 @@ WEAK UINT32 HalTickStart(OS_TICK_HANDLER *handler) g_sysClock = OS_SYS_CLOCK; g_cyclesPerTick = OS_SYS_CLOCK / LOSCFG_BASE_CORE_TICK_PER_SECOND; - ret = SysTick_Config(g_cyclesPerTick); + ret = SysTick_Config(LOSCFG_BASE_CORE_TICK_RESPONSE_MAX); if (ret == 1) { return LOS_ERRNO_TICK_PER_SEC_TOO_SMALL; } diff --git a/kernel/arch/arm/cortex-m4/gcc/los_context.c b/kernel/arch/arm/cortex-m4/gcc/los_context.c index 770ba1b0ee844cd44a2f5c4b16f76c362ae01561..895513179b1ad1780b70b81a6cc6c3bec9887e10 100644 --- a/kernel/arch/arm/cortex-m4/gcc/los_context.c +++ b/kernel/arch/arm/cortex-m4/gcc/los_context.c @@ -38,7 +38,7 @@ #include "los_interrupt.h" #include "los_arch_timer.h" #include "los_timer.h" - +#include "los_debug.h" /* **************************************************************************** Function : HalArchInit @@ -47,9 +47,16 @@ Output : None Return : None **************************************************************************** */ -LITE_OS_SEC_TEXT_INIT VOID HalArchInit() +LITE_OS_SEC_TEXT_INIT VOID HalArchInit(VOID) { + UINT32 ret; + HalHwiInit(); + + ret = HalTickStart(OsTickHandler); + if (ret != LOS_OK) { + PRINT_ERR("Tick start failed!\n"); + } } /* **************************************************************************** @@ -148,13 +155,9 @@ LITE_OS_SEC_TEXT_INIT VOID *HalTskStackInit(UINT32 taskID, UINT32 stackSize, VOI return (VOID *)context; } -LITE_OS_SEC_TEXT_INIT UINT32 HalStartSchedule(OS_TICK_HANDLER handler) +LITE_OS_SEC_TEXT_INIT UINT32 HalStartSchedule(VOID) { (VOID)LOS_IntLock(); - UINT32 ret = HalTickStart(handler); - if (ret != LOS_OK) { - return ret; - } OsSchedStart(); HalStartToRun(); return LOS_OK; /* never return */ diff --git a/kernel/arch/arm/cortex-m4/gcc/los_timer.c b/kernel/arch/arm/cortex-m4/gcc/los_timer.c index 24f9b09d9b26e1057a7bdbb282612973d0cbd6f0..008725dba13f9e9be2da817e9bb23e6aba639546 100644 --- a/kernel/arch/arm/cortex-m4/gcc/los_timer.c +++ b/kernel/arch/arm/cortex-m4/gcc/los_timer.c @@ -66,7 +66,7 @@ WEAK UINT32 HalTickStart(OS_TICK_HANDLER *handler) g_sysClock = OS_SYS_CLOCK; g_cyclesPerTick = OS_SYS_CLOCK / LOSCFG_BASE_CORE_TICK_PER_SECOND; - ret = SysTick_Config(g_cyclesPerTick); + ret = SysTick_Config(LOSCFG_BASE_CORE_TICK_RESPONSE_MAX); if (ret == 1) { return LOS_ERRNO_TICK_PER_SEC_TOO_SMALL; } diff --git a/kernel/arch/arm/cortex-m4/iar/los_context.c b/kernel/arch/arm/cortex-m4/iar/los_context.c index 770ba1b0ee844cd44a2f5c4b16f76c362ae01561..42538288a5628ad004e5409b28d84f56650e8a16 100644 --- a/kernel/arch/arm/cortex-m4/iar/los_context.c +++ b/kernel/arch/arm/cortex-m4/iar/los_context.c @@ -38,6 +38,7 @@ #include "los_interrupt.h" #include "los_arch_timer.h" #include "los_timer.h" +#include "los_debug.h" /* **************************************************************************** @@ -47,9 +48,16 @@ Output : None Return : None **************************************************************************** */ -LITE_OS_SEC_TEXT_INIT VOID HalArchInit() +LITE_OS_SEC_TEXT_INIT VOID HalArchInit(VOID) { + UINT32 ret; HalHwiInit(); + + ret = HalTickStart(OsTickHandler); + if (ret != LOS_OK) { + PRINT_ERR("Tick start failed!\n"); + return; + } } /* **************************************************************************** @@ -148,13 +156,9 @@ LITE_OS_SEC_TEXT_INIT VOID *HalTskStackInit(UINT32 taskID, UINT32 stackSize, VOI return (VOID *)context; } -LITE_OS_SEC_TEXT_INIT UINT32 HalStartSchedule(OS_TICK_HANDLER handler) +LITE_OS_SEC_TEXT_INIT UINT32 HalStartSchedule(VOID) { (VOID)LOS_IntLock(); - UINT32 ret = HalTickStart(handler); - if (ret != LOS_OK) { - return ret; - } OsSchedStart(); HalStartToRun(); return LOS_OK; /* never return */ diff --git a/kernel/arch/arm/cortex-m4/iar/los_timer.c b/kernel/arch/arm/cortex-m4/iar/los_timer.c index 70bbc091e08d9d38702e586506d95b254aee65fc..bd0cf516a8a93ec5d4113adafbde26b54bc5950b 100644 --- a/kernel/arch/arm/cortex-m4/iar/los_timer.c +++ b/kernel/arch/arm/cortex-m4/iar/los_timer.c @@ -66,7 +66,7 @@ WEAK UINT32 HalTickStart(OS_TICK_HANDLER *handler) g_sysClock = OS_SYS_CLOCK; g_cyclesPerTick = OS_SYS_CLOCK / LOSCFG_BASE_CORE_TICK_PER_SECOND; - ret = SysTick_Config(g_cyclesPerTick); + ret = SysTick_Config(LOSCFG_BASE_CORE_TICK_RESPONSE_MAX); if (ret == 1) { return LOS_ERRNO_TICK_PER_SEC_TOO_SMALL; } diff --git a/kernel/arch/arm/cortex-m7/gcc/los_context.c b/kernel/arch/arm/cortex-m7/gcc/los_context.c index 19df61ce031fc407f80bf7af843bd0955c4872ec..b058362c882ec2e5bf3f0233ac900e1593b34436 100644 --- a/kernel/arch/arm/cortex-m7/gcc/los_context.c +++ b/kernel/arch/arm/cortex-m7/gcc/los_context.c @@ -37,6 +37,7 @@ #include "los_sched.h" #include "los_interrupt.h" #include "los_arch_timer.h" +#include "los_debug.h" /* **************************************************************************** Function : HalArchInit @@ -45,9 +46,15 @@ Output : None Return : None **************************************************************************** */ -LITE_OS_SEC_TEXT_INIT VOID HalArchInit() +LITE_OS_SEC_TEXT_INIT VOID HalArchInit(VOID) { + UINT32 ret; HalHwiInit(); + + ret = HalTickStart(OsTickHandler); + if (ret != LOS_OK) { + PRINT_ERR("Tick start failed!\n"); + } } /* **************************************************************************** @@ -146,13 +153,9 @@ LITE_OS_SEC_TEXT_INIT VOID *HalTskStackInit(UINT32 taskID, UINT32 stackSize, VOI return (VOID *)context; } -LITE_OS_SEC_TEXT_INIT UINT32 HalStartSchedule(OS_TICK_HANDLER handler) +LITE_OS_SEC_TEXT_INIT UINT32 HalStartSchedule(VOID) { (VOID)LOS_IntLock(); - UINT32 ret = HalTickStart(handler); - if (ret != LOS_OK) { - return ret; - } OsSchedStart(); HalStartToRun(); return LOS_OK; /* never return */ diff --git a/kernel/arch/arm/cortex-m7/gcc/los_timer.c b/kernel/arch/arm/cortex-m7/gcc/los_timer.c index 9e27972d3875d0188c86318eab0251ef9d4032ee..09802def76e10c4bd422f6e387945073d91d8981 100644 --- a/kernel/arch/arm/cortex-m7/gcc/los_timer.c +++ b/kernel/arch/arm/cortex-m7/gcc/los_timer.c @@ -65,7 +65,7 @@ WEAK UINT32 HalTickStart(OS_TICK_HANDLER *handler) g_sysClock = OS_SYS_CLOCK; g_cyclesPerTick = OS_SYS_CLOCK / LOSCFG_BASE_CORE_TICK_PER_SECOND; - ret = SysTick_Config(g_cyclesPerTick); + ret = SysTick_Config(LOSCFG_BASE_CORE_TICK_RESPONSE_MAX); if (ret == 1) { return LOS_ERRNO_TICK_PER_SEC_TOO_SMALL; } diff --git a/kernel/arch/arm/cortex-m7/iar/los_context.c b/kernel/arch/arm/cortex-m7/iar/los_context.c index 19df61ce031fc407f80bf7af843bd0955c4872ec..b058362c882ec2e5bf3f0233ac900e1593b34436 100644 --- a/kernel/arch/arm/cortex-m7/iar/los_context.c +++ b/kernel/arch/arm/cortex-m7/iar/los_context.c @@ -37,6 +37,7 @@ #include "los_sched.h" #include "los_interrupt.h" #include "los_arch_timer.h" +#include "los_debug.h" /* **************************************************************************** Function : HalArchInit @@ -45,9 +46,15 @@ Output : None Return : None **************************************************************************** */ -LITE_OS_SEC_TEXT_INIT VOID HalArchInit() +LITE_OS_SEC_TEXT_INIT VOID HalArchInit(VOID) { + UINT32 ret; HalHwiInit(); + + ret = HalTickStart(OsTickHandler); + if (ret != LOS_OK) { + PRINT_ERR("Tick start failed!\n"); + } } /* **************************************************************************** @@ -146,13 +153,9 @@ LITE_OS_SEC_TEXT_INIT VOID *HalTskStackInit(UINT32 taskID, UINT32 stackSize, VOI return (VOID *)context; } -LITE_OS_SEC_TEXT_INIT UINT32 HalStartSchedule(OS_TICK_HANDLER handler) +LITE_OS_SEC_TEXT_INIT UINT32 HalStartSchedule(VOID) { (VOID)LOS_IntLock(); - UINT32 ret = HalTickStart(handler); - if (ret != LOS_OK) { - return ret; - } OsSchedStart(); HalStartToRun(); return LOS_OK; /* never return */ diff --git a/kernel/arch/arm/cortex-m7/iar/los_timer.c b/kernel/arch/arm/cortex-m7/iar/los_timer.c index 9e27972d3875d0188c86318eab0251ef9d4032ee..09802def76e10c4bd422f6e387945073d91d8981 100644 --- a/kernel/arch/arm/cortex-m7/iar/los_timer.c +++ b/kernel/arch/arm/cortex-m7/iar/los_timer.c @@ -65,7 +65,7 @@ WEAK UINT32 HalTickStart(OS_TICK_HANDLER *handler) g_sysClock = OS_SYS_CLOCK; g_cyclesPerTick = OS_SYS_CLOCK / LOSCFG_BASE_CORE_TICK_PER_SECOND; - ret = SysTick_Config(g_cyclesPerTick); + ret = SysTick_Config(LOSCFG_BASE_CORE_TICK_RESPONSE_MAX); if (ret == 1) { return LOS_ERRNO_TICK_PER_SEC_TOO_SMALL; } diff --git a/kernel/arch/include/los_arch.h b/kernel/arch/include/los_arch.h index af753638d72d0e4a1ec6ed915389f6710a0d1ab4..359bc7f43e1d9728c3748557b8f9d3f2f916e82b 100644 --- a/kernel/arch/include/los_arch.h +++ b/kernel/arch/include/los_arch.h @@ -33,7 +33,7 @@ #define _LOS_ARCH_H #include "los_config.h" -#include "los_compiler.h" +#include "los_timer.h" #ifdef __cplusplus #if __cplusplus diff --git a/kernel/arch/include/los_context.h b/kernel/arch/include/los_context.h index 9fc30c6215d51b5bd0d7c777d8a42abde1733891..022f2f617cbe516b9303762dd0f766842e4ceb82 100755 --- a/kernel/arch/include/los_context.h +++ b/kernel/arch/include/los_context.h @@ -105,7 +105,7 @@ LITE_OS_SEC_TEXT_MINOR NORETURN VOID HalSysExit(VOID); extern VOID HalTaskSchedule(VOID); typedef VOID (*OS_TICK_HANDLER)(VOID); -UINT32 HalStartSchedule(OS_TICK_HANDLER handler); +UINT32 HalStartSchedule(VOID); #ifdef __cplusplus #if __cplusplus diff --git a/kernel/arch/risc-v/nuclei/gcc/los_context.c b/kernel/arch/risc-v/nuclei/gcc/los_context.c index 0e1fcb0ebaeefe305c15ebd6a23da48656c98313..83fd2a495a4dfdc56a3183f57047eef219d02fdb 100644 --- a/kernel/arch/risc-v/nuclei/gcc/los_context.c +++ b/kernel/arch/risc-v/nuclei/gcc/los_context.c @@ -24,6 +24,7 @@ #include "los_timer.h" #include "los_sched.h" #include "los_interrupt.h" +#include "los_debug.h" #include "nuclei_sdk_soc.h" extern VOID HalHwiInit(VOID); @@ -40,7 +41,14 @@ extern "C" { LITE_OS_SEC_TEXT_INIT VOID HalArchInit(VOID) { + UINT32 ret; HalHwiInit(); + + ret = HalTickStart(OsTickHandler); + if (ret != LOS_OK) { + PRINT_ERR("Tick start failed!\n"); + return; + } } LITE_OS_SEC_TEXT_MINOR VOID HalSysExit(VOID) @@ -77,16 +85,9 @@ LITE_OS_SEC_TEXT_INIT VOID *HalTskStackInit(UINT32 taskID, UINT32 stackSize, VOI } extern LosTask g_losTask; -LITE_OS_SEC_TEXT_INIT UINT32 HalStartSchedule(OS_TICK_HANDLER handler) +LITE_OS_SEC_TEXT_INIT UINT32 HalStartSchedule(VOID) { - UINT32 ret; - (VOID)LOS_IntLock(); - ret = HalTickStart(handler); - if (ret != LOS_OK) { - return ret; - } - OsSchedStart(); HalStartToRun(); return LOS_OK; /* never return */ diff --git a/kernel/arch/risc-v/riscv32/gcc/los_context.c b/kernel/arch/risc-v/riscv32/gcc/los_context.c index f0a1148ce331dc94a6e72affee3df170b766b43e..e9bb51a09f20cb722559a42a1558e94d973b7ae5 100644 --- a/kernel/arch/risc-v/riscv32/gcc/los_context.c +++ b/kernel/arch/risc-v/riscv32/gcc/los_context.c @@ -36,14 +36,21 @@ #include "los_sched.h" #include "los_memory.h" #include "los_timer.h" +#include "los_debug.h" #include "soc.h" - STATIC UINT32 g_sysNeedSched = FALSE; LITE_OS_SEC_TEXT_INIT VOID HalArchInit(VOID) { + UINT32 ret; HalHwiInit(); + + ret = HalTickStart(OsTickHandler); + if (ret != LOS_OK) { + PRINT_ERR("Tick start failed!\n"); + return; + } } VOID HalIrqEndCheckNeedSched(VOID) @@ -129,14 +136,9 @@ LITE_OS_SEC_TEXT_INIT VOID *HalTskStackInit(UINT32 taskID, UINT32 stackSize, VOI return (VOID *)context; } -LITE_OS_SEC_TEXT_INIT UINT32 HalStartSchedule(OS_TICK_HANDLER handler) +LITE_OS_SEC_TEXT_INIT UINT32 HalStartSchedule(VOID) { (VOID)LOS_IntLock(); - UINT32 ret = HalTickStart(handler); - if (ret != LOS_OK) { - return ret; - } - OsSchedStart(); HalStartToRun(); return LOS_OK; /* never return */ diff --git a/kernel/arch/risc-v/riscv32/gcc/los_timer.c b/kernel/arch/risc-v/riscv32/gcc/los_timer.c index 38f27706f894799705e535b5119c920b417dc959..ffb98543cb32d23870528ad63951a0900073ca2b 100644 --- a/kernel/arch/risc-v/riscv32/gcc/los_timer.c +++ b/kernel/arch/risc-v/riscv32/gcc/los_timer.c @@ -45,7 +45,7 @@ WEAK UINT32 HalTickStart(OS_TICK_HANDLER handler) g_cyclesPerTick = g_sysClock / LOSCFG_BASE_CORE_TICK_PER_SECOND; g_intCount = 0; - HalClockInit(handler, g_cyclesPerTick); + HalClockInit(handler, LOSCFG_BASE_CORE_TICK_RESPONSE_MAX); return LOS_OK; /* never return */ } diff --git a/kernel/src/los_init.c b/kernel/src/los_init.c index 93b7e01a526f91a4a46355fcf82c3b6a3da22338..8aa848b523ad9b0f72af34e1432cc7603f15818c 100644 --- a/kernel/src/los_init.c +++ b/kernel/src/los_init.c @@ -101,7 +101,7 @@ LITE_OS_SEC_TEXT_INIT static VOID OsRegister(VOID) LITE_OS_SEC_TEXT_INIT UINT32 LOS_Start(VOID) { - return HalStartSchedule(OsTickHandler); + return HalStartSchedule(); } /***************************************************************************** diff --git a/kernel/src/los_sched.c b/kernel/src/los_sched.c index d0b274353ab3fd569ab0589adacbf5f3579b0f60..bd95f9d496a5641b0399d1b1258f92f9984ec9d4 100644 --- a/kernel/src/los_sched.c +++ b/kernel/src/los_sched.c @@ -91,10 +91,6 @@ VOID OsSchedTimerBaseReset(UINT64 currTime) UINT64 OsGetCurrSchedTimeCycle(VOID) { - if (!g_taskScheduled) { - return 0; - } - #if (LOSCFG_BASE_CORE_TICK_WTIMER == 1) return HalGetTickCycle(NULL); #else @@ -527,7 +523,9 @@ VOID LOS_SchedTickHandler(VOID) UINT64 currTime; BOOL needSched = FALSE; - LOS_ASSERT(g_taskScheduled); + if (!g_taskScheduled) { + return; + } UINT32 intSave = LOS_IntLock();