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)
This commit is contained in:
parent
fc13287837
commit
5c38bc8957
2
Makefile
2
Makefile
@ -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();
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user