Video processing model can't be compiled by real-time windows target

조회 수: 1 (최근 30일)
Jan Kappen
Jan Kappen 2013년 5월 23일
답변: Omar Crypps 2017년 1월 3일
Hello guys,
I've got a strange problem here. What I try to do is creating code for the real-time windows target from a model that use the "from video device" block (which is able to generate code, see http://www.mathworks.de/de/help/imaq/fromvideodevice.html), the "blob analysis" and the "optical flow" blocks.
The compiler error is:
...
### Processing Template Makefile: C:\Program Files\MATLAB\R2012b\toolbox\rtw\targets\rtwin\rtwin\rtwin.tmf
### Creating untitled2.mk from C:\Program Files\MATLAB\R2012b\toolbox\rtw\targets\rtwin\rtwin\rtwin.tmf
### Building untitled2: .\untitled2.bat
R:\MATLAB\untitled2_rtwin_win64>set MATLAB=C:\Program Files\MATLAB\R2012b
R:\MATLAB\untitled2_rtwin_win64>"C:\PROGRA~1\MATLAB\R2012b\bin\win64\gmake" -f untitled2.mk GENERATE_REPORT=0 EXTMODE_STATIC_ALLOC=0 EXTMODE_STATIC_ALLOC_SIZE=1000000 TMW_EXTMODE_TESTING=0
### Compiling untitled2.c
C:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/llvm/bin/clang -m64 -emit-llvm -c -O4 -Wno-switch-enum -IC:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/lib/include -I. -I.. -IC:/PROGRA~1/MATLAB/R2012b/simulink/include -IC:/PROGRA~1/MATLAB/R2012b/extern/include -IC:/PROGRA~1/MATLAB/R2012b/rtw/c/src -IC:/PROGRA~1/MATLAB/R2012b/rtw/c/src/ext_mode/common -IC:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/src -IC:/PROGRA~1/MATLAB/R2012b/toolbox/shared/dspblks/extern/include -IC:/PROGRA~1/MATLAB/R2012b/toolbox/imaq/imaqblks/include -IC:/PROGRA~1/MATLAB/R2012b/toolbox/shared/dsp/vision/matlab/include -IR:/MATLAB/untitled2_rtwin_win64 -IR:/MATLAB -IC:/PROGRA~1/MATLAB/R2012b/toolbox/vision/include -DEXT_MODE -DUSE_RTMODEL -DMODEL=untitled2 -DRT -DNUMST=1 -DTID01EQ=0 -DNCSTATES=0 -DMT=0 -D__STDC__ -U_MSC_VER -o "untitled2.obj" "untitled2.c"
### Compiling C:/PROGRA~1/MATLAB/R2012b/toolbox/shared/dspblks/extern/src/HostLib_rtw.c
C:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/llvm/bin/clang -m64 -emit-llvm -c -O4 -Wno-switch-enum -IC:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/lib/include -I. -I.. -IC:/PROGRA~1/MATLAB/R2012b/simulink/include -IC:/PROGRA~1/MATLAB/R2012b/extern/include -IC:/PROGRA~1/MATLAB/R2012b/rtw/c/src -IC:/PROGRA~1/MATLAB/R2012b/rtw/c/src/ext_mode/common -IC:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/src -IC:/PROGRA~1/MATLAB/R2012b/toolbox/shared/dspblks/extern/include -IC:/PROGRA~1/MATLAB/R2012b/toolbox/imaq/imaqblks/include -IC:/PROGRA~1/MATLAB/R2012b/toolbox/shared/dsp/vision/matlab/include -IR:/MATLAB/untitled2_rtwin_win64 -IR:/MATLAB -IC:/PROGRA~1/MATLAB/R2012b/toolbox/vision/include -DEXT_MODE -DUSE_RTMODEL -DMODEL=untitled2 -DRT -DNUMST=1 -DTID01EQ=0 -DNCSTATES=0 -DMT=0 -D__STDC__ -U_MSC_VER -o "HostLib_rtw.obj" "C:/PROGRA~1/MATLAB/R2012b/toolbox/shared/dspblks/extern/src/HostLib_rtw.c"
### Compiling C:/PROGRA~1/MATLAB/R2012b/toolbox/vision/extern/vipopticalflow/opticalflow_hs_z_rt.c
C:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/llvm/bin/clang -m64 -emit-llvm -c -O4 -Wno-switch-enum -IC:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/lib/include -I. -I.. -IC:/PROGRA~1/MATLAB/R2012b/simulink/include -IC:/PROGRA~1/MATLAB/R2012b/extern/include -IC:/PROGRA~1/MATLAB/R2012b/rtw/c/src -IC:/PROGRA~1/MATLAB/R2012b/rtw/c/src/ext_mode/common -IC:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/src -IC:/PROGRA~1/MATLAB/R2012b/toolbox/shared/dspblks/extern/include -IC:/PROGRA~1/MATLAB/R2012b/toolbox/imaq/imaqblks/include -IC:/PROGRA~1/MATLAB/R2012b/toolbox/shared/dsp/vision/matlab/include -IR:/MATLAB/untitled2_rtwin_win64 -IR:/MATLAB -IC:/PROGRA~1/MATLAB/R2012b/toolbox/vision/include -DEXT_MODE -DUSE_RTMODEL -DMODEL=untitled2 -DRT -DNUMST=1 -DTID01EQ=0 -DNCSTATES=0 -DMT=0 -D__STDC__ -U_MSC_VER -o "opticalflow_hs_z_rt.obj" "C:/PROGRA~1/MATLAB/R2012b/toolbox/vision/extern/vipopticalflow/opticalflow_hs_z_rt.c"
### Compiling rtGetInf.c
C:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/llvm/bin/clang -m64 -emit-llvm -c -O4 -Wno-switch-enum -IC:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/lib/include -I. -I.. -IC:/PROGRA~1/MATLAB/R2012b/simulink/include -IC:/PROGRA~1/MATLAB/R2012b/extern/include -IC:/PROGRA~1/MATLAB/R2012b/rtw/c/src -IC:/PROGRA~1/MATLAB/R2012b/rtw/c/src/ext_mode/common -IC:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/src -IC:/PROGRA~1/MATLAB/R2012b/toolbox/shared/dspblks/extern/include -IC:/PROGRA~1/MATLAB/R2012b/toolbox/imaq/imaqblks/include -IC:/PROGRA~1/MATLAB/R2012b/toolbox/shared/dsp/vision/matlab/include -IR:/MATLAB/untitled2_rtwin_win64 -IR:/MATLAB -IC:/PROGRA~1/MATLAB/R2012b/toolbox/vision/include -DEXT_MODE -DUSE_RTMODEL -DMODEL=untitled2 -DRT -DNUMST=1 -DTID01EQ=0 -DNCSTATES=0 -DMT=0 -D__STDC__ -U_MSC_VER -o "rtGetInf.obj" "rtGetInf.c"
### Compiling rtGetNaN.c
C:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/llvm/bin/clang -m64 -emit-llvm -c -O4 -Wno-switch-enum -IC:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/lib/include -I. -I.. -IC:/PROGRA~1/MATLAB/R2012b/simulink/include -IC:/PROGRA~1/MATLAB/R2012b/extern/include -IC:/PROGRA~1/MATLAB/R2012b/rtw/c/src -IC:/PROGRA~1/MATLAB/R2012b/rtw/c/src/ext_mode/common -IC:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/src -IC:/PROGRA~1/MATLAB/R2012b/toolbox/shared/dspblks/extern/include -IC:/PROGRA~1/MATLAB/R2012b/toolbox/imaq/imaqblks/include -IC:/PROGRA~1/MATLAB/R2012b/toolbox/shared/dsp/vision/matlab/include -IR:/MATLAB/untitled2_rtwin_win64 -IR:/MATLAB -IC:/PROGRA~1/MATLAB/R2012b/toolbox/vision/include -DEXT_MODE -DUSE_RTMODEL -DMODEL=untitled2 -DRT -DNUMST=1 -DTID01EQ=0 -DNCSTATES=0 -DMT=0 -D__STDC__ -U_MSC_VER -o "rtGetNaN.obj" "rtGetNaN.c"
### Compiling rt_nonfinite.c
C:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/llvm/bin/clang -m64 -emit-llvm -c -O4 -Wno-switch-enum -IC:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/lib/include -I. -I.. -IC:/PROGRA~1/MATLAB/R2012b/simulink/include -IC:/PROGRA~1/MATLAB/R2012b/extern/include -IC:/PROGRA~1/MATLAB/R2012b/rtw/c/src -IC:/PROGRA~1/MATLAB/R2012b/rtw/c/src/ext_mode/common -IC:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/src -IC:/PROGRA~1/MATLAB/R2012b/toolbox/shared/dspblks/extern/include -IC:/PROGRA~1/MATLAB/R2012b/toolbox/imaq/imaqblks/include -IC:/PROGRA~1/MATLAB/R2012b/toolbox/shared/dsp/vision/matlab/include -IR:/MATLAB/untitled2_rtwin_win64 -IR:/MATLAB -IC:/PROGRA~1/MATLAB/R2012b/toolbox/vision/include -DEXT_MODE -DUSE_RTMODEL -DMODEL=untitled2 -DRT -DNUMST=1 -DTID01EQ=0 -DNCSTATES=0 -DMT=0 -D__STDC__ -U_MSC_VER -o "rt_nonfinite.obj" "rt_nonfinite.c"
### Compiling C:/PROGRA~1/MATLAB/R2012b/toolbox/imaq/imaqblks/include/simaqcodegen.c
C:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/llvm/bin/clang -m64 -emit-llvm -c -O4 -Wno-switch-enum -IC:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/lib/include -I. -I.. -IC:/PROGRA~1/MATLAB/R2012b/simulink/include -IC:/PROGRA~1/MATLAB/R2012b/extern/include -IC:/PROGRA~1/MATLAB/R2012b/rtw/c/src -IC:/PROGRA~1/MATLAB/R2012b/rtw/c/src/ext_mode/common -IC:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/src -IC:/PROGRA~1/MATLAB/R2012b/toolbox/shared/dspblks/extern/include -IC:/PROGRA~1/MATLAB/R2012b/toolbox/imaq/imaqblks/include -IC:/PROGRA~1/MATLAB/R2012b/toolbox/shared/dsp/vision/matlab/include -IR:/MATLAB/untitled2_rtwin_win64 -IR:/MATLAB -IC:/PROGRA~1/MATLAB/R2012b/toolbox/vision/include -DEXT_MODE -DUSE_RTMODEL -DMODEL=untitled2 -DRT -DNUMST=1 -DTID01EQ=0 -DNCSTATES=0 -DMT=0 -D__STDC__ -U_MSC_VER -o "simaqcodegen.obj" "C:/PROGRA~1/MATLAB/R2012b/toolbox/imaq/imaqblks/include/simaqcodegen.c"
### Compiling C:/PROGRA~1/MATLAB/R2012b/toolbox/vision/extern/vipopticalflow/sobelderivative_hs_d_rt.c
C:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/llvm/bin/clang -m64 -emit-llvm -c -O4 -Wno-switch-enum -IC:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/lib/include -I. -I.. -IC:/PROGRA~1/MATLAB/R2012b/simulink/include -IC:/PROGRA~1/MATLAB/R2012b/extern/include -IC:/PROGRA~1/MATLAB/R2012b/rtw/c/src -IC:/PROGRA~1/MATLAB/R2012b/rtw/c/src/ext_mode/common -IC:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/src -IC:/PROGRA~1/MATLAB/R2012b/toolbox/shared/dspblks/extern/include -IC:/PROGRA~1/MATLAB/R2012b/toolbox/imaq/imaqblks/include -IC:/PROGRA~1/MATLAB/R2012b/toolbox/shared/dsp/vision/matlab/include -IR:/MATLAB/untitled2_rtwin_win64 -IR:/MATLAB -IC:/PROGRA~1/MATLAB/R2012b/toolbox/vision/include -DEXT_MODE -DUSE_RTMODEL -DMODEL=untitled2 -DRT -DNUMST=1 -DTID01EQ=0 -DNCSTATES=0 -DMT=0 -D__STDC__ -U_MSC_VER -o "sobelderivative_hs_d_rt.obj" "C:/PROGRA~1/MATLAB/R2012b/toolbox/vision/extern/vipopticalflow/sobelderivative_hs_d_rt.c"
### Compiling untitled2_data.c
C:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/llvm/bin/clang -m64 -emit-llvm -c -O4 -Wno-switch-enum -IC:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/lib/include -I. -I.. -IC:/PROGRA~1/MATLAB/R2012b/simulink/include -IC:/PROGRA~1/MATLAB/R2012b/extern/include -IC:/PROGRA~1/MATLAB/R2012b/rtw/c/src -IC:/PROGRA~1/MATLAB/R2012b/rtw/c/src/ext_mode/common -IC:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/src -IC:/PROGRA~1/MATLAB/R2012b/toolbox/shared/dspblks/extern/include -IC:/PROGRA~1/MATLAB/R2012b/toolbox/imaq/imaqblks/include -IC:/PROGRA~1/MATLAB/R2012b/toolbox/shared/dsp/vision/matlab/include -IR:/MATLAB/untitled2_rtwin_win64 -IR:/MATLAB -IC:/PROGRA~1/MATLAB/R2012b/toolbox/vision/include -DEXT_MODE -DUSE_RTMODEL -DMODEL=untitled2 -DRT -DNUMST=1 -DTID01EQ=0 -DNCSTATES=0 -DMT=0 -D__STDC__ -U_MSC_VER -o "untitled2_data.obj" "untitled2_data.c"
### Compiling C:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/src/rtwin_main.c
C:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/llvm/bin/clang -m64 -emit-llvm -c -O4 -Wno-switch-enum -IC:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/lib/include -I. -I.. -IC:/PROGRA~1/MATLAB/R2012b/simulink/include -IC:/PROGRA~1/MATLAB/R2012b/extern/include -IC:/PROGRA~1/MATLAB/R2012b/rtw/c/src -IC:/PROGRA~1/MATLAB/R2012b/rtw/c/src/ext_mode/common -IC:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/src -IC:/PROGRA~1/MATLAB/R2012b/toolbox/shared/dspblks/extern/include -IC:/PROGRA~1/MATLAB/R2012b/toolbox/imaq/imaqblks/include -IC:/PROGRA~1/MATLAB/R2012b/toolbox/shared/dsp/vision/matlab/include -IR:/MATLAB/untitled2_rtwin_win64 -IR:/MATLAB -IC:/PROGRA~1/MATLAB/R2012b/toolbox/vision/include -DEXT_MODE -DUSE_RTMODEL -DMODEL=untitled2 -DRT -DNUMST=1 -DTID01EQ=0 -DNCSTATES=0 -DMT=0 -D__STDC__ -U_MSC_VER -o "rtwin_main.obj" "C:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/src/rtwin_main.c"
C:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/src/rtwin_main.c:119:9: warning: 'EXTERN_C' macro redefined
#define EXTERN_C
^
C:\Program Files\Microsoft SDKs\Windows\v7.1\\include\winnt.h:549:13: note: previous definition is here
#define EXTERN_C extern
^
1 warning generated.
### Compiling C:/PROGRA~1/MATLAB/R2012b/rtw/c/src/rt_sim.c
C:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/llvm/bin/clang -m64 -emit-llvm -c -O4 -Wno-switch-enum -IC:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/lib/include -I. -I.. -IC:/PROGRA~1/MATLAB/R2012b/simulink/include -IC:/PROGRA~1/MATLAB/R2012b/extern/include -IC:/PROGRA~1/MATLAB/R2012b/rtw/c/src -IC:/PROGRA~1/MATLAB/R2012b/rtw/c/src/ext_mode/common -IC:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/src -IC:/PROGRA~1/MATLAB/R2012b/toolbox/shared/dspblks/extern/include -IC:/PROGRA~1/MATLAB/R2012b/toolbox/imaq/imaqblks/include -IC:/PROGRA~1/MATLAB/R2012b/toolbox/shared/dsp/vision/matlab/include -IR:/MATLAB/untitled2_rtwin_win64 -IR:/MATLAB -IC:/PROGRA~1/MATLAB/R2012b/toolbox/vision/include -DEXT_MODE -DUSE_RTMODEL -DMODEL=untitled2 -DRT -DNUMST=1 -DTID01EQ=0 -DNCSTATES=0 -DMT=0 -D__STDC__ -U_MSC_VER -o "rt_sim.obj" "C:/PROGRA~1/MATLAB/R2012b/rtw/c/src/rt_sim.c"
### Created Real-Time Windows Target module untitled2.rxw64
C:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/llvm/bin/llvm-ld -b untitled2.bc -o untitled2.tmp untitled2.obj HostLib_rtw.obj opticalflow_hs_z_rt.obj rtGetInf.obj rtGetNaN.obj rt_nonfinite.obj simaqcodegen.obj sobelderivative_hs_d_rt.obj untitled2_data.obj rtwin_main.obj rt_sim.obj ext_svr.obj updown_rtwin.obj C:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/lib/win64/imports.obj C:/PROGRA~1/MATLAB/R2012b/toolbox/rtw/targets/rtwin/lib/win64/rtwinmod.lib
llvm-ld: error: Cannot link file 'HostLib_rtw.obj': Linking globals named '_InterlockedAdd': symbol multiply defined!
gmake: *** [../untitled2.rxw64] Error 1
### Build procedure for model: 'untitled2' aborted due to an error.
so it seems there is only a problem with the linker due to multiple definitions in the blocks' s-functions. But I don't know in which files and whether i can modify them.. I recognized, that if I remove one (random) block of the three the model compiles.
Any help is appreciated ;)
Thank you, Jan
  댓글 수: 1
Kaustubha Govind
Kaustubha Govind 2013년 5월 23일
I wonder if this is a bug. You could try sending your model to MathWorks Support to see if they are able to provide a resolution.

댓글을 달려면 로그인하십시오.

답변 (2개)

Jan Houska
Jan Houska 2013년 5월 27일
It is not possible to use the "From Video Device" block with Real-Time Windows Target. Although this block generates code, the generated code depends on Win32 API that is not present in the Real-Time Windows Target real-time kernel.
An alternative could be to use Real-Time Windows Target in Normal Mode and to run the model uncompiled. This way there will be no problems with using the block if the performance of Normal Mode is enough for your model.
  댓글 수: 4
Jan Kappen
Jan Kappen 2013년 5월 28일
Thank you very much!
The problem is not only the performance (I think it would be ok in normal or in accelerated mode) but the timing. We are using the camera and other sensors located connected via RS-232 to localize a moving object and trying to use simulink with the real-time target as a close loop controller. So we need a good time base. In real time mode we can simply use the 'simulation time', in normal mode this isn't possible afaik?
Thanks, Jan
Jan Houska
Jan Houska 2013년 5월 28일
Normal Mode models run synchronously with real time when you place the Real-Time Synchronization block into the model. This feature is available starting with MATLAB R2012a.
So the Real-Time Synchronization block may be all you need.

댓글을 달려면 로그인하십시오.


Omar Crypps
Omar Crypps 2017년 1월 3일
Hi everyone,
I'm actually trying to use Simulink Real Time video blocks to get the video on the target computer using a Logitech webcam, the link between the host and the target computer is already done and works fine.
The problem that I faced is that I got errors when trying to see the video on the target monitor. Here are the two errors :
- Video device is not found (even if the Logitech Webcam appears in the USB Video Device List).
- No UDP channel free or UDP error.
I will add the model that I made in the attached file, hoping to have some help from the mathworks community.

카테고리

Help CenterFile Exchange에서 DSP Algorithm Acceleration에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by