OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4132|回复: 4

UCOSII任务

[复制链接]

15

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2013-9-24
在线时间
0 小时
发表于 2013-9-29 23:04:00 | 显示全部楼层 |阅读模式
怎么知道设置任务堆栈大小为多少啊,堆栈字节对齐是什么意思?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

bodyopq 该用户已被删除
发表于 2013-9-29 23:48:55 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-30 04:05:35 | 显示全部楼层
我的一般是64*4字节为最小单位,如果任务里面调用的函数比较多,那就得适当增大,可以通过运行程序,看死机没有,来区分是不是合适。一般如果堆栈少了,很容易出现hard fault,根据这个就很好判断了。另外,ucosii提供了任务堆栈检测的函数,具体没用过,你可以查找下找找使用方法。

至于字节对其,因为任务里面有些函数处理,需要4字节/8字节对其,比如sprintf,printf等标准C函数,如果堆栈不是4字节/8字节对齐,有可能就莫名其妙的出错,最直接的就是,比如你用sprintf做科学计数表示的时候,如果不是8字节对其,很可能你得到的结果就是错误的,明明很简单的数据,都回错误!我们战舰板的综合实验,科学计算器的编写的时候,我就遇到这个问题。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2013-9-30
在线时间
0 小时
发表于 2013-9-30 16:00:08 | 显示全部楼层
在创建任务时利用OSTaskCreateExt()函数,并且允许堆栈检查和堆栈清0.在任一个任务里都能进行堆栈检查。
PS:在《嵌入式实时操作系统uc/os-II》一书中,作者的范例基本上是512*2(基于8086CPU)
好好学习,天天向上
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2013-10-1
在线时间
0 小时
发表于 2013-10-1 11:07:25 | 显示全部楼层
IAR 能都调试 ucos····mdk 调试貌似要个插件还是啥的···看堆栈使用百分比···你搜一下
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-12 01:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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