Skip to content

Commit 5ff668e

Browse files
committed
Patmos and S4NoC 9
1 parent bb64102 commit 5ff668e

File tree

8 files changed

+74
-27
lines changed

8 files changed

+74
-27
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,6 @@ cmake-build-release
1111
doc/html
1212
doc/latex
1313
doc/markdown/platform
14+
*.o
15+
*.bc
16+
*.elf

examples/patmos/s4noc_fed_lf/S4NoCFedLF/r1/Makefile

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,29 @@ include $(REACTOR_UC_PATH)/make/patmos/patmos-lfc.mk
66
# ---- Patmos specific configuration ----
77
# Output directory
88
BIN_DIR = $(CURDIR)/bin
9-
OUTPUT = $(BIN_DIR)/$(LF_MAIN)
9+
OBJ_DIR = $(CURDIR)/obj
10+
OUTPUT = $(BIN_DIR)/$(LF_MAIN).a
11+
# OBJECTS = $(patsubst %.c,$(OBJ_DIR)/%.o,$(SOURCES))
12+
OBJECTS = $(SOURCES:.c=.bc)
13+
1014
all: $(OUTPUT)
11-
$(info Building $(LF_MAIN) federate $(LF_FED))
12-
$(info Output directory: $(BIN_DIR))
13-
$(info Output binary: $(OUTPUT))
15+
$(info Building $(LF_MAIN) federate $(LF_FED))
16+
$(info Output directory: $(BIN_DIR))
17+
$(info Output binary: $(OUTPUT))
18+
$(info Sources: $(SOURCES))
19+
$(info Compiler: $(CC))
20+
$(info Compiler flags: $(CFLAGS))
1421

1522
# Build rule
16-
$(OUTPUT): $(SOURCES)
17-
mkdir -p $(BIN_DIR)
18-
$(CC) $(SOURCES) $(CFLAGS) -o $(OUTPUT)
23+
$(OUTPUT): $(OBJECTS)
24+
mkdir -p $(BIN_DIR)
25+
$(CC) -c $(SOURCES) $(CFLAGS)
26+
llvm-ar rcs $@ $(OBJECTS)
27+
28+
%.bc: %.c
29+
mkdir -p $(OBJ_DIR)
30+
$(CC) -emit-llvm -c $< -o $@ $(CFLAGS)
31+
1932
# Clean rule
2033
clean:
2134
rm -rf $(BIN_DIR)

examples/patmos/s4noc_fed_lf/S4NoCFedLF/r2/Makefile

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,29 @@ include $(REACTOR_UC_PATH)/make/patmos/patmos-lfc.mk
66
# ---- Patmos specific configuration ----
77
# Output directory
88
BIN_DIR = $(CURDIR)/bin
9-
OUTPUT = $(BIN_DIR)/$(LF_MAIN)
9+
OBJ_DIR = $(CURDIR)/obj
10+
OUTPUT = $(BIN_DIR)/$(LF_MAIN).a
11+
# OBJECTS = $(patsubst %.c,$(OBJ_DIR)/%.o,$(SOURCES))
12+
OBJECTS = $(SOURCES:.c=.bc)
13+
1014
all: $(OUTPUT)
11-
$(info Building $(LF_MAIN) federate $(LF_FED))
12-
$(info Output directory: $(BIN_DIR))
13-
$(info Output binary: $(OUTPUT))
15+
$(info Building $(LF_MAIN) federate $(LF_FED))
16+
$(info Output directory: $(BIN_DIR))
17+
$(info Output binary: $(OUTPUT))
18+
$(info Sources: $(SOURCES))
19+
$(info Compiler: $(CC))
20+
$(info Compiler flags: $(CFLAGS))
1421

1522
# Build rule
16-
$(OUTPUT): $(SOURCES)
17-
mkdir -p $(BIN_DIR)
18-
$(CC) $(SOURCES) $(CFLAGS) -o $(OUTPUT)
23+
$(OUTPUT): $(OBJECTS)
24+
mkdir -p $(BIN_DIR)
25+
$(CC) -c $(SOURCES) $(CFLAGS)
26+
llvm-ar rcs $@ $(OBJECTS)
27+
28+
%.bc: %.c
29+
mkdir -p $(OBJ_DIR)
30+
$(CC) -emit-llvm -c $< -o $@ $(CFLAGS)
31+
1932
# Clean rule
2033
clean:
2134
rm -rf $(BIN_DIR)
Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,24 @@
11
#!/bin/bash
22
LF_MAIN=S4NoCFedLF
3-
4-
# Generate configuration templates
3+
BIN_DIR=bin
4+
# Generate configuration templates
55
rm -rf $LF_MAIN
66
$REACTOR_UC_PATH/lfc/bin/lfc-dev --gen-fed-templates src/$LF_MAIN.lf
77

88

99
# Generate and build r1 sources
1010
pushd ./$LF_MAIN/r1
1111
./run_lfc.sh
12-
make clean
1312
make all
1413
popd
1514

1615
# Generate and build r2 sources
1716
pushd ./$LF_MAIN/r2
1817
./run_lfc.sh
19-
make clean
2018
make all
2119
popd
2220

21+
mkdir -p $BIN_DIR
22+
patmos-clang main.c ./$LF_MAIN/r1/bin/$LF_MAIN.a ./$LF_MAIN/r2/bin/$LF_MAIN.a \
23+
-o $BIN_DIR/$LF_MAIN
24+
patemu $BIN_DIR/$LF_MAIN
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
int main(void) {
2+
return 0;
3+
}

lfc/core/src/main/kotlin/org/lflang/generator/uc/UcFederatedProjectTemplateGenerator.kt

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -143,17 +143,28 @@ class UcFederatedTemplateGenerator(
143143
|# ---- Patmos specific configuration ----
144144
|# Output directory
145145
|BIN_DIR = $(CURDIR)/bin
146-
|OUTPUT = $(BIN_DIR)/$(LF_MAIN)
146+
|OBJ_DIR = $(CURDIR)/obj
147+
|OUTPUT = $(BIN_DIR)/$(LF_MAIN).a
148+
|# OBJECTS = $(patsubst %.c,$(OBJ_DIR)/%.o,$(SOURCES))
149+
|OBJECTS = $(SOURCES:.c=.bc)
147150
|
148151
|all: $(OUTPUT)
149-
| $(info Building $(LF_MAIN) federate $(LF_FED))
150-
| $(info Output directory: $(BIN_DIR))
151-
| $(info Output binary: $(OUTPUT))
152+
| $(info Building $(LF_MAIN) federate $(LF_FED))
153+
| $(info Output directory: $(BIN_DIR))
154+
| $(info Output binary: $(OUTPUT))
155+
| $(info Sources: $(SOURCES))
156+
| $(info Compiler: $(CC))
157+
| $(info Compiler flags: $(CFLAGS))
152158
|
153159
|# Build rule
154-
|$(OUTPUT): $(SOURCES)
155-
| mkdir -p $(BIN_DIR)
156-
| $(CC) $(SOURCES) $(CFLAGS) -o $(OUTPUT)
160+
|$(OUTPUT): $(OBJECTS)
161+
| mkdir -p $(BIN_DIR)
162+
| $(CC) -c $(SOURCES) $(CFLAGS)
163+
| llvm-ar rcs $@ $(OBJECTS)
164+
|
165+
|%.bc: %.c
166+
| mkdir -p $(OBJ_DIR)
167+
| $(CC) -emit-llvm -c $< -o $@ $(CFLAGS)
157168
|
158169
|# Clean rule
159170
|clean:

make/patmos/patmos-lfc.mk

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,17 @@ ifeq ($(firstword $(MAKECMDGOALS)),clean)
2828
# Delete src-gen folder if build target is "clean"
2929
_ := $(shell rm -rf $(LF_SRC_GEN_PATH))
3030
else
31+
3132
# Include the Makefile of the generated target application
3233
include $(LF_SRC_GEN_PATH)/Makefile
3334

3435
# Include generated c files
3536
SOURCES += $(patsubst %, $(LF_SRC_GEN_PATH)/%, $(LFC_GEN_SOURCES))
3637

3738
# Include generated main file
38-
SOURCES += $(LF_SRC_GEN_PATH)/${LFC_GEN_MAIN}
39+
ifndef LF_FED
40+
SOURCES += $(LF_SRC_GEN_PATH)/${LFC_GEN_MAIN}
41+
endif
3942

4043
# Include generated h files
4144
CFLAGS += -I$(LF_SRC_GEN_PATH)

make/patmos/patmos.mk

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ CFLAGS += -I$(REACTOR_UC_PATH)/external/nanopb/pb
1818

1919
CFLAGS += -I$(REACTOR_UC_PATH)/external/proto
2020

21-
2221
CFLAGS += -I$(REACTOR_UC_PATH)/external/Unity/src
2322
CFLAGS += -I$(REACTOR_UC_PATH)/test/unit
2423

0 commit comments

Comments
 (0)