Effacer les filtres
Effacer les filtres

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

5 vues (au cours des 30 derniers jours)
Josh
Josh le 13 Fév 2015
Réponse apportée : Josh le 14 Mai 2015
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?

Réponse acceptée

Josh
Josh le 14 Mai 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.

Plus de réponses (2)

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

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

Catégories

En savoir plus sur Simulink Coder dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by