kernel_perf: update to 2.5.1 version

This commit is contained in:
mculover666
2022-06-02 17:01:58 +08:00
parent e38c8775ac
commit 86bc533bb8
31 changed files with 495 additions and 91 deletions

View File

@@ -136,6 +136,10 @@ __API__ k_err_t tos_timer_create(k_timer_t *tmr,
TOS_OBJ_INIT(tmr, KNL_OBJ_TYPE_TIMER);
#if TOS_CFG_OBJ_DYNAMIC_CREATE_EN > 0u
knl_object_alloc_set_static(&tmr->knl_obj);
#endif
return K_ERR_NONE;
}
@@ -144,6 +148,12 @@ __API__ k_err_t tos_timer_destroy(k_timer_t *tmr)
TOS_PTR_SANITY_CHECK(tmr);
TOS_OBJ_VERIFY(tmr, KNL_OBJ_TYPE_TIMER);
#if TOS_CFG_OBJ_DYNAMIC_CREATE_EN > 0u
if (!knl_object_alloc_is_static(&tmr->knl_obj)) {
return K_ERR_OBJ_INVALID_ALLOC_TYPE;
}
#endif
if (tmr->state == TIMER_STATE_UNUSED) {
return K_ERR_TIMER_INACTIVE;
}
@@ -153,9 +163,73 @@ __API__ k_err_t tos_timer_destroy(k_timer_t *tmr)
}
timer_reset(tmr);
#if TOS_CFG_OBJ_DYNAMIC_CREATE_EN > 0u
knl_object_alloc_reset(&tmr->knl_obj);
#endif
return K_ERR_NONE;
}
#if TOS_CFG_OBJ_DYNAMIC_CREATE_EN > 0u
__API__ k_err_t tos_timer_create_dyn(k_timer_t **tmr,
k_tick_t delay,
k_tick_t period,
k_timer_callback_t callback,
void *cb_arg,
k_opt_t opt)
{
k_err_t err;
k_timer_t *the_timer;
TOS_PTR_SANITY_CHECK(tmr);
TOS_PTR_SANITY_CHECK(callback);
the_timer = tos_mmheap_calloc(1, sizeof(k_timer_t));
if (!the_timer) {
return K_ERR_OUT_OF_MEMORY;
}
err = tos_timer_create(the_timer, delay, period, callback, cb_arg, opt);
if (err != K_ERR_NONE) {
tos_mmheap_free(the_timer);
return err;
}
knl_object_alloc_set_dynamic(&the_timer->knl_obj);
*tmr = the_timer;
return K_ERR_NONE;
}
__API__ k_err_t tos_timer_destroy_dyn(k_timer_t *tmr)
{
TOS_PTR_SANITY_CHECK(tmr);
TOS_OBJ_VERIFY(tmr, KNL_OBJ_TYPE_TIMER);
if (!knl_object_alloc_is_dynamic(&tmr->knl_obj)) {
return K_ERR_OBJ_INVALID_ALLOC_TYPE;
}
if (tmr->state == TIMER_STATE_UNUSED) {
return K_ERR_TIMER_INACTIVE;
}
if (tmr->state == TIMER_STATE_RUNNING) {
timer_takeoff(tmr);
}
timer_reset(tmr);
tos_mmheap_free(tmr);
return K_ERR_NONE;
}
#endif
__API__ k_err_t tos_timer_start(k_timer_t *tmr)
{
TOS_PTR_SANITY_CHECK(tmr);