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:在 launchpad 上读取/写入1MB SPI 闪存的示例

Guru**** 2561920 points
Other Parts Discussed in Thread: CC2650, BLE-STACK, LAUNCHXL-CC2650

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/570225/rtos-launchxl-cc2650-example-to-read-write-to-1mb-spi-flash-memory-on-launchpad

器件型号:LAUNCHXL-CC2650
Thread 中讨论的其他器件:CC2650BLE-STACK

工具/软件:TI-RTOS

有人能给我提供示例代码来读取和写入 launchpad 板上提供的1MB 串行闪存吗?

谢谢。

戴尔

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

    您可以看到 simple_peripheral 项目的 FlashOnly" OAD_ExtFlash 配置是写入闪存的示例。 用于读取和写入闪存的函数位于 ExtFlash.c 中

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

    到目前为止、我仅在 ccs7中使用 Resource Explorer 加载示例项目。
    我在 CC2650 Launchpad 示例中看不到一个标记为 simple_peripheral 的示例。
    我是一个真正的新手、如果 simple_peripheral 项目不在我的 ccs7 Resource Explorer 中、我不知道在哪里找到和加载该项目。
    是否有链接和说明(我的基本 Google 搜索对我没有帮助)

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

    要获得该项目和其他项目、您需要安装 BLE-STACK 2.2.1。 您可以在以下位置找到它: www.ti.com/.../BLE-STACK。
    它包含蓝牙低耗能软件开发人员指南、其中提供了有关使用和运行示例应用的文档。

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

    Nathan、

     尽管我现在有示例代码、但无法将其集成到 LAUNCHXL-CC2650 ProjectZero 代码中。

     我将 ExtFlash.c 和 ExtFlash.h 复制到 ProjectZero 应用程序目录中、

     当我构建时、我得到的错误告诉我 simple_peripheral 和 ProjectZero 具有不同的 SPICC26XXDMA.h 文件。

     令我惊讶的是、LAUNCHXL-CC2650显著宣传的功能("包括1MB 外部闪存、用于支持多种协议或存储用户数据")需要如此低的编程知识才能使用它。

     我是否确实采取了最简单的方法来读取用户数据并将其写入电路板外部闪存?

     如果是、接下来该怎么办? 我应该开始另一个主题吗?

     谢谢、

    戴尔

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

    您在 Resource Explorer 中使用的工程零版本可能使用的 SDK 版本与您从中获取文件的版本不同。 如果您单击 Resource Explorer Classic 中标记为 SimpleLink Academy 的选项卡、您将能够找到您的项目正在使用的 SDK 版本。

    -弥敦
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在 Resource Explorer Classic 中找不到 SimpleLink Academy 的选项卡、找到 SDK ProjectZero 使用的版本时该怎么办?

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

    在 Resource Explorer 的左侧、您应该会看到目录。 SimpleLink Academy One 应该是您在中找到的 Project Zero。 单击 SimpleLink Academy 选项卡(而不是进入目录)将帮助您找到版本。 您需要确保安装了该版本的 SDK。

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

    我必须下载并安装 Simplelink Academy、然后它出现在左侧。

    我在 BLE 示例中导航到 ProjectZero 并将项目导入到 CCS 中。

    哇、它看起来根本不像我从标准 Resource Explorer 导入到 IDE 中的 ProjectZero。 此版本的中间件目录包含 ExtFlash.h 和一个灰显的 ExtFlash.c (为什么它灰显?)。

    它看起来还像使用正确的 SPICC26XXDMA.h、并且有更多不同...

    我将尝试使外部闪存例程在该项目中工作。

    谢谢、
    戴尔

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

    嗯、不是很幸运地确定如何使用 ExtFlash.c 中的例程、将 SimpleLink Academy 中的 LAUNCHXL-CC2650的 ProjectZero 用作起点。

    到目前为止、我已经尝试取消选中这些文件的"从编译中排除":

    中间件/ extflash/extflash.c

    drivers/SPI/SPICC26XXDMA.c

    驱动程序/SPI/SPI.c

    然后、我将 ExtFlash.c 包含在 project_zero.c 中、其中包含:

    #include //Dale

    然后、我尝试在 project_zero.c 的 ProjectZero_init (void)末尾使用 ExtFlash.c 的函数、如下所示:

       bool 成功= ExtFlash_open (); //Dale
       if (成功){
           LOG_info0 ("Ext Flash opened、是的!!");
       }

    这只会导致如下构建内存错误:

    "C:/ti/simplelink/ble_sdk_2_02_01_18/src/common/cc26xx/ccs/cc26xx_app.cmd "、第121行:错误#10099-D:程序不能放入可用内存中。  对齐方式对".const"大小为0x1ef7的段进行放置失败。  可用存储器范围:
      闪       存大小:0xe000      未使用:0x467       最大空洞:0x45c     
      FLASH_LAST_PAGE  大小:0x1000      未使用:0xfa8       最大空洞:0xfa8     
    错误#10010:链接期间遇到错误;未构建"project_zero_app_cc2650launchxl.out"

    >>编译失败
    Makefile:190:目标'project_zero_app_cc2650launchxl.out'的配方失败
    Makefile:183:目标“全部”的配方失败
    gmaked[1]:***[project_zero_app_cc2650launchxl.out]错误1.
    gmake:***[全部]错误2.

    编辑:通过禁用所有日志记录和不启动 UART (对于这个有用的工具来说太多了!!!)来解决内存错误。

    现在,当我尝试如上所述使用 ExtFlash_open()时,该程序会在该行上停止,并保留在某些汇编代码段中。

    我想我现在真的迷路了。

    使用通告的外部数据存储闪存不应太困难:(

    戴尔

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

    抱歉、我还没有弄清楚如何获取 simple_peripheral 项目的'FlashOnly" OAD_ExtFlash'配置。

    我被 FlashOnly"和 OAD_ExtFlash 骗了。

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

    Nathan、

    感谢您的帮助、但这仍然是我真正能够读取和写入外部闪存的漫长道路。

    如果有人想通过以下方式了解这一点、JXS 已帮助我处理了另一个主题:

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

    根据另一个主题、您似乎解决了该问题。 您是否仍然遇到任何问题?

    -弥敦
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、我无法确定如何将单个字节写入闪存位置、而不必先擦除该位置的4K 闪存。 我在另一个主题中发布了详细信息。
    谢谢、
    戴尔