[STM32F1] 相同的代码,在两个F103CB上运行结果不一样

[复制链接]
1052|8
 楼主| snoopwolf 发表于 2018-11-19 09:54 | 显示全部楼层 |阅读模式
本帖最后由 snoopwolf 于 2018-11-19 10:44 编辑

求教个问题
我有两个STM32F103CBT6的板子,下载了同样的代码,前后没有编译。
结果一个正常运行,一个一直启动后一直运行到一个固定位置就复位,有没有高手碰到过这个问题?
运行不正常的板子,运行其他版本时,有时看着也挺好的。版本间没有本质差异,没有做堆栈相关操作。程序挂掉时,是操作arm核的特殊寄存器时出的问题。
LOS_IntRestore
    MSR     PRIMASK, R0
    BX      LR
在BX LR时,pc变成了0xFFFFFFFF

希望高手们给解答下。
谢谢

wsmysyn 发表于 2018-11-19 10:08 | 显示全部楼层
本帖最后由 wsmysyn 于 2018-11-19 10:11 编辑

软件一样的话,可能是硬件差异。

boot0/1的设置一样么??其他外围有检查过么?程序做了哪些动作?如何判断是程序启动不了的?MCU能否输出一些信息做判断?

程序启动不了,是本身程序没运行,还是程序运行到某个地方卡死了?

其他版本挺好的,是从没出现过问题?那么新版本,加了什么东西?能定位到,加了什么模块之后才不正常的?

都有哪些外围等等,这些信息都很模糊,做了哪些,没做哪些,都不太清楚,直接判断是啥问题,这个都不好说。

只能提供一个思路,自己动手去一个一个模块定位,使用了哪个外设出的问题,定位到外设之后,看是哪个语句产生的影响。然后在到相应的外围去看一下差异,比如焊接问题,芯片损坏问题等等
或者示波器,万用表去量一下,各个外设工作是否符合预期等等

既然显现很明显,固定的复现,这个问题就很好解决。

 楼主| snoopwolf 发表于 2018-11-19 10:46 | 显示全部楼层
wsmysyn 发表于 2018-11-19 10:08
软件一样的话,可能是硬件差异。

boot0/1的设置一样么??其他外围有检查过么?程序做了哪些动作?如何判 ...

谢谢,我的问题没有描述清楚
不正常的板子,启动后一直运行到一个固定位置就复位
运行其他版本时,有时看着挺好的,版本间没有本质差异,没有做堆栈相关操作。程序挂掉时,是操作arm核的特殊寄存器时出的问题。
LOS_IntRestore
    MSR     PRIMASK, R0
    BX      LR
在BX LR时,pc变成了0xFFFFFFFF
wsmysyn 发表于 2018-11-19 11:07 | 显示全部楼层
snoopwolf 发表于 2018-11-19 10:46
谢谢,我的问题没有描述清楚
不正常的板子,启动后一直运行到一个固定位置就复位
运行其他版本时,有时看 ...

能确定到固定位置挂掉,应该比较接近了,确认一下是使用哪个模块出的问题,可以检查一下这个模块用到的硬件部分。比如焊接问题等等

也可以具体看一下程序是不是某些指针操作不对,或者某些外设的结构体配置少写了?
dongnanxibei 发表于 2018-11-19 20:23 | 显示全部楼层
硬件的配置是否一样。还有是否都清理干净再烧录的。
磨砂 发表于 2018-11-21 09:49 | 显示全部楼层
感觉像是硬件问题
labasi 发表于 2018-11-21 13:08 | 显示全部楼层
两个板子是一样的吗
paotangsan 发表于 2018-11-21 13:44 | 显示全部楼层
全擦掉再试试
icecut 发表于 2018-11-21 14:09 | 显示全部楼层
你描述的肯定不是真正问题所在.建议你找5块板子,看看是1坏4好,还是多坏多好, 才能分析是啥问题.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

8

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部