make SD default to s140 and s132 for nrf52840 and nrf52832
add CFG_HWUART_FOR_SERIAL for using jlink as REPL
This commit is contained in:
parent
6ef3a0b181
commit
948ddf8463
@ -1,19 +1,21 @@
|
|||||||
# Select the board to build for: if not given on the command line,
|
# Select the board to build for.
|
||||||
# then default to feather52832.
|
ifeq ($(BOARD),)
|
||||||
BOARD ?= feather52832
|
$(info You must provide a BOARD parameter with 'BOARD=')
|
||||||
ifeq ($(wildcard boards/$(BOARD)/.),)
|
$(info Possible values are:)
|
||||||
$(error Invalid BOARD specified)
|
$(info $(sort $(subst /.,,$(subst boards/,,$(wildcard boards/*/.)))))
|
||||||
|
$(error BOARD not defined)
|
||||||
|
else
|
||||||
|
ifeq ($(wildcard boards/$(BOARD)/.),)
|
||||||
|
$(error Invalid BOARD specified)
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# If SoftDevice is selected, try to use that one.
|
# If SoftDevice is selected, try to use that one.
|
||||||
# Default to SD132 (exact version can be set with SOFTDEV_VERSION)
|
# Default to SD132 (exact version can be set with SOFTDEV_VERSION)
|
||||||
SD ?= s132
|
|
||||||
SD_LOWER = $(shell echo $(SD) | tr '[:upper:]' '[:lower:]')
|
SD_LOWER = $(shell echo $(SD) | tr '[:upper:]' '[:lower:]')
|
||||||
|
|
||||||
# TODO: Verify that it is a valid target.
|
# If the build directory with SD
|
||||||
|
BUILD = $(if $(SD),build-$(BOARD)-$(SD_LOWER),build-$(BOARD))
|
||||||
# If the build directory is not given, make it reflect the board name
|
|
||||||
BUILD ?= $(if $(SD),build-$(BOARD)-$(SD_LOWER),build-$(BOARD))
|
|
||||||
|
|
||||||
include ../../py/mkenv.mk
|
include ../../py/mkenv.mk
|
||||||
include boards/$(BOARD)/mpconfigboard.mk
|
include boards/$(BOARD)/mpconfigboard.mk
|
||||||
|
@ -36,19 +36,11 @@
|
|||||||
|
|
||||||
#include "tusb.h"
|
#include "tusb.h"
|
||||||
|
|
||||||
/*------------------------------------------------------------------*/
|
|
||||||
/* MACRO TYPEDEF CONSTANT ENUM
|
|
||||||
*------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/*------------------------------------------------------------------*/
|
|
||||||
/* VARIABLE DECLARATION
|
|
||||||
*------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/*------------------------------------------------------------------*/
|
|
||||||
/* FUNCTION DECLARATION
|
|
||||||
*------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
void run_background_tasks(void) {
|
void run_background_tasks(void) {
|
||||||
|
|
||||||
|
#ifdef NRF52840_XXAA
|
||||||
tusb_task();
|
tusb_task();
|
||||||
tud_cdc_flush();
|
tud_cdc_flush();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
MCU_SERIES = m4
|
MCU_SERIES = m4
|
||||||
MCU_VARIANT = nrf52
|
MCU_VARIANT = nrf52
|
||||||
MCU_SUB_VARIANT = nrf52
|
MCU_SUB_VARIANT = nrf52
|
||||||
|
SD ?= s132
|
||||||
SOFTDEV_VERSION ?= 2.0.1
|
SOFTDEV_VERSION ?= 2.0.1
|
||||||
|
|
||||||
LD_FILE = boards/feather52832/custom_nrf52832_dfu_app_$(SOFTDEV_VERSION).ld
|
LD_FILE = boards/feather52832/custom_nrf52832_dfu_app_$(SOFTDEV_VERSION).ld
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
MCU_SERIES = m4
|
MCU_SERIES = m4
|
||||||
MCU_VARIANT = nrf52
|
MCU_VARIANT = nrf52
|
||||||
MCU_SUB_VARIANT = nrf52840
|
MCU_SUB_VARIANT = nrf52840
|
||||||
|
SD ?= s140
|
||||||
SOFTDEV_VERSION ?= 6.0.0
|
SOFTDEV_VERSION ?= 6.0.0
|
||||||
|
|
||||||
BOOT_SETTING_ADDR = 0xFF000
|
BOOT_SETTING_ADDR = 0xFF000
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
MCU_SERIES = m4
|
MCU_SERIES = m4
|
||||||
MCU_VARIANT = nrf52
|
MCU_VARIANT = nrf52
|
||||||
MCU_SUB_VARIANT = nrf52
|
MCU_SUB_VARIANT = nrf52
|
||||||
|
SD ?= s132
|
||||||
SOFTDEV_VERSION ?= 5.0.0
|
SOFTDEV_VERSION ?= 5.0.0
|
||||||
|
|
||||||
ifeq ($(SD),)
|
ifeq ($(SD),)
|
||||||
|
@ -36,10 +36,12 @@
|
|||||||
|
|
||||||
void board_init(void) {
|
void board_init(void) {
|
||||||
|
|
||||||
// Init USB
|
// Clock
|
||||||
NRF_CLOCK->LFCLKSRC = (uint32_t)((CLOCK_LFCLKSRC_SRC_Xtal << CLOCK_LFCLKSRC_SRC_Pos) & CLOCK_LFCLKSRC_SRC_Msk);
|
NRF_CLOCK->LFCLKSRC = (uint32_t)((CLOCK_LFCLKSRC_SRC_Xtal << CLOCK_LFCLKSRC_SRC_Pos) & CLOCK_LFCLKSRC_SRC_Msk);
|
||||||
NRF_CLOCK->TASKS_LFCLKSTART = 1UL;
|
NRF_CLOCK->TASKS_LFCLKSTART = 1UL;
|
||||||
|
|
||||||
|
// Init USB
|
||||||
|
|
||||||
#ifdef SOFTDEVICE_PRESENT
|
#ifdef SOFTDEVICE_PRESENT
|
||||||
// TODO support Softdevice config
|
// TODO support Softdevice config
|
||||||
#else
|
#else
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
#define MICROPY_HW_BOARD_NAME "PCA10056"
|
#define MICROPY_HW_BOARD_NAME "PCA10056"
|
||||||
#define MICROPY_HW_MCU_NAME "NRF52840"
|
#define MICROPY_HW_MCU_NAME "NRF52840"
|
||||||
#define MICROPY_PY_SYS_PLATFORM "nrf52840-PDK"
|
#define MICROPY_PY_SYS_PLATFORM "nrf52840-DK"
|
||||||
|
|
||||||
#define MICROPY_HW_HAS_LED (1)
|
#define MICROPY_HW_HAS_LED (1)
|
||||||
#define MICROPY_HW_HAS_SWITCH (0)
|
#define MICROPY_HW_HAS_SWITCH (0)
|
||||||
@ -77,3 +77,8 @@
|
|||||||
|
|
||||||
#define PORT_HEAP_SIZE (128*1024)
|
#define PORT_HEAP_SIZE (128*1024)
|
||||||
#define CIRCUITPY_AUTORELOAD_DELAY_MS 500
|
#define CIRCUITPY_AUTORELOAD_DELAY_MS 500
|
||||||
|
|
||||||
|
|
||||||
|
// Temp (could be removed) 0: usb cdc (default), 1 : hwuart (jlink)
|
||||||
|
#define CFG_HWUART_FOR_SERIAL 0
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
MCU_SERIES = m4
|
MCU_SERIES = m4
|
||||||
MCU_VARIANT = nrf52
|
MCU_VARIANT = nrf52
|
||||||
MCU_SUB_VARIANT = nrf52840
|
MCU_SUB_VARIANT = nrf52840
|
||||||
|
SD ?= s140
|
||||||
SOFTDEV_VERSION ?= 6.0.0
|
SOFTDEV_VERSION ?= 6.0.0
|
||||||
|
|
||||||
BOOT_SETTING_ADDR = 0xFF000
|
BOOT_SETTING_ADDR = 0xFF000
|
||||||
|
@ -74,7 +74,6 @@ void internal_flash_init(void) {
|
|||||||
port_pin_set_config(MICROPY_HW_LED_MSC, &pin_conf);
|
port_pin_set_config(MICROPY_HW_LED_MSC, &pin_conf);
|
||||||
port_pin_set_output_level(MICROPY_HW_LED_MSC, false);
|
port_pin_set_output_level(MICROPY_HW_LED_MSC, false);
|
||||||
#endif
|
#endif
|
||||||
// flash_init(&internal_flash_desc, NVMCTRL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t internal_flash_get_block_size(void) {
|
uint32_t internal_flash_get_block_size(void) {
|
||||||
|
@ -33,17 +33,17 @@
|
|||||||
|
|
||||||
#define FLASH_ROOT_POINTERS
|
#define FLASH_ROOT_POINTERS
|
||||||
|
|
||||||
#define FLASH_PAGE_SIZE 0x1000
|
#define FLASH_PAGE_SIZE 0x1000
|
||||||
#define CIRCUITPY_INTERNAL_NVM_SIZE 0
|
#define CIRCUITPY_INTERNAL_NVM_SIZE 0
|
||||||
|
|
||||||
#define INTERNAL_FLASH_SYSTICK_MASK (0x1ff) // 512ms
|
#define INTERNAL_FLASH_SYSTICK_MASK (0x1ff) // 512ms
|
||||||
#define INTERNAL_FLASH_IDLE_TICK(tick) (((tick) & INTERNAL_FLASH_SYSTICK_MASK) == 2)
|
#define INTERNAL_FLASH_IDLE_TICK(tick) (((tick) & INTERNAL_FLASH_SYSTICK_MASK) == 2)
|
||||||
|
|
||||||
void internal_flash_init(void);
|
void internal_flash_init(void);
|
||||||
uint32_t internal_flash_get_block_size(void);
|
uint32_t internal_flash_get_block_size(void);
|
||||||
uint32_t internal_flash_get_block_count(void);
|
uint32_t internal_flash_get_block_count(void);
|
||||||
void internal_flash_irq_handler(void);
|
void internal_flash_irq_handler(void);
|
||||||
void internal_flash_flush(void);
|
void internal_flash_flush(void);
|
||||||
|
|
||||||
// these return 0 on success, non-zero on error
|
// these return 0 on success, non-zero on error
|
||||||
mp_uint_t internal_flash_read_blocks(uint8_t *dest, uint32_t block_num, uint32_t num_blocks);
|
mp_uint_t internal_flash_read_blocks(uint8_t *dest, uint32_t block_num, uint32_t num_blocks);
|
||||||
|
@ -32,13 +32,20 @@
|
|||||||
#include "py/mperrno.h"
|
#include "py/mperrno.h"
|
||||||
#include "hal_uart.h"
|
#include "hal_uart.h"
|
||||||
|
|
||||||
#ifndef NRF52840_XXAA
|
#if !defined( NRF52840_XXAA) || ( defined(CFG_HWUART_FOR_SERIAL) && CFG_HWUART_FOR_SERIAL == 1 )
|
||||||
|
|
||||||
#define UART_INSTANCE UART_BASE(0)
|
#define UART_INSTANCE UART_BASE(0)
|
||||||
|
|
||||||
#if (MICROPY_PY_BLE_NUS == 0)
|
#if (MICROPY_PY_BLE_NUS == 0)
|
||||||
int mp_hal_stdin_rx_chr(void) {
|
int mp_hal_stdin_rx_chr(void) {
|
||||||
for (;;) {
|
for (;;) {
|
||||||
|
#ifdef MICROPY_VM_HOOK_LOOP
|
||||||
|
MICROPY_VM_HOOK_LOOP
|
||||||
|
#endif
|
||||||
|
// if (reload_requested) {
|
||||||
|
// return CHAR_CTRL_D;
|
||||||
|
// }
|
||||||
|
|
||||||
if ( hal_uart_available(UART_INSTANCE) ) {
|
if ( hal_uart_available(UART_INSTANCE) ) {
|
||||||
uint8_t ch;
|
uint8_t ch;
|
||||||
hal_uart_char_read(UART_INSTANCE, &ch);
|
hal_uart_char_read(UART_INSTANCE, &ch);
|
||||||
@ -99,6 +106,7 @@ int mp_hal_stdin_rx_chr(void) {
|
|||||||
// if (reload_requested) {
|
// if (reload_requested) {
|
||||||
// return CHAR_CTRL_D;
|
// return CHAR_CTRL_D;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
if (tud_cdc_available()) {
|
if (tud_cdc_available()) {
|
||||||
#ifdef MICROPY_HW_LED_RX
|
#ifdef MICROPY_HW_LED_RX
|
||||||
gpio_toggle_pin_level(MICROPY_HW_LED_RX);
|
gpio_toggle_pin_level(MICROPY_HW_LED_RX);
|
||||||
@ -106,6 +114,8 @@ int mp_hal_stdin_rx_chr(void) {
|
|||||||
return tud_cdc_read_char();
|
return tud_cdc_read_char();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool mp_hal_stdin_any(void) {
|
bool mp_hal_stdin_any(void) {
|
||||||
@ -114,20 +124,21 @@ bool mp_hal_stdin_any(void) {
|
|||||||
|
|
||||||
void mp_hal_stdout_tx_strn(const char *str, mp_uint_t len) {
|
void mp_hal_stdout_tx_strn(const char *str, mp_uint_t len) {
|
||||||
|
|
||||||
// #ifdef MICROPY_HW_LED_TX
|
#ifdef MICROPY_HW_LED_TX
|
||||||
// gpio_toggle_pin_level(MICROPY_HW_LED_TX);
|
gpio_toggle_pin_level(MICROPY_HW_LED_TX);
|
||||||
// #endif
|
#endif
|
||||||
//
|
|
||||||
// #ifdef CIRCUITPY_BOOT_OUTPUT_FILE
|
#ifdef CIRCUITPY_BOOT_OUTPUT_FILE
|
||||||
// if (boot_output_file != NULL) {
|
if (boot_output_file != NULL) {
|
||||||
// UINT bytes_written = 0;
|
UINT bytes_written = 0;
|
||||||
// f_write(boot_output_file, str, len, &bytes_written);
|
f_write(boot_output_file, str, len, &bytes_written);
|
||||||
// }
|
}
|
||||||
// #endif
|
#endif
|
||||||
|
|
||||||
tud_cdc_write(str, len);
|
tud_cdc_write(str, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO use stdout_helper.c
|
||||||
void mp_hal_stdout_tx_strn_cooked(const char *str, size_t len) {
|
void mp_hal_stdout_tx_strn_cooked(const char *str, size_t len) {
|
||||||
while (len--) {
|
while (len--) {
|
||||||
if (*str == '\n') {
|
if (*str == '\n') {
|
||||||
@ -137,9 +148,11 @@ void mp_hal_stdout_tx_strn_cooked(const char *str, size_t len) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void mp_hal_stdout_tx_str(const char *str) {
|
void mp_hal_stdout_tx_str(const char *str) {
|
||||||
mp_hal_stdout_tx_strn(str, strlen(str));
|
mp_hal_stdout_tx_strn(str, strlen(str));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
#include "ble_uart.h"
|
#include "ble_uart.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef NRF52840_XXAA
|
#if !defined( NRF52840_XXAA) || ( defined(CFG_HWUART_FOR_SERIAL) && CFG_HWUART_FOR_SERIAL == 1 )
|
||||||
|
|
||||||
void serial_init(void) {
|
void serial_init(void) {
|
||||||
|
|
||||||
@ -91,7 +91,7 @@ void serial_write(const char* text) {
|
|||||||
#include "tusb.h"
|
#include "tusb.h"
|
||||||
|
|
||||||
void serial_init(void) {
|
void serial_init(void) {
|
||||||
// usb should be initialized in board_init()
|
// usb is already initialized in board_init()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user