This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

bootloader does not work if compiled using armgcc

Hello!

SDK 15.3

If I build secure_bootloader example project using Segger Embedded Studio it works, I can see it nRF connect.

If I build it using armgcc it does not work and I can not attach Ozone debugger to it.

The only change I did to project is disabled `#ifdef NRF_DFU_DEBUG_VERSION ` check in  `dfu_public_key.c`

The sequence:

cd sdk/examples/dfu/secure_bootloader/pca10040_ble/armgcc

make

make erase

make flash_softdevice

make flash

GCC:

> arm-none-eabi-gcc -v
Using built-in specs.
COLLECT_GCC=arm-none-eabi-gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/arm-none-eabi/7.1.0/lto-wrapper
Target: arm-none-eabi
Configured with: ../gcc-7.1.0/configure --prefix=/usr --mandir=/usr/share/man --with-pkgversion='Fedora 7.1.0-5.fc27' --with-bugurl=https://bugzilla.redhat.com/ --infodir=/usr/share/info --target=arm-none-eabi --enable-interwork --enable-multilib --with-python-dir=share/arm-none-eabi/gcc-7.1.0/python --with-multilib-list=rmprofile --enable-plugins --disable-decimal-float --disable-libffi --disable-libgomp --disable-libmudflap --disable-libquadmath --disable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-tls --enable-languages=c,c++ --with-newlib --disable-nls --disable-shared --disable-threads --with-gnu-as --with-gnu-ld --with-gmp --with-mpfr --with-mpc --with-headers=yes --with-system-zlib --with-sysroot=/usr/arm-none-eabi
Thread model: single
gcc version 7.1.0 (Fedora 7.1.0-5.fc27)

But also tried `gcc version 8.2.1 20181213 (release) [gcc-8-branch revision 267074] (GNU Tools for Arm Embedded Processors 8-2018-q4-major)` with the same result.

If I flash it using procedure above and then attach debugger from SES, I see:

Unknown function at 0xFFFFFFFE

Need assistance

Parents
  • I've just tried to flash HEX file produced by SES using nrfjprog ang got the same state.

    nrfjprog -f nrf52 --program ../ses/Output/Release/Exe/secure_bootloader_ble_s132_pca10040.hex --sectorerase
    Parsing hex file.
    Erasing page at address 0x0.
    Erasing page at address 0x78000.
    Erasing page at address 0x79000.
    Erasing page at address 0x7A000.
    Erasing page at address 0x7B000.
    Erasing page at address 0x7C000.
    Erasing page at address 0x7D000.
    Applying system reset.
    Checking that the area to write is not protected.
    Programming device.

    It seems problem is not in FW itself or toolchain.

    It seems nrfjprog erases 0x0 page where softdevice is (if I am not wrong)

Reply
  • I've just tried to flash HEX file produced by SES using nrfjprog ang got the same state.

    nrfjprog -f nrf52 --program ../ses/Output/Release/Exe/secure_bootloader_ble_s132_pca10040.hex --sectorerase
    Parsing hex file.
    Erasing page at address 0x0.
    Erasing page at address 0x78000.
    Erasing page at address 0x79000.
    Erasing page at address 0x7A000.
    Erasing page at address 0x7B000.
    Erasing page at address 0x7C000.
    Erasing page at address 0x7D000.
    Applying system reset.
    Checking that the area to write is not protected.
    Programming device.

    It seems problem is not in FW itself or toolchain.

    It seems nrfjprog erases 0x0 page where softdevice is (if I am not wrong)

Children
No Data
Related