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/LAUNCHXL-CC2650:BIOS_Start()结果为 loader_exit()

Guru**** 2551570 points
Other Parts Discussed in Thread: SYSBIOS, TM4C1294NCPDT, LAUNCHXL-CC2650

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/575729/rtos-launchxl-cc2650-bios_start-results-in-loader_exit

器件型号:LAUNCHXL-CC2650
主题中讨论的其他器件:SYSBIOSTM4C1294NCPDT

工具/软件:TI-RTOS

您好!

我尝试进入 BIOS_Start()以查看可能发生的情况,但它会立即跳转到 loader_exit()。  我不确定如何继续调试此问题。  由于这是 Project Zero 的新版本、因此它肯定应该能够正常工作。  

不能说我对此感到非常惊讶、我遇到了许多无法开箱即用的 TI 演示(实际上、它们更有可能无法通过经验工作)。

我应该采取哪些调查方式?  谢谢!

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

    请确保您使用的是 SYSBIOS 库的调试版本,以便 BIOS_Start()代码不会被优化(优化代码不能很好地在源代码级别步进)。 若要使用调试库、需要在工程的.cfg 文件中更改此行:

    BIOS.libType = BIOS.LibType_Custom;

    更改为

    BIOS.libType = BIOS.LibType_Debug;

    重新构建程序,然后再次尝试进入 BIOS_Start()。

    此致、
    文森特
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我在 app_ble_uartlog.cfg 中切换了注释行、其内容如下:
    //BIOS.libType = BIOS.LibType_Custom;
    BIOS.libType = BIOS.LibType_Debug;

    行为没有变化。 我无法进入 BIOS_start()。 我无法找到任何其他.cfg 文件。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您使用的是哪个版本的 CCS 和 CC26XX SDK (或 TI-RTOS)? 您是否尝试使用 Disassembly 视图(window->Show View->Disassembly)在符号名称"BIOS_start"上设置断点、并查看运行时是否遇到断点? 通常、我希望包含 BIOS_start 的源文件在遇到汇编断点时在 CCS 中打开。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    CCS:6.2.0.00050

    SDK:BLE_SDK_2_02_01_18

    RTOS: tirtos_cc13xx_cc26xx_2_20_01_08

    编辑:除了默认的15.12.4.LTS 外、还使用了编译器版本5.2.6和5.2.9。  反汇编中略有变化(预期),但所有变化都导致相同的 loader_exit()循环。

    在查看反汇编时、我确实会看到一些奇怪的行为。  它似乎会将 PC 加载到自己的内部、这(我认为)可能会导致无限循环、从而可能导致某种硬件异常。  它似乎在线路上崩溃:

    153. ProjectZero_createTask();
    0000a574:F7FFFD3A BL 0x9fec
    156 BIOS_start();
    0000a578:F000F804 BL 0xa584
    160 返回0;
    0000a57c:2000 MOV R0、#0
    0000a57e:BD08 弹出 {R3、PC}
    $C$CON548:
    0000a580:F0B80001 字 0x0001f0b8
    $Tramp$TT$L$PI$$ti_SysBIOS_BIOS_start__E ():
    0000a584:F8DFF000 LDR.w PC、[PC、#0]//*此处崩溃*我认为这是一个问题行,如果我在下一行上放置一个断点,我最终会在 loader_exit ()
    0000a588:C055中找到 STM R0!、{r0、R2、R4、R6}
    0000a58a:1001 ASR R1、r0、#0x20 

    我的两个想法是、不应将 PC 加载到自己(永远)中、这可能会导致自身无限循环(从而导致异常)。

    编辑2: 如果我单步执行我标记为违规行的行,它将转到 loader_exit()。  如果我单步执行它,它将在进入 loader_exit()之前继续执行大量的行。

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

    当我尝试导入和编译 ProjectZeroApp 示例时、我看到该示例是在打开整个程序优化的情况下构建的。 如果您希望正确单步执行代码、则需要关闭此功能。

    尽管如此、我也未能成功地运行该示例。 我将让某人将此主题移至器件论坛、在此论坛中、对该示例更了解的人可以提供帮助。

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

    根据 Vincent 的评论、我继续将此主题移至 BLE 论坛、希望您的问题能在那里得到解答。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在 过去几周内、我自己处理了 Tiva TM4C1294NCPDT 的 RTOS 示例问题、遇到了同样(或类似)的问题。  对我来说、我发现我在常规项目参数下的目标"平台" 不正确。  我修复了此问题后、我的计划按预期工作。  请告诉我这是否有帮助。

    Ryan

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

    我喜欢这项建议、但我仍然得到同样的最终结果。  编译配置文件已设置为发布、因此我尝试了调试、编译所需的时间较长、但最终结果没有差别。

    我尝试显式设置链接器文件、但这样做似乎会导致编译器问题。  它重新定义了一些内容、并与闪存配置发生冲突。

    "C:/ti/simplelink/ble_sdk_2_02_01_18/src/common/cc26xx/ccs/cc26xx_app.cmd、第98行:错误#10263:闪存范围已指定
    "c:/ti/simplelink/ble_sdk_2_02_01_18/src/common/cc26xx/ccs/cc26xx_app.cmd、第98行:错误#10264:闪存范围与现有存储器范围重叠"c
    :/ti/simplelink/ble_sdk_2_02_01_18/src/common/cc26xx/ccs/cc26xx_app.cmd、第104行:错误#10264:FLASH_LAST_PAGE 存储器范围与现有存储器范围重叠 FLASH
    "c:/ti/simplelink/ble_sdk_2_02_01_18/src/common/cc26xx/ccs/cc26xx_app.cmd、第109行:错误#10263: SRAM 存储器范围已被指定
    "c:/ti/simplelink/ble_sdk_2_02_01_18/src/common/cc26xx/ccs/cc26xx_app.cmd
    
    
    /ti/simplelink/ble_sdk_2_02_01_18/src/common/cc26xx/ccs/cc26xx_app.cmd "、第109行:错误#10264:SRAM 存储器范围与现有存储器范围重叠 SRAM "c:/ti/simplelink/ble_sdk_2_02_01_18/src/common/cc26xx/ccs/cc26xx_app.cmd、第146行:警告#10190-D:重新定义绝对符号"_STACK_TOP"、"c:/ti/simplelink/ble_sdk_2_02_01_18/src/common/cc26xx/ccs/cc26xx_app.cmd、第146行:警告#10190-D:正在重新定义绝对符号"__STACK_TOP"、"C:重新定义"146行:C:C: 正在重新定义的绝对符号"__STACK_TOP"
    错误#10010:链接期间遇到错误;"project_zero_app_cc2650launchxl.out"未生成
    gmake:***[project_zero_app_cc2650launchxl.out]错误1 

    CC2650F128是电路板设置。  我将研究是否有专门用于 launchxl-cc2650的器件。