3737#if MICROPY_PY_OS_DUPTERM
3838
3939#include "shared/runtime/interrupt_char.h"
40+ #include "shared/tinyusb/mp_usbd_cdc.h"
4041
4142void mp_os_deactivate (size_t dupterm_idx , const char * msg , mp_obj_t exc ) {
4243 mp_obj_t term = MP_STATE_VM (dupterm_objs [dupterm_idx ]);
@@ -61,6 +62,16 @@ void mp_os_deactivate(size_t dupterm_idx, const char *msg, mp_obj_t exc) {
6162 }
6263}
6364
65+ #if MICROPY_PY_OS_DUPTERM_BUILTIN_STREAM
66+ static bool is_builtin_stream (mp_const_obj_t stream ) {
67+ if (mp_obj_get_type (stream ) == & machine_usbd_cdc_type || mp_os_dupterm_is_builtin_stream (stream )) {
68+ // return false;
69+ return true;
70+ }
71+ return false;
72+ }
73+ #endif
74+
6475uintptr_t mp_os_dupterm_poll (uintptr_t poll_flags ) {
6576 uintptr_t poll_flags_out = 0 ;
6677
@@ -74,7 +85,7 @@ uintptr_t mp_os_dupterm_poll(uintptr_t poll_flags) {
7485 mp_uint_t ret = 0 ;
7586 const mp_stream_p_t * stream_p = mp_get_stream (s );
7687 #if MICROPY_PY_OS_DUPTERM_BUILTIN_STREAM
77- if (mp_os_dupterm_is_builtin_stream (s )) {
88+ if (is_builtin_stream (s )) {
7889 ret = stream_p -> ioctl (s , MP_STREAM_POLL , poll_flags , & errcode );
7990 } else
8091 #endif
@@ -123,7 +134,7 @@ int mp_os_dupterm_rx_chr(void) {
123134 }
124135
125136 #if MICROPY_PY_OS_DUPTERM_BUILTIN_STREAM
126- if (mp_os_dupterm_is_builtin_stream (MP_STATE_VM (dupterm_objs [idx ]))) {
137+ if (is_builtin_stream (MP_STATE_VM (dupterm_objs [idx ]))) {
127138 byte buf [1 ];
128139 int errcode = 0 ;
129140 const mp_stream_p_t * stream_p = mp_get_stream (MP_STATE_VM (dupterm_objs [idx ]));
@@ -187,7 +198,7 @@ int mp_os_dupterm_tx_strn(const char *str, size_t len) {
187198 did_write = true;
188199
189200 #if MICROPY_PY_OS_DUPTERM_BUILTIN_STREAM
190- if (mp_os_dupterm_is_builtin_stream (MP_STATE_VM (dupterm_objs [idx ]))) {
201+ if (is_builtin_stream (MP_STATE_VM (dupterm_objs [idx ]))) {
191202 int errcode = 0 ;
192203 const mp_stream_p_t * stream_p = mp_get_stream (MP_STATE_VM (dupterm_objs [idx ]));
193204 mp_uint_t written = stream_p -> write (MP_STATE_VM (dupterm_objs [idx ]), str , len , & errcode );
0 commit comments