STM32/STM8技术william hill官网
直播中

李艳

7年用户 1489经验值
私信 关注
[问答]

为什么相同的代码在两个stm32F103CB上运行结果不一样

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

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

回帖(4)

张敏

2018-11-19 11:48:29
软件一样的话,可能是硬件差异。

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

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

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

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

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

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

李艳

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

张敏

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

也可以具体看一下程序是不是某些指针操作不对,或者某些外设的结构体配置少写了?
举报

lee_st

2018-11-19 14:49:32
硬件不同,也可能出现问题
举报

更多回帖

发帖
×
20
完善资料,
赚取积分