完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我是新手,原来同事的裸机程序是在STM32F103上完成的,现在产品要做升级,用的是STM32F407+UCOS3完成老程序的升级,但是原来的程序工程量也比较大,用了大约10几个全局变量做事件通知:比如u8 gps_flag; 当GPS定位时,gps_flag置1,别的操作才会上报 等等,我想问问在UCOS3里这种类型的全局变量该用什么方式处理比较好? 而且那些全局变量会被好多任务使用,比如定位了,才会向平台上报位置,才会在显示屏上显示位置,才会复位状态清0等等。 请大家帮我设计下方案,UCOS我是刚学不太熟悉。
多谢! |
|
相关推荐
6个回答
|
|
用OS和裸机,差大呢。。。
最简单的,你帮我搞个: MP3播放器,播放音乐的时候,同时显示歌词。 你用裸机,是不是觉得很不好搞? 用OS就非常容易了,一个任务放音乐,一个任务显示歌词。 这只是个简单的例子,其他的,还有N多应用场景。 至于SYSTEM文件夹,我们是为了方便初学者快速新建工程的。 你想直接按官方的方式,可以按官方的去写代码就是了。 学习你也可以学习ST官方的资料。 至于中断服务函数,不一定非得都扔到一个.c,个人习惯。 你喜欢这样,他不喜欢... 总之,按你自己习惯的方式编程就对了,你认为好的,别人不一定认为好。 |
|
|
|
一般可以直接用全局变量,没说用了os就不能用全局变量了。如果需要互斥访问的,就用信号量,或者消息来传递。
|
|
|
|
那请问原子哥,我现在对UCOS的认识是裸机跑系统的意义也不大,你觉得了?:
1、硬件中断优先级高于任务优先级,原来裸机时中断怎么操作,其实加了UCOS没太大变化;只是要注意中断恢复时哪个任务要继续运作; 2、对于单片机来讲,原来的工程其实任务也都不会特别多,现在的任务只是避免了一些共用的资源被同时互相抢占; 3、如果照您说的全局变量也还可以继续用,那我真觉得象征性的起些任务 意义不特别大。 我的认识对吗? 再有原子哥,你的代码自带了SYSTEM文件夹,其实我比较反感,为什么不能照着ST的官方例程写些比较直接调库的代码,方便大家初学和移植,你的那个usart.c里的中断函数为什么不写在xxx_it.c文件里。而且比较有价值的DMA串口接收,但是你的例子写的是发送。我可能学的比较浅。总感觉看着美中不足。 |
|
|
|
既然多任务都需要用到的变量,UCOS里面也是可以用全局变量的,如果任务间通信是有联系的,那就跟原子哥说的一样,用信号量、互斥信号量、消息队列
|
|
|
|
额...(1)可以通过这样那样的方法在硬件中断里面加一次任务调度~ 可以通过中断加调度完成一些裸机来不了的操作.任务A,B两个完全不想干的任务.任务A正在跑 中断调度 变成任务B. 这个中断可以在A任务的任意地方任意时刻产生并跳到任务B.
(2) 看工程. 工程比较简单. 裸机当然好啦.但是一旦工程复杂起来.尤其是多任务和时序问题.不用操作系统,裸机玩不了...(能实现,但是非常非常麻烦) (3) 你想说系统的 信号量 这个东西是么? 他是和多任务进行配合的.单独的拿出来讲他和全局变量几乎没区别.但是配合上多任务,就很神奇了. 你的问题全部都是基于,你对操作系统的认识不足.... 工程简单的话 用个鸡毛操作系统.上了操作系统还会影响性能. 工程复杂的话, 操作系统简直就是开挂~谁用谁知道~ 最后.关于你吐槽否定 ucos 和原子的 system文件夹. 你知道system文件夹里面的delay 原子写的多用心么? 有多好用你知道么? 裸机或者OS都能用 .usart 不写在it.c还不是为了方便移植啊 大兄弟. |
|
|
|
我也想请教类似问题:这几天玩uCOSII,定义了一个全局变量在串口中断中用,发现再次进中断的时候,这个变量会被清零。代码中肯定没有清零。没查出原因。还有DMA.......,操作系统有好多不明白的。不是简单的按个按钮,点个灯,就"精通"uCOS了。
|
|
|
|
只有小组成员才能发言,加入小组>>
663 浏览 0 评论
1083 浏览 1 评论
2456 浏览 5 评论
2784 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2619 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
639浏览 9评论
636浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
766浏览 6评论
610浏览 5评论
651浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 15:12 , Processed in 0.822933 second(s), Total 56, Slave 48 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号