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.

[参考译文] TMS320F28069:闪存擦除问题

Guru**** 2540720 points
Other Parts Discussed in Thread: CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1166243/tms320f28069-flash-erase-question

器件型号:TMS320F28069
Thread 中讨论的其他器件:controlSUITE

您好专家、  

由于缺乏电源、我的客户将其代码从 F28067移植到 F28062。

他们发现这两个部件的闪存扇区不同。

F28062的一个扇区是8K

 F28067的一个扇区是16k。

因此、当他们调用函数'Flash_Erase (sectorb、&FlashStatus)'时、他们需要询问

代码如何判断擦除时间?

我在 controlSUITE 中找到了一些演示。 它们具有定义。

#if (FLASH_F28069 || FLASH_F28068 || FLASH_F28067 || FLASH_F28066)
#define FLASH_START_ADDR  0x3D8000
SECTOR Sector[8]= {
         (Uint16 *) 0x3D8000,(Uint16 *) 0x3DBFFF,
         (Uint16 *) 0x3DC000,(Uint16 *) 0x3DFFFF,
         (Uint16 *) 0x3E0000,(Uint16 *) 0x3E3FFF,
         (Uint16 *) 0x3E4000,(Uint16 *) 0x3E7FFF,
         (Uint16 *) 0x3E8000,(Uint16 *) 0x3EBFFF,
         (Uint16 *) 0x3EC000,(Uint16 *) 0x3EFFFF,
         (Uint16 *) 0x3F0000,(Uint16 *) 0x3F3FFF,
         (Uint16 *) 0x3F4000,(Uint16 *) 0x3F7FFF,
};

#elif (FLASH_F28065 || FLASH_F28064 || FLASH_F28063 || FLASH_F28062)
#define FLASH_START_ADDR  0x3E8000
SECTOR Sector[8]= {
         (Uint16 *) 0x3E8000,(Uint16 *) 0x3E9FFF,
         (Uint16 *) 0x3EA000,(Uint16 *) 0x3EBFFF,
         (Uint16 *) 0x3EC000,(Uint16 *) 0x3EDFFF,
         (Uint16 *) 0x3EE000,(Uint16 *) 0x3EFFFF,
         (Uint16 *) 0x3F0000,(Uint16 *) 0x3F1FFF,
         (Uint16 *) 0x3F2000,(Uint16 *) 0x3F3FFF,
         (Uint16 *) 0x3F4000,(Uint16 *) 0x3F5FFF,
         (Uint16 *) 0x3F6000,(Uint16 *) 0x3F7FFF,
};
#endif

客户是否必须在项目中添加相同的代码?

此外、他们发现8K 擦除也可以在 F28067中成功、他们是否可以对这两个项目使用相同长度的组、因为这是针对客户中的同一个项目。

BR

Emma

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

    尊敬的 Emma:

    我们的团队将在一天或两天内回来与您联系。

    谢谢、此致、
    Vamsi

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

    Emma、

    尽管闪存扇区大小/地址在器件上发生了变化、擦除仍按扇区完成、因此无论在调用 API 时器件如何、扇区 B 都是正确的地址。  因此、调用扇区 B 作为参数的擦除 API 将始终有效、但根据器件的不同、闪存的数量/地址将被擦除。

    客户应将上述内容添加到他们的代码中、但我认为这会增加代码交换/移动、以便了解相关代码部分的寻址。

    如上面所述、地址已更改、包括闪存起始地址和扇区边界的大小。  在迁移过程中、客户需要同时考虑这两个因素、我知道起始地址是明显的;但是对于闪存编程/擦除、他们需要判断他们的 API 调用是否应该改变;也就是说、如果之前他们只擦除编程扇区 B; 这些地址现在位于较小器件上的扇区 C 和 D 中。

    我不确定在28067上8K 擦除意味着什么、擦除始终按扇区分类、大小由器件确定。

    最棒的

    Matthew