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.

[参考译文] CC3220:简单的引导加载程序示例

Guru**** 2563000 points
Other Parts Discussed in Thread: EMBEDDED-PROGRAMMING, CC3220S, CC3220SF, ENERGIA, CC3200, UNIFLASH

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/721467/cc3220-simple-bootloader-example

器件型号:CC3220

各位、您能向我展示一下非常简单的引导地址源吗、它可以与串行闪存和程序存储器配合使用。 我可以通过 UART 加载这些内容。

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

    为什么不为此 目的使用嵌入式编程( www.ti.com/.../EMBEDDED-PROGRAMMING )?

    1月
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们必须拥有自己的自定义引导加载程序和引导加载程序协议。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    了解您是要使用 CC3220S (R)还是 CC3220SF 器件、这一点很重要。 如何设计 CC3220SF 芯片、创建自己的引导加载程序会稍微复杂一些。 由于 XIP 闪存(片上)闪存的内容由 ROM 引导加载程序与 sFlash 内的固件文件同步。 两种可能的方法:

    -仅从 RAM 执行代码、而不是从 XIP 闪存(S 和 SF)执行代码

    S (R):ROM 引导加载程序->将用户引导加载程序复制到 RAM ->从 RAM 运行用户引导加载程序->将固件复制到 RAM ->从 RAM 执行代码

    SF:ROM 引导加载程序->同步 XIP (用户 BooloLoader 文件)->从 XIP 运行用户引导加载程序->将固件文件复制到 RAM ->从 RAM 执行代码

    -从 XIP 闪存的顶部组执行代码(仅限 SF)

    SF:ROM 引导加载程序->同步 XIP (用户 BooloLoader 文件)->运行用户引导加载程序->从 XIP 的第二个组执行固件(在此阶段中、也可以将 XIP 的第二个组与固件文件同步)

    TI 不会以这种方式提供官方支持。 实施将由您决定。 我个人已经为 Energia 做了小启动器  ()。 此引导程序的主要思想来自上一代 SDK (CC3200)的引导加载程序。

    1月

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

    CC3220SF 的 I 计划

    >>链接

    我将花几个小时来看看

    通过 UART 进行安装? 还是另一种方式?

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

    很抱歉、我不理解您的问题。

    如果您希望从 XIP 闪存执行代码、唯一合理的选择是将代码加载到闪存的第二组。 这是可以实现的、但存在许多隐藏陷阱。 您应该考虑使用嵌入式编程。

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

    您可以在 SF 此处下载用于执行 Energia 代码的"简单引导加载程序"源代码: e2e.ti.com/.../2662274

    1月
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢!
    我想我了解您的引导加载程序是如何工作的。 它将 bin 文件从 UART 放入闪存、将文件复制到 RAM 并运行。
    我似乎可以将原始(CCS 编译文件) bin 文件复制到 UART 并运行它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    (笑声) 但是、您需要对文件进行编译、以便能够从 RAM 而不是从 XIP 闪存执行。 为此、您需要正确设置链接器文件。 例如、您可以从 SDK 中获取 CC3220S 器件的链接器文件。

    如果您的代码不大(全部存储在256KB RAM 中)、这种方法是可行的。

    1月

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

    我的自定义 OTA 更新如下所示:
    1)在新 PCB 上首先启动芯片-通过 UART 生产线编程器加载我的定制引导加载程序(CBL)(由 Uniflash 签名)并启动它;
    2) 2)通过 CBL (UART 器件)、使用主程序加载原始 bin、并将其另存为文件 main1.bin 以保存到外部 sFlash
    3) 3)如果 UART 断开连接-启动引导加载程序、将 main1.bin 复制到 RAM 并运行程序
    4) 4)如果我的服务器有 main2.bin -我的程序会将它从服务器下载到 sFlash、即 main2.bin
    5) 5)如果引导加载程序看到新文件-请运行该文件并删除旧的 main1.bin 并将 main2.bin 重命名为 main1.bin

    看起来不错、但我的芯片工作1-3秒、然后转至 HIB 180秒。
    这种"彼得鲁斯卡"(russisan 情况)不适合我们的工作。
    是否有任何方法可以将 bin 文件保存到 XIP 闪存并在自定义 OTA 更新后运行该文件?

    UPD:忘记了它
    >>从 XIP 闪存的顶部组执行代码
    如何操作?

    P.S.您在哪里找到 asm 代码列表?
    P.P.S.有点问题、但在 CCS 中、我可以看到 bin 文件的大小和 RAM 的使用情况?

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

    您好!

    正如我说过的、您可以将代码存储到 XIP 闪存的第二个组中、并从 bootlaoder 跳转到此代码以执行。 有关 XIP 闪存的详细信息,请参见 TRM ( www.ti.com/.../swru465 )第21章。 要写入 XIP 闪存、您可以使用\source\ti\devices\cc32xx\driverlib\flash.h

    - ASM 代码来自上一代(CC3200) SDK 的辅助引导程序。 但这不是一种火箭科学。 您还可以使用此代码从 XIP 闪存执行。
    -存储器区域在 CCS 工程的链接器文件(*。cmd 文件)中进行配置

    -为了确定存储器部分的大小、您可以使用 CCS 中的存储器分配工具


    1月

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

    我明白了。 第21.6章.
    正在尝试...

    -在哪里可以找到 cc322sf 的 asm 代码列表文档?
    不!) 我需要在哪里可以看到闪存和 RAM 的使用量(正如 Atmel Studio 编译后的控制台显示:"20188bytes of flash usage, 48% ram allocated")

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

    - CC3220使用 Cortex-M4内核,有关指令列表,您可以查看 ARM 参考手册( infocenter.arm.com/.../CIHJJEIH.html )
    -为了确定存储器段的大小、您可以使用 CCS 中的存储器分配工具(正如我在前一个回答中所写的那样)

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