1300|1

100

帖子

0

资源

一粒金砂(中级)

ucosii系统

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

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

回复

1298

帖子

4

资源

纯净的硅(高级)

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

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

关闭
站长推荐上一条 1/5 下一条

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表