硬汉嵌入式论坛

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

[μCOS-III] STM32用uCOSIII串口静态内存接收疑问求助

[复制链接]

1

主题

5

回帖

8

积分

新手上路

积分
8
发表于 2016-2-16 11:06:47 | 显示全部楼层 |阅读模式
   各位,小弟想用uCOSIII的静态内存来存储串口接收到时数据,并通过任务信号传递给任务函数。
  在用UCOSIII在串口接收中断中使用申请的静态内存存储数据时:
   001.png
  但串口助手这边一发送数据过来,就进入HardFault,请问这个是怎么回事,该怎么解决?
   002.png
   003.png
  十分感谢!

  
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106856
QQ
发表于 2016-2-16 11:13:07 | 显示全部楼层
把char *pmemblk改成全局变量试试,或者static变量试试。
回复

使用道具 举报

1

主题

5

回帖

8

积分

新手上路

积分
8
 楼主| 发表于 2016-2-16 11:25:55 | 显示全部楼层
恩,多谢eric2013的帮助,我试了下,是可以的,但是我用助手定时发送到一定次数后,进入了HardFault!
004.png
回复

使用道具 举报

1

主题

5

回帖

8

积分

新手上路

积分
8
 楼主| 发表于 2016-2-16 11:34:46 | 显示全部楼层

回 eric2013 的帖子

eric2013:把char *pmemblk改成全局变量试试,或者static变量试试。 (2016-02-16 11:13) 
我用了裸机中的全局数据缓存buffer[]是没有问题的,按照你的方法将*pmem_blk加了static,但接收定时数据一定时间后,就会进入HardFault
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106856
QQ
发表于 2016-2-16 11:43:00 | 显示全部楼层
内存块用完后要释放,估计是申请光了,没有可用的内存块了,你查询下OSMemGet的err值。
回复

使用道具 举报

1

主题

5

回帖

8

积分

新手上路

积分
8
 楼主| 发表于 2016-2-17 09:06:25 | 显示全部楼层

回 eric2013 的帖子

eric2013:
内存块用完后要释放,估计是申请光了,没有可用的内存块了,你查询下OSMemGet的err值。

    不好意思,eric2013,昨天的有张图截错了,
       005.png

     在任务中收到消息并处理完后,就清掉内存块了,在中断接收起始时重新申请
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106856
QQ
发表于 2016-2-17 12:19:39 | 显示全部楼层

回 numajinfei 的帖子

numajinfei:    不好意思,eric2013,昨天的有张图截错了,
      

....... (2016-02-17 09:06) 
把你的printf改成用标准的printf试试。
回复

使用道具 举报

1

主题

5

回帖

8

积分

新手上路

积分
8
 楼主| 发表于 2016-2-19 10:41:25 | 显示全部楼层

回 eric2013 的帖子

eric2013:把你的printf改成用标准的printf试试。 (2016-02-17 12:19) 
发现是启动文件中堆栈设置的小了,原来是1K,改为2K就不出错了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-7 21:59 , Processed in 0.196581 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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