第一种:因为初始化CurWrAddress为0,在刚上电时候,恰巧碰到有一页状态为RECEIVE_DATA(概率不大),则在执行EE_ReadVariable函数的时候,Address=CurWrAddress-2;导致得到一个非法地址。 第二种:PAGE1满 要转给PAGE0,还是出在EE_ReadVariable函数里,Address=CurWrAddress-2;因为EE_PageTransfer中在转移数据之前,重新...
51CTO博客已为您找到关于FLASH_EraseSector 函数报错的相关内容,包含IT学习相关文档代码介绍、相关教程视频课程,以及FLASH_EraseSector 函数报错问答内容。更多FLASH_EraseSector 函数报错相关解答可以来51CTO博客参与分享和学习,帮助广大IT技术人实现成长和进步。
uint32_t sector = 0; if((Address < ADDR_FLASH_SECTOR_1) && (Address >= ADDR_FLASH_SECTOR_0)) { sector = FLASH_Sector_0; } else if((Address < ADDR_FLASH_SECTOR_2) && (Address >= ADDR_FLASH_SECTOR_1)) { sector = FLASH_Sector_1; } else if((Address < ADDR_FLASH_SECTOR_3)...
1.Flash_Erase函数 1.函数原型:Uint16 Flash_Erase(Uint16 SectorMask, FLASH_ST *FEraseStat); 2.功能描述:用来擦除flash。DSP有A~H共八个扇区,可以通过这个函数擦除八个扇区的任意组合; 3.输入参数: 1)SectorMask:16位无符号数,用来指示要擦除的flash扇区,其中低8位有效,0~7位的逻辑分别代表是否擦除...
其中Flash_EraseSector函数来执行擦除操作,FLASH_MAIN_BASE参数表示要擦除的扇区的地址。对于RSL10来说,编程地址是0x00100000(STM32是0x00800000),所以FLASH_MAIN_BASE对应的地址是0x00100000;而且RSL10的每个扇区是2k,所以,执行以上代码时,会擦除0x00100000+2k的空间,也就是0x00100000~0x001007FF的flash内容会被...
在库里边,FLASH的Sector编号定义如下,这是供库里边的几个函数使用的。需要将地址转换成Sector编号: #define FLASH_Sector_0 ((uint16_t)0x0000) /*!< Sector Number 0 */ #define FLASH_Sector_1 ((uint16_t)0x0008) /*!< Sector Number 1 */ ...
通过调用驱动函数FD_EraseSectors擦除指定的扇区,函数的第一个入口参数为要擦除的起始扇区的编号,这里我们把first_secure_sector_idx减去我们想要往前让出的扇区的个数,就是我们要擦除的扇区的编号,我们设置为4,从安全flash边界往前让出4个扇区进行擦除,第二个入口参数为要擦除的扇区的个数,我们设置为1,让其擦...
函数的第一个参数是扇区编号,第二个参数填写自己芯片的供电电压范围.一般都是填写 VoltageRange_3 2.2 关于怎么获取这个编号 所以擦除一般都写成: FLASH_EraseSector(/*获取地址对应的扇区编号*/STMFLASH_GetFlashSector(要擦除的地址), VoltageRange_3)
case 0x30: //sector erase …… case 0x10: //chip erase *FLASH_5555 = type; while((*FLASH_5555 & 0x80) != 0x80); // (1) type的值为0x10,while会不会永远在这个空循环中?*FLASH_5555的值如何改变? for(i = 0; i < CHIP_SIZE; i++) ...
在库里边,FLASH的Sector编号定义如下,这是供库里边的几个函数使用的。需要将地址转换成Sector编号: #define FLASH_Sector_0 ((uint16_t)0x0000) /*!< Sector Number 0 */ #define FLASH_Sector_1 ((uint16_t)0x0008) /*!< Sector Number 1 */ ...