修改net设备为支持操作系统
Some checks failed
Build / set-matrix (push) Has been cancelled
Build / make-os (macos-latest) (push) Has been cancelled
Build / make-os (windows-latest) (push) Has been cancelled
Build / zephyr (push) Has been cancelled
Build / hil-hfp (push) Has been cancelled
pre-commit / pre-commit (push) Has been cancelled
Build / cmake (aarch64-gcc) (push) Has been cancelled
Build / cmake (arm-gcc) (push) Has been cancelled
Build / cmake (esp-idf) (push) Has been cancelled
Build / cmake (msp430-gcc) (push) Has been cancelled
Build / cmake (riscv-gcc) (push) Has been cancelled
Build / make (aarch64-gcc) (push) Has been cancelled
Build / make (arm-gcc) (push) Has been cancelled
Build / make (msp430-gcc) (push) Has been cancelled
Build / make (riscv-gcc) (push) Has been cancelled
Build / make (rx-gcc) (push) Has been cancelled
Build / arm-iar (make) (push) Has been cancelled
Build / hil-build (arm-gcc) (push) Has been cancelled
Build / hil-build (esp-idf) (push) Has been cancelled
Build / hil-tinyusb (push) Has been cancelled

This commit is contained in:
2025-10-10 12:12:51 +08:00
parent bbda99171d
commit 8a9a778375
5 changed files with 49 additions and 26 deletions

View File

@@ -134,12 +134,13 @@ TU_ATTR_ALWAYS_INLINE static inline bool osal_mutex_unlock(osal_mutex_t mutex_hd
// role device/host is used by OS NONE for mutex (disable usb isr) only
#define OSAL_QUEUE_DEF(_int_set, _name, _depth, _type) \
static _type _name##_##buf[_depth]; \
osal_queue_def_t _name = { .depth = _depth, .item_sz = sizeof(_type), .buf = _name##_##buf };
static uint32_t _name##_##buf[((sizeof(_type)+sizeof(void *))*_depth+3)/4]; \
osal_queue_def_t _name = { .item_sz = sizeof(_type), \
.pool_size=sizeof(_name##_##buf), .buf = _name##_##buf };
typedef struct {
uint16_t depth;
uint16_t item_sz;
uint16_t pool_size;
void *buf;
struct rt_messagequeue sq;
@@ -149,7 +150,7 @@ typedef rt_mq_t osal_queue_t;
TU_ATTR_ALWAYS_INLINE static inline osal_queue_t osal_queue_create(osal_queue_def_t *qdef) {
rt_mq_init(&(qdef->sq), "tusb", qdef->buf, qdef->item_sz,
qdef->item_sz * qdef->depth, RT_IPC_FLAG_PRIO);
qdef->pool_size, RT_IPC_FLAG_FIFO);
return &(qdef->sq);
}
@@ -162,7 +163,13 @@ TU_ATTR_ALWAYS_INLINE static inline bool osal_queue_receive(osal_queue_t qhdl, v
#if RT_VERSION_MAJOR >= 5
return rt_mq_recv(qhdl, data, qhdl->msg_size, tick) > 0;
#else
return rt_mq_recv(qhdl, data, qhdl->msg_size, tick) == RT_EOK;
rt_err_t ret = rt_mq_recv(qhdl, data, qhdl->msg_size, tick);
if (ret == RT_EOK){
return true;
}else{
rt_kprintf("osal_queue_receive failed ret=%d\n", ret);
return false;
}
#endif /* RT_VERSION_MAJOR >= 5 */
}