This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] SK-AM62P-LP:FreeRTOS vTaskDelayUntil 存在问题

Guru**** 2481465 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1456539/sk-am62p-lp-issue-with-freertos-vtaskdelayuntil

器件型号:SK-AM62P-LP

工具与软件:

尊敬的专家:

我希望任务每1ms 周期性地运行一次、所以我使用了以下代码。

TickType_t xLastWakeTime;
    const TickType_t xFrequency = pdMS_TO_TICKS(1);
    // Initialise the xLastWakeTime variable with the current time.
    xLastWakeTime = xTaskGetTickCount();
    while(1)
    {
        if (gbShutdown == 1u)
        {
            break;
        }

        /*User code as per application*/

        vTaskDelayUntil( &xLastWakeTime, xFrequency );


    }


我不知道为什么会出现这个错误、您能帮我解决这个问题吗?
在搜索 task.c 文件时、我找到了一个 macro-guarded (#if (include_xTaskDelayUntil == 1))、但很遗憾、 在包含的头文件中没有找到该文件。


编译时收到的错误更可能出现在 make 文件中。





此致、
去巴希

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Debashis、您好!

    我正在查看您的问题,您可能希望在一两天内得到回复。

    此致、

    Anil。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Anil:
    我们正在等待您的回复。

    此致、
    去巴希

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Debashis、您好!

    主题专家本周及下周不在办公室。 因此、对该线程的响应将会延迟。 感谢您的耐心。

    同时、您能否向我们发送构建项目时出现的完整错误日志?

    此致、

    Tushar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Tushar:

    您能向我们发送构建项目时出现的完整错误日志吗?


    是的、我认为您是指控制台。

    **** Build of configuration Release for project ipc_rpmsg_echo_linux_am62px-sk_mcu-r5fss0-0_freertos_ti-arm-clang ****
    
    /home/debashis/ti/ccs1281/ccs/utils/bin/gmake -k -j 28 all -O 
     
    Building file: "../ipc_rpmsg_echo.c"
    Invoking: Arm Compiler
    "/home/debashis/ti/ccs1281/ccs/tools/compiler/ti-cgt-armllvm_3.2.2.LTS/bin/tiarmclang" -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -Os -I"/home/debashis/ti/ccs1281/ccs/tools/compiler/ti-cgt-armllvm_3.2.2.LTS/include/c" -I"/home/debashis/ti/mcu_plus_sdk_am62px_10_00_00_14/source" -I"/home/debashis/ti/mcu_plus_sdk_am62px_10_00_00_14/source/kernel/freertos/FreeRTOS-Kernel/include" -I"/home/debashis/ti/mcu_plus_sdk_am62px_10_00_00_14/source/kernel/freertos/portable/TI_ARM_CLANG/ARM_CR5F" -I"/home/debashis/ti/mcu_plus_sdk_am62px_10_00_00_14/source/kernel/freertos/config/am62px/r5f" -I"/home/debashis/ti/mcu_plus_sdk_am62px_10_00_00_14/examples/drivers/ipc/ipc_rpmsg_echo_linux" -DSOC_AM62PX -DENABLE_MCU_ONLY_LPM -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MP -MF"ipc_rpmsg_echo.d_raw" -MT"ipc_rpmsg_echo.o" -I"/home/debashis/workspace_trail/ipc_rpmsg_echo_linux_am62px-sk_mcu-r5fss0-0_freertos_ti-arm-clang/Release/syscfg"   -o"ipc_rpmsg_echo.o" "../ipc_rpmsg_echo.c"
    ../ipc_rpmsg_echo.c:519:66: warning: passing 'volatile MCSPI_Transaction *' to parameter of type 'MCSPI_Transaction *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
            transferOK = MCSPI_transfer(gMcspiHandle[CONFIG_MCSPI0], &spiTransaction);
                                                                     ^~~~~~~~~~~~~~~
    /home/debashis/ti/mcu_plus_sdk_am62px_10_00_00_14/source/drivers/mcspi/v0/mcspi.h:760:64: note: passing argument to parameter 'transaction' here
    int32_t MCSPI_transfer(MCSPI_Handle handle, MCSPI_Transaction *transaction);
                                                                   ^
    1 warning generated.
    Finished building: "../ipc_rpmsg_echo.c"
     
    Building target: "ipc_rpmsg_echo_linux_am62px-sk_mcu-r5fss0-0_freertos_ti-arm-clang.out"
    Invoking: Arm Linker
    "/home/debashis/ti/ccs1281/ccs/tools/compiler/ti-cgt-armllvm_3.2.2.LTS/bin/tiarmclang" -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -Os -DSOC_AM62PX -DENABLE_MCU_ONLY_LPM -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -Wl,-m"ipc_rpmsg_echo_linux.Release.map" -Wl,-i"/home/debashis/ti/mcu_plus_sdk_am62px_10_00_00_14/source/kernel/freertos/lib" -Wl,-i"/home/debashis/ti/mcu_plus_sdk_am62px_10_00_00_14/source/drivers/lib" -Wl,-i"/home/debashis/ti/mcu_plus_sdk_am62px_10_00_00_14/source/board/lib" -Wl,-i"/home/debashis/ti/ccs1281/ccs/tools/compiler/ti-cgt-armllvm_3.2.2.LTS/lib" -Wl,--priority -Wl,--reread_libs -Wl,--diag_suppress=10063 -Wl,--diag_wrap=off -Wl,--display_error_number -Wl,--warn_sections -Wl,--xml_link_info="ipc_rpmsg_echo_linux_am62px-sk_mcu-r5fss0-0_freertos_ti-arm-clang_linkInfo.xml" -Wl,--ram_model -o "ipc_rpmsg_echo_linux_am62px-sk_mcu-r5fss0-0_freertos_ti-arm-clang.out" "./syscfg/ti_dpl_config.o" "./syscfg/ti_drivers_config.o" "./syscfg/ti_drivers_open_close.o" "./syscfg/ti_pinmux_config.o" "./syscfg/ti_power_clock_config.o" "./syscfg/ti_board_config.o" "./syscfg/ti_board_open_close.o" "./syscfg/ti_enet_config.o" "./syscfg/ti_enet_open_close.o" "./syscfg/ti_enet_soc.o" "./syscfg/ti_enet_lwipif.o" "./ipc_rpmsg_echo.o" "./main.o" "../linker.cmd"  -Wl,-lfreertos.am62px.r5f.ti-arm-clang.release.lib -Wl,-ldrivers.am62px.mcu-r5f.ti-arm-clang.release.lib -Wl,-lboard.am62px.r5f.ti-arm-clang.release.lib -Wl,-llibc.a -Wl,-llibsysbm.a 
    makefile:149: recipe for target 'ipc_rpmsg_echo_linux_am62px-sk_mcu-r5fss0-0_freertos_ti-arm-clang.out' failed
     
     undefined       first referenced  
      symbol             in file       
     ---------       ----------------  
     xTaskDelayUntil ./ipc_rpmsg_echo.o
     
    error #10234-D: unresolved symbols remain
    error #10010: errors encountered during linking; "ipc_rpmsg_echo_linux_am62px-sk_mcu-r5fss0-0_freertos_ti-arm-clang.out" not built
    tiarmclang: error: tiarmlnk command failed with exit code 1 (use -v to see invocation)
    gmake[1]: *** [ipc_rpmsg_echo_linux_am62px-sk_mcu-r5fss0-0_freertos_ti-arm-clang.out] Error 1
    gmake: *** [all] Error 2
    makefile:145: recipe for target 'all' failed
    
    **** Build Finished ****


    此致、
    去巴希

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Debashis、您好!

    感谢您分享上述详细信息。

    请将以下宏定义添加到 FreeRTOSConfig.h 文件的链接 ${MCU+SDK}/source/kernel/freertos/config/am62px/r5f .

    请参阅下图。

    添加宏定义后、请重新编译库。 从 MCU+SDK 的根目录运行以下命令。

    cd source/kernel/freertos/
    
    gmake -s -f makefile.am62px.r5f.ti-arm-clang PROFILE=debug clean
    gmake -s -f makefile.am62px.r5f.ti-arm-clang PROFILE=release clean
    
    gmake -s -f makefile.am62px.r5f.ti-arm-clang PROFILE=debug 
    gmake -s -f makefile.am62px.r5f.ti-arm-clang PROFILE=release 

    在构建库之后、重新编译示例项目。 您现在将能够正确构建它。

    请告知我们上述解决方案是否有效。

    此致、

    Tushar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Tushar:

    感谢您的支持。 现在运转正常。 我已经尝试过、但如您所说、我不知道内部版本。
    当我看到 tasks.c 文件时、我会看到这个宏对其进行了保护、但我不知道我们必须构建它。 如果有关于 RTOS 的更多信息、您可以共享任何文档吗? 它能帮我解决问题。

    此致、
    去巴希

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Debashis、您好!

    感谢以上确认。

      有关详细信息、请参阅/kernel_freertos_important_guidelines。 如果在 MCU+SDK 源中进行任何更改、则需要构建库以进行更改。

      有关详细信息、请参阅将 SDK 与 makefile 配合使用。

    此致、

    Tushar

    请参阅