diff options
author | Vincent Palatin <vpalatin@chromium.org> | 2011-12-07 18:58:43 +0000 |
---|---|---|
committer | Vincent Palatin <vpalatin@chromium.org> | 2011-12-07 19:10:02 +0000 |
commit | e24fa592d2a215d8ae67917c1d89e68cdf847a03 (patch) | |
tree | 47fbe4c55e7f4089cad7d619eded337da3bae999 /test/pingpong.c | |
parent | 6396911897e4cd40f52636d710cee2865acf15e3 (diff) | |
download | chrome-ec-e24fa592d2a215d8ae67917c1d89e68cdf847a03.tar.gz |
Initial sources import 3/3
source files mainly done by Vincent.
Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
Change-Id: Ic2d1becd400c9b4b4a14d4a243af1bdf77d9c1e2
Diffstat (limited to 'test/pingpong.c')
-rw-r--r-- | test/pingpong.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/test/pingpong.c b/test/pingpong.c new file mode 100644 index 0000000000..18115060d3 --- /dev/null +++ b/test/pingpong.c @@ -0,0 +1,43 @@ +/* Copyright (c) 2011 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + * Copyright 2011 Google Inc. + * + * Tasks for scheduling test. + */ + +#include "common.h" +#include "uart.h" +#include "task.h" +#include "timer.h" + +int TaskAbc(void *data) +{ + char letter = (char)(unsigned)data; + char string[2] = {letter, '\0' }; + task_id_t next = task_get_current() + 1; + if (next > TASK_ID_TESTC) + next = TASK_ID_TESTA; + + uart_printf("\n[starting Task %c]\n", letter); + + while (1) { + uart_puts(string); + uart_flush_output(); + task_send_msg(next, TASK_ID_CURRENT, 1); + } + + return EC_SUCCESS; +} + +int TaskTick(void *data) +{ + uart_set_console_mode(1); + uart_printf("\n[starting Task T]\n"); + /* Print T every tick */ + while (1) { + /* Wait for timer interrupt message */ + usleep(3000); + uart_puts("T\n"); + } +} |