打印
[STM32F1]

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

[复制链接]
718|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
谢谢,我的问题没有描述清楚
不正常的板子,启动后一直运行到一个固定位置就复位
运行其他版本时,有时看 ...

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

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

使用特权

评论回复
5
dongnanxibei| | 2018-11-19 20:23 | 只看该作者
硬件的配置是否一样。还有是否都清理干净再烧录的。

使用特权

评论回复
6
磨砂| | 2018-11-21 09:49 | 只看该作者
感觉像是硬件问题

使用特权

评论回复
7
labasi| | 2018-11-21 13:08 | 只看该作者
两个板子是一样的吗

使用特权

评论回复
8
paotangsan| | 2018-11-21 13:44 | 只看该作者
全擦掉再试试

使用特权

评论回复
9
icecut| | 2018-11-21 14:09 | 只看该作者
你描述的肯定不是真正问题所在.建议你找5块板子,看看是1坏4好,还是多坏多好, 才能分析是啥问题.

使用特权

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

本版积分规则

2

主题

8

帖子

1

粉丝