Skip to content

Instantly share code, notes, and snippets.

@Thalhammer
Last active November 6, 2018 14:26
Show Gist options
  • Save Thalhammer/34f9dd5785d1ad05fc5cbf533a41eaab to your computer and use it in GitHub Desktop.
Save Thalhammer/34f9dd5785d1ad05fc5cbf533a41eaab to your computer and use it in GitHub Desktop.
Sample Sleep
#include <stdlib.h>
#include "qapi/qapi_types.h"
#include "qapi/qapi.h"
#include "qapi/qapi_status.h"
#include "qapi_timer.h"
#include "util/debug.h"
#include "util/trace.h"
#include "tx_api.h"
#define TRACE_TAG "main"
int i;
void timer_test_cb(uint32_t udata) {
TRACE("cb %d\r\n", i++);
}
int dam_app_start(void)
{
i=0;
if(debug_init() != QAPI_OK) return TX_SUCCESS;
qapi_TIMER_handle_t timer_handle;
qapi_TIMER_define_attr_t timer_def_attr;
timer_def_attr.cb_type = QAPI_TIMER_FUNC1_CB_TYPE; //notification type
timer_def_attr.sigs_func_ptr = &timer_test_cb; //callback to call when timer expires
timer_def_attr.sigs_mask_data = 0x1; //this data will be returned in the callback
timer_def_attr.deferrable = false; //set to true for non-deferrable timer
//define the timer. Note: This call allocates memory and hence qapi_Timer_Undef()
//should be called whenever the timer usage is done.
int res = qapi_Timer_Def( &timer_handle, &timer_def_attr);
if(res != 0) {
TRACE("failed to def timer: %d\r\n", res);
return TX_SUCCESS;
}
else TRACE("timer defined\r\n");
qapi_TIMER_set_attr_t timer_set_attr;
timer_set_attr.reload = 1000;
timer_set_attr.time = 1000;
timer_set_attr.unit = QAPI_TIMER_UNIT_MSEC;
res = qapi_Timer_Set(timer_handle, &timer_set_attr);
if(res != 0){
TRACE("failed to set timer: %d\r\n", res);
}
else TRACE("timer set\r\n");
TRACE("sleep\r\n");
res = qapi_Timer_Sleep(10, QAPI_TIMER_UNIT_SEC, false);
TRACE("res=%d\r\n", res);
res = qapi_Timer_Stop(timer_handle);
if(res != 0) TRACE("failed to stop timer: %d\r\n", res);
else TRACE("timer stopped\r\n");
TRACE("sleep\r\n");
res = qapi_Timer_Sleep(10, QAPI_TIMER_UNIT_SEC, false);
TRACE("res=%d\r\n", res);
TRACE("done\r\n");
return TX_SUCCESS;
}
// Timestamps added by terminal on pc
// Second sleep seems to never return
20181106-15:19:09.402427 [main]timer defined
20181106-15:19:09.402690 [main]timer set
20181106-15:19:09.402741 [main]sleep
20181106-15:19:10.399304 [main]cb 0
20181106-15:19:11.399009 [main]cb 1
20181106-15:19:12.399278 [main]cb 2
20181106-15:19:13.399267 [main]cb 3
20181106-15:19:14.399246 [main]cb 4
20181106-15:19:15.399285 [main]cb 5
20181106-15:19:16.399269 [main]cb 6
20181106-15:19:17.399257 [main]cb 7
20181106-15:19:18.399351 [main]cb 8
20181106-15:19:19.399253 [main]cb 9
20181106-15:19:20.399322 [main]cb 10
20181106-15:19:21.399218 [main]cb 11
20181106-15:19:22.399195 [main]cb 12
20181106-15:19:23.399218 [main]cb 13
20181106-15:19:24.399217 [main]cb 14
20181106-15:19:25.399112 [main]cb 15
20181106-15:19:26.399163 [main]cb 16
20181106-15:19:27.399165 [main]cb 17
20181106-15:19:28.399160 [main]cb 18
20181106-15:19:29.400246 [main]cb 19
20181106-15:19:30.400251 [main]cb 20
20181106-15:19:31.400268 [main]cb 21
20181106-15:19:32.400191 [main]cb 22
20181106-15:19:33.400105 [main]cb 23
20181106-15:19:34.400216 [main]cb 24
20181106-15:19:35.400188 [main]cb 25
20181106-15:19:36.400226 [main]cb 26
20181106-15:19:37.399130 [main]cb 27
20181106-15:19:38.399197 [main]cb 28
20181106-15:19:39.399193 [main]cb 29
20181106-15:19:40.400150 [main]cb 30
20181106-15:19:41.400261 [main]cb 31
20181106-15:19:42.400262 [main]cb 32
20181106-15:19:43.399166 [main]cb 33
20181106-15:19:44.399071 [main]cb 34
20181106-15:19:45.399009 [main]cb 35
20181106-15:19:46.400162 [main]cb 36
20181106-15:19:47.400324 [main]cb 37
20181106-15:19:48.400251 [main]cb 38
20181106-15:19:49.400171 [main]cb 39
20181106-15:19:50.400171 [main]cb 40
20181106-15:19:51.400095 [main]cb 41
20181106-15:19:52.400187 [main]cb 42
20181106-15:19:53.400197 [main]cb 43
20181106-15:19:54.400233 [main]cb 44
20181106-15:19:55.400156 [main]cb 45
20181106-15:19:56.400118 [main]cb 46
20181106-15:19:57.400205 [main]cb 47
20181106-15:19:58.400183 [main]cb 48
20181106-15:19:59.400241 [main]cb 49
20181106-15:20:00.400253 [main]cb 50
20181106-15:20:01.400202 [main]cb 51
20181106-15:20:02.400184 [main]cb 52
20181106-15:20:03.400206 [main]cb 53
20181106-15:20:04.400156 [main]cb 54
20181106-15:20:05.400219 [main]cb 55
20181106-15:20:06.400229 [main]cb 56
20181106-15:20:07.400084 [main]cb 57
20181106-15:20:08.400083 [main]cb 58
20181106-15:20:09.400174 [main]cb 59
20181106-15:20:10.400199 [main]cb 60
20181106-15:20:11.400132 [main]cb 61
20181106-15:20:12.400130 [main]cb 62
20181106-15:20:13.400130 [main]cb 63
20181106-15:20:14.400132 [main]cb 64
20181106-15:20:15.399161 [main]cb 65
20181106-15:20:16.399115 [main]cb 66
20181106-15:20:17.399079 [main]cb 67
20181106-15:20:18.400174 [main]cb 68
20181106-15:20:19.400088 [main]cb 69
20181106-15:20:20.400079 [main]cb 70
20181106-15:20:21.400059 [main]cb 71
20181106-15:20:22.400235 [main]cb 72
20181106-15:20:23.400180 [main]cb 73
20181106-15:20:24.400189 [main]cb 74
20181106-15:20:25.400178 [main]cb 75
20181106-15:20:26.400119 [main]cb 76
20181106-15:20:27.400119 [main]cb 77
20181106-15:20:28.400065 [main]cb 78
20181106-15:20:29.400212 [main]cb 79
20181106-15:20:30.400085 [main]cb 80
20181106-15:20:31.400134 [main]cb 81
20181106-15:20:32.400053 [main]cb 82
20181106-15:20:33.400126 [main]cb 83
20181106-15:20:34.400053 [main]cb 84
20181106-15:20:35.400166 [main]cb 85
20181106-15:20:36.400081 [main]cb 86
20181106-15:20:37.400047 [main]cb 87
20181106-15:20:38.400079 [main]cb 88
20181106-15:20:39.400037 [main]cb 89
20181106-15:20:40.400151 [main]cb 90
20181106-15:20:41.400043 [main]cb 91
20181106-15:20:42.400038 [main]cb 92
20181106-15:20:43.400045 [main]cb 93
20181106-15:20:44.400122 [main]cb 94
20181106-15:20:45.400091 [main]cb 95
20181106-15:20:46.400143 [main]cb 96
20181106-15:20:47.400047 [main]cb 97
20181106-15:20:48.399957 [main]cb 98
20181106-15:20:49.400001 [main]cb 99
20181106-15:20:50.400204 [main]cb 100
20181106-15:20:51.400224 [main]cb 101
20181106-15:20:52.404409 [main]cb 102
20181106-15:20:52.404529 [main]res=0
20181106-15:20:52.404572 [main]timer stopped
20181106-15:20:52.404597 [main]sleep
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment