Compare commits

..
2 Commits
Author SHA1 Message Date
hathach 5c38bc8957 fix issue nrf52840 not reset properly when upgrading bootloader+sd combo
- root cause tusb_task()/cdc task is called when usb is not inited (in
case of sd upgrade)
2018-12-20 00:50:14 +07:00
hathach fc13287837 clean up 2018-12-19 23:27:29 +07:00
4 changed files with 16 additions and 6 deletions

No files matched your search

+1 -1
View File
@@ -28,7 +28,7 @@ SD_HEX = $(SD_PATH)/$(SD_FILENAME)_softdevice.hex
LD_FILE = $(SRC_PATH)/linker/$(SD_NAME)_v$(SD_VER1).ld
MERGED_FNAME = $(OUTPUT_FILENAME)_$(SD_NAME)_$(SD_VERSION)
RELEASE_DIR = bin/$(BOARD)/$(SD_VERSION)
RELEASE_DIR = bin/$(BOARD)
MK_DIS_FIRMWARE = "$(SD_NAME) $(SD_VERSION)"
@@ -128,8 +128,9 @@ static void wait_for_events(void)
app_sched_execute();
#ifdef NRF52840_XXAA
// usb is not enabled in OTA
if ( !is_ota() )
// skip if usb is not inited ( e.g OTA / finializing sd/bootloader )
extern bool usb_inited(void);
if ( usb_inited() )
{
tusb_task();
tud_cdc_write_flush();
@@ -741,7 +741,6 @@ static void on_ble_evt(ble_evt_t * p_ble_evt)
case BLE_GAP_EVT_CONNECTED:
m_conn_handle = p_ble_evt->evt.gap_evt.conn_handle;
m_is_advertising = false;
led_state(STATE_BLE_CONNECTED);
break;
case BLE_GAP_EVT_DISCONNECTED:
@@ -751,8 +750,6 @@ static void on_ble_evt(ble_evt_t * p_ble_evt)
m_direct_adv_cnt = APP_DIRECTED_ADV_TIMEOUT;
led_state(STATE_BLE_DISCONNECTED);
err_code = sd_ble_gatts_sys_attr_get(m_conn_handle,
sys_attr,
&sys_attr_len,
+12
View File
@@ -65,8 +65,20 @@ extern void tusb_hal_nrf_power_event(uint32_t event);
//------------- IMPLEMENTATION -------------//
static bool _inited = false;
bool usb_inited(void)
{
return _inited;
}
void usb_init(bool cdc_only)
{
// skipped if already inited
if ( _inited ) return;
_inited = true;
// USB power may already be ready at this time -> no event generated
// We need to invoke the handler based on the status initially
uint32_t usb_reg;