<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wandermen的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wandermen</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wandermen]]></copyright><item><title><![CDATA[记一个知识点-fgets（）；]]></title><link>https://blog.youkuaiyun.com/wandermen/article/details/49185371</link><guid>https://blog.youkuaiyun.com/wandermen/article/details/49185371</guid><author>wandermen</author><pubDate>Fri, 16 Oct 2015 22:37:41 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[信号的有关资料]]></title><link>https://blog.youkuaiyun.com/wandermen/article/details/49030213</link><guid>https://blog.youkuaiyun.com/wandermen/article/details/49030213</guid><author>wandermen</author><pubDate>Sat, 10 Oct 2015 21:52:21 +0800</pubDate><description><![CDATA[信号集：每个进程都有一个信号屏蔽字，它规定了当前要阻塞递送到该进程的信号集。对于某种信号，若对其设置为屏蔽，则它当前是阻塞的。进程可以通过调用sigprocmask（10.12）来检测和更改当前信号的屏蔽字。]]></description><category></category></item><item><title><![CDATA[readn writen readline函数源代码]]></title><link>https://blog.youkuaiyun.com/wandermen/article/details/49005201</link><guid>https://blog.youkuaiyun.com/wandermen/article/details/49005201</guid><author>wandermen</author><pubDate>Fri, 09 Oct 2015 20:57:56 +0800</pubDate><description><![CDATA[当从网络读写时，网络中的缓冲机构可能造成返回值小于所要求读写的字数[1]。因而需要加入相应的处理机制。

/* include readn */

#include 
#include 

ssize_t						/* Read "n" bytes from a descriptor. */
readn(int fd, void *vptr, size_t n)
{
	size_t	nl]]></description><category></category></item><item><title><![CDATA[名词解释：errno错误]]></title><link>https://blog.youkuaiyun.com/wandermen/article/details/49004969</link><guid>https://blog.youkuaiyun.com/wandermen/article/details/49004969</guid><author>wandermen</author><pubDate>Fri, 09 Oct 2015 20:06:47 +0800</pubDate><description><![CDATA[来自百度百科



errno
 编辑


errno 是记录系统的最后一次错误代码。代码是一个int型的值，在errno.h中定义




中文名
errno
查    看
错误代码errno调试程序重要方法


代    码
是一个int型的值
通    过
查看该值推测出错的原因





目录



1 NAME
2 err]]></description><category></category></item><item><title><![CDATA[c/c++内存布局]]></title><link>https://blog.youkuaiyun.com/wandermen/article/details/48472249</link><guid>https://blog.youkuaiyun.com/wandermen/article/details/48472249</guid><author>wandermen</author><pubDate>Tue, 15 Sep 2015 19:14:13 +0800</pubDate><description><![CDATA[一个由C/C++编译的程序占用的内存分为以下几个部分
　　1、栈区（stack）— 由编译器自动分配释放 ，存放函数的参数值，局部变量的值等。其操作方式类似于数据结构中的栈。 
       堆(heap)：由malloc,new等分配的空间的地址,地址由低向高增长（程序员释放）。
　　2、堆区（heap） — 一般由程序员分配释放， 若程序员不释放，程序结束时可能由OS回收
。注意它与数]]></description><category></category></item><item><title><![CDATA[LINUX信号- sigaction 函数-10.14]]></title><link>https://blog.youkuaiyun.com/wandermen/article/details/48391495</link><guid>https://blog.youkuaiyun.com/wandermen/article/details/48391495</guid><author>wandermen</author><pubDate>Sat, 12 Sep 2015 09:22:14 +0800</pubDate><description><![CDATA[使用 sigaction 函数：
 signal 函数的使用方法简单，但并不属于 POSIX 标准，在各类 UNIX 平台上的实现不尽相同，因此其用途受
到了一定的限制。而 POSIX 标准定义的信号处理接口是 sigaction 函数，其接口头文件及原型如下：
 #include 
 int sigaction(int signum, const struct sigaction *ac]]></description><category></category></item><item><title><![CDATA[为什么初始化的全局变量和未初始化的全局变量要保存在不同的段？？]]></title><link>https://blog.youkuaiyun.com/wandermen/article/details/48320821</link><guid>https://blog.youkuaiyun.com/wandermen/article/details/48320821</guid><author>wandermen</author><pubDate>Wed, 09 Sep 2015 19:15:00 +0800</pubDate><description><![CDATA[C规定，未初始化变量的初值为0，这个清0的操作是由启动代码完成的，还有已初始化变量的初值的设置，也是由启动代码完成的。
为了启动代码的简单化，编译链接器会把已初始化的变量放在同一个段：.data，这个段的映像（包含了各个变量的初值）保存在“只读数据段”，这样启动代码就可以简单地复制这个映像到 .data 段，所有的已初始化变量就都初始化了。
而未初始化变量也放在同一个段：.bss，启动代码简单]]></description><category></category></item><item><title><![CDATA[main函数的参数]]></title><link>https://blog.youkuaiyun.com/wandermen/article/details/47759757</link><guid>https://blog.youkuaiyun.com/wandermen/article/details/47759757</guid><author>wandermen</author><pubDate>Tue, 18 Aug 2015 21:03:25 +0800</pubDate><description><![CDATA[main函数可以不带参数,也可以带参数，这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个，习惯上这两个参数写为argc和argv。因此，main函数的函数头可写为：

    main (argc,argv)

C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后，main函数的函数头应写为：]]></description><category></category></item><item><title><![CDATA[如何处理.H头文件中的变量]]></title><link>https://blog.youkuaiyun.com/wandermen/article/details/46698979</link><guid>https://blog.youkuaiyun.com/wandermen/article/details/46698979</guid><author>wandermen</author><pubDate>Tue, 30 Jun 2015 18:57:54 +0800</pubDate><description><![CDATA[当程序达到一定规模后，适当的把代码进行规划就显得的十分必要。在c语言中.c和.h十分常见，在始学c语言之初我们做的第一件事就是 include。这个.h到底是什么东西呢？
编译器在预处理的时候会将包含的.h文件内容加载到.c中，若是处理的不好，将变量定义，或者是数组定义，函数定义等等定义包含在.h中，其他文件再包含头文件则有可能产生重复定义的报错。
比较合理的做法是，把需要使用的函数，可能被外]]></description><category></category></item><item><title><![CDATA[STM32时钟安全机制（CSS）研究及实现]]></title><link>https://blog.youkuaiyun.com/wandermen/article/details/46388921</link><guid>https://blog.youkuaiyun.com/wandermen/article/details/46388921</guid><author>wandermen</author><pubDate>Sat, 06 Jun 2015 15:42:13 +0800</pubDate><description><![CDATA[时钟对于MCU而言就像脉搏一样，在恶劣情况下如果出现外部晶振短路的情况会导致MCU无法正常运行。如果MCU应用于安全生产时，有可能造成安全事故。为了应对这一突发状况，ST公司生产的STM32采用双时钟机制，在外部晶振被短路的情况下，转而使用内部RC振荡器作为自己时钟心跳保证系统正常运行。然而RC振荡器并不是非常的准确，我们希望能够在外部晶振恢复正常的情况下继续使用外部晶振。]]></description><category></category></item><item><title><![CDATA[STM32时钟初始化研究]]></title><link>https://blog.youkuaiyun.com/wandermen/article/details/46351559</link><guid>https://blog.youkuaiyun.com/wandermen/article/details/46351559</guid><author>wandermen</author><pubDate>Wed, 03 Jun 2015 22:29:03 +0800</pubDate><description><![CDATA[时钟是一个MCU的脉搏，研究清楚脉搏才能更清楚的把握整个MCU的运行。本文主要研究STM32F10x系列，利用官方库文件进行初始化设置。开发环境为MDK4.6，库文件V3.5版本，STM32参考手册。

利用MDK自带仿真器，仿真发现。芯片启动首先打开system_stmf10x.c文件，调用void SystemInit(void)函数。下面贴上代码和中文注释
void SystemIni]]></description><category></category></item><item><title><![CDATA[C程序设计语言(第2版)读书笔记]]></title><link>https://blog.youkuaiyun.com/wandermen/article/details/42344043</link><guid>https://blog.youkuaiyun.com/wandermen/article/details/42344043</guid><author>wandermen</author><pubDate>Fri, 02 Jan 2015 21:06:23 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[时​钟​周​期​及​秒​(​s​)​ ​毫​秒​(​m​s​)​ ​微​秒​(​μ​s​)​ ​纳​秒​(​n​s​)​ ​皮​秒​(​p​s​)​之​间​转​换]]></title><link>https://blog.youkuaiyun.com/wandermen/article/details/27244793</link><guid>https://blog.youkuaiyun.com/wandermen/article/details/27244793</guid><author>wandermen</author><pubDate>Tue, 27 May 2014 23:14:32 +0800</pubDate><description><![CDATA[时钟周期及秒(s) 毫秒(ms) 微秒(
μ
s) 纳秒(ns) 皮秒(ps)之间转换
1秒=1,000,000 微秒(
μ
s)
1微秒=1／1,000,000秒(s)
1秒=1,000,000,000 纳秒(ns)
1纳秒=1／1,000,000,000秒(s)
1秒=1,000,000,000,000 皮秒(ps)
1皮秒=1／1,000,000,000,000秒(s)]]></description><category></category></item><item><title><![CDATA[Altera的FPGA的AS、PS和Jtag配置模式的区别]]></title><link>https://blog.youkuaiyun.com/wandermen/article/details/26633001</link><guid>https://blog.youkuaiyun.com/wandermen/article/details/26633001</guid><author>wandermen</author><pubDate>Thu, 22 May 2014 23:48:30 +0800</pubDate><description><![CDATA[有些人对于FPGA下JTAG的下载方式有些迷惑，为什么出现配置芯片了，为什么要用不同的下载电缆，不同的下载模式?通过在网上查阅相关资料做了总结和整理如下：
 1 FPGA器件有三类配置下载方式：主动配置方式（AS）和被动配置方式（PS）和最常用的(JTAG)配置方式。
AS模式(active serial configuration mode):FPGA器件每次上电时作为控制器，由FPGA器件]]></description><category></category></item><item><title><![CDATA[[数字图像处理]灰度变换——反转，对数变换，伽马变换，灰度拉伸，灰度切割，位图切割]]></title><link>https://blog.youkuaiyun.com/wandermen/article/details/18012645</link><guid>https://blog.youkuaiyun.com/wandermen/article/details/18012645</guid><author>wandermen</author><pubDate>Wed, 08 Jan 2014 22:00:49 +0800</pubDate><description><![CDATA[灰度变换，属于一个非常重要的概念。这里主要参考《Digital Image Processing》 Rafael C. Gonzalez / Richard E. Woods 的第三章。书中所有的实验与数学式都采用了8-bit 图像的灰度范围，也就是0到255这样一个范围，这是本书不合理的一个地方。首先，这样做并不泛用，图片不一定是8-bit的。其次，在做某些变换的时候，可能会导致溢出。比如，伽马]]></description><category></category></item><item><title><![CDATA[栈，堆，代码区，全局（静态）区 ，常量区]]></title><link>https://blog.youkuaiyun.com/wandermen/article/details/17227235</link><guid>https://blog.youkuaiyun.com/wandermen/article/details/17227235</guid><author>wandermen</author><pubDate>Mon, 09 Dec 2013 18:16:28 +0800</pubDate><description><![CDATA[http://www.cnblogs.com/zcy_soft/archive/2010/10/14/1851074.html

 一般认为在c中分为这几个存储区   

  1栈
   -   有编译器自动分配释放   
  2堆   -   一般由程序员分配释放，若程序员不释放，程序结束时可能由OS回收   
  3全局区（静态区），全局变量和静态变量的存储是放在一块的，初始化的]]></description><category></category></item><item><title><![CDATA[关于const（早就应该写的）]]></title><link>https://blog.youkuaiyun.com/wandermen/article/details/16947903</link><guid>https://blog.youkuaiyun.com/wandermen/article/details/16947903</guid><author>wandermen</author><pubDate>Mon, 25 Nov 2013 17:36:57 +0800</pubDate><description><![CDATA[#include 



int main()
{
    int a =100;
    int b = 10;  
    int const * p = &a;
    p = &b;
    printf("%d",*p);
}
 编译是报错的。error: assignment of read-only variable 'p'

65212116
cons]]></description><category></category></item><item><title><![CDATA[pcb焊盘尺寸设计尺寸参考]]></title><link>https://blog.youkuaiyun.com/wandermen/article/details/16901585</link><guid>https://blog.youkuaiyun.com/wandermen/article/details/16901585</guid><author>wandermen</author><pubDate>Sat, 23 Nov 2013 15:14:46 +0800</pubDate><description><![CDATA[导通孔焊盘的制作尺寸
 






元器件引脚的直径



PCB焊盘孔径





D



D+12mil





40mil



D+16mil





D>80mil



D+20mil





在焊盘黏锡部分的宽度要保证不小于10mil一般是根据自己的焊接水平；

焊盘命名为p]]></description><category></category></item><item><title><![CDATA[uip代码之#define BUF ((struct uip_eth_hdr *)&uip_buf[0])]]></title><link>https://blog.youkuaiyun.com/wandermen/article/details/16881621</link><guid>https://blog.youkuaiyun.com/wandermen/article/details/16881621</guid><author>wandermen</author><pubDate>Fri, 22 Nov 2013 12:10:51 +0800</pubDate><description><![CDATA[在看uip代码的时候有段代码觉得挺精彩的。
#define BUF ((struct uip_eth_hdr *)&uip_buf[0])

struct uip_eth_hdr {

  struct uip_eth_addr dest;

  struct uip_eth_addr src;

  u16_t type;

};


//处理IP数据包(只有校验通过]]></description><category></category></item><item><title><![CDATA[Wireshark基本介绍和学习TCP三次握手（转）]]></title><link>https://blog.youkuaiyun.com/wandermen/article/details/16864913</link><guid>https://blog.youkuaiyun.com/wandermen/article/details/16864913</guid><author>wandermen</author><pubDate>Thu, 21 Nov 2013 18:21:38 +0800</pubDate><description><![CDATA[http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html#osi    

虽然在书上看过很多TCP和UDP的资料，但是从来没有真正见过这些数据包， 老是感觉在云上飘一样，学得不踏实（没有示波器的时候我也是这么感觉的）。有了wireshark就能截获这些网络数据包，可以清晰的看到数据包中的每一个字段。更能加深我们对网络协议的]]></description><category></category></item></channel></rss>