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

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

Respuestas (2)

Shivang Menon
Shivang Menon el 23 de En. de 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 comentarios
Simone Rafano Carna
Simone Rafano Carna el 23 de En. de 2017
Editada: Simone Rafano Carna el 23 de En. de 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

Iniciar sesión para comentar.


Marian Kersting
Marian Kersting el 27 de Mzo. de 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 comentario
Rodrigo Estrella
Rodrigo Estrella el 8 de En. de 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)

Iniciar sesión para comentar.

Categorías

Más información sobre Run on Target Hardware 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