打印

FLASH_Write_Protection问题

[复制链接]
7608|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
maleitrue|  楼主 | 2008-11-22 15:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近做BOOTLOAD试验,需要用到FLASH_Write_Protection功能,看了stm32库和资料,使用库函数提供的样板,竟然无法保护指定扇区,捣鼓了一天都没进展,希望有经验的老兄给点意见

程序就是库例程,稍作改动,程序在FLASH调试,板子是199的万利板子

FLASH编程试验是可以使用的,就是
FLASHStatus = FLASH_EnableWriteProtection(FLASH_WRProt_Pages124to127); 状态返回FLASH_ERROR_PG

不知谁遇到过哦,给点提示
沙发
maleitrue|  楼主 | 2008-11-22 16:14 | 只看该作者

这是程序

/* Private functions ---------------------------------------------------------*/
/*******************************************************************************
* Function Name  : main
* Description    : Main program
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
vu32 WRPR_Value = 0xFFFFFFFF, ProtectedPages = 0x0;
int main(void)
{
  /* RCC Configuration */
  RCC_Configuration();  
  
  /* NVIC Configuration */
  NVIC_Configuration();

  /* Unlock the Flash Program Erase controller */  
  FLASH_Unlock();

  FLASH_ClearFlag(FLASH_FLAG_BSY | FLASH_FLAG_EOP|FLASH_FLAG_PGERR |FLASH_FLAG_WRPRTERR);

  /* Get pages write protection status */
  WRPR_Value = FLASH_GetWriteProtectionOptionByte();
  ProtectedPages = WRPR_Value & FLASH_WRProt_Pages124to127;


  if (ProtectedPages != 0x00)
  {/* Pages not write protected */

    FLASHStatus = FLASH_EnableWriteProtection(FLASH_WRProt_Pages124to127);    
    
    /* Generate System Reset to load the new option byte values */
    NVIC_GenerateSystemReset();
  }

  while(1)
  {
  }
}

使用特权

评论回复
板凳
maleitrue|  楼主 | 2008-11-24 10:59 | 只看该作者

.....

难道没人用过?就是stm32库提供的样板程序,可以编程FLASH,就是不能写保护FLASH

我单步运行和连续运行都不可以,我跟踪调试

运行这2句话会自动打开,CR_OPTWRE
FLASH->OPTKEYR = FLASH_KEY1;
FLASH->OPTKEYR = FLASH_KEY2;
然后下面
FLASH->CR |= CR_OPTPG_Set;

if(WRP0_Data != 0xFF)
    {
      OB->WRP0 = WRP0_Data; <------------------- 运行这句话就产生FLASH_ERROR_PG
      
      /* Wait for last operation to be completed */
      status = FLASH_WaitForLastOperation(ProgramTimeout);
    }
我对着手册一步一看,没发现什么不对的,就是无法写保护

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

4

帖子

0

粉丝