<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[樊茂林的博客]]></title><description><![CDATA[天生我材必有用]]></description><link>https://blog.csdn.net/fml1997</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; fml1997]]></copyright><item><title><![CDATA[linux下使用ntpdate同步网络时间]]></title><link>https://blog.csdn.net/fml1997/article/details/77839246</link><guid>https://blog.csdn.net/fml1997/article/details/77839246</guid><author>fml1997</author><pubDate>Mon, 04 Sep 2017 17:01:38 +0800</pubDate><description><![CDATA[为什么需要网络同步时间：Linux服务器运行久时，系统时间就会存在一定的误差，一般情况下可以使用date命令进行时间设置，但在做数据库集群分片等操作时对多台机器的时间差是有要求的，此时就需要使用ntpdate进行时间同步安装ntpdate[fanmaolin@Centeros ~]$ sudo yum install ntpdate]]></description><category></category></item><item><title><![CDATA[结构体对齐详解]]></title><link>https://blog.csdn.net/fml1997/article/details/77837271</link><guid>https://blog.csdn.net/fml1997/article/details/77837271</guid><author>fml1997</author><pubDate>Mon, 04 Sep 2017 16:43:39 +0800</pubDate><description><![CDATA[阅读说明1、在文中要注意#pragma pack（）函数的使用2、本文中博主用于演示的是linux32位系统3、如果有不同意见可以在下面评论区一起讨论（windows下的我不是很清楚，听说例二windows下的那个分析有问题,1B+8B=13B，阅读分析时请注意）4、我觉得这篇文章解释的非常清楚，看完之后醍醐灌顶5、标注为“注”的是我的注释我认为结构体对齐要考虑三点：1、确认结构体对齐值（模数），通]]></description><category></category></item><item><title><![CDATA[关于configure和Makefile]]></title><link>https://blog.csdn.net/fml1997/article/details/77800420</link><guid>https://blog.csdn.net/fml1997/article/details/77800420</guid><author>fml1997</author><pubDate>Sat, 02 Sep 2017 13:08:55 +0800</pubDate><description><![CDATA[转自：http://blog.csdn.net/lltaoyy/article/details/7615833Linux下Makefile的automake生成全攻略　　作为linux下的程序开发人员，大家一定都遇到过Makefile，用make命令来编译自己写的程序确实是很方便。一般情况下，大家都是手工写一个简单Makefile，如果要想写出一个符合自由软件惯例的Makefile就不那么容易了。]]></description><category></category></item><item><title><![CDATA[UDA1341声卡传输基本原理]]></title><link>https://blog.csdn.net/fml1997/article/details/77800093</link><guid>https://blog.csdn.net/fml1997/article/details/77800093</guid><author>fml1997</author><pubDate>Sat, 02 Sep 2017 11:34:25 +0800</pubDate><description><![CDATA[转自：http://www.cnblogs.com/TaigaCon/archive/2012/12/07/2807922.htmluda1341连接soc的引脚分为两类：数据引脚、控制引脚。　　数据引脚用于音频码流的传输，　　控制引脚用于该声卡芯片控制，比如说音量控制等如下图为uda1341的声卡或者可以看我以前的博客，有FL2440的uda1341声卡原理图 
http://blog.csdn.]]></description><category></category></item><item><title><![CDATA[Linux 内核配置机制（make menuconfig、Kconfig、makefile）讲解]]></title><link>https://blog.csdn.net/fml1997/article/details/77774812</link><guid>https://blog.csdn.net/fml1997/article/details/77774812</guid><author>fml1997</author><pubDate>Fri, 01 Sep 2017 16:52:03 +0800</pubDate><description><![CDATA[引言前面我们介绍模块编程的时候介绍了驱动进入内核有两种方式：模块和直接编译进内核，并介绍了模块的一种编译方式——在一个独立的文件夹通过makefile配合内核源码路径完成 
    那么如何将驱动直接编译进内核呢？ 
    在我们实际内核的移植配置过程中经常听说的内核裁剪又是怎么麽回事呢？ 
我们在进行Linux内核配置的时候经常会执行make menuconfig这个命令，然后屏幕上会出现以下界]]></description><category></category></item><item><title><![CDATA[C编程注意32位机器和64位机器的差别及unsigned和signed]]></title><link>https://blog.csdn.net/fml1997/article/details/77770842</link><guid>https://blog.csdn.net/fml1997/article/details/77770842</guid><author>fml1997</author><pubDate>Fri, 01 Sep 2017 11:21:30 +0800</pubDate><description><![CDATA[1.64bit CPU拥有更大的寻址能力，最大支持到16GB内存，而32bit只支持4G内存  
2.64位CPU一次可提取64位数据，比32位提高了一倍，理论上性能会提升1倍。但这是建立在64bit操作系统，64bit软件的基础上的。C/C++ 32位机器和64位机器 差异问题总结 跨平台 移植问题 语言编程需要注意的64位和32机器的区别#include < stddef.h>
OS versi]]></description><category></category></item><item><title><![CDATA[platform总线按键驱动分析（精华版）]]></title><link>https://blog.csdn.net/fml1997/article/details/77647822</link><guid>https://blog.csdn.net/fml1997/article/details/77647822</guid><author>fml1997</author><pubDate>Mon, 28 Aug 2017 13:53:30 +0800</pubDate><description><![CDATA[驱动做了三个多星期了，从helloworld到LED再到PlatformLED，现在终于到了按键驱动，对于驱动的理解深刻了不少，从完全看不懂到现在能够独立分析，进步很大，今天完成了按键驱动，做一个总结性的分享，给后面的自己看！加油！按键驱动：与之前不同，这次将按]]></description><category></category></item><item><title><![CDATA[Linux驱动中的platform总线分析]]></title><link>https://blog.csdn.net/fml1997/article/details/77622860</link><guid>https://blog.csdn.net/fml1997/article/details/77622860</guid><author>fml1997</author><pubDate>Sun, 27 Aug 2017 20:48:14 +0800</pubDate><description><![CDATA[最近在复习platform总线相关的知识，碰到一篇感觉不错的文章。转载自：http://blog.csdn.net/pillarbuaa/article/details/7680372概述从Linux2.6内核起，引入一套新的驱动管理和注册机制：platform_device 和 platform_driver 。Linux 中大部分的设备驱动，都可以使用这套机制，设备用 platform_devi]]></description><category></category></item><item><title><![CDATA[版本控制系统GIT和SVN的区别]]></title><link>https://blog.csdn.net/fml1997/article/details/77413044</link><guid>https://blog.csdn.net/fml1997/article/details/77413044</guid><author>fml1997</author><pubDate>Sat, 19 Aug 2017 15:34:13 +0800</pubDate><description><![CDATA[两个都使用过，但是就保存代码来说，我偏向于SVN，而且用的比较熟练。但是GIT也有它的优势所在。1）Git是分布式的，SVN不是：这 是git和其它非分布式的版本控制系统，例如SVN，CVS等，最核心的区别。好处是跟其他同事不会有太多的冲突，自己写的代码放在自己电脑上，一段时间后再提交、合并，也可以不用联网在本地提交；如果你能理解这个概念，那么你就已经上手一半了。需要做一点声明，GIT并 不是目前第]]></description><category></category></item><item><title><![CDATA[串口通信数据位长度对传输数据的影响]]></title><link>https://blog.csdn.net/fml1997/article/details/77340477</link><guid>https://blog.csdn.net/fml1997/article/details/77340477</guid><author>fml1997</author><pubDate>Thu, 17 Aug 2017 20:03:43 +0800</pubDate><description><![CDATA[针对串口通信，关于设置数据位长度对通信的影响，如图： 
在串口数据通信中，会看到串口参数设置。其中“数据位”设置，共有四档选项，分别是8、7、6、5。那么改变这个参数会对数据的传输有什么影响呢？我来做个试验，通过示波器观察通信过程，能够分析结果如下：例如数据位设置为5。那么就相当于规定了每个传输字节只能由5个二进制位来表示，例如：11111，10110，01110等。也就是说，这个RS232口只能发]]></description><category></category></item><item><title><![CDATA[用buildroot制作交叉编译器]]></title><link>https://blog.csdn.net/fml1997/article/details/77335101</link><guid>https://blog.csdn.net/fml1997/article/details/77335101</guid><author>fml1997</author><pubDate>Thu, 17 Aug 2017 18:27:30 +0800</pubDate><description><![CDATA[以前做文件系统的时候制作过交叉编译器，现在重新做一遍总结一下。认识交叉编译器交叉编译器简介 在一种计算机环境中运行的编译程序，能编译出在另外一种环境下运行的代码。比如我们在pc下编译的代码，想要在arm开发板上运行，就需要用交叉编译器编译pc端的代码，然后才能在arm板上运行。制作交叉编译器过程把buildroot上传到opt目录下我这里有.bin文件，也可以直接百度下载buildroot压缩包，重]]></description><category></category></item><item><title><![CDATA[二叉树的操作：创建、遍历、求树的深度、叶子结点数]]></title><link>https://blog.csdn.net/fml1997/article/details/77239769</link><guid>https://blog.csdn.net/fml1997/article/details/77239769</guid><author>fml1997</author><pubDate>Wed, 16 Aug 2017 12:39:14 +0800</pubDate><description><![CDATA[二叉树认识二叉树在计算机科学中，二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”（left subtree）和“右子树”（right subtree）。在该图中，用’#’表示空节点，我们真正要创建的树为有ABCD字符。先序遍历的方式创建二叉树int creatBitree(struct Bitnode *(*T))
{
    char data;
   // data = getc]]></description><category></category></item><item><title><![CDATA[排序算法学习：快速的桶排序]]></title><link>https://blog.csdn.net/fml1997/article/details/77163777</link><guid>https://blog.csdn.net/fml1997/article/details/77163777</guid><author>fml1997</author><pubDate>Mon, 14 Aug 2017 17:18:24 +0800</pubDate><description><![CDATA[排序原理 
假设现在要对5 3 5 2 8这几个数进行排序。我们申请一个大小为9的数组（待排序数中最大数+1），假设为9个木桶，把9个木桶置为0，如图： 
然后在对应桶的编号（这就是为什么要设置为待排序数组中最大数+1了）中标记1，如图在a[5]中标记为1，表示待排数组中有5，并且5在a[5]这个位置。 
继续向后标记如果遇到重复的数字，比如两个5，就在该位置a[5]置为2，表示有两个5 
把所有要]]></description><category></category></item><item><title><![CDATA[排序算法学习：冒泡、选择、快速]]></title><link>https://blog.csdn.net/fml1997/article/details/77148422</link><guid>https://blog.csdn.net/fml1997/article/details/77148422</guid><author>fml1997</author><pubDate>Sun, 13 Aug 2017 20:22:36 +0800</pubDate><description><![CDATA[排序的相关概念排序：将一组杂乱无章的数据按一定的规律顺次排列起来。数据表( data list): 它是待排序数据对象的有限集合。排序码(key):通常数据对象有多个属性域，即多个数据成员组成,其中有一个属性域可用来区分对象,作为排序依据。该域即为排序码。每个数据表用哪个属性域作为排序码，要视具体的应用需要而定。分类  
内排序：指在排序期间数据对象全部存放在内存的排序； 
外排序：指在排序期间全部]]></description><category></category></item><item><title><![CDATA[单向链表的逆序，不使用额外节点存储实现]]></title><link>https://blog.csdn.net/fml1997/article/details/77109220</link><guid>https://blog.csdn.net/fml1997/article/details/77109220</guid><author>fml1997</author><pubDate>Sat, 12 Aug 2017 10:00:20 +0800</pubDate><description><![CDATA[链表的逆序是常见考题，今天来简单学习使用如何实现单向链表的逆序。逆序过程初始链表状态 
初始状态，prev是NULL，head指向当前的头节点A，next指向A节点的下一个节点B。首先从A节点开始逆序，将A节点的next指针指向prev，因为prev的当前值是NULL，所以A节点就从链表中脱离出来了，然后移动head和next指针，使它们分别指向B节点和B的下一个节点C（因为当前的next已经指向B]]></description><category></category></item><item><title><![CDATA[单向链表的节点插入与删除]]></title><link>https://blog.csdn.net/fml1997/article/details/77073227</link><guid>https://blog.csdn.net/fml1997/article/details/77073227</guid><author>fml1997</author><pubDate>Thu, 10 Aug 2017 20:33:40 +0800</pubDate><description><![CDATA[理解了链表的创建后，其他链表操作也变得比较简单，对上次的代码做了些修改，今天来记录一下自己对链表节点的插入与删除操作的学习。在某个节点后插入节点struct node *insert(struct node *head, int datanum, struct node *new)
{
    struct node *p1;    if(head == NULL)//是空链表时
    {]]></description><category></category></item><item><title><![CDATA[创建N个单向链表对它进行摧毁和清空操作]]></title><link>https://blog.csdn.net/fml1997/article/details/76990738</link><guid>https://blog.csdn.net/fml1997/article/details/76990738</guid><author>fml1997</author><pubDate>Wed, 09 Aug 2017 15:43:05 +0800</pubDate><description><![CDATA[摧毁和清空的含义及区别摧毁是先销毁了链表的头，然后接着一个一个的把后面的销毁了，这样这个链表就不能再使用了，即把包括头的所有节点全部释放。清空是先保留了链表的头，然后把头后面的所有的都销毁，最后把头里指向下一个的指针设为空，这样就相当与清空了，但这个链表还在，还可以继续使用；即保留了头，后面的全部释放。区别：清空是链表的头还在，可以继续插入节点；销毁就是链表没了，整个链表(包括头)的空间都被释放了，]]></description><category></category></item><item><title><![CDATA[单向链表的创建和遍历]]></title><link>https://blog.csdn.net/fml1997/article/details/76906570</link><guid>https://blog.csdn.net/fml1997/article/details/76906570</guid><author>fml1997</author><pubDate>Tue, 08 Aug 2017 15:40:56 +0800</pubDate><description><![CDATA[单向链表简介单向链表（单链表）是链表的一种，其特点是链表的链接方向是单向的，对链表的访问要通过顺序读取从头部开始； 
链表是使用指针进行构造的列表；又称为结点列表，因为链表是由一个个结点组装起来的；其中每个结点都有指针成员变量指向列表中的下一个结点； 
链表是由结点构成，head指针指向第一个成为表头结点，而终止于最后一个指向nuLL的指针。创建单向链表一个简单的单向链表创建过程说明： 
图中的p为]]></description><category></category></item><item><title><![CDATA[c语言中基本数据类型printf()对应格式]]></title><link>https://blog.csdn.net/fml1997/article/details/76850963</link><guid>https://blog.csdn.net/fml1997/article/details/76850963</guid><author>fml1997</author><pubDate>Mon, 07 Aug 2017 16:35:28 +0800</pubDate><description><![CDATA[printf() 
printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。printf()函数的调用格式为: printf(“<格式化字符串>”, <参量表>);其中格式化字符串包括两部分内容:一部分是正常字符, 这些字符将按原样输出;另一部分是格式化规定字符, 以”%”开始, 后跟一个或几个规定字符, 用来确定输出内容格式。  
参量表是需要输出的一系列参数, 其个数必]]></description><category></category></item><item><title><![CDATA[关于Markdown，吞文本问题]]></title><link>https://blog.csdn.net/fml1997/article/details/76850863</link><guid>https://blog.csdn.net/fml1997/article/details/76850863</guid><author>fml1997</author><pubDate>Mon, 07 Aug 2017 16:31:00 +0800</pubDate><description><![CDATA[若str1==str2，则返回零； 
若str1为什么后面的字不显示？解决方法：若str1==str2，则返回零； 
若str1< str2，则返回负数； 
若str1>str2，则返回正数。 
matlab中函数，strcmp(s1，s2) 判断两个字符串s1和s2是否相同，相同返回true ,不同返回false“<s”也许在markdown里面是一个语法，不显示后面的文本内容，你要把它们分开，]]></description><category></category></item></channel></rss>