<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[yanyehe89的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/yanyehe89</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; yanyehe89]]></copyright><item><title><![CDATA[Linux 内核关于GPIO的控制]]></title><link>https://blog.youkuaiyun.com/yanyehe89/article/details/78727036</link><guid>https://blog.youkuaiyun.com/yanyehe89/article/details/78727036</guid><author>yanyehe89</author><pubDate>Wed, 06 Dec 2017 09:22:14 +0800</pubDate><description><![CDATA[Linux BSP 开发的基础就是和GPIO打交道， 下面总结下这几天对某家开发板的GPIO控制的知识。公司的开发板用的是 DTB  模式 ，首先，进入 dts，dtsi文件查看关于GPIO 的模块。soc { 
                . 
                . 
                . 
        gpio0: gpio@****addr {]]></description><category></category></item><item><title><![CDATA[Linux内核层和用户层配置GPIO引脚]]></title><link>https://blog.youkuaiyun.com/yanyehe89/article/details/78599083</link><guid>https://blog.youkuaiyun.com/yanyehe89/article/details/78599083</guid><author>yanyehe89</author><pubDate>Wed, 22 Nov 2017 09:21:41 +0800</pubDate><description><![CDATA[﻿﻿
Linux BSP 开发的基础就是和GPIO打交道， 下面总结下这几天对某家开发板的GPIO控制的知识。公司的开发板用的是 DTB  模式 ，首先，进入 dts，dtsi文件查看关于GPIO 的模块。
soc {
                .
                .
                .
        gpio0: gpio@****addr {]]></description><category></category></item><item><title><![CDATA[flash基本知识]]></title><link>https://blog.youkuaiyun.com/yanyehe89/article/details/78206628</link><guid>https://blog.youkuaiyun.com/yanyehe89/article/details/78206628</guid><author>yanyehe89</author><pubDate>Wed, 11 Oct 2017 18:04:54 +0800</pubDate><description><![CDATA[﻿﻿
扇区 物理块 逻辑块 flash 基础概念


sector:硬件（磁盘）上的最小的操作单位,是操作系统和块设备（硬件、磁盘）之间传送数据的单位

block由一个或多个sector组成，是软件（OS、文件系统）中最小的操作单位；操作系统的虚拟文件系统从硬件设备上读取一个block,实际为从硬件设备读取一个或多个sector.对于文件管理来说，每个文件对应的多个block可能是不]]></description><category></category></item><item><title><![CDATA[Vi命令总结]]></title><link>https://blog.youkuaiyun.com/yanyehe89/article/details/77980254</link><guid>https://blog.youkuaiyun.com/yanyehe89/article/details/77980254</guid><author>yanyehe89</author><pubDate>Fri, 15 Sep 2017 09:43:46 +0800</pubDate><description><![CDATA[1:打开文件直接到最后一行的行首:vi + filename
2:剪切一行：dd
删除一个单词/光标之后的单词剩余部分：dw
删除当前字符：x
光标之后的该行部分：d$
命令行模式（command mode）功能键
3:插入模式
按「i」切换进入插入模式「insert mode」，按“i”进入插入模式后是从光标当前位置开始输入文件；
按「a」进入插入模式后，是从目前光标所在位置的下]]></description><category></category></item><item><title><![CDATA[关于!运算符使用的问题]]></title><link>https://blog.youkuaiyun.com/yanyehe89/article/details/51596189</link><guid>https://blog.youkuaiyun.com/yanyehe89/article/details/51596189</guid><author>yanyehe89</author><pubDate>Mon, 06 Jun 2016 16:03:17 +0800</pubDate><description><![CDATA[！表达式的定义如下：！表达式
若表达式的值为0，则“！”之后的表达式的值为1，否则为1；
注意这里是表达式的值，只有位0的时候才为1，差点被搞死了啊]]></description><category></category></item><item><title><![CDATA[典型的递归函数搜集]]></title><link>https://blog.youkuaiyun.com/yanyehe89/article/details/49000773</link><guid>https://blog.youkuaiyun.com/yanyehe89/article/details/49000773</guid><author>yanyehe89</author><pubDate>Fri, 09 Oct 2015 15:30:38 +0800</pubDate><description><![CDATA[读取某段数据采用递归形式读取可以节约很多时间如下：
BOOL __stdcall TNT_RecvExpectSizeData(HANDLE handle, char *recvBuf, int expectRecvLen)
{
    try
    {
        int recvedLen = expectRecvLen;
        if (TNT_Recv(handl]]></description><category></category></item><item><title><![CDATA[不同网段IP地无法Ping通的问题]]></title><link>https://blog.youkuaiyun.com/yanyehe89/article/details/47720755</link><guid>https://blog.youkuaiyun.com/yanyehe89/article/details/47720755</guid><author>yanyehe89</author><pubDate>Mon, 17 Aug 2015 09:40:48 +0800</pubDate><description><![CDATA[测试网络时，经常用的方法是Ping某个IP地址，如果能Ping通，则说明这条链路是畅通的，如没有Ping不通，则说明这个链路不通，这个测试方法得出的结论是不严谨的，也不一定是正确的。
    首先，Ping功能发送的是ICMP包，并不是完整的TCP/IP协议包，如果没有三层交换机路由，Ping功能得出结论就有待商榷。假如你Ping的是和本机同一网段的IP地址，如果Ping不通，目的IP与本地链路]]></description><category></category></item><item><title><![CDATA[C/C++中善用大括号]]></title><link>https://blog.youkuaiyun.com/yanyehe89/article/details/46723289</link><guid>https://blog.youkuaiyun.com/yanyehe89/article/details/46723289</guid><author>yanyehe89</author><pubDate>Thu, 02 Jul 2015 10:34:09 +0800</pubDate><description><![CDATA[C/C++中善用大括号
在C/C++中大括号指明了变量的作用域，在大括号内声明的局部变量其作用域自变量声明始，到大括号之后终结。我们应该善用它，使我们的程序更加清晰明白。尤其是在有许多形式重复的代码的程序段中，以下是一个例子： 
void MyProcess(MyType input, MyType & output) 
{ 
   MyType filter = input; 
   {]]></description><category></category></item><item><title><![CDATA[代码习惯汇总（写给成长中的自己）]]></title><link>https://blog.youkuaiyun.com/yanyehe89/article/details/40982761</link><guid>https://blog.youkuaiyun.com/yanyehe89/article/details/40982761</guid><author>yanyehe89</author><pubDate>Fri, 13 Mar 2015 15:54:20 +0800</pubDate><description><![CDATA[1、函数取名要有自己的习惯，以后写函数时，宏定义一律以大写zi]]></description><category></category></item><item><title><![CDATA[可执行程序有那些段]]></title><link>https://blog.youkuaiyun.com/yanyehe89/article/details/44237421</link><guid>https://blog.youkuaiyun.com/yanyehe89/article/details/44237421</guid><author>yanyehe89</author><pubDate>Fri, 13 Mar 2015 10:09:23 +0800</pubDate><description><![CDATA[可执行程序包括BSS段、数据段、代码段（也称文本段）。

BSS（Block Started by Symbol）通常是指用来存放程序中未初始化的全局变量和静态变量的一块内存区域。特点是:可读写的，在程序执行之前BSS段会自动清0。所以，未初始的全局变量在程序执行之前已经成0了。

注意和数据段的区别，BSS存放的是未初始化的全局变量和静态变量，数据段存放的是初始化后的全局变量和静态变量。]]></description><category></category></item><item><title><![CDATA[写代码时需要改正的坏习惯]]></title><link>https://blog.youkuaiyun.com/yanyehe89/article/details/41555175</link><guid>https://blog.youkuaiyun.com/yanyehe89/article/details/41555175</guid><author>yanyehe89</author><pubDate>Thu, 27 Nov 2014 21:48:37 +0800</pubDate><description><![CDATA[1、写代码时思想混乱，没有大局观，许多语法还不是很熟悉；
2、写代码时粗心大意，很多低级的错误出现过很多次；
3、写代码之前先构思，然后再敲代码；
4、精简代码量，多用系统函数；
5、对好的语句要做记录，向先进看齐；]]></description><category></category></item></channel></rss>