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.

[参考译文] TMS320F280039:128位对齐-闪存 API

Guru**** 2394305 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1305485/tms320f280039-128-bits-aligned---flash-api

器件型号:TMS320F280039
主题中讨论的其他器件:C2000WARE

尊敬的 C2000专家:

我发现 F28003x 器件的闪存 API 需要在参考手册中有128位对齐、这会使 FLASH_DO_verify 始终失败。 您能帮助我了解如何将变量进行128位对齐吗?

我已将 Ded cmd 文件配置为具有128位对齐、但映射文件中变量的地址不会改变。

CMD 文件如下所示:

/*全局共享 RAM (CPU、HIC、DMA)*/
RAMGS0123:origin = 0x0000C000、length = 0x00004000

    codestart        : >  BEGIN                   ,  ALIGN(8)
    .text            : >  FLASH_BANK0_SEC3TO14    ,  ALIGN(8)
    .cinit           : >  FLASH_BANK0_SEC3TO14    ,  ALIGN(8)
    .init_array      : >  FLASH_BANK0_SEC3TO14    ,  ALIGN(8)
    .switch          : >  FLASH_BANK0_SEC3TO14    ,  ALIGN(8)
    .config          : >  DFLASH_BANK0_SEC15      ,  ALIGN(8)
    .checksum        : >  CHECKSUM
    .config_checksum : >  DFLASH_CHECKSUM
    .mfr_model_loc   : >  MFR_MODEL_FLASH
    .reset           : >  RESET                TYPE = DSECT

    .data            : > RAMGS0123
    .stack           : >  RAMM1

    .bss             : > RAMGS0123            ,  ALIGN(8)
    .sysmem          : >  RAMM0
    .const           : >  FLASH_BANK0_SEC3TO14,  ALIGN(8)

  .bss        :> RAMGS0123       , 对齐(8)

C 文件定义:

char ilbuck_sn_cfg[32]="POWER2023_012";

映射文件中数组的起始地址未进行128位对齐。  

0   0000f77f ilbuck_SN_cfg            

我的编译器版本是22.6.0.LTS

此致、

插孔

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

    您好、Jack、

    有关闪存 API 使用示例、请检查 C2000Ware 中提供的链接器命令文件。

    它显示了变量的对齐方式。  

    如果您需要进一步的帮助、请告诉我。

    谢谢。此致、
    瓦姆西

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

    Vamsi、

    我在 C2000Ware 中找不到任何适用于 F28003x 器件的闪存 API 示例、您能告诉我它位于何处吗?

    我想我已经遵循了示例 cmd 文件来配置128位基本地址。

    顺便说一下、用户指南指出、  Fapi_doVerify API 中的指针 pu32CheckValueBuffer 应该是128位对齐的、但它在64位对齐的情况下仍然有效、您能否帮助我了解原因?

    此致、

    插孔

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

    插孔、

    请在 C2000Ware_5_01_00_00\driverlib\f28003x\examples\flash\flashapi_ex1_programming.c 中查找示例。

    和相应的链接器命令文件: C2000Ware_5_01_00_00\device_support\f28003x\common\cmd\28003x_flash_api_lnk.cmd。

    64位对齐可行、但128位对齐性能更佳。

    谢谢。此致、
    瓦姆西