当前位置: 首页 > news >正文

Stm32 IAP 升级

1.bootloader 相当于极简化的uboot
2.app

明确升级文件的crc校验和传输次数,简单的升级结构

import serial, time
import ctypesclass IAP_H(ctypes.Structure):_pack_ = 1_fields_ = [("magic", ctypes.c_uint32),("filename", ctypes.c_char * 16),("size", ctypes.c_uint32),("chunk_counts", ctypes.c_uint32),("crc", ctypes.c_uint16),]def view_iap(buffer: bytearray) -> IAP_H:if len(buffer) < ctypes.sizeof(IAP_H):raise ValueError("")return IAP_H.from_buffer(buffer)hdr = IAP_H(0x11223344, b"app.bin", 123456, 10, 0xBEEF)
raw = bytes(bytearray(ctypes.string_at(ctypes.addressof(hdr), ctypes.sizeof(hdr))))
ser = serial.Serial("COM3", 115200, bytesize=8, parity="N", stopbits=1, timeout=0.1)
count = 1
while True:time.sleep(0.1)if count == 1:ser.write(raw)count = 0time.sleep(0.2)print(ser.readline()

我是用的时固定的字节数中断传输,命令阶段固定30字,传输阶段跳到1K,在每个chunk 加入灯闪

http://www.dtcms.com/a/390878.html

相关文章:

  • 5G标准学习笔记17------ MDT(Minimization of Drive Tests)路测最小化
  • [Dify] 构建“流程型表单问答”系统:逐步提问逻辑实现
  • 从RAW到JPG到BMP:工业视觉图像格式怎么选?
  • Linux系统Rsync+sersync 实现数据同步
  • 【13/20】缓存与性能优化:Redis 在 Express 中的整合,实现用户数据缓存
  • 如何防止电脑长时间运行过热?定时关机是第一道防线
  • 开源监控利器Prometheus+Grafana在银河麒麟操作系统的落地实践
  • 小程序移动端设计UI(一)预约小程序——东方仙盟练气期
  • Android13 命令启用WLAN详细日志分析
  • 临床AI产品化全流程研究:环境聆听、在环校验与可追溯系统的多技术融合实践(中)
  • 深度解读昇腾CANN动态Shape图调度加速技术
  • linux系统使用ImageMagick注意,只能使用convert命令
  • [Windows] 搜狗拼音一键净化
  • Go语言25个关键字全解析
  • 图像滤波常用总结
  • Go语言设计原则与设计模式
  • (LoRA深度解析)LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS论文精读(逐段解析)
  • 第十四届蓝桥杯青少组C++选拔赛[2022.11.27]第二部分编程题(4、找路线)
  • 知识图谱对自然语言处理深层语义分析的影响与启示:结构化研究报告
  • 架构师成长之路-缓存二
  • 正点原子小智BOX0/BOX2 产品使用视频表情功能
  • 鸿蒙NEXT分布式文件系统:开启跨设备文件访问新时代
  • 【主机初始化工作】
  • Ubuntu20.04仿真 | iris四旋翼添加livox mid360激光雷达
  • Linux进程终止
  • Go如何重塑现代软件开发的技术基因
  • 设计模式(C++)详解—外观模式(2)
  • 【ubuntu24.04】apt update失败 过期的签名清理
  • Go 语言常用算法库教学与实践指南
  • 基于FPGA的智能垃圾分类装置