chengying1980 发表于 2014-11-19 17:02:12

stm32L151启动应用区的flash读保护后,是不是需要断电才有效?

产品是手持带电池,自己写了一个iap,每次只要通过iap升级一次应用程序,升级完后启动应用区的读保护,再次升级就不能成功,程序一直卡在去除读保护这部分,已经去除成功,复位一下系统重启,读保护还在。要拔电池才能把读保护去掉,才能升级成功,F1系列只要复位就可以了,难道L系列必须用断电才能去保护?

chengying1980 发表于 2014-11-21 09:04:55

没人用L写iap吗

发表于 2014-11-21 09:13:38

上电的时候关闭也不可以吗?

chengying1980 发表于 2015-1-5 08:37:20

可以了。官方历程经常关键时候掉链子,自己摸索常要花时间

dajin123 发表于 2015-1-20 13:38:32

去除度保护不是全片擦除吗?怎么还能iap?

你画我猜 发表于 2015-7-14 14:36:47

楼主你怎么加入的 读保护啊?我一加入读保护,程序就不执行了。
代码如下帮忙看看吧
现象:不加入读保护,程序运行正常,加入读保护后断电,在上电后灯不亮了,程序不运行了,硬件没有任何问题。
void Flash_RProt_ENABLE(void)
{
    u8 status;
    FLASH_Unlock();//解锁FLASH
    FLASH_OB_Unlock();//解锁选项字
    FLASH_ClearFlag(FLASH_FLAG_EOP|FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | FLASH_FLAG_SIZERR | FLASH_FLAG_OPTVERR);
    status=FLASH_OB_GetRDP();
    if(status==0)
    {
      FLASH_OB_RDPConfig(OB_RDP_Level_1);//Read protection of the memory
      FLASH_OB_Lock();
      FLASH_Lock();
    }
}

int main(void)
{
Flash_RProt_ENABLE();
Main_Init();//时钟初始化,IO口初始化
while(1)         
{LED1_OPEN()}

}

你画我猜 发表于 2015-8-11 16:58:07

使用stm32L152系列整体功能正常,不加入读保护的时候LED1,正常运行,当加入读保护后,程序下进去,关机开机后,LED1,不亮,程序供电没有问题,发现程序根本就不执行了,感觉单片机锁死了。   研究好几天了,希望大家帮忙看看吧。代码如下
void Flash_RProt_ENABLE(void)
{
    u8 status;
    FLASH_Unlock();//解锁FLASH
    FLASH_OB_Unlock();//解锁选项字
    FLASH_ClearFlag(FLASH_FLAG_EOP|FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | FLASH_FLAG_SIZERR | FLASH_FLAG_OPTVERR);
    status=FLASH_OB_GetRDP();
    if(status==0)
    {
      FLASH_OB_RDPConfig(OB_RDP_Level_1);//Read protection of the memory
      FLASH_OB_Lock();
      FLASH_Lock();
    }
}

int main(void)
{
Flash_RProt_ENABLE();
Main_Init();//时钟初始化,IO口初始化
while(1)         
{LED1_OPEN()}

}

你好我好大家好! 发表于 2015-8-11 18:09:27

帮顶               

幸福四叶草 发表于 2016-11-24 17:26:40

楼主怎么解决的
页: [1]
查看完整版本: stm32L151启动应用区的flash读保护后,是不是需要断电才有效?