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.

[参考译文] TMS320F28335:串行闪存编程器

Guru**** 2535150 points
Other Parts Discussed in Thread: CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/589298/tms320f28335-serial-flash-programmer

器件型号:TMS320F28335
Thread 中讨论的其他器件:controlSUITE

TI 提供了串行闪存编程器的 PA 应用、可在 device_support\~Utilities\serial_flash_programmer 文件夹的 controlSUITE 中找到。

以下是使用 serial_flash_programmer.exe 的说明:

用法:serial_flash_programr.exe -x -k f -p COM
[-m] [-n] [-b]
[-q][-w][-v]

D -要加载到的设备的名称
F2802x、F2803x、f2805x、f2806x、f2837xD、 f2837xS 或 f2807x。

问题是 :此 serial_flash_programr.exe 是否直接支持 F28335?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的。 有一个 F28335_flash_kernel 示例、可与串行闪存编程器配合使用。 请随意选择02x、03x、05x 或06x 作为您的器件。

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

    此 F28335_flash_kernel 是否位于 C:\ti\controlSUITE\device_support\F2833x\v142\DSP2833x_examples_ccsv5\F28335_flash_kernel\文件夹? 我是否需要修改和重建此项目?

    当我尝试对 F28335进行编程时、它失败、如下所示。

    28335和 PC 之间没有串行线路上的数据传输。

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

    为了提供帮助、您可以使用'-v'获取详细的打印输出。

    您需要确保您的器件正在引导 SCI 引导加载程序、并且您使用正确的引脚通过 SCI 进行通信。

    SAL
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请访问 www.ti.com/lit/sprabv4
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我可以确保器件在 SCI 引导模式下引导、并且引导引脚正确。 因为我可以成功地使用 C2Prog 和 SDFlash 对闪存进行编程。
    我还阅读了 sprabv4文档、其中提到 F2833x 在 ROM 中没有闪存 API。 这些闪存 API 是否包含在 F28335_flash_kernel.txt 中?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Vesgine、

    请尝试不要使用-b 选项或使用-b 9600。 对于以10MHz 运行的引导 ROM、38400可能过高。

    此外、您还可以使用 Visual Studio 项目帮助您进行调试、以查看 serial_flash_programmer 在何处卡住。 我感觉是在尝试执行自动波特锁时卡住了。 此外、在它被卡住后、您可以通过 JTAG 和 CCS 连接到器件、并加载引导 ROM 符号以查看器件被卡住的位置。

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

    你(们)好

    我已将波特率降低至2400、但也会出现相同的错误。 器件 F28335进行通信。 是否有人使用 serial_flash_programmer 成功地对 F28335进行了编程?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否尝试过上述调试步骤? 您能否连接到器件、加载符号、然后运行器件。 当它卡住时、停止器件并查看 PC 所在的位置。

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

    是的、我加载了 Visual Studio 项目。 我通过了内核启动、这种情况以及自动波特率都很成功。 为了使自动波特率正常工作、我必须在写入 COM 端口后将 Visual Studio 项目中的 PurgeComm 命令移动到。 但代码 BOM 会用完。 我尝试并行运行 CCS 项目、然后查看。 这就是我看到自动波特正在工作的地方。 但我发现在自动波特之后、很难在通信的中间找到错误。 CCS 工程似乎会以"代码中止"停止、我不知道为什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    真有意思。 您是否在器件上使用了 CSM?

    SAL
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    没有 CSM 被解锁、所有值为0xFFFF。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我正在使用 FTDI USB 转串行转换器
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好

    我已经调试并看到 CSM 已解锁、闪存已成功擦除。 但是、我在闪存编程期间收到以下错误"fail_zero_bit_error"? 这意味着什么?

    此致
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这是否报告给串行闪存编程器控制台?

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

    你(们)好

    这在 Code Composer Studio 中。 我设法解决了这个问题。 我看到、并非所有闪存扇区都在控制套件的代码中被擦除。 现在、我继续操作、但遇到错误 FAIL_ADDR_INVALID。 为什么会这样呢? 是否有人使用 F28335测试了这些代码? 还是我们想从头开始解决?

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

    .txt 文件是否有问题? 我使用了:  

    hex2000.exe -boot -sci8 -a -o  

    可以有人给我反馈吗? 谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    十六进制实用程序参数看起来正确。

    您可能不需要-o 选项。 您能否尝试删除它并查看它是否更改了输出文件。

    SAL
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否使用 CCS 进行调试? 我不确定为什么要使用 CCS、除非它用于调试。

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

    你(们)好

    是 Code Composer Studio 和 Visual Studio。 我在对 CCS 项目和 Visual Studio 项目进行更改后使其正常工作。

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

    你(们)好

    我现在正在使用 CSM。 但现在、当芯片锁定时、F28335_kernel.txt 似乎无法正常启动。 有什么建议吗?

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

    您有几个选项、但无论采用哪种方法、如果您希望内核与锁定的器件配合使用、您都必须修改闪存内核 CCS 项目并重新编译它:

    1. 在闪存内核项目的 CopyData()(在 shared_Boot.c 中)中,有一个到 CsmUnlock()(在 DSP2833x_sysctrl.c 中)的调用,所以将 CsmUnlock()中的密钥更改为锁定设备的正确密钥。 这意味着您的器件在编程时将被临时解锁(密钥将被硬编码到内核中并可轻松读取)。
    2. 这更复杂、但更安全。  如果您希望在编程时保持器件锁定并且不必将密钥硬编码到内核中,则无需调用 CsmUnlock(),也无需使用 FlashAPI 引导 ROM 符号库。 相反、请使用常规 FlashAPI 库并将其存储在安全 RAM 中。 这将允许对 FlashErase 和 FlashProgram 的调用访问闪存(因为它从安全 RAM 中运行)。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您需要将内核重新映射到不安全的内存中。 SCI 引导加载程序无法将代码加载到安全存储器中、因为引导加载程序从 ROM 和不安全存储器运行。

    SAL