필터 지우기
필터 지우기

How to generate emedded code that doesn't use MATLAB/Simulink libraries?

조회 수: 5 (최근 30일)
Josh
Josh 2015년 2월 13일
답변: Josh 2015년 5월 14일
I have a Simulink model that uses a UDP block. When I compile the generated embedded code in an embedded Linux system I also have to compile HostLib_Network.c. But HostLib_Network.c requires that I have the library libmwnetworkdevice.so. MATLAB has this library, but it is compiled for a 64-bit native Linux desktop environment and I will be running Simulink code on an ARM processor.
So how can I get Simulink to generate embedded code that doesn't rely on native environment libraries?

채택된 답변

Josh
Josh 2015년 5월 14일
So I have figured out what you need to do to get the Simulink generated UDP code to compile on an ARM processor.
HostLib_Network.c has two sets of functions. Below is a snippet from HostLib_Network.c:
void CreateUDPInterface(void *hl)
{
#ifndef _USE_TARGET_UDP_
CreateHostLibrary(libName_Network, hl);
#else
CreateTargetUDPInterface(hl);
#endif
}
As you can see if _USE_TARGET_UDP_ is not defined then it uses a library name. If it is defined then it uses the OS's own UDP library.
So all you have to do is add the flag _USE_TARGET_UDP_ to your ARM compiler and it will compile and run fine.

추가 답변 (2개)

Aravind Singh
Aravind Singh 2015년 3월 5일
You can generate c code only from simulink. Compile those c code using compiler that generates binary for ARM processor.

Josh
Josh 2015년 3월 5일
That's what I am doing. But when I execute my code on the ARM processor it asks for the MATLAB library.

카테고리

Help CenterFile Exchange에서 Simulink Coder에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by