crazyflie2.0 cannot enter DFU mode

Discussions about all things Bitcraze
Post Reply
chuhao
Beginner
Posts: 27
Joined: Sat Apr 29, 2017 6:25 am

crazyflie2.0 cannot enter DFU mode

Post by chuhao » Tue Jul 11, 2017 4:07 pm

Hi

I was trying to flash firmware to crazyflie 2.0.

When I plug micro usd to the drone, and check devices through

Code: Select all

lsusb
It shows,

Code: Select all

Bus 003 Device 059: ID 0483:5740 STMicroelectronics STM32F407
Then, I make it enter DFU mode by press on/off button at start. The LED shows corrent, with two front LED blink in blue. But I cannot find device by command

Code: Select all

lsusb
There is no devices related with STM32 showed again.

Do you know what's goes wrong?



arnaud
Bitcraze
Posts: 2120
Joined: Tue Feb 06, 2007 12:36 pm

Re: crazyflie2.0 cannot enter DFU mode

Post by arnaud » Wed Jul 12, 2017 10:06 am

Nothing is going wrong: if both blue LED are blinking you are in radio bootloader mode, not in DFU mode. The radio bootloader does not initialize the STM32 USB peripheral which explains that you are not seeing anything with lsusb. While in bootloader mode you can flash you crazyflie with "make cload" from any firmware project or with the Cazyflie client bootloader toolbox.

If you really want DFU mode (be careful you can erase the stm32 bootloader with DFU, you will then have to re-flash it) you have to press the ON/OFF switch for about 5 second until the M2 blue LED blinks faster and then click again on the button. To reset you need to power cycle the board. Note that it is not possible to program the radio chip nRF51 in dfu mode, is is mainly intended as a recovery mode.

chuhao
Beginner
Posts: 27
Joined: Sat Apr 29, 2017 6:25 am

Re: crazyflie2.0 cannot enter DFU mode

Post by chuhao » Thu Jul 13, 2017 5:02 am

Hi Arnaud

I can flash crazyflie firmware over radio link. Thanks for your help!

chuhao
Beginner
Posts: 27
Joined: Sat Apr 29, 2017 6:25 am

Re: crazyflie2.0 cannot enter DFU mode

Post by chuhao » Thu Jul 13, 2017 5:09 am

Hi Arnaud

There is another problem I'm not sure. How to flash firmware for NRF51 on crazyflie?

I checked the wiki https://wiki.bitcraze.io/doc:crazyflie:dev:starting. But I'm not sure can I flash NRF51 firmware over radiolink? It seems it require SWD cable and looks complex.

Thanks

arnaud
Bitcraze
Posts: 2120
Joined: Tue Feb 06, 2007 12:36 pm

Re: crazyflie2.0 cannot enter DFU mode

Post by arnaud » Thu Jul 13, 2017 7:37 am

You can flash both STM32 and nRF51 using the radio link. The SWD cable is only required if you want to debug using GDB (and to do things like updating the bluetooth stack).

To flash the nRF51 from source you can type "make cload" in the crazyflie2-nrf-firmware project and it will be flashed.

chuhao
Beginner
Posts: 27
Joined: Sat Apr 29, 2017 6:25 am

Re: crazyflie2.0 cannot enter DFU mode

Post by chuhao » Thu Jul 13, 2017 2:44 pm

Hi Arnaud

I entered "crazyflie2-nrf-firmware" and tried to compile NRF51 with

Code: Select all

make
, it shows,

Code: Select all

arm-none-eabi-gcc -mcpu=cortex-m0 -mthumb -DNRF51  -I Include -I Include/gcc -Iinterface -DRSSI_ACK_PACKET -g3 -O0 -Wall -fsingle-precision-constant -ffast-math -std=gnu11 -DS110=1 -DBLE=1 -DBLE_STACK_SUPPORT_REQD -DNRF51 -Inrf51_sdk/nrf51822/Include/gcc -Inrf51_sdk/nrf51822/Include/ -Inrf51_sdk/nrf51822/Include/ble/ -Inrf51_sdk/nrf51822/Include/ble/ble_services/ -Inrf51_sdk/nrf51822/Include/ble/device_manager/ -Is110/s110_nrf51822_7.0.0_API/include -Is110/Include/ -Inrf51_sdk/nrf51822/Include/app_common/ -Inrf51_sdk/nrf51822/Include/sd_common/ -Inrf51_sdk/nrf51822/Include/sdk/   -c -o src/ble/ble.o src/ble/ble.c
src/ble/ble.c:19:27: fatal error: nordic_common.h: No such file or directory
 #include "nordic_common.h"
                           ^
compilation terminated.
<builtin>: recipe for target 'src/ble/ble.o' failed
make: *** [src/ble/ble.o] Error 1
Then, I compile it with,

Code: Select all

make BLE=0
It shows compile success,

Code: Select all

arm-none-eabi-gcc -mcpu=cortex-m0 -mthumb -DNRF51  -I Include -I Include/gcc -Iinterface -DRSSI_ACK_PACKET -g3 -O0 -Wall -fsingle-precision-constant -ffast-math -std=gnu11 -DS110=1   -c -o src/main.o src/main.c
arm-none-eabi-as -mcpu=cortex-m0 -mthumb  -o gcc_startup_nrf51.o gcc_startup_nrf51.s
arm-none-eabi-gcc -mcpu=cortex-m0 -mthumb -DNRF51  -I Include -I Include/gcc -Iinterface -DRSSI_ACK_PACKET -g3 -O0 -Wall -fsingle-precision-constant -ffast-math -std=gnu11 -DS110=1   -c -o system_nrf51.o system_nrf51.c
arm-none-eabi-gcc -mcpu=cortex-m0 -mthumb -DNRF51  -I Include -I Include/gcc -Iinterface -DRSSI_ACK_PACKET -g3 -O0 -Wall -fsingle-precision-constant -ffast-math -std=gnu11 -DS110=1   -c -o src/uart.o src/uart.c
arm-none-eabi-gcc -mcpu=cortex-m0 -mthumb -DNRF51  -I Include -I Include/gcc -Iinterface -DRSSI_ACK_PACKET -g3 -O0 -Wall -fsingle-precision-constant -ffast-math -std=gnu11 -DS110=1   -c -o src/syslink.o src/syslink.c
arm-none-eabi-gcc -mcpu=cortex-m0 -mthumb -DNRF51  -I Include -I Include/gcc -Iinterface -DRSSI_ACK_PACKET -g3 -O0 -Wall -fsingle-precision-constant -ffast-math -std=gnu11 -DS110=1   -c -o src/pm.o src/pm.c
arm-none-eabi-gcc -mcpu=cortex-m0 -mthumb -DNRF51  -I Include -I Include/gcc -Iinterface -DRSSI_ACK_PACKET -g3 -O0 -Wall -fsingle-precision-constant -ffast-math -std=gnu11 -DS110=1   -c -o src/systick.o src/systick.c
arm-none-eabi-gcc -mcpu=cortex-m0 -mthumb -DNRF51  -I Include -I Include/gcc -Iinterface -DRSSI_ACK_PACKET -g3 -O0 -Wall -fsingle-precision-constant -ffast-math -std=gnu11 -DS110=1   -c -o src/button.o src/button.c
arm-none-eabi-gcc -mcpu=cortex-m0 -mthumb -DNRF51  -I Include -I Include/gcc -Iinterface -DRSSI_ACK_PACKET -g3 -O0 -Wall -fsingle-precision-constant -ffast-math -std=gnu11 -DS110=1   -c -o src/swd.o src/swd.c
arm-none-eabi-gcc -mcpu=cortex-m0 -mthumb -DNRF51  -I Include -I Include/gcc -Iinterface -DRSSI_ACK_PACKET -g3 -O0 -Wall -fsingle-precision-constant -ffast-math -std=gnu11 -DS110=1   -c -o src/ow.o src/ow.c
arm-none-eabi-gcc -mcpu=cortex-m0 -mthumb -DNRF51  -I Include -I Include/gcc -Iinterface -DRSSI_ACK_PACKET -g3 -O0 -Wall -fsingle-precision-constant -ffast-math -std=gnu11 -DS110=1   -c -o src/ow/owlnk.o src/ow/owlnk.c
arm-none-eabi-gcc -mcpu=cortex-m0 -mthumb -DNRF51  -I Include -I Include/gcc -Iinterface -DRSSI_ACK_PACKET -g3 -O0 -Wall -fsingle-precision-constant -ffast-math -std=gnu11 -DS110=1   -c -o src/ow/ownet.o src/ow/ownet.c
arm-none-eabi-gcc -mcpu=cortex-m0 -mthumb -DNRF51  -I Include -I Include/gcc -Iinterface -DRSSI_ACK_PACKET -g3 -O0 -Wall -fsingle-precision-constant -ffast-math -std=gnu11 -DS110=1   -c -o src/ow/owtran.o src/ow/owtran.c
arm-none-eabi-gcc -mcpu=cortex-m0 -mthumb -DNRF51  -I Include -I Include/gcc -Iinterface -DRSSI_ACK_PACKET -g3 -O0 -Wall -fsingle-precision-constant -ffast-math -std=gnu11 -DS110=1   -c -o src/ow/crcutil.o src/ow/crcutil.c
arm-none-eabi-gcc -mcpu=cortex-m0 -mthumb -DNRF51  -I Include -I Include/gcc -Iinterface -DRSSI_ACK_PACKET -g3 -O0 -Wall -fsingle-precision-constant -ffast-math -std=gnu11 -DS110=1   -c -o src/ds2431.o src/ds2431.c
arm-none-eabi-gcc -mcpu=cortex-m0 -mthumb -DNRF51  -I Include -I Include/gcc -Iinterface -DRSSI_ACK_PACKET -g3 -O0 -Wall -fsingle-precision-constant -ffast-math -std=gnu11 -DS110=1   -c -o src/ds28e05.o src/ds28e05.c
arm-none-eabi-gcc -mcpu=cortex-m0 -mthumb -DNRF51  -I Include -I Include/gcc -Iinterface -DRSSI_ACK_PACKET -g3 -O0 -Wall -fsingle-precision-constant -ffast-math -std=gnu11 -DS110=1   -c -o src/esb.o src/esb.c
arm-none-eabi-gcc -mcpu=cortex-m0 -mthumb -DNRF51  -I Include -I Include/gcc -Iinterface -DRSSI_ACK_PACKET -g3 -O0 -Wall -fsingle-precision-constant -ffast-math -std=gnu11 -DS110=1   -c -o src/memory.o src/memory.c
arm-none-eabi-gcc -mcpu=cortex-m0 -mthumb -O0 --specs=nano.specs -Wl,-Map=cf2_nrf.map -T gcc_nrf51_s110_xxaa.ld -o cf2_nrf.elf src/main.o gcc_startup_nrf51.o system_nrf51.o src/uart.o src/syslink.o src/pm.o src/systick.o src/button.o src/swd.o src/ow.o src/ow/owlnk.o src/ow/ownet.o src/ow/owtran.o src/ow/crcutil.o src/ds2431.o src/ds28e05.o src/esb.o src/memory.o
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-atexit.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-bzero.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-errno.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-exit.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-fini.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-impure.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-init.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-memcmp.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-memcpy.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-memset.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-printf.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-__atexit.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-__call_atexit.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-findfp.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-fwalk.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-nano-mallocr.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-nano-vfprintf.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-nano-vfprintf_i.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-sbrkr.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-stdio.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-wbuf.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-writer.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-wsetup.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-closer.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-fflush.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-fvwrite.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-lseekr.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-makebuf.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-memchr.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-memmove.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-nano-freer.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-nano-reallocr.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-readr.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-reent.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-fstatr.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-isattyr.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/armv6-m/libc_nano.a(lib_a-nano-msizer.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
arm-none-eabi-objcopy cf2_nrf.elf -O binary cf2_nrf.bin
arm-none-eabi-objcopy cf2_nrf.elf -O ihex cf2_nrf.hex
arm-none-eabi-size cf2_nrf.elf
   text	   data	    bss	    dec	    hex	filename
  26056	    444	   2564	  29064	   7188	cf2_nrf.elf
S110 Activated
BLE  Disabled
But when I flash it over radio,

Code: Select all

make cload
It shows,

Code: Select all

arm-none-eabi-gcc -mcpu=cortex-m0 -mthumb -DNRF51  -I Include -I Include/gcc -Iinterface -DRSSI_ACK_PACKET -g3 -O0 -Wall -fsingle-precision-constant -ffast-math -std=gnu11 -DS110=1 -DBLE=1 -DBLE_STACK_SUPPORT_REQD -DNRF51 -Inrf51_sdk/nrf51822/Include/gcc -Inrf51_sdk/nrf51822/Include/ -Inrf51_sdk/nrf51822/Include/ble/ -Inrf51_sdk/nrf51822/Include/ble/ble_services/ -Inrf51_sdk/nrf51822/Include/ble/device_manager/ -Is110/s110_nrf51822_7.0.0_API/include -Is110/Include/ -Inrf51_sdk/nrf51822/Include/app_common/ -Inrf51_sdk/nrf51822/Include/sd_common/ -Inrf51_sdk/nrf51822/Include/sdk/   -c -o src/ble/ble.o src/ble/ble.c
src/ble/ble.c:19:27: fatal error: nordic_common.h: No such file or directory
 #include "nordic_common.h"
                           ^
compilation terminated.
<builtin>: recipe for target 'src/ble/ble.o' failed
make: *** [src/ble/ble.o] Error 1
Do you know where goes wrong?

Thanks

arnaud
Bitcraze
Posts: 2120
Joined: Tue Feb 06, 2007 12:36 pm

Re: crazyflie2.0 cannot enter DFU mode

Post by arnaud » Fri Jul 14, 2017 7:35 am

you need to "make BLE=0 cload" to flash without bluetooth. The reason is that the Makefile compiles the project when you launch "make cload" so all the option must be given.

To fix the bluetooth build you can download the buetooth stack files with download_deps: https://github.com/bitcraze/crazyflie2- ... -firmware-

Post Reply