我使用RLINK烧录STM8S207MB:
第一次烧录(STVP)时,程序运行正常;
然后修改一个程序参数(绝对不会影响烧录), 再次烧录:
在烧程序代码部分(PROGRAM MEMORY)时正常,
而在烧录选项字节时,出现" ERROR ON OPTION BYTES(COMPLEMENTARY BYTES, REPROGRAM OPTION BYTES OF DEVICE."
请问哪位高手遇到过相同情况, 如何解决?
谢谢!
记得这个现象stvp是可以解决的。
好像是会弹出个窗口,然后要选择某个OptionBytes地方,除能RDP。
选项字节里的确有个"READ OUT PROTECTION ON"
但是我选了之后,它提示"一旦选中, 以后就无法再读取芯片内部的数据"
因为是FAE的DEMO板, 因此我不敢轻易尝试.
请问, 是否是上面那个选项 (ROP ON) ?
谢谢!
谢谢楼上各位的答复.
我现在是直接烧录代码到芯片中去, 所以不存在仿真的问题.
按照以上说法, 启动ROP ON后, 的确可以刷新选项字节内容, 芯片上电后还是不能工作,
但是一旦要刷新"PROGRAM MEMORY",则显示" 芯片保护".
而一旦改回ROP OFF, 再烧录, 则又显示"选项字节的互补字节错误".
请高手指点.
呵呵,找Rlink技术支持问问。
没用过Rlink,只用过STlink。
记得早期的STVD也遇到过选项字节错误的情况,当时我还给EP868弄了个芯片复生的功能。后来发现STVD是可以解决这个问题的。建议检查下STVD版本,新版本可能更好。
要不买个我的EP868,既可以仿真,又可以脱机编程,还可以获得俺的进一步技术支持。
EP868的“芯片复生”功能(实际上是芯片擦除功能,呵呵)也还在,出现选项字节错误的情况时,只需用这个功能擦除芯片即可。
谢谢以上各位高手的指教.
现在我已经发现它的问题所在:
因为这个程序是FAE给的DEMO, 里面已经有对选项字节的初始化.
如果我删除这一段, 烧录时就不会报故障, 但是仍然不能运行(芯片没反应)!
加上去之后, 就报那个选项字节错误.
这样, 就有三个问题:
为什么我第一次烧录可以运行(同样带选项字节初始化),而以后就烧录不成功了呢?
为什么我删除选项字节初始化之后再次烧录, 即使烧录成功, 芯片也没有反应呢?
如果控制程序中已经有了选项字节的初始化, 然后用STVP烧录时又有个选项字节页面, 它是不是冲突了呢?
到底听谁的啊?
请高手指点.
呵呵,有FAE支持就好办了。
1、为什么我第一次烧录可以运行(同样带选项字节初始化),而以后就烧录不成功了呢?
因为第一次烧录是空白片,选项字节是出厂状态,所以可以正常烧录。而以后的选项字节已经被改写,所以“不成功”,不过应该有方法可以烧录成功的,由于没用过rlink,我也不知道。
为什么我删除选项字节初始化之后再次烧录, 即使烧录成功, 芯片也没有反应呢?
删除选项字节初始化之后再次烧录成功,但是代码可能依赖于选项字节的某些配置,所以运行不成功,芯片没有反应。
如果控制程序中已经有了选项字节的初始化, 然后用STVP烧录时又有个选项字节页面, 它是不是冲突了呢?
这两个各干各的,按道理是不会冲突的。
建议贴出你的选项字节初始化代码,便于分析。
谢谢以上各位, 问题已解决.
解释如下:
在控制程序中已经有对选项字节的初始化, 所以目标代码烧录后芯片中已经有选项字节的内容.
因此, 在烧录选项字节页面时, 应该是将芯片内部的选项字节提取出来与待烧录的选项字节内容比较, 如果不一致则报错.
解决方法:
1. 取消芯片内部的选项字节初始化(不合理,但是解决问题);
2. 烧录时将选项字节内容与程序初始化匹配起来;
现象就是这么个现象, 具体原理没有仔细查证.
引用: shawkle2000 发表于 2010-6-7 16:41
谢谢以上各位, 问题已解决.
解释如下:
在控制程序中已经有对选项字节的初始化, 所以目标代码烧录后芯片中已经有选项字节的内容.
因此, 在烧录选项字节页面时, 应该是将芯片内部的选项字节提取出来与待烧录的选项字节内容比较, 如果不一致则报错.
解决方法:
1. 取消芯片内部的选项字节初始化(不合理,但是解决问题);
2. 烧录时将选项字节内容与程序初始化匹配起来;
现象就是这么个现象, 具体原理没有仔细查证.
请问怎样“取消芯片内部的选项字节初始化(不合理,但是解决问题)和烧录时将选项字节内容与程序初始化匹配起来”