硬汉嵌入式论坛

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

[CMSIS-RTOS] 串口发送数据造成卡死

[复制链接]

9

主题

23

回帖

50

积分

初级会员

积分
50
发表于 2021-11-18 16:15:02 | 显示全部楼层 |阅读模式
本帖最后由 junge1a520 于 2021-11-18 16:37 编辑

单独测试发送没有问题,当放到串口查询任务里面,只要是串口发送数据就卡死。放置在别的任务主动发送没有问题。
卡死图片.png
卡死具体位置找到了.png
回复

使用道具 举报

9

主题

23

回帖

50

积分

初级会员

积分
50
 楼主| 发表于 2021-11-18 16:18:55 | 显示全部楼层
手动单步执行,可以通过串口发送,但是后面程序又卡在图片的位置。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106709
QQ
发表于 2021-11-18 17:15:12 | 显示全部楼层
方便的话,分享你的工程到百度云看下。
回复

使用道具 举报

9

主题

23

回帖

50

积分

初级会员

积分
50
 楼主| 发表于 2021-11-18 17:33:11 | 显示全部楼层
eric2013 发表于 2021-11-18 17:15
方便的话,分享你的工程到百度云看下。

sprintf(temp_data,"%s,%s,%s,%s,%s,%s\r\n",
                Init_Data_Equipment.Measure_Interval,
                Init_Data_Equipment.appointment_time,
                Init_Data_Equipment.measure_mode,
                Init_Data_Equipment.Pub_Time,
                yymmdd,
                hhmmss
                );
我是执行了这个函数,栈立马增大,很纳闷。这些数据总共才几十个字节。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106709
QQ
发表于 2021-11-19 01:25:40 | 显示全部楼层
junge1a520 发表于 2021-11-18 17:33
sprintf(temp_data,"%s,%s,%s,%s,%s,%s\r\n",
                Init_Data_Equipment.Measure_Interval,
...

你这个是比较大的字符串吗
回复

使用道具 举报

9

主题

23

回帖

50

积分

初级会员

积分
50
 楼主| 发表于 2021-11-19 09:02:26 | 显示全部楼层
eric2013 发表于 2021-11-19 01:25
你这个是比较大的字符串吗

100个字节的全局变量,函数里面还有一个200字节的局部变量数组,系统调用的时候,一个字节需要多少栈空间?我把任务栈调到2K,可以了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106709
QQ
发表于 2021-11-19 10:57:30 | 显示全部楼层
junge1a520 发表于 2021-11-19 09:02
100个字节的全局变量,函数里面还有一个200字节的局部变量数组,系统调用的时候,一个字节需要多少栈空间 ...

栈的局部变量要4字节对齐,一个字节要占用4字节,如果是连续的100个,基本100个就行。

估计其它地方有占用。

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-30 12:29 , Processed in 0.301319 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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