打印
[STM8]

请教:STM8S仿真奇怪的问题

[复制链接]
1147|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kuheye|  楼主 | 2020-7-26 16:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大侠:

在使用STM8S仿真时,碰到一个奇怪的问题.
设置多个断点时,只有第一个断点正常,之后的断点读出来的数据不正确,全部为0
更要命的是,第一个(次)断点之后,中断就不正常了,我设置定时请中断,就无法进行了,
按暂停键,读出来的定时器相关寄存器全部为复位状态的

由于代码中设置了心跳状态机等,导致程序无法正常运行
第一次中断后,代码还可以运行,只是中断就不正常了,因而也就没有意义运行下去了

所有的芯片有STM8S207C6,STM8S003,均出现过这种情况,仿真器也换过几个

求助,谢谢

使用特权

评论回复
沙发
kuheye|  楼主 | 2020-7-26 16:41 | 只看该作者
主要是设置好的定时器,全部复位了,导致无法进行定时器中断,心跳程序无法运行了

使用特权

评论回复
板凳
kuheye|  楼主 | 2020-7-26 17:35 | 只看该作者
还有一个怪现象,原本某个端口为高电平,如果不设置断点,这个端口正常输出高电平,
一旦设置断点后,这个端口就输出低电平
例如

while(1)
{
    LED=1;
   IWDG_KR=0XAA;        //喂狗
}

如果没有不设置断点,运行时LED正常输出高电平
一旦暂停,则该端口输出为低电平

使用特权

评论回复
地板
香水城| | 2020-7-26 19:01 | 只看该作者
听起来感觉芯片复位了。

使用特权

评论回复
评论
kuheye 2020-7-27 17:40 回复TA
我也怀疑,但就是找不到原因, 现在最大的问题是,第一次仿真的断点是正确的,其它就不正常 
5
香水城| | 2020-7-27 19:37 | 只看该作者
看看有无 发生堆栈溢出情形,

可以先将代码简化逐步找原因。

使用特权

评论回复
6
cooldog123pp| | 2020-7-27 21:39 | 只看该作者
看看是加了哪段代码后才出现的问题,把那段代码屏蔽了看看,然后一步步分析。

使用特权

评论回复
7
kuheye|  楼主 | 2020-8-4 11:58 | 只看该作者
回复大家,确定是硬件问题重新画电路板,增加一个AMS1117,将MCU独立供电,与其它电路分开,仿真正常

使用特权

评论回复
8
kuheye|  楼主 | 2020-8-6 10:02 | 只看该作者
撞鬼了,三天后,故障依旧,
不知道是什么原因,这种故障多次碰到

使用特权

评论回复
9
电子小白一号| | 2020-8-6 11:12 | 只看该作者
又出现故障的话那可能就是代码的问题了,简化一下看看

使用特权

评论回复
10
kuheye|  楼主 | 2020-8-6 15:44 | 只看该作者
本帖最后由 kuheye 于 2020-8-6 15:50 编辑

问题进一步锁定,详情向大家报告,分享【故障现象】
第一次断点正常,第二次断点就不正常,典型的就是无法进行定时器中断

【折腾】
1.换电脑,换了多台电脑,故障依旧
2.换电路板,多个不同的电路板,甚至是同事购买的开发板,故障依旧
3.换仿真器,多种多个ST-LINK/V2,故障依旧
4.内部供电,外部供电,故障依旧

【锁定真凶】
无意中发现,禁止看门狗,仿真正常
但我敢保证,看门狗是成熟代码,绝对没问题
关闭看门狗后进行仿真,她妈一切正常

【IDE版本】
目前使用的是D版,IAR FOR STM8S VER2.10.2 VER7.1.4.3415

印象中以前没出现过着这种问题,自从换了新版本IDE后就有这个问题
不知道是版本问题,还是仿真时不能开看门狗(以前老版本也打开看门狗,没问题呀)

不知道移动硬盘中,还是否有老版本的IDE
那位朋友有老版本的IAR FOR STM8S,请提供,
谢谢!

使用特权

评论回复
11
kuheye|  楼主 | 2020-12-13 15:15 | 只看该作者
问题找到
仿真时,没有关闭看门狗,好久不用忘记这个问题了
谢谢大家,

使用特权

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

本版积分规则

31

主题

88

帖子

2

粉丝