|
Re: Bachmann M1 / VxWorks - Need advice how to begin [message #1834718 is a reply to message #1834683] |
Mon, 16 November 2020 18:56 |
|
HI,
first of all, wow, we haven't had a Bachmann M1 user in quite some time. So it could be that not all is up to date. AFAIK the 4diac FORTE build for Bachmann was configured such that after the build you would get a full application image (I forgot the exact term Bachmann is using) which you can then deploy via the Solution Center. For that you need to set perform a new Unix Makefile build and configure Bachmann M1 as archticture. I not that the CMake config for Bachmann has currently two hardcoded paths:
set(GNU_TOOLS C:/bachmann/SolutionCenter/V1.70Release/cutils/GnuTools)
set(MSYS_PATH C:/bachmann/SolutionCenter/V1.70Release/cutils/mcsdk/msys)
you may need to adjust these to your setup. With that you should get a first basic 4diac FORTE running.
For IOs we have a SetValue and a GetValue method to access the variable interface on the M1.
I hope this helps for getting you started. We are happy for feedback and any improvements.
|
|
|
|
Re: Bachmann M1 / VxWorks - Need advice how to begin [message #1834905 is a reply to message #1834891] |
Fri, 20 November 2020 08:54 |
|
Hi,
it seems you found a bug in the CMakeList.txt of src/arch/be_m1. Can you please change line 25 in that file to:
forte_add_sourcefile_hcpp(fortemodule)
forte_add_sourcefile_cpp(../genforte_printer.cpp)
This should fix the above error. It would also be very kind if you could report this as bug in our bugzilla [1]. So that I can fix that for 1.13.1.
Regarding the paths: you currently would need to change the directly in the src/arch/be_m1/CMakeList.txt. I think we should make the base path setable. But i would like to get your build working first befor further optimizing and improving things.
Cheers,
Alois
[1] https://bugs.eclipse.org/bugs/enter_bug.cgi?product=4DIAC
|
|
|
Re: Bachmann M1 / VxWorks - Need advice how to begin [message #1835268 is a reply to message #1834905] |
Sat, 28 November 2020 22:55 |
David Wagner Messages: 11 Registered: November 2020 |
Junior Member |
|
|
Hi,
thank you very much for support. I have reported the bug.
Unfortunately, after solving this issue, I'm facing another problem again, when building using Visual Studio 2O1O, I'm getting failure with output:
1>------ Build started: Project: ZERO_CHECK, Configuration: Release Win32 ------
1> Checking Build System
2>------ Build started: Project: forte_generate_modules_cmake_files, Configuration: Release Win32 ------
3>------ Build started: Project: forte_stringlist_externals, Configuration: Release Win32 ------
2> -- FORTE_MODULE_DIR: C:/FORTE_dev/build/win32-3/src/modules com external/
3> Generating src_gen/forte_thread_gen.cpp
2> Building Custom Rule C:/FORTE_dev/forte-incubation_1.13.0A/src/CMakeLists.txt
3> Generating src_gen/forte_sync_gen.cpp
3> Generating src_gen/forte_sem_gen.cpp
3> Generating src_gen/fortemodule_gen.cpp
3> Generating src_gen/genforte_printer_gen.cpp
4>------ Build started: Project: forte_init_generator, Configuration: Release Win32 ------
5>------ Build started: Project: forte_stringlist_generator, Configuration: Release Win32 ------
3> Generating src_gen/timespec_utils_gen.cpp
5> GenerateStringlist
5> Source Dir: C:/FORTE_dev/forte-incubation_1.13.0A/src
5> Binary Dir: C:/FORTE_dev/build/win32-3
3> Generating src_gen/GET_CHAN_INFO_gen.cpp
4> Generate Initfunction
4> Source Dir: C:/FORTE_dev/forte-incubation_1.13.0A
4> Binary Dir: C:/FORTE_dev/build/win32-3
3> Generating src_gen/GET_VALUE_gen.cpp
3> Generating src_gen/SET_VALUE_gen.cpp
3> Generating src_gen/BE_SVIFB_gen.cpp
3> Generating src_gen/SVIsend_1_gen.cpp
5> Building Custom Rule C:/FORTE_dev/forte-incubation_1.13.0A/src/CMakeLists.txt
4> Building Custom Rule C:/FORTE_dev/forte-incubation_1.13.0A/src/CMakeLists.txt
3> Generating src_gen/SVIreceive_1_gen.cpp
6>------ Build started: Project: FORTE_LITE, Configuration: Release Win32 ------
3> Generating src_gen/BE_RMT_DEV_gen.cpp
3> Generating src_gen/genforte_realFunctions_gen.cpp
6> Building Custom Rule C:/FORTE_dev/forte-incubation_1.13.0A/src/CMakeLists.txt
3> Generating src_gen/forte_architecture_time_gen.cpp
3> Generating src_gen/fdselecthand_gen.cpp
6>cl : Command line error D8004: '/W' requires an argument
3> Generating src_gen/bsdsocketinterf_gen.cpp
3> Generating src_gen/mainparam_utils_gen.cpp
3> Generating src_gen/timerha_gen.cpp
3> Generating src_gen/devlog_gen.cpp
3> Generating src_gen/basecommfb_gen.cpp
3> Generating src_gen/commfb_gen.cpp
3> Generating src_gen/comlayer_gen.cpp
3> Generating src_gen/comlayersmanager_gen.cpp
3> Generating src_gen/ipcomlayer_gen.cpp
3> Generating src_gen/fbdkasn1layer_gen.cpp
3> Generating src_gen/localcomlayer_gen.cpp
3> Generating src_gen/rawdatacomlayer_gen.cpp
3> Generating src_gen/forte_any_elementary_gen.cpp
3> Generating src_gen/forte_int_gen.cpp
3> Generating src_gen/forte_sint_gen.cpp
3> Generating src_gen/forte_dint_gen.cpp
3> Generating src_gen/forte_udint_gen.cpp
3> Generating src_gen/forte_uint_gen.cpp
3> Generating src_gen/forte_usint_gen.cpp
3> Generating src_gen/forte_dword_gen.cpp
3> Generating src_gen/forte_word_gen.cpp
3> Generating src_gen/forte_byte_gen.cpp
3> Generating src_gen/forte_bool_gen.cpp
3> Generating src_gen/forte_string_gen.cpp
3> Generating src_gen/forte_time_gen.cpp
3> Generating src_gen/forte_any_gen.cpp
3> Generating src_gen/forte_any_string_gen.cpp
3> Generating src_gen/forte_any_num_gen.cpp
3> Generating src_gen/forte_any_magnitude_gen.cpp
3> Generating src_gen/forte_any_bit_gen.cpp
3> Generating src_gen/forte_any_int_gen.cpp
3> Generating src_gen/forte_any_real_gen.cpp
3> Generating src_gen/forte_struct_gen.cpp
3> Generating src_gen/forte_lint_gen.cpp
3> Generating src_gen/forte_ulint_gen.cpp
3> Generating src_gen/forte_time_of_day_gen.cpp
3> Generating src_gen/forte_date_and_time_gen.cpp
3> Generating src_gen/forte_any_date_gen.cpp
3> Generating src_gen/forte_date_gen.cpp
3> Generating src_gen/forte_lword_gen.cpp
3> Generating src_gen/forte_real_gen.cpp
3> Generating src_gen/forte_lreal_gen.cpp
3> Generating src_gen/forte_array_gen.cpp
3> Generating src_gen/forte_wstring_gen.cpp
3> Generating src_gen/unicode_utils_gen.cpp
3> Generating src_gen/string_utils_gen.cpp
3> Generating src_gen/parameterParser_gen.cpp
3> Generating src_gen/configFileParser_gen.cpp
3> Generating src_gen/ecetFactory_gen.cpp
3> Generating src_gen/conn_gen.cpp
3> Generating src_gen/dataconn_gen.cpp
3> Generating src_gen/eventconn_gen.cpp
3> Generating src_gen/simplefb_gen.cpp
3> Generating src_gen/basicfb_gen.cpp
3> Generating src_gen/cfb_gen.cpp
3> Generating src_gen/device_gen.cpp
3> Generating src_gen/devexec_gen.cpp
3> Generating src_gen/extevhan_gen.cpp
3> Generating src_gen/funcbloc_gen.cpp
3> Generating src_gen/fbcontainer_gen.cpp
3> Generating src_gen/if2indco_gen.cpp
3> Generating src_gen/resource_gen.cpp
3> Generating src_gen/stringdict_gen.cpp
3> Generating src_gen/typelib_gen.cpp
3> Generating src_gen/ecet_gen.cpp
3> Generating src_gen/adapterconn_gen.cpp
3> Generating src_gen/adapter_gen.cpp
3> Generating src_gen/anyadapter_gen.cpp
3> Generating src_gen/iec61131_functions_gen.cpp
3> Generating src_gen/deviceExecutionHandlers_gen.cpp
3> Generating src_gen/monitoring_gen.cpp
3> Generating src_gen/timedfb_gen.cpp
3> Generating src_gen/E_CTU_gen.cpp
3> Generating src_gen/E_CTD_gen.cpp
3> Generating src_gen/E_CTUD_gen.cpp
3> Generating src_gen/E_DELAY_gen.cpp
3> Generating src_gen/E_D_FF_gen.cpp
3> Generating src_gen/E_MERGE_gen.cpp
3> Generating src_gen/E_REND_gen.cpp
3> Generating src_gen/E_RS_gen.cpp
3> Generating src_gen/E_SELECT_gen.cpp
3> Generating src_gen/E_SR_gen.cpp
3> Generating src_gen/E_CYCLE_gen.cpp
3> Generating src_gen/E_DEMUX_gen.cpp
3> Generating src_gen/E_F_TRIG_gen.cpp
3> Generating src_gen/E_PERMIT_gen.cpp
3> Generating src_gen/E_RDELAY_gen.cpp
3> Generating src_gen/E_RESTART_gen.cpp
3> Generating src_gen/E_R_TRIG_gen.cpp
3> Generating src_gen/E_SPLIT_gen.cpp
3> Generating src_gen/E_SWITCH_gen.cpp
3> Generating src_gen/GEN_E_DEMUX_gen.cpp
3> Generating src_gen/GEN_E_MUX_gen.cpp
3> Generating src_gen/ATimeOut_gen.cpp
3> Generating src_gen/E_TimeOut_gen.cpp
3> Generating src_gen/ARTimeOut_gen.cpp
3> Generating src_gen/E_RTimeOut_gen.cpp
3> Generating src_gen/E_T_FF_gen.cpp
3> Generating src_gen/E_TRAIN_gen.cpp
3> Generating src_gen/DEV_MGR_gen.cpp
3> Generating src_gen/EMB_RES_gen.cpp
3> Generating src_gen/RMT_DEV_gen.cpp
3> Generating src_gen/RMT_RES_gen.cpp
3> Generating src_gen/ForteBootFileLoader_gen.cpp
3> Generating src_gen/GEN_CLIENT_gen.cpp
3> Generating src_gen/GEN_PUBLISH_gen.cpp
3> Generating src_gen/GEN_SERVER_gen.cpp
3> Generating src_gen/GEN_SUBSCRIBE_gen.cpp
3> Generating src_gen/GEN_PUBL_gen.cpp
3> Generating src_gen/GEN_SUBL_gen.cpp
3> Generating src_gen/pctimeha_gen.cpp
3> Building Custom Rule C:/FORTE_dev/forte-incubation_1.13.0A/CMakeLists.txt
7>------ Build started: Project: forte, Configuration: Release Win32 ------
7> Building Custom Rule C:/FORTE_dev/forte-incubation_1.13.0A/src/CMakeLists.txt
7>LINK : warning LNK4044: unrecognized option '/Wl,-M'; ignored
7>LINK : warning LNK4044: unrecognized option '/Wl,-Map'; ignored
7>LINK : warning LNK4044: unrecognized option '/Wl,forte.map'; ignored
7>LINK : warning LNK4044: unrecognized option '/Wl,-cref'; ignored
7>LINK : fatal error LNK1181: cannot open input file 'FORTE_LITE.dir\Release\forte_thread.obj'
========== Build: 5 succeeded, 2 failed, 0 up-to-date, 0 skipped ==========
|
|
|
|
|
|
|
Re: Bachmann M1 / VxWorks - Need advice how to begin [message #1835415 is a reply to message #1835414] |
Wed, 02 December 2020 19:28 |
|
I think I have to ask more questions. In your original first question you mentioned that you want to build 4diac FORTE for Bachmann M1 PLC. Bachmann M1 PLC runs vxWorks and needs special cross compiler, include files and libraries that are part of Bachmann's Solution center. You can not build 4diac FORTE for Bachmann M1 with out these compiler, include files and libraries. If understand you correctly you tried VS2020 and MinGW which both build for Windows based systems.
So before continuing: what is your target? Do you have Bachmann's solution center?
|
|
|
Re: Bachmann M1 / VxWorks - Need advice how to begin [message #1835417 is a reply to message #1835415] |
Wed, 02 December 2020 20:13 |
|
Sorry I just noticed one big mistake in my assumption. I haven't done much cross compiling recently so I completely forgot. When you start CMake and do the inital setup. you need to select unix makefiles but then not the use default native compilers but the Specify toolchain file for cross-compiling option. Then cmake will ask you for a toolchain file. you can find the m1 tool-chain file in the buildsupport/toolchains folder. Depending on what solution center you have you may have to adjust M1_CUTILS folder. But as this is a CMAKE option it may be possible to that later in the setup process. If not just update line 6 of the toolchain-m1.cmake file with your correct Solution Center GnuTools path. sorry again that i completely forgot about that step.
|
|
|
|
|
|
Re: Bachmann M1 / VxWorks - Need advice how to begin [message #1835518 is a reply to message #1835500] |
Sat, 05 December 2020 16:24 |
|
I'm very sorry/disappointed that 4diac FORTE plays so hard with you. As said above we haven#t used int on M1 for quite some time so we are maybe a but rusted. We have quite some documentation on how to build 4diac FORTE for different platforms we support [1]. Unfortunately nothing on M1.
Looking at your output I think you are definitely a big step forward. I think the problem is that M1 compiler has troubles with one of our build improving options. We have the same issue, for example, also on Mac OS. I think if you deactivate the option FORTE_LINKED_STRINGDICT in CMake-GUI (you need to enabled the Advanced options on the top right) this error should go away.
[1] https://www.eclipse.org/4diac/en_help.php?helppage=html/installation/install.html#4DIAC-FORTE
|
|
|
|
Re: Bachmann M1 / VxWorks - Need advice how to begin [message #1835566 is a reply to message #1835556] |
Mon, 07 December 2020 07:51 |
|
Could it be that 1.50 does not have C++ support? Can you send me the list of files in your C:/bachmann/SolutionCenter/V1.50R/cutils/GnuTools/bin/ directory. Maybe we have to tune the toolchain file for 1.50. You can also send me the list as direct message to my email (alois.zoitl (at) gmx.at).
|
|
|
|
Re: Bachmann M1 / VxWorks - Need advice how to begin [message #1835591 is a reply to message #1835590] |
Mon, 07 December 2020 18:53 |
|
Thanks this helps. I looks like the c++ compiler has a different name. Or better the C++ compiler has some strange ending. I think it will be sufficient to change line 10 in your toolchain file from
CMAKE_FORCE_CXX_COMPILER(${M1_CUTILS}/bin/i386-wrs-vxworks-c++.exe GNU)
to
CMAKE_FORCE_CXX_COMPILER(${M1_CUTILS}/bin/i386-wrs-vxworks-g++.exe GNU)
But I think we are getting there.
Furthermore please note that I'm continuously updating the 1.13.x branch with issues you are finding. An overview of the commits I did can be found and the bug you originally submitted: https://bugs.eclipse.org/bugs/show_bug.cgi?id=569266
To get the lastest fixes from my side you can just switch to the 1.13.x branch and pull. A default git setup should be part of the source distribution of 4diac FORTE.
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.02119 seconds