<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[KUNPLAYBOY的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/KUNPLAYBOY</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; KUNPLAYBOY]]></copyright><item><title><![CDATA[关于idea中“冲突问题”直接修改文件后，依旧会“冲突”报错的问题？]]></title><link>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/130229386</link><guid>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/130229386</guid><author>KUNPLAYBOY</author><pubDate>Tue, 18 Apr 2023 19:32:11 +0800</pubDate><description><![CDATA[idea中虽然弱化了本地缓存的操作，但如果直接在修改文件后直接commit，会操作失败，这是由于本地缓存未更新所导致的，故选中修改后的文件右击，选择Git->Add后，再进行commit]]></description><category></category></item><item><title><![CDATA[proteus8.12闪退以及其他版本闪退的通用解决方法，亲测有效]]></title><link>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/129451269</link><guid>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/129451269</guid><author>KUNPLAYBOY</author><pubDate>Fri, 10 Mar 2023 20:06:16 +0800</pubDate><description><![CDATA[proteus8.12闪退以及其他版本闪退的通用解决方法，亲测有效]]></description><category></category></item><item><title><![CDATA[Makefile简易笔记]]></title><link>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/128544061</link><guid>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/128544061</guid><author>KUNPLAYBOY</author><pubDate>Wed, 04 Jan 2023 10:32:47 +0800</pubDate><description><![CDATA[Makefile的一些核心思想，常用语法总结]]></description><category></category></item><item><title><![CDATA[Vim的字符编码设置(不要整虚的，直接上操作)]]></title><link>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/126549777</link><guid>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/126549777</guid><author>KUNPLAYBOY</author><pubDate>Fri, 26 Aug 2022 20:14:36 +0800</pubDate><description><![CDATA[在根目录下建立  .vimrc文件。2、在文件中添加内容如下。]]></description><category></category></item><item><title><![CDATA[Linux下的网络设备驱动]]></title><link>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/126149874</link><guid>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/126149874</guid><author>KUNPLAYBOY</author><pubDate>Wed, 03 Aug 2022 22:06:26 +0800</pubDate><description><![CDATA[与字符设备和块设备不同(通过应用层和驱动层指向同一个文件，通过file_operation作为两者之间的桥梁)，网络设备并不对应于/dev目录下的文件，应用程序最终使用套接字完成与 网络设备的接口。因而在网络设备身上并不能体现出“一切都是文件”的思想。​Linux系统对网络设备驱动定义了4个层次，这4个层次为网络协议接口层、网络设备接口层、提供实际功能的设备驱动功能层和网络设备与媒介层。...]]></description><category></category></item><item><title><![CDATA[slab为什么要进行染色处理]]></title><link>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/125709974</link><guid>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/125709974</guid><author>KUNPLAYBOY</author><pubDate>Sun, 10 Jul 2022 19:53:55 +0800</pubDate><description><![CDATA[先说一下结论哈！slab中着色区的作用，是用来避免cache行的地址争用(跟缓存命中率的意思差不多)，因为cache是一个固定映射，一次只能映射64k的空间，也就是说，如果两个访存操作（A，B），并不在同一片区(64k)。那么就必须要先让A完成访存操作，再切换cache的映射区间，再完成B的访问操作。然而染色区就是一个地址偏移，让A，B访问的地址位于同一片区间，防止频繁切换带来的效率低下         cache总共就32K，每个缓存行为64个字节，一共512行。为什么说cache行是一个固定映射呢，以内]]></description><category></category></item><item><title><![CDATA[origin如何指定某一个刻度线不显示]]></title><link>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/125347787</link><guid>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/125347787</guid><author>KUNPLAYBOY</author><pubDate>Sat, 18 Jun 2022 15:43:33 +0800</pubDate><description><![CDATA[常见需求是要使origin的横或纵轴线的首刻度线不显示
1、首先双击，坐标轴，进入设置页面
2、进入特殊刻度线

3、将轴始端，隐藏即可

但如果你的要隐藏的的刻度线不是位于首端，如以下这种情况

我们要隐藏的刻度值是0，通过这个值定位到这个刻度线，然后隐藏即可...]]></description><category></category></item><item><title><![CDATA[AttributeError: Word.Application.Documents]]></title><link>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/125304042</link><guid>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/125304042</guid><author>KUNPLAYBOY</author><pubDate>Wed, 15 Jun 2022 20:20:15 +0800</pubDate><description><![CDATA[AttributeError: Word.Application.Documentsb报错解决方案
]]></description><category></category></item><item><title><![CDATA[linux嵌入式项目之安防监控一(详解)]]></title><link>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/123365446</link><guid>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/123365446</guid><author>KUNPLAYBOY</author><pubDate>Sun, 15 May 2022 22:17:51 +0800</pubDate><description><![CDATA[实现的功能

系统运行环境
软件配置
开发平台： Ubuntu14.04  vs2012 vs2017
开发环境： linux3.14.0、uboot2013.01、gcc4.6.4
​           通信协议： 串口、ZigBee、http协议等
​           数据库 ： sqlite3
硬件配置
处理器：Cortex-A9（Exynos4412）开发板   （开发板上自带DHT11温湿度传感器，USB摄像头等数据采集装置，所以暂时可以不考虑远端的数据采集，将开发板采集的数据上传的应用层）]]></description><category></category></item><item><title><![CDATA[linux中线程和进程的区别深度剖析底层实现]]></title><link>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/124697265</link><guid>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/124697265</guid><author>KUNPLAYBOY</author><pubDate>Tue, 10 May 2022 20:57:37 +0800</pubDate><description><![CDATA[文章目录前言Linux中进程和线程的共性Linux中进程的创建Linux中线程的实现总结
前言
在没有仔细了解过Linux的进程和线程实现机制之前，看过很多关于进程和线程的博客，从这些博客中我大概知道进程和线程的区别
1、进程拥有独立的内存空间，因此进程与进程之间相对独立，互不影响，但缺点进程间的通信相对复杂
2、同一进程的线程共享进程的内存和资源（线程有自己的私有空间），因此同一进程下的线程之间的通信很方便，缺点是一个线程的出问题会影响到同一进程下的其他线程
看完这些关于进程和线程的博客后，我有一些疑惑如]]></description><category></category></item><item><title><![CDATA[简单说一linux内核的内存模型(平坦，不连续，稀疏等三种内存模型)]]></title><link>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/124484785</link><guid>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/124484785</guid><author>KUNPLAYBOY</author><pubDate>Thu, 28 Apr 2022 22:28:24 +0800</pubDate><description><![CDATA[目录Linux内核支持的三种内存模型CONFIG_FLATMEM（平坦内存模型）基本概念（以第一个为例，不在复述）所以说什么是平坦模型所以说什么是不连续模型
Linux内核支持的三种内存模型
CONFIG_FLATMEM（平坦内存模型）
CONFIG_DISCONTIGMEM（不连续内存模型）
CONFIG_SPARSEMEM_VMEMMAP（稀疏的内存模型）
CONFIG_FLATMEM（平坦内存模型）

基本概念（以第一个为例，不在复述）
就像管理一个学校，我们一般不以个人为单位，而是选择以班级为单位进]]></description><category></category></item><item><title><![CDATA[有没有好记一点，c++ ，set容器遍历方法?(看过来)]]></title><link>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/124385277</link><guid>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/124385277</guid><author>KUNPLAYBOY</author><pubDate>Sun, 24 Apr 2022 16:14:34 +0800</pubDate><description><![CDATA[老方法
set count&lt;int&gt; kun ;
//咱这就不实例化，所以说，这代码直接跑是跑不起来的
set&lt;int&gt;::iterator it;    //set类型迭代器
for(it=order.begin();it!=order.end();it++){
     cout&lt;&lt;*it&lt;&lt;endl;    //遍历输出
  }

在以前的方法中需要，建立set类型的迭代器，才能实现遍历，多少有点麻烦，现在，auto，出来了，懒孩子们得救了，具体看下面
]]></description><category></category></item><item><title><![CDATA[几句话说明Linux中读写锁的实现逻辑]]></title><link>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/124260422</link><guid>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/124260422</guid><author>KUNPLAYBOY</author><pubDate>Mon, 18 Apr 2022 21:49:51 +0800</pubDate><description><![CDATA[目录基本概念(可以跳过不看)为什么需要读写锁读写锁的功能读写锁的实现逻辑(重点在这里！！！)具体代码（有能力的可以看看，只保留的重要部分的代码）
基本概念(可以跳过不看)
为什么需要读写锁
．．在操作系统中，有很多共享数据，进程对这些共享数据要进行修改的情况很少，而读取的情况却是非常多的，这些共享数据的操作基本都是在读取。如果每次读取这些共享数据都加锁的话，那就太浪费时间了，会降低进程的运行效率。因为读操作不会导致修改数据，所以在读取数据的时候不用加锁了，而是可以共享的访问，只有涉及到对共享数据修改的时候，]]></description><category></category></item><item><title><![CDATA[什么是cache？为什么需要cache？cache存在的合理性]]></title><link>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/124234683</link><guid>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/124234683</guid><author>KUNPLAYBOY</author><pubDate>Sun, 17 Apr 2022 19:31:35 +0800</pubDate><description><![CDATA[文章目录为什么需要cache？为什么从cache里面读取就能提高cpu的数据处理效率？cache存在的合理性程序的局部性原理什么是cache？cache的工作流程如何写出提高 Cache 命中率的代码？结尾

为什么需要cache？
．．这里用一句话概括，CPU的数据处理速度，远远高于从内存中读取数据的速度，也就是说，如果CPU直接从内存中读取数据进行处理，CPU很长一段时间会用在等待数据读取完毕，这显示十分浪费CPU资源的。所以通过cache来缓存一部分数据，CPU读取数据时，先从cache里面找，从而提]]></description><category></category></item><item><title><![CDATA[Linux进程如何实现用户空间与内核空间的转换]]></title><link>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/124142474</link><guid>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/124142474</guid><author>KUNPLAYBOY</author><pubDate>Wed, 13 Apr 2022 10:39:41 +0800</pubDate><description><![CDATA[文章目录为什么进程需要从用户态进入内核态？用户态进入内核态的三种场景系统调用用户态进入内核态的具体实现用户栈和内核栈异常和硬件中断鸣谢单位
为什么进程需要从用户态进入内核态？
这里我不去细细区分什么是属于内核空间，什么又是属于用户空间。我讲一个逻辑：在用户空间，我们对进程不加限制，想干啥干啥，如果此时所有的资源都处于用户空间中，那么如果进程对那种系统级的资源随意修改，显然极易造成系统的崩溃。但同时又要保证进程有着足够的自由度，不然不利于开发。所以内核空间的开辟就显得极为重要，我们将不能随意修改的资源，放入内]]></description><category></category></item><item><title><![CDATA[剖析linux的内存管理与分配]]></title><link>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/123772851</link><guid>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/123772851</guid><author>KUNPLAYBOY</author><pubDate>Sun, 27 Mar 2022 14:24:14 +0800</pubDate><description><![CDATA[文章目录伙伴算法**1、伙伴算法原理****2、物理页的分配****3、 物理页的释放	****总结**Slab分配机制**1、Slab如何对内存进行管理？****2、Slab中如何实现对页进行更细的划分？****3、Slab如何对内存进行分配**４、Slab如何对数据结构slab进行管理5、什么是kmem_cache?总结Slab与Slub的区别Slab的缺点
伙伴算法
Linux采用著名的伙伴算法来解决外碎片的问题
1、伙伴算法原理
Linux的伙伴算法把所有的空间页面分为10个块组，每个组中块的大小是]]></description><category></category></item><item><title><![CDATA[如何查看自己的摄像头是否支持UVC]]></title><link>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/123703908</link><guid>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/123703908</guid><author>KUNPLAYBOY</author><pubDate>Thu, 24 Mar 2022 10:16:10 +0800</pubDate><description><![CDATA[查看我的摄像头信息
确定 USB 摄像头支持 UVC （在 PC 上）
　　那什么 USB 摄像头适合我们这一章的教程呢，这里有几个关键字：1.支持UVC（免驱）， 2.YUV 或者 MJPEG 格式输出。
把摄像头插入 PC 机的 USB 接口，查看 ID
注：如果你是在 Ubuntu 等 linux操作系统下请看 1~2，在 windows 下请直接看看 3 。1. 在 linux 类操作系统下插入 USB 摄像头，用 dmesg 打印信息
#dmesg
[134691.269053] usb 1-1:]]></description><category></category></item><item><title><![CDATA[嵌入式wed服务器Boa到底是啥？]]></title><link>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/123600110</link><guid>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/123600110</guid><author>KUNPLAYBOY</author><pubDate>Sat, 19 Mar 2022 19:49:24 +0800</pubDate><description><![CDATA[前言
因为以前没有接触过web服务器，看了网上的教程，虽然能够搭建好boa的运行环境，但我对于web服务器在嵌入式领域起到的作用还是感到模糊，总感觉差点意思，其他的博客没法为我解惑，查阅资料，我想我知道了答案
正文
什么是web服务器
　　　通俗的讲，web服务器的服务对象是浏览器，Web服务器传送（serves）页面使浏览器可以浏览，Web服务器专门处理HTTP请求(request）(我们在浏览器上输入一个http开头地址，就是一个访问web服务器的过程)，而Boa就是一个典型的嵌入式web服务器
为啥在]]></description><category></category></item><item><title><![CDATA[Linux字符设备驱动应用层与驱动层之间的联系(详解file与inode之间的关系)]]></title><link>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/123538696</link><guid>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/123538696</guid><author>KUNPLAYBOY</author><pubDate>Wed, 16 Mar 2022 22:41:08 +0800</pubDate><description><![CDATA[文章目录前言正文
前言
在开始这篇文章的阅读之前我们首先思考几个问题：
１、驱动运行在内核层，应用程序运行在应用层，它们之间是如何进行这么一个信息的交互的？
２、Linux中一切皆文件，每一个字符设备都是由一个文件来表示的，文件里记录着相关的硬件信息的，应用层是如何根据找到这个文件？并最终实现对该设备的控制？
3、每一个设备都有唯一的文件进行表示，如果是同一类型的设备，那么我们需要为每一个设备都写一个驱动么？
正文
​         对于字符设备驱动的讲解，我觉得的从open()函数开始，那逻辑就相当是清]]></description><category></category></item><item><title><![CDATA[mjpg_streamer的源码学习(详解)]]></title><link>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/123488802</link><guid>https://blog.youkuaiyun.com/KUNPLAYBOY/article/details/123488802</guid><author>KUNPLAYBOY</author><pubDate>Mon, 14 Mar 2022 21:22:19 +0800</pubDate><description><![CDATA[源码阅读顺序
mjpg_streamer/mjpg_streamer.c
　　　　　　　-&gt;int main(int argc, char argv[])
mjpg_streamer/plugins/input_uvc.c
　　　　　　　　　　　　　　　-&gt;input_init()
　　　　　　　　　　　　　　　　　　　　　-&gt;intput_run()
　　　　　　　　　　　　　　　　　　　　　　　　 *-&gt;cam_thread()
mjpg-streamer\plugins\out]]></description><category></category></item></channel></rss>