搜索
bottom↓
回复: 7

stm8 Option byte 修改问题:Error on Option Bytes ...及解决办法

[复制链接]

出0入0汤圆

发表于 2013-5-9 23:27:53 | 显示全部楼层 |阅读模式
最近调试STM8的I2C,用的是stm8s105k4,datasheet里面显示两个引脚的SDA和SCL功能为option bit,则需要我修改存储在EEPROM里面的Option Byte,参考了三年前的帖子,abner的“stm8蜂鸣器(beep)发声实验,程序里修改OptionByte位,软件复位”,基于其中的代码进行修改,准备用IAP的方法:

void main(void)
{
  ......
  FLASH_DeInit();
  FLASH_Unlock(FLASH_MEMTYPE_DATA);
  FLASH_SetProgrammingTime(FLASH_PROGRAMTIME_STANDARD);
  
  if(FLASH_ReadOptionByte(0x4803) != 0x60)
    {
        FLASH_ProgramOptionByte(0x4803,0x60);//将相应的管脚remap为SDA SCL ( 有一些误操作,应该是赋值0x40,但是我想问题应该不大,大不了多remap一个引脚吧)
        WWDG->CR = 0x80;//复位stm8
    }
......
}

采用ST-LINK的SWIM进行debug,发现程序运行在WWDG->CR之后就跑飞了。。。。
更加悲剧的是,当我第三次进行debug的时候,发现IAR报错,主要是“Error on Option Bytes (complementary bytes). Reprogram Option Bytes of device”相关的问题。上网查了资料,就准备用STVP的ICP方法进行erase:将Option Byte部分烧写成默认值。但是发现无法正确烧写,也是报错“Error on Option Bytes (complementary bytes). Reprogram Option Bytes of device”。看到下面的log窗口显示的是Verify eroor,所以将Edit->Preferences->Verify after programming 勾掉,这样一来就可以对Option Byte进行擦除了。但是还是显示“Error on Option Bytes (complementary bytes). Reprogram Option Bytes of device”的错误。。。。

仔细分析以后,认为是擦除不彻底,查看了STM8的application note :PM0047:STM8 Flash programming。这篇文档的P14里面有表,下面有一句话:

When ROP is removed, the whole memory is erased, including option bytes
抱着死马当活马医的态度,就在Option Byte里面的ROP改为disable,再enable。。。最后问题解决了,又可以正常debug了!!!

网上关于这个问题的详细解答较少,所以将我迷迷糊糊的debug经历分享出来。还请高人点拨其中的关键点

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

发表于 2013-9-16 23:01:24 | 显示全部楼层
专业  !!!
When ROP is removed, the whole memory is erased, including option bytes
抱着死马当活马医的态度,就在Option Byte里面的ROP改为disable,再enable。。。最后问题解决了,又可以正常debug了!!!

出0入0汤圆

发表于 2013-12-30 16:47:47 | 显示全部楼层
楼主,刚好遇到你这个问题,解决了。我是在 定时器开启后,没开中断出现问题的,很无语

出0入0汤圆

发表于 2014-1-5 19:12:53 | 显示全部楼层
灰常感谢!!!!!!!!!!!刚好遇到这个问题,原以为芯片坏了。花了几分钟就找到了这个贴,立马照做,立马就好了

出0入0汤圆

发表于 2014-7-29 15:50:06 | 显示全部楼层
多谢分享!

出0入0汤圆

发表于 2014-10-12 11:50:03 | 显示全部楼层
感谢 oiloilpig 分享

出0入0汤圆

发表于 2015-2-8 00:17:15 | 显示全部楼层
本帖最后由 wfy 于 2015-2-8 00:22 编辑

按楼主的方法解决了这个问题,但是出现了新的问题:
Sun Feb 08, 2015 00:08:17: Errors while setting configuration with MCU name STM8S103F3P: gdi-error [40301]: The Flash Memory Read-out protection option must be disabled for debug. Disabling this option will first erase  
不过再将其设置为OFF后用STVP烧入后正常,用IAR可以正常下载了。

出0入0汤圆

发表于 2015-5-20 10:17:08 | 显示全部楼层
你好,最近正纠结OPTION BYTE的问题。遇到楼主所说的类似问题。
能请教一下,“就在Option Byte里面的ROP改为disable,再enable。。。最后问题解决了,又可以正常debug了”,这个具体应该怎样操作呢?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-9-28 15:23

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表