Borrar filtros
Borrar filtros

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

5 visualizaciones (últimos 30 días)
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?

Respuesta aceptada

Josh
Josh el 14 de Mayo de 2015
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.

Más respuestas (2)

Aravind Singh
Aravind Singh el 5 de Mzo. de 2015
You can generate c code only from simulink. Compile those c code using compiler that generates binary for ARM processor.

Josh
Josh el 5 de Mzo. de 2015
That's what I am doing. But when I execute my code on the ARM processor it asks for the MATLAB library.

Categorías

Más información sobre Simulink Coder en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by