able to build with pca10056 & feather52832

This commit is contained in:
hathach 2018-08-07 14:32:46 +07:00
parent a12239359c
commit dfd5613a7e
3 changed files with 53 additions and 38 deletions

View File

@ -44,7 +44,9 @@
#include "app_uart.h"
#include "nrf_error.h"
#ifdef NRF52840_XXAA
#include "tusb.h"
#endif
#define APP_SLIP_END 0xC0 /**< SLIP code for identifying the beginning and end of a packet frame.. */
#define APP_SLIP_ESC 0xDB /**< SLIP escape code. This code is used to specify that the following character is specially encoded. */
@ -119,14 +121,21 @@ static uint32_t send_tx_byte_end(void);
*/
uint32_t (*send_tx_byte) (void) = send_tx_byte_default;
static uint32_t usb_uart_put(char ch)
#ifdef NRF52840_XXAA
static uint32_t serial_put(char ch)
{
return tud_cdc_write_char(ch) ? NRF_SUCCESS : NRF_ERROR_NO_MEM;
}
#else
#define serial_put app_uart_put
#endif
static uint32_t send_tx_byte_end(void)
{
uint32_t err_code = usb_uart_put(APP_SLIP_END);
uint32_t err_code = serial_put(APP_SLIP_END);
if ((err_code == NRF_SUCCESS) && (m_tx_buffer_index == 0))
{
@ -140,7 +149,7 @@ static uint32_t send_tx_byte_end(void)
static uint32_t send_tx_byte_default(void)
{
uint32_t err_code = usb_uart_put(mp_tx_buffer[m_tx_buffer_index]);
uint32_t err_code = serial_put(mp_tx_buffer[m_tx_buffer_index]);
if (err_code == NRF_SUCCESS)
{
@ -158,11 +167,11 @@ static uint32_t send_tx_byte_encoded(void)
switch (mp_tx_buffer[m_tx_buffer_index])
{
case APP_SLIP_END:
err_code = usb_uart_put(APP_SLIP_ESC_END);
err_code = serial_put(APP_SLIP_ESC_END);
break;
case APP_SLIP_ESC:
err_code = usb_uart_put(APP_SLIP_ESC_ESC);
err_code = serial_put(APP_SLIP_ESC_ESC);
break;
default:
@ -182,7 +191,7 @@ static uint32_t send_tx_byte_encoded(void)
static uint32_t send_tx_byte_esc(void)
{
uint32_t err_code = usb_uart_put(APP_SLIP_ESC);
uint32_t err_code = serial_put(APP_SLIP_ESC);
if (err_code == NRF_SUCCESS)
{
@ -339,7 +348,25 @@ static bool rx_buffer_overflowed(void)
return false;
}
#if 0
#ifdef NRF52840_XXAA
static uint32_t slip_uart_open(void)
{
m_current_state = SLIP_READY;
return NRF_SUCCESS;
}
void tud_cdc_rx_cb(uint8_t port)
{
while ( tud_cdc_available() && !rx_buffer_overflowed() )
{
int8_t ch = tud_cdc_read_char();
handle_rx_byte((uint8_t) ch);
}
}
#else
/** @brief Function for handling the UART module event. It parses events from the UART when
* bytes are received/transmitted.
*
@ -371,7 +398,7 @@ static uint32_t slip_uart_open(void)
HCI_UART_TX_PIN,
HCI_UART_RTS_PIN,
HCI_UART_CTS_PIN,
(app_uart_flow_control_t)HCI_UART_FLOW_CONTROL,
HCI_UART_FLOW_CONTROL,
false,
HCI_UART_BAUDRATE
};
@ -387,22 +414,6 @@ static uint32_t slip_uart_open(void)
}
return err_code;
}
#else
static uint32_t slip_uart_open(void)
{
m_current_state = SLIP_READY;
return NRF_SUCCESS;
}
void tud_cdc_rx_cb(uint8_t port)
{
while ( tud_cdc_available() && !rx_buffer_overflowed() )
{
int8_t ch = tud_cdc_read_char();
handle_rx_byte((uint8_t) ch);
}
}
#endif
@ -433,11 +444,11 @@ uint32_t hci_slip_open()
uint32_t hci_slip_close()
{
m_current_state = SLIP_OFF;
#if 0
#ifdef NRF52840_XXAA
return NRF_SUCCESS;
#else
uint32_t err_code = app_uart_close();
return err_code;
#else
return NRF_SUCCESS;
#endif
}

View File

@ -25,11 +25,13 @@
#include "crc16.h"
#include "pstorage.h"
#include "app_scheduler.h"
#include "nrf_delay.h"
#include "nrfx.h"
#include "app_timer.h"
#ifdef NRF52840_XXAA
#include "tusb.h"
#endif
#define APP_TIMER_PRESCALER 0
@ -125,11 +127,10 @@ static void wait_for_events(void)
// Event received. Process it from the scheduler.
app_sched_execute();
// USB stack
#ifdef NRF52840_XXAA
tusb_task();
// Send out cdc's data
tud_cdc_write_flush();
#endif
if ((m_update_status == BOOTLOADER_COMPLETE) ||
(m_update_status == BOOTLOADER_TIMEOUT) ||
@ -415,7 +416,7 @@ uint32_t bootloader_dfu_sd_update_continue(void)
// Ensure that flash operations are not executed within the first 100 ms seconds to allow
// a debugger to be attached.
nrf_delay_ms(100);
NRFX_DELAY_MS(100);
err_code = dfu_sd_image_swap();
APP_ERROR_CHECK(err_code);

View File

@ -142,10 +142,8 @@ C_SOURCE_FILES += $(SDK_PATH)/libraries/hci/hci_slip.c
C_SOURCE_FILES += $(SDK_PATH)/libraries/hci/hci_transport.c
C_SOURCE_FILES += $(SDK_PATH)/libraries/util/nrf_assert.c
#C_SOURCE_FILES += $(SDK_PATH)/libraries/uart/app_uart.c
#C_SOURCE_FILES += $(SDK_PATH)/drivers_nrf/uart/nrf_drv_uart.c
#C_SOURCE_FILES += $(SDK_PATH)/drivers_nrf/common/nrf_drv_common.c
C_SOURCE_FILES += $(SDK_PATH)/drivers_nrf/hal/nrf_nvmc.c
@ -175,6 +173,12 @@ else
C_SOURCE_FILES += $(NRFX_PATH)/mdk/system_nrf52.c
C_SOURCE_FILES += $(SDK_PATH)/libraries/uart/app_uart.c
C_SOURCE_FILES += $(SDK_PATH)/drivers_nrf/uart/nrf_drv_uart.c
C_SOURCE_FILES += $(SDK_PATH)/drivers_nrf/common/nrf_drv_common.c
IPATH += $(SDK_PATH)/drivers_nrf/common
IPATH += $(SDK_PATH)/drivers_nrf/uart
endif
@ -185,7 +189,7 @@ endif
ifneq ($(IS_NRF52840),)
ASM_SOURCE_FILES = $(NRFX_PATH)/mdk/gcc_startup_nrf52840.S
else
#ASM_SOURCE_FILES = $(NRFX_PATH)/mdk/gcc_startup_nrf52.S
ASM_SOURCE_FILES = $(NRFX_PATH)/mdk/gcc_startup_nrf52.S
endif
#******************************************************************************
@ -220,11 +224,10 @@ IPATH += $(SDK_PATH)/libraries/hci/config
IPATH += $(SDK_PATH)/libraries/uart
IPATH += $(SDK_PATH)/libraries/hci
#IPATH += $(SDK_PATH)/drivers_nrf/common
#IPATH += $(SDK_PATH)/drivers_nrf/hal
#IPATH += $(SDK_PATH)/drivers_nrf/config
IPATH += $(SDK_PATH)/drivers_nrf/delay
#IPATH += $(SDK_PATH)/drivers_nrf/uart
#IPATH += $(SDK_PATH)/drivers_nrf/power
# Softdevice