CMSIS Example - osMessageQ osMessagePut osMessageGet
#include "cmsis_os.h" void Thread0( void * arg);
void Thread1( void * arg); osThreadDef( Thread0, Thread0, osPriorityNormal, );
osThreadDef( Thread1, Thread1, osPriorityAboveNormal, ); osMessageQDef(_thread0_MsgQ, );
osMessageQId thread0_MsgQ; osMessageQDef(_thread1_MsgQ, );
osMessageQId thread1_MsgQ; void Thread0( void * arg)
{
osEvent event;
while()
{
event = osMessageGet(thread0_MsgQ, osWaitForever );
if ( event.status == osOK)
osMessagePut( thread1_MsgQ, event.value.v+, osWaitForever ); osDelay( );
}
} void Thread1( void * arg)
{
osEvent event;
osMessagePut( thread0_MsgQ, , ); while()
{
event = osMessageGet(thread1_MsgQ, osWaitForever );
if ( event.status == osOK)
osMessagePut( thread0_MsgQ, event.value.v+, osWaitForever ); osDelay( );
}
} int main( void )
{
osKernelInitialize(); thread0_MsgQ = osMessageCreate( osMessageQ(_thread0_MsgQ), );
thread1_MsgQ = osMessageCreate( osMessageQ(_thread1_MsgQ), ); osThreadCreate( osThread(Thread0), (void *) );
osThreadCreate( osThread(Thread1), (void *) ); osKernelStart(); return ;
}
CMSIS Example - osMessageQ osMessagePut osMessageGet的更多相关文章
- CMSIS_OS中osMailPut 和 osMessagePut 的问题
1. 背景 为了屏蔽不同OS之间的差别,ARM公司开发了一套OS接口--CMSIS_OS. 在使用STM32 cube生成的free rtos工程中,遇到一些问题. 问题1:osMessageGet ...
- CMSIS OS None
/* ---------------------------------------------------------------------- * Copyright (C) 2011 ARM L ...
- CMSIS RTOS -- embOS segger
#ifndef __CMSIS_OS_H__ #define __CMSIS_OS_H__ #include <stdint.h> #include <stddef.h> #i ...
- CMSIS Example - Mail and Message
/*---------------------------------------------------------------------------- * RL-ARM - RTX *----- ...
- (一)stm32之CMSIS标准、库目录、GPIO
一.CMSIS标准 ST公司的stm32采用的是cortex-m3内核,内核是整个微处理器的CPU.该内核是ARM公司设计的一种处理器体系架构.内核与外设的关系就像PC上的CPU与硬盘.主板.内存等的 ...
- CMSIS标准
CMSIS 标准(Cortex Microcontroller Software Interface Standard) ,翻译过来是"ARM Cortex™ 微控制器软件接口标准" ...
- stm32之CMSIS标准、库目录、GPIO
一.CMSIS标准 ST公司的stm32采用的是cortex-m3内核,内核是整个微处理器的CPU.该内核是ARM公司设计的一种处理器体系架构.内核与外设的关系就像PC上的CPU与硬盘.主板.内存等的 ...
- cmsis dap interface firmware
cmsis dap interface firmware The source code of the mbed HDK (tools + libraries) is available in thi ...
- STM32开发笔记之——CMSIS DAP
都说开发stm32都是使用kail iar+jatg/swd的方式,然而arm公司已经开发出了CMSIS DAP的开源下载工具,全称是CoreSight Debug Access Port,网络上有大 ...
随机推荐
- MySQL基础之第18章 性能优化
18.1.优化简介 SHOW STATUS LIKE ‘value’;connections 连接数uptime 启动 ...
- s:iterator标签的使用
1.在说明s:iterator标签的使用前,先了解下struts2中的Value Stack. 这里参考了webwork中对Value Stack的描述,由于struts2是在webwork的基础上进 ...
- objective-C 中两种实现动画的方法
第一种方法: [UIView beginAnimations:@"Curl"context:nil];//动画开始 [UIView setAnimationDuration:1.2 ...
- 平庸与卓越的差别 z
本文是清华大学陈吉宁校长于在 2015 年第一次研究生毕业典礼暨学位授予仪式上的讲话,原文标题:选择与坚持.演讲非常精彩,值得您细细阅读. 亲爱的同学们: 今天,共有 1318 名同学获得博士.硕士学 ...
- zzzzz
Extension Method: Return another string if string is null or emptyJust a tiny little extension metho ...
- hdu 4508 湫湫系列故事——减肥记I(完全背包)
题意:完全背包 思路:完全背包 可以直接转化为 多重背包,num[i]=_v/c[i];//转为多重背包然后运用 多重背包 3种解法如下码1: #include<iostream> #in ...
- c++中实现委托
成员函数指针与高性能的C++委托(上篇) 撰文:Don Clugston 引子 标准C++中没有真正的面向对象的函数指针.这一点对C++来说是不幸的,因为面向对象的指针(也叫做"闭包(clo ...
- effective c++:资源管理
对象管理资源 createInvestment 函数作用时创建一个invest对象: void f() { Investment *pInv = createInvestment(); // call ...
- Shell script之if...then
1 Variable in shell If you want to print variable, then use echo command. In front of the variable ...
- Spring Batch的事务-Part 1:基础
原文 https://blog.codecentric.de/en/2012/03/transactions-in-spring-batch-part-1-the-basics/ This is th ...