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/TMS320F28377S:TMS320F28377S 的第1组上的闪存编程问题

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

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/705320/ccs-tms320f28377s-the-flash-programming-problem-on-bank1-of-tms320f28377s

器件型号:TMS320F28377S
Thread 中讨论的其他器件:controlSUITEC2000WARE

工具/软件:Code Composer Studio

您好!

我使用了 LAUNCHXL-F28377S 测试闪存编程。 代码是来自 controlSUITE 的"flash_programming"。  此示例代码已成功从组0的 B 部分写入和读取数据。 但是、当我通过将 SectionZ 地址添加到 FLASH_programming_c28.h 中来更改为 BANK1的 SectionZ 时

#define Bzero_SectorZ_start 0xFA000             /*Start Address:Sector 0 of Bank under Test*/
#define Bzero_SectorZ_end 0xFBFFF            /*Start Address:Sector 0 of Bank under Test*/

然后将所有 Bzero_sectorb_start 更改为 Bzero_SectorZ_start。 但是、当程序验证 编程的值时会发生错误。 oReturnCheck 返回失败。  

//验证编程的值。 Program 步骤本身会进行验证
//进行。 此验证是可以执行的第二次验证。
oReturnCheck = fapi_doVerify (((uint32 *) u32Index、
              4、
              Buffer32+(I/2)、
              oFlashStatusWord (&O);
if (oReturnCheck!= Fapi_Status_Success)

//检查闪存 API 文档以了解可能的错误
       Example_Error (oReturnCheck);

如果有人能提出一些建议、我将不胜感激。 谢谢。

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

    您是否使用最新的 C2000Ware 示例对闪存进行编程?

    在最新的示例中、已定义 Bank1的 SectorZ。

    C:\ti\c2000Ware_1_00_04_00\device_support\f2837xs\examples\cpu1\flash_programming\cpu01

    如果仍有错误、请尝试并告知我。

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

    John、

    如果查看该示例、您会注意到在切换到组1之前完成了以下步骤(每当闪存操作的目标组更改时、都需要执行这些步骤):

    1)为 FMC1分配泵信号量(因为组1连接到 FMC1)

    2) 2)通过将 FMC1包装程序地址作为参数1来调用 Fapi_initiatizeAPI ()

    oReturnCheck = Fapi_initializeAPI (F021_CPU0_W1_BASE_ADDRESS、200);

    3) 3)调用 fapi_setActiveFlashBank(),将 Fapi_FlashBank1作为参数,以初始化闪存组1以执行进一步的闪存操作

    oReturnCheck = Fapi_setActiveFlashBank (Fapi_FlashBank1);

     

    请搜索"当在 F2837xS 双组器件中使用闪存 API 时、为什么当两组被分配给同一个内核时、我们需要在两组之间切换泵信号量?" 链接: http://processors.wiki.ti.com/index.php/C2000_Flash_FAQ#Flash_API_wiki   

    谢谢、此致、
    Vamsi