打印

ucos请教

[复制链接]
1997|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lskam|  楼主 | 2013-6-17 13:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
第一次入手ucos,想请教个问题。
我现在建立4个任务   task1, task2, task3, task4。。其中 task2处有采样程序。在 task3出串口发出、想问下我在 task2处邮箱发出来的数据,在哪个任务中接收啊。。还有 OSMboxPost(AckMbox,(void *)1);这个程序是返回邮箱确认的,,其中那个1是什么参数啊,,,谢谢请教

相关帖子

沙发
wangliuliu566| | 2013-6-17 13:50 | 只看该作者
肯定是哪个任务使用,就在哪个任务中接收了

使用特权

评论回复
板凳
john_lee| | 2013-6-17 13:56 | 只看该作者
请楼主再看3遍书。

使用特权

评论回复
地板
lskam|  楼主 | 2013-6-17 16:46 | 只看该作者
john_lee 发表于 2013-6-17 13:56
请楼主再看3遍书。

台兄可以说说不?

使用特权

评论回复
5
john_lee| | 2013-6-17 20:00 | 只看该作者
你的题目交代得太含糊,要说细节的话可以随后再讨论。

先只能笼统地谈谈。
一个项目设计,先要规划清楚各个事件的处理流程,流程主要根据事件处理的实时性来设计,事件的处理是否存在过载情况,绝对过载一定要避免(比如可以换更快的CPU或者适当降低设计指标),相对过载可以使用同步对象(semaphore,mailbox,event flags 等等)来缓冲事件及其相关数据,处理的环节要尽量简洁,能在一个任务中处理的事件,就不要无谓的传到其它任务里处理。

使用特权

评论回复
6
lskam|  楼主 | 2013-6-18 09:09 | 只看该作者
john_lee 发表于 2013-6-17 20:00
你的题目交代得太含糊,要说细节的话可以随后再讨论。

先只能笼统地谈谈。

我之前做的项目跑裸机的。用stm32做的。。程序量不大、35k左右,,现在是想加个ucos做下对比看看,那个好;;;ucos我没有花多少时间看,碰到不懂的再百度这样的。。。移植的差不多了,,就是一些细节的步骤流程还不是很懂,不过功能可以实现就是了,,像OSMboxPost(AckMbox,(void *)1);这个代表什么啊?

使用特权

评论回复
7
john_lee| | 2013-6-18 10:37 | 只看该作者
OSMboxPost(AckMbox,(void *)1);这个代表什么啊?
OSMboxPost(AckMbox,(void *)1) 是把整数值“1”作为一个mail 发送到一个名为 AckMbox 的同步对象,由于 OSMboxPost 函数只能接受指针类型的 mail 参数,所以必须把整数值“1”强制转换为指针类型。
至于这个 mail 的作用,你要去看谁获取了它并干了什么。

使用特权

评论回复
8
lskam|  楼主 | 2013-6-18 14:38 | 只看该作者
john_lee 发表于 2013-6-18 10:37
OSMboxPost(AckMbox,(void *)1) 是把整数值“1”作为一个mail 发送到一个名为 AckMbox 的同步对象,由于 OS ...

恩恩,,谢谢这位兄台,,这个问题已经弄懂了。。不过我遇到了新问题啊。。。就是我在用memcpy这个函数时会出现程序死在HardFault_Handler这里面。。。我在跑裸机的时候程序都正常,。请教哥啊。。可能会出现的原因是什么啊?

使用特权

评论回复
9
john_lee| | 2013-6-18 15:21 | 只看该作者
导致 hard fault 的原因很多,要查找到引起 hard fault 的那条指令才能知道。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

56

主题

128

帖子

0

粉丝