[原创] 【NUCLEO-L452RE测评】+FREERTOS(CMSIS-RTOS)事件

ddllxxrr   2021-1-3 10:28 楼主

到今天为止,我觉得FREERTOS就是CMSIS-RTOS只不过看其封装了哪个操作系统,除了FREERTOS外我现在见到的,还可封装MDK自带的Keil RTX。但我只用CMSIS-RTOS就得了。

毕竟要站在巨人的肩膀上。

我今天看了下事件。我觉得MDK把事件说得很清楚,每个任务只要建立了就有16个事件位。也不需要建立什么事件标识。

 

但事件,英语翻译过去应为EVENT,可是CMSIS-RTOS确定义为signal这个旗标的那个信号Semaphone,而STM32CUBE里边也没有处理好。只是一个框架子。

eeworldL452_24.jpg

 

根本定义不了什么,我这个人比较懒,能不动手写就不动手写,但这个事件没有定义,只有自己写了:

接上个程序:

1,定义一个线程,在这个线程里向默认任务发事件。

2,默认任务收到后,打印出数量,就这些。

 

/* USER CODE END Header_StartTask02 */
void StartTask02(void const * argument)
{
  /* USER CODE BEGIN StartTask02 */
  /* Infinite loop */
  for(;;)
  {
    osDelay(1000);
		osSignalSet(defaultTaskHandle,0x01);
  }
  /* USER CODE END StartTask02 */
}

 

/* USER CODE END Header_StartDefaultTask */
void StartDefaultTask(void const * argument)
{
  /* USER CODE BEGIN 5 */
	uint32_t count;
  /* Infinite loop */
  for(;;)
  {
    osSignalWait(0x01,osWaitForever);
		{
		count++;
		osDelay(1);
		LCD_ShowNum(10,80,count,5);
		}	
  }
  /* USER CODE END 5 */
}

 

 

运得结果是每隔一分钟就显示一个加1值。

eeworldL452_23.jpg

写了这么多,FREERTOS(CMSIS-RTOS)我觉得就够用了。至于怎么用,那就是经验和失败的叠加。也许下次还有个互斥量要做一下。

我觉得那个玩意在工作中没多大用,互斥只是解决优先级反转。我反正用不上。

本帖最后由 ddllxxrr 于 2021-1-3 10:43 编辑
http://shop34182318.taobao.com/ https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr

回复评论 (3)

老哥给力!

点赞  2021-1-3 15:09

加油加油

加油!在电子行业默默贡献自己的力量!:)
点赞  2021-1-5 10:03

CMSIS-RTOS有v1和v2,好像有些不一样,建议上v2

默认摸鱼,再摸鱼。2022、9、28
点赞  2021-1-6 21:34
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复