OpenEdv-开源电子网

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

第四十二章 UCOSII 实验 3-消息队列、信号量集和软件定时器中的不完全手册问题(不完全手册3.0)

[复制链接]

13

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2012-8-28
在线时间
11 小时
发表于 2015-2-7 11:52:15 | 显示全部楼层 |阅读模式
5金钱
原子大哥
      在不完全手册UCOSII 实验 3-消息队列、信号量集和软件定时器中有如下内容:
UCOSII 软件定时器实现了 3 类链表的维护:
OS_EXT OS_TMR    OSTmrTbl[OS_TMR_CFG_MAX];  //定时器控制块数组
OS_EXT OS_TMR *OSTmrFreeList;          //空闲定时器控制块链表指针
OS_EXT OS_TMR_WHEEL OSTmrWheelTbl[OS_TMR_CFG_WHEEL_SIZE];//定时器轮

1)我发现程序里面根本没有OS_EXT OS_TMR,只有OS_TMR数据类型,请问是为什么?
2)我发现程序里面也没有数组OSTmrWheelTbl[OS_TMR_CFG_WHEEL_SIZE],只有结构体OSTmrWheel,请问是为什么?
这两个问题让我的阅读理解带来不便。请速回复。谢谢!!!!

补充:上面2个问题中提到的变量找到了,但目前还有另外一个问题,如下
把 OS_EXT OS_TMR *OSTmrFreeList;          //空闲定时器控制块链表指针改成
改成    extern 
OS_TMR *OSTmrFreeList;          //空闲定时器控制块链表指针改成
会出现编译错误,而我看到程序有定义#define  OS_EXT  extern。
按道理改成上面是不会有错误的,请问是为什么?
错误信息如下:
..\OBJ\UCOSII-3.axf: Error: L6218E: Undefined symbol OSTmrWheelTbl (referred from os_tmr.o).

最佳答案

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

回复【5楼】guotaosheng: --------------------------------- 看下 《嵌入式实时操作系统uCOS-II[邵贝贝]》 的 “1.03全局变量” 你就懂了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2015-5-28
在线时间
1 小时
发表于 2015-2-7 11:52:16 | 显示全部楼层
回复【5楼】guotaosheng:
---------------------------------
看下 《嵌入式实时操作系统uCOS-II[邵贝贝]》 的 “1.03全局变量” 你就懂了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-2-7 22:36:18 | 显示全部楼层
可能是你搞错对象了 吧?是不是写错了?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

13

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2012-8-28
在线时间
11 小时
 楼主| 发表于 2015-2-10 11:23:42 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子大哥
      没有写错,要不你试一试看。我觉得很莫名其妙。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-2-10 23:14:20 | 显示全部楼层
回复【3楼】guotaosheng:
---------------------------------
我测试了,确实是这样。
比较奇怪,用extern定义的时候,肯定在外部必须定义才行,但是UCOSII源码并没有在外部定义。
但是 用它自己的OS_EXT又可以,我也不理解了。
c++貌似也没这个用法啊。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

13

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2012-8-28
在线时间
11 小时
 楼主| 发表于 2015-2-11 15:41:48 | 显示全部楼层
回复【4楼】正点原子:
----------------------
没错,就是这样,我才特意向你提了这个问题。还好,最少我不会感觉到孤独。但是如果以后发现了为什么,还是麻烦回复告诉我。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-28 02:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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