diff --git a/examples/device/nrf52840_freertos/src/main.c b/examples/device/nrf52840_freertos/src/main.c index a0c418920..6fb76a84d 100644 --- a/examples/device/nrf52840_freertos/src/main.c +++ b/examples/device/nrf52840_freertos/src/main.c @@ -61,9 +61,6 @@ //--------------------------------------------------------------------+ void print_greeting(void); void led_blinky_cb(TimerHandle_t xTimer); -void cdc_task(void* params); -void usb_hid_task(void* params); - /*------------- MAIN -------------*/ int main(void) @@ -78,10 +75,16 @@ int main(void) tusb_init(); // Create task +#if CFG_TUD_CDC + extern void cdc_task(void* params); xTaskCreate( cdc_task, "cdc", 256, NULL, 2, NULL); +#endif + +#if CFG_TUD_HID + extern void usb_hid_task(void* params); +#endif vTaskStartScheduler(); - NVIC_SystemReset(); return 0; @@ -90,6 +93,7 @@ int main(void) //--------------------------------------------------------------------+ // USB CDC //--------------------------------------------------------------------+ +#if CFG_TUD_CDC void cdc_task(void* params) { (void) params; @@ -111,10 +115,12 @@ void cdc_task(void* params) taskYIELD(); } } +#endif //--------------------------------------------------------------------+ // USB HID //--------------------------------------------------------------------+ +#if CFG_TUD_HID void usb_hid_task(void* params) { (void) params; @@ -170,6 +176,7 @@ void tud_hid_generic_set_report_cb(uint8_t report_id, hid_report_type_t report_t { // TODO not Implemented } +#endif //--------------------------------------------------------------------+ // tinyusb callbacks diff --git a/examples/device/nrf52840_freertos/src/msc_flash_qspi.c b/examples/device/nrf52840_freertos/src/msc_flash_qspi.c index d8058d8ac..53bdc5a71 100644 --- a/examples/device/nrf52840_freertos/src/msc_flash_qspi.c +++ b/examples/device/nrf52840_freertos/src/msc_flash_qspi.c @@ -47,19 +47,6 @@ void flash_flush (void); //--------------------------------------------------------------------+ // MACRO TYPEDEF CONSTANT ENUM DECLARATION //--------------------------------------------------------------------+ -enum -{ - FLASH_STATE_IDLE, - FLASH_STATE_BUSY, - FLASH_STATE_COMPLETE -}; - -volatile uint8_t _fl_state = FLASH_STATE_IDLE; - -void qspi_flash_complete (void) -{ - _fl_state = FLASH_STATE_COMPLETE; -} //------------- IMPLEMENTATION -------------// // Callback invoked when received READ10 command. @@ -68,24 +55,8 @@ int32_t tud_msc_read10_cb(uint8_t lun, uint32_t lba, uint32_t offset, void* buff { uint32_t addr = lba * CFG_TUD_MSC_BLOCK_SZ + offset; - switch ( _fl_state ) - { - case FLASH_STATE_IDLE: - _fl_state = FLASH_STATE_BUSY; - flash_read(buffer, addr, bufsize); - return 0; // data not ready - - case FLASH_STATE_BUSY: - return 0; // data not ready - - case FLASH_STATE_COMPLETE: - _fl_state = FLASH_STATE_IDLE; - return bufsize; - - default: - _fl_state = FLASH_STATE_IDLE; - return -1; - } + flash_read(buffer, addr, bufsize); + return bufsize; } // Callback invoked when received WRITE10 command. @@ -124,16 +95,7 @@ void flash_flush (void) if ( _fl_addr == NO_CACHE ) return; TU_ASSERT(NRFX_SUCCESS == nrfx_qspi_erase(NRF_QSPI_ERASE_LEN_4KB, _fl_addr),); - while ( _fl_state != FLASH_STATE_COMPLETE ) - { - } - _fl_state = FLASH_STATE_IDLE; - TU_ASSERT(NRFX_SUCCESS == nrfx_qspi_write(_fl_buf, FLASH_PAGE_SIZE, _fl_addr),); - while ( _fl_state != FLASH_STATE_COMPLETE ) - { - } - _fl_state = FLASH_STATE_IDLE; _fl_addr = NO_CACHE; }