看看我写的接口,暂时没发现问题:
- /*!
- \brief 连续擦除多个扇区
- \param[in] sec_num 起始扇区号( FLASH_Sector_0 ~ FLASH_Sector_23)
- \param[in] sec_count 扇区数量
- \retval none
- */
- ErrStatus BSP_fmc_erase_sectors(uint32_t sec_num, int sec_count)
- {
- uint8_t index = 0;
- fmc_unlock();
- /* clear pending flags */
- fmc_flag_clear(FMC_FLAG_END | FMC_FLAG_OPERR | FMC_FLAG_WPERR\
- | FMC_FLAG_PGMERR | FMC_FLAG_PGSERR);
- index = Fmc_get_Sector_index( sec_num );
- for(int i = 0; i < sec_count; i++)
- {
- fmc_sector_erase(CTL_SN(index + i));
- //printf("Erase sector index = %d!\r\n", (index+i));
- }
- /* lock the flash program erase controller */
- fmc_lock();
- return SUCCESS;
- }
|