出出啊
出出啊
It is Not the Mountain We Conquer, but Ourselves

注册于 4 months ago

回答
627
文章
13
关注者
39

中断里调用了 rt_thread_idle_excute 函数?
不太可能吧。程序跑飞了?

没找到 serial_configure 这个结构体定义呗,多半是头文件路径没添加。

  1. 先检查线程栈大小是多少,你如果想一次性读到内存里,最好是从堆上申请内存。
  2. 如果想读到栈内存的数组或者结构体上,线程栈至少3k。
  3. 如果你本来用的就是堆内存。检查程序其它地方是不是把你的内存堆破坏了吧。

drv_config.h 里找到对应芯片,看看有没有包含 dma_config.h。这个一般是有的。
然后打开 dma_config.h 看看有没有上面那个宏的定义,有就是能用,没有,可能是不能用的。
你要是确定是可以用的,并且兼容现在的框架,自己添加一组相关宏定义

这个必须正确挂载U盘设备后通知其它线程。可以去我的 gitee 仓库下载我修改过之后的 usb host 代码。里面有添加的接口。

一个是通用框架,一个是外设驱动。
一个定义上层逻辑,一个提供底层接口。
俩配合使用的。必须同时用。

底层驱动决定的,比如片上flash 的读写驱动,或者 spi flash使用的 sufd 接口。
那个参数不要改,write 函数是上层接口,改它没用。

studio 就是这个毛病,那个组件有没有和 latest 版本 rtt 做过兼容性测试都难说,但是你想下载的时候就强制要求你必须使用 latest 版本。

找到 “env/tools/scripts/cmds/cmd_package/cmd_package_update.py” 文件。

def package_update(force_update=False):
    """Update env's packages.

    Compare the old and new software package list and update the package.
    Remove unwanted packages and download the newly selected package.-
    Check if the files in the deleted packages have been changed, and if so,
    remind the user saved the modified file.
    """
    logging.basicConfig(level=logging.DEBUG,
                   format='%(asctime)s  %(message)s',
                   datefmt='%a, %d %b %Y %H:%M:%S +0000')
    sys_value = pre_package_update()
    if not sys_value:
        return

    flag = True

    if not delete_useless_packages(sys_value):
        return

    # 1.in old and not in new : Software packages that need to be removed
    if not remove_packages(sys_value, force_update):
        return

这个函数开头有三个 return 这里添加 print定位一下是从哪个返回了。

没多大影响,是你的 debug_uartinit 函数定义返回值错了,不是 void 是 int。这个不同编译器版本可能会变成 error。但是不影响使用。

这个不错,这个还能兼职?还是一个学校的团队。

你确定是 qt 项目?还是说使用 qtcreator 这个 IDE 搭建的开发环境?来个图片瞧瞧呗。

所有你看到的,定位的位置都不是根源位置。但是可以肯定的是有非法写,把内存中的某些值写乱了。导致程序运行逻辑混乱。
根据你的描述,程序中有固定的非法写行为,溢出的位置和值等等,猜测是固定的,导致每次都在确定的位置停止运行。
有试过去掉清理 TC 标志吗?把所有涉及到的清理 TC 的位置先注释掉。因为有人反映过清理这个标志会引起丢中断现象。

回到
顶部

发布
问题

投诉
建议