Skip to content

Commit 4fcc711

Browse files
author
Mikolaj Matalowski
committed
Add CAN interface, add USART interface (not tested), modify binary semaphore implementation, modify RDP timeouts
1 parent bee9a0a commit 4fcc711

File tree

16 files changed

+646
-798
lines changed

16 files changed

+646
-798
lines changed

Makefile

Lines changed: 92 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -28,19 +28,15 @@ CSP_BUFFER_ZERO_CLEAR ?= 1
2828
CSP_PHOENIX ?= 1 # Assumed for this Makefile
2929

3030
# CSP Size Parameters (from CMake cache variables)
31-
CSP_QFIFO_LEN ?= 15
31+
CSP_QFIFO_LEN ?= 16
3232
CSP_PORT_MAX_BIND ?= 16
3333
CSP_CONN_RXQUEUE_LEN ?= 16
3434
CSP_CONN_MAX ?= 8
3535
CSP_BUFFER_SIZE ?= 256
36-
CSP_BUFFER_COUNT ?= 15
36+
CSP_BUFFER_COUNT ?= 256
3737
CSP_RDP_MAX_WINDOW ?= 5
3838
CSP_RTABLE_SIZE ?= 10
3939

40-
CSP_BUFFER_SIZE = 100
41-
CSP_BUFFER_COUNT = 10
42-
CSP_CONN_MAX = 10
43-
4440

4541

4642
# Source and Build Directories
@@ -57,14 +53,16 @@ LOCAL_SRCS = $(filter-out $(SRCDIR)/csp_yaml.c,$(wildcard $(SRCDIR)/*.c)) \
5753
$(SRCDIR)/arch/posix/pthread_queue.c \
5854
$(wildcard $(SRCDIR)/interfaces/*.c) \
5955
$(wildcard $(SRCDIR)/crypto/*.c) \
60-
$(SRCDIR)/drivers/can/can_grlibCan.c
56+
$(SRCDIR)/drivers/can/can_grlibCan.c \
57+
$(SRCDIR)/drivers/usart/usart_grlib.c \
58+
$(SRCDIR)/drivers/usart/usart_kiss.c
6159

6260
# $(SRCDIR)/csp_rtable_cidr.c \
6361
6462
# Compiler Flags
6563
# Removed: -Wpedantic
6664
LOCAL_CFLAGS = -std=c11 -Wall -Wextra -Wshadow -Wcast-align \
67-
-Wpointer-arith -Wwrite-strings -Wno-unused-parameter \
65+
-Wpointer-arith -Wwrite-strings -Wno-unused-parameter -O0\
6866
-DCSP_VERSION_MAJOR=2 -DCSP_VERSION_MINOR=1 \
6967
-Wno-undef \
7068
-Isrc/arch/posix -Isrc -Isrc/interfaces -Isrc/crypto -Iinclude/csp/drivers
@@ -86,10 +84,11 @@ LOCAL_CFLAGS += \
8684
-DCSP_CONN_RXQUEUE_LEN=$(CSP_CONN_RXQUEUE_LEN) \
8785
-DCSP_BUFFER_SIZE=$(CSP_BUFFER_SIZE) \
8886
-DCSP_BUFFER_COUNT=$(CSP_BUFFER_COUNT)\
89-
-DCSP_CONN_MAX=$(CSP_CONN_MAX) \
9087
-DCSP_RDP_MAX_WINDOW=$(CSP_RDP_MAX_WINDOW) \
9188
-DCSP_RTABLE_SIZE=$(CSP_RTABLE_SIZE)
9289

90+
91+
#-DCSP_CONN_MAX=$(CSP_CONN_MAX)
9392
include $(static-lib.mk)
9493

9594
NAME := libcsp-test-loopback
@@ -118,65 +117,87 @@ LOCAL_CFLAGS += \
118117
LOCAL_HEADERS_DIR := nothing
119118
include $(binary.mk)
120119

121-
# NAME := libcsp-test-server
122-
# LOCAL_SRCS = examples/csp_phoenix_server_test.c
123-
# DEP_LIBS := libcsp
124-
# LIBS = grlib-can-core
125-
# LOCAL_CFLAGS = -Wno-undef
126-
# LOCAL_CFLAGS += \
127-
# -DCSP_REPRODUCIBLE_BUILDS=$(CSP_REPRODUCIBLE_BUILDS) \
128-
# -DCSP_HAVE_STDIO=$(CSP_HAVE_STDIO) \
129-
# -DCSP_ENABLE_CSP_PRINT=$(CSP_ENABLE_CSP_PRINT) \
130-
# -DCSP_PRINT_STDIO=$(CSP_PRINT_STDIO) \
131-
# -DCSP_USE_RDP=$(CSP_USE_RDP) \
132-
# -DCSP_USE_HMAC=$(CSP_USE_HMAC) \
133-
# -DCSP_USE_PROMISC=$(CSP_USE_PROMISC) \
134-
# -DCSP_USE_RTABLE=$(CSP_USE_RTABLE) \
135-
# -DCSP_BUFFER_ZERO_CLEAR=$(CSP_BUFFER_ZERO_CLEAR) \
136-
# -DCSP_PHOENIX=$(CSP_PHOENIX) \
137-
# -DCSP_QFIFO_LEN=$(CSP_QFIFO_LEN) \
138-
# -DCSP_PORT_MAX_BIND=$(CSP_PORT_MAX_BIND) \
139-
# -DCSP_CONN_RXQUEUE_LEN=$(CSP_CONN_RXQUEUE_LEN) \
140-
# -DCSP_BUFFER_SIZE=$(CSP_BUFFER_SIZE) \
141-
# -DCSP_BUFFER_COUNT=$(CSP_BUFFER_COUNT)\
142-
# -DCSP_CONN_MAX=$(CSP_CONN_MAX) \
143-
# -DCSP_RDP_MAX_WINDOW=$(CSP_RDP_MAX_WINDOW) \
144-
# -DCSP_RTABLE_SIZE=$(CSP_RTABLE_SIZE)
145-
# LOCAL_HEADERS_DIR := nothing
146-
# include $(binary.mk)
147-
148-
# NAME := libcsp-test-client
149-
# LOCAL_SRCS = examples/csp_phoenix_client_test.c
150-
# DEP_LIBS := libcsp
151-
# LIBS = grlib-can-core
152-
# LOCAL_CFLAGS = -Wno-undef
153-
# LOCAL_CFLAGS += \
154-
# -DCSP_REPRODUCIBLE_BUILDS=$(CSP_REPRODUCIBLE_BUILDS) \
155-
# -DCSP_HAVE_STDIO=$(CSP_HAVE_STDIO) \
156-
# -DCSP_ENABLE_CSP_PRINT=$(CSP_ENABLE_CSP_PRINT) \
157-
# -DCSP_PRINT_STDIO=$(CSP_PRINT_STDIO) \
158-
# -DCSP_USE_RDP=$(CSP_USE_RDP) \
159-
# -DCSP_USE_HMAC=$(CSP_USE_HMAC) \
160-
# -DCSP_USE_PROMISC=$(CSP_USE_PROMISC) \
161-
# -DCSP_USE_RTABLE=$(CSP_USE_RTABLE) \
162-
# -DCSP_BUFFER_ZERO_CLEAR=$(CSP_BUFFER_ZERO_CLEAR) \
163-
# -DCSP_PHOENIX=$(CSP_PHOENIX) \
164-
# -DCSP_QFIFO_LEN=$(CSP_QFIFO_LEN) \
165-
# -DCSP_PORT_MAX_BIND=$(CSP_PORT_MAX_BIND) \
166-
# -DCSP_CONN_RXQUEUE_LEN=$(CSP_CONN_RXQUEUE_LEN) \
167-
# -DCSP_BUFFER_SIZE=$(CSP_BUFFER_SIZE) \
168-
# -DCSP_BUFFER_COUNT=$(CSP_BUFFER_COUNT)\
169-
# -DCSP_CONN_MAX=$(CSP_CONN_MAX) \
170-
# -DCSP_RDP_MAX_WINDOW=$(CSP_RDP_MAX_WINDOW) \
171-
# -DCSP_RTABLE_SIZE=$(CSP_RTABLE_SIZE)
172-
# LOCAL_HEADERS_DIR := nothing
173-
# include $(binary.mk)
174-
175-
176-
all: libcsp libcsp-test-loopback
177-
install: $(patsubst %,%-install,libcsp) $(patsubst %,%-install,libcsp-test-loopback)
178-
clean: $(patsubst %,%-clean,libcsp) $(patsubst %,%-clean,libcsp-test-loopback)
179-
180-
# all: libcsp libcsp-test-loopback libcsp-test-server libcsp-test-client
181-
# install: $(patsubst %,%-install,libcsp) $(patsubst %,%-install,libcsp-test-loopback) $(patsubst %,%-install,libcsp-test-server) $(patsubst %,%-install,libcsp-test-client)
182-
# clean: $(patsubst %,%-clean,libcsp) $(patsubst %,%-clean,libcsp-test-loopback) $(patsubst %,%-clean,libcsp-test-server) $(patsubst %,%-install,libcsp-test-client)
120+
121+
NAME := uart-test
122+
LOCAL_SRCS = examples/csp_phoenix_uart.c
123+
LOCAL_CFLAGS = -Wno-undef
124+
LOCAL_CFLAGS += \
125+
-DCSP_REPRODUCIBLE_BUILDS=$(CSP_REPRODUCIBLE_BUILDS) \
126+
-DCSP_HAVE_STDIO=$(CSP_HAVE_STDIO) \
127+
-DCSP_ENABLE_CSP_PRINT=$(CSP_ENABLE_CSP_PRINT) \
128+
-DCSP_PRINT_STDIO=$(CSP_PRINT_STDIO) \
129+
-DCSP_USE_RDP=$(CSP_USE_RDP) \
130+
-DCSP_USE_HMAC=$(CSP_USE_HMAC) \
131+
-DCSP_USE_PROMISC=$(CSP_USE_PROMISC) \
132+
-DCSP_USE_RTABLE=$(CSP_USE_RTABLE) \
133+
-DCSP_BUFFER_ZERO_CLEAR=$(CSP_BUFFER_ZERO_CLEAR) \
134+
-DCSP_PHOENIX=$(CSP_PHOENIX) \
135+
-DCSP_QFIFO_LEN=$(CSP_QFIFO_LEN) \
136+
-DCSP_PORT_MAX_BIND=$(CSP_PORT_MAX_BIND) \
137+
-DCSP_CONN_RXQUEUE_LEN=$(CSP_CONN_RXQUEUE_LEN) \
138+
-DCSP_BUFFER_SIZE=$(CSP_BUFFER_SIZE) \
139+
-DCSP_BUFFER_COUNT=$(CSP_BUFFER_COUNT)\
140+
-DCSP_CONN_MAX=$(CSP_CONN_MAX) \
141+
-DCSP_RDP_MAX_WINDOW=$(CSP_RDP_MAX_WINDOW) \
142+
-DCSP_RTABLE_SIZE=$(CSP_RTABLE_SIZE)
143+
LOCAL_HEADERS_DIR := nothing
144+
include $(binary.mk)
145+
146+
147+
NAME = csp-rdp-test-server
148+
LOCAL_SRCS = examples/csp_phoenix_test_rdp_server.c
149+
LIBS := grlib-can-core libcsp
150+
LOCAL_CFLAGS = -Wno-undef
151+
LOCAL_CFLAGS += \
152+
-DCSP_REPRODUCIBLE_BUILDS=$(CSP_REPRODUCIBLE_BUILDS) \
153+
-DCSP_HAVE_STDIO=$(CSP_HAVE_STDIO) \
154+
-DCSP_ENABLE_CSP_PRINT=$(CSP_ENABLE_CSP_PRINT) \
155+
-DCSP_PRINT_STDIO=$(CSP_PRINT_STDIO) \
156+
-DCSP_USE_RDP=$(CSP_USE_RDP) \
157+
-DCSP_USE_HMAC=$(CSP_USE_HMAC) \
158+
-DCSP_USE_PROMISC=$(CSP_USE_PROMISC) \
159+
-DCSP_USE_RTABLE=$(CSP_USE_RTABLE) \
160+
-DCSP_BUFFER_ZERO_CLEAR=$(CSP_BUFFER_ZERO_CLEAR) \
161+
-DCSP_PHOENIX=$(CSP_PHOENIX) \
162+
-DCSP_QFIFO_LEN=$(CSP_QFIFO_LEN) \
163+
-DCSP_PORT_MAX_BIND=$(CSP_PORT_MAX_BIND) \
164+
-DCSP_CONN_RXQUEUE_LEN=$(CSP_CONN_RXQUEUE_LEN) \
165+
-DCSP_BUFFER_SIZE=$(CSP_BUFFER_SIZE) \
166+
-DCSP_BUFFER_COUNT=$(CSP_BUFFER_COUNT)\
167+
-DCSP_CONN_MAX=$(CSP_CONN_MAX) \
168+
-DCSP_RDP_MAX_WINDOW=$(CSP_RDP_MAX_WINDOW) \
169+
-DCSP_RTABLE_SIZE=$(CSP_RTABLE_SIZE)
170+
LOCAL_HEADERS_DIR := nothing
171+
include $(binary.mk)
172+
173+
174+
NAME = csp-rdp-test-client
175+
LOCAL_SRCS = examples/csp_phoenix_test_rdp_client.c
176+
LIBS := grlib-can-core libcsp
177+
LOCAL_CFLAGS = -Wno-undef
178+
LOCAL_CFLAGS += \
179+
-DCSP_REPRODUCIBLE_BUILDS=$(CSP_REPRODUCIBLE_BUILDS) \
180+
-DCSP_HAVE_STDIO=$(CSP_HAVE_STDIO) \
181+
-DCSP_ENABLE_CSP_PRINT=$(CSP_ENABLE_CSP_PRINT) \
182+
-DCSP_PRINT_STDIO=$(CSP_PRINT_STDIO) \
183+
-DCSP_USE_RDP=$(CSP_USE_RDP) \
184+
-DCSP_USE_HMAC=$(CSP_USE_HMAC) \
185+
-DCSP_USE_PROMISC=$(CSP_USE_PROMISC) \
186+
-DCSP_USE_RTABLE=$(CSP_USE_RTABLE) \
187+
-DCSP_BUFFER_ZERO_CLEAR=$(CSP_BUFFER_ZERO_CLEAR) \
188+
-DCSP_PHOENIX=$(CSP_PHOENIX) \
189+
-DCSP_QFIFO_LEN=$(CSP_QFIFO_LEN) \
190+
-DCSP_PORT_MAX_BIND=$(CSP_PORT_MAX_BIND) \
191+
-DCSP_CONN_RXQUEUE_LEN=$(CSP_CONN_RXQUEUE_LEN) \
192+
-DCSP_BUFFER_SIZE=$(CSP_BUFFER_SIZE) \
193+
-DCSP_BUFFER_COUNT=$(CSP_BUFFER_COUNT)\
194+
-DCSP_CONN_MAX=$(CSP_CONN_MAX) \
195+
-DCSP_RDP_MAX_WINDOW=$(CSP_RDP_MAX_WINDOW) \
196+
-DCSP_RTABLE_SIZE=$(CSP_RTABLE_SIZE)
197+
LOCAL_HEADERS_DIR := nothing
198+
include $(binary.mk)
199+
200+
201+
all: libcsp libcsp-test-loopback uart-test csp-rdp-test-client csp-rdp-test-server
202+
install: $(patsubst %,%-install,libcsp) $(patsubst %,%-install,libcsp-test-loopback) $(patsubst %,%-install,uart-test) $(patsubst %,%-install,csp-rdp-test-server) $(patsubst %,%-install,csp-rdp-test-client)
203+
clean: $(patsubst %,%-clean,libcsp) $(patsubst %,%-clean,libcsp-test-loopback) $(patsubst %,%-install,uart-test) $(patsubst %,%-install,csp-rdp-test-server) $(patsubst %,%-install,csp-rdp-test-client)

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ message/connection pools.
1515
The protocol is based on an very lightweight header containing both transport and
1616
network-layer information. Its implementation is designed for, but not
1717
limited to, embedded systems with very limited CPU and memory resources.
18-
The implementation is written in GNU C and is currently ported to run on FreeRTOS, Zephyr
19-
and Linux (POSIX).
18+
The implementation is written in GNU C and is currently ported to run on FreeRTOS, Zephyr,
19+
Linux (POSIX) and Phoenix RTOS.
2020

2121
The idea is to give sub-system developers of cubesats the same features
2222
of a TCP/IP stack, but without adding the huge overhead of the IP

0 commit comments

Comments
 (0)