season-studio

Results 5 issues of season-studio

默认的USB_REQ_SET_INTERFACE处理中,在最后向主机响应了一个字节的数据: `tusb_control_send(dev, &dev->temp_buffer, 1);` 而USB_REQ_SET_INTERFACE的请求报文为01 0b 00 00,最后的长度域为00,就是不需要设备向主机响应数据的。 所以,默认的USB_REQ_SET_INTERFACE处理中,最后的响应应修改为: `tusb_send_status(dev);`

(1)针对STM32F1系列处理器,一个端点的缓冲区配置表项里,每个成员之间有2个字节的填充占位,所以,每个端点的缓冲区配置表项大小应该为16字节。代码中tusb_dev_drv_setup_endpoint函数里面,bt_start的计算中,固定将端点数乘以8,显然是无法兼容F1系列处理器的。考虑到stm32_fs_platform.h中为不同处理器定义了不同的pma_ep_desc结构体来描述一个缓冲区配置表项。所以,bt_start的算式中将*8修改为*sizeof(pma_ep_desc)更合理。 (2)tusb_dev_drv_setup_endpoint函数里面采用的自动端点配置策略,是依据现行激活的Interface来按需配置端点的。在bt_start的计算中,引用到的局部变量max_ep_id是已激活的Interface中最大的端点编号。注意其中,当端点号为0,且is_reset为假时,端点0的pma项并不会得到更新。在代码中,默认的SetInterface处理代码调用了tusb_init_endpoint_by_config用于配置新Interface的端点,tusb_init_endpoint_by_config调用tusb_dev_drv_setup_endpoint时,is_reset参数传递了0。也就是说,SetInterface时是不会重新配置端点0的pma的。所以,如果我们实现的设备有两个Interface,且非默认的Interface(1)使用到了更大的端点编号时,当设备初启动的时候,端点0的pma并没有考虑给Interface(1)端点预留空间,当切换到Interface(1)时,端点0的pma也没有更新,那么端点0的缓冲就会和Interface(1)的端点pma配置项相互冲突。我采用了一个简单的修改,将bt_start计算时的缓冲区配置表项的保留数量,固定按照TUSB_MAX_EP_PAIR_COUNT来计算。 最终修改代码如下: ` int tusb_dev_drv_setup_endpoint(...) { ... uint32_t bt_start = TUSB_MAX_EP_PAIR_COUNT * sizeof(pma_ep_desc); ... } ` 该问题在我实现UVC设备时发现。若不做以上修改,则要么UVC会发送出不可预期的数据,要么程序会陷入HardFault异常。经过以上修改后,UVC设备方可正常工作。

我采用pip直接安装ttskit包,运行环境为Ubuntu18.04 + Python3.8.0。 用tscli运行时,出现以下错误: Input text (输入文本或exit退出,不输入则随机): 你好 Input kwargs (输入控制参数,格式:audio=1,speaker=biaobei,不输入则默认) dictionary update sequence element #0 has length 1; 2 is required Text: 你好 Kwargs: {'audio': '6', 'speaker': 'tmp'} TTS...

When trimOffsets is false, the Roberta processing will ignore the encoding result. That results the whole encoding method return nil without any error. For example, using the openai/clip-vit-base-patch32 as the...

If the endOfWordSuffix is not nil, the BPE tokenizer will not add the endOfWordSuffix at the end of the word. For example: If we work in python, the "Hello World!"...