<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[厚积而薄发]]></title><description><![CDATA[个人主页：https://hw-lin.top]]></description><link>https://blog.youkuaiyun.com/weixin_45988024</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; weixin_45988024]]></copyright><item><title><![CDATA[FreeRTOS:4.内存管理]]></title><link>https://blog.youkuaiyun.com/weixin_45988024/article/details/139699399</link><guid>https://blog.youkuaiyun.com/weixin_45988024/article/details/139699399</guid><author>weixin_45988024</author><pubDate>Sat, 15 Jun 2024 11:31:57 +0800</pubDate><description><![CDATA[本文基于heap_4.c的源码分析freertos的堆内存分配]]></description><category></category></item><item><title><![CDATA[【Linux设备驱动】1.字符设备驱动程序框架及相关结构体]]></title><link>https://blog.youkuaiyun.com/weixin_45988024/article/details/139199256</link><guid>https://blog.youkuaiyun.com/weixin_45988024/article/details/139199256</guid><author>weixin_45988024</author><pubDate>Sat, 25 May 2024 16:17:01 +0800</pubDate><description><![CDATA[字符设备驱动的总体框架可以分为：驱动模块加载函数、驱动模块卸载函数、
填充file_operations结构体中的具体操作函数]]></description><category></category></item><item><title><![CDATA[FreeRTOS:3.信号量]]></title><link>https://blog.youkuaiyun.com/weixin_45988024/article/details/138269196</link><guid>https://blog.youkuaiyun.com/weixin_45988024/article/details/138269196</guid><author>weixin_45988024</author><pubDate>Sun, 28 Apr 2024 10:06:01 +0800</pubDate><description><![CDATA[信号量（Semaphore）是一种实现任务间通信的机制，可以实现任务之间同步或临界资源的互斥访问，实现的方式主要就是依靠队列(信号量是特殊的队列)的任务阻塞机制。]]></description><category></category></item><item><title><![CDATA[FreeRTOS:3.消息队列]]></title><link>https://blog.youkuaiyun.com/weixin_45988024/article/details/138193840</link><guid>https://blog.youkuaiyun.com/weixin_45988024/article/details/138193840</guid><author>weixin_45988024</author><pubDate>Thu, 25 Apr 2024 16:47:22 +0800</pubDate><description><![CDATA[本文主要基于消息队列的源码进行分析，来对FreeRTOS的消息队列进一步学习。]]></description><category></category></item><item><title><![CDATA[FreeRTOS:2.任务调度]]></title><link>https://blog.youkuaiyun.com/weixin_45988024/article/details/138135311</link><guid>https://blog.youkuaiyun.com/weixin_45988024/article/details/138135311</guid><author>weixin_45988024</author><pubDate>Tue, 23 Apr 2024 18:48:37 +0800</pubDate><description><![CDATA[本文分析FreeRTOS的任务调度]]></description><category></category></item><item><title><![CDATA[齐次变换矩阵、欧拉角]]></title><link>https://blog.youkuaiyun.com/weixin_45988024/article/details/137882156</link><guid>https://blog.youkuaiyun.com/weixin_45988024/article/details/137882156</guid><author>weixin_45988024</author><pubDate>Wed, 17 Apr 2024 17:43:51 +0800</pubDate><description><![CDATA[因为老是忘记齐次变换矩阵的含义以及方向，每次推导公式都很费劲，写下这篇文章用于快速回顾齐次变换矩阵。]]></description><category></category></item><item><title><![CDATA[FreeRTOS:1.通用链表分析]]></title><link>https://blog.youkuaiyun.com/weixin_45988024/article/details/137878356</link><guid>https://blog.youkuaiyun.com/weixin_45988024/article/details/137878356</guid><author>weixin_45988024</author><pubDate>Wed, 17 Apr 2024 16:35:20 +0800</pubDate><description><![CDATA[该系列记录学习FreeRTOS的源码的过程，基于，以及FreeRTOS源码进行学习。首先是FreeRTOS内核的通用链表实现。]]></description><category></category></item><item><title><![CDATA[算法模板 7.拓扑排序]]></title><link>https://blog.youkuaiyun.com/weixin_45988024/article/details/136184647</link><guid>https://blog.youkuaiyun.com/weixin_45988024/article/details/136184647</guid><author>weixin_45988024</author><pubDate>Tue, 20 Feb 2024 10:38:56 +0800</pubDate><description><![CDATA[先把入度为0的点压入队列，然后进行广度优先搜索（找到队头，弹出队头，对队头能够访问的边进行广搜），并且把对应的边剪掉（入度-1），再进行一次入度为0 的点搜索（判断该点是否入度为0）这样的一次维护队列的过程，就完成了拓扑序的维护。每次弹出队头，要把队头进行存储。用来解决循环依赖相关问题！一个有向无环图一定存在一个。有向无环图也被称作拓扑图。]]></description><category></category></item><item><title><![CDATA[算法模板 6.并查集]]></title><link>https://blog.youkuaiyun.com/weixin_45988024/article/details/136177735</link><guid>https://blog.youkuaiyun.com/weixin_45988024/article/details/136177735</guid><author>weixin_45988024</author><pubDate>Mon, 19 Feb 2024 20:34:50 +0800</pubDate><description><![CDATA[判断集合个数也就是判断。用于解决连通块问题。]]></description><category></category></item><item><title><![CDATA[算法模板 5.十大排序]]></title><link>https://blog.youkuaiyun.com/weixin_45988024/article/details/135990834</link><guid>https://blog.youkuaiyun.com/weixin_45988024/article/details/135990834</guid><author>weixin_45988024</author><pubDate>Fri, 02 Feb 2024 11:53:08 +0800</pubDate><description><![CDATA[它的基本思想是：对于n个待排序的数列，取一个小于n的整数gap(gap被称为步长)将待排序元素分成若干个组子序列，所有距离为gap的倍数的记录放在同一个组中；重复这样的操作，当gap=1时，整个数列就是有序的。对于待排序数组，从第 2 个元素开始 (称作插入对象元素) ，比较它与之前的元素 (称作比较对象元素) ，当插入对象元素小于比较对象元素时，继续往前比较，直到不小于 (≥) 比较对象，此时将插入对象元素插入到该次比较对象元素之后。：每次寻找一组数据中最大的元素，两两比较，找到后放到数据的最后一位。]]></description><category></category></item><item><title><![CDATA[算法模板 4.高精度计算]]></title><link>https://blog.youkuaiyun.com/weixin_45988024/article/details/135990638</link><guid>https://blog.youkuaiyun.com/weixin_45988024/article/details/135990638</guid><author>weixin_45988024</author><pubDate>Fri, 02 Feb 2024 11:42:12 +0800</pubDate><description><![CDATA[其实就是模拟竖式加法。从开始计算 结果（%=10）和进位（/=10），用Vector比较方便！]]></description><category></category></item><item><title><![CDATA[算法模板 3.二分查找]]></title><link>https://blog.youkuaiyun.com/weixin_45988024/article/details/135989024</link><guid>https://blog.youkuaiyun.com/weixin_45988024/article/details/135989024</guid><author>weixin_45988024</author><pubDate>Fri, 02 Feb 2024 10:49:08 +0800</pubDate><description><![CDATA[已知答案具有单调性，根据答案估计其上下界，然后进行二分，自定义check函数，在check函数中判断这个答案mid是否合法，然后移动边界进行二分。（这里一般预留100倍的精度）时，则跳出循环。关键点在于当左边界和右边界足够接近，即。]]></description><category></category></item><item><title><![CDATA[算法模板 2.差分]]></title><link>https://blog.youkuaiyun.com/weixin_45988024/article/details/135974061</link><guid>https://blog.youkuaiyun.com/weixin_45988024/article/details/135974061</guid><author>weixin_45988024</author><pubDate>Thu, 01 Feb 2024 15:24:13 +0800</pubDate><description><![CDATA[差分和前缀和是逆运算差分数组可以将对a数组任意区间的加/减操作优化到O ( 1 )]]></description><category></category></item><item><title><![CDATA[算法模板 1.前缀和]]></title><link>https://blog.youkuaiyun.com/weixin_45988024/article/details/135968294</link><guid>https://blog.youkuaiyun.com/weixin_45988024/article/details/135968294</guid><author>weixin_45988024</author><pubDate>Thu, 01 Feb 2024 10:33:01 +0800</pubDate><description><![CDATA[【代码】笔试算法模板 1.前缀和。]]></description><category></category></item><item><title><![CDATA[ARM汇编 4.GNU伪指令、内联汇编]]></title><link>https://blog.youkuaiyun.com/weixin_45988024/article/details/135941644</link><guid>https://blog.youkuaiyun.com/weixin_45988024/article/details/135941644</guid><author>weixin_45988024</author><pubDate>Tue, 30 Jan 2024 21:30:16 +0800</pubDate><description><![CDATA[杂项伪操作符：.global 定义全局符号.align 指定数据对齐方式.include 引入头文件，也可以#include.incbin 伪操作：将一个二进制文件编译到当前文件，用于静态库.rept：重复接下来的指令，以.rept开始，.end结束.if伪操作：根据表达式的值来决定是否要编译下面的代码.macro伪操作：将一段代码定义为一个整体，类似c里面的宏函数。]]></description><category></category></item><item><title><![CDATA[ARM汇编 3.arm异常]]></title><link>https://blog.youkuaiyun.com/weixin_45988024/article/details/135941616</link><guid>https://blog.youkuaiyun.com/weixin_45988024/article/details/135941616</guid><author>weixin_45988024</author><pubDate>Tue, 30 Jan 2024 21:14:46 +0800</pubDate><description><![CDATA[软件中断指令（swi）异常：是由应用程序自己调用时产生的，用户程序申请访问硬件资料时需要调用该指令。如Printf函数，打印需要申请显示器，用户程序没有外设硬件的使用权，只能通过使用软件中断指令切换到内核态。（为了保护操作系统的安全和硬件资源的合理使用，在SVC模式下处理）]]></description><category></category></item><item><title><![CDATA[ARM汇编 2.arm常用指令]]></title><link>https://blog.youkuaiyun.com/weixin_45988024/article/details/135941566</link><guid>https://blog.youkuaiyun.com/weixin_45988024/article/details/135941566</guid><author>weixin_45988024</author><pubDate>Tue, 30 Jan 2024 21:11:20 +0800</pubDate><description><![CDATA[0xfff不是立即数，而0x80000001是立即数对于存在一定的规则：（也不用记，只需要有这个概念）]]></description><category></category></item><item><title><![CDATA[ARM汇编 1.arm架构]]></title><link>https://blog.youkuaiyun.com/weixin_45988024/article/details/135941491</link><guid>https://blog.youkuaiyun.com/weixin_45988024/article/details/135941491</guid><author>weixin_45988024</author><pubDate>Tue, 30 Jan 2024 21:08:49 +0800</pubDate><description><![CDATA[Cortex-A系列的8种工作模式，比起Cortex-M系列多了monitor模式只需掌握。]]></description><category></category></item><item><title><![CDATA[MIT 6s081 lab5.xv6文件系统]]></title><link>https://blog.youkuaiyun.com/weixin_45988024/article/details/135929732</link><guid>https://blog.youkuaiyun.com/weixin_45988024/article/details/135929732</guid><author>weixin_45988024</author><pubDate>Tue, 30 Jan 2024 11:51:50 +0800</pubDate><description><![CDATA[int valid;int disk;uint dev;//块号//睡眠锁//引用该块的个数//该buf的前一个buf//该buf的后一个buf// 缓存的数据xv6使用一些数据结构来定义日志区int n;// 日志的大小 int block [ LOGSIZE ];// 日志的位置关系信息 };int start;//日志区第一块块号 int size;// 日志区的大小 int outstanding;]]></description><category></category></item><item><title><![CDATA[MIT 6s081 lab4.xv6进程调度]]></title><link>https://blog.youkuaiyun.com/weixin_45988024/article/details/135788235</link><guid>https://blog.youkuaiyun.com/weixin_45988024/article/details/135788235</guid><author>weixin_45988024</author><pubDate>Tue, 23 Jan 2024 20:46:40 +0800</pubDate><description><![CDATA[首先对一些合法性进行判断，此时必须持有当前进程的锁，该cpu的锁的链表长度不超过1（否则会发生死锁问题），当前进程为运行态，中断是否已经关闭，记录当前CPU的初始的中断开关状态，然后调用swtch进程上下文切换，此时进入内核进程中（调度器进程）。在这里，进程上下文中不仅包含了这些寄存器，还保存了ra寄存器和sp寄存器，分别保存了返回地址（用于进程恢复时指令从正确的位置开始运行），sp寄存器（用于进程被重新调度后内核栈正确恢复）另外一个发生调度的地方在睡眠锁的使用中，也就是。]]></description><category></category></item></channel></rss>