tecscde 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +12 -0
- data/.rubocop.yml +125 -0
- data/.rubocop_todo.yml +188 -0
- data/CHANGELOG.md +3 -0
- data/Gemfile +6 -0
- data/LICENSE +46 -0
- data/LICENSE.ja +32 -0
- data/README.ja.md +200 -0
- data/README.md +35 -0
- data/Rakefile +27 -0
- data/bin/tecscde +64 -0
- data/glade/tecscde-cell-property.glade +205 -0
- data/glade/tecscde-celltype-property.glade +172 -0
- data/glade/tecscde-celltype.glade +414 -0
- data/glade/tecscde-export.glade +161 -0
- data/glade/test-cell-plugin.rb +51 -0
- data/glade/test-cell-property.rb +35 -0
- data/glade/test-export.rb +35 -0
- data/glade/test-palette.rb +26 -0
- data/lib/tcflow.rb +148 -0
- data/lib/tecscde.rb +65 -0
- data/lib/tecscde/NewCell.png +0 -0
- data/lib/tecscde/SelectArrow.png +0 -0
- data/lib/tecscde/attr_tree_view.rb +253 -0
- data/lib/tecscde/cell_plugin_dialog.glade +294 -0
- data/lib/tecscde/cell_plugin_dialog.rb +89 -0
- data/lib/tecscde/celltype_tree_view.rb +105 -0
- data/lib/tecscde/change_set_control.rb +35 -0
- data/lib/tecscde/change_set_control/change_set.rb +32 -0
- data/lib/tecscde/change_set_control/change_set_manager.rb +62 -0
- data/lib/tecscde/command.rb +35 -0
- data/lib/tecscde/control.rb +491 -0
- data/lib/tecscde/highlighted_objects.rb +180 -0
- data/lib/tecscde/logger.rb +74 -0
- data/lib/tecscde/main_view_and_model.rb +80 -0
- data/lib/tecscde/palette.glade +553 -0
- data/lib/tecscde/palette.rb +174 -0
- data/lib/tecscde/preferences.glade +117 -0
- data/lib/tecscde/preferences.rb +44 -0
- data/lib/tecscde/tecs_model.rb +1137 -0
- data/lib/tecscde/tecs_model/hbar.rb +68 -0
- data/lib/tecscde/tecs_model/tm_c_port.rb +122 -0
- data/lib/tecscde/tecs_model/tm_c_port_array.rb +98 -0
- data/lib/tecscde/tecs_model/tm_cell.rb +496 -0
- data/lib/tecscde/tecs_model/tm_e_port.rb +126 -0
- data/lib/tecscde/tecs_model/tm_e_port_array.rb +78 -0
- data/lib/tecscde/tecs_model/tm_join.rb +293 -0
- data/lib/tecscde/tecs_model/tm_join_bar.rb +146 -0
- data/lib/tecscde/tecs_model/tm_port.rb +238 -0
- data/lib/tecscde/tecs_model/tm_port_array.rb +246 -0
- data/lib/tecscde/tecs_model/tm_region.rb +107 -0
- data/lib/tecscde/tecs_model/tm_uneditable.rb +68 -0
- data/lib/tecscde/tecs_model/vbar.rb +68 -0
- data/lib/tecscde/templates/_cell_info.cde.erb +15 -0
- data/lib/tecscde/templates/_join_info.cde.erb +28 -0
- data/lib/tecscde/templates/main.cde.erb +49 -0
- data/lib/tecscde/tm_object.rb +91 -0
- data/lib/tecscde/version.rb +4 -0
- data/lib/tecscde/view.rb +58 -0
- data/lib/tecscde/view/cairo_matrix.rb +90 -0
- data/lib/tecscde/view/canvas.rb +59 -0
- data/lib/tecscde/view/constants.rb +114 -0
- data/lib/tecscde/view/main_view.rb +1245 -0
- data/lib/tecsflow.rb +475 -0
- data/lib/tecsflow/C_parser.tab.rb +2471 -0
- data/lib/tecsflow/C_parser.y.rb +1087 -0
- data/lib/tecsflow/classes.rb +421 -0
- data/lib/tecsgen.rb +581 -0
- data/lib/tecsgen/core/C_parser.tab.rb +2477 -0
- data/lib/tecsgen/core/C_parser.y +1032 -0
- data/lib/tecsgen/core/bnf-deb.tab.rb +5193 -0
- data/lib/tecsgen/core/bnf.tab.rb +5193 -0
- data/lib/tecsgen/core/bnf.y +2211 -0
- data/lib/tecsgen/core/componentobj.rb +7901 -0
- data/lib/tecsgen/core/ctypes.rb +226 -0
- data/lib/tecsgen/core/expression.rb +1031 -0
- data/lib/tecsgen/core/gen_xml.rb +374 -0
- data/lib/tecsgen/core/generate.rb +5206 -0
- data/lib/tecsgen/core/location.rb +116 -0
- data/lib/tecsgen/core/messages.rb +101 -0
- data/lib/tecsgen/core/optimize.rb +456 -0
- data/lib/tecsgen/core/plugin.rb +332 -0
- data/lib/tecsgen/core/pluginModule.rb +165 -0
- data/lib/tecsgen/core/syntaxobj.rb +1234 -0
- data/lib/tecsgen/core/tecs_lang.rb +306 -0
- data/lib/tecsgen/core/tecsgen.rb +453 -0
- data/lib/tecsgen/core/tecsinfo.rb +860 -0
- data/lib/tecsgen/core/tool_info.rb +258 -0
- data/lib/tecsgen/core/types.rb +1632 -0
- data/lib/tecsgen/core/unjoin_plugin.rb +218 -0
- data/lib/tecsgen/core/value.rb +650 -0
- data/lib/tecsgen/messages/messages_console_en_US.rb +1171 -0
- data/lib/tecsgen/messages/messages_console_ja_JP.rb +1171 -0
- data/lib/tecsgen/messages/messages_file_en_US.rb +334 -0
- data/lib/tecsgen/messages/messages_file_ja_JP.rb +163 -0
- data/lib/tecsgen/plugin/ATK1AlarmPlugin.rb +196 -0
- data/lib/tecsgen/plugin/ATK1DelayTaskPlugin.rb +106 -0
- data/lib/tecsgen/plugin/ATK1EventPlugin.rb +147 -0
- data/lib/tecsgen/plugin/ATK1ISRPlugin.rb +174 -0
- data/lib/tecsgen/plugin/ATK1KernelPlugin.rb +287 -0
- data/lib/tecsgen/plugin/ATK1ResourcePlugin.rb +124 -0
- data/lib/tecsgen/plugin/ATK1TaskPlugin.rb +220 -0
- data/lib/tecsgen/plugin/C2TECSBridgePlugin.rb +210 -0
- data/lib/tecsgen/plugin/CellPlugin.rb +61 -0
- data/lib/tecsgen/plugin/CelltypePlugin.rb +72 -0
- data/lib/tecsgen/plugin/CompositePlugin.rb +66 -0
- data/lib/tecsgen/plugin/DomainPlugin.rb +89 -0
- data/lib/tecsgen/plugin/HRP2AlarmHandlerPlugin.rb +76 -0
- data/lib/tecsgen/plugin/HRP2Cache.rb +1 -0
- data/lib/tecsgen/plugin/HRP2CyclicHandlerPlugin.rb +75 -0
- data/lib/tecsgen/plugin/HRP2DataqueuePlugin.rb +68 -0
- data/lib/tecsgen/plugin/HRP2EventflagPlugin.rb +68 -0
- data/lib/tecsgen/plugin/HRP2FixedSizeMemoryPoolPlugin.rb +68 -0
- data/lib/tecsgen/plugin/HRP2HandlerPlugin.rb +117 -0
- data/lib/tecsgen/plugin/HRP2KernelObjectPlugin.rb +372 -0
- data/lib/tecsgen/plugin/HRP2ObjectPlugin.rb +94 -0
- data/lib/tecsgen/plugin/HRP2Plugin.rb +140 -0
- data/lib/tecsgen/plugin/HRP2PostHook.rb +111 -0
- data/lib/tecsgen/plugin/HRP2PriorityDataqueuePlugin.rb +66 -0
- data/lib/tecsgen/plugin/HRP2RPCPlugin.rb +319 -0
- data/lib/tecsgen/plugin/HRP2SVCPlugin.rb +473 -0
- data/lib/tecsgen/plugin/HRP2SemaphorePlugin.rb +67 -0
- data/lib/tecsgen/plugin/HRP2TaskPlugin.rb +200 -0
- data/lib/tecsgen/plugin/HRPHandlerPlugin.rb +125 -0
- data/lib/tecsgen/plugin/HRPKernelObjectManager.rb +72 -0
- data/lib/tecsgen/plugin/HRPKernelObjectPlugin.rb +333 -0
- data/lib/tecsgen/plugin/HRPObjectPlugin.rb +93 -0
- data/lib/tecsgen/plugin/HRPPlugin.rb +356 -0
- data/lib/tecsgen/plugin/HRPRPCPlugin.rb +407 -0
- data/lib/tecsgen/plugin/HRPSVCPlugin.rb +859 -0
- data/lib/tecsgen/plugin/HRPTaskPlugin.rb +107 -0
- data/lib/tecsgen/plugin/Mruby2CBridgePlugin.rb +86 -0
- data/lib/tecsgen/plugin/MrubyBridgeCellPlugin.rb +264 -0
- data/lib/tecsgen/plugin/MrubyBridgeCelltypePlugin.rb +293 -0
- data/lib/tecsgen/plugin/MrubyBridgeCompositePlugin.rb +49 -0
- data/lib/tecsgen/plugin/MrubyBridgePlugin.rb +67 -0
- data/lib/tecsgen/plugin/MrubyBridgeSignaturePlugin.rb +1307 -0
- data/lib/tecsgen/plugin/MrubyInfoBridgePlugin.rb +14 -0
- data/lib/tecsgen/plugin/MrubyInfoBridgeSignaturePlugin.rb +994 -0
- data/lib/tecsgen/plugin/MultiPlugin.rb +57 -0
- data/lib/tecsgen/plugin/NotifierPlugin.rb +1217 -0
- data/lib/tecsgen/plugin/OpaqueMarshalerPlugin.rb +81 -0
- data/lib/tecsgen/plugin/OpaqueRPCPlugin.rb +323 -0
- data/lib/tecsgen/plugin/RPCPlugin.rb +266 -0
- data/lib/tecsgen/plugin/RepeatCellPlugin.rb +166 -0
- data/lib/tecsgen/plugin/RepeatJoinPlugin.rb +130 -0
- data/lib/tecsgen/plugin/SharedOpaqueRPCPlugin.rb +357 -0
- data/lib/tecsgen/plugin/SharedRPCPlugin.rb +329 -0
- data/lib/tecsgen/plugin/SignaturePlugin.rb +77 -0
- data/lib/tecsgen/plugin/TECS2CBridgePlugin.rb +178 -0
- data/lib/tecsgen/plugin/TECSInfoPlugin.rb +280 -0
- data/lib/tecsgen/plugin/ThroughPlugin.rb +333 -0
- data/lib/tecsgen/plugin/TracePlugin.rb +484 -0
- data/lib/tecsgen/plugin/lib/GenHRP2Marshaler.rb +761 -0
- data/lib/tecsgen/plugin/lib/GenOpaqueMarshaler.rb +1107 -0
- data/lib/tecsgen/plugin/lib/GenParamCopy.rb +365 -0
- data/lib/tecsgen/plugin/lib/GenTransparentMarshaler.rb +683 -0
- data/lib/tecsgen/plugin/lib/MrubyBridgeCelltypePluginModule.rb +283 -0
- data/lib/tecsgen/plugin/lib/MrubyBridgeSignaturePluginModule.rb +277 -0
- data/lib/tecsgen/version.rb +6 -0
- data/samples/FigureSamples/active/active.cde +104 -0
- data/samples/FigureSamples/active/active.cdl +20 -0
- data/samples/FigureSamples/active/active.pdf +0 -0
- data/samples/FigureSamples/active/active.png +0 -0
- data/samples/FigureSamples/active/gen/tmp_C_src.c +36 -0
- data/samples/FigureSamples/active/gen/tmp_cygwin_tecs.h +1908 -0
- data/samples/FigureSamples/active/gen/tmp_plugin_post_code.cdl +0 -0
- data/samples/FigureSamples/allocator/allocator-internal.png +0 -0
- data/samples/FigureSamples/allocator/allocator.cde +171 -0
- data/samples/FigureSamples/allocator/allocator.cdl +58 -0
- data/samples/FigureSamples/allocator/allocator.png +0 -0
- data/samples/FigureSamples/basic/Makefile +87 -0
- data/samples/FigureSamples/basic/SimpleSample-trace.cdl +50 -0
- data/samples/FigureSamples/basic/SimpleSample.cde +91 -0
- data/samples/FigureSamples/basic/SimpleSample.cdl +47 -0
- data/samples/FigureSamples/basic/basic.cde +93 -0
- data/samples/FigureSamples/basic/basic.cdl +46 -0
- data/samples/FigureSamples/basic/basic.png +0 -0
- data/samples/FigureSamples/callback/callback.cde +130 -0
- data/samples/FigureSamples/callback/callback.cdl +29 -0
- data/samples/FigureSamples/callback/callback.png +0 -0
- data/samples/FigureSamples/carray/carray.cde +144 -0
- data/samples/FigureSamples/carray/carray.cdl +38 -0
- data/samples/FigureSamples/carray/carray.png +0 -0
- data/samples/FigureSamples/cearray/cearray.cde +314 -0
- data/samples/FigureSamples/cearray/cearray.cdl +60 -0
- data/samples/FigureSamples/cearray/cearray.png +0 -0
- data/samples/FigureSamples/composite/composite-internal.png +0 -0
- data/samples/FigureSamples/composite/composite.cde +216 -0
- data/samples/FigureSamples/composite/composite.cdl +95 -0
- data/samples/FigureSamples/composite/composite.png +0 -0
- data/samples/FigureSamples/earray/earray.cde +142 -0
- data/samples/FigureSamples/earray/earray.cdl +38 -0
- data/samples/FigureSamples/earray/earray.png +0 -0
- data/samples/FigureSamples/join/Makefile +87 -0
- data/samples/FigureSamples/join/join.cde +132 -0
- data/samples/FigureSamples/join/join.cdl +40 -0
- data/samples/FigureSamples/join/join.png +0 -0
- data/samples/FigureSamples/relay/Makefile +99 -0
- data/samples/FigureSamples/relay/relay-internal.png +0 -0
- data/samples/FigureSamples/relay/relay.cde +284 -0
- data/samples/FigureSamples/relay/relay.cdl +52 -0
- data/samples/FigureSamples/relay/relay.png +0 -0
- data/samples/FigureSamples/rpc/Makefile +123 -0
- data/samples/FigureSamples/rpc/rpc-expand.png +0 -0
- data/samples/FigureSamples/rpc/rpc.cde +245 -0
- data/samples/FigureSamples/rpc/rpc.png +0 -0
- data/samples/FigureSamples/rpc/rpc_sample.cdl +53 -0
- data/samples/SimpleSample/Makefile +25 -0
- data/samples/SimpleSample/SimpleSample/Makefile +86 -0
- data/samples/SimpleSample/SimpleSample/Makefile-trace +91 -0
- data/samples/SimpleSample/SimpleSample/README.txt +106 -0
- data/samples/SimpleSample/SimpleSample/SimpleSample-trace.cdl +50 -0
- data/samples/SimpleSample/SimpleSample/SimpleSample.cdl +45 -0
- data/samples/SimpleSample/SimpleSample/src/tSample.c +77 -0
- data/samples/SimpleSample/SimpleSample/src/tSimple.c +48 -0
- data/samples/SimpleSample/SimpleSample/src/tecs-types.h +27 -0
- data/samples/SimpleSample/SimpleSampleOpaqueRPC/Makefile +51 -0
- data/samples/SimpleSample/SimpleSampleOpaqueRPC/Makefile-trace +91 -0
- data/samples/SimpleSample/SimpleSampleOpaqueRPC/README.txt +106 -0
- data/samples/SimpleSample/SimpleSampleOpaqueRPC/SimpleSample-trace.cdl +80 -0
- data/samples/SimpleSample/SimpleSampleOpaqueRPC/SimpleSample.cdl +77 -0
- data/samples/SimpleSample/SimpleSampleOpaqueRPC/rSample/Makefile +112 -0
- data/samples/SimpleSample/SimpleSampleOpaqueRPC/rSimple/Makefile +109 -0
- data/samples/SimpleSample/SimpleSampleOpaqueRPC/src/tSample.c +80 -0
- data/samples/SimpleSample/SimpleSampleOpaqueRPC/src/tSimple.c +47 -0
- data/samples/SimpleSample/SimpleSampleOpaqueRPC/src/tTaskMain.c +66 -0
- data/samples/SimpleSample/SimpleSampleOpaqueRPC/src/tecs-types.h +27 -0
- data/samples/SimpleSample/SimpleSampleTransparentRPC/Makefile +125 -0
- data/samples/SimpleSample/SimpleSampleTransparentRPC/Makefile-trace +130 -0
- data/samples/SimpleSample/SimpleSampleTransparentRPC/SimpleSample-trace.cdl +54 -0
- data/samples/SimpleSample/SimpleSampleTransparentRPC/SimpleSample.cdl +53 -0
- data/samples/SimpleSample/SimpleSampleTransparentRPC/src/tSample.c +80 -0
- data/samples/SimpleSample/SimpleSampleTransparentRPC/src/tSimple.c +54 -0
- data/tecscde.gemspec +41 -0
- metadata +353 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
CYGPATH=../../cygwin
|
|
2
|
+
TARGET_BASE = SimpleSample
|
|
3
|
+
BASE_DIR = .
|
|
4
|
+
GEN_DIR = $(BASE_DIR)/gen
|
|
5
|
+
INCLUDES = -I $(BASE_DIR)/. -I $(BASE_DIR)/src -I $(BASE_DIR)/gen -I $(CYGPATH) -I $(TECSPATH) -I $(TECSPATH)/mruby -I $(TECSPATH)/posix -I $(TECSPATH)/rpc -I $(GEN_DIR)
|
|
6
|
+
DEFINES =
|
|
7
|
+
|
|
8
|
+
# end of fixed variable (unchangeable by config or plugin)
|
|
9
|
+
#default C Compiler
|
|
10
|
+
CC = gcc
|
|
11
|
+
|
|
12
|
+
#default C Compiler options
|
|
13
|
+
CFLAGS = $(INCLUDES) $(DEFINES) -D "Inline=static inline"
|
|
14
|
+
|
|
15
|
+
#default Liknker
|
|
16
|
+
LD = gcc
|
|
17
|
+
|
|
18
|
+
#default Liknker Options
|
|
19
|
+
LDFLAGS = -lpthread
|
|
20
|
+
|
|
21
|
+
#default srource directory
|
|
22
|
+
SRC_DIR = $(BASE_DIR)/src
|
|
23
|
+
|
|
24
|
+
#default target name
|
|
25
|
+
TARGET = $(TARGET_BASE).exe
|
|
26
|
+
|
|
27
|
+
#default TECS generator
|
|
28
|
+
TECSGEN_EXE = tecsgen
|
|
29
|
+
|
|
30
|
+
#Time Stamp
|
|
31
|
+
TIMESTAMP = tecsgen.timestamp
|
|
32
|
+
|
|
33
|
+
#default relocatable object (.o) directory
|
|
34
|
+
_TECS_OBJ_DIR = $(GEN_DIR)/
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
# Pre-tecsgen target
|
|
39
|
+
PRE_TECSGEN_TARGET =
|
|
40
|
+
|
|
41
|
+
# Post-tecsgen target
|
|
42
|
+
POST_TECSGEN_TARGET =
|
|
43
|
+
|
|
44
|
+
# vpath for C sources and headers
|
|
45
|
+
vpath %.c $(SRC_DIR) $(GEN_DIR) src gen $(CYGPATH) $(TECSPATH) $(TECSPATH)/mruby $(TECSPATH)/posix $(TECSPATH)/rpc
|
|
46
|
+
vpath %.h $(SRC_DIR) $(GEN_DIR) src gen $(CYGPATH) $(TECSPATH) $(TECSPATH)/mruby $(TECSPATH)/posix $(TECSPATH)/rpc
|
|
47
|
+
|
|
48
|
+
# Other objects (out of tecsgen)
|
|
49
|
+
OTHER_OBJS = # Add objects out of tecs care.
|
|
50
|
+
# OTHER_OBJS = $(_TECS_OBJ_DIR)vasyslog.o
|
|
51
|
+
# ¥ë¡¼¥ë #_MRUL_#
|
|
52
|
+
allall: tecs
|
|
53
|
+
make all # in order to include generated Makefile.tecsgen & Makefile.depend
|
|
54
|
+
|
|
55
|
+
all : $(TARGET)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
# depend ¤ò include #_MDEP_#
|
|
59
|
+
-include $(GEN_DIR)/Makefile.tecsgen
|
|
60
|
+
-include $(GEN_DIR)/Makefile.depend
|
|
61
|
+
|
|
62
|
+
$(TARGET) : $(TIMESTAMP) $(CELLTYPE_COBJS) $(TECSGEN_COBJS) $(PLUGIN_COBJS) $(OTHER_OBJS)
|
|
63
|
+
$(LD) -o $(TARGET) $(TECSGEN_COBJS) $(CELLTYPE_COBJS) $(PLUGIN_COBJS) $(OTHER_OBJS) $(LDFLAGS)
|
|
64
|
+
clean :
|
|
65
|
+
rm -f $(CELLTYPE_COBJS) $(TECSGEN_COBJS) $(PLUGIN_COBJS) $(OTHER_OBJS) $(TARGET) $(TIMESTAMP)
|
|
66
|
+
rm -rf $(GEN_DIR)
|
|
67
|
+
|
|
68
|
+
tecs : $(PRE_TECSGEN_TARGET) $(TIMESTAMP) $(POST_TECSGEN_TARGET)
|
|
69
|
+
|
|
70
|
+
$(TIMESTAMP) : $(TECS_IMPORTS)
|
|
71
|
+
$(TECSGEN_EXE) -k euc -I src -I gen -I $(CYGPATH) -I $(TECSPATH) SimpleSample.cdl
|
|
72
|
+
touch $(TIMESTAMP)
|
|
73
|
+
|
|
74
|
+
# generic target for objs
|
|
75
|
+
$(_TECS_OBJ_DIR)%.o : %.c
|
|
76
|
+
$(CC) -c $(CFLAGS) -o $@ $<
|
|
77
|
+
|
|
78
|
+
$(_TECS_OBJ_DIR)tTask.o : tTask.c
|
|
79
|
+
$(CC) -c $(CFLAGS) -o $@ $<
|
|
80
|
+
|
|
81
|
+
$(_TECS_OBJ_DIR)tSample.o : tSample.c
|
|
82
|
+
$(CC) -c $(CFLAGS) -o $@ $<
|
|
83
|
+
|
|
84
|
+
$(_TECS_OBJ_DIR)tSimple.o : tSimple.c
|
|
85
|
+
$(CC) -c $(CFLAGS) -o $@ $<
|
|
86
|
+
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
TARGET_BASE = SimpleSample-trace
|
|
2
|
+
BASE_DIR = .
|
|
3
|
+
GEN_DIR = $(BASE_DIR)/gen
|
|
4
|
+
INCLUDES = -I $(BASE_DIR)/. -I $(BASE_DIR)/../../cygwin -I $(TECSPATH) -I $(TECSPATH)/mruby -I $(TECSPATH)/posix -I $(TECSPATH)/rpc -I $(GEN_DIR)
|
|
5
|
+
DEFINES =
|
|
6
|
+
|
|
7
|
+
# end of fixed variable (unchangeable by config or plugin)
|
|
8
|
+
#default C Compiler
|
|
9
|
+
CC = gcc
|
|
10
|
+
|
|
11
|
+
#default C Compiler options
|
|
12
|
+
CFLAGS = $(INCLUDES) $(DEFINES) -D "Inline=static inline"
|
|
13
|
+
|
|
14
|
+
#default Liknker
|
|
15
|
+
LD = gcc
|
|
16
|
+
|
|
17
|
+
#default Liknker Options
|
|
18
|
+
LDFLAGS = -lpthread
|
|
19
|
+
|
|
20
|
+
#default srource directory
|
|
21
|
+
SRC_DIR = $(BASE_DIR)/src
|
|
22
|
+
|
|
23
|
+
#default target name
|
|
24
|
+
TARGET = $(TARGET_BASE).exe
|
|
25
|
+
|
|
26
|
+
#default TECS generator
|
|
27
|
+
TECSGEN_EXE = tecsgen
|
|
28
|
+
|
|
29
|
+
#Time Stamp
|
|
30
|
+
TIMESTAMP = tecsgen.timestamp
|
|
31
|
+
|
|
32
|
+
#default relocatable object (.o) directory
|
|
33
|
+
_TECS_OBJ_DIR = $(GEN_DIR)/
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
# Pre-tecsgen target
|
|
38
|
+
PRE_TECSGEN_TARGET =
|
|
39
|
+
|
|
40
|
+
# Post-tecsgen target
|
|
41
|
+
POST_TECSGEN_TARGET =
|
|
42
|
+
|
|
43
|
+
# vpath for C sources and headers
|
|
44
|
+
vpath %.c $(SRC_DIR) $(GEN_DIR) ../../cygwin $(TECSPATH) $(TECSPATH)/mruby $(TECSPATH)/posix $(TECSPATH)/rpc
|
|
45
|
+
vpath %.h $(SRC_DIR) $(GEN_DIR) ../../cygwin $(TECSPATH) $(TECSPATH)/mruby $(TECSPATH)/posix $(TECSPATH)/rpc
|
|
46
|
+
|
|
47
|
+
# Other objects (out of tecsgen)
|
|
48
|
+
# OTHER_OBJS = # Add objects out of tecs care.
|
|
49
|
+
OTHER_OBJS = $(_TECS_OBJ_DIR)vasyslog.o
|
|
50
|
+
# ¥ë¡¼¥ë #_MRUL_#
|
|
51
|
+
allall: tecs
|
|
52
|
+
make -f Makefile-trace all # in order to include generated Makefile.tecsgen & Makefile.depend
|
|
53
|
+
|
|
54
|
+
all : $(TARGET)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
# depend ¤ò include #_MDEP_#
|
|
58
|
+
-include $(GEN_DIR)/Makefile.tecsgen
|
|
59
|
+
-include $(GEN_DIR)/Makefile.depend
|
|
60
|
+
|
|
61
|
+
$(TARGET) : $(TIMESTAMP) $(CELLTYPE_COBJS) $(TECSGEN_COBJS) $(PLUGIN_COBJS) $(OTHER_OBJS)
|
|
62
|
+
$(LD) -o $(TARGET) $(TECSGEN_COBJS) $(CELLTYPE_COBJS) $(PLUGIN_COBJS) $(OTHER_OBJS) $(LDFLAGS)
|
|
63
|
+
clean :
|
|
64
|
+
rm -f $(CELLTYPE_COBJS) $(TECSGEN_COBJS) $(PLUGIN_COBJS) $(OTHER_OBJS) $(TARGET) $(TIMESTAMP)
|
|
65
|
+
rm -rf $(GEN_DIR)
|
|
66
|
+
|
|
67
|
+
tecs : $(PRE_TECSGEN_TARGET) $(TIMESTAMP) $(POST_TECSGEN_TARGET)
|
|
68
|
+
|
|
69
|
+
$(TIMESTAMP) : $(TECS_IMPORTS)
|
|
70
|
+
$(TECSGEN_EXE) -k euc -I ../../cygwin SimpleSample-trace.cdl
|
|
71
|
+
touch $(TIMESTAMP)
|
|
72
|
+
|
|
73
|
+
# generic target for objs
|
|
74
|
+
$(_TECS_OBJ_DIR)%.o : %.c
|
|
75
|
+
$(CC) -c $(CFLAGS) -o $@ $<
|
|
76
|
+
|
|
77
|
+
$(_TECS_OBJ_DIR)tKernel.o : tKernel.c
|
|
78
|
+
$(CC) -c $(CFLAGS) -o $@ $<
|
|
79
|
+
|
|
80
|
+
$(_TECS_OBJ_DIR)tSysLog.o : tSysLog.c
|
|
81
|
+
$(CC) -c $(CFLAGS) -o $@ $<
|
|
82
|
+
|
|
83
|
+
$(_TECS_OBJ_DIR)tSample.o : tSample.c
|
|
84
|
+
$(CC) -c $(CFLAGS) -o $@ $<
|
|
85
|
+
|
|
86
|
+
$(_TECS_OBJ_DIR)tSimple.o : tSimple.c
|
|
87
|
+
$(CC) -c $(CFLAGS) -o $@ $<
|
|
88
|
+
|
|
89
|
+
$(_TECS_OBJ_DIR)tTracePlugin_sSample.o : tTracePlugin_sSample.c
|
|
90
|
+
$(CC) -c $(CFLAGS) -o $@ $<
|
|
91
|
+
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
SimpleSample
|
|
2
|
+
2009.6.7 初版
|
|
3
|
+
2009.6.9 再アップ
|
|
4
|
+
|
|
5
|
+
《超簡易パッケージの概要》
|
|
6
|
+
|
|
7
|
+
「3 分でわかる TECS」ということで、cygwin だけで動作する SimpleSample
|
|
8
|
+
を作ってみました。TECS コンポーネントの要素を理解することができます。
|
|
9
|
+
|
|
10
|
+
公式リリースのパッケージに入っているものは TOPPERS/ASP カーネル上で
|
|
11
|
+
動かすサンプルで、skyeye のシミュレーション環境により PC 上で動作さ
|
|
12
|
+
せることができる本格的なものです。ちょっと動かしてみるには、ややハー
|
|
13
|
+
ドルが高いかもしれません。
|
|
14
|
+
|
|
15
|
+
この超簡易パッケージは cygwin のネイティブな gcc でビルドするようにし
|
|
16
|
+
ていますので、cygwin がインストールされていれば、他には特に必要ありま
|
|
17
|
+
せん。ruby, racc もインストールの必要ありません。
|
|
18
|
+
|
|
19
|
+
ビルドの仕方:
|
|
20
|
+
|
|
21
|
+
% make tecs
|
|
22
|
+
% make all
|
|
23
|
+
|
|
24
|
+
場合によっては、make tecs の前に、以下のようにパスを入れる必要がある
|
|
25
|
+
かもしれません。
|
|
26
|
+
|
|
27
|
+
% PATH=.:$PATH
|
|
28
|
+
|
|
29
|
+
実行の仕方:
|
|
30
|
+
|
|
31
|
+
% ./SimpleSample.exe
|
|
32
|
+
|
|
33
|
+
《SimpleSample の概要》
|
|
34
|
+
|
|
35
|
+
hello の表示など、ごく簡単な例です。
|
|
36
|
+
TECS の本来機能を理解しやすいように、cygwin だけで動作します。
|
|
37
|
+
この例では、簡単のために printf を呼び出しますが、実際の RTOS 環境であ
|
|
38
|
+
れば、出力用コンポーネントを用いた方がよいです。
|
|
39
|
+
|
|
40
|
+
コンポーネント図:
|
|
41
|
+
|
|
42
|
+
SimpleSample.png
|
|
43
|
+
|
|
44
|
+
コンポーネント記述:
|
|
45
|
+
|
|
46
|
+
SimpleSmaple.cdl に TECS CDL で記述。文字コードには EUC を使用していま
|
|
47
|
+
す。
|
|
48
|
+
|
|
49
|
+
・シグニチャ記述
|
|
50
|
+
|
|
51
|
+
sSample … 関数インタフェースの定義
|
|
52
|
+
慣習として接頭文字 s を付加する
|
|
53
|
+
|
|
54
|
+
シグニチャ sSampleには 2 つの関数 sayHello と howAreYou がある。
|
|
55
|
+
セルタイプ tSample の提供する機能となるので、sSample という名前にした。
|
|
56
|
+
|
|
57
|
+
・セルタイプ記述
|
|
58
|
+
|
|
59
|
+
tSimple … 呼び元のセルタイプ
|
|
60
|
+
tSample … 呼び先のセルタイプ
|
|
61
|
+
慣習として接頭文字 t を付加する
|
|
62
|
+
|
|
63
|
+
・組上げ記述
|
|
64
|
+
|
|
65
|
+
Simple … 呼び元のセル
|
|
66
|
+
Sample … 呼び先のセル
|
|
67
|
+
|
|
68
|
+
セルタイプコード:
|
|
69
|
+
|
|
70
|
+
src/tSimple.c … 呼び元のセルタイプコード
|
|
71
|
+
src/tSample.c … 呼び先のセルタイプコード
|
|
72
|
+
|
|
73
|
+
【作成環境】
|
|
74
|
+
|
|
75
|
+
OS: Windows XP SP3
|
|
76
|
+
Ruby: V1.8.7p72 (mswin32)
|
|
77
|
+
Racc: 1.4.5
|
|
78
|
+
exerb: 4.8.0
|
|
79
|
+
|
|
80
|
+
《ライセンス》
|
|
81
|
+
|
|
82
|
+
【TECSジェネレータ】
|
|
83
|
+
|
|
84
|
+
TECS ジェネレータ tecsgen.exe の内部に含まれるコードについては TOPPERS
|
|
85
|
+
ライセンスに従います。TOPPERS ライセンスについては以下のホームページで
|
|
86
|
+
確認できます。
|
|
87
|
+
|
|
88
|
+
http://www.toppers.jp/license.html
|
|
89
|
+
|
|
90
|
+
【Ruby関係】
|
|
91
|
+
|
|
92
|
+
tecsgen.exe は Ruby, Racc, Exerb を使用して構築されています。
|
|
93
|
+
それらについては、それらのライセンスに従います。
|
|
94
|
+
|
|
95
|
+
Ruby のインタプリタのソースは、以下の URL のホームページからダウンロー
|
|
96
|
+
ドできます。
|
|
97
|
+
|
|
98
|
+
http://www.ruby-lang.org/
|
|
99
|
+
|
|
100
|
+
Racc のソースは、以下の URL のホームページからダウンロードできます。
|
|
101
|
+
|
|
102
|
+
http://i.loveruby.net/ja/projects/racc/
|
|
103
|
+
|
|
104
|
+
Exerb のソースは以下の URL のホームページからダウンロードできます。
|
|
105
|
+
|
|
106
|
+
http://exerb.sourceforge.jp/
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Simple な Sample
|
|
3
|
+
*
|
|
4
|
+
* +-------------+ +-------------+ +-------------+
|
|
5
|
+
* | | | | | |
|
|
6
|
+
* | tTask | sTaskBody | tSimple | sSample | tSample |
|
|
7
|
+
* | Task |-----------|> Simple |----------|> Sample |
|
|
8
|
+
* | |cTask eBody| |cCall eEnt| |
|
|
9
|
+
* | |Body | | | |
|
|
10
|
+
* +-------------+ +-------------+ +-------------+
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
// cygwin 用の簡易な型定義
|
|
15
|
+
import( <cygwin_kernel.cdl> );
|
|
16
|
+
// TECS 対応 TOPPERS/ASP ならば import( <kernel.cdl> ); でよい
|
|
17
|
+
import( <tSysLog.cdl> );
|
|
18
|
+
|
|
19
|
+
cell tSysLog SysLog {};
|
|
20
|
+
cell tKernel Kernel {};
|
|
21
|
+
|
|
22
|
+
signature sSample {
|
|
23
|
+
ER sayHello( [in]int32_t times );
|
|
24
|
+
ER howAreYou( [out,string(len)]char_t *buf, [in]int32_t len );
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
celltype tSample {
|
|
28
|
+
entry sSample eEnt;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
[singleton,active]
|
|
32
|
+
celltype tSimple {
|
|
33
|
+
call sSample cCall;
|
|
34
|
+
entry sTaskBody eBody;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
cell tSample Sample {
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
cell tSimple Simple {
|
|
41
|
+
[through(TracePlugin,"")]
|
|
42
|
+
cCall = Sample.eEnt;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
cell tTask Task {
|
|
46
|
+
cBody = Simple.eBody;
|
|
47
|
+
priority = 11;
|
|
48
|
+
stackSize = 1024;
|
|
49
|
+
taskAttribute = C_EXP( "TA_ACT" );
|
|
50
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Simple な Sample
|
|
3
|
+
*
|
|
4
|
+
* +-------------+ +-------------+ +-------------+
|
|
5
|
+
* | | | | | |
|
|
6
|
+
* | tTask | sTaskBody | tSimple | sSample | tSample |
|
|
7
|
+
* | Task |-----------|> Simple |----------|> Sample |
|
|
8
|
+
* | |cTask eBody| |cCall eEnt| |
|
|
9
|
+
* | |Body | | | |
|
|
10
|
+
* +-------------+ +-------------+ +-------------+
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
// cygwin 用の簡易な型定義
|
|
15
|
+
import( <cygwin_kernel.cdl> );
|
|
16
|
+
// TECS 対応 TOPPERS/ASP ならば import( <kernel.cdl> ); でよい
|
|
17
|
+
|
|
18
|
+
signature sSample {
|
|
19
|
+
ER sayHello( [in]int32_t times );
|
|
20
|
+
ER howAreYou( [out,string(len)]char_t *buf, [in]int32_t len );
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
celltype tSample {
|
|
24
|
+
entry sSample eEnt;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
[singleton]
|
|
28
|
+
celltype tSimple {
|
|
29
|
+
call sSample cCall;
|
|
30
|
+
entry sTaskBody eBody;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
cell tSample Sample {
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
cell tSimple Simple {
|
|
37
|
+
cCall = Sample.eEnt;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
cell tTask Task {
|
|
41
|
+
cBody = Simple.eBody;
|
|
42
|
+
priority = 11;
|
|
43
|
+
stackSize = 1024;
|
|
44
|
+
taskAttribute = C_EXP( "TA_ACT" );
|
|
45
|
+
};
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
|
|
2
|
+
/* #[<PREAMBLE>]#
|
|
3
|
+
* #[<...>]# ���� #[</...>]# �ǰϤޤ줿�����Ȥ��Խ����ʤ��Ǥ�������
|
|
4
|
+
* tecsmerge �ˤ��ޡ����˻��Ѥ���ޤ�
|
|
5
|
+
*
|
|
6
|
+
* #[</PREAMBLE>]# */
|
|
7
|
+
|
|
8
|
+
#include <stdio.h>
|
|
9
|
+
#include <string.h>
|
|
10
|
+
#include "tSample_tecsgen.h"
|
|
11
|
+
|
|
12
|
+
#ifndef E_OK
|
|
13
|
+
#define E_OK 0 /* 正常終了 */
|
|
14
|
+
#define E_ID (-18) /* 不正ID番号 */
|
|
15
|
+
#endif
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
/* 受け口関数 #_TEPF_# */
|
|
19
|
+
/* #[<ENTRY_PORT>]# eEnt
|
|
20
|
+
* entry port: eEnt
|
|
21
|
+
* signature: sSample
|
|
22
|
+
* context: task
|
|
23
|
+
* #[</ENTRY_PORT>]# */
|
|
24
|
+
|
|
25
|
+
/* #[<ENTRY_FUNC>]# eEnt_sayHello
|
|
26
|
+
* name: eEnt_sayHello
|
|
27
|
+
* global_name: tSample_eEnt_sayHello
|
|
28
|
+
* oneway: false
|
|
29
|
+
* #[</ENTRY_FUNC>]# */
|
|
30
|
+
ER
|
|
31
|
+
eEnt_sayHello(CELLIDX idx, int32_t times)
|
|
32
|
+
{
|
|
33
|
+
ER ercd = E_OK;
|
|
34
|
+
CELLCB *p_cellcb;
|
|
35
|
+
if (VALID_IDX(idx)) {
|
|
36
|
+
p_cellcb = GET_CELLCB(idx);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
return(E_ID);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/* ここに処理本体を記述します */
|
|
43
|
+
printf( "Sample: " );
|
|
44
|
+
while( times-- > 0 )
|
|
45
|
+
printf( "hello " );
|
|
46
|
+
printf( "\n" );
|
|
47
|
+
|
|
48
|
+
return(ercd);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/* #[<ENTRY_FUNC>]# eEnt_howAreYou
|
|
52
|
+
* name: eEnt_howAreYou
|
|
53
|
+
* global_name: tSample_eEnt_howAreYou
|
|
54
|
+
* oneway: false
|
|
55
|
+
* #[</ENTRY_FUNC>]# */
|
|
56
|
+
ER
|
|
57
|
+
eEnt_howAreYou(CELLIDX idx, char_t* buf, int32_t len)
|
|
58
|
+
{
|
|
59
|
+
ER ercd = E_OK;
|
|
60
|
+
CELLCB *p_cellcb;
|
|
61
|
+
if (VALID_IDX(idx)) {
|
|
62
|
+
p_cellcb = GET_CELLCB(idx);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
return(E_ID);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/* ここに処理本体を記述します */
|
|
69
|
+
strncpy( buf, "Sample: I'm fine!", len );
|
|
70
|
+
|
|
71
|
+
return(ercd);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
/* #[<POSTAMBLE>]#
|
|
76
|
+
* �����겼����������ؿ���ޤ�
|
|
77
|
+
* #[</POSTAMBLE>]#*/
|