OpenEdv-开源电子网

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

从裸机程序变为UCOS3后的框架问题

[复制链接]

9

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2018-7-10
在线时间
17 小时
发表于 2018-7-20 11:13:37 | 显示全部楼层 |阅读模式
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显示的任务等等,那这块我该用什么方式?    一个任务发送,多个任务接收。。。

希望各位帮我解答,多谢!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2018-7-10
在线时间
17 小时
 楼主| 发表于 2018-7-20 12:39:33 | 显示全部楼层
第二、三问题 是不是用全局变量也行,但是UCOS还有意义吗?行业上该怎么做了
回复

使用道具 举报

19

主题

78

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
422
金钱
422
注册时间
2015-1-19
在线时间
99 小时
发表于 2018-7-20 14:08:48 | 显示全部楼层
操作系统知识为了更方便的实现多任务,你说的“是不是用全局变量也行,但是UCOS还有意义吗?“不敢苟同,操作系统并不是加个信号量了就显得厉害,最主要就是为了你实现多任务,至于任务之间的关系处理,随便哪种方式都可以,信号量邮箱消息队列全局变量都可以。如果没有多任务处理,那么加操作系统就显得没有任何意义,反而浪费掉几十KB的RAM和flash
回复

使用道具 举报

9

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2018-7-10
在线时间
17 小时
 楼主| 发表于 2018-7-20 14:11:26 | 显示全部楼层
能讲讲具体的使用方式吗?按照我的问题,我刚从裸机转UCOS,思维如何跳转了?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165287
金钱
165287
注册时间
2010-12-1
在线时间
2107 小时
发表于 2018-7-21 21:06:02 | 显示全部楼层
熟能生巧,多去整几个代码,就懂了。
回复

使用道具 举报

9

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2018-7-10
在线时间
17 小时
 楼主| 发表于 2018-7-22 23:18:18 | 显示全部楼层
那请问,用DMA方式的串口空闲中断接收,一般工程里是怎么处理这个数据,是发送普通信号量让任务区处理,还是会用消息队列发到任务里处理,还是用消息队列的同时会加入互斥信号量,防止串口接收缓存区在任务 没有处理完时被改写?    大神们能告诉我实际怎么用吗
回复

使用道具 举报

20

主题

200

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
462
金钱
462
注册时间
2015-11-28
在线时间
89 小时
发表于 2018-7-23 13:45:10 | 显示全部楼层
1:都可以.用哪个看需求.一条条处理还是攒多了处理..不需要用互斥.
回复

使用道具 举报

20

主题

200

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
462
金钱
462
注册时间
2015-11-28
在线时间
89 小时
发表于 2018-7-23 13:49:09 | 显示全部楼层
2.是的. 3.该不该用不好说.看情况. 4 我还是选择全局变量.
回复

使用道具 举报

9

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2018-7-10
在线时间
17 小时
 楼主| 发表于 2018-7-24 08:57:52 | 显示全部楼层
那1了?  中断里怎么处理数据
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-2 06:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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