aboutsummaryrefslogtreecommitdiff
path: root/projects/cli-test/mgmt-cli.c
diff options
context:
space:
mode:
authorPaul Selkirk <paul@psgd.org>2017-04-29 15:44:20 -0400
committerPaul Selkirk <paul@psgd.org>2017-04-29 15:44:20 -0400
commit14282a9a1aaa1c67c11dde50086d87371ac5d6b9 (patch)
tree111e1b2390ed51f4f3070258da5123548af0170c /projects/cli-test/mgmt-cli.c
parent4a69b83e6c28aebec5dc2733e0cc20407b5d56e7 (diff)
Port cli-test to the new task API.
Diffstat (limited to 'projects/cli-test/mgmt-cli.c')
-rw-r--r--projects/cli-test/mgmt-cli.c19
1 files changed, 7 insertions, 12 deletions
diff --git a/projects/cli-test/mgmt-cli.c b/projects/cli-test/mgmt-cli.c
index b513ddc..d652b03 100644
--- a/projects/cli-test/mgmt-cli.c
+++ b/projects/cli-test/mgmt-cli.c
@@ -3,7 +3,7 @@
* ---------
* Management CLI code.
*
- * Copyright (c) 2016, NORDUnet A/S All rights reserved.
+ * Copyright (c) 2016-2017, NORDUnet A/S All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -36,11 +36,10 @@
/* Rename both CMSIS HAL_OK and libhal HAL_OK to disambiguate */
#define HAL_OK CMSIS_HAL_OK
-#include "cmsis_os.h"
-
#include "stm-init.h"
#include "stm-uart.h"
#include "stm-led.h"
+#include "task.h"
#include "mgmt-cli.h"
#include "mgmt-fpga.h"
@@ -55,6 +54,8 @@
#include "hal.h"
#undef HAL_OK
+static tcb_t *cli_task;
+
#ifndef CLI_UART_RECVBUF_SIZE
#define CLI_UART_RECVBUF_SIZE 256
#endif
@@ -95,18 +96,12 @@ static ringbuf_t uart_ringbuf;
/* current character received from UART */
static uint8_t uart_rx;
-/* Semaphore to inform uart_cli_read that there's a new character.
- */
-osSemaphoreId uart_sem;
-osSemaphoreDef(uart_sem);
-
/* Callback for HAL_UART_Receive_DMA().
*/
void HAL_UART1_RxCpltCallback(UART_HandleTypeDef *huart)
{
ringbuf_write_char(&uart_ringbuf, uart_rx);
- osSemaphoreRelease(uart_sem);
- HAL_UART_Receive_DMA(huart, &uart_rx, 1);
+ task_wake(cli_task);
}
static void uart_cli_print(struct cli_def *cli __attribute__ ((unused)), const char *buf)
@@ -120,7 +115,7 @@ static ssize_t uart_cli_read(struct cli_def *cli __attribute__ ((unused)), void
{
for (int i = 0; i < count; ++i) {
while (ringbuf_read_char(&uart_ringbuf, (uint8_t *)(buf + i)) == 0)
- osSemaphoreWait(uart_sem, osWaitForever);
+ task_sleep();
}
return (ssize_t)count;
}
@@ -173,7 +168,7 @@ static int check_auth(const char *username, const char *password)
int cli_main(void)
{
- uart_sem = osSemaphoreCreate(osSemaphore(uart_sem), 0);
+ cli_task = task_get_tcb();
struct cli_def *cli;
cli = mgmt_cli_init();