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/MSP432P401R:CCS 程序调试中存在问题

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/866472/ccs-msp432p401r-problem-in-ccs-program-debug

器件型号:MSP432P401R
Thread 中讨论的其他器件:SYSBIOS

工具/软件:Code Composer Studio

大家好、我叫 Vinay Sharma、现在正在 CCS 中学习编程。 我有 CCS 9_2版本和 SDK 2_30_00_14版本、但在我的计算机中存在问题。当我尝试调试 SDK 代码而不是生成此图像中显示的错误消息时、我将在出现此问题后发生什么、我可以在 show 中编辑我的要求 所有 SDK 文件

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

    Vinay、

    我看到 pwmled2_MSP_EXP432P401R 项目中有一个.cfg 文件。  您是否创建了该文件或将其复制到该文件中?  这是导致您出现问题的原因。  此项目取决于 tirtos_builds_MSP_EXP432P401R_release_ccs 项目。  该项目包含一个 release.cfg 文件。

    下面是导入该示例时的样子。

    在 Project Dependencies 部分中、我可以看到 pwmled2工程依赖于 tirtos_builds 工程。

    pwmled2工程中不应包含.cfg 文件。  tirtos_builds 工程中应包含 release.cfg。  tirtos_builds 工程包含 RTOS 配置。

    有关 SDK 的更多信息、请访问 :http://dev.ti.com/tirex/explore/node?a=AocYeEd__2.0.0&node=AHQwTS2nLodR7KivfmOhHg__z-lQYNj__LATEST&r=AocYeEd__LATEST&r=AocYeEd__1.0.0

    从工作区中删除这2个工程并再次导入示例可能是最简单的方法。

    此致、

    John

    此致、

    John

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

    Sir、我告诉我已经直接导入了您的项目 SDK、我没有更改此代码中的任何内容、但此代码会生成错误、因此现在我要执行的.cfg 文件我将会删除、告诉我成功运行此代码的过程  

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

    Vinay、

    MSP432P401的 pwmled2示例中没有.cfg 文件。  该文件已通过某种方式添加。  它具有的文件名是在工程中创建新的.cfg 文件时的默认文件名( .cfg。

    以下是我的建议。

    • 从您的工作区中删除 pwmled2_MSP_EXP432P401R_tirtos_ccs 和 tirtos_builds_MSP_EXP432P401R_release_ccs 项目。  您可以通过右键单击它们来执行此操作。  在上下文菜单中选择删除。  在对话框中,选择以从文件系统中删除内容。
    • 接下来、打开 Resource Explorer。
    • 浏览至 pwmled2示例。  MSP432P SDK 的最新版本为3.30、您之前提到过您正在使用2.30。  建议使用3.30。
    • 如果需要安装 SDK、您可以单击下载按钮进行安装。
    • 安装后、点击按钮将项目导入您的工作区
    • 完成此操作后、您的工作区中将有两个看起来像这样的项目。  pwmled2工程中不会有.cfg 文件
    • 我从2.30.00.014 SDK 导入了与您使用的内容相匹配的示例。  

    此致、

    John

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

    SIR 根据 您的建议、为 CCS 9.2版本下载 SDK simplelink_msp432p4_SDK_3_30_00_13、但问题相同。我尝试删除 从工作空间编程、然后从笔记本电脑的工作空间重新打开、而不是在该文件中创建问题 在我的笔记本电脑中、CCS AN SDK 的版本在删除打开同一文件后在我的笔记本电脑中正常工作 tirtos_builds_MSP_EXP432P401R_release_ccs 文件未随程序文件导入、这是我的问题之一、也是第二个问题 SDK 和 CCS 版本都可以在我的笔记本电脑中工作、但在我的 PC 中不工作、我已经在中介绍过 新屏幕简短描述

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

    此处.cfg 文件不再存在于您的应用程序工程中。  好极了。

    至于构建 tirtos_builds_MSP_EXP432P401R_release_ccs 项目时出现的问题、您可以复制控制台窗口的全部内容、以便我们可以看到发生的错误。  如果右键单击控制台视图,则可以选择“全选”。 然后执行 CTRL-C 将其复制到剪贴板。  然后、请粘贴该线程、以便我们可以看到正在发生的情况。  目前、我只能看到"由于早期错误而导致配置失败"、我需要看到早期错误才能知道发生了什么。

    John

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

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

    /*
    *==== empty.c ======
    *

    /* for usleep()*/
    #include
    #include
    #include

    /*驱动程序头文件*/
    #include
    //#include
    //#include
    //#include
    //#include

    /*驱动程序配置*/
    #include "ti_drivers_config.h"

    /*
    *==== mainThread ====
    *
    void * mainThread (void * arg0)

    /* 1秒延迟*/
    uint32_t 时间= 1;

    /*调用驱动程序初始化函数*/
    GPIO_init();
    // I2C_init ();
    // spi_init();
    // uart_init();
    // Watchdog_init();

    /*配置 LED 引脚*/
    GPIO_setConfig (CONFIG_GPIO_LED_0、GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW);

    /*打开用户 LED */
    GPIO_WRITE (CONFIG_GPIO_LED_0、CONFIG_GPIO_LED_ON);

    while (1){
    睡眠(时间);
    GPIO_TOGGLE (CONFIG_GPIO_LED_0);

    这是.cfg 文件

    /*
    *版权所有(c) 2015-2017、德州仪器(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.PolicyMin
    *执行最小处理和返回的轻量化策略函数。
    *
    //Error.policyFxn = Error.policyDefault;
    //Error.PolicyFxn = Error.PolicySpin;
    error.policyFxn =错误.policyMin;

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

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

    idle.addFunc ('&Power_idleFunc');//添加电源模块的 IDLE 函数*/

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

    /*
    *用于确定 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)。
    *

    /*
    *使用 HeapMem 主堆实例使用由链接器定义的存储器区域
    *在顶部添加 HeapTrack 以查找超额写入、无效释放和
    *帮助查找堆和内存泄漏的正确大小。
    *
    VAR HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
    HeapMem.primaryHeapBaseAddr ="&_primary_heap_start___";
    HeapMem.primaryHeapEndAddr ="&_primary_heap_end___";

    var heapMemParams = new HeapMem.Params();
    heapMemParams.usePrimaryHeap = true;

    //var HeapTrack = xdc.useModule('ti.sysbios.heaps.HeapTrack');
    //var heapTrackParams = new HeapTrack.Params;
    //heapTrackParams.heap = HeapMem.create (heapMemParams);
    //Program.global.heap0 = HeapTrack.create (heapTrackParams);
    program.global.heap0 = HeapMem.create (heapMemParams);

    Memory.defaultHeapInstance = Program.global.heap0;

    /*========================= 程序配置=================== *
    /*
    *必须将 Program.stack 设置为0才能进行设置
    要在示例中确定的系统堆栈大小*
    *链接器命令文件。
    *
    program.stack = 0;


    /*
    *取消注释以启用将 GNU 目标打印到 CCS 控制台的半主机功能。
    *请阅读以下 TIRTOS Wiki 页面以了解有关半主机的更多信息:
    * processors.wiki.ti.com/.../TI-RTOS_Examples_SemiHosting
    *

    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;

    /*========================= 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_printf()以显示浮点值。 使用较长的'%f%$L%$S%$F'
    *如果您的代码启用了 SYS/BIOS 指令插入(断言/错误/日志)、
    *这是'debug'配置文件的典型情况。
    *
    //System.extendedFormats ='%f%$L%$S%$F';
    System.extendedFormats ='%f%$S';

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

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

    /*
    *启用空闲任务。
    *
    *选择一项:
    *- 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 软件包。
    *

    /*========================= 应用程序特定实例========================= *

    /*========================= 诊断配置=================== *
    //var 诊断= xdc.useModule('xdc.runtime.Diags');
    /*
    *您可以使用诊断程序模块来设置和清除模块诊断程序中的位
    *掩码、用于控制该模块内的诊断。 A
    *模块诊断掩码控制 ASSERT 和 Log 语句
    *在该模块中、禁用这些语句将产生
    *代码节省。
    *

    /*========================= 日志记录配置=========== *
    //var Log = xdc.useModule('xdc.runtime.Log');
    /*
    *模块和应用程序代码通过调用生成 Log_Event 事件
    *日志模块的功能。
    *禁用此处的所有 Log 语句将允许优化器完全执行
    *从应用程序中删除所有日志代码。
    *
    *注意:要在应用程序中生成日志事件,请使用两个诊断程序
    *并且必须设置日志掩码。 请参阅的 SYS/BIOS API 指南
    *更多信息。
    *

    /*
    * LoggingSetup 将 TI-RTOS 模块配置为捕获用户指定的信息
    *例如 CPU 负载、任务负载和任务执行、以便可以
    *由系统分析器显示。
    *
    //var LoggingSetup = xdc.useModule('ti.uia.sysbios.LoggingSetup');
    //LoggingSetup.loadLoggerSize = 256;
    //LoggingSetup.mainLoggerSize = 512;
    //LoggingSetup.sysbiosLoggerSize = 1024;

    /*========================= 主配置=================== *
    VAR Main = xdc.useModule('xdc.runtime.Main');
    /*此主模块的配置用于不在模块中的所有代码*/

    /*========================= POSIX 配置=================== *
    VAR 设置= xdc.useModule('ti.posix.tirtos.Settings');

    /*========================= 事件配置=================== *
    VAR 事件= xdc.useModule('ti.sysbios.knl.Event');

    /*========================= 邮箱配置=========== *
    VAR 邮箱= xdc.useModule('ti.sysbios.knl.Mailbox');

    /*========================= ClockFreqs 配置=================== *
    /* MSP432电源驱动程序需要 SYS/BIOS 时钟频率模块*/
    VAR ClockFreqs = xdc.useModule('ti.sysbios.family.arm.msp432.ClockFreqs');

    这是 main_tirtos.c 文件

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

    *无论是合同、严格责任还是侵权行为(包括疏忽或)
    *否则)因使用本软件而以任何方式产生、
    *即使被告知可能会发生此类损坏。
    *

    /*
    *==== main_tirtos.c ====
    *
    #include

    /* POSIX 头文件*/
    #include

    /* RTOS 头文件*/
    #include

    /*驱动程序配置*/
    #include

    extern void * mainThread (void * arg0);

    /*以字节为单位的栈大小*/
    #define THREADSTACKSIZE 1024

    /*
    *==== main ====
    *
    int main (空)

    pthread_t 线程;
    pthread_attr_t atttrs;
    struct sched_param primParam;
    int retc;

    /*调用驱动程序初始化函数*/
    Board_init();

    /*使用默认值初始化属性结构*/
    pthread_attr_init (atttrs);

    /*设置优先级、分离状态和堆栈大小属性*/
    priParam.sched_priority = 1;
    retc = pthread_attr_setschedparam (&attrs、&priParam);
    retc |= pthread_attr_setdetachstate (&attrs、pthread_create_detachstate);
    retc |= pthread_attr_setstacksize (&attrs、THREADSTACKSIZE);
    如果(retc!= 0){
    /*无法设置属性*/
    while (1){}

    retc = pthread_create (&thread、&attrs、mainThread、NULL);
    如果(retc!= 0){
    /* pthread_create()失败*/
    while (1){}

    BIOS_start();

    返回(0);

    告诉我与我的关系  

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

    我需要在"Console"视图中查看哪些构建错误。

    这是您的帖子中的控制台视图。  它当前仅显示输出的末尾。  在视图中右键单击、然后选择 All (全部)。  然后将内容粘贴到此处。

    此致、

    John

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

    SIR TI RTOS 和 Free RTOS 之间的区别是什么、以及 我们如何 在 SDK 示例中编辑 TI stak  

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

    说明资源路径位置类型
    无法构建工程。 引用的 RTSC 配置项目"tirtos_builds_MSP_EXP432P401R_release_ccs"包含构建错误。 empty_MSP_EXP432P401R_tirtos_ccs empty_MSP_EXP432P401R_tirtos_ccs 问题

    如何消除此错误此 SDK 和 CCS 版本已在我的笔记本电脑中工作、但在我的电脑中不工作  

    这是什么  

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

    Vinay、

    该内容来自"问题"视图。  我需要"控制台"视图中的内容、该视图具有更多详细信息。

    John