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/CCStudio:Binay 文件作为变量存储

Guru**** 2576195 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/625054/ccs-ccstudio-binay-files-as-variable-storage

器件型号:CCStudio

工具/软件:Code Composer Studio

你(们)好。

如果我创建包含结构变量的 bin 文件、然后在 C5517器件上使用该文件、会发生什么情况?

我的目标是创建包含矢量的 bin 文件、然后将该文件复制到 EPROM、然后从 C5517器件读回矢量(EMIF intarface 到 EPROM)。

编译器是否导致不兼容?

假设我有这个矢量:

uint16 Buffer[10]={0、1、2、3、4、5、6、7、8、9};

然后、我使用缓冲区矢量创建一个 bin 文件。
一旦我将其写入 EPROM 并使用 EMIF 指向 EPROM、我是否能够直接读取 Buffer[0]?

谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已通知软件团队。 他们的反馈将在此处发布。

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

    那么您已经在使用 EMIF 进行 EPROM 访问了吗?
    如果 EMIF 配置为 EPROM 访问、则可以在项目的.cmd 文件中设置内存段、如下所示:

    存储器

    Microchip_EPROM (RIX):origin = 0x800000,length = 0x0400000 //您使用的 EPROM 源地址及其长度等


    然后:

    部分

    .text> SARAM align = 4
    .switch> SARAM
    .const> SARAM
    .cinit> SARAM

    (笑声)
    (笑声)
    (笑声)

    .spxHeap> DARAM、fill= 0xBEEF
    .spxScratch> DARAM、fill= 0xABCD

    EPROM> Microchip_EPROM


    您可以使用以下声明或类似的内容:

    #pragma DATA_SECTION(Buffer[]、".Microchip_EPROM"); //告知编译器 Buffer array 是 Microchip_EPROM 数据段
    uint16 *缓冲区= 0x800000; //声明指向 uint16的指针、称为 Buffer 并设置为预期的 EPROM 地址

    然后、您可以尝试读取 Buffer[]数组以查看它是否包含您使用 EPROM 编程器写入的值。

    您可能需要根据自己的需要对其进行细微修改,并直接读取#pragma DATA_SECTION、MEMORY、SECTION 以查看您可以指定哪些额外的详细信息,以便让编译器/链接器知道您对存储器映射等的意向

    无法判断它是否能正常工作,因为我不使用 EMIF 用于 EPROM,而是用于 SDRAM ... 不过、您可能会发现它上的变体能够满足您的需求。

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

    您好!

    另外一个想法是,您可能还需要查看 malloc(),以便将阵列动态分配到 EPROM 内存空间。

    谢谢、MM