<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[roufoo的博客]]></title><description><![CDATA[纸上得来终觉浅 绝知此事要躬行 https://github.com/luqian2017]]></description><link>https://blog.youkuaiyun.com/roufoo</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; roufoo]]></copyright><item><title><![CDATA[C++ 类模板与函数模板特化特化学习]]></title><link>https://blog.youkuaiyun.com/roufoo/article/details/170288810</link><guid>https://blog.youkuaiyun.com/roufoo/article/details/170288810</guid><author>roufoo</author><pubDate>Sun, 08 Nov 2026 13:06:33 +0800</pubDate><description><![CDATA[C++ 类模板和函数模板学习]]></description><category></category></item><item><title><![CDATA[CMake, Systemd/initd 和 Yocto的关系]]></title><link>https://blog.youkuaiyun.com/roufoo/article/details/169733534</link><guid>https://blog.youkuaiyun.com/roufoo/article/details/169733534</guid><author>roufoo</author><pubDate>Sun, 01 Nov 2026 11:00:30 +0800</pubDate><description><![CDATA[CMake, Systemd/init.d和Yocto之间的区别于联系]]></description><category></category></item><item><title><![CDATA[UTC time, TAI time, POSIX time, epoch time, NTP time和PTP time 的异同]]></title><link>https://blog.youkuaiyun.com/roufoo/article/details/169732761</link><guid>https://blog.youkuaiyun.com/roufoo/article/details/169732761</guid><author>roufoo</author><pubDate>Sun, 01 Nov 2026 10:47:38 +0800</pubDate><description><![CDATA[本文总结了各种时间格式的异同]]></description><category></category></item><item><title><![CDATA[C++ 左值右值学习]]></title><link>https://blog.youkuaiyun.com/roufoo/article/details/164148469</link><guid>https://blog.youkuaiyun.com/roufoo/article/details/164148469</guid><author>roufoo</author><pubDate>Fri, 28 Aug 2026 16:08:23 +0800</pubDate><description><![CDATA[现代C++的左值 右值 学习心得。]]></description><category></category></item><item><title><![CDATA[Linux 中断下半部三大核心机制（软中断、Tasklet、工作队列）的学习]]></title><link>https://blog.youkuaiyun.com/roufoo/article/details/163887226</link><guid>https://blog.youkuaiyun.com/roufoo/article/details/163887226</guid><author>roufoo</author><pubDate>Wed, 19 Aug 2026 14:34:42 +0800</pubDate><description><![CDATA[Linux 中断下半部(tasklet, 软中断和workqueue)的学习]]></description><category></category></item><item><title><![CDATA[malloc 申请内存的全流程]]></title><link>https://blog.youkuaiyun.com/roufoo/article/details/163611616</link><guid>https://blog.youkuaiyun.com/roufoo/article/details/163611616</guid><author>roufoo</author><pubDate>Sun, 09 Aug 2026 13:45:06 +0800</pubDate><description><![CDATA[malloc 申请内存的真正全流程]]></description><category></category></item><item><title><![CDATA[Linux 读写锁，RCU锁，顺序锁的对比]]></title><link>https://blog.youkuaiyun.com/roufoo/article/details/163500351</link><guid>https://blog.youkuaiyun.com/roufoo/article/details/163500351</guid><author>roufoo</author><pubDate>Wed, 05 Aug 2026 11:56:16 +0800</pubDate><description><![CDATA[除了SpinLock, Mutex, Conditional Variable和Semaphore以外，Linux还提供几种其它锁。如何选取用哪种锁呢？]]></description><category></category></item><item><title><![CDATA[C++多线程函数 join, detach和yield的比较]]></title><link>https://blog.youkuaiyun.com/roufoo/article/details/163337105</link><guid>https://blog.youkuaiyun.com/roufoo/article/details/163337105</guid><author>roufoo</author><pubDate>Thu, 30 Jul 2026 15:11:59 +0800</pubDate><description><![CDATA[C++11的join(), detach()和yield()的对比学习。]]></description><category></category></item><item><title><![CDATA[Bare Metal, RTOS 和 Linux的内存模式与任务切换对比]]></title><link>https://blog.youkuaiyun.com/roufoo/article/details/163009961</link><guid>https://blog.youkuaiyun.com/roufoo/article/details/163009961</guid><author>roufoo</author><pubDate>Sun, 19 Jul 2026 07:17:50 +0800</pubDate><description><![CDATA[内存结构每个进程（Task）都拥有一个属于自己的、一模一样的、巨大的虚拟内存宇宙（例如 32位 下都是 0 ~ 4GB）。RTOS：天下大同的“无隔离”世界在 RTOS（如 FreeRTOS）中，“虚拟内存”和“页表”是完全不存在的概念。RTOS 切换任务的过程极其单纯，只需要这几步汇编：把当前任务 A 的所有 CPU 寄存器（R0~R15 等）全部压入任务 A 的专属物理栈中。我们常说“Linux 切换任务很重，RTOS 切换任务极快”，其根源就在于它们在内存共享与隔离上的设计哲学截然不同。]]></description><category></category></item><item><title><![CDATA[C和C++内存布局的差异]]></title><link>https://blog.youkuaiyun.com/roufoo/article/details/162933807</link><guid>https://blog.youkuaiyun.com/roufoo/article/details/162933807</guid><author>roufoo</author><pubDate>Thu, 16 Jul 2026 13:11:46 +0800</pubDate><description><![CDATA[注意：]]></description><category></category></item><item><title><![CDATA[递归，分治，DFS，回溯的总结]]></title><link>https://blog.youkuaiyun.com/roufoo/article/details/162843435</link><guid>https://blog.youkuaiyun.com/roufoo/article/details/162843435</guid><author>roufoo</author><pubDate>Mon, 13 Jul 2026 15:17:47 +0800</pubDate><description><![CDATA[特点：把一个问题拆成几个独立子问题。子问题之间基本互不影响。回溯（Backtracking）：即DFS+状态恢复。例如当前位置走左还是走右？或者 当前数字+还是-?而是探索很多种可能。DFS也是一种递归（很多情况下）。回溯其实就是带状态恢复的 DFS。普通 DFS：即遍历，没有试错。，因为已经访问过了。特点：枚举所有方案。]]></description><category></category></item><item><title><![CDATA[普通 C 函数、任务主动切换与任务被动切换的对比]]></title><link>https://blog.youkuaiyun.com/roufoo/article/details/162824027</link><guid>https://blog.youkuaiyun.com/roufoo/article/details/162824027</guid><author>roufoo</author><pubDate>Mon, 13 Jul 2026 05:27:13 +0800</pubDate><description><![CDATA[在操作系统（OS）的语境下，Context Switch 特指“线程/任务/进程级别”的上下文切换。广义上的统一：它们本质上都在做“现场保护”如果跳出操作系统的框架，站在 CPU 硬件核心（Core） 的冷酷视角来看，这三种情况在底层逻辑上确实是同一种哲学的延伸：无论是函数调用（防寄存器冲突）、主动切换（防任务丢失）还是中断抢占（防突发打断），它们的核心动作全都是：“由于物理寄存器数量有限，为了去干另一件事，必须把当前寄存器里的旧物资（Context）挪到物理 RAM 栈里腾出地方，办完事后再挪回来。]]></description><category></category></item><item><title><![CDATA[EPROM, Mask ROM, NOR，NAND和MRAM的对比]]></title><link>https://blog.youkuaiyun.com/roufoo/article/details/162503572</link><guid>https://blog.youkuaiyun.com/roufoo/article/details/162503572</guid><author>roufoo</author><pubDate>Thu, 02 Jul 2026 03:18:07 +0800</pubDate><description><![CDATA[存储技术对比与工程原理精要 
本文对比了主流存储技术的核心特性： 执行方式：NOR Flash、MRAM等支持XIP（就地执行），NAND需搬运至RAM运行； 写入机制：NAND/NOR需先擦后写，MRAM支持直接覆盖写入，速度达纳秒级； 存储密度：NOR因独立连线导致容量受限，3D NAND密度更高； 工艺限制：NOR Flash受限于28nm以上工艺，MRAM有望突破先进制程适配问题。 关键差异源于物理结构（如并行地址线、磁场存储）与工艺兼容性，MRAM因兼具高速、无限寿命和制程潜力成为未来发展方向。]]></description><category></category></item><item><title><![CDATA[AI Acronyms]]></title><link>https://blog.youkuaiyun.com/roufoo/article/details/141782471</link><guid>https://blog.youkuaiyun.com/roufoo/article/details/141782471</guid><author>roufoo</author><pubDate>Sun, 01 Sep 2024 12:11:17 +0800</pubDate><description><![CDATA[AI 的acronum列表]]></description><category></category></item><item><title><![CDATA[传感器学习个人小结]]></title><link>https://blog.youkuaiyun.com/roufoo/article/details/140598534</link><guid>https://blog.youkuaiyun.com/roufoo/article/details/140598534</guid><author>roufoo</author><pubDate>Mon, 22 Jul 2024 04:37:22 +0800</pubDate><description><![CDATA[关于各类传感器的学习个人小结]]></description><category></category></item><item><title><![CDATA[Leetcode 1325. Delete Leaves With a Given Value (二叉树后序遍历经典题)]]></title><link>https://blog.youkuaiyun.com/roufoo/article/details/136194105</link><guid>https://blog.youkuaiyun.com/roufoo/article/details/136194105</guid><author>roufoo</author><pubDate>Tue, 20 Feb 2024 16:51:43 +0800</pubDate><description><![CDATA[Leetcode 1325: 二叉树后序遍历经典题]]></description><category></category></item><item><title><![CDATA[Lintcode 614 · Binary Tree Longest Consecutive Sequence II (二叉树后序遍历好题)]]></title><link>https://blog.youkuaiyun.com/roufoo/article/details/136193277</link><guid>https://blog.youkuaiyun.com/roufoo/article/details/136193277</guid><author>roufoo</author><pubDate>Tue, 20 Feb 2024 16:26:04 +0800</pubDate><description><![CDATA[LintCode 614: 二叉树后序遍历好题]]></description><category></category></item><item><title><![CDATA[Leetcode 563. Binary Tree Tilt (二叉树后序遍历好题)]]></title><link>https://blog.youkuaiyun.com/roufoo/article/details/136181250</link><guid>https://blog.youkuaiyun.com/roufoo/article/details/136181250</guid><author>roufoo</author><pubDate>Tue, 20 Feb 2024 04:02:53 +0800</pubDate><description><![CDATA[Leetcode 563: 二叉树后序遍历好题]]></description><category></category></item><item><title><![CDATA[Leetcode 508. Most Frequent Subtree Sum (二叉树后序遍历好题)]]></title><link>https://blog.youkuaiyun.com/roufoo/article/details/136181228</link><guid>https://blog.youkuaiyun.com/roufoo/article/details/136181228</guid><author>roufoo</author><pubDate>Tue, 20 Feb 2024 03:42:31 +0800</pubDate><description><![CDATA[Leetcode 508: 后序遍历好题]]></description><category></category></item><item><title><![CDATA[LintCode 650 · Find Leaves of Binary Tree (binary tree 后序遍历非常好的题目!)]]></title><link>https://blog.youkuaiyun.com/roufoo/article/details/136181170</link><guid>https://blog.youkuaiyun.com/roufoo/article/details/136181170</guid><author>roufoo</author><pubDate>Tue, 20 Feb 2024 02:56:58 +0800</pubDate><description><![CDATA[LintCode 650: 二叉树后序遍历好题！]]></description><category></category></item></channel></rss>