Signed-off-by: HiFiPhile <admin@hifiphile.com>
This commit is contained in:
HiFiPhile
2025-01-31 16:31:47 +01:00
parent 2707347dec
commit 8d2310247c
2 changed files with 4 additions and 2 deletions

View File

@@ -166,8 +166,10 @@ static void io_task(void *params) {
uint8_t const* addr = msc_disk[io_ops.lba] + io_ops.offset;
memcpy(io_ops.buffer, addr, io_ops.bufsize);
} else {
#ifndef CFG_EXAMPLE_MSC_READONLY
uint8_t* addr = msc_disk[io_ops.lba] + io_ops.offset;
memcpy(addr, io_ops.buffer, io_ops.bufsize);
#endif
}
tusb_time_delay_ms_api(CFG_EXAMPLE_MSC_IO_DELAY_MS);

View File

@@ -267,14 +267,14 @@ void tud_msc_async_io_done(int32_t bytes_processed) {
// Precheck to avoid queueing multiple RW done callback
TU_VERIFY(_mscd_itf.next_op != MSC_NEXT_OP_NONE,);
// Call usbd_edpt_xfer() in tud_task() to avoid racing condition
usbd_defer_func(tud_msc_async_io_done_cb, (void*) bytes_processed, false);
usbd_defer_func(tud_msc_async_io_done_cb, (void*) (intptr_t)bytes_processed, false);
}
static void tud_msc_async_io_done_cb(void* bytes_processed) {
TU_VERIFY(_mscd_itf.next_op != MSC_NEXT_OP_NONE,);
uint8_t next_op = _mscd_itf.next_op;
_mscd_itf.next_op = MSC_NEXT_OP_NONE;
int32_t nbytes = (int32_t)bytes_processed;
int32_t nbytes = (int32_t)(intptr_t)bytes_processed;
// READ10
if (next_op == MSC_NEXT_OP_READ10) {
proc_read10_next(&_mscd_itf, nbytes);