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.

[参考译文] CC3235MODS:CC3235sf 至 CC3235代码移植大小问题

Guru**** 2539500 points
Other Parts Discussed in Thread: CC3235MODSF, CC3235SF, CC3235S, CC3200

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1016504/cc3235mods-cc3235sf-to-cc3235-code-porting-size-issue

器件型号:CC3235MODS
主题中讨论的其他器件: CC3235SFCC3235SCC3200

您好!

我已经为 cc3235modsf launchpad 开发了一个完整的应用程序代码、它运行得很好。 现在、我们有一个使用不具有1MB 闪存的 cc3235微控制器设计的定制硬件。 当我尝试为 cc3235控制器构建相同的代码时、我会遇到有关代码大小的编译错误。 我想知道代码的最大可能分区。 为 cc3235sf 生成的 bin 文件为170KB。 我发现在 cc3235.cmd 文件中、声明了 SARM 分区。 我想修改此分区以获得最大代码大小。  

谢谢

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

    您好!

    您的问题没有确切答案。 它取决于项目所使用的 RAM 的大小。 CC3235S 仅具有256KB RAM。 需要适合您的代码和数据(变量、缓冲区、堆栈、堆)。

    第一步提供 SF 项目中内存分配工具的结果。 通过该结果、我们将了解您的数据和代码是否适合256KB RAM。 如果不是、则需要进行一些优化(例如、在编译器中启用优化、减小缓冲区/变量的大小、从代码中删除某些功能)。

    1月

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

    您好!

    我在这里连接了 CC3235SF 控制器的内存分配。

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

    您好!

    您的应用程序的内存要求太高、您的应用程序无法装入 CC3235S (您的应用程序需要305kB 的 RAM、但 CC3235S 只有256kB RAM)。 您可以选择:

    • 使用 SF 器件
    • 降低应用的内存要求

    作为优化、您可以尝试:

    • 在编译器中启用优化。 这将节省几 KB 的代码、但通过 JTAG/SWD 调试代码会更困难
    • 根据动态内存分配要求、可以考虑减小堆段的大小
    • 减小 BSS 部分的大小(删除一些变量和缓冲区)
    • 减小代码大小-通过删除代码优化功能来减小代码大小

    1月

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

    您好!

    从 代码中删除本地 OTA 部分后、CC3235可兼容、但为 CC3235生成的 bin 文件大小约为232KB。 如果我在编译相同的代码时未删除本地 OTA、则生成的 bin 文件的大小为170KB。 您能帮我 理解为什么 生成不同尺寸的纸槽吗? 删除本地 OTA 后为 cc3235分配内存、

     

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

    您好!

    233KB 以上的图像不仅仅是代码。 它是代码+数据的总和。

    1月

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

    您好!  

    在这种情况下、我们可以使用4MB 闪存进行编程吗?  

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

    您好!

    否 SPI 闪存不能用于在 CC32xx 器件上执行代码。 它用作应用程序代码的主存储器、NWP ServicePack 的存储器、NWP 配置的存储器、网页的存储器等

    引导时、ROM 引导加载程序将包含应用代码的文件加载到 CC3235S 器件的 RAM 中。 应用程序代码仅从 RAM 执行。 它可能存在一些高级技术、这些技术如何将代码拆分为更多的部分、并在需要时分别将它们加载到 RAM 中。 这在 CC3200 SDK 内的示例"dynamic lib_loader"中进行了演示。 此 SDK 适用于第一代器件、与 CC3235不兼容。 但您可以将其用作灵感。 实施将仅由您决定。 但是、如果不深入了解 CC32xx 器件、Cortex-M4内核和链接器脚本、您将无法以这种方式进行管理。

    1月

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

    您好!  

    感谢您的支持、以了解此与内存相关的问题。

    谢谢