社区导航

 
快捷导航
  • 首页
  • 论坛
  • 查看新帖
  • 最新回复
  • 社区活动
  • 联系管理员
  • 消灭零回复
  • E金币兑换
  • 干货
搜索
查看: 887|回复: 1

[求助] ucosii系统

[复制链接]

97

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2017-1-31 10:32:43 | 显示全部楼层 |阅读模式
最近在看嵌入式系统,可能看得资料不是很详细,而且结合了些小程序去看,提出以下疑惑。
1,信号量发生任务发生了个信号量,等待信号量任务执行一遍,并没有返回信号。 一个信号是不是只能用一遍就没了。因为程序是一个按键发送一次,喇叭就响一次。
2,在高优先级任务中,发生了一次中断,或是延时,如果任务就绪表的任务没有高过当前运行的任务,是不是不会切换任务?
3,因为任务的时钟节拍设置成了5MS,如果有任务低于5MS就要处理一次,比如信号采集,US级,那该怎么办?
4,OSSchedLock();和OS_ENTER_CRITICAL(); 有什么区别,防止中断,中断就是会发生任务调度的。。不懂。。
5,在队列和消息这里,我怎么分辨不出里面的区别,都是给了个消息的指针,还有队列在一开始创建了个数组,如果我不用数组又怎么样。还有数据采集任务可不可以用消息队列的方法传递给数据处理任务??是必须这么做,任务间的通信吗?

希望有了解嵌入式系统的人解答疑惑。。。谢谢
此帖出自stm32/stm8论坛


回复

使用道具 举报

1251

TA的帖子

4

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

发表于 2017-2-14 09:47:58 | 显示全部楼层
1 信号量 就相当于标志 有任务或者中断发,就有其他的任务在查询
2 是不会切换 这就是为什么ucos要在每个任务里加上延时(任务调度)函数,需要释放CPU。
3 5ms 对于RTOS来说,算是可以处理很多情况了,这个数也可以改,但因此带来的系统开销会变得很大,信号采集如果不是很小的US级,可以采用中断,如果是很小的us级采集,还要伴随着对采集而来的数据做运算,拟合......这个就要看你选择的cpu的性能了,性能达不到,就算不用RTOS,裸机跑也是很“困难的”。
4 看名字就应该知道,一个是上锁,一个是告诉系统进入了中断函数。
5 这个问题很含糊,看具体情况,甚至不用消息队列的发送方式,用DMA都行。
天地庄周马;江湖范蠡船。
个性签名还是放QQ号吧,2060347305,添加说明EEworld好友


回复

使用道具 举报

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

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2018-5-25 01:27 , Processed in 4.779959 second(s), 16 queries , Gzip On, Redis On.

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