1075|4

75

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【ST NUCLEO-U5A5ZJ-Q开发板测评】7移植FreeRtos [复制链接]

前言:由于在网上没有找到齐全的资料关于我在测评计划内原先计划的测评任务,软硬件I2C读写MCP6050,软硬件SPI读写W25Q64等几个任务相继宣告失败,加上前端时间嗓子吞刀片发烧挂水休息了几天,看着所剩无几的时间,我决定换个方向,本文来移植一下操作系统。
1.工程配置铺垫
1)芯片选择,创建工程选择withoutTrustZone,开启ICACHE,配置PWR操作
2)开启时钟晶振,时钟树配置如图
3)系统时钟源选择除系统时钟的任意一个,本文选择TIM2作为时钟源,因为FreeRTOS会占用系统时钟。
 

4)配置GPIO口,选择三个用户LED,均设置为output,引脚使用情况如图

2.开始移植FreeRtos
1)下载官方移植包,选择图中的版本即可

 

 

2)设置,下载好了设置一下core和heap

3)添加任务,这里我添加了2个任务(默认配置就行),系统自动生成了一个任务,总共是三个,在Task and Queues中双击默认的任务,系统自动生成了一个名为defaultTask的任务,优先级为osPriorityNormal,占空间大小128words,任务的函数名为StartDefaultTask。
4)生成工程
3.代码
1)工程目录,找到app_freertos.c,进入。翻到下面的任务沙箱,随即开始后续的代码添加

 

 

2)添加任务代码

这里我们创建三个led灯延时点亮的任务,我们知道在裸机开发时候这个用延时实现是冲突的,在FREERTOS系统中我们可以创建三个任务,互不干扰。

分别在/* USER CODE END Header_StartDefaultTask */

/* USER CODE END Header_StartTask02 */

/* USER CODE END Header_StartTask03 */

沙箱内

void StartDefaultTask(void *argument)
{
  /* USER CODE BEGIN defaultTask */
  /* Infinite loop */
  for(;;)
  {
	  HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_7);//LED2
	  	osDelay(500);		//延时500个时钟节拍

  }
  /* USER CODE END defaultTask */
}
void StartTask02(void *argument)
{
  /* USER CODE BEGIN myTask02 */
  /* Infinite loop */
  for(;;)
  {
	  HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_7);//LED1
	  	osDelay(700);		//延时700个时钟节拍

  }
  /* USER CODE END myTask02 */
}
void StartTask03(void *argument)
{
  /* USER CODE BEGIN myTask03 */
  /* Infinite loop */
  for(;;)
  {
	  HAL_GPIO_TogglePin(GPIOG,GPIO_PIN_2);//LED3
	  	osDelay(1000);		//延时1000个时钟节拍

  }
  /* USER CODE END myTask03 */
}

效果

82b26a4874635d6d8cae5b311bb0f4e0

总结:stm32系列发展到u5系列这里已经是比较成熟了,系统的移植相比于其他型号的板子来说便捷的多,还得益于完善的软件生态,此次freertos的移植可以说是一键移植,没有裁剪内核添加删除.h文件等等一系列复杂的操作,任务的创建也是轻松至极,体验非常棒!

工程附件: os2.zip (19.82 MB, 下载次数: 0)

 

 

 

 

 

此帖出自stm32/stm8论坛

最新回复

我是驱动MCU屏失败,痛苦一个星期了。   详情 回复 发表于 2024-3-3 09:03
点赞 关注
 

回复
举报

6810

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

软硬件SPI读写W25Q64等几个任务相继宣告失败,加上前端时间嗓子吞刀片发烧挂水休息了几天,

哈哈

此帖出自stm32/stm8论坛

点评

我是驱动MCU屏失败,痛苦一个星期了。  详情 回复 发表于 2024-3-3 09:03
太痛苦啦  详情 回复 发表于 2024-3-3 00:28
 
 

回复

75

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
Jacktang 发表于 2024-3-2 20:45 软硬件SPI读写W25Q64等几个任务相继宣告失败,加上前端时间嗓子吞刀片发烧挂水休息了几天, 哈哈

太痛苦啦

此帖出自stm32/stm8论坛
 
 

回复

6993

帖子

11

TA的资源

版主

4
 
Jacktang 发表于 2024-3-2 20:45 软硬件SPI读写W25Q64等几个任务相继宣告失败,加上前端时间嗓子吞刀片发烧挂水休息了几天, 哈哈

我是驱动MCU屏失败,痛苦一个星期了。

此帖出自stm32/stm8论坛

点评

大佬技术遥遥领先,即使失败还是奉献了那么多优秀的测评~  详情 回复 发表于 2024-3-4 00:21
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(中级)

5
 
lugl4313820 发表于 2024-3-3 09:03 我是驱动MCU屏失败,痛苦一个星期了。

大佬技术遥遥领先,即使失败还是奉献了那么多优秀的测评~

此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表