Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
DMA
rtthread
UART
根据UART的DMA例程改写,第二次等待信号量会报段错误
发布于 2020-08-21 15:01:45 浏览:1129
订阅该版
在使用uart的DMA接收方式的时候,发现例程在接收到第一个信号量是成功的,然后再次等待第二个信号量的时候就会报段错误,每次接收完第一次之后都会在rt_mq_recv那里会报段错误,请问大家这是什么回事? ```c static void serial_thread_entry(void *parameter) { struct rx_msg msg; rt_err_t result; rt_uint32_t rx_length; static char rx_buffer[1024 + 1]; int i = 0; while(1) { rt_memset(&msg, 0, sizeof(msg)); rt_kprintf("======================\r\n"); result = rt_mq_recv(&rx_mq, &msg, sizeof(msg), RT_WAITING_FOREVER); if (result == RT_EOK) { rt_kprintf("---------------------------\r\n"); rx_length = rt_device_read(msg.dev, 0, rx_buffer, msg.size); rt_kprintf("rx_length = %d\r\n", rx_length); if (rx_length <= 0) { return -RT_ERROR; } rx_buffer[rx_length] = '\0'; rt_kprintf("rx_buffer = %s\r\n", rx_buffer); for(i = 0; i < rx_length; i++) { rt_kprintf("data = 0x%x\r\n", rx_buffer[i]); } } } } ``` ########################追加  追踪到这里报错了
查看更多
aozima
2020-08-21
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!
你的接收信号量是指 rt_mq_recv 吗? msg.size 值是多少? 是否会造成 rx_buffer 写穿? 如果不是这个问题,那么本段程序自身应该没问题,应该是有其它程序造成的问题。 从经验上看,你改过的程序,写穿/溢出的可能性比较大。 你也可以从报的段错误给出信息,反汇编下程序看下是哪里出错了,也许会有帮助。
3
个回答
默认排序
按发布时间排序
pen
2020-12-24
这家伙很懒,什么也没写!
你好,请问你这边的DMA的例程在哪找的,能分享一下吗?
aprilhome
2021-06-09
这家伙很懒,什么也没写!
信号量还是邮箱呀?
撰写答案
登录
注册新账号
关注者
0
被浏览
1.1k
关于作者
rookie_koala
这家伙很懒,什么也没写!
提问
9
回答
0
被采纳
0
关注TA
发私信
相关问题
1
rt thread 2.0.2 usart 接收缓存问题
2
关于STM32串口通信的问题
3
STM32F1+RTT串口接收终端数据丢失问题
4
UART TX丢数据?
5
RTT打开串口的时候如何自定义波特率呢?
6
STM32F4的USART数据接收问题
7
串口1234使用问题
8
串口接收回调函数
9
LPC18xx UART问题讨论
10
x1000串口配置的失败问题
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
机器人操作系统 (ROS2) 和 RT-Thread 通信
4
五分钟玩转RT-Thread新社区
5
国产MCU移植系列教程汇总,欢迎查看!
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
如何用Ubuntu qemu跑zephyr_polling的蓝牙
2
分享一种很简单的不阻塞TCP发送方法
3
stm32c86使用串口3时无法正常读到中断的数据
4
如何用ART-PI跑zephyr_polling的蓝牙
5
掌上单片机实验室 – 基于 RTT 框架的第一个应用
热门标签
RT-Thread Studio
串口
LWIP
Env
SPI
AT
FinSH
Bootloader
CAN总线
ART-Pi
Hardfault
文件系统
USB
DMA
RT-Thread
线程
SCons
RT-Thread Nano
stm32
MQTT
ESP8266
ota
UART
RTC
freemodbus
rtthread
rt-smart
packages_软件包
I2C
WIZnet_W5500
flash
cubemx
FAL
定时器
BSP
AB32VG1
PWM
ADC
SDIO
msh
socket
LVGL
keil
Debug
C++_cpp
中断
编译报错
SFUD
SMP
MicroPython
本月问答贡献
出出啊
1431
个答案
317
次被采纳
小小李sunny
1342
个答案
267
次被采纳
crystal266
505
个答案
149
次被采纳
whj467467222
1212
个答案
142
次被采纳
张世争
590
个答案
135
次被采纳
本月文章贡献
出出啊
3
篇文章
5
次点赞
小小李sunny
1
篇文章
1
次点赞
crystal266
1
篇文章
3
次点赞
whj467467222
2
篇文章
4
次点赞
张世争
6
篇文章
14
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部