<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[hemmanhui的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/hemmanhui</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hemmanhui]]></copyright><item><title><![CDATA[linux USB 转串口 ]]></title><link>https://blog.youkuaiyun.com/hemmanhui/article/details/5852118</link><guid>https://blog.youkuaiyun.com/hemmanhui/article/details/5852118</guid><author>hemmanhui</author><pubDate>Tue, 31 Aug 2010 11:10:00 +0800</pubDate><description><![CDATA[1. 内核配置Device Drivers  --->      [*] USB support  --->            USB Serial Converter support  --->  USB Serial Converter support    USB Prolific 2303 Single Port Serial Driver 2. 编译内核，嵌入式板子加载内核，进入内核后，#ls /dev/ttyUSB0如果没有上述节点，手动创建#mknod /dev/ttyUSB0 c 188]]></description><category></category></item><item><title><![CDATA[linux 下批量重命名文件]]></title><link>https://blog.youkuaiyun.com/hemmanhui/article/details/5836705</link><guid>https://blog.youkuaiyun.com/hemmanhui/article/details/5836705</guid><author>hemmanhui</author><pubDate>Wed, 25 Aug 2010 10:20:00 +0800</pubDate><description><![CDATA[批量重命名文件有两种方法：以将某目录下所有的.c文件重命名成.cpp文件1。 for i in *.c;do mv "$i" "${i%.c}.cpp" ;done2。 find . -name "*.c" |xargs -i mv {} {}pp]]></description><category></category></item><item><title><![CDATA[linux 访问windows共享文件夹]]></title><link>https://blog.youkuaiyun.com/hemmanhui/article/details/5834089</link><guid>https://blog.youkuaiyun.com/hemmanhui/article/details/5834089</guid><author>hemmanhui</author><pubDate>Tue, 24 Aug 2010 11:16:00 +0800</pubDate><description><![CDATA[<br />首先，在windows下新建共享目录share<br /> <br />其次，在linux端敲入如下命令：<br /> <br />mount   -t   smbfs   -o   username=Administrator,password=****   //IP/share   /mnt/share/<br /> <br />注意：<br />username 是指windows登陆的用户名<br />password 是指windows登陆的密码]]></description><category></category></item><item><title><![CDATA[bash 内部命令]]></title><link>https://blog.youkuaiyun.com/hemmanhui/article/details/5824134</link><guid>https://blog.youkuaiyun.com/hemmanhui/article/details/5824134</guid><author>hemmanhui</author><pubDate>Thu, 19 Aug 2010 15:37:00 +0800</pubDate><description><![CDATA[<br />在调试板子的时候，发现在PATH对应的路径中没有alias这个命令，但是居然可以用，<br /> <br />查阅资料后，终于明白shell是如何执行命令解释了。<br /> <br />首先shell判断用户输入的命令是否是内部命令<br /> <br />*是内部命令，直接执行<br />*不是内部命令，在PATH对应的目录中搜索对应的单独的程序，存在执行，不存在报错<br /> <br />linux的命令可以分为内部命令和外部命令。<br />内部命令在系统启动时就调入内存，是常驻内存的]]></description><category></category></item><item><title><![CDATA[microwin中增加控制宏]]></title><link>https://blog.youkuaiyun.com/hemmanhui/article/details/5731729</link><guid>https://blog.youkuaiyun.com/hemmanhui/article/details/5731729</guid><author>hemmanhui</author><pubDate>Tue, 13 Jul 2010 14:28:00 +0800</pubDate><description><![CDATA[<br />在实际嵌入式开发过程中，可能需要新增一些自定义的控制宏，microwindows中加入控制宏的步骤如下：<br /> <br />1. src目录下config<br />ST_AUTO_FACTORY_SUPPORT = N <br />或<br />ST_AUTO_FACTORY_SUPPORT = Y<br /> <br />2.   src目录下Makefile.rules<br />ifeq ($(ST_AUTO_FACTORY_SUPPORT),Y)<br />DEFINES += ]]></description><category></category></item><item><title><![CDATA[unaligned userspace access 错误]]></title><link>https://blog.youkuaiyun.com/hemmanhui/article/details/5691240</link><guid>https://blog.youkuaiyun.com/hemmanhui/article/details/5691240</guid><author>hemmanhui</author><pubDate>Thu, 24 Jun 2010 12:28:00 +0800</pubDate><description><![CDATA[<br />在调试ST平台代码的时候，运行程序到最后总是程序崩溃，总是提示：<br />unaligned userspace access 错误<br /> <br />结果修改一下makefile中的编译选项，加入：<br />-g -O2 -Wno-deprecated<br /> <br />再次运行就正常了，估计这种错误与编译优化有关系<br /> ]]></description><category></category></item><item><title><![CDATA[linux  线程学习之条件变量 ]]></title><link>https://blog.youkuaiyun.com/hemmanhui/article/details/4417433</link><guid>https://blog.youkuaiyun.com/hemmanhui/article/details/4417433</guid><author>hemmanhui</author><pubDate>Thu, 06 Aug 2009 10:33:00 +0800</pubDate><description><![CDATA[互斥锁：用来上锁。条件变量：用来等待，当条件变量用来自动阻塞一个线程，直到某特殊情况发生为止。通常条件变量和互斥锁同时使用。 函数介绍： 1．名称：pthread_cond_init目标： 条件变量初始化头文件：#include 函数原形：int ]]></description><category></category></item><item><title><![CDATA[kmalloc vmalloc ]]></title><link>https://blog.youkuaiyun.com/hemmanhui/article/details/4374094</link><guid>https://blog.youkuaiyun.com/hemmanhui/article/details/4374094</guid><author>hemmanhui</author><pubDate>Thu, 23 Jul 2009 15:29:00 +0800</pubDate><description><![CDATA[ kmalloc()   用于申请较小的、连续的物理内存       1. 以字节为单位进行分配，在中       2. void *kmalloc(size_t size, int flags) 分配的内存物理地址上连续，虚拟地址上自然连续       3. gfp_mask标志：什么时候使用哪种标志？如下：              ----------------]]></description><category></category></item><item><title><![CDATA[linux   OOM 机制]]></title><link>https://blog.youkuaiyun.com/hemmanhui/article/details/4373705</link><guid>https://blog.youkuaiyun.com/hemmanhui/article/details/4373705</guid><author>hemmanhui</author><pubDate>Thu, 23 Jul 2009 13:41:00 +0800</pubDate><description><![CDATA[Linux 有一个保护机制,OOM Killer ,用于避免 Linux 在内存不足的时候不至于出太严重的问题，把无关紧要的进程杀掉，有些壮士断腕的意思。 在 32 位CPU 架构下寻址是有限制的。Linux 内核定义了三个区域：# DMA: 0x00000000 -  0x00999999 (0 - 16 <acronym title="Megabyte">MB) # LowMe]]></description><category></category></item><item><title><![CDATA[linux  线程学习（二）属性设置]]></title><link>https://blog.youkuaiyun.com/hemmanhui/article/details/4346557</link><guid>https://blog.youkuaiyun.com/hemmanhui/article/details/4346557</guid><author>hemmanhui</author><pubDate>Tue, 14 Jul 2009 10:17:00 +0800</pubDate><description><![CDATA[属性分类---------------------------------------------pthread_create函数的第二个参数，是关于线程属性的设置。属性主要包括邦定属性、分离属性、堆栈地址、堆栈大小、优先级。其中系统默认的是非邦定、非分离、缺省1M的堆栈、与父进程同样级别的优先级。在pthread_create中，把第二个参数设置为NULL的话，将采用默认的属性配置。]]></description><category></category></item><item><title><![CDATA[linux   线程学习（一）]]></title><link>https://blog.youkuaiyun.com/hemmanhui/article/details/4346368</link><guid>https://blog.youkuaiyun.com/hemmanhui/article/details/4346368</guid><author>hemmanhui</author><pubDate>Tue, 14 Jul 2009 09:40:00 +0800</pubDate><description><![CDATA[线程与进程的区别-----------------------------------------------------1.节俭：在Linux系统下，启动新的进程，必须分配给它独立的地址空间，建立众多的数据表来维护它的代码段、堆栈段和数据段。运行于一个进程中的多个线程，它们彼此之间使用相同的地址空间，共享大部分数据，启动一个线程所花费的空间远远小于启动一个进程所花费的空间，而且，线程间彼]]></description><category></category></item><item><title><![CDATA[linux   日志编程（总结）]]></title><link>https://blog.youkuaiyun.com/hemmanhui/article/details/4343844</link><guid>https://blog.youkuaiyun.com/hemmanhui/article/details/4343844</guid><author>hemmanhui</author><pubDate>Mon, 13 Jul 2009 11:34:00 +0800</pubDate><description><![CDATA[日志主要涉及3个函数，分别是openlog、syslog和closelog函数。表8.4所示为这3个函数的具体信息。 openlog、syslog和closelog函数 头文件函数形式void openlog(const char *ident, int option, int facility);void syslog(in]]></description><category></category></item><item><title><![CDATA[linux 进程学习(二)]]></title><link>https://blog.youkuaiyun.com/hemmanhui/article/details/4338693</link><guid>https://blog.youkuaiyun.com/hemmanhui/article/details/4338693</guid><author>hemmanhui</author><pubDate>Fri, 10 Jul 2009 18:55:00 +0800</pubDate><description><![CDATA[Linux进程的创建 #include #include pid_t fork(); fork函数在Linux下产生新的进程的系统调用，这个函数名是英文中“分叉”的意思父进程和子进程的关系是管理和被管理的关系，当父进程终止时，子进程也随之而终止。但子进程终止时，父进程并不一定终止--------------------------------------------]]></description><category></category></item><item><title><![CDATA[linux  进程学习(一)]]></title><link>https://blog.youkuaiyun.com/hemmanhui/article/details/4338687</link><guid>https://blog.youkuaiyun.com/hemmanhui/article/details/4338687</guid><author>hemmanhui</author><pubDate>Fri, 10 Jul 2009 18:47:00 +0800</pubDate><description><![CDATA[进程的概念 进程是一个具有独立功能的程序关于某个数据集合的一次可以并发执行的运行活动，是处于活动状态的计算机程序。进程作为构成系统的基本细胞，不仅是系统内部独立运行的实体，而且是独立竞争资源的基本实体。---------------------------------------------------------------------------------------------]]></description><category></category></item><item><title><![CDATA[网卡如何接收数据包[转]]]></title><link>https://blog.youkuaiyun.com/hemmanhui/article/details/4337339</link><guid>https://blog.youkuaiyun.com/hemmanhui/article/details/4337339</guid><author>hemmanhui</author><pubDate>Fri, 10 Jul 2009 11:49:00 +0800</pubDate><description><![CDATA[网线可以看作一个高速公路，物理帧也就是辆汽车，网卡呢？或许是个加油站吧。从这个角度将，汽车和加油站没有绝对的对应关系，所有的汽车都可以进入该加油站。 正常情况：网线上的物理帧首先被网卡芯片获取，网卡芯片会检查物理帧的CRC，保证完整性。其次，网卡芯片将物理帧头去掉，得到MAC包。网卡芯片检查MAC包内的目的MAC地址信息，和本网卡的M]]></description><category></category></item><item><title><![CDATA[TCP/IP 之数据包发送封装流程 ]]></title><link>https://blog.youkuaiyun.com/hemmanhui/article/details/4337249</link><guid>https://blog.youkuaiyun.com/hemmanhui/article/details/4337249</guid><author>hemmanhui</author><pubDate>Fri, 10 Jul 2009 11:30:00 +0800</pubDate><description><![CDATA[传输层 ------------------------------ TCP  UDP--------------------------该层的数据由应用进程产生，加上TCP包头或者UDP包头，传递给网络层 网络层 -------------------------------IP    ICMP(ping应用)  IGMP-----该层的数据会被加上IP包头（20字节），成为IP数据包，]]></description><category></category></item><item><title><![CDATA[linux  connect 设置连接超时]]></title><link>https://blog.youkuaiyun.com/hemmanhui/article/details/4328052</link><guid>https://blog.youkuaiyun.com/hemmanhui/article/details/4328052</guid><author>hemmanhui</author><pubDate>Tue, 07 Jul 2009 14:19:00 +0800</pubDate><description><![CDATA[原来我们实现connect()超时基本上都使用unix网络编程一书的非阻塞方式（connect_nonb），今天在网上看到一篇文章，觉得很有意思，转载如下：读Linux内核源码的时候偶然发现其connect的超时参数竟然和用SO_SNDTIMO操作的参数一致:　　File: net/ipv4/af_inet.c    559       timeo = so]]></description><category></category></item><item><title><![CDATA[linux  获取ip地址  MAC地址  netMask地址]]></title><link>https://blog.youkuaiyun.com/hemmanhui/article/details/4308693</link><guid>https://blog.youkuaiyun.com/hemmanhui/article/details/4308693</guid><author>hemmanhui</author><pubDate>Tue, 30 Jun 2009 09:55:00 +0800</pubDate><description><![CDATA[linux下获取指定网络的ip地址与netmask的接口:int get_ip(char* ipaddr,char *netmask, const char *ethname ){    int ret=-1;    if ( ipaddr && netmask && ethname )    {          int fd, intrface;          struct ifreq]]></description><category></category></item><item><title><![CDATA[linux 获取磁盘总空间的简单方法]]></title><link>https://blog.youkuaiyun.com/hemmanhui/article/details/4307373</link><guid>https://blog.youkuaiyun.com/hemmanhui/article/details/4307373</guid><author>hemmanhui</author><pubDate>Mon, 29 Jun 2009 16:42:00 +0800</pubDate><description><![CDATA[在嵌入式linux系统中获取磁盘总空间的方法，一般会仿照busybox的做法，使用函数：setmntent 与 getmntent、endmntent下面我向大家介绍一种直接读取/proc/下文件，直接获得磁盘总空间大小的方法:static double get_disk_totoal_size(){ #define DISK_SECTOR_FILE "/proc/ide/hda/ca]]></description><category></category></item><item><title><![CDATA[linux 下实现文件与目录删除]]></title><link>https://blog.youkuaiyun.com/hemmanhui/article/details/4301200</link><guid>https://blog.youkuaiyun.com/hemmanhui/article/details/4301200</guid><author>hemmanhui</author><pubDate>Fri, 26 Jun 2009 16:14:00 +0800</pubDate><description><![CDATA[在linux下，删除文件或者目录，大家首先想到的一定是命令:rm -rf   ***的确，该命令用起来方便简单，但是在实际情况下，会遇到一些包含有特殊字符的路径这样,rm 命令就会执行失败，所以，自己重新写了两个函数，不足之处，请大家畅所欲言! //判断字符串最后一个字符是否是cTargetbool IsLastChar( const char *pszSour,char cTar]]></description><category></category></item></channel></rss>