[Cryptech-Commits] [sw/stm32] 03/05: Port cli-test to the new task API.
git at cryptech.is
git at cryptech.is
Sat Apr 29 19:55:20 UTC 2017
This is an automated email from the git hooks/post-receive script.
paul at psgd.org pushed a commit to branch no-rtos
in repository sw/stm32.
commit 14282a9a1aaa1c67c11dde50086d87371ac5d6b9
Author: Paul Selkirk <paul at psgd.org>
AuthorDate: Sat Apr 29 15:44:20 2017 -0400
Port cli-test to the new task API.
---
projects/cli-test/Makefile | 18 ++----------------
projects/cli-test/mgmt-cli.c | 19 +++++++------------
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);
}
}
More information about the Commits
mailing list