
RTTHREAD
主要记录RTTHREAD使用过程中遇到的问题
weixin_41892612
这个作者很懒,什么都没留下…
展开
-
【项目笔记_RP552D】rtthread winusb 修改 vid 与 pid
问题描述由于之前RP552C实现的是HID设备, 现在为了兼容发现 winusb 虽然可以使用,但是一旦修改 vid 和 pid 就会出现USB无法识别的问题,现在想实现2个接口 HID兼容之前的SDK,winusb 则是新的接口,这样新的客户对接SDK就会使用新的接口,这样剔除代码在USB这块的速录限制,但是发现实现出来的符合设备 HID+WINUSB,使用官方工程的 VID 和 PID 设备是可以被电脑识别的,但是一旦修改这参数之后发现只有HID能识别,但是WINUSB不能识别#define RT_原创 2020-12-14 21:31:34 · 1444 阅读 · 0 评论 -
【项目笔记_RP552D】rtthread usb 实现厂商自定义SN号
问题描述在使用 rtthread 自己的USB协议栈的时候,看到这个设备的一些信息是写死的:ALIGN(4)const static char* _ustring[] ={ "Language", "xxxxxxxx", "yyyyyyyyy", "32021919830108", "Configuration", "Interface",};其他还好说,但是这个SN号往往是实际使用的时候需要设备有唯一性,修改方法如下:// 文件:usbdev原创 2020-12-11 16:28:06 · 452 阅读 · 0 评论 -
【项目笔记_RP552D】rtthread usb hid 发送完成回调
问题描述在使用 rt_thread 的USB库的时候发现,主动发送的数据容易出现丢PC端收不到的情况:从调试的日志上看snd seq:20 数据发送的应答已经发送过了但是PC端没有收到数据于是研究 HID 类的函数,有发送成功的回调static rt_err_t _ep_in_handler(ufunction_t func, rt_size_t size){ struct hid_s *data; RT_ASSERT(func != RT_NULL); RT_ASS原创 2020-12-11 10:57:32 · 893 阅读 · 0 评论 -
【项目笔记_RP552D】rt_thread usb hid 设备与ST官方库的兼容
问题描述之前由于想体验 rt-thread 的 winusb 于是将USB的协议栈从ST的官方库转到了rt_thread 的USB协议栈,在实现玩代码之后发现, python 的demo 能直接与设备通讯,但是子涵的SDK却不能使用,于是找了网上的测试工具 PortHelper.exe 也是无法交互,这边感觉还是协议配置方面有些问题最后发现是报告描述符的差异导致的 USAGE_PAGE(1), 0x8c, USAGE(1), 0x01, COLLEC原创 2020-12-03 11:41:14 · 663 阅读 · 1 评论 -
【项目笔记_rp552d】Partition write error! Flash device(onchip_flash) write error!
问题描述在使用 easy_falsh 的是时候出现问题,这个问题是发现在 触发 gc 的时候突然断电就出现了错误,一旦出现这个问题无论怎样都无法恢复,除非重新擦除数据区需要擦除才能恢复,这个问题是不可接受的问题分析估计是触发在STM32上面触发GC机制的问题在备份在转移数据的时候突然断电会导致状态异常,这个异常的状态是写入在FLASH中的,导致即使上电数据也不能恢复,于是查找数据出错的地方:int stm32_flash_write(rt_uint32_t addr, const rt_uin原创 2020-11-12 18:30:44 · 1155 阅读 · 0 评论 -
【原理学习】rt-thread SPI 双向DMA驱动的开发
问题描述之前开发程序的时候是直接使用的 硬件 SPI 采用 DMA 方式来释放CPU,但是一直没有使用 rt_thread 原来的 DMA 历程,原因是原生的 drv_spi 驱动,实际上没有发挥DMA的真实性能,虽然开启DMA但是还是要等数据发送完成之后才释放CPU:当发送数据较长,且比较密集的时候如果采用死等的方发送数据就会导致数据发送性能极差,如何将这个死等的时间释放出来且发送和接收数据需要灵活可控先看电路图:说明:此时SPI是通讯的交互的重点,十分密集IRQ_NRF1: 值做个32的一中原创 2020-10-24 18:45:47 · 2092 阅读 · 0 评论 -
【问题积累】rtt 不同线程使用静态变量数据突变
问题描述再调试的是否发现数据会有突变的问题,表现比较明显的是这个 POWER字段异常:// 分装数据打印[1047245]: app_cod1 [ 24 ]: cmd: 2, PORT1: uID[1]:3069039912, seq:[ s: 54, c: 54 ], power:252// 发送缓存打印 (此处66 突变为 54)[1047248]: r_PORT1: uID[1]:...原创 2020-03-27 12:13:10 · 392 阅读 · 0 评论 -
【问题积累】rtt 堆空间不足导致控制台无法工作:无法输入指令
问题描述在新版本的程序中,使用 init 的方式创建线程int th_swd_init(void){ static struct rt_thread thd_swd_m; static uint8_t stk_swd_m[2048]; rt_err_t ret; /* 创建 SWD 下载处理线程 */ ret = rt_thread_init(&thd_swd_...原创 2020-03-27 11:06:53 · 2356 阅读 · 0 评论