<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[arick2013的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/arick2013</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; arick2013]]></copyright><item><title><![CDATA[关闭error, forbidden warning]]></title><link>https://blog.youkuaiyun.com/arick2013/article/details/49965247</link><guid>https://blog.youkuaiyun.com/arick2013/article/details/49965247</guid><author>arick2013</author><pubDate>Sat, 21 Nov 2015 16:08:19 +0800</pubDate><description><![CDATA[最近在编译android kernel时，遇到error, forbidden warning, 导致编译中断，大大降低了debug效率。

关闭方法如下：在kernel/scripts/gcc-wrapper.py中注释掉interpret_warning(line)即可。



--- a/scripts/gcc-wrapper.py

+++ b/scripts/gcc-wr]]></description><category></category></item><item><title><![CDATA[autoreconf: not found]]></title><link>https://blog.youkuaiyun.com/arick2013/article/details/49948341</link><guid>https://blog.youkuaiyun.com/arick2013/article/details/49948341</guid><author>arick2013</author><pubDate>Fri, 20 Nov 2015 16:21:17 +0800</pubDate><description><![CDATA[./autogen.sh: 4: autoreconf: not found
  是在不同版本的 tslib 下执行 autogen.sh 产生。它们产生的原因一样,是
因为没有安装
  automake 工具,      (ubuntu 8.04)用下面的命令安装好就可以了。
  sudo apt-get install autoconf automake libtool]]></description><category></category></item><item><title><![CDATA[linux内核的 等待队列 使用方法，wait_queue_head_t，进程休眠]]></title><link>https://blog.youkuaiyun.com/arick2013/article/details/49907231</link><guid>https://blog.youkuaiyun.com/arick2013/article/details/49907231</guid><author>arick2013</author><pubDate>Wed, 18 Nov 2015 14:57:35 +0800</pubDate><description><![CDATA[假设我们在 kernel 里产生一个 buffer，user 可以经由 read，write 等 system call 来读取或写资料到这个 buffer 里。如果有一个 user 写资料到 buffer 时，此时 buffer 已经满了。那请问你要如何去处理这种情形呢 ? 第一种，传给 user 一个错误讯息，说 buffer 已经满了，不能再写入。第二种，将 user 的要求 block 住]]></description><category></category></item><item><title><![CDATA[linux INIT_WORK 创建工作队列]]></title><link>https://blog.youkuaiyun.com/arick2013/article/details/49906897</link><guid>https://blog.youkuaiyun.com/arick2013/article/details/49906897</guid><author>arick2013</author><pubDate>Wed, 18 Nov 2015 14:41:01 +0800</pubDate><description><![CDATA[Linux 2.6内核使用了不少工作队列来处理任务，他在使用上和 tasklet最大的不同是工作队列的函数可以使用休眠，而tasklet的函数是不允许使用休眠的。

工作队列的使用又分两种情况，一种是利用系统共享的工作队列来添加自己的工作，这种情况处理函数不能消耗太多时间，这样会影响共享队列中其他任务的处理；另外一种是创建自己的工作队列并添加工作。

（一）利用系统共享的工作队列添加工作：]]></description><category></category></item><item><title><![CDATA[ARM中关于绝对寻址相对寻址LDR，ADR的理解]]></title><link>https://blog.youkuaiyun.com/arick2013/article/details/49770303</link><guid>https://blog.youkuaiyun.com/arick2013/article/details/49770303</guid><author>arick2013</author><pubDate>Wed, 11 Nov 2015 00:28:59 +0800</pubDate><description><![CDATA[LDR：是与位置有关的，是个绝对寻址，其后的地址值是在程序编译的时候就确定位置了.

例如当程序在内部stepping stone中执行时候，如果使用ldr pc, =copy_proc_beg ，则程序就是把copy_proc_beg的绝对地址，即在编译时候确定的地址0x30000000加上偏移量的地址付给pc，实现跳转。

其中,​ldr伪指令的实际寻址空间是32位的



]]></description><category></category></item><item><title><![CDATA[ARM的位置无关程序设计]]></title><link>https://blog.youkuaiyun.com/arick2013/article/details/49768599</link><guid>https://blog.youkuaiyun.com/arick2013/article/details/49768599</guid><author>arick2013</author><pubDate>Wed, 11 Nov 2015 00:05:54 +0800</pubDate><description><![CDATA[ARM处理器支持位置无关的程序设计，这种程序加载到存储器的任意地址空间都可以正常运行，其设计方法在嵌入式应用系统开发中具有重要的作用。尤其在裸机状态下开发Bootloader程序及进行内核初始化设计；利用位置无关的程序设计方法还可以在具体应用中用于构建高效率动态链接库，因而了解位置无关的程序设计方法，有助于开发人员设计出结构简单、清晰的应用程序。
应用程序必须经过编译、汇编和链接后才变成可执行文]]></description><category></category></item><item><title><![CDATA[install and run tftp dhcp nfs server]]></title><link>https://blog.youkuaiyun.com/arick2013/article/details/49749581</link><guid>https://blog.youkuaiyun.com/arick2013/article/details/49749581</guid><author>arick2013</author><pubDate>Tue, 10 Nov 2015 00:47:35 +0800</pubDate><description><![CDATA[1. install 

sudo apt-get install tftpd-hpa
sudo apt-get install isc-dhcp-server
sudo apt-get install nfs-kernel-server
2.configure
nfs:编辑/etc/exports      nfs-dir 192.168.101.0/24(rw,fsid=0,ins]]></description><category></category></item><item><title><![CDATA[sema api]]></title><link>https://blog.youkuaiyun.com/arick2013/article/details/49659681</link><guid>https://blog.youkuaiyun.com/arick2013/article/details/49659681</guid><author>arick2013</author><pubDate>Thu, 05 Nov 2015 10:51:29 +0800</pubDate><description><![CDATA[内核同步机制-信号量



信号量

通用信号量
用户类进程之间使用信号量（semaphore）进行同步，内核线程之间也使用了信号量。信号量与自旋锁类似，保护临界区代码。但信号量与自旋锁有一定的区别，信号量在无法得到资源时，内核线程处于睡眠阻塞状态，而自旋锁处于忙等待状态。因此，如果资源被占用时间很短时，使用自旋锁较好，因为它可节约调度时间。如果资源被占用的时间较长，使用信号量较好，]]></description><category></category></item><item><title><![CDATA[list_for_each()与list_for_each_safe()的区别]]></title><link>https://blog.youkuaiyun.com/arick2013/article/details/49651795</link><guid>https://blog.youkuaiyun.com/arick2013/article/details/49651795</guid><author>arick2013</author><pubDate>Thu, 05 Nov 2015 00:46:08 +0800</pubDate><description><![CDATA[list_for_each()的定义：



[plain] 
view plaincopyprint?


/**   * list_for_each    -   iterate over a list   * @pos:    the &struct list_head to use as a loop counter.   * @head:   the head for y]]></description><category></category></item><item><title><![CDATA[Scheduling while atomic]]></title><link>https://blog.youkuaiyun.com/arick2013/article/details/49648329</link><guid>https://blog.youkuaiyun.com/arick2013/article/details/49648329</guid><author>arick2013</author><pubDate>Wed, 04 Nov 2015 23:58:26 +0800</pubDate><description><![CDATA["Scheduling while atomic" indicates that you've tried to sleep somewhere that you shouldn't - like within a spinlock-protected critical section or an interrupt handler.

改进程序，在计时器里使用了workqueue，搞定问题。]]></description><category></category></item><item><title><![CDATA[opensource codes configure and compile with toolchain]]></title><link>https://blog.youkuaiyun.com/arick2013/article/details/49618627</link><guid>https://blog.youkuaiyun.com/arick2013/article/details/49618627</guid><author>arick2013</author><pubDate>Tue, 03 Nov 2015 17:08:02 +0800</pubDate><description><![CDATA[./configure -build,-host,-target设置


build:执行代码编译的主机，正常的话就是你的主机系统。这个参数一般由config.guess来猜就可以。当然自己指定也可以。
host:编译出来的二进制程序所执行的主机，因为绝大多数是如果本机编译，本机执行。所以这个值就等于build。只有交叉编译的时候（也就是本机编译，其他系统机器执行）才会build和host]]></description><category></category></item><item><title><![CDATA[MACHINE_START与MACHINE_END]]></title><link>https://blog.youkuaiyun.com/arick2013/article/details/49613275</link><guid>https://blog.youkuaiyun.com/arick2013/article/details/49613275</guid><author>arick2013</author><pubDate>Tue, 03 Nov 2015 11:00:22 +0800</pubDate><description><![CDATA[在移植Linux时，有个结构体需要填写，它以MACHINE_START开始并以MACHINE_END结束，如下mini2440开发板的移植为示例


[cpp] 
view plaincopy


MACHINE_START(MINI2440, "MINI2440")      .phys_io    = S3C2410_PA_UART,      .io_pg_offst    =]]></description><category></category></item><item><title><![CDATA[Makefile常见问题汇总]]></title><link>https://blog.youkuaiyun.com/arick2013/article/details/49591179</link><guid>https://blog.youkuaiyun.com/arick2013/article/details/49591179</guid><author>arick2013</author><pubDate>Mon, 02 Nov 2015 19:58:55 +0800</pubDate><description><![CDATA[1。Makefile 命令行以tab建开始， 对于vim设置的用空格代替tab的可以使用
set noexpandtab
来取消vim里的设置。]]></description><category></category></item><item><title><![CDATA[Makefile && subdir template]]></title><link>https://blog.youkuaiyun.com/arick2013/article/details/49488845</link><guid>https://blog.youkuaiyun.com/arick2013/article/details/49488845</guid><author>arick2013</author><pubDate>Thu, 29 Oct 2015 11:09:09 +0800</pubDate><description><![CDATA[SUBDIR = sub-dir

all:
    cd ${SUBDIR} && $(MAKE)

clean:
    cd ${SUBDIR} && $(MAKE)






===============================================


CFLAGS += -g -DDEBUG -I../shared -DLINUX_]]></description><category></category></item><item><title><![CDATA[802.11n相关技术详解]]></title><link>https://blog.youkuaiyun.com/arick2013/article/details/48624203</link><guid>https://blog.youkuaiyun.com/arick2013/article/details/48624203</guid><author>arick2013</author><pubDate>Mon, 21 Sep 2015 11:30:16 +0800</pubDate><description><![CDATA[802.11n关键技术详解
1.1  802.11n标准发展历史
2003年9月：IEEE成立802.11n任务组，负责创设100+MbpsWLAN标准。
2005年7月：11n草案1获通过. 
2007年3月：草案2获通过。
2009年9月11日：IEEE标准委员会终于批准通过802.11n成为正式标准。
1.2  802.11n关键技术介绍  
1.2.1  核心技术—MIMO]]></description><category></category></item><item><title><![CDATA[802.11n 协议浅析]]></title><link>https://blog.youkuaiyun.com/arick2013/article/details/48606919</link><guid>https://blog.youkuaiyun.com/arick2013/article/details/48606919</guid><author>arick2013</author><pubDate>Sun, 20 Sep 2015 23:20:19 +0800</pubDate><description><![CDATA[物理层的改进：
1、MIMO，传说中的空分复用，频点相同。AP和client成对出现。
•
利用多天线传输,将串行映射为并行
•
各天线独立处理,自主运行
•
各天线用各自的调制方式发送电波
•
各天线用各自的解调方式接收电波
 
MIMO变态版：
1）、diversity（分集）
天线数量多于空间流数量，使用两根天线的输出组合来接收一个空间流，获得更远的传输距离。
2]]></description><category></category></item><item><title><![CDATA[iptables 的防火墙正常运行时间和安全性  使用此高效应用程序设置并维护 Linux 防火墙]]></title><link>https://blog.youkuaiyun.com/arick2013/article/details/48549197</link><guid>https://blog.youkuaiyun.com/arick2013/article/details/48549197</guid><author>arick2013</author><pubDate>Fri, 18 Sep 2015 17:12:26 +0800</pubDate><description><![CDATA[简介
Iptables 是一种应用程序，充许对 Linux 内核防火墙中的表进行管理。对于防火墙修改和常见的系统管理任务，您无需预先具备有关内核或其实际表的知识。
在一些 Linux 发行版中，默认启用 iptables。通常建议无经验的用户完全禁用 iptable，以避免出现网络问题。本文将帮助您快速上手并根据您的需求操作 iptables。
有时会使用 iptables 来指 Linux]]></description><category></category></item><item><title><![CDATA[VLAN原理详解]]></title><link>https://blog.youkuaiyun.com/arick2013/article/details/48547603</link><guid>https://blog.youkuaiyun.com/arick2013/article/details/48547603</guid><author>arick2013</author><pubDate>Fri, 18 Sep 2015 15:47:02 +0800</pubDate><description><![CDATA[目录
--------------------------------------------------------------------------------

1.为什么需要VLAN
2.实现VLAN的机制
3.VLAN的访问链接（Access Link）
4.VLAN的汇聚链接（Trunk Link）
5.VLAN的汇聚方式——IEEE802.1Q与ISL
6.VLAN]]></description><category></category></item><item><title><![CDATA[linux command]]></title><link>https://blog.youkuaiyun.com/arick2013/article/details/48478453</link><guid>https://blog.youkuaiyun.com/arick2013/article/details/48478453</guid><author>arick2013</author><pubDate>Tue, 15 Sep 2015 23:27:28 +0800</pubDate><description><![CDATA[http://man.linuxde.net]]></description><category></category></item><item><title><![CDATA[WPA/WPA2安全认证加密原理详解]]></title><link>https://blog.youkuaiyun.com/arick2013/article/details/48375751</link><guid>https://blog.youkuaiyun.com/arick2013/article/details/48375751</guid><author>arick2013</author><pubDate>Fri, 11 Sep 2015 17:38:05 +0800</pubDate><description><![CDATA[1.  WPA加密版本介绍
WPA加密算法的的两个版本介绍
WPA = 802.1x + EAP + TKIP +MIC
= Pre-shared Key + TKIP + MIC
802.11i(WPA2)
= 802.1x + EAP + AES + CCMP
= Pre-shared Key + AES + CCMP
l  802.1x + EAP，Pre-shared Key]]></description><category></category></item></channel></rss>