[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