Hi Piotr,

There was an issue on F411RE clock initialisation steps.
I've submitted following change to correct it:
https://gerrit.zephyrproject.org/r/9571

Hope it helps.

Cheers
Erwan


On 20 December 2016 at 01:44, Piotr Król <piotr.krol@3mdeb.com> wrote:
Hi all,

I'm trying to run some examples (ie. hello_world, blinky) from arm
branch on Nucleo-64 STM32F411RE, but have problem with verifying if it
works. What I tried:

In hello_world directory:
make BOARD=nucleo_f411re
make BOARD=nucleo_f411re flash

Board seem to flash correctly. I OpenOCD master branch compiled locally.

$ make BOARD=nucleo_f411re flash
make[1]: Entering directory '/path/to//src/zephyr-project'
make[2]: Entering directory '/path/to//src/zephyr-project/samples/hello_world/outdir/nucleo_f411re'
  Using /path/to//src/zephyr-project as source for kernel
  GEN     ./Makefile
  CHK     include/generated/version.h
  CHK     misc/generated/configs.c
  CHK     include/generated/offsets.h
  CHK     misc/generated/sysgen/prj.mdef
Flashing nucleo_f411re
Flashing Target Device
Open On-Chip Debugger 0.9.0-dirty (2016-08-02-16:04)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
adapter speed: 2000 kHz
adapter_nsrst_delay: 100
none separate
srst_only separate srst_nogate srst_open_drain connect_deassert_srst
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
Info : clock speed 1800 kHz
Info : STLINK v2 JTAG v27 API v2 SWIM v15 VID 0x0483 PID 0x374B
Info : using stlink api v2
Info : Target voltage: 3.234714
Info : stm32f4x.cpu: hardware has 6 breakpoints, 4 watchpoints
    TargetName         Type       Endian TapName            State
--  ------------------ ---------- ------ ------------------ ------------
 0* stm32f4x.cpu       hla_target little stm32f4x.cpu       running
target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x0800203c msp: 0x20000750
auto erase enabled
Info : device id = 0x10006431
Info : flash size = 512kbytes
target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x20000042 msp: 0x20000750
wrote 16384 bytes from file /path/to//src/zephyr-project/samples/hello_world/outdir/nucleo_f411re/zephyr.bin in 0.727563s (21.991 KiB/s)
target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x0800203c msp: 0x20000750
verified 12876 bytes in 0.118510s (106.103 KiB/s)
shutdown command invoked
Done flashing
make[2]: Leaving directory '/path/to//src/zephyr-project/samples/hello_world/outdir/nucleo_f411re'
make[1]: Leaving directory '/path/to//src/zephyr-project'

IIUC from defconfig:
# enable USART2 - passthrough to STLINK v2 connector
CONFIG_UART_STM32_PORT_2=y
CONFIG_UART_STM32_PORT_2_BAUD_RATE=115200
# enable console on this port by default
CONFIG_UART_CONSOLE_ON_DEV_NAME="UART_2"

I should have output on UART exposed by STLINK, in my case /dev/ttyACM0 under
Debian Linux. Unfortunately no output. What more is needed to push printk
output to UART ?

I tried also to compile blinky example, but it fails during compilation. My
understanding is that defines used there were not provided for F411. disco
example compiles fine, but doesn't seem to blink with LED1 and LED2.

I also tried to use debugger to step through and see what happen but it looks
like STM32 never hit main: https://gist.github.com/pietrushnic/c2e74de9ff1d11e8e2d442dd30d8ae0a

What is correct procedure to verify STM32 F411RE code ?

Best Regards,
--
Piotr Król
Embedded Systems Consultant
http://3mdeb.com | @3mdeb_com