ackyee 发表于 2023-6-13 10:54:03

有个地方请教下 STC下载过程中 干扰 失败了板子还会意外运行吗

本帖最后由 ackyee 于 2023-6-13 10:55 编辑

比方说 程序 下载到99% 了结果 最后一个字节下载失败了 ,   STCISP也提示下载失败了, 这种情况下会有可能板子 仍然 工作 (但是有潜在问题)的可能性吗

让别人下载程序怕出现没下载成功,但是 被当作成功 直接 装机的情况所以问问看


最好可以一个字节错误就不工作

iamseer 发表于 2023-6-13 11:14:41

那你为什么不自己在程序头上做一次校验?

ackyee 发表于 2023-6-13 11:16:31

本帖最后由 ackyee 于 2023-6-13 11:21 编辑

iamseer 发表于 2023-6-13 11:14
那你为什么不自己在程序头上做一次校验?
(引用自2楼)

这怎么做   难道 从flash 区把整个代码读一遍 然后校验?{:funk:}      程序应该也没这个权限吧

HXDZ-AAA 发表于 2023-6-13 11:42:04

既然人家的软件提示下载失败了,为啥还要抱有侥幸心理?重新下载有那么难吗?

正确的做法是告诉操作者,下载失败要重新下载,不要问为什么,照办即可。

ackyee 发表于 2023-6-13 13:07:02

HXDZ-AAA 发表于 2023-6-13 11:42
既然人家的软件提示下载失败了,为啥还要抱有侥幸心理?重新下载有那么难吗?

正确的做法是告诉操作者,下 ...
(引用自4楼)

{:lol:}产线工人   不能全指望人家呀自己下载都会眼花

国学芯用 发表于 2023-6-13 13:29:46

产线上用脱机下载    哪会有这种事呢

王二小 发表于 2023-6-13 19:55:56

好多国产pic芯片自带checksum功能了解下。

iamseer 发表于 2023-6-14 11:24:10

ackyee 发表于 2023-6-13 11:16
这怎么做   难道 从flash 区把整个代码读一遍 然后校验?      程序应该也没这个权限吧
...
(引用自3楼)

为什么不行,为什么没权限?movc指令不能用吗?

iamseer 发表于 2023-6-14 11:24:21

ackyee 发表于 2023-6-13 11:16
这怎么做   难道 从flash 区把整个代码读一遍 然后校验?      程序应该也没这个权限吧
...
(引用自3楼)

为什么不行,为什么没权限?movc指令不能用吗?

dz20062008 发表于 2023-6-19 17:52:01

iamseer 发表于 2023-6-14 11:24
为什么不行,为什么没权限?movc指令不能用吗?
(引用自9楼)

用汇编很容易实现,用c估计就是没权限或者嵌入汇编太复杂。用汇编的遇到这个问题都不提问几分钟就代码验证了

dz20062008 发表于 2023-6-19 17:57:19

ackyee 发表于 2023-6-13 13:07
产线工人   不能全指望人家呀自己下载都会眼花
(引用自5楼)

你说的是墨菲定理吧,这相当的有可能

dz20062008 发表于 2023-6-19 18:06:08

ackyee 发表于 2023-6-13 11:16
这怎么做   难道 从flash 区把整个代码读一遍 然后校验?      程序应该也没这个权限吧
...
(引用自3楼)

51单片机浮点能力就是超级短板,你再来一个rom求和校验,还不如给这个员工加个鸡腿,找做事有责任心聪明点的人下载代码

dz20062008 发表于 2023-6-19 20:13:35

本帖最后由 dz20062008 于 2023-6-19 20:19 编辑

简单测试一下,用了一个stc89c52rc   stc isp最新版本6.91t。
程序就是一个200ms翻转一次的闪烁小灯,核心部分就是把操作io的代码做成子程序放在了8k rom的最后位置。


完整下载过程大概如下:
1握手2擦除目标区域3下载用户代码4设置硬件选项

少完成任何一个都提示通讯超时,只要下载用户代码项目完成,观察到小灯正常闪烁,哪怕是第四步设置硬件选项没有完成的提示。至于少了4下载是否提示失败那就没注意到。

以上测试只是简单测试并不严谨,因为下载太快了没法准确停在具体位置,所以请已stc官方为准!

测试代码

图中十六进制代码末尾b2就是cpl操作io翻转的指令


测试的硬件




iamseer 发表于 2023-6-20 03:42:13

本帖最后由 iamseer 于 2023-6-20 03:56 编辑

dz20062008 发表于 2023-6-19 17:52
用汇编很容易实现,用c估计就是没权限或者嵌入汇编太复杂。用汇编的遇到这个问题都不提问几分钟就代码验 ...
(引用自10楼)

我还真没听说51环境下有权限这个概念。汇编能干的C除了效率低点基本都能干。算校验也不需要浮点。
如果是我干,我就声明两个固定flash地址的变量,一个放校验和,一个放固件长度。然后一个指向flash空间的指针遍历固件长度的flash并比较校验和。IDE里设置好编译后自动执行脚本,自动分析正确的校验和以及固件长度,并把正确的值修改到hex文件里对应的地址。

另外mdk官方论坛有人问过类似的问题,官方直接丢了一个arm版的application note供参考。思路和我上面是一致的。
https://developer.arm.com/documentation/ka003716/latest

国学芯用 发表于 2023-6-20 08:46:30

问题解决了吗联系我们 0513-55012928 或者加我V19952583534

weavr 发表于 2023-6-20 09:04:30

国学芯用 发表于 2023-6-20 08:46
问题解决了吗联系我们 0513-55012928 或者加我V19952583534
(引用自15楼)

看到上面提到代码校验,STC软件也可以增加这个功能,将指定地址范围内的代码校验和写到指定地址。
页: [1]
查看完整版本: 有个地方请教下 STC下载过程中 干扰 失败了板子还会意外运行吗