硬汉嵌入式论坛

 找回密码
 立即注册
查看: 567|回复: 2
收起左侧

[客户分享] 单片机全速运行三次才能跑起来。

[复制链接]

39

主题

196

回帖

323

积分

高级会员

积分
323
发表于 2023-10-24 12:01:37 | 显示全部楼层 |阅读模式
今天遇到了一个问题,同事给我一个工程(他开发了一部分,我继续开发另外一部分)
我把另外一部分程序移植之后,仿真进不了main函数。


这是一个电机板子,电机部分没焊接,目前预调试阶段只能通过仿真去看。
真是奇怪,一时间没反应过来。毕竟工作几年了,不是纯小白,这种问题不应该发生在我身上啊。
而且代码是祖传的,就是从老的工程拷贝过来修修改改,理论上也不会有大问题。

于是来回注释,不断把多余的代码注释掉,最后发现rtt打印注释掉就可以跑起来了...
然后发现保留rtt打印,全速运行三次也能跑起来。

这一下就回想起来了,应该是printf函数实现的半主机的原因,需要勾选MricoLIB。
很久之前就遇到过,只是一开始没有试出来全速三次这个条件,一直以为是别的问题。就这个问题又浪费了1个多小时...

不过对于半主机是啥没有深究过,只知道这个模式下仿真全速跑不起来。需要全速三次才行。

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106754
QQ
发表于 2023-10-24 15:03:10 | 显示全部楼层
以MDK为例,他的C库代码封装起来了,没有关闭半主模式的话,他会执行BKPT软件断点,你看反汇编就就会看到这个BKPT了



QQ截图20231024150215.png

回复

使用道具 举报

4

主题

160

回帖

172

积分

初级会员

积分
172
发表于 2023-10-27 15:59:25 | 显示全部楼层
是的,这个问题 大概率就是半主机问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-4 13:22 , Processed in 0.273271 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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