找回密码
 立即注册
查看: 79|回复: 2

OTA升级 STC8H 无线升级 ISP操作远程升级 成功记录

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:17
  • 最近打卡:2026-03-03 21:17:07

10

主题

28

回帖

240

积分

中级会员

积分
240
发表于 2026-2-23 20:20:22 | 显示全部楼层 |阅读模式
个人有个项目要使用OTA,就是使用wifi模块,接收云端的数据,就是升级包,下载到我的板子上,进行远程,非接触式升能。用了春节8天时间,终于搞定,在此记录下,方便其人也,也可以参考下。

日期:2026年2月23日星期一
总体框架说明
单片机型号:STC8H4K64TL   FLASH容量 64K 支持ISP功能,内存划分如下图
  
ISP
  
应用程序段
数据存放区
标识位区
  
4K
  
28K
28K
4K

应用程序与ISP程序是两个完全独立的程序,但是需要相互配合,使用ISP调用eeprom内容要求一致的地址。
一、首先说下ISP程序的编写与设置
1.1程序编写,主要逻辑是:读取指定eeprom地址的标识位,是不是要升级,如果不是,则跳到指定应用程序段,我用的是0x1000(4K空间)。如果要升级的标识位,执行一段函数,实现功能是从指定位置(我用的是0x7000开始的)到0x0000地址。目的就是将保存的数据,覆盖到现在的应用程序段中。
1.2 程序写好,在Keil编辑器中,不需要做额外设置,直接编译就行,拿到ISP.hex后面使用。

二、应用程序编写与设置
2.1 应用端的程序按正常内容编写,我使用的是涂鸦的WIFI通迅模块,使用官网例程写的框架,加上自己设备控制逻辑。
2.2 在最后编译时,需要在KEIL中进行相关设置,设置如下:
1起始地址,2文件大小,3 中断地址,按图所示写入特定值
图片1.png 图片2.png

2.3 编译成APP.hex后面使用

三、hex文件处理
3.1 1清空区域,2 设置 4K eeprom ,3打开程序文件,4找到刚才编译出来的APP.hex文件。
图片3.png

3.2hex文件编辑
将刚才载入的APP.hex,0x0000开始的地方最前面3个字节内容,拷贝到0x1000处,那里本来应该是3个0xff,将那3个0xff换成这3个字节内容。如下图,6,8指示的地方。
图片4.png 图片5.png

3.3修改好后,将从0x0000至0x1000之间的全部oxff数据删除掉。
3.4删除好后,点击右下角的 “保存数据”,在跳出的窗口中,填入新的文件名:PY_APP.BIN后面使用。

四、程序合并烧录
4.1打开STC的ISP下载软件,进行如下设置
1 eeprom选60K,这样程序才能实现ISP,以前设错了,总是不能正常拷贝数据。
2 在程序文件框,EEPROM文件框中,分别去点清空区域,目的是不要让原来数据破坏后面的程序文件。
3 在程序文件界面下,点“打开程序文件”在跳出的窗口中,选中ISP.hex 文件,程序内容会出现在编辑框中。
4 在EEPROM文件界面下,点“打开EEPROM文件””在跳出的窗口中,选中PY_APP.BIN 文件,程序内容会出现在编辑框中
5 晶振依实际程序里的填就行
6 最后点 “下载/编程”
图片6.png


软件调试过程记录:
问题一:我的程序用一个35号中断(触摸中断),汇编转13号的中断。但是加入后,应用程序不能正常工作。所以给去掉了。还没找到兼容的办法

问题二:在下位机有一个保存数据的功能,#define     EEPROM_SECTOR_ADDR 0xe000 //如果是偏移了0x1000,实际就是0xf000 ==60K的地方保存数据     这个值要依实际情况改,如果写错了,会直接改到应用程序段,造成程序直接死机。就是自己的应用程序在保存数据时,一定不能有操作应用程序段(0x0000至0x7000)的内容,不然一定是死机。



回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:41
  • 最近打卡:2026-03-06 08:05:01

9

主题

73

回帖

905

积分

高级会员

积分
905
发表于 2026-2-24 08:26:25 | 显示全部楼层
看完了,理解了思路,以前还没有做过这个,学习了
微信qsssuv
回复

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:78
  • 最近打卡:2026-02-26 08:10:08

1

主题

13

回帖

242

积分

中级会员

积分
242
发表于 2026-2-25 13:42:53 | 显示全部楼层
感谢分享建议!
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-3-7 16:59 , Processed in 0.106446 second(s), 55 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表