【IAP】STM32不同容量大小芯片页大小不一致,擦除需注意

今天升级完发现跳转不了,然后用JLINK读取发现APP区域前1K也就是0X400的空间是空的,而后面的都能和正常APP大小对应,所以看是哪里多擦了一块

FLASH_Status CAN_BOOT_ErasePage(uint32_t StartPageAddr,uint32_t EndPageAddr)
{
   
  uint32_t i;
  FLASH_Status FLASHStatus = FLASH_COMPLETE;

  FLASH_Unlock();
  FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);	

  for(i = StartPageAddr;i <= EndPageAddr;i += PAGE_SIZE){
   
    FLASHStatus = FLASH_ErasePage(i);
    if(FLASHStatus!=FLASH_COMPLETE){
   
      FLASH_Lock();
      return	FLASHStatus;	
    }
  }
  FLASH_Lock();
  return FLASHStatus;
}
#if defined (STM32F10X_MD) || defined (STM32F10X_MD_VL)
 #define PAGE_SIZE                         (0x400)    /* 1 Kbyte */
 #define FLASH_SIZE                        (0x20000)  /* 128 KBytes */
#elif defined STM32F10X_CL
 #define PAGE_SIZE                         (0x800)    /* 2 Kbytes */
 #define FLASH_SIZE                        (0x40000)  /* 256 KBytes */
#elif defined STM32F10X_HD
 #define PAGE_SIZE                         (0x800)    /* 2 Kbytes */
 #define FLASH_SIZE                        (0x80000)  /* 512 KBytes */
#elif defined STM32F10X_XL
 #define PAGE_SIZE                         (0x800)    /* 2 Kbytes */
 #define FLASH_SIZE                        (0x100000) /* 1 MByte */
#else 
 #error "Please select first the STM32 device to be used (in stm32f10x.h)"    
#endif  

结果发现芯片与前芯片不一样,之前页大小是1KB,现在是2KB,而自定义的校验空间只有1KB,所以擦校验空间FLASH多擦了1KB,于是扩大校验地址到2KB,APP区域后移1KB就好了

相关推荐

  1. Unity UI效果

    2024-01-18 16:38:04       37 阅读
  2. oracle rman的大小一定比segment的大小

    2024-01-18 16:38:04       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-18 16:38:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-18 16:38:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-18 16:38:04       87 阅读
  4. Python语言-面向对象

    2024-01-18 16:38:04       96 阅读

热门阅读

  1. UnityShader UsePass介绍

    2024-01-18 16:38:04       56 阅读
  2. Vue-组件缓存-keep-alive

    2024-01-18 16:38:04       53 阅读
  3. 边缘计算和联邦学习的联系

    2024-01-18 16:38:04       49 阅读
  4. 边缘计算的挑战和机遇——数据安全与隐私保护

    2024-01-18 16:38:04       61 阅读
  5. 【无标题】

    2024-01-18 16:38:04       54 阅读
  6. 华为:交换机忘记console密码重置

    2024-01-18 16:38:04       180 阅读
  7. SpringBoot异常处理和单元测试

    2024-01-18 16:38:04       58 阅读
  8. Vue3 动态设置 ref

    2024-01-18 16:38:04       63 阅读