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/CODECOMPOSER:f28379d 的闪存 API 库路径

Guru**** 2535150 points
Other Parts Discussed in Thread: C2000WARE, CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/602218/ccs-codecomposer-flash-api-libray-path-for-f28379d

器件型号:CODECOMPOSER
Thread 中讨论的其他器件:C2000WAREcontrolSUITE

工具/软件:Code Composer Studio

大家好、

处理 F28335引导加载程序移植到 f28379d 时、对闪存库有一点疑问。

F28335 Flash28335_API_V210.lib 的闪存 API 库可替换 为 f28379d 的 F021_API_F2837xD.lib。 请确认这一点。

我可以在下面的路径中看到两个库、F021_API_F2837xD.lib 和 F021_API_F2837xD_FPU32.lib、两者之间的区别是什么。

TI\C2000\C2000Ware_1_00_01_00\libraries\flash_api\f2837xd\lib

Flash28335_API_V210.lib、在这里、我认为向库添加了版本号是对的吗?
TI\C2000\C2000Ware_1_00_01_00\libraries\flash_api\F2833x\28335\lib

谢谢

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

    大家好、

    我  将 Flash28335_API_V210.lib 替换为  F021_API_F2837xD.lib、然后开始给出下面的构建错误、

    请告诉我 、我的方向正确、我开始研究如何解决我的应用中的以下构建问题。

    秘书长的报告

    "./2837x_flash_lnk_cpu1.cmd"、行73:错误#10265:无有效内存

     可用于放置"Flash28_API"的范围(NULL)

    "./2837x_flash_lnk_cpu1.cmd"、行73:错误#10099-D:程序将不适用

     存储器中。  对齐/分块的运行放置失败

     "Flash28_API"部分大小为0x0页0

    未定义        第一个参考

     符号           文件中   

    ------        --------

    _Flash28335_DepRecover ./flash.obj   

    _Flash28335_Erase   ./flash.obj   

    _Flash28335_Program  ./flash.obj   

    _Flash_CPUScaleFactor ./flash.obj   

    秘书长的报告

    谢谢

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

    已参考升级套件和 C2000器件都无法找到 f28379d 的等效 F28335方法(Flash28335_DepRecover、Flash28335_Erase、Flash28335_Program、Flash_CPUScaleFactor)。

    TI\C2000\C2000Ware_1_00_01_00\libraries\flash_api\f2837xd

    TI\controlSUITE\device_support\F2837xD\V210\doc\FlashAPI_Doc\SPNU595.pdf

    请告诉我有关上述内容的任何评论。

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

    根据 www.ti.com/.../spnu629.pdf、可以找到两个 API 的等效方法、

    Flash28335_Erase = Fapi_issueODE19 CommandWithAddress()

    Flash28335_Program = Fapi_issueProgrammingCommand ()

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

    正如您在 SPNU629中可能已经注意到的那样,您的应用程序应该将运行频率指定为 Fapi_initiatalizeAPI()函数的一个参数。 因此、在 F28379d 器件中、您无需使用 Flash_CPUScaleFactor。

    关于 DepRecover、F28379d 中使用的闪存技术可防止发生删除。 因此、无需删除恢复算法。

    关于 F021_API_F2837xD.lib 和 F021_API_F2837xD_FPU32.lib 之间的差异:请参阅 SPNU629的"2.3.2.2分发文件"部分。

    如果您有任何疑问、请告诉我。

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

    感谢您的回复、我正忙于处理其他接口。

    今天开始研究闪存编程。

    FLASH_programming 示例放置在 DUAL 文件夹下是否有任何具体原因?
    C:\ti\c2000Ware_1_00_01_00\device_support\f2837xd\examples\dual\flash_programming\cpu01

    在 flash_programming cpu01和 cpu02下,再次出现了任何注释。

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

    Ashok、

    该示例位于双文件夹下、因为闪存编程适用于两个内核、它们共享公共泵。  

    谢谢、此致、
    Vamsi

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

    您能否在 fapi_issueProgrammingCommand() API EccBuffer、EccBufferSizeInBytes 参数上进行澄清,只要使用 omodes (Fapi_DataOnly、Fapi_AutoEccGeneration),参数值将为零,对吗?

    秘书长的报告
    oReturnCheck = fapi_issueProgrammingCommand ((UINT32 *) u32Index、
    Buffer + I、
    8、
    0、
    0、
    Fapi_DataOnly);
    秘书长的报告
    如果我们使用其他模式(Fapi_DataAndEcc、Fapi_EccOnly),则用户必须计算 ECC 参数(使用诸如汉明之类的某些参数),上述参数将被分配相同的值,对吗?

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

    如"表7. 使用不同的编程模式"的 SPNU629文档中、您提到的参数仅用于 Fapi_DataAndEcc 和 Fapi_EccOnly 模式。 在其他模式下、不使用它们。 因此、值无关紧要-零是可以的。

    如果您的应用程序使用 F2837xD MCU 上运行的代码计算 ECC,您可以使用 SPNU629中提到的 Fapi_calculateECC()函数。 如果您的应用需要计算主机上的 ECC、您可以使用 SPNU629的附录 E 中提供的 ECC 计算算法。

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

    您好、Vamsi、

    感谢您的回复。

    简单示例:现在正在使用一个用例,使用 Fapi_doMarginiad()闪存 API 库写入闪存中的数据,即扇区 C,应该能够在目标运行后将串行控制台作为独立项目发送到 PC,希望它能够正常工作。

    谢谢

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

    只要您对 ECC 进行编程,就应该能够使用 Fapi_doMargini()函数读取闪存数据。

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

    您好、Vamsi、

    我不理解以下陈述、请您解释一下。

    (小部分

    只要您对 ECC 进行编程,就应该能够使用 Fapi_doMargini()函数读取闪存数据。

    (小部分

     

    fapi_doMarginiad()按预期工作,以下是本帖子 e2e.ti.com/.../ASHOK_5F00_read_5F00_flashapi.zip 附带的代码,如果您有意见,请告诉我。

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

    Ashok、

    在 Fapi_doMarginiad()上阅读您的第一篇文章时,我想您会询问您是否能够使用此函数读取闪存。  因此、我提到您还应该对 ECC 进行编程、以便在使用此函数读取闪存时不会出现 ECC 错误。

    希望这能澄清。

    谢谢、此致、

    Vamsi