下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

内核
最新资讯
简化任何设备的身份验证云连接。
利用 CoAP 设计节能型云连接 IoT 解决方案。
11.0.0 版 FreeRTOS 内核简介:
FreeRTOS 路线图和代码贡献流程。
使用 FreeRTOS 实现 OPC-UA over TSN。

uxTaskGetStackHighWaterMark
uxTaskGetStackHighWaterMark2
[任务控制]

task. h
UBaseType_t uxTaskGetStackHighWaterMark ( TaskHandle_t xTask ); configSTACK_DEPTH_TYPE uxTaskGetStackHighWaterMark2 ( TaskHandle_t xTask );

必须将 INCLUDE_uxTaskGetStackHighWaterMark 定义为 1,uxTaskGetStackHighWaterMark 函数才可用,并且 必须将 INCLUDE_uxTaskGetStackHighWaterMark2 定义为 1,uxTaskGetStackHighWaterMark2 函数才可用。详情请参阅 RTOS 配置文档。

uxTaskGetStackHighWaterMark2() 是 uxTaskGetStackHighWaterMark() 的一个版本, 后者返回用户可定义的类型,以删除 8 位架构上 UBaseType_t 类型的数据类型宽度限制。

随着任务的执行和中断的处理,任务使用的堆栈会增加和缩小。 uxTaskGetStackHighWaterMark() 返回自任务开始执行 以来任务可用的最小剩余堆栈空间量, 即当任务堆栈处于最大(最深)值时未使用的堆栈量。 这就是所谓的堆栈“高水位线”。

参数:
xTask 正在查询的任务的句柄。 任务可以通过传递 NULL 作为 xTask 参数来查询自己的高水位标记。

返回:
返回的值是以字为单位的高水位标记(例如,在 32 位计算机上,返回值为 1 表示有 4 个字节的堆栈未使用)。 如果返回值为零,则任务可能已溢出堆栈。 如果返回值接近于零,则任务已接近堆栈溢出。
用法示例:

    void vTask1( void * pvParameters )
    {
    UBaseType_t uxHighWaterMark;

        /* Inspect our own high water mark on entering the task. */
        uxHighWaterMark = uxTaskGetStackHighWaterMark( NULL );

        for( ;; )
        {
            /* Call any function. */
            vTaskDelay( 1000 );

            /* Calling the function will have used some stack space, we would 
            therefore now expect uxTaskGetStackHighWaterMark() to return a 
            value lower than when it was called on entering the task. */
            uxHighWaterMark = uxTaskGetStackHighWaterMark( NULL );
        }
    }






Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.