ningsane 发表于 2026-2-1 15:50:31

关于远程升级用户程序文件烧写的数据定位问题

远程升级中用户程序正常编译后的hex文件打开后是上图的样子,
前3个数据是02 49 AB,后边都是FF,
然后到0x03c04开始才有了正常的程序数据。
这些数据和STC8A8K64D4的程序地址是如何对应的?
我的理解是从0X3C00开始烧写第一个图的第一行数据02 49 AB,
后边依次是第二个图的0X3C04处开始的数据,直到程序的最后出现FF为止。
这样理解对吗?HEX还包含了地址等其他信息,
把HEX转化为bin文件就是上边那样的纯数据了吧?
从bin文件里边读取数据,第一个就写打0X3C00,
然后第二个到0x3C01,依次往后排队烧写。
这样的位置安排是正确的吧?

DebugLab 发表于 2026-2-1 17:12:54

那0000H填什么?0000H才是复位到用户程序的入口地址,02 49 AB 是 LJMP 到 49 AB,02 是 LJMP,要确保正确跳转才可以正常运行

ningsane 发表于 2026-2-2 08:36:02

0000H不是ISP程序的入口吗?上电后执行ISP程序,判断有没有升级要求指令过来,如果有的话就进行擦除,烧写指令。如果没有的话计时时间已过,再调用这个02 49 AB指令到用户程序?框架图基本也是这个意思吧。
页: [1]
查看完整版本: 关于远程升级用户程序文件烧写的数据定位问题