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.

[参考译文] CCS/SIMPLELINK-CC3220-SDK-HomeKit-PLUGIN:FreeRTOS 安装

Guru**** 2562120 points
Other Parts Discussed in Thread: CC3220SF, CC3220MOD, UNIFLASH

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/745457/ccs-simplelink-cc3220-sdk-homekit-plugin-freertos-installation

器件型号:SIMPLELINK-CC3220-SDK-HomeKit-PLUGIN

工具/软件:Code Composer Studio

大家好、我已下载 CCS 和 SimpleLink-CC3220-SDK 并将其安装到 C:\ti。  我还将 FreeRTOS 下载到 C:\ti\C:\ti\freeRTOSv10.1.1。  然后、我为 FreeRTOS_INSTALL_DIR 创建了项目密钥、该项目密钥根据 SDK 用户手册指向 C:\TO\C:\ti\FreeRTOSv10.1.1。  然后、我将 FREERTOS_Builds_CC3220SF_LAUNCHXL_RELEASE_CCS 导入到了我的工作区中。

(我第一次尝试包含 HomeKit 项目、但很快就卡在 FreeRTOS 项目上、而不是编译)

第一个错误是找不到 stdint.h  然后、我添加了 POSIX/FreeRTOS 目录的 include 目录。  然后、它抱怨找不到时间  我想我随后包括了 posix/CCS 目录。 然后、它抱怨了 stddef.h、stdbool.h 等。 然后、我在 ccs8目录中找到了 ti 编译器头文件、并将编译器指向该目录。   

现在,它告诉我它找不到 FreeRTOSconfig.h 文件,尽管它是*在项目中*。  我对 Eclipse 有些陌生、对 CCS 有些陌生。  噢、因为我喜欢培根、为什么 FreeRTOS 集成开包即用?  我出了什么问题?  

我在11.7.18上下载了*所有内容*,所以它是最新版本。

谢谢。

Chris

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、所以我强制它在项目目录中将其视为包含路径(默认情况下不会这样做?)。 然后、它抱怨找不到 portmacro.h 文件。 没问题、请将其指向便携/CCS/CARM-4F。 现在、它为我提供了以下内容:

    "C:\temp\{52FBB00E-3C4D-478C-A516-B7063E61A90F}"、错误! 在第187行:[E0002]指令只在 V7和 V6M0中可用
    DSB

    "C:\temp\{52FBB00E-3C4D-478C-A516-B7063E61A90F}"、错误! 第188行:[E0002]指令仅在 V7和 V6M0中可用
    ISB

    这种感觉是如此、开箱即用。 这是我缺少的一件简单的事情吗?

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

    您好 Chris、  

    [引用 user="Christopher Deckard74">然后,它抱怨找不到 portmacro.h 文件。 没问题、请将其指向便携/CCS/ARM-4F。[/QUERP]

     1.可移植/CCS/CARM-4F 位于何处? 请提供完整路径。  
    2. CC3200x 基于 ARM M4、而不是 M4F 架构。  

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

    我在 CC3220 FreeRTOS 页面上找到了以下内容:

    "注意:尽管 CC3220具有 ARM Cortex-M4内核、但它没有浮点单元(FPU)、因此使用了 FreeRTOS Cortex-M3端口。"

    然后、我指出了包含路径:
    C:\ti\freeRTOSv10.1.1\freertos\Source\portable\ccs\arm_cm3

    但结果相同。

    此外、我看到:
    "C:/ti/simplelink_cc32xx_sdk_2_30_00_05/source/ti/posix/freertos/clock.c、第46行:致命错误#1965:无法打开源文件"ti/drivers/ddl/hwip.h"

    "C:/ti/simplelink_cc32xx_sdk_2_30_00_05/source/ti/posix/freertos/memory.c "、第129行:错误#20:标识符"EOVERFLOW"未定义

    "C:/ti/simplelink_cc32xx_sdk_2_30_00_05/source/ti/posix/freertos/pthread_mutex.c "、第334行:错误#20:标识符"EFERTOS"未定义


    因此、SDK 文件具有硬编码的相对路径、这是可以的。 文件就在那里。 但编译器无法找到它们。 我似乎没有正确配置项目。 假设"开箱即用"项目将被正确配置、我是否错误? 我不太熟悉 Eclipse (除了模糊的痛苦记忆)--我是否禁止了安装? 还是安装只是模糊的?

    其他人是否能够下载->install->build 而不会出现任何问题?

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

    从 FreeRTOS 演示中复制某些路径后的当前配置屏幕截图(请参阅下面的屏幕截图)。  现在、它仅抱怨 ISB 和 DSB 指令。   

    下面是 FreeRTOS CC3220演示配置(构建良好)的屏幕截图:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、那么 FreeRTOS_Builds_CC3220SF_LAUNCHXL_RELEASE 项目完全未配置。 处理器设置为 v4。 我将其更改为 v7M、它消除了 ISB 和 DSB 错误(尽管我没有将 vflib 指定为浮点支持的选项、但我们稍后将刻录该桥)。

    但现在它无法找到各种类型。 这显然是一场永无休止的战斗。

    为什么未正确配置 FreeRTOS_Builds_CC3220SF_LAUNCHXL_RELEASE? 有人能回答这个问题吗? 我将继续挖掘。 。 。

    Chris
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、所以我确实意识到 FreeRTOS 项目仅是"发布"项目(无调试配置)。 sw33t! 我只需更改我的构建配置即可发布!

    哦、等一下、该配置也是完全空白的。 。 。

    将继续挖掘。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的。 出于绝望、我在 OS x 和 Viola 下尝试了 CCS、它实际上编译了 FreeRTOS 示例。 很好。 也许它就像咀嚼窗口一样简单(如此多的问题通过这种方式得到解决)。 我可以安装 HomeKit SDK。 然后是 AWS SDK --哦,没有 OS X 安装程序。 这将导致问题。

    让我们再次尝试重新安装 Windows 安装程序。 重新安装似乎可以解决很多 Windows 问题。 不。 现在、我在新安装中遇到92个类型缺失错误。 例如:

    "C:/ti/simplelink_cc32xx_sdk_2_30_00_05/kernel/freertos/dpl/DebugP_freertos.c、第61行:错误#20:标识符"uintptr_t"未定义
    "C:/ti/simplelink_cc32xx_sdk_2_30_00_05/kernel/freertos/dpl/DebugP_freertos.c、第69行:错误#20:标识符"uintptr_t"未定义
    "C:/ti/simplelink_cc32xx_sdk_2_30_00_05/kernel/freertos/dpl/DebugP_freertos.c、第69行:错误#20:标识符"uintptr_t"未定义
    "C:/ti/simplelink_cc32xx_sdk_2_30_00_05/kernel/freertos/dpl/DebugP_freertos.c、第76行:错误#20:标识符"uintptr_t"未定义
    "C:/ti/simplelink_cc32xx_sdk_2_30_00_05/kernel/freertos/dpl/DebugP_freertos.c、第76行:错误#20:标识符"uintptr_t"未定义
    "C:/ti/simplelink_cc32xx_sdk_2_30_00_05/kernel/freertos/dpl/DebugP_freertos.c、第76行:错误#20:标识符"uintptr_t"未定义
    "C:/ti/simplelink_cc32xx_sdk_2_30_00_05/kernel/freertos/dpl/DebugP_freertos.c、第83行:错误#20:标识符"uintptr_t"未定义
    "C:/ti/simplelink_cc32xx_sdk_2_30_00_05/kernel/freertos/dpl/DebugP_freertos.c、第83行:错误#20:标识符"uintptr_t"未定义
    "C:/ti/simplelink_cc32xx_sdk_2_30_00_05/kernel/freertos/dpl/DebugP_freertos.c、第83行:错误#20:标识符"uintptr_t"未定义
    "C:/ti/simplelink_cc32xx_sdk_2_30_00_05/kernel/freertos/dpl/DebugP_freertos.c、第83行:错误#20:标识符"uintptr_t"未定义

    哦、它将在哪里结束呢? 哦,simplelink,你会是这样的。 。 。 简单。

    Chris
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    joys、FreeRTOS_builds。 。 。 实际构建的项目。 事实上、编译器包含目录中有一个1990年的包含文件、而 POSIX 目录中有一个包含文件。 我必须将 POSIX 目录的搜索路径移动到编译器目录的上方。 当然! 啊!

    现在、我们将看到我们是否可以构建 network_terminal 示例。



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

    好的、对于主网络终端项目、我必须将编译器包含路径移到顶部、然后进行编译。  哇!  只需20个小时即可到达此点。 当时我可以配送3种产品。

    全新安装似乎有所帮助。

    总之、为什么 CCS 的编译设置不确定(我假设是这样)?  我是否必须使用我导入到 CCS 中的每个项目的 include 设置进行调整?  

    我希望这是一个 Eclipse 问题。  只有编码器为编码器编写的软件才能如此奇妙!

    谢谢、

    Chris

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

    [引用 user="Christopher Deckard74"]然后我将 FreeRTOS_builds_CC3220SF_LAUNCHXL_RELEASE_CCS 导入到了我的工作区中。

    此项目位于何处?
    我找不到。  
    您能否提供完整的路径?

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

    大家好、Tom、下面是一些背景信息:

    在 MBP 上运行 win10 (在 bootcamp 下)

    我下载并安装了(截至2018年10月11日的所有最新版本)以下内容到 C:\ti

    CCS8 (Windows 安装程序、在线安装程序)

    CC3220 SDK

    此处为 FreeRTOS v10.1.1:

    FreeRTOS 安装在 C:\FreeRTOSv10.1.1下

    我还从此处下载了 AWS SDK:

    HomeKit SDK 从 TI 网站上的秘密位置下载。

    您可以在附加的图像中看到我的目录。

    ----

    当您导入任何 FreeRTOS 项目时、它们应将 FreeRTOS_BUILD 项目与它们一同导入。  如果不是、请点击此处:

    C:\ti\simplelink_cc32xx_sdk_2_30_00_05\kernel\freertos\builds\CC3220SF_LAUNCHXL_release\ccs

    请务必注意您的评估板类型和 IDE 类型。

    ----

    我现在构建了 FreeRTOS_Build 和 network_terminal 项目。  更大胆地说、我想尝试 AWS SDK 项目。  不。  首先、我将编译器 include 移到了 include 搜索设置中列表顶部。  现在、我遇到这个错误:

    >>编译失败

    subdir_rules.mk:9:目标'timer.obj'的配方失败

    "./timer.c"、第22行:错误#71:不允许不完整类型

    "./timer.c"、第27行:警告#225-D:隐式声明函数"clock_gettime"

    "../timer.c"、第27行:错误#20:标识符"clock_monotonic"未定义

    "./timer.c"、第53行:错误#71:不允许不完整类型

    "./timer.c"、第60行:警告#225-D:隐式声明函数"clock_gettime"

    "./timer.c"、第60行:错误#20:标识符"clock_monotonic"未定义

    在编译"./timer.c"时检测到4个错误。

    其中一些是熟悉的、但"不完整类型"错误对我来说是一个新错误。  所以,我将深入研究这个问题,并将其分类为“依赖地狱”。

    Tom、您是否可以访问将这些 SDK 版本整合在一起的团队?  为什么在我安装它们时它们会损坏?  这有点微不足道--只是包括路径配置--但我需要花费几个小时和几个小时来解决这个问题。  我是唯一遇到这种情况的人吗?

    感谢你的帮助。

    Chris

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

    为了涵盖所有基础、当您安装 FreeRTOS 时、您是否按照我们的入门指南中的说明正确链接了 FreeRTOS?

    www.ti.com/.../swru461b.pdf
    第1.8.2节

    此致、
    VR
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的,这是与 time.h 相关的同一个问题--有两个 time.h 文件--一个在编译器包含目录中,一个在 POSIX 目录中。 在这种情况下(对于 AWS SDK)、POSIX 是所需的、因此 POSIX include 需要先于编译器 include。

    也许 TI 发布团队可以研究 Gerrit 或类似的东西?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Chris、
    clock_monotonic 在此处定义:C:\ti\simplelink_cc32xx_sdk_2_30_00_05\source\ti\posix\gcc\time.h
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Chris、
    clock_gettime 实现、此处为 C:\ti\simplelink_cc32xx_sdk_2_30_00_05\source\ti\posix\freertos\clock.c
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Chris、
    您尝试编译哪个示例?
    请提供完整路径。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Vincent、您好、我正在使用此页面上的说明:
    www.ti.com/.../launchcc3220modasf

    具体而言:
    www.ti.com/.../swru473a.pdf


    www.ti.com/.../swru512.pdf

    (我使用的 Launchpad 上装有 CC3220MOD、因为我计划在我的设计中使用经 FCC 认证的模块)

    您链接到的文件中的指令似乎略有不同。 具体而言、说明中提到了 FreeRTOS9。 我正在使用 FreeRTOS 10。 不过、我认为这不是问题。 我发现我一直都得到 UNDEF 类型错误。 要解决此问题、我必须转到构建设置、并将编译器包含项从列表底部移到顶部。

    但是、现在我要在 pthread.c 行393中点击 configASBERT:
    状态= xTaskCreate (((TaskFunc_t)_pthread_runStub、NULL /* name *、
    ((uint16_t) pAttr->stacksize)/ sizeof (portSTACK_type)、
    (void *) thread、pAttr->priority、&(thread->freeRTOSTask);

    taskCreate 函数(实际上是子函数)在任务名称上有一个 configASBERT、其中 pthread 将其设置为 NULL、如上所示。 您知道这一点吗?

    Chris
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、Tom、对于所有这些器件来说、基本上是相同的。 我发现解决方案是在构建设置下重新排列包含搜索顺序。 我不知道为什么开箱即用不正确。 无论如何、我现在只是尝试成功调试开箱即用演示。 可在此处找到:

    C:\ti\simplelink_cc32xx_sdk_2_30_00_05\examples\rtos\CC3220SF_LAUNCHXL\demos\out_for_box\freertos\ccs

    我可以使用 Uniflash 对其进行编程。 我将映像设置为"开发"、以便可以通过 JTAG 进行连接。 奇怪的是、它会运行(或者至少我得到闪烁的 LED)、但如果我尝试进行调试、它会在 CONFIGASERT 上挂起(请参阅上面的注释)。 我假设有一个开关、这样它会忽略断言、除非它被调试、但我还不清楚这种机制。

    Chris
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    BTW、我将 NULL 替换为"foo"、似乎调试并运行正常。

    我对这个平台(~4天)已经足够陌生了,我仍然在对它所需的黑客数量进行直观的判断。 。 。

    Chris
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很高兴你这么做了。
    TI-RTOS 示例的性能非常好。
    将此问题标记为已解决。