找回密码
 立即注册
查看: 504|回复: 53

记录:8H8K64U串口升级(完成)

[复制链接]
  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-30 11:14:38
已绑定手机

3

主题

102

回帖

765

积分

高级会员

积分
765
发表于 2025-3-21 11:29:21 | 显示全部楼层 |阅读模式
起因:
1.项目涉及到单片机远程升级,然后自己的技术太过于拉跨。
2.我想也许可能会有和我一样的存在,他们面对这个问题时也和我一样手足无措,所以在这里对整个学习流程进行记录
小范有话说:我确实技术很菜,所以也不知我这个项目能够做到哪一步,所以边做边记录吧。
希望各位前辈们多多批评多多指导,也希望给后来的人留下这么一个东西儿。

基于官方例程进行改编,修改串口数据接收代码。结合自己的测试工具完成升级




祝大家少掉头发,身体健康,能够一个幸福的家
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15611
发表于 2025-3-21 12:39:25 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

3

主题

1160

回帖

1031

积分

等待验证会员

积分
1031
发表于 2025-3-21 11:33:01 | 显示全部楼层
STC8H8K64U远程升级学习记录<br><br>本次项目涉及STC8H8K64U单片机的远程升级功能,旨在实现设备固件的在线更新。以下是学习流程的简要记录:<br><br>1. 硬件准备:STC8H8K64U单片机支持ISP(在系统编程)和IAP(在应用编程)功能,硬件上需确保串口通信正常,并预留足够的Flash空间用于存储新固件。<br><br>2. 固件分区设计:将Flash划分为引导区(Bootloader)和应用区(Application)。引导区负责接收新固件并写入应用区,应用区为实际运行的代码。<br><br>3. Bootloader开发:编写引导程序,通过串口或网络接收新固件数据,并进行校验(如CRC32)。校验通过后,将固件写入应用区,并跳转至新程序入口。<br><br>4. 固件传输协议:采用可靠的通信协议(如Ymodem或自定义协议),确保数据传输的完整性和稳定性。传输过程中需处理重传机制和超时控制。<br><br>5. 安全性考虑:引入加密算法(如AES)对固件进行加密传输,防止固件被篡改或窃取。同时,验证固件的数字签名,确保其来源可信。<br><br>6. 测试与验证:在实验室环境中模拟远程升级场景,测试升级过程的稳定性和容错能力,确保系统在各种异常情况下仍能正常工作。<br><br>通过以上步骤,初步实现了STC8H8K64U的远程升级功能,后续将进一步优化性能和安全性。<br><br>[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-30 11:14:38
已绑定手机

3

主题

102

回帖

765

积分

高级会员

积分
765
发表于 2025-3-21 11:35:44 | 显示全部楼层
在这里首先感谢论坛大佬的技术贴支持
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=9387
里面包含有大佬自己做的这个bootloader压缩包
祝大家少掉头发,身体健康,能够一个幸福的家
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-30 11:14:38
已绑定手机

3

主题

102

回帖

765

积分

高级会员

积分
765
发表于 2025-3-21 11:36:35 | 显示全部楼层
国芯人*** 发表于 2025-3-21 11:33
STC8H8K64U远程升级学习记录本次项目涉及STC8H8K64U单片机的远程升级功能,旨在实现设备固件的在线更新。以 ...

感谢支持,谢谢指导
祝大家少掉头发,身体健康,能够一个幸福的家
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-30 11:14:38
已绑定手机

3

主题

102

回帖

765

积分

高级会员

积分
765
发表于 2025-3-21 11:47:37 | 显示全部楼层
其实通过观看大佬们零零散散的讲述与这个官网提供的这个例程包,似乎是明白了一部分。
大概自己的思路是(如有错误希望大佬们不吝指导):写入bootloader后,通过bootloader检查这个标记位,然后启动AP代码。如果涉及到升级的话。首1.是这个AP代码中留有接口
2.然后我们将代码通过串口传输
3.当APP1接收到代码并对其进行验证无误后将其写入到FT24C512中
4.写入完毕,改变标记位并重启单片机
5.bootloader检测到状态位发生改变,将单片机的APP1进行擦除
6.读取FT24C512中的数据并将其写入到单片机中,写入完毕后将状态位进行改变
7.单片机开机实现升级。
当然这里的几个步骤是具有一定缺陷的,网上有大佬思路是:将我们单片机划分为三个部分,1是bootloader区、2是APP1区、3是APP2区。正常运行在APP1区,如果升级那就需要我们将APP2上传至APP2区,然后单片机重启进入APP2.如果发现这个APP2不好使用可以直接回退到APP1区域。下一次升级时先将这个上一个版本部分的空间进行清除,然后写入新的APP,然后重启单片机。基本上就是这个思路
祝大家少掉头发,身体健康,能够一个幸福的家
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-30 11:14:38
已绑定手机

3

主题

102

回帖

765

积分

高级会员

积分
765
发表于 2025-3-21 11:52:45 | 显示全部楼层
虽然自己是看了部分例程,但是实际上手任然会比较棘手。所以我先开始对官网那给出代码进行复现。
将官网代码结合自己项目板进行试验。首先是这个加入按键响应与这个FT24C512模块的读取与写入
截图202503211152432525.jpg
祝大家少掉头发,身体健康,能够一个幸福的家
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-30 11:14:38
已绑定手机

3

主题

102

回帖

765

积分

高级会员

积分
765
发表于 2025-3-21 11:53:45 | 显示全部楼层
然后在这个demo程序中使用另一颗按键做不同的响应
截图202503211153436404.jpg
祝大家少掉头发,身体健康,能够一个幸福的家
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-30 11:14:38
已绑定手机

3

主题

102

回帖

765

积分

高级会员

积分
765
发表于 2025-3-21 11:55:21 | 显示全部楼层
然后修改代码压缩包如附件所示

示例代码修改.rar

828.43 KB, 下载次数: 5

祝大家少掉头发,身体健康,能够一个幸福的家
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-30 11:14:38
已绑定手机

3

主题

102

回帖

765

积分

高级会员

积分
765
发表于 2025-3-21 11:59:04 | 显示全部楼层
过程中发现:目前是采用官网给的下载工具,只有当代码运转在ISP部分时,才能够将数据写入。为了后续实现升级那后续必定需要这个其他的烧录方式。借助AI工具勉强写了一个这个:
截图202503211159027483.jpg
祝大家少掉头发,身体健康,能够一个幸福的家
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-30 11:14:38
已绑定手机

3

主题

102

回帖

765

积分

高级会员

积分
765
发表于 2025-3-21 12:12:43 | 显示全部楼层
目前通过例程(uart升级),知晓:我们需要升级时,首先是将代码会跳到这个ISP区域,然后通过官方的工具将其进行写入实现升级。所以我现在需要实现的是:不用回退到ISP区域在APP1部分接收APP2的代码,将其进行校验后写入FT24C512中。
祝大家少掉头发,身体健康,能够一个幸福的家
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-1 23:28 , Processed in 0.129300 second(s), 115 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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