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-CC3235SF:其中代码存储在 CC3235MODAS 和 CC3235MODASF 中

Guru**** 2386620 points
Other Parts Discussed in Thread: CC3235MODAS, CC3235MODASF
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/998290/launchxl-cc3235sf-where-the-code-is-stored-in-cc3235modas-and-cc3235modasf

器件型号:LAUNCHXL-CC3235SF
主题中讨论的其他器件:CC3235MODASCC3235MODASF

尊敬的 TI 员工:

我从该模块的数据表中了解 到、CC3235MODAS CC3235MODASF 之间的区别在于 、CC3235MODASF  除了256KB RAM 外、还具有用户专用的1MB 可执行闪存。

1) 1)该闪存可用于什么用途?  是否包含加载到目标的代码?  

2) 2)为了在硬件复位或关闭电路板后保持代码、我应该将代码放在哪里? 它是否位于该闪存中? 默认情况下、我的代码不会保存在芯片中、因此我必须始终从 CCS 编译和加载它。

希望我的问题清晰明了。

此致、

布拉希姆

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

    您好、Brahim、

    要回答您的问题:

    1.是的、闪存存储器应包含您的代码。 默认情况下、CC32xx 存储器映射文件将指示链接器自动将所有代码放入可执行闪存空间。

    除了代码存储之外、您还可以将此可执行闪存用作永久存储、但默认情况下不会为此分配任何空间。 这对于某些需要存储几百 KB 数据以便立即用于程序的应用程序来说非常有用、因此不能依赖外部串行闪存上提供的较慢文件系统存储。 可执行闪存可以任意读取字寻址、与 RAM 非常相似、尽管擦除是按扇区进行的、因此您需要仔细查看文档、以确保在您希望将其用作永久数据存储时满足您的需求。

    2.为了持久存储代码、您仍必须将其刷写到外部闪存中、通常使用 UART 引导加载程序、并在此处提供说明:

    https://dev.ti.com/tirex/explore/node?node=AIAEL8ziVI8bmN94gWII8w__fc2e6sr__LATEST

    https://dev.ti.com/tirex/explore/node?node=ABEoqU9o3snoxDcmIpW0EA__fc2e6sr__LATEST

    在开发模式下、有一个调试选项可用于绕过此引导加载程序要求、以便从外部闪存加载代码。 有关详细信息、请参阅此帖子:

    https://e2e.ti.com/support/wireless-connectivity/wifi/f/wi-fi-forum/588229/cc3220sf-launchxl-network_terminal-project-debug-issue/2160853#2160853

    设置这些调试标志后、通过 JTAG 在 CCS 中加载到内部闪存的任何代码都将在复位时保持不变、因为引导加载程序不会执行其常规的完整性检查+与外部闪存的比较。

    如果您需要更多的澄清或对 CC3235的内部可执行闪存有进一步的问题、请告诉我。

    此致、
    Michael

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

    您好、Michael、

    感谢您的回复、这对您有很大帮助。

    如果外部闪存是强制性的还是非强制性的、我仍然感到困惑。 我了解到、我们可以使用内部闪存来保存代码、并在复位或 关闭电路板后将其保留在那里、因此无需使用外部闪存。 请确认。

    是否有任何文档解释了如何设置这些标志(__SF_DEBUG__和 --retain ulDebugHeader)? 否则、您能否告诉我在项目中该做些什么?

    此致、

    布拉希姆

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

    您好!

    是的、外部串行闪存是必需的。 它不仅用于存储 MCU 二进制文件、还用于存储网络堆栈配置以及网络处理器内核的服务回送。 因此、即使 MCU 二进制文件在运行时复制到内部闪存、仍然需要外部串行闪存。

    TRM 的第21.10节介绍了调试接头的使用: https://www.ti.com/lit/swru464

    您可以根据提供的一般说明自行手动生成调试报头、但按照先前链接的 E2E 帖子中提供的说明进行操作会更简单、从而让 CCS 为您生成此报头。

    请注意、此标头用于调试、作为一种防止需要刷写串行闪存以持续测试代码的方法。 这不是将代码保留在内部闪存中用于生产的方法、因为它依赖于设置为开发模式的器件。

    此致、

    Michael