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.

[参考译文] LAUNCHXL-CC2650:如何使用 LAUNCHXL-CC2650为 CC2640制作项目

Guru**** 2555630 points
Other Parts Discussed in Thread: CC2650, CC2640, LAUNCHXL-CC2650, SYSBIOS, CC2640R2F, CC2650MODA, BLE-STACK

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/570566/launchxl-cc2650-how-to-make-project-for-cc2640-using-launchxl-cc2650

器件型号:LAUNCHXL-CC2650
主题中讨论的其他器件:CC2650CC2640SYSBIOSCC2640R2FCC2650MODA、BLE-STACK

如何在 CC2650 Launchpad 上为 CC2640F128制作和测试项目?

如果我编辑 ProjectZero 的属性以使用 CC2640F128变体、则不再编译它。

而且、如果我将变体放回 CC2650F128、它将不再清除和构建。

谢谢、

戴尔

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

    无需更改任何设置。 BLE 软件在 CC2650和 CC2640之间实现了二进制兼容。

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

    您好、Fredrik、

    我之所以询问二进制兼容的答案、是因为我有一个在 LAUNCHXL-CC2650上运行良好的 ccs7.0.0.00042项目。

    我刚刚为我们设计的在其 GT-tronics CC264BPA-S 预先认证子板上使用 CC2640F128的 PCB 通电。

    我们的 PCB 上有一个10引脚 JTAG 连接器、我们还有一个 Blackhawk XDS100v2ARM 仿真器。

    我在新的工作区中打开 LAUNCHXL-CC2650项目、并更改堆栈和应用程序 Generation>CCS Generation>Main>Connection to XDS100v2。

    我清理并构建堆栈和应用程序。 我调试并运行代码。

    代码经过 main.c、直到它到达 BIOS_start()、在这一点上、它单步进入汇编循环。

    使用 ROV 时发现此错误:

    错误行的全文为:

    ,ti.sysbios.nbl.semaphore, Basic,(0x20003210), pendElems, Error: Problem scanning pend Queue: JavaException: java.lang.exception: target memory read failed at address: 0xbebebebebe, length: 8根据应用程序的段映射,此读取位于无效地址。 应用程序可能未初始化或已损坏。

    有人能帮我弄清楚如何运行我的代码吗?

    谢谢、

    戴尔

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

    您的建议让我调查仿真器。
    我发现我的 LAUNCHXL-CC2650上的 XDS110可用于外部电路板。
    我刚刚移除了电路板上的所有跳线、并将电路板连接到"XDS110 OUT"接头!
    因此、我通过转到 XDS110比转到 XDS100v3做得更好。

    遗憾的是,执行仍会在 BIOS_start()处停止,完全如上所述。

    这现在已成为一个真正的问题,使我无法在我的轨道上死亡,是否有其他想法?

    谢谢、
    戴尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在调试 ProjectZero 应用程序之前、您是否下载了 ProjectZero 堆栈?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、正如我说过的、该项目在 LAUNCHXL-CC2650上运行良好。

    我的项目基于 SimpleLink Academy project_zero、它访问的是外部闪存。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    由于您使用的是定制硬件、您是否已检查所有电源域是否正常工作?
    processors.wiki.ti.com/.../CC26xx_HW_Troubleshooting
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您尚未完成此操作、请查看指南中的调试部分。 您可能遇到硬件异常:
    software-dl.ti.com/.../ble-debugging.html
    尽管上述链接适用于 cc2640r2f、但这些步骤适用于 cc2650。
    此致、
    反叛分子
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Christin、

    子板()  不会暴露所有 CC2640引脚,特别是所有电源域引脚。

    下面是我的原理图:

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

    我需要一些时间才能理解所有这些内容、但为什么调试内存要求与 LAUNCHXL-CC2650上的要求不同?

    使用完全相同的 XDS110时、LAUNCHXL-CC2650上的调试工作正常。

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

    从原理图中可以看到、您没有连接模块的所有接地引脚。 这可能会导致问题。

    您是否能够通过 SmartRF Studio 控制电路板?

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

    接地引脚都连接到 GND、因为它们具有相同的名称、我的布局软件会自动使我连接它们。
    我在发布图片时几乎提到了:)

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

    反叛分子,

    我遇到以下指令:

    然后、在具有签名的某个位置创建一个函数void (*Hwi_ExceptionHookFuncPtr)(Hwi_ExcContext*);、例如下面的函数:

    #include 
    //...
    volatile uintptr_t * excpc = 0;
    volatile uintptr_t * excall主 叫= 0;
    //...
    void execHandlerHook (Hwi_ExcelContext * ctx)
    {
    EXPC = ctx->PC; //发生异常的程序计数器
    当发生异常时,激发呼叫者= ctx->LR;//链接寄存器
    
    while (2);
    }
    
    1. 如何为该函数创建签名? (应该在.h 文件中使用的定义行吗?)
    2. 我应该在哪个文件中定义此函数?

    谢谢、

    戴尔

    编辑:我在 project_zero.c 中添加了函数  我尝试在void (*Hwi_ExceptionHookFuncPtr)(Hwi_ExcContext*);.h 中添加""、但它不会以任何方式构建、所以我只将其退出并构建!!

    我的闪存针对项目增加了~500字节,堆栈中的闪存没有改变。 堆栈和项目的 SRAM 使用情况相同。  此外,它没有什么不同,仍然停留在 BIOS_start 函数中;:(

    再次编辑: 尽管 ROV BIOS 错误相同、但我在 HWI 中发现了这一错误、不确定它以前是否存在:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已在这个 BIOS_start 挂起问题上再次终止。
    请、有人可以告诉我另一条路吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以通过从闪存编程器2读回编程的映像来检查您的闪存编程是否正确。
    此外、您还应尝试 Fredrik 的建议、使用 SmartRF Studio 控制您的电路板以查看其是否正常工作。

    www.ti.com/.../FLASH-PROGRAMR
    www.ti.com/.../SMARTRFTM-STUDIO
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此 CC2640模块似乎基于5x5封装、因此您应该更改板级配置文件。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Christin。

    FP2擦除、编程和验证每个项目调试文件夹中的堆栈和应用十六进制文件。

    SmartRF Studio 7连接到2640、我可以打开设备控制面板并开始广播随机数据包、不确定如何处理此问题。

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

    您是否使用了正确的板级配置文件(如 YK 所询问的)?

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

    到目前为止、我在板级配置文件中所做的唯一工作是:

    1. 将 CC2650_LAUNCHXL.c 和.h 重命名为 HaloLogger1a.c 和.h
    2. 将 LED 定义更改为:/*分立式输出*/
      #define Board_RLED                 IOID_1//Dale 不是6.
      #define Board_GLED                 IOID_2 //Dale 而不是7.

    其余引脚与 LAUNCHXL-CC2650板相同。

    我看到定义了7x7定义:

    /*与7x7 EM 相同的射频配置*/
    #define CC2650EM_7ID

    我为5x5定义了什么?

    是否有一个文档告诉我2640的板级配置文件有什么变化?

    戴尔

    附件是到目前为止的板级配置文件。

    1: e2e.ti.com/.../0458.Board.h

    2: e2e.ti.com/.../7762.HaloLogger1a.h

    3: e2e.ti.com/.../5224.HaloLogger1a.c

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    将"#define CC2650EM_7ID"更改为"#define CC2650EM_5XD "以再次进行测试。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果我将"#define CC2650EM_7ID"更改为"#define CC2650EM_5XD "。

    仍卡在 BIOS_start 函/ ROV 中报告以下情况:

    戴尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我对 ProjectZero 执行相同的更改、并将其下载到基于5x5芯片的 CC2650MODA。 我可以看到它运行良好、因此我建议您再次使用干净的 ProjectZero 进行测试。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    1. 在我的项目滞留在 BIOS_start 函块的工作区中、我打开 Resource Explorer、选择 CC2650 Launchpad 并选择"Import to IDE" ProjectZeroApp_CC2650LAUNCHXL 和 ProjectZeroStack_CC2650LAUNCHXL。
    2. 然后、我清理并构建这两个。
    3. 当我在 CC2650 LaunchPad 板上运行/调试它时、一切工作正常(iOS 应用程序会连接、让我打开和关闭 LED)
    4. 我在 CC2650_LAUNCHXL.h 中进行以下更改:
    5. //#define CC2650EM_7ID //Dale OUT
      #define CC2650EM_5XD、在2640中为5x5
    6. #define Board_RLED                 IOID_1//Dale 不是6.
      #define Board_GLED                 IOID_2 //Dale 而不是7.
    7. 我构建项目
    8. 我移除 CC2650 LaunchPad 上的所有跳线、并将 XDS110 OUT 连接到我的通电 PCB 上、上面有2640。
    9. 我运行/调试并在 BIOS_start 函率中抛出错误、ROV 显示如下:

    因此、干净的 ProjectZero 也会在 PCB 上的 BIOS_start 处挂起。

    戴尔

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

    Dale、

    您是否验证是否未分配或尝试使用数值为 IOID_15或更高的任何引脚? 5x5具有15个 IO、尝试使用此封装中不可用的引脚可能会导致您遇到的硬件中止。 例如、CC2650_LAUNCHXL.h 具有:

    #define Board_SPI_FLASH_CS IOID_20

    必须在5x5 (或4x4) QFN 器件上重新映射到有效引脚。

    如果仍有问题、我建议将所有引脚定义为 PIN_Unassigned、并仅使用配置为广播的 BLE 堆栈为器件供电(使用 simple_peripheral)。 BLE-Stack 不需要任何 IO 即可正常运行。 禁用所有外部 IO /外设访问、然后在板级配置文件和应用中逐个启用驱动程序、直到遇到故障。

    祝你一切顺利

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

    您好、JXS、

    嗯、您的评论最终让我的大脑中的5x5含义变得像家一样。

    将#define Board_SPI_FLASH_CS IOID_20更改为#define Board_SPI_FLASH_CS IOID_7 (是的!!!)后、我能够立即通过 BIOS_start 函数。

    但是、我在这里的某个位置点击了 Task_exit:

     //打开 LED 引脚
     ledPinHandle = PIN_OPEN (&ledPinState、ledPinTable);
     if (!ledPinHandle){
       LOG_error0 ("初始化板 LED 引脚时出错");
       Task_exit();
     }

     buttonPinHandle = PIN_OPEN (buttonPinState、buttonPinTable);
     if (!buttonPinHandle){
       LOG_error0 ("初始化按钮引脚时出错");
       Task_exit();
     }

     //设置按钮引脚的回调
     if (PIN_registerIntCb (buttonPinHandle、&buttonCallbackFxn)!= 0){
       log_error0 ("注册按钮回调函数时出错");
       Task_exit();
     }

    我无法将按钮引脚设置为未分配、因为我必须更改某些代码切换语句中的代码才能生成它。

    最后、我刚刚重新编写了所有上述代码和构建代码。  然后我终于在广告了!!!!

    我可以在 iOS 应用中进行连接!!

    现在、我必须弄清楚如何设置板级配置文件和引脚手柄、以便能够使用中的上述代码。

    我可以看到为什么我必须更改 IOID_14以不使用内部上拉电阻器、但不确定其他引脚。

    除非您有更多的指导、否则我现在可能完全可以让自己完成工作。

    谢谢、

    戴尔

    至于我原来的帖子的答案、我认为 CC2650和 CC2640的二进制文件是不同的、差异是由于电路板文件和引脚表的不同而产生的、这是正确的说法吗?

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

    听起来好像您在正确的轨道上。 我会将您的原理图与您的板级配置文件进行 x 参考、以确保您使用正确的拉电阻设置在正确的引脚上配置 IO。 使用调试器步入 PIN API 也不会受到影响。 稍微提高一下101:)

    关于 CC2640/CC2650固件兼容性、这些器件是二进制兼容的、您不应像 Fredrik (和文档)提到的那样修改项目 CPU 设置。 在这种情况下、您使用的是具有不同天线配置和 IO 布局的不同 QFN 封装、因此需要相应地调整固件以匹配您的布局和天线。 因此、您可以将 CC2640 5x5与 CC2650 5x5交换并使用相同的固件二进制文件。

    祝你一切顺利