From 14282a9a1aaa1c67c11dde50086d87371ac5d6b9 Mon Sep 17 00:00:00 2001 From: Paul Selkirk Date: Sat, 29 Apr 2017 15:44:20 -0400 Subject: Port cli-test to the new task API. --- projects/cli-test/mgmt-cli.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) (limited to 'projects/cli-test/mgmt-cli.c') 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(); -- cgit v1.2.3