OpenEdv-开源电子网

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

请教ucos II有关信号量的问题

[复制链接]

7

主题

49

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
441
金钱
441
注册时间
2013-1-3
在线时间
89 小时
发表于 2013-1-3 18:41:29 | 显示全部楼层 |阅读模式
我创建的好几个C文件,所以在文件里面也有不同的函数,所以想在不同的函数间,主要是在不同的文件之间使用信号量进行任务的通信,但是老是出错。
请大哥大姐们出出主意怎么解决。
比如说我在File1.c中的函数发送信号量,在File2.c中的函数等待信号量。具体怎么写,请帮帮忙。最好是试验通过的。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

22

主题

436

帖子

0

精华

高级会员

Rank: 4

积分
541
金钱
541
注册时间
2012-8-6
在线时间
2 小时
发表于 2013-1-3 20:01:52 | 显示全部楼层
while(不明白)
{
  学习;
}
往事随风!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-1-3 20:02:53 | 显示全部楼层
看我们的教程,或者看任哲的书,信号量这个章节。
两个文件,通过extern关键字关联。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

49

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
441
金钱
441
注册时间
2013-1-3
在线时间
89 小时
 楼主| 发表于 2013-1-3 20:36:56 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
原子哥好,第一次问问题有点羞涩(呵呵),我看了有关的资料,也加了extern,但是还有报错 identifier "OS_EVENT" is undefined
这个问题怎么解决?头都大了! 
还有个问题,我的工程实现一功能,需要计算速度快一些,也就是计算花费的时间越短越好。在两个环境下一个ucos,一个裸奔。裸奔花费的时间大约
1.94ms,但是在ucos中却需要2.6ms,为什么呢?更新速度慢了对于精度有很大的误差。
回复 支持 反对

使用道具 举报

7

主题

49

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
441
金钱
441
注册时间
2013-1-3
在线时间
89 小时
 楼主| 发表于 2013-1-3 20:38:38 | 显示全部楼层
回复【2楼】zsk:
---------------------------------
一楼 while(不明白)  亮了!
回复 支持 反对

使用道具 举报

96

主题

762

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1228
金钱
1228
注册时间
2012-10-19
在线时间
15 小时
发表于 2013-1-3 21:30:51 | 显示全部楼层
回复【4楼】zhuwenfly:
---------------------------------
1、优化代码
2、优化算法
3、超频
回复 支持 反对

使用道具 举报

7

主题

49

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
441
金钱
441
注册时间
2013-1-3
在线时间
89 小时
 楼主| 发表于 2013-1-3 21:40:22 | 显示全部楼层
回复【6楼】tian123chi:
---------------------------------
5楼的主意很好,但是代码无法优化,即使优化能节省多少呢?
我的已经是72M了(stm32f103),还能怎么超?
回复 支持 反对

使用道具 举报

96

主题

762

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1228
金钱
1228
注册时间
2012-10-19
在线时间
15 小时
发表于 2013-1-4 09:39:18 | 显示全部楼层
回复【7楼】zhuwenfly:
---------------------------------
裸奔花费的时间大约 1.94ms,但是在ucos中却需要2.6ms。这句话说明你计算时CPU利用率百分百了,UCOS中比裸奔中多的时间是跑系统占用了你的CPU。虽说OS是实时系统,但是只是尽量实时而已,裸奔才是最实时的。
当然超频怎么略微增加点,超频可以用增加倍频的方法,还有种就是略微增加芯片两端电压。如果还是无法满足你,直接用F4芯片吧。再不行换其他高频芯片吧,STM32不适合计算
回复 支持 反对

使用道具 举报

7

主题

49

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
441
金钱
441
注册时间
2013-1-3
在线时间
89 小时
 楼主| 发表于 2013-1-4 15:11:38 | 显示全部楼层
回复【8楼】tian123chi:
---------------------------------
我的工程是只有那一个任务,任务里面没有释放cpu的延时函数,也就是说确实是cpu占用率在100%。
昨天刚买了一块F4,之前查了一下资料,里面的资源确实丰富啊,还有168M的主频。不过单个芯片比较F103是有贵啊!
回复 支持 反对

使用道具 举报

96

主题

762

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1228
金钱
1228
注册时间
2012-10-19
在线时间
15 小时
发表于 2013-1-5 09:17:02 | 显示全部楼层
回复【9楼】zhuwenfly:
---------------------------------
嗯是啊,功能需要不多的话,可以使用F4的阉割版F3。F2的主频也120呢。不过F2 F3 F4和F1的外设结构有点不一样,库函数不通用
回复 支持 反对

使用道具 举报

8

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2014-2-16
在线时间
0 小时
发表于 2014-8-5 13:51:10 | 显示全部楼层
回复【10楼】tian123chi:
---------------------------------
请问楼主那个信号量的问题有没有解决!
回复 支持 反对

使用道具 举报

2

主题

12

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2014-12-15
在线时间
1 小时
发表于 2014-12-15 12:59:02 | 显示全部楼层
请问那个信号量的问题解决了吗
回复 支持 反对

使用道具 举报

13

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2014-2-21
在线时间
7 小时
发表于 2015-5-29 21:06:40 | 显示全部楼层
回复【2楼】zsk:
---------------------------------
哈哈,精辟!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-28 23:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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