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.

[参考译文] RTOS/TM4C1290NCPDT:WolfSSL 的替代解决方案

Guru**** 2546930 points
Other Parts Discussed in Thread: TM4C1294KCPDT, SYSBIOS

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/821108/rtos-tm4c1290ncpdt-alternate-solution-for-wolfssl

器件型号:TM4C1290NCPDT
主题中讨论的其他器件:TM4C1294KCPDTSYSBIOS

工具/软件:TI-RTOS

您好!

我正在使用 wolfSSL 处理 TI_RTOS 示例。

是否有任何其他 SSL 库可与 TI-RTOS 一起使用、而不是 wolfSSL 等其他库?

如果是、是否有任何示例?

谢谢你。

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

    Deepak、您好!

    对于 MSP432E4和 SimpleLinkSDK、我们使用 mbedtls。 您可以在 以下位置下载 SDK:https://www.ti.com/tool/download/SIMPLELINK-MSP432E4-SDK。 其中有几个示例。 注意:具有 SimpleLink SDK 的 NDK 比用于 TivaC 的 TI-RTOS 更新、因此可能需要进行一些调整、但一般概念是相同的。

    Todd

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

    您好 Todd、

    我想知道是否有任何用户指南可以将 mbedtls 导入到现有的 TI 项目中。

    我在 SimpleLinkSDK 中浏览了 https://get 示例、但没有具体说明如何构建 mbedtls 以及如何将其添加到工程中。

    我是否可以将其用作参考?

    谢谢你。

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

    Deepak、您好!

    请查看 tcpechatls 示例。

    此示例在安全套接字上创建 TCP 回显服务器。

    SimpleLink SDK 中网络应用的一个新方面是,它们使用称为 SlNetSock (实际上是 SlNet* API)的模块进行接口设置。

    如果您在 tcpEchoHooks.c 中的 netIPAddrHook()函数中查看这些初始化调用。 TCP 回显服务器线程也是从此处创建的。

    在服务器代码中创建和初始化套接字时、会进行 SSL/TLS 设置。 您可以在文件 tcpEchoTLS.c 的函数 tcpHandler 中找到该文件。 在这里,您将找到更多设置安全套接字和证书的 SlNet*()调用。

    Steve

    P.S. 有关 SlNetSock API 的文档、请参阅 SDK 文档目录下的 NS_API_Reference.html

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

    您好、Steve、

    我有一个使用 TI-RTOS 的基于 HTTPS POST 的项目、我使用 wolfSSl 发布到服务器。 我让它工作。

    现在、我尝试用 mbedTLS 替换 wolfSSL。 为了将 wolfSSl 添加到项目中、我们提供了有关如何构建 wolfSSl 以及如何将其添加到项目中的适当文档。

    但有了 mbed,我就没有任何东西可以把它添加到项目中。  

    项目中已存在套接字接口和线程创建。  

    我需要一种将 mbedTSL 添加到 TIvaC 系列的方法。 我使用的是带 TM4C1294KCPDT 的定制板。

    此致、

    Deepak

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

    您好 Todd、

    有人可以帮助我解决这个问题吗?

    我正在尝试将 mbedTLS 代替 wolfSSL、并将 TI-RTOS 用于 TM4C129NCPDT Tiva C 系列。 我没有找到任何与它相关的东西。

    我浏览 了 SimpleLinkSDK、没有任何帮助、因为没有有关构建和使用 Mbed 的说明。

    如果我删除 wolfSSl、TI_RTOS 项目仍会保留这些变量和文件。 我不知道要删除哪些文件并替换为什么文件?

    是否有办法实现这一目标?

    此致、

    Deepak

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

    Deepak、您好!

    您需要自己从网络上获取 mbedTLS: https://github.com/ARMmbed/mbedtls。 这里提供了有关如何使用它的说明。

    对于适用于 MSP432E4 SDK 的 SimpleLink、我们更新了 NDK 以处理大多数 mbedTLS 设置。 您不能将该 NDK 版本与 TI-RTOS 一起用于 TivaC、但可以使用 simplelink_msp432e4_SDK_ sources\ti\ndk\slnetif\slnetifndk.c 文件作为参考(以及来自开源网站的 mbedTLS 文档)。

    Todd

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

    您好 Todd、

    我已经从网站下载了 mbedTLS 并浏览了这些文档。

    我的问题是针对 Tiva C 的 TI-RTOS NDK。 网络服务1.11.00.10有很多文件依赖于 wolfSSL。  

    tirtos_tivac_2_16_01_14\products\ns_1_11_00_10\packages/ti\net\lib 和 tirtos_tivac_2_16_01_14\products\ns_1_11_00_10\packages\ti\net\http\lib  

    有许多.mak 文件引用 wolfsl。 您能告诉我哪些文件需要删除、哪些文件需要更改以便我可以使用 mbed 吗?

    我很抱歉提出这么多问题。 我对这很陌生、对此我不知道。

    此致、

    Deepak

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

    Deepak、

    遗憾的是、我们没有可用的资源来帮助您解决这一问题。 如果您使用 mbedtls、我不会在 TI-RTOS 中使用网络服务。 我会将 SimpleLink SDK 中的网络服务作为参考。

    我意识到我们并不是真正为您提供答案、但我将其标记为 TI 认为已解决、因为从 TI 的角度来看、我们无法完成任何其他工作。

    Todd

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

    您好 Todd、

    我正在努力实现这一目标、在您的帖子的帮助下、我正在朝着正确的方向移动、但我遇到了总线故障错误。

    使用 slnettifndk.c 文件、我已在 http 示例中添加了熵源代码、但当我尝试使用 mbedtls_CTR_drbg_seed 时、我收到错误消息。

    硬故障:强制:BUSFAULT:PRECISERR.Data Access 错误。 地址= 0xcf6c6c77

    我正在尝试找到原因、但我无法找到原因。 您对此有什么想法吗?

    我还附加了 ROV 的图像。

    此致、

    Deepak

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

    在异常视图中有调用堆栈。 您需要设置一些断点并找出导致异常的原因。

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

    您好 Todd、

    我确实使用了断点、我可以看到 CTR_drbg 中的 int mbedtls_CTR_drbg_resedeed()函数导致了该压缩。

    if (0!= ctx->f_entropy (ctx->p_entropy、seed、
    ctx->entropy_len ))

    return (MBEDTLS_ERR_CTRL_DRBG_entropy_source_FAILED);

    这是为我提供该异常的代码行。

    将光标悬停在 ctx 上时、我可以看到 p_entropy 没有加载。 这是否是导致该总线故障的原因?

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

    P_entropy 定义为 void *、因此不能在表达式浏览器中对其进行解码(请注意"类型"列中的"void *")。 您需要相应地进行转换或在内存浏览器中查看。  

    Todd

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

    您好 Todd、

    我使用了"Disassembly"单步执行代码、我可以看到 pthread_mutex_lock 函数导致了此错误。

    对于该项目、我使用 了"C:\ti\simplelink_msp432e4_sdk_3_20_00_10\source\third_party\mbettls\ti\ccs\m4f\mbedtls.a"链接器文件将 mbedTLS 链接到我的项目。 当我尝试构建我的项目时、我遇到了 pthread 互斥量函数的未定义 sybol 错误、我在 TI 网站上查找并将这两行添加到我的.cfg 文件中

    VAR 设置= xdc.useModule('ti.sysbios.posix.Settings');
    settings.supportsMutexPriority = true;

    添加这些行后、我成功构建了我的项目。  

    但仍然是 由于 pthread_mutex_lock 函数、我收到异常错误。  

    我是否需要更改.cfg 文件中的某些内容或添加或删除某些内容?

    我要在这里附加.cfg 文件。

    /*
    *版权所有(c) 2015-2016、德州仪器(TI)公司
    *保留所有权利。
    *
    *以源代码和二进制形式重新分发和使用、有无
    *如果满足以下条件、则允许进行修改
    符合*:
    *
    **源代码的重新分发必须保留上述版权
    *注意、此条件列表和以下免责声明。
    *
    **二进制形式的再发行必须复制上述版权
    *请注意、中的此条件列表和以下免责声明
    *随分发提供的文档和/或其他材料。
    *
    **德州仪器公司的名称和名称均不相同
    *其贡献者可用于认可或推广衍生产品
    *未经特定的事先书面许可。
    *
    *本软件由版权所有者和贡献者"按原样"提供
    *以及任何明示或暗示的保证、包括但不限于:
    *特定适销性和适用性的隐含保证
    *不承认目的。 在任何情况下、版权所有者不得或
    *派遣国应对任何直接、间接、偶然、特殊、
    *典型或必然的损害(包括但不限于
    *采购替代货物或服务;丧失使用、数据或利润;
    *或业务中断)、无论原因是什么以及任何责任理论、
    *无论是合同、严格责任还是侵权行为(包括疏忽或)
    *否则)因使用本软件而以任何方式产生、
    *即使被告知可能会发生此类损坏。
    *

    /*========================= 时钟配置======================== *
    VAR 时钟= xdc.useModule('ti.sysbios.knl.Clock');
    /*
    *默认值取决于系列。 例如、Linux 系统通常只能使用
    *支持的最小周期为10000us、倍数为10000us。
    * TI 平台的默认值为1000us。
    *
    clock.tickPeriod = 1000;

    /*========================= 默认值(模块)配置=================== *
    VAR 默认值= xdc.useModule('xdc.runtime.Defaults');
    /*
    *允许在目标上加载模块名称的标志。 模块名称
    出于调试目的、*字符串放置在.const 段中。
    *
    *选择一项:
    *- true (默认值)
    *将此参数设置为 true 将在.const 中包含名称字符串
    *部分、以便更轻松地调试错误和断言。
    *-错
    *将此参数设置为 false 将减小.const 中的占用空间
    *部分。 因此、错误和断言消息将包含
    *"未知模块"前缀、而不是实际的模块名称。
    *
    Defaults.common$.namedModule = true;
    //Defaults.common$.namedModule = false;

    /*========================= 错误配置=================== *
    VAR 错误= xdc.useModule('xdc.runtime.Error');
    /*
    *调用此函数是为了处理所有产生的错误,但与不同
    * Error.raiseHook、此函数负责完全处理
    带有适当初始化的 Error_Block 的*错误。
    *
    *选择一项:
    *- Error.policyDefault (默认值)
    *使用已初始化的 Error_Block 结构和日志调用 Error.raiseHook
    *使用模块的记录器时出错。
    *- Error.PolicySpin
    *在 while (1)循环中捕获以最小化目标的简单替代方案
    *占用空间。
    *使用 Error.PolicySpin 时,将不会调用 Error.raiseHook。
    *
    error.policyFxn =错误。policyDefault;
    //Error.PolicyFxn = Error.PolicySpin;

    /*
    *如果 Error.policyFxn 设置为 Error.policyDefault,则调用此函数
    *每当错误模块引起错误时。
    *
    *选择一项:
    *- Error.print (默认值)
    *为方便,错误通过 System_printf()进行格式化和输出
    *调试。
    *-空
    *错误未格式化或记录。 此选项减少了代码占用空间。
    *-非空函数
    *错误调用自定义用户函数。 请参阅错误模块文档
    *以了解更多详细信息。
    *
    error.raiseHook =错误。打印;
    //Error.raiseHook =空;
    //Error.raiseHook ="&myErrorFxn";

    /*
    *如果 Error.policyFxn 设置为 Error.policyDefault,则此选项适用于
    * Error.raiseHook 函数可递归的最大次数
    *已调用。 此选项限制无限递归的可能性
    *可能导致堆栈溢出。
    *默认值为16。
    *
    error.maxDepth = 2;

    /*========================= Hwi 配置=================== *
    var halHwi = xdc.useModule('ti.sysbios.hal.Hwi');
    var m3Hwi = xdc.useModule('ti.sysbios.family.arm.m3.Hwi');
    /*
    *在空闲循环中检查 Hwi (系统)堆栈溢出。
    *
    *选择一项:
    *- true (默认值)
    *检查系统堆栈在空闲循环期间溢出的顶字和
    *如果检测到一个错误,则会发出一个错误。
    *-错
    *禁用运行时检查可提高运行时性能并得到
    *减小了闪存尺寸。
    *
    halHwi.initStackFlag = true;
    halHwi.checkStackFlag = true;
    //halHwi.checkStackFlag = false;

    /*
    *以下选项会在发生硬件异常时改变系统的行为
    检测到*。
    *
    *选择一项:
    *- Hwi.enableException = true
    *此选项会使默认的 m3Hwi.excHandlerFunc 函数完全启用
    *解码异常并将寄存器转储到系统控制台。
    *此选项会在错误模块中引发错误并显示
    * ROV 中出现异常。
    *- Hwi.enableException = false
    *此选项通过不解码或打印来减少代码占用空间
    *系统控制台异常。
    但是、它仍会在错误模块中引发错误并显示
    * ROV 中出现异常。
    *- Hwi.exHandlerFunc =空
    *这是节省代码空间的最积极的选择;但它是最有效的选择
    *很难调试异常。 它将闪存占用空间减小了
    *发生异常时插入默认 while (1)陷阱。 此选项
    *不会引起错误模块的错误。
    *
    m3Hwi.enableException = true;
    //m3Hwi.enableException = false;
    //m3Hwi.exHandlerFunc =空;

    /*
    *在除以0时启用硬件异常生成。
    *
    *选择一项:
    *- 0 (默认值)
    *在除以0时禁用硬件异常
    *- 1.
    *除以0时启用硬件异常
    *
    m3Hwi.nvicCCR.DIV_0_TRP = 0;
    //m3Hwi.nvicCCR.DIV_0_TRP = 1;

    /*
    *为无效数据对齐启用硬件异常生成。
    *
    *选择一项:
    *- 0 (默认值)
    *禁用数据对齐的硬件异常
    *- 1.
    *为数据对齐启用硬件异常
    *
    m3Hwi.nvicCCR.UNALIGN_TRP = 0;
    //m3Hwi.nvicCCR.UNALIGN_TRP = 1;

    /*========================= 空闲配置========================= *
    VAR 空闲= xdc.useModule('ti.sysbios.knl.Idle');
    /*
    *空闲模块用于指定在无时要调用的函数列表
    *系统中正在运行其他任务。
    *
    *此处添加的函数将在空闲任务内连续运行。
    *
    *函数签名:
    * void func (void);
    *
    //idleFunc ("&myIdleFunc");

    /*========================= 内核(SYS/BIOS)配置=================== *
    VAR BIOS = xdc.useModule('ti.sysbios.BIOS');
    /*
    *在 BIOS 库中启用断言。
    *
    *选择一项:
    *- true (默认值)
    *启用断言以进行调试。
    *-错
    *禁用断言以减小代码占用空间并提高性能。
    *
    //BIOS.assertsEnabled = true;
    BIOS.sertsEnabled = false;

    /*
    *为 BIOS 指定默认堆大小。
    *
    BIOS.heapSize = 131072;//20480

    BIOS.heapTrackEnabled = true;//DR 8/21/19

    /*
    *用于确定 xdc.runtime 源是否包含在自定义中的标志
    *构建的 BIOS 库。
    *
    *选择一项:
    *- false (默认值)
    *预构建的 xdc.runtime 库由相应的目标提供
    *用于构建应用程序。
    *-正确
    * xdc.runtime 库源代码将包含在自定义 BIOS 中
    *库。 此选项在两个代码中生成最高效的库
    *占用空间和运行时性能。
    *
    BIOS.includeXdcRuntime = false;
    //BIOS.includeXdcRuntime = true;

    /*
    * SYS/BIOS 运行时以链接的库的形式提供
    *与应用程序一起使用。 随提供了该库的几种形式
    * SYS/BIOS 产品。
    *
    *选择一项:
    *- BIOS.LibType_Custom
    *针对代码大小和进行了高度优化的定制构建库
    *运行时性能。
    *- BIOS.LibType_Debug
    *可用于的非优化自定义构建库
    *使用调试器单步执行 API。
    *
    *
    BIOS.libType = BIOS.LibType_Custom;
    //BIOS.libType = BIOS.LibType_Debug;

    /*
    *运行时实例创建使能标志。
    *
    *选择一项:
    *- true (默认值)
    *允许在运行时调用 Mod_create()和 Mod_delete ()
    *需要一个默认堆用于动态内存分配。
    *-错
    *通过禁止 Modo_create()和 Mod_delete ()来减少代码占用空间
    *在运行时调用。 对象实例是通过构建的
    * Mod_construct()并通过 Mod_析 构函数()析构。
    *
    BIOS.runtimeCreatesEnabled = true;
    //BIOS.runtimeCreatesEnabled = false;

    /*
    *在 BIOS 库中启用日志。
    *
    *选择一项:
    *- true (默认值)
    *启用日志以进行调试。
    *-错
    *禁用日志记录以减少代码占用空间并改善运行时间
    性能。
    *
    //BIOS.logsEnabled = true;
    BIOS.logsEnabled = false;

    /*========================= 内存配置=================== *
    VAR 内存= xdc.useModule('xdc.runtime.Memory');
    /*
    *内存模块本身只为任何一个提供一个通用接口
    *各种系统和应用特定的内存管理策略
    *由 IHeap 模块实现(例如、 HeapMem、HeapBuf)。
    *

    /*========================= 程序配置=================== *
    /*
    * IAR 会忽略 Program.stack。 使用中的项目选项
    * IAR Embedded Workbench 以更改系统堆栈大小。
    *
    if (!Program.build.target.$name.match (/IAR/)){
    /*
    *减小系统堆栈大小(由 ISR 和 Swi 使用)以减小
    * RAM 使用情况。
    *
    program.stack = 2048;

    /*
    *为 GNU 目标启用半主机功能以打印到 CCS 控制台
    *
    if (Program.build.target.$name.match (/GNU/)){
    VAR SemiHost = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');

    /*========================= 信标配置=================== *
    VAR 信标= xdc.useModule('ti.sysbios.knl.Semaphore');
    /*
    *启用对任务优先级挂起队列的全局支持。
    *
    *选择一项:
    *- true (默认值)
    *这允许根据任务优先级为待处理的任务提供服务。
    *-错
    *待处理任务是基于先入先出的服务。
    *
    *在 ROM 中使用 BIOS 时:
    *此选项必须设置为 false。
    *
    //semaphore.supportsPriority = true;
    Semaphore.supportsPriority = false;

    /*
    *允许通过信标隐式布置事件、
    *禁用以保存其他代码。
    *
    *选择一项:
    *-正确
    *这允许信标模块发布信标和事件
    *同步。
    *- false (默认值)
    *必须显式发布事件以解除阻止任务。
    *
    *
    //semaphore.supportsEvents = true;
    Semaphore.supportsEvents = false;

    VAR 设置= xdc.useModule('ti.sysbios.posix.Settings');
    settings.supportsMutexPriority = true;
    //Settings.supportsMutexPriority = false;

    /*========================= Swi 配置=================== *
    VAR Swi = xdc.useModule('ti.sysbios.knl.Swi');
    /*
    *软件中断是封装函数的对象
    *已执行且具有优先级。 软件中断被优先化、优先于任务
    和被硬件中断服务例程抢先。
    *
    *包括此模块是为了允许在用户的应用程序中使用 Swi。
    *

    /*========================= 系统配置=================== *
    VAR 系统= xdc.useModule('xdc.runtime.System');
    /*
    *当系统异常退出时调用中止处理程序。
    *
    *选择一项:
    *- System.AbortStd (默认)
    *调用 ANSI C 标准'abort()'来终止应用程序。
    *- System.abortSpin
    *在 while (1)陷阱中无限循环的轻量级中止函数
    *函数。
    *-自定义中止处理程序
    *用户定义的函数。 请参阅的系统模块说明文件
    *详细信息。
    *
    System.ABortFxn = System.ABortStd;
    //System.ABortFxn = System.ABortSpin;
    //System.AbortFxn ="&myAbortSystem";

    /*
    *系统正常退出时调用 Exit 处理程序。
    *
    *选择一项:
    *- System.exitStd (默认)
    *调用 ANSI C 标准'exit()'以终止应用程序。
    *- System.exitSpin
    *在 while (1)陷阱中无限循环的轻量级退出函数
    *函数。
    *-自定义退出函数
    *用户定义的函数。 请参阅的系统模块说明文件
    *详细信息。
    *
    System.exitFxn = System.exitStd;
    //System.exitFxn = System.exitSpin;
    //System.exitFxn ="&myExitSystem";

    /*
    *最小化系统模块中的退出处理程序数组。 系统模块包括
    *向 System_atexit()注册的函数数数组,即
    *由 System_exit()调用。 默认值为8。
    *
    System.maxAtexitHandlers = 2;

    /*
    * System.SupportProxy 定义了 System 的低级实现
    *诸如 System_printf()、System_flush()等函数
    *
    *选择一对:
    *- SysMin
    *此模块维护一个内部可配置的循环缓冲器
    *存储输出,直到调用 System_flush()。
    *循环缓冲区的大小通过 SysMin .bufSize 设置。
    *- SysCallback
    * SysCallback 允许系统 API 的用户定义实现。
    * SysCallback 支持代理的代码占用空间更小,可以是
    *用于提供定制 System_printf 服务。
    *默认的 SysCallback 函数指向存根函数。 请参阅
    * SysCallback 模块的文档。
    *
    VAR SysMin = xdc.useModule('xdc.runtime.SysMin');
    SYSMIN.bufSize = 128;
    System.SupportProxy = SysMin;
    //var SysCallback = xdc.useModule('xdc.runtime.SysCallback');
    //System.SupportProxy = SysCallback;
    //SysCallback.abortFxn ="&myUserAbort";
    //SysCallback.exitFxn ="&myUserExit";
    //SysCallback.flushFxn ="&myUserFlush";
    //SysCallback.putchFxn ="&myUserPutch";
    //SysCallback.readyFxn ="&myUserReady";


    /*========================= 任务配置=================== *
    VAR 任务= xdc.useModule('ti.sysbios.knl.Task');
    Task.initStackFlag = true;

    /*
    *检查任务堆栈是否有溢出情况。
    *
    *选择一项:
    *- true (默认值)
    *在期间启用任务堆栈溢出情况的运行时检查
    *上下文切换("从"和"到")
    *-错
    *禁用任务堆栈溢出情况的运行时检查。
    *
    Task.checkStackFlag = true;
    //Task.checkStackFlag = false;

    /*
    *设置创建任务时的默认任务堆栈大小。
    *
    *默认值取决于所使用的器件。 减少默认堆栈
    *大小可节省更多内存。
    *
    Task.defaultStackSize = 2048;

    /*
    *启用空闲任务。
    *
    *选择一项:
    *- true (默认值)
    *创建优先级为0的任务,调用空闲挂钩函数。 这种情况
    必须将*选项设置为 true 才能通过 Power 实现节能
    *模块。
    *-错
    *未创建空闲任务。 此选项占用的内存较少、因为没有
    *需要附加的默认任务堆栈。
    *要在没有空闲任务的情况下通过电源模块实现节能、
    *将 Idle.run 添加为 Task.allBlockedFunc。
    *
    task.enableIdleTask = true;
    //Task.enableIdleTask = false;
    //Task.allBlockedFunc = Idle.run;

    /*
    *如果 Task.enableIdleTask 设置为 true,则此选项设置空闲任务
    *堆栈大小。
    *
    *减小空闲堆栈大小可节省更多内存。
    *
    task.idleTaskStackSize = 512;

    /*
    *减少任务优先级的数量。
    *默认值为16。
    *减少任务优先级的数量可节省内存。
    *
    Task.numPriorities = 16;

    /*========================= 文本配置=================== *
    var text = xdc.useModule('xdc.runtime.Text');
    /*
    *这些字符串放置在.const 段中。 将此参数设置为
    * false 将在.const 段中节省空间。 错误、断言和记录消息
    *将打印原始 ID 和 args、而不是格式化的消息。
    *
    *选择一项:
    *- true (默认值)
    *此选项将测试字符串加载到.const 中以方便调试。
    *-错
    *此选项可减小.const 占用空间。
    *
    text.isLoaded = true;
    //text.isLoaded = false;

    /*========================= 类型配置=================== *
    VAR 类型= xdc.useModule('xdc.runtime.Types');
    /*
    *此模块定义了在中使用的基本常量和类型
    * xdc.runtime 软件包。
    *

    /*========================= TI-RTOS 中间件配置================= *
    var mwConfig = xdc.useModule('ti.mw.Config');
    /*
    *包括 TI-RTOS 中间件库
    *

    /*========================= TI-RTOS 驱动程序的配置==== *
    VAR driversConfig = xdc.useModule('ti.drivers.Config');
    /*
    *包含 TI-RTOS 驱动程序
    *
    *选择一项:
    *- driversConfig.LibType_NonInstrumented (默认)
    *使用针对封装和性能进行优化的 TI-RTOS 驱动程序库
    *无断言或日志。
    *- driversConfig.LibType_Instrumented
    *使用 TI-RTOS 驱动程序库在启用断言和日志的情况下进行调试。
    *
    driversConfig.libType = driversConfig.LibType_NonInstrumented;
    //driversConfig.libType = driversConfig.LibType_Instrumented;

    /*========================= 应用程序特定实例========================= *
    VAR 秒= xdc.useModule('ti.sysbios.hal.Seconds');
    VAR 时间戳= xdc.useModule('xdc.runtime.Timestamp');


    /*========================= NDK 配置=================== *
    VAR NDK = XDC.loadPackage ('ti.NDK.config');
    VAR Global = xdc.useModule('ti.ndk.config.Global');
    VAR TCP = xdc.useModule('ti.ndk.config.Tcp');

    global.ipv6 = false;
    global.stackLibType = Global. min;
    Global.networkIPAddrHook ="&netIPAddrHook";

    //自动调用 fdOpen/CloseSession 以执行套接字任务*/
    Global.autoOpenCloseFD = true;

    global.pktNumFrameBufs=10;
    global.memRawPageCount = 6;
    global.ndkThreadStackSize = 1536;
    global.lowTaskStackSize = 1280;
    Global.normTaskStackSize = 1024;
    global.highTaskStackSize = 1024;
    tcp.transmitBufSize = 1024;
    tcp.receiveBufSize = 1024;

    /*========================= HTTP 配置=================== *
    VAR HTTP = xdc.useModule('ti.net.http.Http');
    Http.networkStack = HTTP.NDK;

    /*========================= SNTP 配置======================== *
    VAR SNTP = xdc.useModule('ti.net.sntp.Sntp');
    Sntp.networkStack = SNTP;

    此致、

    Deepak