bootloaderCRC16、XMODEM
CRC16执行过程uint16_t calc_crc; calc_crc CRC16(firmware, 1024); if(calc_crc recv_crc) { printf(CRC OK\n); } else { printf(CRC ERROR\n); }通常最稳健的做法是完成一次bootloader进行两次CRC16校验从云端下载固件完成时防止UART 丢字节、WiFi 丢包写入 Flash 后再校验防止写入失败CRC源码// CRC16 查找表256个值 // 这个表是提前计算好的 CRC16 结果用来加快计算速度 // 如果不用表每一位都要计算速度很慢 uint16_t CRC16_Table[256] { ... }; // CRC16 计算函数 // data : 数据指针要计算CRC的数据 // len : 数据长度 uint16_t CRC16(uint8_t *data, uint32_t len) { // CRC 初始值一般 CRC16 常用 0xFFFF uint16_t crc 0xFFFF; // 遍历每一个字节的数据 while(len--) { // 计算查表索引 // crc 当前低8位 与 当前数据字节异或 uint8_t index crc ^ *data; // 更新CRC值 // 1 右移8位 // 2 再与查表得到的值异或 crc (crc 8) ^ CRC16_Table[index]; } // 返回最终CRC校验值 return crc; }XMODEM#include stdint.h #define SOH 0x01 #define EOT 0x04 #define ACK 0x06 #define NAK 0x15 #define CAN 0x18 #define PACKET_SIZE 128 extern uint8_t uart_getchar(void); extern void uart_putchar(uint8_t c); extern uint16_t crc16(uint8_t *buf, uint16_t len); /* 接收一个XMODEM包 */ int xmodem_receive(uint8_t *buffer) { uint8_t c; uint8_t block; uint8_t block_inv; uint8_t data[PACKET_SIZE]; uint16_t crc_recv; uint16_t crc_calc; while (1) { /* 通知PC开始发送 */ uart_putchar(C); c uart_getchar(); /* 收到数据包 */ if (c SOH) { block uart_getchar(); block_inv uart_getchar(); /* 校验块号 */ if ((block block_inv) ! 0xFF) { uart_putchar(NAK); continue; } /* 接收128字节数据 */ for (int i 0; i PACKET_SIZE; i) { data[i] uart_getchar(); } /* 接收CRC */ crc_recv uart_getchar() 8; crc_recv | uart_getchar(); /* 计算CRC */ crc_calc crc16(data, PACKET_SIZE); if (crc_calc ! crc_recv) { uart_putchar(NAK); continue; } /* 拷贝数据 */ for (int i 0; i PACKET_SIZE; i) { buffer[i] data[i]; } uart_putchar(ACK); return PACKET_SIZE; } /* 传输结束 */ else if (c EOT) { uart_putchar(ACK); return 0; } /* 取消 */ else if (c CAN) { return -1; } } }

相关新闻

两性知识,如何延长时间

两性知识,如何延长时间

打开地址:https://pan.quark.cn/s/cf7822410a32

2026/7/3 3:18:53 阅读更多 →
计算机毕业设计之springboot基于微信小程序的电脑配件购物商城管理系统

计算机毕业设计之springboot基于微信小程序的电脑配件购物商城管理系统

相比于以前的传统手工管理方式,智能化的管理方式可以大幅降低商城的运营人员成本,实现了电脑配件购物商城的标准化、制度化、程序化的管理,有效地防止了图书馆的随意管理,提高了信息的处理速度和精确度,能够及时、准确…

2026/7/6 12:41:36 阅读更多 →
Swin2SR应用案例分享:从老照片修复到AI绘图后期,真实好用

Swin2SR应用案例分享:从老照片修复到AI绘图后期,真实好用

Swin2SR应用案例分享:从老照片修复到AI绘图后期,真实好用 1. 为什么你需要一个真正的“AI显微镜”? 想象一下,你刚用AI生成了一张绝美的概念图,但尺寸只有512512,想用作壁纸或打印出来,一放大…

2026/5/17 9:21:35 阅读更多 →

最新新闻

IDM注册表锁定激活技术深度解析:永久试用期管理方案

IDM注册表锁定激活技术深度解析:永久试用期管理方案

IDM注册表锁定激活技术深度解析:永久试用期管理方案 【免费下载链接】IDM-Activation-Script IDM Activation & Trail Reset Script 项目地址: https://gitcode.com/gh_mirrors/id/IDM-Activation-Script Internet Download Manager(IDM&…

2026/7/7 7:21:59 阅读更多 →
AlmaLinux 9、Rocky Linux 9 升级到 10 版本

AlmaLinux 9、Rocky Linux 9 升级到 10 版本

注:本文原在2025年6月24日发表于笔者的个人博客《IT人的工作生活》,原文 链接 :https://www.cntse.com/3293.html,如需转载,请私信笔者,征得笔者同意后,方可转载,并且需要保留本段文…

2026/7/7 7:19:58 阅读更多 →
【专业服务】游戏试玩广告全流程定制开发:从创意到数据,助力高效获客

【专业服务】游戏试玩广告全流程定制开发:从创意到数据,助力高效获客

🎯 服务概述 我们是专注于游戏试玩广告(Playable Ads)创意策划与技术开发的团队。我们致力于将您的游戏核心乐趣,浓缩成几十秒的沉浸式互动体验,直接触达目标用户,大幅提升广告点击率、转化率与用户质量。 …

2026/7/7 7:17:58 阅读更多 →
开源AI模型本地部署实战:从环境搭建到性能优化全解析

开源AI模型本地部署实战:从环境搭建到性能优化全解析

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 本地部署开源AI模型实战指南:从环境搭建到应用落地 最近在技术社区中,关于开源AI模型本地部署的讨论越来越热…

2026/7/7 7:17:58 阅读更多 →
月入五万的蓝海赛道,两年做到头部

月入五万的蓝海赛道,两年做到头部

最近好几个同学来问节气礼盒项目,说翻了一圈,发现我们宣传得不多,问我能不能再讲透一点。行,今天咱们敞开聊聊。先说一个大多数人认为的误区:提到端午粽子、中秋月饼,第一反应是不是街边糕点店、网红零食&a…

2026/7/7 7:13:57 阅读更多 →
微信小程序逆向分析实战:从原理到工具链全解析

微信小程序逆向分析实战:从原理到工具链全解析

1. 项目概述:为什么我们需要小程序逆向分析?如果你是一名移动应用开发者、安全研究员,或者是对某个小程序的功能实现感到好奇的技术爱好者,那么“逆向分析”这个词对你来说一定不陌生。尤其是在微信小程序生态如此繁荣的今天&…

2026/7/7 7:11:56 阅读更多 →

日新闻

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

图片浏览是移动应用中最高频的场景之一。从社交应用的照片流到电商平台的商品图集,从旅游应用的景点相册到摄影作品展示——用户对图片浏览的体验要求不断提高:流畅的切换动画、直观的缩略图导航、便捷的收藏操作、自动播放模式。HarmonyOS NEXT ArkUI 虽…

2026/7/7 0:05:16 阅读更多 →
24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V稳压芯片完整选型指南 PW8600 PW75XX PW2815 PW2312B LDODC/DC全方案 一、24V稳压方案概述 24V直流电源在工业自动化、门禁系统、电梯控制、汽车电子、LED驱动、监控设备等场景中应用极广,是最常见的中压直流母线电压。要将24V母线稳定降压至下游MCU、传感器…

2026/7/7 0:05:16 阅读更多 →
RAG+知识图谱混合检索与Graph RAG核心对比

RAG+知识图谱混合检索与Graph RAG核心对比

做企业RAG落地的团队,往往容易卡在一容易踩坑的选型难题: 当需求单纯靠向量RAG搞不定、单纯靠知识图谱也搞不定,必须同时依赖「文本语义理解 实体关系推理」时,到底是做「向量图谱混合检索」就够了,还是必须上「Grap…

2026/7/7 0:07:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻