How to compile, using GNU GCC Raspberry Pi Simulink compiler, S-functions that need external libraries (.lib)?

8 vues (au cours des 30 derniers jours)
I am trying to compile and deploy from my Win7 64bit laptop to a Raspberry Pi 3 Model B a Simulink Phase Space model having inside a Sfunction to include in the model a c++ code that my university provided me. I am sure to be connected to the Pi (I get the mypi variable and establish the connection), indeed I am able to compile and deploy to the Pi simple Simulink models (for instance to blink the Pi's green led).
The issue is when I try to compile the full Phase Space model because the c++ function needs some external libraries (.lib) to run. I am able to compile the .mexw64 file from Matlab using SDK compiler and providing it with the libraries. But when I compile and deploy the full Phase Space model from Simulink (''Deploy to hardware'' button) using the GNU GCC Raspberry Pi compiler I get an error saying the .lib extension is not recognized. So my question is how to compile Sfunction requiring external libraries .lib?
Thanks, cheers

Réponses (2)

Shivang Menon
Shivang Menon le 23 Jan 2017
Are you able to simulate the model? To compile the S-function, you can use the mex function - https://www.mathworks.com/help/matlab/ref/mex.html#btx0rai-1 . So, something like
>> mex s_function.c other_c_files.c -lLibraryFolderPath -lLibraryName
This would create a .mexw64 file.
In order to include the library in the generated code, you need to add the library path and library files in the custom code section of code generation pane of configuration parameters. Refer to the following link:
  2 commentaires
Simone Rafano Carna
Simone Rafano Carna le 23 Jan 2017
Modifié(e) : Simone Rafano Carna le 23 Jan 2017
Hi Shivang, thanks for the answer. Yes I am able to simulate, I am not able to deploy to the hardware (Raspberry Pi Model 3).
As I wrote: I am able to compile the .mexw64 file from Matlab using SDK compiler and providing it with the libraries. (i.e. I already use the mex function you suggest and it works).
The issue is when I deploy to the hardware the full Simulink Phase Space model... I ve also put that library in the custom code section of code generation pane of configuration parameters. Still doesn't work.
Thank you again Simone

Connectez-vous pour commenter.


Marian Kersting
Marian Kersting le 27 Mar 2018
Did you install the "Raspberry Pi Hardware SupportPackage"? Does it work with this one? It deploys also al full Toolchain with GCC compiler. Somewhere over here... https://de.mathworks.com/hardware-support/raspberry-pi-matlab.html
  1 commentaire
Rodrigo Estrella
Rodrigo Estrella le 8 Jan 2019
I have the same problem but with source files cpp and hpp. I can simulate, i have installed the support package. The problem i have is that the source files are all copied in to the same ert_rtw directory in the raspberry pi, not respecting the original directory structure. Then when compiling the header files are not found (the includes in the files don't correspond to the files location in the raspberry pi)

Connectez-vous pour commenter.

Catégories

En savoir plus sur Raspberry Pi Hardware 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