- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 高效二进制更新——Bsdiff差分算法
Bsdiff差分算法是一种针对二进制文件的增量更新算法,由Colin Percival于2003年提出,通过精准定位新旧文件差异并生成高压缩比的补丁包。差分包patchfile大小993KB,新固件new_cp.bin大小6472KB,bsdiff差分算法此次压缩率大约是15%,如果新旧固件差异很小,压缩率会更大。执行可执行程序bspatch,通过old_cp.bin和差分包patchfile,还原得到new_cp2.bin。编译环境构建完成后,编译代码,生成可执行程序。
2025-05-14 11:20:06
709
原创 C语言骚操作:Duff‘s Device
前段时间在网上看了一段代码,简直惊掉了下巴,代码贴在了下面,供大家欣赏如果你也是第一次看到的话,不妨试一下,看你能得出正确答案吗?其实,上述代码源自大师之手,我只是做了少许修改。先来聊一下这段历史渊源吧。
2025-05-13 20:20:41
637
原创 UART FIFO:让通信效率翻倍的黑科技
UART通信的过程中,数据的传输速度是非常的关键。在实际的应用中,我们需要使用一些技巧来提高UART的传输效率,FIFO(First-In-First-Out)技术就是其中之一。FIFO(First-In First-Out)是一种先进先出的数据缓冲区,用于在UART通信中缓存收发数据。其核心目标是减少CPU中断频率,提升通信效率。
2025-05-13 15:04:13
606
原创 UART通信深度探索
UART全称Universal Asynchronous Receiver/Transmitter,通用异步收发传输器,是一种串行、异步、全双工的通信协议。
2025-05-09 15:06:44
1054
原创 那个让资深工程师彻夜难眠的Flash过擦Bug
Flash 分为 NAND flash和 NOR flash。均是使用浮栅场效应管作为基本存储单元来存储数据的,浮栅MOS与普通的MOS管区别在于加了⼀个浮栅层,浮栅场效应管共有4个端电极,分别是源、漏、控制栅和浮栅,如下图所示:浮栅层与硅衬底之间有采用这种结构,使得存储单元具有了电荷保持能力,其中与沟道接近的绝缘层二氧化硅厚度比较薄,电子在比较大的电场作用下,会隧穿进入浮栅层。
2025-05-06 15:51:46
1122
原创 嵌入式备份还原与磨损均衡机制
在嵌入式系统中,flash存储经常用于保存配置数据或关键信息,但flash操作容易出问题,比如掉电或干扰导致数据损坏。flash的每个扇区有擦写次数限制,频繁擦写会缩短寿命,下面介绍嵌入式领域安全存储的一种方案,在实际项目中可以借鉴使用,供大家学习参考。
2025-04-15 10:34:54
640
原创 嵌入式ringbuf精妙设计
如何理解这个ringbuf,举个例子:w和r两个人在环形操场上跑步,操场长度为4294967295米,w在前面跑,r在后面追。w和r要遵守两个规则,w不能领先r size的长度,r不能超越w.上述是ringbuf源码的实现,代码很精简,可以使用在嵌入式系统的方方面面,希望对大家带来帮助。他们俩就这样一直跑着跑着,像CPU一样永不停歇.....
2025-03-14 10:21:20
475
原创 C语言学习总结之内存篇
程序运行为什么需要内存编写程序的目的是为了让我们写的程序运行,程序运行是为了得到一定的结果。程序包含代码和数据两个部分,程序中很重要的部分就是数据。计算机顾名思义就是就是用来计算的机器,所以程序的实质就是在做计算。计算机程序的运行过程其实就是程序中很多个函数相继运行的过程,一个程序是由很多个函数组成的,...
2019-06-04 21:57:19
525
bsdiff差分还原源代码
2025-05-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人