<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Bean Huo]]></title><description><![CDATA[MicroSW, Linux kernel, IOKPP, Linux Block,  IO Storage ]]></description><link>https://blog.youkuaiyun.com/jackyard</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jackyard]]></copyright><item><title><![CDATA[使用shmget在进程共享内存]]></title><link>https://blog.youkuaiyun.com/jackyard/article/details/82972731</link><guid>https://blog.youkuaiyun.com/jackyard/article/details/82972731</guid><author>jackyard</author><pubDate>Mon, 08 Oct 2018 20:07:31 +0800</pubDate><description><![CDATA[用于Linux进程通信(IPC Inter-Process-Communication)中，共享内存作为一种方便而且有效的手段， 我们在程序中经常看到。其中共享内存函数由shmget、shmat、shmdt、shmctl四个函数组成，其中shmget用来创建一个共享内存对象。


       #include &amp;lt;sys/ipc.h&amp;gt;
       #include &amp;lt;sys/s...]]></description><category></category></item><item><title><![CDATA[enum 类型到底有多大]]></title><link>https://blog.youkuaiyun.com/jackyard/article/details/78974574</link><guid>https://blog.youkuaiyun.com/jackyard/article/details/78974574</guid><author>jackyard</author><pubDate>Thu, 04 Jan 2018 20:33:02 +0800</pubDate><description><![CDATA[这里有一个问题：
#include 
typedef enum {
        CAN1 = 1,
        CAN2,
        CAN3,
        CAN4,
} Enum_8bit;
typedef enum {
        IP4 = 0x1234,
        IP5 = 0x444,
        IP6 = 0xffee,
} Enum_16bit]]></description><category></category></item><item><title><![CDATA[Automake 学习笔记之一：The Introduction / Example  Of GNU Autoconf, Automake And Libtool]]></title><link>https://blog.youkuaiyun.com/jackyard/article/details/78966734</link><guid>https://blog.youkuaiyun.com/jackyard/article/details/78966734</guid><author>jackyard</author><pubDate>Wed, 03 Jan 2018 23:53:12 +0800</pubDate><description><![CDATA[Autoconf/automake/libtool是GNU Autotools家族里用来自动生成makefile 和 configure的工具， 有了它， 我们就不用去写那么繁琐的各种角本文件，用它我们就可以自动生成各个角本文件，来管理和组织我们的代码项目。Autotools不但是一个工程建设系统，也可以用来做一些系统环境兼容性检测。
正因为有了它， 我们可以用
1.	./configure
2.	Make
3.	make install
这三步曲去编译我们的项目。下面来用一个很简单的hello autoc]]></description><category></category></item><item><title><![CDATA[如何移植sg3_utils到andriod系统中]]></title><link>https://blog.youkuaiyun.com/jackyard/article/details/78787519</link><guid>https://blog.youkuaiyun.com/jackyard/article/details/78787519</guid><author>jackyard</author><pubDate>Wed, 13 Dec 2017 00:21:34 +0800</pubDate><description><![CDATA[sg3_utils包含各种可以从用户空间发命令到scsi设备， 这篇文章主要告诉大家如何移植sg3_utils到ARM平台上。 之前我们主要用sg3_utils是在台式机或者直接复制它到目标机上去编译， 但对于大多数嵌入式设备来说， 我们需要交叉编译，尤其是对于android系统， 如果external下面没有所需要的工具包时， 我们必须对它进行交叉编译。为什么要把sg3-utils的交叉编译写一篇文章呢？只要是在我自己交叉编译的过程中，发现了一些问题，这里只是作一个总结，以帮助后来者少走弯路。]]></description><category></category></item><item><title><![CDATA[linux内核kallsyms机制分析]]></title><link>https://blog.youkuaiyun.com/jackyard/article/details/43986713</link><guid>https://blog.youkuaiyun.com/jackyard/article/details/43986713</guid><author>jackyard</author><pubDate>Sat, 28 Feb 2015 16:01:03 +0800</pubDate><description><![CDATA[一、前言
Linux内核是一个整体结构，而模块是插入到内核中的插件。尽管内核不是一个可安装模块，但为了方便起见，Linux把内核也看作一个模块。那么模块与模块之间如何进行交互呢，一种常用的方法就是共享变量和函数。但并不是模块中的每个变量和函数都能被共享，内核只把各个模块中主要的变量和函数放在一个特定的区段，这些变量和函数就统称为符号。因此，内核也有一个module结构，叫做kernel_module]]></description><category></category></item><item><title><![CDATA[ubifs挂载与写文件时的函数调用关系]]></title><link>https://blog.youkuaiyun.com/jackyard/article/details/43731571</link><guid>https://blog.youkuaiyun.com/jackyard/article/details/43731571</guid><author>jackyard</author><pubDate>Wed, 11 Feb 2015 10:55:17 +0800</pubDate><description><![CDATA[对于ubifs文件系统，在做好attach与ubimkvol后，就是mount 与写了。 
在mount时也有一个写的这过程，具体的函数调用过程： 
ubifs_write_node—->ubifs_leb_write—->ubi_leb_write—–>ubi_eba_write_leb这时才触发真正的写ubi_io_write在向ubifs的目录，写一个文件时的调用过程：ubifs_wbuf_w]]></description><category></category></item><item><title><![CDATA[ubi patch for MLC nand power loss (1)]]></title><link>https://blog.youkuaiyun.com/jackyard/article/details/43670697</link><guid>https://blog.youkuaiyun.com/jackyard/article/details/43670697</guid><author>jackyard</author><pubDate>Mon, 09 Feb 2015 14:47:24 +0800</pubDate><description><![CDATA[最近要出一个关于mlc nand 的powe loss的patch，我们知道，对于mlc nand,ubifs是没法用的，因为如果有powerloss出现，则必会破环原有的数据，如晨ubi的网站：



UBIFS authors never tested UBI/UBIFS on MLC flash devices. Let's considersome specific aspects]]></description><category></category></item><item><title><![CDATA[ubi 下ubi_ltree_entry获取与初始化过程]]></title><link>https://blog.youkuaiyun.com/jackyard/article/details/43486851</link><guid>https://blog.youkuaiyun.com/jackyard/article/details/43486851</guid><author>jackyard</author><pubDate>Wed, 04 Feb 2015 15:38:04 +0800</pubDate><description><![CDATA[在ubi中，每次写读一个volume是，都会对当期的这个volume进加锁。用到的就是rw_semaphore。关于读写锁可以查看一下网上别人写的东西。


获取这个锁的函数（这里我主要以write为例来说明）是：
/**
 * leb_write_lock - lock logical eraseblock for writing.
 * @ubi: UBI device descrip]]></description><category></category></item><item><title><![CDATA[linux 下，ubi获取write mutex的问题]]></title><link>https://blog.youkuaiyun.com/jackyard/article/details/43410373</link><guid>https://blog.youkuaiyun.com/jackyard/article/details/43410373</guid><author>jackyard</author><pubDate>Mon, 02 Feb 2015 16:42:04 +0800</pubDate><description><![CDATA[在linux中有,对于互斥的操作，大多用到了mutex，今天发现一个问题，同一个进程内可以多次获取到。有点像vxworks中的量子锁一样。
但是会有crash打出：
=============================================
[ INFO: possible recursive locking detected ]
3.14.0-xilinx-00012-gfb]]></description><category></category></item><item><title><![CDATA[关于nand flash 特殊 features的一点点]]></title><link>https://blog.youkuaiyun.com/jackyard/article/details/42778305</link><guid>https://blog.youkuaiyun.com/jackyard/article/details/42778305</guid><author>jackyard</author><pubDate>Fri, 16 Jan 2015 16:33:54 +0800</pubDate><description><![CDATA[关于nand的特性这里就不说了，这一节主要针对nand的新feature的说明。
一、Copyback Operations
 CopyBack功能，简单的说就是，将一个页的数据，拷贝到另一个页。
如果没有CopyBack功能，那么正常的做法就是，先要将那个页的数据拷贝出来放到内存的数据buffer中，读出来之后，再用写命令将这页的数据，写到新的页里面。
 而CopyBack功能的好处在于]]></description><category></category></item><item><title><![CDATA[关于linux下mtd_oobtest.ko的一点点分析]]></title><link>https://blog.youkuaiyun.com/jackyard/article/details/42555675</link><guid>https://blog.youkuaiyun.com/jackyard/article/details/42555675</guid><author>jackyard</author><pubDate>Fri, 09 Jan 2015 15:40:40 +0800</pubDate><description><![CDATA[最近在学习nand，写完nand controller的驱动后，随手也作了一下测试，发现mtd_oobtest老是出错，从这里开始，对它做一点点的分析：
当我们加载mtd_oobtest.ko模块时，下面的函数就会调用：


static int __init mtd_oobtest_init(void)
{
	int err = 0;
	unsigned int i;
	uint64_]]></description><category></category></item><item><title><![CDATA[uboot下关于quad spi nor 的一点点]]></title><link>https://blog.youkuaiyun.com/jackyard/article/details/42122251</link><guid>https://blog.youkuaiyun.com/jackyard/article/details/42122251</guid><author>jackyard</author><pubDate>Wed, 24 Dec 2014 12:48:28 +0800</pubDate><description><![CDATA[一般情况下，我们现在大多会把bootloader、kernel存放在spi nor中，上电时会从它里面加载到ram，这就有一个问题，如果以spi的接口去读，会很慢，
但是我查看了目前最新的uboot，还是没有spi nor的quad I/O mode的支持，上电时还是用的extended mode,但在内核中有相应的的接口中来使能quad I/O.
是不是看走眼了呢？
好像不是，之前一起用s]]></description><category></category></item><item><title><![CDATA[老版本的linux内核中mtd test 出现　mtd_oobtest: error: verify failed at 0xXXXX　问题]]></title><link>https://blog.youkuaiyun.com/jackyard/article/details/42076925</link><guid>https://blog.youkuaiyun.com/jackyard/article/details/42076925</guid><author>jackyard</author><pubDate>Mon, 22 Dec 2014 10:31:54 +0800</pubDate><description><![CDATA[最近在做parallel nor的东西，在用mtd/tests/下的mtd_oobtest时，老时有下面的打印：
mtd_oobtest: error: verify failed at 0xXXX


mtd_oobtest会对相关的device共作五步test，其中１，３，４过了，就是在2,5这两步是老是出现上面的错误，
后来发现，其实这个问题只是在老版本的内核存在，在新内核中没有。]]></description><category></category></item><item><title><![CDATA[新内核 中关于spi nor的注册]]></title><link>https://blog.youkuaiyun.com/jackyard/article/details/41515037</link><guid>https://blog.youkuaiyun.com/jackyard/article/details/41515037</guid><author>jackyard</author><pubDate>Wed, 26 Nov 2014 14:00:26 +0800</pubDate><description><![CDATA[3.X的内核,对于platform_device的注册和platform data,全都放在dts文件中指定,对于spi nor来说,它的整个驱动
包括了master  driver,master device,spi nor driver 和spi nor device.]]></description><category></category></item><item><title><![CDATA[关于uboot下data abort的问题]]></title><link>https://blog.youkuaiyun.com/jackyard/article/details/35264151</link><guid>https://blog.youkuaiyun.com/jackyard/article/details/35264151</guid><author>jackyard</author><pubDate>Fri, 27 Jun 2014 15:02:38 +0800</pubDate><description><![CDATA[在uboot下，经常会出现一些非常让人揪心的问题。解决这些问题的关键就是方法与方向，把握好这两点，一切问题都可以迎刃而解。同时也要自信。如下关于data abort的问题。

有时我们会遇到如下的出错信息，这时CPU会reboot，]]></description><category></category></item><item><title><![CDATA[latest kernel platform register]]></title><link>https://blog.youkuaiyun.com/jackyard/article/details/32129185</link><guid>https://blog.youkuaiyun.com/jackyard/article/details/32129185</guid><author>jackyard</author><pubDate>Wed, 18 Jun 2014 15:24:56 +0800</pubDate><description><![CDATA[在内核中，对于platform的注册有了很大变化]]></description><category></category></item><item><title><![CDATA[Zynq的中断号在dts中的表示]]></title><link>https://blog.youkuaiyun.com/jackyard/article/details/30485841</link><guid>https://blog.youkuaiyun.com/jackyard/article/details/30485841</guid><author>jackyard</author><pubDate>Fri, 13 Jun 2014 14:56:38 +0800</pubDate><description><![CDATA[关于zynq的中断述，在网上和]]></description><category></category></item><item><title><![CDATA[xcale blob移值小节]]></title><link>https://blog.youkuaiyun.com/jackyard/article/details/27536201</link><guid>https://blog.youkuaiyun.com/jackyard/article/details/27536201</guid><author>jackyard</author><pubDate>Thu, 29 May 2014 15:44:05 +0800</pubDate><description><![CDATA[前一段时间一直在xscale平台上作相关的validation工作，发]]></description><category></category></item><item><title><![CDATA[如果在你的ubuntu在只有一个网卡的前提下增加一个IP，让开发板来与此相连]]></title><link>https://blog.youkuaiyun.com/jackyard/article/details/25986505</link><guid>https://blog.youkuaiyun.com/jackyard/article/details/25986505</guid><author>jackyard</author><pubDate>Fri, 16 May 2014 16:19:57 +0800</pubDate><description><![CDATA[之前一直是把PC放到自己的办公桌前，这样方便开发板与此相连，但这有一个问]]></description><category></category></item><item><title><![CDATA[git不同linux版本说明]]></title><link>https://blog.youkuaiyun.com/jackyard/article/details/25866245</link><guid>https://blog.youkuaiyun.com/jackyard/article/details/25866245</guid><author>jackyard</author><pubDate>Thu, 15 May 2014 09:02:37 +0800</pubDate><description><![CDATA[在确保你安装好git后，我们就可以通过git来下载不同版本的linux　kernel了，这时要先说一下]]></description><category></category></item></channel></rss>