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