This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Errors compiling with Keil V5 (project generated with simulink STM32-MAT)

Hello,

I am having troubles trying to get any simple project to work when I create it with the "Target Support Package - STM32 Adapter" toolbox provided by STM for Simulink.

For example, I followed the steps described in a youtube video titled "STM32F429 DISCOVERY - SIMULINK EXAMPLE 01" to program a discovery board using Simulink, STM32cubeMX and Keil toolchain.

I just load my simulink blank model, configure the setup with my cubeMX .ioc file with the port configuration and link one input with an output, as simple as that.

The problem comes when I compile the proyect from Keil. I got this log:

-----------------------------------------------------------------------------
Build target 'BLINK Configuration'
compiling system_stm32f4xx.c...
compiling main.c...
..\Src\main.c(126): warning: #111-D: statement is unreachable untitled_initialize();
..\Src\main.c(136): error: #94-D: the size of an array must be greater than zero OverrunFlags[0] = true;
..\Src\main.c(136): error: #77-D: this declaration has no storage class or type specifier OverrunFlags[0] = true;
..\Src\main.c(136): error: #147: declaration is incompatible with "boolean_T OverrunFlags[1]" (declared at line 69) OverrunFlags[0] = true;
..\Src\main.c(136): warning: #520-D: initialization with "{...}" expected for aggregate object OverrunFlags[0] = true;
..\Src\main.c(139): warning: #1295-D: Deprecated declaration untitled_step - give arg types untitled_step();
..\Src\main.c(139): error: #260-D: explicit type is missing ("int" assumed) untitled_step();
..\Src\main.c(139): error: #147: declaration is incompatible with "void untitled_step(void)" (declared at line 71 of "..\untitled\Inc\untitled.h") untitled_step();
..\Src\main.c(144): error: #94-D: the size of an array must be greater than zero OverrunFlags[0] = false;
..\Src\main.c(144): error: #77-D: this declaration has no storage class or type specifier OverrunFlags[0] = false;
..\Src\main.c(144): error: #147: declaration is incompatible with "boolean_T OverrunFlags[1]" (declared at line 136) OverrunFlags[0] = false;
..\Src\main.c(144): error: #148: variable "OverrunFlags" has already been initialized OverrunFlags[0] = false;
..\Src\main.c(144): warning: #520-D: initialization with "{...}" expected for aggregate object OverrunFlags[0] = false;
..\Src\main.c(145): error: #169: expected a declaration }
..\Src\main.c(245): warning: At end of source: #12-D: parsing restarts here after previous syntax error
..\Src\main.c(50): error: #114: function "MX_GPIO_Init" was referenced but not defined static void MX_GPIO_Init(void);
..\Src\main.c(69): warning: #550-D: variable "OverrunFlags" was set but never used static boolean_T OverrunFlags[1];
..\Src\main.c(75): warning: #550-D: variable "remainAutoReloadTimerLoopVal_S" was set but never used static uint32_t remainAutoReloadTimerLoopVal_S = 1;
..\Src\main.c: 7 warnings, 11 errors
compiling stm32f4xx_hal_msp.c...
compiling stm32f4xx_it.c...
assembling startup_stm32f407xx.s...
compiling stm32f4xx_hal_rcc.c...
compiling stm32f4xx_hal_dma.c...
compiling stm32f4xx_hal_rcc_ex.c...
compiling stm32f4xx_hal_cortex.c...
compiling stm32f4xx_hal_gpio.c...
compiling stm32f4xx_hal_pwr_ex.c...
compiling stm32f4xx_hal_flash_ex.c...
compiling stm32f4xx_hal_pwr.c...
compiling stm32f4xx_hal_flash_ramfunc.c...
compiling stm32f4xx_hal_flash.c...
compiling stm32f4xx_hal.c...
compiling untitled.c...
..\untitled\Src\untitled.c(50): warning: #188-D: enumerated type mixed with another type HAL_GPIO_WritePin(GPIOD, GPIO_PIN_13, untitled_B.GPIO_Read);
..\untitled\Src\untitled.c: 1 warning, 0 errors
"BLINK Configuration\BLINK Configuration.axf" - 11 Error(s), 8 Warning(s).
Target not created.
Build Time Elapsed: 00:00:25
-----------------------------------------------------------------------------

The kind of errors look like there is something wrong with the automatic generation of the code.

I have been able to load succesfully some examples that I downloaded from the Keil toolchain.

I am using the latest version of the toolchain, Keil V5 and the pack for my controller is updated. (In the video a previous version of Keil is used, but it should make no difference since my controller is still fully supported).

I even reinstalled all the programs but still got the same result.

In the video I mentioned before, the user only makes sure that the port is switched to SW and also that there is a flash loader set. I also tried following the steps for known problems wich appear at the bottom of the Readme file located, in my case, in C:/MATLAB/STM32-MAT/STM32/Readme.html. But neither erasing the " Configuration" string nor completing the Define statement worked for me. In fact I always got the same log.

Any idea about where can be the problem? I followed the video step by step and the rest of settings in my computer are as default.

0