Olimex Support Forum

ARM => ST => Topic started by: franchan on June 30, 2014, 12:41:24 AM

Title: UART only sends part, then blocks
Post by: franchan on June 30, 2014, 12:41:24 AM
I'm using newlib-nano and STM32Cube_FW_F4_V1.1.0 on a stm32-E407

To get the UART to work - partly - by basing myself on a sample:
STM32Cube_FW_F4_V1.1.0/Projects/STM324x9I_EVAL/Examples/UART/UART_Printf

With minicom, I see, each time, 11 characters (a slower baudrate, gives less characters).
Then the stm32-E407 hangs in the loop of the Default_Handler.

A "where" in openocd+gdb gives me the following stack trace:

#0  WWDG_IRQHandler () at gcc/startup_stm32f407xx.s:131
#1  <signal handler called>
#2  0x08002d94 in UART_WaitOnFlagUntilTimeout (huart=0x200000a0 <UartHandle>, Flag=128, Status=RESET, Timeout=65535)
    at STM32Cube_FW_F4_V1.1.0/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1578
#3  0x0800207c in HAL_UART_Transmit (huart=0x200000a0 <UartHandle>, pData=0x800bfe8 "rld 1.\n\n", Size=20, Timeout=65535)
    at STM32Cube_FW_F4_V1.1.0/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:616
#4  0x0800b210 in main (argc=536871036, argv=0x7c) at main.c:23

Does somebody have an explanation?

Could it be related to a wrong "void SystemClock_Config(void)"?

Thanks!
Title: Re: UART only sends part, then blocks
Post by: franchan on June 30, 2014, 09:30:52 AM
I seem to have solved my problem by implementing a IRQ handler as follows:

void SysTick_Handler(void)
{
    HAL_IncTick();
}
Title: Re: UART only sends part, then blocks
Post by: farlane on July 12, 2014, 10:52:45 AM
Not done much yet with the StmCube but i thought that should have been generated automatically?
Title: Re: UART only sends part, then blocks
Post by: franchan on July 15, 2014, 01:48:16 AM
@farlane
Just using emacs + gcc + makefile; Unless I misunderstanding you,
nothing gets generated. I look in examples googled all over the place
and try to wrap something together myself ...
Unfortunately all examples in stmcube are coded using beyond my wallet IDE ...
Title: Re: UART only sends part, then blocks
Post by: farlane on July 19, 2014, 11:28:50 AM
Quote from: franchan on July 15, 2014, 01:48:16 AM
@farlane
Unfortunately all examples in stmcube are coded using beyond my wallet IDE ...
If you choose TrueStudio as output format it will generate sources that compile with GCC. ( TrueSTudio is GCC based )
You then have to generate a makefile ( or create a project in your own IDE ) that corresponds with the TrueStudio project.
Unfortunatly, i have yet to get a working skeleton going using either USB or Ethernet. There are still bits missing i guess and for example when using ethernet the PHY is hardcoded in the project.