freertos + system 查看任务运行请情况,

本文介绍了如何在nrf52840芯片上,基于FreeRTOS操作系统,利用SystemView库进行实时运行情况监控。首先从官方网站下载库文件并更新JLink驱动,接着将相关文件添加到工程中,并针对FreeRTOS进行配置,包括在main.c中初始化SystemView,在FreeRTOS.h和FreeRTOSConfig.h中添加头文件和宏定义。最后通过JLink连接目标板并运行SystemView,即可观察任务执行情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近做蓝牙 nrf52840 ,跑了freertos 操作系统,领导希望看下操作系统实时运行情况,以分析芯片资源使用情况,,

上一个写的 太模糊了,罪过罪过,,,

 

 

先一直system view 库进工程

1、下载库文件

地址:https://www.segger.com/downloads/free-utilities#SystemView

(注意需要更新下jlink 驱动)。

2、下载后接下后得到

添加相关文件到工程中:

\TargetSrc\Config 目录下的文件。
\TargetSrc\SEGGER 目录下的文件。
与下位机使用的操作系统相关的文件。 本人使用系统的是 FreeRTOS 10.00,用到的是这几个文件:
\TargetSrc\Sample\Config 目录下的 SEGGER_SYSVIEW_Config_FreeRTOS.c 文件。
\TargetSrc\Sample\OS 目录下的 SEGGER_SYSVIEW_FreeRTOS.c 和
SEGGER_SYSVIEW_FreeRTOS.h 文件

在mdk 中设置相关路径,添加源文件

在嵌入式系统开发中,FreeRTOS 与 STM32CubeMX 的结合使用已成为高效构建实时应用的重要手段。STM32CubeMX 是 STMicroelectronics 提供的图形化配置工具,用于简化 STM32 微控制器的初始化设置和外设配置。FreeRTOS 则是一个轻量级、可移植、开源的实时操作系统(RTOS),广泛应用于资源受限的嵌入式设备中[^1]。 通过 CubeMX,开发者可以快速生成基于 HAL(Hardware Abstraction Layer)库的初始化代码,并集成 FreeRTOS 支持。该过程包括任务创建、队列管理、信号量同步等机制的配置。以下是一个典型的集成步骤概述: ### 初始化配置 1. **选择 MCU 型号** 在 STM32CubeMX 中选择目标微控制器型号,例如 STM32F407VG 或 STM32H7 系列。 2. **配置时钟树(Clock Tree)** 设置系统时钟源、PLL 分频系数以达到预期的主频,确保系统运行效率。 3. **启用 FreeRTOS 支持** 在中间件(Middleware)选项中勾选 FreeRTOS,选择合适的调度策略(如抢占式或协作式)并设定堆栈大小。 4. **配置调试接口(如 SWD)** 启用调试端口以便后续使用 IDE 进行烧录与调试。 5. **生成代码** CubeMX 会自动生成包含初始化函数(`SystemClock_Config()`、`MX_FREERTOS_Init()`)和 HAL 驱动的工程框架。 ### 工程搭建与任务实现 生成的工程通常可导入至 STM32CubeIDE、Keil uVision 或 IAR Embedded Workbench 等开发环境中进行进一步开发。开发者可在 `main()` 函数中调用 `osKernelStart()` 启动 FreeRTOS 内核,并通过 `osThreadNew()` 创建多个任务函数,例如: ```c void StartDefaultTask(void *argument) { for(;;) { // 执行周期性操作,如 LED 闪烁或传感器读取 osDelay(1000); } } ``` 此外,开发者还可以利用 FreeRTOS 提供的队列(`osMessageQueueNew`)、互斥锁(`osMutexNew`)和事件组(`osEventFlagsNew`)等功能实现多任务间的数据交互与同步。 ### 示例:CubeMX 中启用 FreeRTOS 并创建两个任务 - 任务 A:每 500 毫秒切换一次 LED 状态。 - 任务 B:每 2000 毫秒打印日志信息到串口。 上述流程展示了如何通过 STM32CubeMX 快速搭建一个基于 FreeRTOS 的嵌入式工程,显著降低底层驱动开发难度,提升开发效率。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值