Unable to generate code for STM32

Hello,
I am trying to generate code for STM32F4 Discovery. I have installed Windows SDK 7.1 and .NET framework 4.0. Using "mex -setup" and "xpcsetCC setup", toolchain "Microsoft Visual C++ 2010" is also configurator but still the code generator gives error -
"An installed compiler was not detected. Certain simulation modes, as well as host-based coder builds require that a compiler be installed. Please install one of the supported compilers for this release as listed at: http://www.mathworks.com/support/compilers/R2015a/win64.html"
One more thing I have observed is that there is no option in "Code Generation" to select toolchain.Please see the image below.
Could you please suggest a solution?
Thanks,
Abhijeet

8 Commenti

Where it has Language: C, try selecting C++
Hi,
Also tried that but it did not work. I saw this youtube video - https://www.youtube.com/watch?v=U8jT2lqU0bU
It can be clearly seen that he has an option to choose toolchain for stm32.
Still not able to generate code.
Thanks.
When a code generation option like that does not show up, then it is usually either because you are using an older version, or else that you do not have a license for the product that enables that flow.
I am using Matlab 2015 with academic license. It can generate code for simulink blocks of "Embedded Support Package for STMicroelectronics STM32F4-Discovery Board". But it can not generate for "Target support package - STM32 Adapter".
I found out the way one can add a compiler toolchain. I have to upgrade model to use toolchain based approach. I found that here - http://uk.mathworks.com/help/rtw/ug/program-builds.html#bqfq458-1
Bad thing is that I am still not able to add toolchain even though I tried all steps written in that article. When I click on Update Model button, it gives me result as shown in image below.
I seem to have the exact symptoms as you with my STM32f4 discovery.
The Waijung simulink blockset and the MATLAB supported "Embedded Support Package for STMicroelectronics STM32F4-Discovery Board" work fine but the STM32-MAT/TARGET or "Target support package - STM32 Adapter" does not.
I have Win8.1, R2015a, SDK 7.1, .NET 4 are both installed (see below), ST Link and STM32CubeMX. I also do not have the toolchain as per this video. The user in the video is using R2013b which might be the issue.
I tried the link you provided above but I don't get the "Upgrade Model" button, maybe because I created the model in R2015a?
My simple model is as below:
I can also generate code with STM32CubeMX:
Have you managed to get this blockset working?
Cheers
>> mex -v -setup C
Verbose mode is on.
... Looking for compiler 'Intel C++ Composer XE 2011 with Microsoft SDK 7.1 (C)' ...
... Looking for environment variable 'ICPP_COMPILER12' ...No.
Did not find installed compiler 'Intel C++ Composer XE 2011 with Microsoft SDK 7.1 (C)'.
... Looking for compiler 'Intel C++ Composer XE 2011 with Microsoft Visual Studio 2008 (C)' ...
... Looking for environment variable 'ICPP_COMPILER12' ...No.
Did not find installed compiler 'Intel C++ Composer XE 2011 with Microsoft Visual Studio 2008 (C)'.
... Looking for compiler 'Intel C++ Composer XE 2011 with Microsoft Visual Studio 2010 (C)' ...
... Looking for environment variable 'ICPP_COMPILER12' ...No.
Did not find installed compiler 'Intel C++ Composer XE 2011 with Microsoft Visual Studio 2010 (C)'.
... Looking for compiler 'Intel C++ Composer XE 2013 with Microsoft SDK 7.1' ...
... Looking for environment variable 'ICPP_COMPILER14' ...No.
... Looking for environment variable 'ICPP_COMPILER13' ...No.
Did not find installed compiler 'Intel C++ Composer XE 2013 with Microsoft SDK 7.1'.
... Looking for compiler 'Intel C++ Composer XE 2013 with Microsoft Visual Studio 2010 (C)' ...
... Looking for environment variable 'ICPP_COMPILER14' ...No.
... Looking for environment variable 'ICPP_COMPILER13' ...No.
Did not find installed compiler 'Intel C++ Composer XE 2013 with Microsoft Visual Studio 2010 (C)'.
... Looking for compiler 'Intel C++ Composer XE 2013 with Microsoft Visual Studio 2012 (C)' ...
... Looking for environment variable 'ICPP_COMPILER14' ...No.
... Looking for environment variable 'ICPP_COMPILER13' ...No.
Did not find installed compiler 'Intel C++ Composer XE 2013 with Microsoft Visual Studio 2012 (C)'.
... Looking for compiler 'Microsoft Visual C++ 2008 (C)' ...
... Looking for environment variable 'VS90COMNTOOLS' ...No.
Did not find installed compiler 'Microsoft Visual C++ 2008 (C)'.
... Looking for compiler 'Microsoft Visual C++ 2010 (C)' ...
... Looking for environment variable 'VS100COMNTOOLS' ...Yes ('C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\').
... Looking for file 'C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\cl.exe' ...Yes.
... Looking for folder 'C:\Program Files (x86)\Microsoft Visual Studio 10.0' ...Yes.
... Looking for registry setting 'HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A' InstallationFolder ...No.
... Looking for registry setting 'HKCU\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A' InstallationFolder ...No.
Did not find installed compiler 'Microsoft Visual C++ 2010 (C)'.
... Looking for compiler 'Microsoft Visual C++ 2012 (C)' ...
... Looking for registry setting 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 11.0 ...No.
... Looking for registry setting 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 11.0 ...No.
... Looking for registry setting 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 11.0 ...No.
... Looking for registry setting 'HKCU\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 11.0 ...No.
Did not find installed compiler 'Microsoft Visual C++ 2012 (C)'.
... Looking for compiler 'Microsoft Visual C++ 2013 Professional (C)' ...
... Looking for registry setting 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 12.0 ...No.
... Looking for registry setting 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 12.0 ...No.
... Looking for registry setting 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 12.0 ...No.
... Looking for registry setting 'HKCU\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 12.0 ...No.
Did not find installed compiler 'Microsoft Visual C++ 2013 Professional (C)'.
... Looking for compiler 'Microsoft Windows SDK 7.1 (C)' ...
... Looking for registry setting 'HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1' InstallationFolder ...Yes ('C:\Program Files\Microsoft SDKs\Windows\v7.1\').
... Looking for registry setting 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7' 10.0 ...Yes ('C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\').
... Looking for file 'C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\cl.exe' ...Yes.
... Looking for folder 'C:\Program Files (x86)\Microsoft Visual Studio 10.0' ...Yes.
Found installed compiler 'Microsoft Windows SDK 7.1 (C)'.
... Looking for compiler 'Microsoft Windows SDK 7.1 (C)' ...
... Looking for registry setting 'HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1' InstallationFolder ...Yes ('C:\Program Files\Microsoft SDKs\Windows\v7.1\').
... Looking for registry setting 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7' 10.0 ...Yes ('C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\').
... Looking for file 'C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\cl.exe' ...Yes.
... Looking for folder 'C:\Program Files (x86)\Microsoft Visual Studio 10.0' ...Yes.
Found installed compiler 'Microsoft Windows SDK 7.1 (C)'.
MEX configured to use 'Microsoft Windows SDK 7.1 (C)' for C language compilation.
Warning: The MATLAB C and Fortran API has changed to support MATLAB
variables with more than 2^32-1 elements. In the near future
you will be required to update your code to utilize the
new API. You can find more information about this at:
http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.
i got the same problem like you, i installed matlab 2014 and 2015a, stm32 cube V4.8, compiler visual studio C++ 2010 -2015 but it still didn't work. Did you solve that probem. Please help me.
Hi Rhys,
could you please paste a snapshot of "Configuration Parameters --> Code Generation". I would like to see the settings.
Thanks.
Abhijeet

Accedi per commentare.

Risposte (6)

Pascal REYNAUD
Pascal REYNAUD il 8 Giu 2015

0 voti

Hello,
toolchain is selected from STM32CubeMx tool that must be installed to use STM32-MAT/Target solution.
STM32CubeMx installation path is selected from "STM32 Options" that appears when you select STM32.tlc.
It is used to configure MCU (Pinout and peripherals) and used toolchain.
Then, it is called from Simulink to generate project.
Best regards
Pascal

4 Commenti

Hello,
I have already installed STM32CubeMx and also given path in STM32 options but still it did not work.
Thanks,
Abhijeet
Rhys
Rhys il 30 Giu 2015
Hi Pascal,
I'm facing the same issues described here.
How exactly do you select a toolchain with STM32CubeMx? Could you provide an example? My STM32CubeMx installation path, .ioc file is correctly selected from "STM32 Options" that appears when you select STM32.tlc in Code Generation. I am wondering if the "Toolchain Folder Location needs to point somewhere special (compared to where I've set it below)?
In my stm32 Simulink model, the STM32CubeMX file appears as follows:
I am facing the same error. My setup:
  • MATLAB R2015a (8.5.0.197613)
  • STM32CubeMX 4.8.0
  • Keil uVision 5.15
It seems to me, that MATLAB/Simulink cannot open STM32CubeMX when compiling, although the configuration within Simulink is set correctly.
Is there some kind of debug mode to check which paths simulink checks to open STM32CubeMX?
Same problem here, any further update?

Accedi per commentare.

jonatan blom
jonatan blom il 28 Lug 2015

0 voti

I’m also getting this error, I can compile my model with 2013b but when I try with 2015a I get the same error as you "An installed compiler was not detected". I have no problem compiling a c file with mex command in the matlab prompt...
yi zhang
yi zhang il 29 Lug 2015

0 voti

"args.mexOpts = rtwprivate('getMexCompilerInfo','manufacturer','LCC');"-->"args.mexOpts = rtwprivate('getMexCompilerInfo','LCC');" in setup_for_lcc.m. It works in this scenario but the side-effects are unknown yet.
abhijeetb89
abhijeetb89 il 29 Lug 2015
Modificato: abhijeetb89 il 29 Lug 2015

0 voti

Hello Pascal,
Could you do me a favor? If you can generate code at your end, could you please paste a snapshot of "Configuration Parameters ----> Code Generation". I would like to see the settings.
Thanks.
Abhijeet
I have basically the same issues by generating the code for the STM32 : An installed compiler was not detected...
If I check for installed compilers via mex -setup:
MEX configured to use 'Microsoft Windows SDK 7.1 (C)' for C language compilation.
Everything looks fine, building code for Arduino works just fine. What could be the reason for this issue? I have a OS Win7 64-Bit with Matlab 2015b.
I'm thankful for any help or assistance.
Regards,
goldenEyes
smrtkai
smrtkai il 4 Dic 2015
Modificato: smrtkai il 4 Dic 2015

0 voti

I had similiar issues. Maybe these links can help:
I wrote a step by step guide for myself on "How to setup STM32-MAT/TARGET with MATLAB R2015a". https://my.st.com/b476312a
Discussion on st.com:
The STM32-MAT/TARGET was developed for MATLAB R2014a. I was not able to get it working with MATLAB R2015b (generates erroneous). On my system it only works with MATLAB R2015a. I still have trouble to get Processor-In-the-Loop working.

Richiesto:

il 6 Giu 2015

Modificato:

il 4 Dic 2015

Community Treasure Hunt

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

Start Hunting!

Translated by