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,48 @@
|
|
|
1
|
+
|
|
2
|
+
/* #[<PREAMBLE>]#
|
|
3
|
+
* #[<...>]# ���� #[</...>]# �ǰϤޤ줿�����Ȥ��Խ����ʤ��Ǥ�������
|
|
4
|
+
* tecsmerge �ˤ��ޡ����˻��Ѥ���ޤ�
|
|
5
|
+
*
|
|
6
|
+
* �ƤӸ��ؿ� #_TCPF_#
|
|
7
|
+
* call port: cCall signature: sSample context:task
|
|
8
|
+
* ER cCall_sayHello( int32_t times );
|
|
9
|
+
* ER cCall_howAreYou( char_t* buf, int32_t len );
|
|
10
|
+
*
|
|
11
|
+
* #[</PREAMBLE>]# */
|
|
12
|
+
|
|
13
|
+
#include <stdio.h>
|
|
14
|
+
#include "tSimple_tecsgen.h"
|
|
15
|
+
|
|
16
|
+
#ifndef E_OK
|
|
17
|
+
#define E_OK 0 /* 正常終了 */
|
|
18
|
+
#define E_ID (-18) /* 不正ID番号 */
|
|
19
|
+
#endif
|
|
20
|
+
|
|
21
|
+
/* #[<ENTRY_PORT>]# eBody
|
|
22
|
+
* entry port: eBody
|
|
23
|
+
* signature: sTaskBody
|
|
24
|
+
* context: task
|
|
25
|
+
* #[</ENTRY_PORT>]# */
|
|
26
|
+
|
|
27
|
+
/* #[<ENTRY_FUNC>]# eBody_main
|
|
28
|
+
* name: eBody_main
|
|
29
|
+
* global_name: tSimple_eBody_main
|
|
30
|
+
* oneway: false
|
|
31
|
+
* #[</ENTRY_FUNC>]# */
|
|
32
|
+
void
|
|
33
|
+
eBody_main()
|
|
34
|
+
{
|
|
35
|
+
char buf[256];
|
|
36
|
+
|
|
37
|
+
#define N_HELLO 3
|
|
38
|
+
printf( "Simple: Say hello %d times.\n", N_HELLO );
|
|
39
|
+
cCall_sayHello( N_HELLO ); /* 呼び口 cCall の sayHello を呼び出す */
|
|
40
|
+
|
|
41
|
+
printf( "Simple: How are you?\n" );
|
|
42
|
+
cCall_howAreYou( buf, sizeof buf ); /* 呼び口 cCall の howAreYou を呼び出す */
|
|
43
|
+
puts( buf );
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/* #[<POSTAMBLE>]#
|
|
47
|
+
* �����겼����������ؿ���ޤ�
|
|
48
|
+
* #[</POSTAMBLE>]#*/
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#include <stdint.h>
|
|
2
|
+
typedef long ER;
|
|
3
|
+
typedef long ER_INT;
|
|
4
|
+
|
|
5
|
+
/* typedef long intptr_t; */
|
|
6
|
+
typedef int int_t;
|
|
7
|
+
typedef unsigned char char_t;
|
|
8
|
+
|
|
9
|
+
typedef unsigned char bool_t;
|
|
10
|
+
|
|
11
|
+
typedef double double64_t;
|
|
12
|
+
typedef float float32_t;
|
|
13
|
+
|
|
14
|
+
/*
|
|
15
|
+
typedef signed long int32_t;
|
|
16
|
+
typedef signed short int16_t;
|
|
17
|
+
typedef signed char int8_t;
|
|
18
|
+
|
|
19
|
+
typedef unsigned long uint32_t;
|
|
20
|
+
typedef unsigned short uint16_t;
|
|
21
|
+
typedef unsigned char uint8_t;
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
int64_t, uint64_t, int128_t, uint128_t ga
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
TARGET = SimpleSample.exe
|
|
2
|
+
TIMESTAMP = tecsgen.timestamp
|
|
3
|
+
TECSGEN_EXE = tecsgen
|
|
4
|
+
CYGPATH = ../../cygwin
|
|
5
|
+
BASE_DIR = .
|
|
6
|
+
CC = gcc
|
|
7
|
+
INCLUDE = -I $(BASE_DIR)/. -I $(TECSPATH) -I $(CYGPATH) -I $(TECSPATH)/rpc -I $(GEN_DIR)
|
|
8
|
+
CFLAGS = $(INCLUDE) -I $(BASE_DIR)/src -I $(GEN_DIR) -D "Inline=static inline"
|
|
9
|
+
LD = gcc
|
|
10
|
+
LDFLAGS =
|
|
11
|
+
GEN_DIR = $(BASE_DIR)/gen
|
|
12
|
+
SRC_DIR = $(BASE_DIR)/src
|
|
13
|
+
_TECS_OBJ_DIR = $(GEN_DIR)/
|
|
14
|
+
# _TECS_OBJ_DIR # should be end with '/'
|
|
15
|
+
|
|
16
|
+
vpath %.c $(SRC_DIR) $(GEN_DIR) $(TECSPATH) $(TECSPATH)/rpc $(CYGPATH)
|
|
17
|
+
vpath %.h $(SRC_DIR) $(GEN_DIR) $(TECSPATH) $(TECSPATH)/rpc $(CYGPATH)
|
|
18
|
+
|
|
19
|
+
# OTHER_OBJS = # Add objects out of tecs care.
|
|
20
|
+
OTHER_OBJS = $(_TECS_OBJ_DIR)vasyslog.o
|
|
21
|
+
|
|
22
|
+
# ルール #_MRUL_#
|
|
23
|
+
allall: tecs
|
|
24
|
+
make all # in order to include generated Makefile.tecsgen & Makefile.depend
|
|
25
|
+
|
|
26
|
+
all : sub_regions
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
# depend を include #_MDEP_#
|
|
30
|
+
-include $(GEN_DIR)/Makefile.tecsgen
|
|
31
|
+
|
|
32
|
+
sub_regions:$(TIMESTAMP)
|
|
33
|
+
cd rSample; make all
|
|
34
|
+
cd rSimple; make all
|
|
35
|
+
|
|
36
|
+
clean :
|
|
37
|
+
cd rSample; make clean
|
|
38
|
+
cd rSimple; make clean
|
|
39
|
+
rm -f $(CELLTYPE_COBJS) $(TECSGEN_COBJS) $(PLUGIN_COBJS) $(OTHER_OBJS) $(TARGET) $(TIMESTAMP)
|
|
40
|
+
rm -rf $(GEN_DIR)
|
|
41
|
+
|
|
42
|
+
tecs : $(TIMESTAMP)
|
|
43
|
+
|
|
44
|
+
$(TIMESTAMP) : $(TECS_IMPORTS)
|
|
45
|
+
$(TECSGEN_EXE) $(INCLUDE) -k euc -I src SimpleSample.cdl
|
|
46
|
+
touch $(TIMESTAMP)
|
|
47
|
+
|
|
48
|
+
# generic target for objs
|
|
49
|
+
$(_TECS_OBJ_DIR)%.o : %.c
|
|
50
|
+
$(CC) -c $(CFLAGS) -o $@ $<
|
|
51
|
+
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# このファイルは tecsgen により自動生成されました
|
|
2
|
+
# Makefile.temp は gen の一つ上のディレクトリに移して使用します
|
|
3
|
+
# % mv Makefile.temp Makefile
|
|
4
|
+
#
|
|
5
|
+
# clean のデフォルト動作は $(GEN_DIR)/Makefile.* を削除します
|
|
6
|
+
#
|
|
7
|
+
# このファイルは GNU make で gcc を用い POSIX 環境で動作するモジュールをビルドするのに適切なように生成されています
|
|
8
|
+
# vpath, CFLAGS, OTHER_OBJS などを調整する必要があるかもしれません
|
|
9
|
+
# 他の環境やターゲットの場合、このファイルを元に変更する必要があります
|
|
10
|
+
|
|
11
|
+
# 変数 #_MVAR_#
|
|
12
|
+
# fixed variable (unchangeable by config or plugin)
|
|
13
|
+
TARGET_BASE = SimpleSample-trace
|
|
14
|
+
BASE_DIR = .
|
|
15
|
+
GEN_DIR = $(BASE_DIR)/gen
|
|
16
|
+
INCLUDES = -I $(TECSPATH) -I $(TECSPATH)/../test/cygwin -I $(TECSPATH)/rpc -I $(BASE_DIR)/./gen -I $(BASE_DIR)/src -I $(TECSPATH)/mruby -I $(TECSPATH)/posix -I $(GEN_DIR)
|
|
17
|
+
DEFINES =
|
|
18
|
+
|
|
19
|
+
# end of fixed variable (unchangeable by config or plugin)
|
|
20
|
+
#default C Compiler
|
|
21
|
+
CC = gcc
|
|
22
|
+
|
|
23
|
+
#default C Compiler options
|
|
24
|
+
CFLAGS = $(INCLUDES) $(DEFINES) -D "Inline=static inline"
|
|
25
|
+
|
|
26
|
+
#default Liknker
|
|
27
|
+
LD = gcc
|
|
28
|
+
|
|
29
|
+
#default Liknker Options
|
|
30
|
+
LDFLAGS =
|
|
31
|
+
|
|
32
|
+
#default srource directory
|
|
33
|
+
SRC_DIR = $(BASE_DIR)/src
|
|
34
|
+
|
|
35
|
+
#default target name
|
|
36
|
+
TARGET = $(TARGET_BASE).exe
|
|
37
|
+
|
|
38
|
+
#default TECS generator
|
|
39
|
+
TECSGEN_EXE = tecsgen
|
|
40
|
+
|
|
41
|
+
#Time Stamp
|
|
42
|
+
TIMESTAMP = tecsgen.timestamp
|
|
43
|
+
|
|
44
|
+
#default relocatable object (.o) directory
|
|
45
|
+
_TECS_OBJ_DIR = $(GEN_DIR)/
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
# Pre-tecsgen target
|
|
50
|
+
PRE_TECSGEN_TARGET =
|
|
51
|
+
|
|
52
|
+
# Post-tecsgen target
|
|
53
|
+
POST_TECSGEN_TARGET =
|
|
54
|
+
|
|
55
|
+
# vpath for C sources and headers
|
|
56
|
+
vpath %.c $(SRC_DIR) $(GEN_DIR) $(TECSPATH) $(TECSPATH)/../test/cygwin $(TECSPATH)/rpc ./gen src $(TECSPATH)/mruby $(TECSPATH)/posix
|
|
57
|
+
vpath %.h $(SRC_DIR) $(GEN_DIR) $(TECSPATH) $(TECSPATH)/../test/cygwin $(TECSPATH)/rpc ./gen src $(TECSPATH)/mruby $(TECSPATH)/posix
|
|
58
|
+
|
|
59
|
+
# Other objects (out of tecsgen)
|
|
60
|
+
# OTHER_OBJS = # Add objects out of tecs care.
|
|
61
|
+
OTHER_OBJS = $(_TECS_OBJ_DIR)vasyslog.o
|
|
62
|
+
# ルール #_MRUL_#
|
|
63
|
+
allall: tecs
|
|
64
|
+
make -f Makefile-trace all # in order to include generated Makefile.tecsgen & Makefile.depend
|
|
65
|
+
|
|
66
|
+
all : sub_regions
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
# depend を include #_MDEP_#
|
|
70
|
+
-include $(GEN_DIR)/Makefile.tecsgen
|
|
71
|
+
|
|
72
|
+
sub_regions:$(TIMESTAMP)
|
|
73
|
+
cd rSample; make all
|
|
74
|
+
cd rSimple; make all
|
|
75
|
+
|
|
76
|
+
clean :
|
|
77
|
+
cd rSample; make clean
|
|
78
|
+
cd rSimple; make clean
|
|
79
|
+
rm -f $(CELLTYPE_COBJS) $(TECSGEN_COBJS) $(PLUGIN_COBJS) $(OTHER_OBJS) $(TARGET) $(TIMESTAMP)
|
|
80
|
+
rm -rf $(GEN_DIR)
|
|
81
|
+
|
|
82
|
+
tecs : $(PRE_TECSGEN_TARGET) $(TIMESTAMP) $(POST_TECSGEN_TARGET)
|
|
83
|
+
|
|
84
|
+
$(TIMESTAMP) : $(TECS_IMPORTS)
|
|
85
|
+
$(TECSGEN_EXE) -I $(TECSPATH) -I $(TECSPATH)/../test/cygwin -I $(TECSPATH)/rpc -I ./gen -k euc -I src SimpleSample-trace.cdl
|
|
86
|
+
touch $(TIMESTAMP)
|
|
87
|
+
|
|
88
|
+
# generic target for objs
|
|
89
|
+
$(_TECS_OBJ_DIR)%.o : %.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,80 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Simple な Sample (OpaqueRPC 版)
|
|
3
|
+
* sSocketClientOpener
|
|
4
|
+
* +---------------------------------------+
|
|
5
|
+
* |cOpener |eOpener
|
|
6
|
+
* +-------------+ +-------------+ +-------------+ | +-------------+
|
|
7
|
+
* | | | | | | V | |
|
|
8
|
+
* | tTask | sTaskBody | tTaskMain | sTaskBody | tSimple | sSample | tSample |
|
|
9
|
+
* | Task |-----------| TaskMain |-----------|> Simple |==========|> Sample |
|
|
10
|
+
* | |cTask eBody| |cBody eBody| |cCall eEnt| |
|
|
11
|
+
* | |Body | | | | | |
|
|
12
|
+
* +-------------+ +-------------+ +-------------+ +-------------+
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
// cygwin 用の簡易な型定義
|
|
17
|
+
import( <cygwin_kernel.cdl> );
|
|
18
|
+
// TECS 対応 TOPPERS/ASP ならば import( <kernel.cdl> ); でよい
|
|
19
|
+
|
|
20
|
+
import( <tSysLog.cdl> );
|
|
21
|
+
import( <rpc.cdl> );
|
|
22
|
+
import( <tSocketChannel.cdl> );
|
|
23
|
+
|
|
24
|
+
signature sSample {
|
|
25
|
+
ER sayHello( [in]int32_t times );
|
|
26
|
+
ER howAreYou( [out,string(len)]char_t *buf, [in]int32_t len );
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
celltype tSample {
|
|
30
|
+
entry sSample eEnt;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
[singleton,active]
|
|
34
|
+
celltype tSimple {
|
|
35
|
+
call sSample cCall;
|
|
36
|
+
entry sTaskBody eBody;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
celltype tTaskMain {
|
|
40
|
+
entry sTaskBody eBody;
|
|
41
|
+
call sTaskBody cBody;
|
|
42
|
+
call sSocketClientOpener cOpener;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
[linkunit]
|
|
46
|
+
region rSample {
|
|
47
|
+
cell tSysLog SysLog {
|
|
48
|
+
};
|
|
49
|
+
cell tKernel Kernel {
|
|
50
|
+
};
|
|
51
|
+
cell tSample Sample {
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
[linkunit,
|
|
56
|
+
to_through( rSample, OpaqueRPCPlugin,
|
|
57
|
+
"PPAllocatorSize=1024,"
|
|
58
|
+
"clientChannelCell= 'ClientChannel', " // クライアント側チャンネルセル名
|
|
59
|
+
)]
|
|
60
|
+
region rSimple {
|
|
61
|
+
cell tSysLog SysLog {
|
|
62
|
+
};
|
|
63
|
+
cell tKernel Kernel {
|
|
64
|
+
};
|
|
65
|
+
cell tSimple Simple {
|
|
66
|
+
[through(TracePlugin,"")]
|
|
67
|
+
cCall = rSample::Sample.eEnt;
|
|
68
|
+
};
|
|
69
|
+
cell tTaskMain TaskMain {
|
|
70
|
+
cBody = Simple.eBody;
|
|
71
|
+
cOpener = ClientChannel.eOpener;
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
cell tTask Task {
|
|
75
|
+
cBody = TaskMain.eBody;
|
|
76
|
+
priority = 11;
|
|
77
|
+
stackSize = 1024;
|
|
78
|
+
taskAttribute = C_EXP( "TA_ACT" );
|
|
79
|
+
};
|
|
80
|
+
};
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Simple な Sample (OpaqueRPC 版)
|
|
3
|
+
* sSocketClientOpener
|
|
4
|
+
* +---------------------------------------+
|
|
5
|
+
* |cOpener |eOpener
|
|
6
|
+
* +-------------+ +-------------+ +-------------+ | +-------------+
|
|
7
|
+
* | | | | | | V | |
|
|
8
|
+
* | tTask | sTaskBody | tTaskMain | sTaskBody | tSimple | sSample | tSample |
|
|
9
|
+
* | Task |-----------| TaskMain |-----------|> Simple |==========|> Sample |
|
|
10
|
+
* | |cTask eBody| |cBody eBody| |cCall eEnt| |
|
|
11
|
+
* | |Body | | | | | |
|
|
12
|
+
* +-------------+ +-------------+ +-------------+ +-------------+
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
// cygwin 用の簡易な型定義
|
|
17
|
+
import( <cygwin_kernel.cdl> );
|
|
18
|
+
// TECS 対応 TOPPERS/ASP ならば import( <kernel.cdl> ); でよい
|
|
19
|
+
|
|
20
|
+
import( <tSysLog.cdl> );
|
|
21
|
+
import( <rpc.cdl> );
|
|
22
|
+
import( <tSocketChannel.cdl> );
|
|
23
|
+
|
|
24
|
+
signature sSample {
|
|
25
|
+
ER sayHello( [in]int32_t times );
|
|
26
|
+
ER howAreYou( [out,string(len)]char_t *buf, [in]int32_t len );
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
celltype tSample {
|
|
30
|
+
entry sSample eEnt;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
[singleton]
|
|
34
|
+
celltype tSimple {
|
|
35
|
+
call sSample cCall;
|
|
36
|
+
entry sTaskBody eBody;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
celltype tTaskMain {
|
|
40
|
+
entry sTaskBody eBody;
|
|
41
|
+
call sTaskBody cBody;
|
|
42
|
+
call sSocketClientOpener cOpener;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
[linkunit]
|
|
46
|
+
region rSample {
|
|
47
|
+
cell tSysLog SysLog {
|
|
48
|
+
};
|
|
49
|
+
cell tKernel Kernel {
|
|
50
|
+
};
|
|
51
|
+
cell tSample Sample {
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
[linkunit,
|
|
56
|
+
to_through( rSample, OpaqueRPCPlugin,
|
|
57
|
+
"PPAllocatorSize=1024,"
|
|
58
|
+
"clientChannelCell= 'ClientChannel', " // クライアント側チャンネルセル名
|
|
59
|
+
)]
|
|
60
|
+
region rSimple {
|
|
61
|
+
cell tSysLog SysLog {
|
|
62
|
+
};
|
|
63
|
+
cell tSimple Simple {
|
|
64
|
+
cCall = rSample::Sample.eEnt;
|
|
65
|
+
};
|
|
66
|
+
cell tTaskMain TaskMain {
|
|
67
|
+
cBody = Simple.eBody;
|
|
68
|
+
cOpener = ClientChannel.eOpener;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
cell tTask Task {
|
|
72
|
+
cBody = TaskMain.eBody;
|
|
73
|
+
priority = 11;
|
|
74
|
+
stackSize = 1024;
|
|
75
|
+
taskAttribute = C_EXP( "TA_ACT" );
|
|
76
|
+
};
|
|
77
|
+
};
|