diff options
author | Paul Selkirk <paul@psgd.org> | 2017-04-29 15:44:20 -0400 |
---|---|---|
committer | Paul Selkirk <paul@psgd.org> | 2017-04-29 15:44:20 -0400 |
commit | 14282a9a1aaa1c67c11dde50086d87371ac5d6b9 (patch) | |
tree | 111e1b2390ed51f4f3070258da5123548af0170c /projects/cli-test | |
parent | 4a69b83e6c28aebec5dc2733e0cc20407b5d56e7 (diff) |
Port cli-test to the new task API.
Diffstat (limited to 'projects/cli-test')
-rw-r--r-- | projects/cli-test/Makefile | 18 | ||||
-rw-r--r-- | projects/cli-test/mgmt-cli.c | 19 | ||||
-rw-r--r-- | projects/cli-test/mgmt-test.c | 3 |
3 files changed, 11 insertions, 29 deletions
diff --git a/projects/cli-test/Makefile b/projects/cli-test/Makefile index 22c8133..0a0eb9e 100644 --- a/projects/cli-test/Makefile +++ b/projects/cli-test/Makefile @@ -13,26 +13,12 @@ OBJS = \ test-mkmif.o \ test_sdram.o -BOARD_OBJS = \ - $(TOPLEVEL)/stm-init.o \ - $(TOPLEVEL)/stm-fmc.o \ - $(TOPLEVEL)/stm-uart.o \ - $(TOPLEVEL)/syscalls.o \ - $(TOPLEVEL)/stm-rtc.o \ - $(TOPLEVEL)/spiflash_n25q128.o \ - $(TOPLEVEL)/stm-fpgacfg.o \ - $(TOPLEVEL)/stm-keystore.o \ - $(TOPLEVEL)/stm-sdram.o \ - $(TOPLEVEL)/stm-flash.o \ - $(BOARD_DIR)/TOOLCHAIN_GCC_ARM/startup_stm32f429xx_rtos.o \ - $(BOARD_DIR)/system_stm32f4xx.o \ - $(BOARD_DIR)/stm32f4xx_hal_msp.o \ - $(BOARD_DIR)/stm32f4xx_it_rtos.o +BOARD_OBJS += $(TOPLEVEL)/task.o CFLAGS += -I$(LIBCLI_SRC) -I$(LIBHAL_SRC) CFLAGS += -I$(RTOS_DIR)/rtos -I$(RTOS_DIR)/rtx/TARGET_CORTEX_M -LIBS += $(LIBCLI_BLD)/libcli.a $(LIBHAL_BLD)/libhal.a $(LIBTFM_BLD)/libtfm.a $(RTOS_DIR)/librtos.a +LIBS += $(LIBCLI_BLD)/libcli.a $(LIBHAL_BLD)/libhal.a $(LIBTFM_BLD)/libtfm.a all: $(TEST:=.elf) 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(); diff --git a/projects/cli-test/mgmt-test.c b/projects/cli-test/mgmt-test.c index 59f0b6e..54021a5 100644 --- a/projects/cli-test/mgmt-test.c +++ b/projects/cli-test/mgmt-test.c @@ -37,6 +37,7 @@ #include "stm-sdram.h" #include "stm-fmc.h" #include "stm-fpgacfg.h" +#include "task.h" #include "mgmt-cli.h" #include "mgmt-test.h" @@ -131,7 +132,7 @@ static int cmd_test_fmc(struct cli_def *cli, const char *command, char *argv[], led_on(LED_BLUE); while (! fpgacfg_check_done()) { for (i = 0; i < 4; i++) { - HAL_Delay(500); + task_delay(500); led_toggle(LED_BLUE); } } |