Gast
#2481661
Hallo zusammen! Ich bin gerade dabei mich mit dem STM32 einzuarbeiten und verwende hierfür: STM32F4 Discovery Eclipse Codesourcery G++ Lite OpenOCD 0.5.0 mit dem Luminary ICD Board newlib_stubs von: https://sites.google.com/site/stm32discovery/open-source-development-with-the-stm32-discovery/getting-newlib-to-work-with-stm32-and-code-sourcery-lite-eabi Das erste Programm läuft bereits, allerdings mit folgendem seltsamen Phänomen: printf bleibt hängen, wenn das Programm ohne Debugger ausgeführt wird (flashen über ST-Link + Reset). Wenn ich das Programm vom ICD-Debugger ausflashe und starte dann klappt alles und es wird über die UART gesendet. Nachdem ich dann aber das Board resette bleibt es wieder hängen. Da ich über den Debugger dann aber trotzdem den Programcounter auslesen kann, konnte ich folgende Stelle ausmachen an welche das Programm hängt: newlib_stubs.c in funktion "int _write(int file, char *ptr, int len)": while((USART1->SR & USART_FLAG_TC) == (uint16_t)RESET) {} Hat jemand eine Idee was hier schief läuft??? (Programm funktioniert über Debugger, aber bleibt ohne Debugger in printf hängen) gdb-script für OpenOCD: set complaints 1 set output-radix 16 set input-radix 16 set prompt (arm-gdb) set remote memory-write-packet-size 1024 set remote memory-write-packet-size fixed set remote memory-read-packet-size 1024 set remote memory-read-packet-size fixed set remote hardware-watchpoint-limit 6 set remote hardware-breakpoint-limit 6 monitor reset monitor sleep 200 monitor poll monitor soft_reset_halt monitor flash write_image "${workspace_loc:/Template/Debug/Template.bin}" 0x08000000 bin Vielen Dank im Voraus, Mike