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/CC2650:适合 CC2650中的 BIM、堆栈和应用

Guru**** 2473260 points
Other Parts Discussed in Thread: CC2650, CC2650MODA, CC2650STK

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/604016/rtos-cc2650-fit-bim-stack-and-app-in-cc2650

器件型号:CC2650

工具/软件:TI-RTOS

您好!

我使用 CC2650开发了一个应用、并使用简单外设作为起点。 为了能够在不进入调试模式的情况下运行程序、我必须使用 BIM 刷写电路板、然后使用 Stack 和更新的应用 主要问题是我创建的应用程序不适合可用的闪存。 我已经禁用了 OAD 以释放更多空间、但仍然需要在 cc26xx_app_oad.cmd 中更改 flash_app_base、以便能够适应导致 BIM 没有空间的应用和堆栈。

默认 的 FLASH_APP_BASE 值为0x00001000、当我将其更改为0x800时、我的应用适合、但正如我知道的、0x0000到0x1000将由 BIM 使用。 这就是它们之间将存在重叠的原因。

我是否有任何方法可以使 BIM 适合这种情况?

线性 BIM 传感器在调试模式下工作良好、当我停止调试模式时、甚至从定制板上移除编程器时、它仍然工作、但当我拔下电路板并再次为其加电时、它不工作。 这就是为什么我必须使用 BIM (我不知道我是否正确)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    您是否说您的应用需要几乎124 KiB 的闪存? 这是巨大的。 我想您已经启用了编译器优化、并且已经检查了.cfg 文件? 请随意将其发布在此处、以便我们可以查看。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您是否说您不需要执行 OAD? 如果是、是片外还是片上? 如果不是、您只能使用原始 cc26xx_app.cmd 文件使用默认的非 OAD 配置。

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

    您好!

    我认为 OAD 只是通过蓝牙对模块进行编程、对吧? 如果是这样、我们将不需要它、并禁用它。

    当我使用存储器分配时、我看到应用程序正在使用54783 的可用57360闪存(我将 FLASH_APP_BASE 值设置为0x0000、以具有足够的空间、看起来会干扰 bim_extflash 应用程序)。

    默认非 OAD 配置在哪里? 我可以在 C:\ti\simplelink\ble_sdk_2_02_01_18\src\ccommon\cc26xx\ccs 中找到它、但如何将它添加到项目中?

    应用项目中工具文件夹中的可用 cmd 为 cc26xx_app_oad.cmd。 我是否应该将其删除并替换 cc26xx_app.cmd?

    我附加了应用程序预定义符号的图片、以显示我们是否正确禁用了 OAD。

    下面是 app_ble.cfg 的配置:

    var ti_sysbios_back_HeapBuf = xdc.useModule('ti.sysbios.heaps.HeapBuf');
    var System = xdc.useModule('xdc.runtime.System');
    
    //var SysStd = xdc.useModule('xdc.runtime.SysStd');
    //System.SupportProxy = SysStd;
    //var SysMin = xdc.useModule('xdc.runtime.SysMin');
    //System.SupportProxy = SysMin;
    
    var seconds = xdc.useModule('ti.sysbios.hal.Seconds');
    utils.importFile ("../../../../../src/common/cc26xx/kernel/cc2640/config/cc2640.cfg);
    Program.stack = 1024; 

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

    我正在与 Asad 一起进行此项目。 我已将 cc26xx_app_oad.cmd 的内容替换为 cc26xx_app.cmd。 现在有足够的空间用于 bim_extflash 以及 simple_peripheral 应用和堆栈。

    在强制批量擦除芯片、然后运行 bim、然后执行堆栈和应用程序后、所有操作都正常。 当调试会话终止且调试器物理断开时、所有操作都将继续正常运行。 但是、当电池断开连接并重新连接时、应用程序无法重新启动、无法通过蓝牙找到。 复位引脚已上拉。 我们如何让应用程序在芯片上电后自动启动?

    在应用程序的属性下、然后是 CCS Build->ARM Compiler->Optimization、速度与尺寸之间的折衷设置为0 (Size)。 启用优化是否需要这一切?

    感谢您的帮助、

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

    我注意到 BIM 的内存分配显示 FLASH PAGE 31使用2284个字节、应用程序将 FLASH_LAST_PAGE 列出为使用1、800个字节。 我假设当我将应用程序加载到板上时、它太大了、它会覆盖上一页中的一些 BIM。

    我尝试通过注释我们的传感器处理任务并重新编程电路板来确认这一点。 这就减小了代码大小、使应用程序不会覆盖闪存的最后一页。 现在、应用程序在下电上电后开始运行、但缺少其主要功能。

    由于我们不需要 OAD、除了使用使用较少闪存的 BIM 之外、是否还有其他方法可以将电路板引导至应用? 是否有一个与我未找到的简单外设应用相关联的 ccfg.c 文件?

    谢谢、
    Ian
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我意识到您正在使用 sensortag 项目。 如果您不需要 OAD、我建议只将应用代码从 sensortag 复制到 simple_peripheral 应用:
    C:\ti\simplelink\ble_sdk_2_02_01_18\examples\cc2650lp\simple_peripheral

    因此您不必处理 OAD 配置更改。

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

    我们使用的是专为 sensortag 而设计的 simple_peripheral_cc2650stk_app、因为我们的定制板基于 sensortag 设计。 我们现在使用的是 cc2650MODA、并已将预定义符号切换为 CC2650DK_5XD。

    我已经为您指定的 LaunchPad 打开了 simple_peripheral 应用、但看起来所有文件都完全相同、除了在预定义符号 CC2650_LAUNCHXL 和 CC2650DK_5XD 时更改的板级文件。 它仍然具有 OAD 的代码、但它灰显、因为我已从预定义符号列表中删除了 FITY_OAD。

    除了删除 Feature_OAD 之外、是否还有其他配置更改? 除了指定电路板类型的预定义符号、simple_peripheral_cc2650lp_app 和 simple_peripheral_cc2650stk_app 之间是否存在任何差异?

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

    尽管我有怀疑,但我还是尝试了你的建议,这种建议是有效的。

    感谢您的帮助!
    Ian