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.

[参考译文] CC1352P:代码仅与调试器一起运行

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1291193/cc1352p-code-only-runs-with-debugger

器件型号:CC1352P
Thread 中讨论的其他器件:SysConfigSysBIOS

请求协助。

我有一个在自定义目标硬件上运行的复杂程序(见下文)。 我不使用 RTOS。 我不使用引导加载程序。 我已将 project.syscfg 降至仅2个 LED。

只有在我加载调试器并使用调试器运行时、代码才会运行。 我可以暂停并终止调试器、然后继续运行。

当我断开 JTAG 探针并重新连接时、程序不会运行。 我使用外部电源为电路板加电、但没有调试探针时也是如此。

我使用的是 CC1352P1F3 REVE 微控制器、并查看了勘误表 SWRZ076D。

我有5个版本4原型板、如果没有调试器、它们都无法运行。

我有2块 Rev 3原型板。 一种方法工作正常、另一种方法失败(与上一种方法相同)。

实际上、我已经将该代码加载到 LaunchXL CC1352P-4评估板上、它工作正常。

是否有解决这个问题的想法?

代码片段:

int main (空)
{
   Board_init();
   NoRTOS_START();
   while (1)
   {
     GPIO_WRITE (GrnLED、1);
    __ delay_cycles ( delay_1S );
    GPIO_WRITE (GrnLED、0);
     __ delay_cycles ( delay_1S );
   }

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

    这种情况下的一个典型问题是32kHz xtal 未启动。 如果您将芯片设置为使用内部32kHz RCOSC、那么它会工作吗?  

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

    您使用的是哪个 SDK 版本?您用作起点的示例是什么? 我假设您在使用我们的驱动程序、即使您不 使用 RTOS。

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

    我将使用 SimpleLink CC13x2 26x2 SDK (5.20.0.52)。

    我相信我的同事使用 CCS 向导创建了一个非 RTOS 项目作为开发基础、并且我们正在使用可用的驱动程序。 修复这个问题后、我将切换到 TI-RTOS、以便运行 BLE 无线链路。

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

    否。 使用 proj.syscfg 功能、LF 时钟源为 LF XOSC。 我将其更改为 LF RCOSC。 我的四个定制板中的任何一个都没有改进。 请注意、在一个牺牲板上、我们移除了所有不必要的组件(保留 UC、UC 支持部件和2个 LED)、问题仍然存在。

    GEL 文件是否可以在调试期间执行某些操作、而正常的启动上电不是这样?

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

    最新观察结果。

    我们有一个 Launchpad 评估板可以正常工作、还有一个定制板出现故障。 我们交换了微控制器(需要掌握大量技能)。 微控制器问题。 现在、我们有一个评估板发生故障、另一个定制板可正常工作。

    结论:我们为此项目订购的一批微控制器存在故障。 其中一个标记如下:

       CC1352

       P1F3

       TI 261 E    <261>已随部件更改

       AKFJ G4.    因器件而异

    请求:TI 的人员能否为我们提供一些最新版本的新样片(数量6)以进行安装/评估?

    是否有任何回应、评论?

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

    您是否测试了用于验证芯片是否是问题所在的所有样片?  

    您从 TI 收到完全不起作用的样片似乎不太可能、因为我们的所有器件都经过生产测试。

    可能是您的样片被 ESD 损坏了吗?

    Siri

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

    我们通过 Mouser (密封袋)购买了大约25件、并且使用了其中的8件。 全部8个都出现加电问题。 我们的表面贴装返修区域符合 ESD 标准。 我们可能没有精确地遵循规格表热循环、但不会损坏 uC (即加载的代码在调试模式下运行)。 另外、"评估板"芯片在拆焊和重新焊接之后工作。 我们正在创建一个具有 ZIF 插座的测试夹具以检查其余的 uC。 告知您结果。

    只是为了澄清一下、您的"来自 TI 的样片根本不起作用"陈述具有误导性。 代码在调试器下运行正常。 代码无法在没有调试器的情况下正常上电运行。

    大多数论坛线程都围绕 LaunchPad 硬件。 TI 是否有人在使用定制硬件时收到过类似故障的报告?

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

    事实上、代码使用调试器运行良好、而不是单独运行、这表明您的电路板上存在与 32kHz xtal (如果有晶体)或  其配置相关的硬件问题、或者您未正确使用功耗模式。

    我从来没有遇到过一个问题,有一个芯片问题导致这个,不说它是不可能的,所以我认为很难指导你可能会出什么问题。

    您能否使用 SDK 中的默认示例而不是使用您自己的代码来测试您的电路板?

    使用最新的 SDK (7.10)并运行 gpistandby 示例:

    gpiostandby (TI.com)

    除了进行必要的代码更改以适应您的硬件之外、请勿对代码进行其他更改:

    定制硬件—SimpleLink CC13XX/CC26XX SDK 专有射频用户指南6.10.01文档

    您能否确认自己使其在 LP 提供的"良好"器件的定制电路板上工作、而不是在 Mouser 提供的"不良"器件的定制电路板上工作?

    Siri

     

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

    将 gpiostandby 导入、编译并加载到"目的地"LaunchPad 中。 代码工作正常、显然解决了上电问题。 无论是否使用调试器、我的 LED 闪烁代码都能正常工作。

    我将修改后的 gpiostandby (将 LED 重新映射到我的目标引脚)加载到了我的1个正常和3个发生故障的定制板中。 他们都工作,显然修复了我的失败的板。 在我的所有板上、无论是否有调试器、我的 LED 闪烁代码都能正常工作。

    加载 gpiostandby 代码似乎解决了问题。 我的代码使用 SDK V5.20.0.52。 gpiostandby 代码使用了 SDK V7.10.1.24。 SDK 版本可能是我上电问题的原因。

    注意:修复未完成。 我修改了 ProjectZero、使其适合自定义板、如果没有调试器、它不能工作。 但也不会"中止"开发板、因为我可以加载 LED 闪烁代码、代码会继续工作。

    我将进一步调查并报告调查结果。 感谢您的建议。 我正在取得进展。

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

    很高兴听到设备是好的,这样你就可以继续你的调试:-)

    Siri

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尚未完全运行。 一些奇怪的观察结果:

    我修改了 TI ProjectZero、以使其在我的硬件上运行。 仅当在 JTAG 调试器下运行时有效。 我尝试将 SDK 更新为 TI 项目 gpiostandby 中使用的相同版本、效果良好。

    我将 SDK 从 V6.30.1.03更新为 SDK V7.10.1.24  结果:构建失败、表示我需要更新 SysConfig

    我将 SysConfig 从 V1.14.0更新为 V1.16.2  结果:构建失败、收到以下消息

    运行 C:\Firmware_ccs\Conflict4_rtos\project_zero.syscfg 时出错 App_Rev

    类型错误:无法设置未定义的属性"$name"
    隐藏详细信息...

    在 scriptFunc (C:\Firmware_CCS\WAHTER\PROJECT_RTOS\PROJECT_ZERO.syscfg Wahter_Rev:100:32)

    at cb (webpack src:ts:102:7)

    at Object.withDeprecatedAccess (webpack src:///Bloci ts:14:10)

    在 Object.runAsUserScript (webpack src:ts:49:3)

    at iteratee (webpack:src ts:100:5)

    at baseEach (webpack:///node_modules/lodash/lodash.js:530:11)

    at function.each (webpack://node_modules/lodash/lodash.js:9409:52)

    at iteratee (webpack src:ts:98:6)

    at baseEach (webpack:///node_modules/lodash/lodash.js:530:11)

    网址为 Function.ca (webpack://node_modules/lodash/lodash.js:9409:52)

    是否要在兼容模式下重试?

    如何解决此问题/在哪里解决?

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

    当您说您调整了 ProjectZero、使其在硬件上运行、然后您尝试更新 SDK 时、您是说您尝试更新现有示例以在新 SDK 上运行吗?

    如果是、则不建议这样做。

    请首先将 SDK 7.10中的 ProjectZero 导入到新的工作区中。 使用 CCS-12.2.0。

    建立项目 之前 您可以进行任何更改、以确保一切都已正确安装(正确的 SysConfig 版本等)并且构建没有错误。

    启动并运行后、开始修改 SysConfig 文件以适应您的定制硬件。

    如果您按照此流程操作、我们也能更轻松地为您提供帮助、因为稍后我们可以逐步重现您所做的工作、看看我们是否可以重现您遇到的任何问题。

    Siri

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

    Siri、

    您的第一项陈述正确。 我按照你的过程尽可能地修改了 ProjectZero SysConfig 文件。 我基本上只是重新映射了一些 IO 引脚和 UART、以便与我的硬件匹配。 我的硬件非常接近评估板。 我有一个额外的 UART、I2C 器件和一个 SPI FRAM 芯片(所有这些芯片都安全地连接到"未使用的 ProjectZero 引脚)。 代码将构建、加载并运行。 但是... 代码只是在错误处理程序中结束(见下文)。 这是一项新功能。 我不记得以前看到过这个。 非常感谢您为此付出的时间和帮助。

    调试器执行暂停表示代码处于无限循环中。

    void Error_raiseX (Error_Block * eb、int prefix、const char * id、intptr_t a0、intptr_t a1)
    {
       Error_Block defErr;

        ……

      
       如果(Error_policy_D == Error_spin){
           for (;;)
           }
       }
       否则为(((EB =&defErr)&&(Error_POLICY_D == Error_relunding))||(Error_POLICY_D == Error_Terminate)){
           system_abort ("ti_sysbios_runtime_Error_raf:终止执行\n");
       }

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

    我的最新观察结果:

    我通过 JTAG 调试器构建了 ProjectZero 代码并将其加载到 LaunchXL CC1352P-4评估板上、然后启动了应用。 我能够看到并使用 SimpleLink Starter 连接到评估板。 我终止了调试器、移除并重新插入串行电缆(下电上电)。 ProjectZero 应用不再工作、并且未显示在 SimpleLink Starter 设备扫描列表中。 发生什么事了? 这似乎是我最初使用所有 TI 设备和软件投诉的证据。 请您确认我的观察结果吗?

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

    您好、James:

    我可以确认我看到了 project_zero 所观察到的内容、但这是预期的行为。

    实际上、根据该项目的自述文件: https://dev.ti.com/tirex/explore/node?node=A__ANwcbe4yYQk37n9EhfqTNQ__com.ti.SIMPLELINK_CC13XX_CC26XX_SDK_BLE5STACK_MODULE__BSEc4rl__LATEST&placeholder=true

    除非您定义 排除_OAD 符号之后、应用程序将在未加载 BIM 下电上电。

    https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/971291/cc2652rb-project_zero-not-initializing-after-power-cycle

    此致、

    亚瑟

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

    Arthur、

    感谢您的回答(迄今为止最有价值的回答)。 我向"编译器包含选项"和"链接器命令文件预处理"中添加了 EXCLUDE_OAD。 这似乎是不够的、ProjectZero 仍然失败清理加电。 您的第二个链接描述了一个大规模的代码破解。 请告诉我,我不需要这样做! 这些标志通常控制条件编译操作。 如果条件编译器标志未处理所有条件编译、那么该标志的作用是什么? "我不会骗你的,我不会骗你的。"

    詹姆斯

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

    您好、James:

    遗憾的是、如另一个线程中所述、在这方面、project_zero 有点特殊、

    如果您想开始 BLE 开发、或至少验证功能、我建议您先使用 simple_peripheral/central 项目集。

    请注意、 OAD 将显示与下载项目相同的行为。 项目_ZERO 项目、也就是说、您需要拥有 BIM 刷写到器件上。

    此致、

    亚瑟

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

    Arthur、

    我了解。 感谢您的建议和专业知识。