硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1793|回复: 4
收起左侧

RT1052在threadX环境运行时,DMA串口收数据异常

[复制链接]

1

主题

8

回帖

11

积分

新手上路

积分
11
发表于 2023-2-15 20:06:16 | 显示全部楼层 |阅读模式
基本情况描述
1.使用RT1052芯片,在KEIL AC6环境下,下载了官方的2.12版本的SDK库;
2.启用了串口收发的DMA功能,与USB HOST MSD功能;
3.创建线程列表如下(1.串口(优先级3),2.LVGL(优先级6)3.页面逻辑控制(优先级6)4.USB枚举(优先级3)...)所有线程均为autostart
4.页面控制逻辑线程中,大概程序框架为
void entry(void)
{
    dis_open();//显示开机画面
    shakeHand();//与下位机通讯;
    load_first_page();//加载第一个显示页面
    while(1)
    {
          function();//根据当前在页面序号,获取相关数据,并及时通知LVGL刷新显示
    }
}
问题描述:
1.串口咋shakeHand()步骤中,收发均正常。但是在function()步骤中的通讯,接收到的数据是异常的,且收到的数据个数不对,如:正常包为 0x01  0x03 0x02 0x44 0x55 0x66 0x77,收到的包为0x01 0x03 0x02 0x01 0x00 ...
2.插着U盘上电,USB枚举线程正常挂载上U盘,程序在第一次运行至function()时,异常卡死,触发了MemManage_Handler()中断服务函数。
3.如果在load_first_page()之后,才启动USB枚举线程,程序不会卡死。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115679
QQ
发表于 2023-2-16 14:34:32 | 显示全部楼层
开DMA要注意Cache问题,注意个问题了吧
回复

使用道具 举报

1

主题

8

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2023-3-3 11:23:50 | 显示全部楼层
eric2013 发表于 2023-2-16 14:34
开DMA要注意Cache问题,注意个问题了吧

这个注意了,收发缓存都是放在nocache去、区
回复

使用道具 举报

1

主题

8

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2023-3-3 11:24:12 | 显示全部楼层
eric2013 发表于 2023-2-16 14:34
开DMA要注意Cache问题,注意个问题了吧

这个注意了,收发缓存都是放在nocache区
回复

使用道具 举报

1

主题

8

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2023-3-3 11:25:59 | 显示全部楼层
eric2013 发表于 2023-2-16 14:34
开DMA要注意Cache问题,注意个问题了吧

这个注意了,收发缓存都是放在nocache区
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-11 19:33 , Processed in 0.227673 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表