From 13455c75ff700d3348f28249dd9a3cda78c45a61 Mon Sep 17 00:00:00 2001 From: Thiago Alves Date: Thu, 1 Nov 2018 14:59:44 -0500 Subject: [PATCH] Added support for special functions Special functions are located on %ML1024 upward --- utils/glue_generator_src/glue_generator.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/utils/glue_generator_src/glue_generator.cpp b/utils/glue_generator_src/glue_generator.cpp index 2e88b1c..69588ac 100755 --- a/utils/glue_generator_src/glue_generator.cpp +++ b/utils/glue_generator_src/glue_generator.cpp @@ -65,6 +65,9 @@ IEC_UINT *int_memory[BUFFER_SIZE];\r\n\ IEC_DINT *dint_memory[BUFFER_SIZE];\r\n\ IEC_LINT *lint_memory[BUFFER_SIZE];\r\n\ \r\n\ +//Special Functions\r\n\ +IEC_LINT *special_functions[BUFFER_SIZE];\r\n\ +\r\n\ \r\n\ #define __LOCATED_VAR(type, name, ...) type __##name;\r\n\ #include \"LOCATED_VARIABLES.h\"\r\n\ @@ -215,7 +218,10 @@ void glueVar(char *varName, char *varType) glueVars << "\tdint_memory[" << pos1 << "] = (IEC_DINT *)" << varName << ";\r\n"; break; case 'L': - glueVars << "\tlint_memory[" << pos1 << "] = (IEC_LINT *)" << varName << ";\r\n"; + if (pos1 > 1023) + glueVars << "\tspecial_functions[" << (pos1-1024) << "] = (IEC_LINT *)" << varName << ";\r\n"; + else + glueVars << "\tlint_memory[" << pos1 << "] = (IEC_LINT *)" << varName << ";\r\n"; break; } }