Skip to content

Commit f3b315a

Browse files
committed
Patmos and S4NoC 11: compiled
1 parent 5a50c9b commit f3b315a

File tree

3 files changed

+55
-7
lines changed

3 files changed

+55
-7
lines changed

examples/patmos/s4noc_fed_lf/build.sh

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
LF_MAIN=S4NoCFedLF
33
BIN_DIR=bin
44
# Generate configuration templates
5-
rm -rf $LF_MAIN
5+
rm -rf $LF_MAIN $BIN_DIR
66
$REACTOR_UC_PATH/lfc/bin/lfc-dev --gen-fed-templates src/$LF_MAIN.lf
77

88

@@ -14,16 +14,24 @@ popd
1414

1515
# Generate and build r2 sources
1616
pushd ./$LF_MAIN/r2
17-
REACTOR_PATH=$(pwd)/src-gen/S4NoCFedLF/r2
17+
REACTOR_PATH=$(pwd)/src-gen/$LF_MAIN/r2
1818
./run_lfc.sh
19+
1920
sed -i 's/_lf_environment/_lf_environment_2/g' $REACTOR_PATH/lf_start.c
20-
# make all FILTER_OUT="%unity.bc %action.bc %builtin_triggers.bc %clock_synchronization.bc %connection.bc %environment.bc %event.bc %federated.bc %logging.bc %network_channel.bc %physical_clock.bc %platform.bc %port.bc %queues.bc %reaction.bc %reactor.bc %scheduler.bc %serialization.bc %startup_coordinator.bc %tag.bc %timer.bc %trigger.bc %util.bc %pb_common.bc %pb_decode.bc %pb_encode.bc %message.pb.bc"
21+
sed -i 's/lf_exit/lf_exit_2/g' $REACTOR_PATH/lf_start.c
22+
sed -i 's/lf_start/lf_start_2/g' $REACTOR_PATH/lf_start.c
23+
sed -i 's/(Federate/(Federate2/g' $REACTOR_PATH/lf_federate.h $REACTOR_PATH/lf_federate.c
24+
sed -i 's/FederateStartupCoordinator/Federate2StartupCoordinator/g' $REACTOR_PATH/lf_federate.h
25+
sed -i 's/FederateClockSynchronization/Federate2ClockSynchronization/g' $REACTOR_PATH/lf_federate.h
26+
sed -i 's/Reactor_S4NoCFedLF/Reactor_S4NoCFedLF_2/g' $REACTOR_PATH/lf_federate.h $REACTOR_PATH/lf_federate.c
27+
sed -i 's/S4NoCFedLF_r1/S4NoCFedLF_r1_2/g' $REACTOR_PATH/lf_federate.h $REACTOR_PATH/lf_federate.c
28+
2129
make all OBJECTS="$REACTOR_PATH/lf_federate.bc $REACTOR_PATH/$LF_MAIN/Dst.bc $REACTOR_PATH/lf_start.bc"
2230
popd
2331

2432
mkdir -p $BIN_DIR
2533

26-
patmos-clang main.c ./$LF_MAIN/r1/bin/$LF_MAIN.a ./$LF_MAIN/r2/bin/$LF_MAIN.a \
34+
patmos-clang -v -O1 main.c ./$LF_MAIN/r1/bin/$LF_MAIN.a ./$LF_MAIN/r2/bin/$LF_MAIN.a \
2735
-o $BIN_DIR/$LF_MAIN
2836
patemu $BIN_DIR/$LF_MAIN
2937

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,43 @@
1+
#include <stdio.h>
2+
#include <pthread.h>
3+
4+
#include "S4NoCFedLF/r1/src-gen/S4NoCFedLF/r1/lf_start.h"
5+
// #include "S4NoCFedLF/r1/src-gen/S4NoCFedLF/r2/lf_start.h"
6+
// #include "S4NoCFedLF/r2/src-gen/S4NoCFedLF/r1/lf_start.h"
7+
#include "S4NoCFedLF/r2/src-gen/S4NoCFedLF/r2/lf_start.h"
8+
9+
10+
void* f1_thread(void* arg) {
11+
printf("Starting federate 1 on core/thread 1\n");
12+
lf_start();
13+
return NULL;
14+
}
15+
16+
void* f2_thread(void* arg) {
17+
printf("Starting federate 2 on core/thread 2\n");
18+
lf_start_2();
19+
return NULL;
20+
}
21+
122
int main(void) {
2-
return 0;
3-
}
23+
pthread_t thread1, thread2;
24+
printf("Starting S4NOC Federated LF Example\n");
25+
26+
// Create threads for each federate
27+
pthread_create(&thread1, NULL, f1_thread, NULL);
28+
pthread_create(&thread2, NULL, f2_thread, NULL);
29+
30+
printf("Threads created for federates.\n");
31+
32+
// Wait for both federates to finish
33+
pthread_join(thread1, NULL);
34+
pthread_join(thread2, NULL);
35+
36+
printf("All federates finished.\n");
37+
return 0;
38+
}
39+
40+
// int main(void) {
41+
// printf("Starting S4NOC Federated LF Example\n");
42+
// return 0;
43+
// }

examples/patmos/s4noc_fed_lf/src/S4NoCFedLF.lf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
target uC {
22
platform: PATMOS,
3-
timeout: 1sec
3+
timeout: 10 sec
44
}
55

66
reactor Src(id: int = 0) {

0 commit comments

Comments
 (0)