初级会员
- 积分
- 74
- 金钱
- 74
- 注册时间
- 2018-7-10
- 在线时间
- 17 小时
|
3金钱
您好,之前的程序是裸机跑的工程,许多地方用了全局变量做标志位或计数器,然后工程里各个函数按时查这个全局变量的状态再做功能处理。现在我们改用UCOS3操作系统,有几个问题想和大家讨教下,本人对UCOS的应用毫无经验,正在学习中:
1、串口中断1-5里收到了数据,到底是该采用中断里发【信号量】通知任务在中断外去处理数据了?还是直接使用【消息队列】? 如果都可以,哪种好?如果使用信号量的方式是不是该用【互斥信号量】避免串口数据被打断!
2、如果一个任务里需要查询比如gps_flag|gprs_flag|lcd_exist 等等多个状态是否置1或清0,那这个任务是不是该用 【事件标志组】?
3、如果原来裸机里的定时器里起了个变量num++; 当变量==5时,则执行任务并清除num = 0,这种事情, 到了ucos3里是不是该用【多值 信号量】?
4、通过串口里收到的GPS数据判断定位了,则置gps_flag == 1, 但是这个全局变量需要被多个任务查询,比如有位置上报的任务需要看是否定位,也还有LCD显示的任务等等,那这块我该用什么方式? 一个任务发送,多个任务接收。。。
希望各位帮我解答,多谢!
|
|