邮箱的使用就是: 在建立邮箱后,在任务一中把这个任务中的一个局部变量a的地址,通过函数OS_MboxPost发送到邮箱里面,然后在任务二里面建立一个指针p,通过OS_MboxPend()把任务一发送的消息(a的地址)赋值给指针p,然后在任务一里面通过访问p的内容就是访问任务一的变量a。当任务切换时任务中的局部变量会保存在自己的堆栈中,因此a的地址还是不变的,这时通过邮箱传递a的内容是没有问题的,但是如果当在一个中断服务函数中调用OS_MboxPost时,发送中断服务函数中的局部变量的地址就需要注意,这个变量必须定义成static型局部变量或者采用全局变量。不然这个局部变量的地址会因为中断的退出而改变。 |
文章评论(0条评论)
登录后参与讨论