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.
Files changed (237) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/.rubocop.yml +125 -0
  4. data/.rubocop_todo.yml +188 -0
  5. data/CHANGELOG.md +3 -0
  6. data/Gemfile +6 -0
  7. data/LICENSE +46 -0
  8. data/LICENSE.ja +32 -0
  9. data/README.ja.md +200 -0
  10. data/README.md +35 -0
  11. data/Rakefile +27 -0
  12. data/bin/tecscde +64 -0
  13. data/glade/tecscde-cell-property.glade +205 -0
  14. data/glade/tecscde-celltype-property.glade +172 -0
  15. data/glade/tecscde-celltype.glade +414 -0
  16. data/glade/tecscde-export.glade +161 -0
  17. data/glade/test-cell-plugin.rb +51 -0
  18. data/glade/test-cell-property.rb +35 -0
  19. data/glade/test-export.rb +35 -0
  20. data/glade/test-palette.rb +26 -0
  21. data/lib/tcflow.rb +148 -0
  22. data/lib/tecscde.rb +65 -0
  23. data/lib/tecscde/NewCell.png +0 -0
  24. data/lib/tecscde/SelectArrow.png +0 -0
  25. data/lib/tecscde/attr_tree_view.rb +253 -0
  26. data/lib/tecscde/cell_plugin_dialog.glade +294 -0
  27. data/lib/tecscde/cell_plugin_dialog.rb +89 -0
  28. data/lib/tecscde/celltype_tree_view.rb +105 -0
  29. data/lib/tecscde/change_set_control.rb +35 -0
  30. data/lib/tecscde/change_set_control/change_set.rb +32 -0
  31. data/lib/tecscde/change_set_control/change_set_manager.rb +62 -0
  32. data/lib/tecscde/command.rb +35 -0
  33. data/lib/tecscde/control.rb +491 -0
  34. data/lib/tecscde/highlighted_objects.rb +180 -0
  35. data/lib/tecscde/logger.rb +74 -0
  36. data/lib/tecscde/main_view_and_model.rb +80 -0
  37. data/lib/tecscde/palette.glade +553 -0
  38. data/lib/tecscde/palette.rb +174 -0
  39. data/lib/tecscde/preferences.glade +117 -0
  40. data/lib/tecscde/preferences.rb +44 -0
  41. data/lib/tecscde/tecs_model.rb +1137 -0
  42. data/lib/tecscde/tecs_model/hbar.rb +68 -0
  43. data/lib/tecscde/tecs_model/tm_c_port.rb +122 -0
  44. data/lib/tecscde/tecs_model/tm_c_port_array.rb +98 -0
  45. data/lib/tecscde/tecs_model/tm_cell.rb +496 -0
  46. data/lib/tecscde/tecs_model/tm_e_port.rb +126 -0
  47. data/lib/tecscde/tecs_model/tm_e_port_array.rb +78 -0
  48. data/lib/tecscde/tecs_model/tm_join.rb +293 -0
  49. data/lib/tecscde/tecs_model/tm_join_bar.rb +146 -0
  50. data/lib/tecscde/tecs_model/tm_port.rb +238 -0
  51. data/lib/tecscde/tecs_model/tm_port_array.rb +246 -0
  52. data/lib/tecscde/tecs_model/tm_region.rb +107 -0
  53. data/lib/tecscde/tecs_model/tm_uneditable.rb +68 -0
  54. data/lib/tecscde/tecs_model/vbar.rb +68 -0
  55. data/lib/tecscde/templates/_cell_info.cde.erb +15 -0
  56. data/lib/tecscde/templates/_join_info.cde.erb +28 -0
  57. data/lib/tecscde/templates/main.cde.erb +49 -0
  58. data/lib/tecscde/tm_object.rb +91 -0
  59. data/lib/tecscde/version.rb +4 -0
  60. data/lib/tecscde/view.rb +58 -0
  61. data/lib/tecscde/view/cairo_matrix.rb +90 -0
  62. data/lib/tecscde/view/canvas.rb +59 -0
  63. data/lib/tecscde/view/constants.rb +114 -0
  64. data/lib/tecscde/view/main_view.rb +1245 -0
  65. data/lib/tecsflow.rb +475 -0
  66. data/lib/tecsflow/C_parser.tab.rb +2471 -0
  67. data/lib/tecsflow/C_parser.y.rb +1087 -0
  68. data/lib/tecsflow/classes.rb +421 -0
  69. data/lib/tecsgen.rb +581 -0
  70. data/lib/tecsgen/core/C_parser.tab.rb +2477 -0
  71. data/lib/tecsgen/core/C_parser.y +1032 -0
  72. data/lib/tecsgen/core/bnf-deb.tab.rb +5193 -0
  73. data/lib/tecsgen/core/bnf.tab.rb +5193 -0
  74. data/lib/tecsgen/core/bnf.y +2211 -0
  75. data/lib/tecsgen/core/componentobj.rb +7901 -0
  76. data/lib/tecsgen/core/ctypes.rb +226 -0
  77. data/lib/tecsgen/core/expression.rb +1031 -0
  78. data/lib/tecsgen/core/gen_xml.rb +374 -0
  79. data/lib/tecsgen/core/generate.rb +5206 -0
  80. data/lib/tecsgen/core/location.rb +116 -0
  81. data/lib/tecsgen/core/messages.rb +101 -0
  82. data/lib/tecsgen/core/optimize.rb +456 -0
  83. data/lib/tecsgen/core/plugin.rb +332 -0
  84. data/lib/tecsgen/core/pluginModule.rb +165 -0
  85. data/lib/tecsgen/core/syntaxobj.rb +1234 -0
  86. data/lib/tecsgen/core/tecs_lang.rb +306 -0
  87. data/lib/tecsgen/core/tecsgen.rb +453 -0
  88. data/lib/tecsgen/core/tecsinfo.rb +860 -0
  89. data/lib/tecsgen/core/tool_info.rb +258 -0
  90. data/lib/tecsgen/core/types.rb +1632 -0
  91. data/lib/tecsgen/core/unjoin_plugin.rb +218 -0
  92. data/lib/tecsgen/core/value.rb +650 -0
  93. data/lib/tecsgen/messages/messages_console_en_US.rb +1171 -0
  94. data/lib/tecsgen/messages/messages_console_ja_JP.rb +1171 -0
  95. data/lib/tecsgen/messages/messages_file_en_US.rb +334 -0
  96. data/lib/tecsgen/messages/messages_file_ja_JP.rb +163 -0
  97. data/lib/tecsgen/plugin/ATK1AlarmPlugin.rb +196 -0
  98. data/lib/tecsgen/plugin/ATK1DelayTaskPlugin.rb +106 -0
  99. data/lib/tecsgen/plugin/ATK1EventPlugin.rb +147 -0
  100. data/lib/tecsgen/plugin/ATK1ISRPlugin.rb +174 -0
  101. data/lib/tecsgen/plugin/ATK1KernelPlugin.rb +287 -0
  102. data/lib/tecsgen/plugin/ATK1ResourcePlugin.rb +124 -0
  103. data/lib/tecsgen/plugin/ATK1TaskPlugin.rb +220 -0
  104. data/lib/tecsgen/plugin/C2TECSBridgePlugin.rb +210 -0
  105. data/lib/tecsgen/plugin/CellPlugin.rb +61 -0
  106. data/lib/tecsgen/plugin/CelltypePlugin.rb +72 -0
  107. data/lib/tecsgen/plugin/CompositePlugin.rb +66 -0
  108. data/lib/tecsgen/plugin/DomainPlugin.rb +89 -0
  109. data/lib/tecsgen/plugin/HRP2AlarmHandlerPlugin.rb +76 -0
  110. data/lib/tecsgen/plugin/HRP2Cache.rb +1 -0
  111. data/lib/tecsgen/plugin/HRP2CyclicHandlerPlugin.rb +75 -0
  112. data/lib/tecsgen/plugin/HRP2DataqueuePlugin.rb +68 -0
  113. data/lib/tecsgen/plugin/HRP2EventflagPlugin.rb +68 -0
  114. data/lib/tecsgen/plugin/HRP2FixedSizeMemoryPoolPlugin.rb +68 -0
  115. data/lib/tecsgen/plugin/HRP2HandlerPlugin.rb +117 -0
  116. data/lib/tecsgen/plugin/HRP2KernelObjectPlugin.rb +372 -0
  117. data/lib/tecsgen/plugin/HRP2ObjectPlugin.rb +94 -0
  118. data/lib/tecsgen/plugin/HRP2Plugin.rb +140 -0
  119. data/lib/tecsgen/plugin/HRP2PostHook.rb +111 -0
  120. data/lib/tecsgen/plugin/HRP2PriorityDataqueuePlugin.rb +66 -0
  121. data/lib/tecsgen/plugin/HRP2RPCPlugin.rb +319 -0
  122. data/lib/tecsgen/plugin/HRP2SVCPlugin.rb +473 -0
  123. data/lib/tecsgen/plugin/HRP2SemaphorePlugin.rb +67 -0
  124. data/lib/tecsgen/plugin/HRP2TaskPlugin.rb +200 -0
  125. data/lib/tecsgen/plugin/HRPHandlerPlugin.rb +125 -0
  126. data/lib/tecsgen/plugin/HRPKernelObjectManager.rb +72 -0
  127. data/lib/tecsgen/plugin/HRPKernelObjectPlugin.rb +333 -0
  128. data/lib/tecsgen/plugin/HRPObjectPlugin.rb +93 -0
  129. data/lib/tecsgen/plugin/HRPPlugin.rb +356 -0
  130. data/lib/tecsgen/plugin/HRPRPCPlugin.rb +407 -0
  131. data/lib/tecsgen/plugin/HRPSVCPlugin.rb +859 -0
  132. data/lib/tecsgen/plugin/HRPTaskPlugin.rb +107 -0
  133. data/lib/tecsgen/plugin/Mruby2CBridgePlugin.rb +86 -0
  134. data/lib/tecsgen/plugin/MrubyBridgeCellPlugin.rb +264 -0
  135. data/lib/tecsgen/plugin/MrubyBridgeCelltypePlugin.rb +293 -0
  136. data/lib/tecsgen/plugin/MrubyBridgeCompositePlugin.rb +49 -0
  137. data/lib/tecsgen/plugin/MrubyBridgePlugin.rb +67 -0
  138. data/lib/tecsgen/plugin/MrubyBridgeSignaturePlugin.rb +1307 -0
  139. data/lib/tecsgen/plugin/MrubyInfoBridgePlugin.rb +14 -0
  140. data/lib/tecsgen/plugin/MrubyInfoBridgeSignaturePlugin.rb +994 -0
  141. data/lib/tecsgen/plugin/MultiPlugin.rb +57 -0
  142. data/lib/tecsgen/plugin/NotifierPlugin.rb +1217 -0
  143. data/lib/tecsgen/plugin/OpaqueMarshalerPlugin.rb +81 -0
  144. data/lib/tecsgen/plugin/OpaqueRPCPlugin.rb +323 -0
  145. data/lib/tecsgen/plugin/RPCPlugin.rb +266 -0
  146. data/lib/tecsgen/plugin/RepeatCellPlugin.rb +166 -0
  147. data/lib/tecsgen/plugin/RepeatJoinPlugin.rb +130 -0
  148. data/lib/tecsgen/plugin/SharedOpaqueRPCPlugin.rb +357 -0
  149. data/lib/tecsgen/plugin/SharedRPCPlugin.rb +329 -0
  150. data/lib/tecsgen/plugin/SignaturePlugin.rb +77 -0
  151. data/lib/tecsgen/plugin/TECS2CBridgePlugin.rb +178 -0
  152. data/lib/tecsgen/plugin/TECSInfoPlugin.rb +280 -0
  153. data/lib/tecsgen/plugin/ThroughPlugin.rb +333 -0
  154. data/lib/tecsgen/plugin/TracePlugin.rb +484 -0
  155. data/lib/tecsgen/plugin/lib/GenHRP2Marshaler.rb +761 -0
  156. data/lib/tecsgen/plugin/lib/GenOpaqueMarshaler.rb +1107 -0
  157. data/lib/tecsgen/plugin/lib/GenParamCopy.rb +365 -0
  158. data/lib/tecsgen/plugin/lib/GenTransparentMarshaler.rb +683 -0
  159. data/lib/tecsgen/plugin/lib/MrubyBridgeCelltypePluginModule.rb +283 -0
  160. data/lib/tecsgen/plugin/lib/MrubyBridgeSignaturePluginModule.rb +277 -0
  161. data/lib/tecsgen/version.rb +6 -0
  162. data/samples/FigureSamples/active/active.cde +104 -0
  163. data/samples/FigureSamples/active/active.cdl +20 -0
  164. data/samples/FigureSamples/active/active.pdf +0 -0
  165. data/samples/FigureSamples/active/active.png +0 -0
  166. data/samples/FigureSamples/active/gen/tmp_C_src.c +36 -0
  167. data/samples/FigureSamples/active/gen/tmp_cygwin_tecs.h +1908 -0
  168. data/samples/FigureSamples/active/gen/tmp_plugin_post_code.cdl +0 -0
  169. data/samples/FigureSamples/allocator/allocator-internal.png +0 -0
  170. data/samples/FigureSamples/allocator/allocator.cde +171 -0
  171. data/samples/FigureSamples/allocator/allocator.cdl +58 -0
  172. data/samples/FigureSamples/allocator/allocator.png +0 -0
  173. data/samples/FigureSamples/basic/Makefile +87 -0
  174. data/samples/FigureSamples/basic/SimpleSample-trace.cdl +50 -0
  175. data/samples/FigureSamples/basic/SimpleSample.cde +91 -0
  176. data/samples/FigureSamples/basic/SimpleSample.cdl +47 -0
  177. data/samples/FigureSamples/basic/basic.cde +93 -0
  178. data/samples/FigureSamples/basic/basic.cdl +46 -0
  179. data/samples/FigureSamples/basic/basic.png +0 -0
  180. data/samples/FigureSamples/callback/callback.cde +130 -0
  181. data/samples/FigureSamples/callback/callback.cdl +29 -0
  182. data/samples/FigureSamples/callback/callback.png +0 -0
  183. data/samples/FigureSamples/carray/carray.cde +144 -0
  184. data/samples/FigureSamples/carray/carray.cdl +38 -0
  185. data/samples/FigureSamples/carray/carray.png +0 -0
  186. data/samples/FigureSamples/cearray/cearray.cde +314 -0
  187. data/samples/FigureSamples/cearray/cearray.cdl +60 -0
  188. data/samples/FigureSamples/cearray/cearray.png +0 -0
  189. data/samples/FigureSamples/composite/composite-internal.png +0 -0
  190. data/samples/FigureSamples/composite/composite.cde +216 -0
  191. data/samples/FigureSamples/composite/composite.cdl +95 -0
  192. data/samples/FigureSamples/composite/composite.png +0 -0
  193. data/samples/FigureSamples/earray/earray.cde +142 -0
  194. data/samples/FigureSamples/earray/earray.cdl +38 -0
  195. data/samples/FigureSamples/earray/earray.png +0 -0
  196. data/samples/FigureSamples/join/Makefile +87 -0
  197. data/samples/FigureSamples/join/join.cde +132 -0
  198. data/samples/FigureSamples/join/join.cdl +40 -0
  199. data/samples/FigureSamples/join/join.png +0 -0
  200. data/samples/FigureSamples/relay/Makefile +99 -0
  201. data/samples/FigureSamples/relay/relay-internal.png +0 -0
  202. data/samples/FigureSamples/relay/relay.cde +284 -0
  203. data/samples/FigureSamples/relay/relay.cdl +52 -0
  204. data/samples/FigureSamples/relay/relay.png +0 -0
  205. data/samples/FigureSamples/rpc/Makefile +123 -0
  206. data/samples/FigureSamples/rpc/rpc-expand.png +0 -0
  207. data/samples/FigureSamples/rpc/rpc.cde +245 -0
  208. data/samples/FigureSamples/rpc/rpc.png +0 -0
  209. data/samples/FigureSamples/rpc/rpc_sample.cdl +53 -0
  210. data/samples/SimpleSample/Makefile +25 -0
  211. data/samples/SimpleSample/SimpleSample/Makefile +86 -0
  212. data/samples/SimpleSample/SimpleSample/Makefile-trace +91 -0
  213. data/samples/SimpleSample/SimpleSample/README.txt +106 -0
  214. data/samples/SimpleSample/SimpleSample/SimpleSample-trace.cdl +50 -0
  215. data/samples/SimpleSample/SimpleSample/SimpleSample.cdl +45 -0
  216. data/samples/SimpleSample/SimpleSample/src/tSample.c +77 -0
  217. data/samples/SimpleSample/SimpleSample/src/tSimple.c +48 -0
  218. data/samples/SimpleSample/SimpleSample/src/tecs-types.h +27 -0
  219. data/samples/SimpleSample/SimpleSampleOpaqueRPC/Makefile +51 -0
  220. data/samples/SimpleSample/SimpleSampleOpaqueRPC/Makefile-trace +91 -0
  221. data/samples/SimpleSample/SimpleSampleOpaqueRPC/README.txt +106 -0
  222. data/samples/SimpleSample/SimpleSampleOpaqueRPC/SimpleSample-trace.cdl +80 -0
  223. data/samples/SimpleSample/SimpleSampleOpaqueRPC/SimpleSample.cdl +77 -0
  224. data/samples/SimpleSample/SimpleSampleOpaqueRPC/rSample/Makefile +112 -0
  225. data/samples/SimpleSample/SimpleSampleOpaqueRPC/rSimple/Makefile +109 -0
  226. data/samples/SimpleSample/SimpleSampleOpaqueRPC/src/tSample.c +80 -0
  227. data/samples/SimpleSample/SimpleSampleOpaqueRPC/src/tSimple.c +47 -0
  228. data/samples/SimpleSample/SimpleSampleOpaqueRPC/src/tTaskMain.c +66 -0
  229. data/samples/SimpleSample/SimpleSampleOpaqueRPC/src/tecs-types.h +27 -0
  230. data/samples/SimpleSample/SimpleSampleTransparentRPC/Makefile +125 -0
  231. data/samples/SimpleSample/SimpleSampleTransparentRPC/Makefile-trace +130 -0
  232. data/samples/SimpleSample/SimpleSampleTransparentRPC/SimpleSample-trace.cdl +54 -0
  233. data/samples/SimpleSample/SimpleSampleTransparentRPC/SimpleSample.cdl +53 -0
  234. data/samples/SimpleSample/SimpleSampleTransparentRPC/src/tSample.c +80 -0
  235. data/samples/SimpleSample/SimpleSampleTransparentRPC/src/tSimple.c +54 -0
  236. data/tecscde.gemspec +41 -0
  237. 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>]#*/