update readme
This commit is contained in:
parent
c1baf25c69
commit
bcd3431d26
3
Makefile
3
Makefile
@ -86,8 +86,7 @@ remduplicates = $(strip $(if $1,$(firstword $1) $(call remduplicates,$(filter-ou
|
|||||||
#*********************************
|
#*********************************
|
||||||
ifeq ($(BOARD),)
|
ifeq ($(BOARD),)
|
||||||
$(info You must provide a BOARD parameter with 'BOARD=')
|
$(info You must provide a BOARD parameter with 'BOARD=')
|
||||||
$(info Possible values are:)
|
$(info Supported boards are: $(sort $(subst .h,,$(subst src/boards/,,$(wildcard src/boards/*)))))
|
||||||
$(info $(sort $(subst .h,,$(subst src/boards/,,$(wildcard src/boards/*)))))
|
|
||||||
$(error BOARD not defined)
|
$(error BOARD not defined)
|
||||||
else
|
else
|
||||||
ifeq ($(wildcard src/boards/$(BOARD).h),)
|
ifeq ($(wildcard src/boards/$(BOARD).h),)
|
||||||
|
74
README.md
74
README.md
@ -1,25 +1,61 @@
|
|||||||
# Adafruit nRF52840 Bootloader
|
# Adafruit Bluefruit nRF52 Bootloader
|
||||||
|
|
||||||
This repository contains the USB bootloader for Adafruit nRF52840 boards (1MB
|
This repository contains the bootloader for Adafruit nRF52 series board
|
||||||
flash, 256KB SRAM). This repository depend on [tinyusb](https://github.com/hathach/tinyusb/tree/develop) as submodule. After
|
|
||||||
cloning this repo you need to run the following command:
|
|
||||||
|
|
||||||
|
- [Bluefruit Feather nRF52832](https://www.adafruit.com/product/3406)
|
||||||
|
- Bluefruit Feather nRF52840
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
### nRF52832
|
||||||
|
|
||||||
|
- DFU over Serial and OTA ( Application, Bootloader+SD )
|
||||||
|
- DFU auto start to work with Arduino DTR auto-reset
|
||||||
|
|
||||||
|
### nRF52840
|
||||||
|
|
||||||
|
- DFU over USB CDC and OTA ( Application, Bootloader+SD )
|
||||||
|
- DFU using USB Flashing Format a.k.a [UF2](https://github.com/Microsoft/uf2) (Applicatoin only)
|
||||||
|
|
||||||
|
|
||||||
|
## Compile
|
||||||
|
|
||||||
|
This repository depend on following submodule
|
||||||
|
|
||||||
|
- [tinyusb](https://github.com/hathach/tinyusb/tree/develop)
|
||||||
|
- [nrfx](https://github.com/NordicSemiconductor/nrfx)
|
||||||
|
|
||||||
|
Get the code with following command:
|
||||||
|
|
||||||
|
git clone <URL>.git Adafruit_nRF52_Bootloader
|
||||||
|
cd Adafruit_nRF52_Bootloader
|
||||||
git submodule update --init
|
git submodule update --init
|
||||||
|
|
||||||
## Option 1: Build with makefile
|
### Option 1: Build with makefile
|
||||||
|
|
||||||
Navigate to `src/singlebank` (recommended) or `src/dualbank` (work in progress),
|
Prerequisite
|
||||||
and use feather52840 target for building bootloader.
|
|
||||||
|
|
||||||
make feather52840
|
- ARM GCC
|
||||||
|
- Nordic's [nRF5x Command Line Tools](http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.tools%2Fdita%2Ftools%2Fnrf5x_command_line_tools%2Fnrf5x_installation.html)
|
||||||
|
|
||||||
To flash bootloader + S140
|
To build
|
||||||
|
|
||||||
make flash_feather52840
|
$ make BOARD=feather52840 all
|
||||||
|
|
||||||
To only flash S140
|
To flash bootloader
|
||||||
|
|
||||||
make flash_sd
|
$ make BOARD=feather52840 flash
|
||||||
|
|
||||||
|
To flash SoftDevice (with full chip erase)
|
||||||
|
|
||||||
|
$ make BOARD=feather52840 sd
|
||||||
|
|
||||||
|
For the list of supported boards, try to type make without `BOARD=`
|
||||||
|
|
||||||
|
$ make
|
||||||
|
You must provide a BOARD parameter with 'BOARD='
|
||||||
|
Supported boards are: feather52832 feather52840 pca10056
|
||||||
|
Makefile:90: *** BOARD not defined. Stop
|
||||||
|
|
||||||
### Common makefile problems
|
### Common makefile problems
|
||||||
|
|
||||||
@ -27,24 +63,22 @@ To only flash S140
|
|||||||
|
|
||||||
If you get the following error ...
|
If you get the following error ...
|
||||||
|
|
||||||
$ make feather52840
|
$ make BOARD=feather52840 all
|
||||||
Compiling file: dfu_single_bank.c
|
Compiling file: main.c
|
||||||
/bin/sh: /usr/bin/arm-none-eabi-gcc: No such file or directory
|
/bin/sh: /usr/bin/arm-none-eabi-gcc: No such file or directory
|
||||||
make: *** [_build/dfu_single_bank.o] Error 127
|
make: *** [_build/main.o] Error 127
|
||||||
|
|
||||||
... you may need to edit the `Makefile` (for example `src/singlebank/Makefile`),
|
... you may need to edit the `Makefile` and update the `GNU_INSTALL_ROOT` to point to the root path of your GCC ARM toolchain.
|
||||||
and update the `GNU_INSTALL_ROOT` to point to the root path of your GCC ARM
|
|
||||||
toolchain.
|
|
||||||
|
|
||||||
#### 2. `mergehex: No such file or directory`
|
#### 2. `mergehex: No such file or directory`
|
||||||
|
|
||||||
Make sure that `mergehex` is available from the command-line. This binary is
|
Make sure that `mergehex` is available from the command-line. This binary is
|
||||||
part of of Nordic's [nRF5x Command Line Tools](http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.tools%2Fdita%2Ftools%2Fnrf5x_command_line_tools%2Fnrf5x_installation.html).
|
part of of Nordic's nRF5x Command Line Tools
|
||||||
|
|
||||||
#### 3. `make: nrfjprog: No such file or directory`
|
#### 3. `make: nrfjprog: No such file or directory`
|
||||||
|
|
||||||
Make sure that `nrfjprog` is available from the command-line. This binary is
|
Make sure that `nrfjprog` is available from the command-line. This binary is
|
||||||
part of of Nordic's [nRF5x Command Line Tools](http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.tools%2Fdita%2Ftools%2Fnrf5x_command_line_tools%2Fnrf5x_installation.html).
|
part of of Nordic's nRF5x Command Line Tools.
|
||||||
|
|
||||||
On POSIX-type systems you can temporarily add the path to `nrfjprog` via a
|
On POSIX-type systems you can temporarily add the path to `nrfjprog` via a
|
||||||
variation on the following command:
|
variation on the following command:
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
arm_target_debug_interface_type="ADIv5"
|
arm_target_debug_interface_type="ADIv5"
|
||||||
arm_target_device_name="nRF52840_xxAA"
|
arm_target_device_name="nRF52840_xxAA"
|
||||||
arm_target_interface_type="SWD"
|
arm_target_interface_type="SWD"
|
||||||
c_preprocessor_definitions="NRF52840_XXAA;__nRF_FAMILY;ARM_MATH_CM4;FLASH_PLACEMENT=1;NO_VTOR_CONFIG;BOARD_PCA10056;BOOTLOADER_VERSION=0x06000001;MK_DIS_FIRMWARE="S140 6.0.0, 6.0.0";S140;CONFIG_GPIO_AS_PINRESET;BLE_STACK_SUPPORT_REQD;SWI_DISABLE0;SOFTDEVICE_PRESENT;FLOAT_ABI_HARD"
|
c_preprocessor_definitions="NRF52840_XXAA;__nRF_FAMILY;ARM_MATH_CM4;FLASH_PLACEMENT=1;NO_VTOR_CONFIG;BOARD_PCA10056;MK_BOOTLOADER_VERSION=0x06000001;MK_DIS_FIRMWARE="S140 6.0.0, 6.0.0";S140;CONFIG_GPIO_AS_PINRESET;BLE_STACK_SUPPORT_REQD;SWI_DISABLE0;SOFTDEVICE_PRESENT;FLOAT_ABI_HARD"
|
||||||
c_user_include_directories="../;../usb;$(TusbDir);$(SdDir)/s140/headers;$(SdDir)/s140/headers/nrf52;$(Sdk11Dir)/drivers_nrf/pstorage;$(Sdk11Dir)/ble/common/;$(Sdk11Dir)/ble/ble_services/ble_dfu;$(Sdk11Dir)/ble/ble_services/ble_dis;$(Sdk11Dir)/libraries/bootloader_dfu;$(Sdk11Dir)/libraries/bootloader_dfu/hci_transport;$(Sdk11Dir)/libraries/util;$(SdkDir)/toolchain/cmsis/include;$(SdkDir)/device;$(SdkDir)/toolchain;$(SdkDir)/drivers_nrf/hal;$(SdkDir)/drivers_nrf/systick;$(SdkDir)/drivers_nrf/uart;$(SdkDir)/drivers_nrf/usbd;$(SdkDir)/drivers_nrf/common;$(SdkDir)/drivers_nrf/delay;$(SdkDir)/drivers_nrf/power;$(SdkDir)/drivers_nrf/clock;$(SdkDir)/libraries/util;$(SdkDir)/libraries/timer;$(SdkDir)/libraries/scheduler;$(SdkDir)/libraries/crc16;$(SdkDir)/libraries/util;$(SdkDir)/libraries/hci/config;$(SdkDir)/libraries/uart;$(SdkDir)/libraries/hci;$(SdkDir)/external/fprintf;$(SdkDir)/libraries/strerror;$(SdkDir)/libraries/atomic;$(SdkDir)/libraries/balloc;$(SdkDir)/libraries/experimental_log/src;$(SdkDir)/libraries/experimental_log;$(SdkDir)/libraries/experimental_section_vars;$(SdkDir)/libraries/experimental_memobj"
|
c_user_include_directories="../;../usb;$(TusbDir);$(SdDir)/s140/headers;$(SdDir)/s140/headers/nrf52;$(Sdk11Dir)/drivers_nrf/pstorage;$(Sdk11Dir)/ble/common/;$(Sdk11Dir)/ble/ble_services/ble_dfu;$(Sdk11Dir)/ble/ble_services/ble_dis;$(Sdk11Dir)/libraries/bootloader_dfu;$(Sdk11Dir)/libraries/bootloader_dfu/hci_transport;$(Sdk11Dir)/libraries/util;$(SdkDir)/toolchain/cmsis/include;$(SdkDir)/device;$(SdkDir)/toolchain;$(SdkDir)/drivers_nrf/hal;$(SdkDir)/drivers_nrf/systick;$(SdkDir)/drivers_nrf/uart;$(SdkDir)/drivers_nrf/usbd;$(SdkDir)/drivers_nrf/common;$(SdkDir)/drivers_nrf/delay;$(SdkDir)/drivers_nrf/power;$(SdkDir)/drivers_nrf/clock;$(SdkDir)/libraries/util;$(SdkDir)/libraries/timer;$(SdkDir)/libraries/scheduler;$(SdkDir)/libraries/crc16;$(SdkDir)/libraries/util;$(SdkDir)/libraries/hci/config;$(SdkDir)/libraries/uart;$(SdkDir)/libraries/hci;$(SdkDir)/external/fprintf;$(SdkDir)/libraries/strerror;$(SdkDir)/libraries/atomic;$(SdkDir)/libraries/balloc;$(SdkDir)/libraries/experimental_log/src;$(SdkDir)/libraries/experimental_log;$(SdkDir)/libraries/experimental_section_vars;$(SdkDir)/libraries/experimental_memobj"
|
||||||
debug_register_definition_file="$(ProjectDir)/nrf52840_Registers.xml"
|
debug_register_definition_file="$(ProjectDir)/nrf52840_Registers.xml"
|
||||||
debug_target_connection="J-Link"
|
debug_target_connection="J-Link"
|
||||||
|
Loading…
Reference in New Issue
Block a user