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.

[参考译文] CCS/AMIC110:将代码刷写到 AMIC110时出现问题

Guru**** 2959640 points

Other Parts Discussed in Thread: AMIC110

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/938693/ccs-amic110-issue-in-flashing-the-code-to-amic110

器件型号:AMIC110

工具/软件:Code Composer Studio

您好!

我使用 的是 AMIC110、并将其配置为具有来自 Bechoff 的完整从站堆栈的 EtherCAT 从站。

在使用代码时、项目在我调试代码时工作、但当我将在调试模式下生成的相同二进制文件刷写到微控制器时、它不工作。

我使用"SPI_FLASH_writer_AM335X"加载二进制文件。

要刷写二进制文件、我已执行以下步骤:

步骤1:- 闪存引导加载程序- bootloader_boot_mcspi_a8host_debug_ti.bin (由于启用了 DDR、我已选择此选项)@偏移:0x00。  

步骤2:刷写应用程序(EtherCAT_SLAVE_FULL_AMIC11x_ARM.bin)@偏移量:0x20000

请告诉我在刷写过程中是否要进行任何更改

请为我提供一个解决方案、说明如何使代码在闪存后正常工作?

此致、

Hema

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

    您好、Hema、

    [引用 USER="Hema Priya"]步骤2:刷写应用程序(EtherCAT_SLAVE_FUL_AMIC11x_ARM.bin)@偏移量:0x20000[/QUERE]

    根据以下文档、McSPI 引导的应用映像格式也应为_ti.bin:  

    您可以尝试刷写应用程序的_ti.bin 文件吗?

    此致、
    弗兰克

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

    您好、Frank、

    我已使用 tiimage.exe 将.bin 文件转换为_ti.bin、并在偏移量0x20000处进行刷写。

    但代码仍然无法正常工作

    谢谢、此致

    Hema

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

    您好、Hema、

    请参阅以下有关引导加载程序调试的文档: https://software-dl.ti.com/processor-sdk-rtos/esd/docs/06_03_00_106/AM335X/rtos/index_Foundational_Components.html#bootloader-debugging

    是否可以尝试以下部分中列出的一些方法?  https://software-dl.ti.com/processor-sdk-rtos/esd/docs/06_03_00_106/AM335X/rtos/index_Foundational_Components.html#software-debug-steps

    此致、
    弗兰克

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

    您好、Frank、

    是否有任何其他方法可以将代码刷写到 AMIC110器件中?

    谢谢、此致

    Hema

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

    您好!

    当我尝试单独运行引导加载程序时、我收到错误消息:

    "程序的一个或多个部分属于不可写的存储器区域。 这些区域实际上不会写入目标。 检查链接器配置和/或存储器映射"。

    请帮助我了解如何继续

    谢谢、此致

    Hema

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

    您好、Hema、

    [引用 user="Hema Priya"]是否有任何其他方法可以将代码刷写到 AMIC110 器件?

    我不知道有任何其他方法对 SPI 闪存进行编程。 您使用的是什么板? 电路板上是否还有其他非易失性存储器?

    [引用 user="Hema Priya"]当我尝试单独运行引导加载程序时,收到错误消息:

    我建议将电路板的 GEL 文件添加的存储器映射与链接器命令文件和.map 文件中的存储器映射进行比较。

    要查找 GEL 文件、请在 CCS 中执行以下操作:

    • 启动目标
    • 选择 Tools -> GEL files

    您可以通过将鼠标悬停在弹出窗口中的 GEL 文件上、找到计算机上 GEL 文件的位置。  同一窗口将允许您检查 GEL 文件配置的调试器内存映射。 要查看此信息、请选择"Memory Map"。

    此致、
    弗兰克

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

    e2e.ti.com/.../AM335x_5F00_PRU_5F00_ICSS.gele2e.ti.com/.../iceAMIC110.gel

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

    您好!   

    上述帖子中的文件是 GEL 文件、当我打开引导加载程序的.map 文件时、我发现存储器配置如下所示、

    存储器配置

    名称      起点                   长度                           属性
    DDR0      0x00008000080000000     0x0000000010000000
    OCMCRAM 0x0000402f0400      0x00000001fbff
    *默认值*    0x0000000000000000    0xffffffffffffffffffffFFFF

    我认为两者都不同、现在如何解决这个问题

    谢谢、此致

    Hema

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

    您好、Hema、

    引导加载程序使用.map 文件中的存储器区域有多少?

    请参阅 AM335x TRM 表2-1。 L3内存映射。 在.map 文件中、我注意到"SRAM 内部"和"L3 OCMC0"已合并为.map 文件中的"OCMCRAM"。 OCMCRAM 的消耗量是多少?

    您可以尝试以下两项操作:
    1)修改 GEL 文件、以便将"SRAM 内部"和"OCMC-RAM"组合到映射中的单个存储器区域中。
    2)注释掉对 GEL_MapOn()的调用,以便将所有内存配置为 RAM。

    此致、
    弗兰克

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

    您好、Frank、

    1.当我注释 GEL_MapOn()时,我甚至无法加载代码

    2.当我将 GEL 文件修改为具有单个存储器时、仍会收到相同的错误消息。  

    "程序的一个或多个部分属于不可写的存储器区域。 这些区域实际上不会写入目标。 检查链接器配置和/或存储器映射"。

    当我使用闪存写入器加载代码时、此错误消息是否是导致固件未加载的原因?

    谢谢、此致

    Hema

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

    您好、Hema、

    [引用 user="Hema Priya"]当我注释 GEL_MapOn()时,我甚至无法加载代码

    当您尝试加载代码时会发生什么情况?

    [引用 user="Hema Priya">当我修改 GEL 文件以使用单个存储器时,仍会收到相同的错误消息。  [/报价]

    检查每个存储器区域中使用的存储器的.map 文件、并将其与 GEL 文件中的存储器区域定义进行比较。

    您是否观察到.map 文件中使用的未在 GEL 文件中定义的内存? GEL 文件中的区域定义是否在特定区域中使用过多的内存?

    [报价用户="Hema Priya"]当我使用闪存写入器加载代码时,此错误消息是否是导致固件未加载的原因?

    也许、我认为我们还没有足够的信息可以说。 您能否尝试从 PDK 刷写另一个简单示例(如 GPIO LED 闪烁)并查看是否启动?

    此致、
    弗兰克

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

    您好、Frank、

    我已经验证了.map 文件、但内存使用似乎还可以

    我尝试从 SPI 闪存写入器加载 LED 闪烁代码、即使该代码也不起作用。

    C:\ti\pdk_am335x_1_0_12\packages/ti\starterware\binary\gpio_app_led_blink\bin\am335x-evm\gcc\gpio_app_led_blink_a8host_debug_ti.bin

    即使我运行.out 文件、此 LED 闪烁代码也无法正常工作

     

    谢谢、此致

    Hema

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

    您好、Hema、

    您是否正在使用 AMIC110 ICE 板?

    遗憾的是、我目前无法访问 AMIC110板、因此无法使用 GPIO LED 闪烁示例应用调试此问题。

    您能否尝试刷写另一个在将其加载为.out 文件时有效的简单示例?

    此致、
    弗兰克