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/CC2640R2F:在主应用程序任务中printf()没有输出-- CC2640R2,CCS,SimpleLink SDK,Simple_Peripheral示例项目

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/619933/ccs-cc2640r2f-no-output-from-printf-inside-main-application-task----cc2640r2-ccs-simplelink-sdk-simple_peripheral-example-project

部件号:CC2640R2F

工具/软件:Code Composer Studio

有争议的电路板是CC2640R2的自定义设计,在Code Composer Studio中签出了名为“simple_peripheral”的示例项目。

当我将printf("hello from main()\n"); inside main()函数放在 bios_start()语句之前时,它会在生成和运行项目时在控制台中打印"[Cortex_M3_0] hello from main()"。

当我在“SimpleBLEPeripheral_taskFxn”函数(它是TI-RTOS内核任务)中放置类似的printf语句时-作为循环前的第一个语句,不会将任何内容打印到控制台。

"SimpleBLEPeripheral_taskFxn"函数内的断点也不会触发。

除了修改主板文件之外,代码没有以其他方式进行更改(大多数情况下,我暂时不评论内容 ,认为当事情在基本级别工作时,我会开始重新引入内容)。

对于如何在TI-RTOS内核任务(如“SimpleBLEPeripheral_taskFxn”)中使用断点/打印的任何建议,我们都将不胜感激。

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

    任务中的printf是否有'\n'? CCS用于读取字符串的CIO断点在'n'或其已满之前不会被触发。

    断点应该起作用。 是否确定任务正在运行? 您可以查看“工具”->“ROV”->“任务详细信息”以查看每个任务的状态。

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

    感谢您的回答,

    带有'\n'的printf在其它simple外围设备.c函数中的其它位置(例如,在构造任务的位置)可以工作。

    我不确定断点在任务函数中是否有效,很高兴知道它们是否有效。

    ROV看起来是一个很棒的工具,感谢您的建议。

    在我看来,任务似乎没有运行。

    现在我将尝试找出为什么使用`Task_construct (&sbpTask,SimpleBLEPeripheral_taskFxn,&taskParams,NULL)构造任务;`不运行。 你对此有什么评论吗?

    ROV说:“目标内存读取在地址0x2.0001万f2c处失败,长度:76。 根据应用程序的分区映射,此读取位于无效地址。 应用程序可能未初始化或已损坏。