- 主题:同事遇到一个蹊跷的故障
STM32的单片机,自己写的程序自己烧录,设备运行都没有问题。
但是把程序发给工厂,同样的程序烧录到同样的板子里,设备运行就出故障。
两边工程师查了好几天都找不到原因。
各位猜猜是咋回事?
工厂在烧录程序时会烧录设备ID,烧录的地址恰好和程序的内存段冲突了。而且是先烧
录的程序,最后写入设备ID的。
简直了,各位,这种问题该如何避免?
--
FROM 111.193.230.*
没法避免,烧录的时候需要派个驻场,量产烧录和开发烧录本来就不一样的
【 在 sqsl 的大作中提到: 】
: STM32的单片机,自己写的程序自己烧录,设备运行都没有问题。
: 但是把程序发给工厂,同样的程序烧录到同样的板子里,设备运行就出故障。
: 两边工程师查了好几天都找不到原因。
: ...................
--
FROM 223.104.165.*
你为什么要把ID放在程序段?
【 在 sqsl 的大作中提到: 】
: STM32的单片机,自己写的程序自己烧录,设备运行都没有问题。
: 但是把程序发给工厂,同样的程序烧录到同样的板子里,设备运行就出故障。
: 两边工程师查了好几天都找不到原因。
: ...................
--
FROM 61.48.133.*
你们把代码优化一下, 尺寸别超过那个地址就行
ID一般都在flash最后的地址, 这种事情都是提前沟通好的, 量产的时候ID会往哪个page地址写, 要告诉出固件的人, 固件尺寸控制在这个之内.
【 在 sqsl 的大作中提到: 】
: STM32的单片机,自己写的程序自己烧录,设备运行都没有问题。
: 但是把程序发给工厂,同样的程序烧录到同样的板子里,设备运行就出故障。
: 两边工程师查了好几天都找不到原因。
: ...................
--
FROM 220.181.41.*
烧录什么ID,直接用STM32的UID不就行了
【 在 sqsl 的大作中提到: 】
: STM32的单片机,自己写的程序自己烧录,设备运行都没有问题。
: 但是把程序发给工厂,同样的程序烧录到同样的板子里,设备运行就出故障。
: 两边工程师查了好几天都找不到原因。
: ...................
--
FROM 222.90.82.*
用UID挺麻烦的,因为你烧录的时候要配置两种algorithm,一种纯烧flash,一种还要烧option bytes,然后有的工厂产线上几个产品都要做,烧录小妹一般不会看样下菜
所以建议还是板子拿回来自己烧
【 在 spadger 的大作中提到: 】
: 烧录什么ID,直接用STM32的UID不就行了
:
--
FROM 180.116.128.*
option byte自己在代码里操作就行了。
比如读保护,代码启动时检测没打开自动打开就完事了。
【 在 dismoon 的大作中提到: 】
: 用UID挺麻烦的,因为你烧录的时候要配置两种algorithm,一种纯烧flash,一种还要烧option bytes,然后有的工厂产线上几个产品都要做,烧录小妹一般不会看样下菜
: 所以建议还是板子拿回来自己烧
--
FROM 222.90.82.*
你一定没有遇到过MCU在代码里要启动硬件看门狗,结果在执行启动看门狗代码之前就跑飞的情况
【 在 spadger 的大作中提到: 】
: option byte自己在代码里操作就行了。
: 比如读保护,代码启动时检测没打开自动打开就完事了。
:
--
FROM 180.116.128.*
研发也应该有id吧
【 在 sqsl 的大作中提到: 】
: STM32的单片机,自己写的程序自己烧录,设备运行都没有问题。
:
: 但是把程序发给工厂,同样的程序烧录到同样的板子里,设备运行就出故障。
:
: 两边工程师查了好几天都找不到原因。
:
: 各位猜猜是咋回事?
:
: 工厂在烧录程序时会烧录设备ID,烧录的地址恰好
: ..................
发自「今日水木 on iPhone 7」
--
FROM 115.171.109.*
自己烧id不靠谱,一个月几十k的量就歇菜了。
【 在 dismoon 的大作中提到: 】
: 用UID挺麻烦的,因为你烧录的时候要配置两种algorithm,一种纯烧flash,一种还要烧option bytes,然后有的工厂产线上几个产品都要做,烧录小妹一般不会看样下菜
: 所以建议还是板子拿回来自己烧
:
--
FROM 112.97.50.*