Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
dmt
Commits
96d107fb
Commit
96d107fb
authored
Sep 18, 2018
by
Tiago Jorge
Browse files
Add Brave_Dispatcher generation to synchronousTool.py (to be implemented).
parent
57b6a5c2
Changes
2
Hide whitespace changes
Inline
Side-by-side
dmt/B_mappers/synchronousTool.py
View file @
96d107fb
...
@@ -170,6 +170,8 @@ class SynchronousToolGlueGeneratorGeneric(Generic[TSource, TDestin]):
...
@@ -170,6 +170,8 @@ class SynchronousToolGlueGeneratorGeneric(Generic[TSource, TDestin]):
self
.
C_HeaderFile
.
write
(
"#ifndef __%s_H__
\n
"
%
ID
)
self
.
C_HeaderFile
.
write
(
"#ifndef __%s_H__
\n
"
%
ID
)
self
.
C_HeaderFile
.
write
(
"#define __%s_H__
\n\n
"
%
ID
)
self
.
C_HeaderFile
.
write
(
"#define __%s_H__
\n\n
"
%
ID
)
self
.
C_HeaderFile
.
write
(
"#include <stdlib.h> /* for size_t */
\n
"
)
self
.
C_HeaderFile
.
write
(
"#include <stdlib.h> /* for size_t */
\n
"
)
if
subProgramImplementation
.
lower
()
==
"c"
and
subProgram
.
_fpgaConfigurations
is
not
''
:
self
.
C_HeaderFile
.
write
(
"#include
\"
C_ASN1_Types.h
\"\n
"
)
self
.
C_HeaderFile
.
write
(
"
\n
"
)
self
.
C_HeaderFile
.
write
(
"
\n
"
)
self
.
C_SourceFile
.
write
(
"#ifdef __unix__
\n
"
)
self
.
C_SourceFile
.
write
(
"#ifdef __unix__
\n
"
)
...
@@ -572,16 +574,17 @@ class SynchronousToolGlueGeneratorGeneric(Generic[TSource, TDestin]):
...
@@ -572,16 +574,17 @@ class SynchronousToolGlueGeneratorGeneric(Generic[TSource, TDestin]):
else
:
else
:
# Check if Function Block will exist both as SW and HW. If yes append suffix to avoid multiple definition errors.
# Check if Function Block will exist both as SW and HW. If yes append suffix to avoid multiple definition errors.
fpgaSuffix
=
''
fpgaSuffix
=
''
dispatcherSuffix
=
"_Brave_Dispatch"
if
subProgramImplementation
.
lower
()
==
"c"
and
sp
.
_fpgaConfigurations
is
not
''
:
if
subProgramImplementation
.
lower
()
==
"c"
and
sp
.
_fpgaConfigurations
is
not
''
:
fpgaSuffix
=
"_Fpga"
fpgaSuffix
=
"_
Brave_
Fpga"
self
.
C_HeaderFile
.
write
(
"void Execute_%s();
\n
"
%
self
.
CleanNameAsADAWants
(
sp
.
_id
+
"_"
+
subProgramImplementation
))
self
.
C_HeaderFile
.
write
(
"void Execute_%s();
\n
"
%
self
.
CleanNameAsADAWants
(
sp
.
_id
+
"_"
+
subProgramImplementation
))
if
maybeFVname
!=
""
:
if
maybeFVname
!=
""
:
self
.
C_HeaderFile
.
write
(
"void init_%s%s();
\n
"
%
(
self
.
CleanNameAsADAWants
(
maybeFVname
),
fpgaSuffix
))
self
.
C_HeaderFile
.
write
(
"void init_%s%s();
\n
"
%
(
self
.
CleanNameAsADAWants
(
maybeFVname
),
fpgaSuffix
))
self
.
C_HeaderFile
.
write
(
"void %s_%s%s("
%
(
self
.
CleanNameAsADAWants
(
maybeFVname
),
self
.
CleanNameAsADAWants
(
sp
.
_id
),
fpgaSuffix
))
self
.
C_HeaderFile
.
write
(
"void %s_%s%s("
%
(
self
.
CleanNameAsADAWants
(
maybeFVname
),
self
.
CleanNameAsADAWants
(
sp
.
_id
),
fpgaSuffix
))
else
:
# pragma: no cover
else
:
# pragma: no cover
self
.
C_HeaderFile
.
write
(
"void %s_init();
\n
"
%
self
.
CleanNameAsADAWants
(
sp
.
_id
))
# pragma: no cover
self
.
C_HeaderFile
.
write
(
"void %s_init
%s
();
\n
"
%
(
self
.
CleanNameAsADAWants
(
sp
.
_id
)
,
fpgaSuffix
)
)
# pragma: no cover
self
.
C_HeaderFile
.
write
(
"void %s("
%
self
.
CleanNameAsADAWants
(
sp
.
_id
))
# pragma: no cover
self
.
C_HeaderFile
.
write
(
"void
%s
%s("
%
(
self
.
CleanNameAsADAWants
(
sp
.
_id
)
,
fpgaSuffix
)
)
# pragma: no cover
for
param
in
sp
.
_params
:
for
param
in
sp
.
_params
:
if
param
.
_id
!=
sp
.
_params
[
0
].
_id
:
if
param
.
_id
!=
sp
.
_params
[
0
].
_id
:
self
.
C_HeaderFile
.
write
(
', '
)
self
.
C_HeaderFile
.
write
(
', '
)
...
@@ -590,6 +593,22 @@ class SynchronousToolGlueGeneratorGeneric(Generic[TSource, TDestin]):
...
@@ -590,6 +593,22 @@ class SynchronousToolGlueGeneratorGeneric(Generic[TSource, TDestin]):
else
:
else
:
self
.
C_HeaderFile
.
write
(
'void *p'
+
self
.
CleanNameAsToolWants
(
param
.
_id
)
+
', size_t *pSize_'
+
self
.
CleanNameAsToolWants
(
param
.
_id
))
self
.
C_HeaderFile
.
write
(
'void *p'
+
self
.
CleanNameAsToolWants
(
param
.
_id
)
+
', size_t *pSize_'
+
self
.
CleanNameAsToolWants
(
param
.
_id
))
self
.
C_HeaderFile
.
write
(
");
\n
"
)
self
.
C_HeaderFile
.
write
(
");
\n
"
)
# Check if Function Block will exist both as SW and HW. If yes generate dispatcher function (to delegate to SW or HW).
if
subProgramImplementation
.
lower
()
==
"c"
and
sp
.
_fpgaConfigurations
is
not
''
:
if
maybeFVname
!=
""
:
self
.
C_HeaderFile
.
write
(
"asn1SccMyInteger %s_%s%s("
%
(
self
.
CleanNameAsADAWants
(
maybeFVname
),
self
.
CleanNameAsADAWants
(
sp
.
_id
),
dispatcherSuffix
))
else
:
# pragma: no cover
self
.
C_HeaderFile
.
write
(
"asn1SccMyInteger %s%s("
%
(
self
.
CleanNameAsADAWants
(
sp
.
_id
),
dispatcherSuffix
))
# pragma: no cover
for
param
in
sp
.
_params
:
if
param
.
_id
!=
sp
.
_params
[
0
].
_id
:
self
.
C_HeaderFile
.
write
(
', '
)
if
isinstance
(
param
,
InParam
):
self
.
C_HeaderFile
.
write
(
'void *p'
+
self
.
CleanNameAsToolWants
(
param
.
_id
)
+
', size_t size_'
+
self
.
CleanNameAsToolWants
(
param
.
_id
))
else
:
self
.
C_HeaderFile
.
write
(
'void *p'
+
self
.
CleanNameAsToolWants
(
param
.
_id
)
+
', size_t *pSize_'
+
self
.
CleanNameAsToolWants
(
param
.
_id
))
self
.
C_HeaderFile
.
write
(
");
\n
"
)
self
.
C_HeaderFile
.
write
(
"
\n
#endif
\n
"
)
self
.
C_HeaderFile
.
write
(
"
\n
#endif
\n
"
)
self
.
C_SourceFile
.
write
(
"void Execute_%s()
\n
{
\n
"
%
self
.
CleanNameAsADAWants
(
sp
.
_id
+
"_"
+
subProgramImplementation
))
self
.
C_SourceFile
.
write
(
"void Execute_%s()
\n
{
\n
"
%
self
.
CleanNameAsADAWants
(
sp
.
_id
+
"_"
+
subProgramImplementation
))
...
@@ -658,6 +677,23 @@ class SynchronousToolGlueGeneratorGeneric(Generic[TSource, TDestin]):
...
@@ -658,6 +677,23 @@ class SynchronousToolGlueGeneratorGeneric(Generic[TSource, TDestin]):
param
.
_signal
.
_asnSize
))
param
.
_signal
.
_asnSize
))
self
.
C_SourceFile
.
write
(
"}
\n\n
"
)
self
.
C_SourceFile
.
write
(
"}
\n\n
"
)
# Check if Function Block will exist both as SW and HW. If yes generate dispatcher function (to delegate to SW or HW).
if
subProgramImplementation
.
lower
()
==
"c"
and
sp
.
_fpgaConfigurations
is
not
''
:
if
maybeFVname
!=
""
:
self
.
C_SourceFile
.
write
(
"asn1SccMyInteger %s_%s%s("
%
(
self
.
CleanNameAsADAWants
(
maybeFVname
),
self
.
CleanNameAsADAWants
(
sp
.
_id
),
dispatcherSuffix
))
else
:
# pragma: no cover
self
.
C_SourceFile
.
write
(
"asn1SccMyInteger %s%s("
%
(
self
.
CleanNameAsADAWants
(
sp
.
_id
),
dispatcherSuffix
))
# pragma: no cover
for
param
in
sp
.
_params
:
if
param
.
_id
!=
sp
.
_params
[
0
].
_id
:
self
.
C_SourceFile
.
write
(
', '
)
if
isinstance
(
param
,
InParam
):
self
.
C_SourceFile
.
write
(
'void *p'
+
self
.
CleanNameAsToolWants
(
param
.
_id
)
+
', size_t size_'
+
self
.
CleanNameAsToolWants
(
param
.
_id
))
else
:
self
.
C_SourceFile
.
write
(
'void *p'
+
self
.
CleanNameAsToolWants
(
param
.
_id
)
+
', size_t *pSize_'
+
self
.
CleanNameAsToolWants
(
param
.
_id
))
self
.
C_SourceFile
.
write
(
")
\n
{
\n
"
)
self
.
C_SourceFile
.
write
(
' return 0;
\n
'
);
self
.
C_SourceFile
.
write
(
"}
\n\n
"
)
self
.
ADA_HeaderFile
.
write
(
self
.
ADA_HeaderFile
.
write
(
"procedure Ada_Execute_%s;
\n
"
%
self
.
CleanNameAsADAWants
(
sp
.
_id
+
"_"
+
subProgramImplementation
))
"procedure Ada_Execute_%s;
\n
"
%
self
.
CleanNameAsADAWants
(
sp
.
_id
+
"_"
+
subProgramImplementation
))
self
.
ADA_HeaderFile
.
write
(
'
\n
end %s;
\n
'
%
self
.
CleanNameAsADAWants
(
sp
.
_id
+
"_"
+
subProgramImplementation
))
self
.
ADA_HeaderFile
.
write
(
'
\n
end %s;
\n
'
%
self
.
CleanNameAsADAWants
(
sp
.
_id
+
"_"
+
subProgramImplementation
))
...
...
dmt/B_mappers/zestSC1_B_mapper.py
View file @
96d107fb
...
@@ -419,6 +419,8 @@ class VHDLGlueGenerator(SynchronousToolGlueGeneratorGeneric[List[int], List[int]
...
@@ -419,6 +419,8 @@ class VHDLGlueGenerator(SynchronousToolGlueGeneratorGeneric[List[int], List[int]
self
.
C_SourceFile
.
write
(
'''
self
.
C_SourceFile
.
write
(
'''
#include "ZestSC1.h"
#include "ZestSC1.h"
#include "C_ASN1_Types.h"
#ifndef STATIC
#ifndef STATIC
#define STATIC
#define STATIC
#endif
#endif
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment