File tree Expand file tree Collapse file tree 3 files changed +55
-7
lines changed
examples/patmos/s4noc_fed_lf Expand file tree Collapse file tree 3 files changed +55
-7
lines changed Original file line number Diff line number Diff line change 22LF_MAIN=S4NoCFedLF
33BIN_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
1414
1515# Generate and build r2 sources
1616pushd ./$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"
2230popd
2331
2432mkdir -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
2836patemu $BIN_DIR /$LF_MAIN
2937
Original file line number Diff line number Diff line change 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+
122int 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+ // }
Original file line number Diff line number Diff line change 11target uC {
22 platform: PATMOS,
3- timeout: 1sec
3+ timeout: 10 sec
44}
55
66reactor Src(id: int = 0) {
You can’t perform that action at this time.
0 commit comments