OpenEdv-开源电子网

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

关于ucos里OS_TCBInit函数下的OS_TASK_REG_TBL_SIZE

[复制链接]

13

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
196
金钱
196
注册时间
2014-7-3
在线时间
38 小时
发表于 2015-9-29 09:32:40 | 显示全部楼层 |阅读模式
5金钱
不明白这个宏定义的意义是什么,程序执行到这里,调试的时候tcb变量里的值才会真正发生改变,
ptcb->OSTCBStkPtr        = ptos;
ptcb->OSTCBPrio          = prio;                   /* Load task priority into TCB              */
ptcb->OSTCBStat          = OS_STAT_RDY;            /* Task is ready to run                     */
ptcb->OSTCBStatPend      = OS_STAT_PEND_OK;        /* Clear pend status                        */
ptcb->OSTCBDly           = 0u;
以上这些操作不是立马给tcb里的变量进行赋值了吗,为何不是立即改变呢,而是执行
#if OS_TASK_REG_TBL_SIZE > 0u                              /* Initialize the task variables            */
        for (i = 0u; i < OS_TASK_REG_TBL_SIZE; i++) {
            ptcb->OSTCBRegTbl = 0u;
        }
这些操作后才会真正赋值进去 



QQ截图20150929143232.png

最佳答案

查看完整内容[请看2#楼]

1、结构体成员变量赋值肯定是直接赋值的 ,不会等到你上面说的要等到下面程序执行完才会赋值,这个你单步调试一下就知道了,我已经测试过了,所以不用怀疑。 2、OS_TASK_REG_TBL_SIZE这个宏明显是定义OSTCBRegTbl[]数组大小的。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-9-29 09:32:41 | 显示全部楼层
1、结构体成员变量赋值肯定是直接赋值的 ,不会等到你上面说的要等到下面程序执行完才会赋值,这个你单步调试一下就知道了,我已经测试过了,所以不用怀疑。
2、OS_TASK_REG_TBL_SIZE这个宏明显是定义OSTCBRegTbl[]数组大小的。
开往春天的手扶拖拉机
回复

使用道具 举报

28

主题

119

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
444
金钱
444
注册时间
2013-8-10
在线时间
36 小时
发表于 2015-9-29 13:03:48 | 显示全部楼层
回复【2楼】zuozhongkai:
---------------------------------
kaige
回复

使用道具 举报

13

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
196
金钱
196
注册时间
2014-7-3
在线时间
38 小时
 楼主| 发表于 2015-9-29 14:30:24 | 显示全部楼层
回复【2楼】zuozhongkai:
---------------------------------
我真的是单步过去发现到了那一步就赋值了,实在是搞不明白
回复

使用道具 举报

13

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
196
金钱
196
注册时间
2014-7-3
在线时间
38 小时
 楼主| 发表于 2015-9-29 14:34:04 | 显示全部楼层
回复【2楼】zuozhongkai:
---------------------------------
你看看我的附件截图
回复

使用道具 举报

13

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
196
金钱
196
注册时间
2014-7-3
在线时间
38 小时
 楼主| 发表于 2015-9-29 14:45:22 | 显示全部楼层
回复【2楼】zuozhongkai:
---------------------------------
你用的keil版本是多少
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-9-29 14:57:01 | 显示全部楼层
我的是MDK5.16,这个和KEIl没关系
开往春天的手扶拖拉机
回复

使用道具 举报

13

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
196
金钱
196
注册时间
2014-7-3
在线时间
38 小时
 楼主| 发表于 2015-9-29 15:09:09 | 显示全部楼层
回复【7楼】zuozhongkai:
---------------------------------
那你看看我的截图,怎么理解呢
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-9-29 21:34:26 | 显示全部楼层
回复【8楼】唯一心跳:
---------------------------------
截图不要发附件.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

13

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
196
金钱
196
注册时间
2014-7-3
在线时间
38 小时
 楼主| 发表于 2015-9-29 23:07:53 | 显示全部楼层
回复【9楼】正点原子:
---------------------------------
已放入截图
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-9-30 22:10:05 | 显示全部楼层
回复【8楼】唯一心跳:
---------------------------------
可能和仿真有关.
你可以自己加入printf,每赋值一个,就打印一个来验证下.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 13:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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