serial->serial_rx = rx_fifo;/* configure fifo address and length to low level device */serial->ops->control(serial, RT_DEVICE_CTRL_CONFIG, (void*) RT_DEVICE_FLAG_DMA_RX); 通过RT-Thread的源码可知 DMA buffer 和 serial 的 ringbuffer 公用一个 buffer. 我发送的数据长度为129,发送间隔>250m...
STM32F4使用RT-Thread时出现因为串口异常导致死机 RT- Thread创建的串口驱动有bug 问题详细描述 前段时间工作中,使用了rt Thread创建了F4的工程,待所有板级驱动和业务写完后开始测试产品。其中F4芯片一路串口接GPS模块,进行7*24h长期测试,测试过程中出现死机情况。再次测试仍会复现。 板级配置和驱动代码是我根据芯片...
至此完成difftest for devices。 此时npc已经能够运行amtest中的yielod,但是在尝试运行kernels/yield时出现bug如下: 80000040: 08852783 lw a5,136(a0)错误发生在该指令,查看pc_next或者a0的值, 观察到a0的值为0xa,所以读取的136+a,我们单独运行nemu查看一下。 显然线程切换之后的a0值不对。
意外的BUG发现:数据节点的链表的头,也就是 链表 head也没有初始化,解决方法同上,需要初始化 链表的头:使用 rt_list_init,这样问题得到解决 移植的代码之前使用的 hashlist,声明时即初始化了,不需要显示的初始化,而RT-Thread list,必须初始化,否则把链表节点插入 链表头部的时候,就会出现 野指针或空指针 访问成...
意外的BUG发现:数据节点的链表的头,也就是 链表head也没有初始化,解决方法同上,需要初始化 链表的头:使用rt_list_init,这样问题得到解决 移植的代码之前使用的hashlist,声明时即初始化了,不需要显示的初始化,而RT-Thread list,必须初始化,否则把链表节点插入 链表头部的时候,就会出现 野指针或空指针 访问成员的...
最近在开发调试基于RT-Thread的程序时,遇到一个比较奇怪的死机问题,后来经过一步步排查,终于发现是动态内存申请的数据结构没有清零引发的死机。 排查方法 由于没有单步调试的手段,就通过 打印调试LOG 与 #if 0 A_CODE #else B_CODE #endif 条件编译的方式,通过注释部分代码等方法,快速缩小问题的排查范围。
RT_Thread中的CANfestival存在的BUG 问题描述:假设某个从机的ID为3,当从机第一次接入的CAN网络中的...
解析由系统库引发的hardfault血案(RT-Thread+ESP32) 最近使用RTthread用于驱动esp32联网过程中遇到了一个严重bug,刚开始并不晓得问题是出自哪里,烦恼三千丝。(唉,并不是系统提供的库就没有问题,一不小心在收集bug完善库的路上渐行渐远。。。) 先看下finsh后台给出的错误提示信息:...
rtthread消息队列不停收到消息 理解了中断、等待队列、调度,你就能懂Linux的80% 写给自己 : 发现自己对于很多知识都只是仅仅了解一哈,不做深入了解,很多Bug出现自己都不知道为什么? 这和工具人有什么区别? 我们要了解epoll如何实现,首先需要了解关于内核的三点操作,什么是等待队列,内核的poll机制...
RT-Thread QSPI bug解决 调试基于ART-PI开发板的QBoot工程,使用到了SPI和QSPI。其中型号为W25Q64JV和W25Q128JV。8M QSPI Flash用于存储运行程序,16M SPI Flash用于存储数据和文件系统。 现象 QSPI Flash在0x8000后面的地址无法写,其中读取到的数据也全部使0XFF。 解决 更改components\drivers\spi\qspi_core.c文件...