- 博客(54)
- 资源 (14)
- 收藏
- 关注
原创 RT-Thread 5.4.0 完整版架构剖析(下):IPC、时钟、内存、设备与组件
从 IPC 全量、时钟与定时器、内存管理,到设备框架、组件层、软件包机制、移植裁剪与速查表,补齐 RT-Thread 5.4.0 完整版的下半张地图。
2026-11-05 09:49:49
151
原创 RT-Thread 5.4.0 完整版架构剖析(上):定位、构建、启动与调度
从版本定位、目录分层、SCons 构建链、启动与自动初始化、对象模型到线程调度,用实测数据与源码位置梳理 RT-Thread 5.4.0 完整版的内核骨架。
2026-11-05 09:48:09
216
原创 RT-Thread Nano 架构剖析:内核原理与图示详解
从调度、对象容器、IPC、时钟到内存与启动流程,拆解 RT-Thread Nano 的可裁剪极简内核:5 层架构图 + 11 张流程图,配合源码位置索引,适合想读懂 RTOS 内核又不想啃完整版的人。
2026-11-05 09:35:49
229
原创 FreeRTOS学习(十一)- 核心重点汇总
本文深入解析FreeRTOS V10.x核心机制,揭示其“心脏”运作原理:以抢占式优先级调度为核心,依托优先级就绪表(O(1)选最高优先级)、Tick中断状态机(管理延时与时间片)和PendSV上下文切换(汇编实现零开销任务切换)三大支柱。通过精妙的列表结构(哨兵节点、双向循环链表)、TCB设计(栈顶首字段、内嵌列表项)与内存管理(heap_4空闲块合并),实现高效、低延迟的任务调度与资源管理。掌握这三大机制,即掌握FreeRTOS 80%精髓。
2026-09-27 00:01:59
287
原创 FreeRTOS学习(十)- 最核心的内容:优先级抢占式调度 + 上下文切换
FreeRTOS的核心机制是基于优先级的抢占式调度配合PendSV中断实现的上下文切换,这构成了其与裸机程序的本质区别。这一核心由三大支柱支撑:优先级就绪表(O(1)任务选择)、Tick中断(时间驱动状态转换)和PendSV处理(上下文切换)。整个系统的其他功能模块(队列、信号量等)都是建立在这一调度机制之上的应用层实现。该设计体现了极简主义内核、确定性优先、硬件/软件分工优化等哲学,通过优先级判据和阻塞机制实现高效的任务调度,使高优先级任务能及时抢占CPU资源,同时确保系统实时性。理解这一核心机制就掌握了
2026-08-19 23:52:24
379
原创 FreeRTOS学习(九)- 内存管理
FreeRTOS 内存管理是"同一 API,5 种策略":从最简单的只拿不还 (heap_1),到基于最佳 fit 的可释放(heap_2),到直接包标准库(heap_3),到生产首选的地址排序+相邻自动合并(heap_4,推荐),到多段内存合体(heap_5)。它们共享 pvPortMalloc/vPortFree 接口。再结合静态分配和各种观测 hook,构成一套"可裁剪、可观察、强确定性"的嵌入式内存管理方案。
2026-08-19 00:31:29
373
原创 FreeRTOS学习(五)- 队列/IPC 模块
FreeRTOS队列模块是一个多功能复合组件,通过Queue_t结构体统一实现了队列、信号量、互斥锁等多种IPC机制。其核心设计采用邮局类比模型,通过uxItemSize和pcHead字段的多态设计区分不同功能:普通队列(数据复制)、信号量(仅计数)、互斥锁(优先级继承)。模块采用环形缓冲区管理数据,通过cRxLock/cTxLock机制实现ISR与任务的安全并发访问,将高频的ISR操作简化为计数,复杂的事件链表操作延迟到任务上下文批量处理。该设计实现了代码高度复用(3400行代码支持多种IPC)、运行高效
2026-08-18 00:35:45
350
原创 FreeRTOS学习(八)- 链表模块深入浅出讲解
FreeRTOS的链表模块(list.c仅248行代码)采用环形双向链表+哨兵节点设计,实现了高效的任务调度基础结构。核心包含两个结构体:ListItem_t(带排序键和双向导航指针)和List_t(含游标标记遍历位置)。通过5个关键函数实现O(1)删除、O(n)有序插入(同优先级任务FIFO排队)和O(1)轮转调度。哨兵节点消除边界判断,MiniListItem优化内存占用。该模块零依赖,支持多场景应用(就绪表/延迟表/等待表等),通过TCB与节点的双向绑定实现快速操作,体现了FreeRTOS"
2026-08-15 23:35:12
253
原创 DeepSeek Harness 论文超详细解读
这篇论文《一种面向时空可组合性的编程范式》由北京大学和DeepSeek联合提出,旨在解决软件插件动态组合的两大核心问题:时间可组合性(插件卸载时的彻底清理)和空间可组合性(插件间的自动依赖管理)。论文提出Cordis框架,通过"可逆效应"(每个操作自带撤销机制)和"响应式共效"(运行时动态依赖管理)实现插件的无缝组合与卸载。该框架已应用于DeepSeek Harness(黑鲸)平台,支持"一切皆插件"的架构,甚至允许AI Agent在运行时动态修改
2026-08-15 08:19:14
1061
原创 DeepSeek Harness 核心分析
摘要: DeepSeek Harness(dsh)是深度求索开源的AI Agent框架,基于“一切皆插件”理念构建,采用TypeScript插件框架Cordis驱动。其核心架构分层组合,支持模块化扩展,通过六大子系统(会话日志、系统提示词、工具注册表、智能体接口、驱动循环、作用域)实现高效AI交互。框架强调可组合性,通过Seam设计实现能力无缝替换,并依托事件溯源机制确保会话可回放与恢复。开发者可通过插件快速集成工具、模型等能力,适用于构建复杂AI助手。技术亮点包括类型安全、Waterfall拦截链、双队列
2026-08-15 08:17:03
544
原创 DeepSeek Harness:尝鲜
摘要: DeepSeekHarness开发者预览版支持插件化功能,用户需先安装Node.js环境,通过终端启动服务后访问本地端口http://127.0.0.1:3080/。使用前需在DeepSeek官网获取API密钥并填入系统,付费模型需额外充值。设置完成后,选择工作目录即可开始使用。
2026-08-15 08:12:23
112
原创 FreeRTOS学习(七)- 定时器模块与任务调度模块的交互关系
本文分析了FreeRTOS中定时器模块与任务调度模块的层级关系及交互机制。定时器模块作为调度模块的"应用层"特性,完全依赖调度模块提供的基础设施:1)通过普通任务实现守护线程;2)使用调度器的队列进行线程安全通信;3)共享SysTick时基;4)采用相同的双表溢出处理机制;5)借用调度器API实现临界区保护;6)使用受限阻塞API实现特殊等待;7)在任务上下文中执行回调。两者通过7个明确接口实现单向耦合,调度模块对定时器完全无感知,体现了清晰的分层设计思想。
2026-08-14 23:43:23
377
原创 FreeRTOS学习(六)- 软件定时器模块详解
本文详细解析了FreeRTOS软件定时器的实现机制,主要内容包括:1. 设计原理:基于SysTick节拍计数和守护任务架构,相比硬件定时器具有数量不受限、线程安全等优势;2. 关键配置参数,如守护任务优先级、命令队列长度等;3. 核心数据结构Timer_t和双链表机制,解决tick计数溢出问题;4. 守护任务的三步处理流程:获取最近到期时间、处理到期定时器或阻塞、处理命令队列;5. 定时器创建、启动及单次/周期模式的区别;6. PendFunctionCall功能实现原理;7. 典型执行流程示例和常见问题,
2026-08-14 00:43:32
321
原创 FreeRTOS学习(五)- 任务调度模块: 优先级继承机制详解
本文深入解析了FreeRTOS中优先级继承机制的实现原理。主要内容包括: 优先级反转问题及继承机制的必要性:通过临时提升持有互斥锁的低优先级任务的优先级,避免高优先级任务被间接阻塞。 关键数据结构: 互斥锁作为特殊队列的实现 TCB中用于优先级继承的字段设计 事件链表的反向优先级编码 三大核心函数: xTaskPriorityInherit():拿锁时提升持有者优先级 xTaskPriorityDisinherit():放锁时恢复优先级 vTaskPriorityDisinheritAfterTimeout
2026-08-12 23:33:13
338
原创 FreeRTOS学习(四)- 任务调度模块: PendSV 上下文切换汇编实现详解
本文详细解析了FreeRTOS在Cortex-M处理器上的任务切换机制,重点分析了栈帧构造、首次任务启动的SVC流程和核心的PendSV上下文切换过程。主要内容包括: Cortex-M双栈指针设计(MSP/PSP)与异常处理机制,硬件自动保存8个寄存器,软件需保存剩余8个; 任务初始栈帧构造方法,通过pxPortInitialiseStack()伪造异常中断现场,建立符合硬件要求的栈结构; 首个任务启动流程,通过SVC异常模拟"异常返回"机制,实现从启动代码到任务的无缝切换; PendS
2026-08-12 00:32:56
355
原创 FreeRTOS学习(三)- 任务调度模块
FreeRTOS调度模块深度解析 摘要:本文深入剖析FreeRTOS V11.1.0+的调度系统实现,聚焦tasks.c核心机制。关键点包括:1)TCB控制块的双链表设计(状态/事件节点)与SMP扩展字段;2)基于优先级(0-31)的就绪表+双延迟表的巧妙数据结构;3)任务生命周期管理,含栈初始化、tick溢出处理和状态转换逻辑;4)调度算法实现,包括O(1)优先级选择、时间片轮转及SMP核间调度;5)Tick中断触发延迟任务唤醒与抢占判断;6)配置开关对系统行为的影响。特别指出SMP模式下通过核亲和性掩码
2026-08-09 15:48:59
326
原创 FreeRTOS学习(二)-核心模块
FreeRTOS内核由6个核心模块构成:任务调度模块(任务管理/调度)、队列/IPC模块(进程通信)、链表模块(底层数据结构)、定时器模块(软件定时)、事件与通信模块(可选同步机制)和内存管理模块(5种堆实现)。内核采用分层设计,底层链表模块零依赖,任务模块依赖链表,队列/定时器/事件模块则依赖前两者。另有可移植层、配置层和协程层三个支撑模块。其中list.c+queue.c+tasks.c被视作最核心的三个文件,共同构成了FreeRTOS的基础调度框架。
2026-08-09 15:32:18
229
原创 Kimi K3开源技术报告-核心原理
Kimi K3大模型技术架构解析 摘要:Kimi K3通过多项创新技术解决了大模型训练和应用中的核心挑战。KimiDeltaAttention(KDA)采用线性注意力机制和增量更新规则,显著降低长序列处理的计算复杂度;Attention Residuals(AttnRes)实现跨层信息直接交互,打破传统Transformer的信息瓶颈;Stable Latent MoE系统通过896选16的专家路由配合量化平衡技术,在保持计算效率的同时实现专家负载均衡;MoonViT-V2视觉编码器与语言模型联合训练,提升
2026-08-09 15:21:11
377
原创 Kimi K3开源技术报告-简单解析
KimiK3是一款突破性的开源大模型,具备2.8万亿参数和100万字超长上下文处理能力,采用混合专家(MoE)架构和创新的KDA记忆机制。其核心亮点包括:原生多模态学习能力、专家分诊式高效运算和长文本精准理解。通过两阶段训练(预训练+专项特训),在编程、智能体任务、视觉理解等领域表现优异,部分指标超越顶级闭源模型。该模型已实现GPU编译器开发、AI芯片设计等复杂应用,其开源特性将加速AI技术普惠化进程,标志着AI从聊天工具向生产力助手的实质性进化。
2026-08-09 15:19:20
215
原创 将 Claude Code 项目改造为 Windows 独立运行工具——以 ai-berkshire 为例
摘要: ai-berkshire原为依赖ClaudeCode的AI投研工具集,现改造为Windows独立运行的Python工具,支持国内大模型(如DeepSeek、通义千问)。通过模块化设计(main.py、skill_loader等)实现技能解析、LLM调用及工具执行,利用.env配置切换API提供商(Anthropic/OpenAI兼容)。改造中解决了中文乱码、依赖安装、API配置错配等问题,验证了端到端功能(如投资问答、股价归因)。成果包括:摆脱ClaudeCode依赖、兼容国内API、保留20项技能
2026-08-06 00:50:01
340
原创 FreeRTOS学习(一)-框架简述
FreeRTOS 202411.00版本是一个开源实时操作系统,专为微控制器设计,包含内核、示例和测试组件。其内核精简,主要由三个核心文件实现任务调度、队列和链表功能,支持多种架构和编译器组合。关键特性包括多核调度、内存管理(提供5种堆实现)、可配置性(通过FreeRTOSConfig.h)以及严格的质量保障体系(形式化验证和单元测试)。采用MIT许可证,具有高可移植性、安全性(支持MPU/TrustZone)和代码精简等特点,适用于嵌入式系统开发。
2026-08-05 07:51:44
408
原创 DeepSeek-V3 推理代码-核心模块
本文深入解析了DeepSeek-V3推理框架的核心设计。系统采用分层架构:底层基于Triton实现FP8算子(包括动态量化、反量化和矩阵乘法),中层构建模型定义(包含创新的MLA注意力机制和分组限制路由MoE系统),上层处理生成推理逻辑。关键创新点包括:1)MLA通过KV联合压缩实现70倍显存节省;2)MoE采用分组路由策略确保负载均衡;3)支持FP8/ue8m0格式的高效计算。整个系统通过精细的并行切分和通信策略实现分布式扩展,在671B参数规模下仍保持高效推理能力。
2026-08-05 07:35:35
174
原创 DeepSeek-V3 推理代码-框架简单分析
摘要:DeepSeek-V3推理框架基于PyTorch实现,支持单机/分布式推理,核心代码约1300行。模型采用Transformer+MoE架构,创新点包括:1)MLA注意力(LoRA压缩KV缓存至512维,节省显存);2)MoE专家分组路由(256专家激活8个);3)YaRN长上下文扩展。分布式策略采用张量并行与专家分配,FP8量化通过Triton实现GEMM加速。亮点是absorb注意力模式(显存优化)和全FP8计算链路(H800上2倍加速),但需注意MoE路由未优化串行实现、生成未用推测解码等技术。
2026-08-04 08:34:41
363
原创 让“小爱音箱PRO”智能起来:接入豆包AI
下面提供,包含豆包 API 申请、MiGPT 部署、配置与使用,确保你能顺利让小爱音箱 Pro 用上豆包的强大能力。
2026-01-31 00:39:05
10779
2
原创 JavaScript 实现简单的倒计时弹窗DEMO
最近做一个简单的设置网页,因为需要重启设备功能,于是就想在上面加一个倒计时弹窗的界面。 刚开始的想法是自定义一个alert弹窗,但很快就发现,alert会一直停在那里等待点击确认,而不是我想要的那种自动连续显示的效果。 后来,才想到直接显示和隐藏DIV制作成的弹窗,就可以实现了。基于这个思路,于是有了下面的: 先看效果图:再看源代码:
2025-11-22 15:53:47
236
原创 立个目标
之前各个方面都有涉及,相对于某些方面则不专。 所以,现在想暂时将工作之余的时间,用于研究linux kernel 及android系统。而android APP的一些新技术作为了解即可。 先打算从kernel中的驱动着手,到linux系统,再到android系统。
2017-08-24 23:16:29
597
原创 VB6.0软件调用VS C++ DLL问题解决
源起之前为设备的DLL供客户二次开发,包括C++,C#等调用都没有问题,以一个函数为例,C文件和H文件里写法如下:UCHAR CharToHex(UCHAR ch) extern "C" __declspec(dllexport) UCHAR CharToHex(UCHAR ch);//字符转16进制但日前有一个客户还在用VB6.0开发,调用总是出现:实时错误“49”:DLL调用约定错误。解决问题
2017-08-14 20:44:44
4076
原创 MSP430G2xx1系列USI的SPI模式详解
简述在 MSP430 系列中微控制器中有三种串行通讯模块。它们分别是 USART 、 USI 和 USCI 。 USART 支持同一硬件模块的两种串行模式,分别是 UART 和 SPI 。 USART 实现了独立的收发转换暂存器和 分离的收发缓冲暂存器以及中断能力。通用同步串行通讯 (USI) ,对于一个 GPIO 数量少的设备来说,是一个高性能串行接口。它是一个 8 或 16bit 移位寄存器
2017-07-09 18:07:46
2212
原创 msp430的DCO校准值被清除后该如何处理
起因在调试MSP430G系列的单片机的过程,发现不怎么的,时钟频率发生了变化,时间一下都对不上了。查收些资料说,DCO的值有可能被擦除了导致时钟不对的。细想一下,好像是在调试的过程中,出现调试不了的现象就在IAR里点击的“Erase memory”。把查找的资料记录下来,所以就有这篇文章。问题描述因为DCO校准值在MCU出厂时保存于信息段A,一般是不允许清除信息段A的。且示例代码中,有如下语句:if
2017-07-09 17:29:56
3507
原创 安装并测试Gitweb
安装gitweb apache2apt-get install gitweb apache2配置gitweb首先,将/etc/apache2/目录下,conf.d/gitweb复制成sites-available/gitweb.conf。 root@gsit: ~# cp conf.d/git web sites-available/gitweb.conf
2017-03-15 11:42:57
1975
原创 Android APK及导出JAR包的代码混淆
像Android开发基于java语言的,很容易被别人反编译出来,一下就相当于裸奔了,特别是用于商业用途的时候,防止反编译是必要的措施。而代码混淆是一种很好防止反编译的方式。 1、APK的代码混淆。 在eclipse的开发环境下,使用android SDK 自带的proguard混淆工具。主要用到红线框中的两个文件。 在project.properties文件中,要
2014-07-04 19:27:24
1709
原创 as3930工作流程简述
奥地利微电子公司扩展旗下射频产品线,推出单通道、低功耗、低频唤醒接收器AS3930,以最低的电流消耗实现了最高灵敏度和业内最大范围。 AS3930全面优化了功耗、灵敏度和可编程性,支持广泛使用的125 kHz频带,适合各种应用。AS3930芯片里包括一个接收通道,一个频率探测器,一个数据连接器,一个曼彻斯特解码器,8个可编程寄存器和一个实时时钟。使用是的V1.0。(目前AMS公司已有V1.
2014-03-26 11:12:36
2051
原创 JavaScript 实现简单的倒计时弹窗DEMO
最近做一个简单的设置网页,因为需要重启设备功能,于是就想在上面加一个倒计时弹窗的界面。先看效果图:
2014-03-04 17:56:30
8005
原创 Linux网络编程 之 TCP 多线程的服务器和客户端同时收发数据
具体的相关TCP 的资料我这里就不多说,我会在末尾贴出来。直接上源码吧,里面有一些跟本题无关的我已经屏弊掉了,里面的注释也很清楚,大家只要自己看一下就应该知道了。1、服务器端代码(Server.c)#include #include #include #include #include #include #include #include #include
2013-11-22 19:16:46
6916
1
原创 Linux网络编程 之 UDP 广播
最近一直在做linux的网络,现在作个总结,陆续贴出来。在网上搜了很多资料 ,其中周立发的博客对我的学习参考作用最大,谢谢前辈。这个倒让我花的时间最多了,主要一直脑残的在自己的虚拟机上调试不成功,认为只要开几个终端就可以当作服务器了,这种想法是错误的。因为ip地址会被占用的,所以后来我和同事测试一下,就OK了。这个广播代码逻辑其实挺有用的,可以用来寻找所在局域网内设备。
2013-11-22 18:24:27
5975
原创 Linux网络编程 之 UDP 组播
最近一直在做linux的网络,现在作个总结,陆续贴出来。在网上搜了很多资料 ,其中周立发的博客对我的学习参考作用最大,谢谢前辈。直接上代码吧,一个很简单udp 组播通信的例子,分别为服务器端和客户端的代码。1、服务器端代码 (multi_udp_server.c)#include #include #include #include #inc
2013-11-22 17:59:01
6271
原创 Linux网络编程 之 UDP 单播
最近一直在做linux的网络,现在作个总结,陆续贴出来。在网上搜了很多资料 ,其中周立发的博客对我的学习参考作用最大,谢谢前辈。直接上代码吧,一个很简单udp通信的例子,分别为服务器端和客户端的代码。1、服务端代码(udp_server.c):这里实现了一个小功能,一收到客户端发来的消息则又转发给客户端。#include #include #include#i
2013-11-22 17:12:17
2583
原创 LPC213x ARM板子的DS18B20温度传感器模块添加
老大临时给了一个任务,给了我一块LPC213x的板子,叫我加上DS18B20温度传感器。本人之前是写上层应用程序的,对ARM是一窍不通的。没办法啊,硬着头皮上。调了好几天,终于调完了,先上一个热腾腾的截图: 看到的“18 4B”的十六制数据就是从温度传感器的寄存器中读出来的数值。 有关DS18B20的一些中英资料,我会在文章的末尾贴出。好了,我们开始吧。 1、关于DS18B20的简单介
2013-11-15 19:01:47
3355
1
原创 android的开机动画制作要点
网上有许多制作开机动画的教程。因为之前我也看过很多,但是自已做出来的显示不出来。究其原因是我打bootanimation.zip包的时候,压缩方式不对。我在windows 环境下, 用压缩软件:注意:压缩方式是存储然后保存,就OK了
2013-08-14 20:41:44
1123
AS3930 英文说明文档 V1.0
2014-03-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅