<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[u014353386的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/u014353386</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u014353386]]></copyright><item><title><![CDATA[内核线程与用户线程]]></title><link>https://blog.youkuaiyun.com/u014353386/article/details/51106915</link><guid>https://blog.youkuaiyun.com/u014353386/article/details/51106915</guid><author>u014353386</author><pubDate>Sat, 09 Apr 2016 19:35:56 +0800</pubDate><description><![CDATA[http://www.jianshu.com/p/5a4fc2729c17





前言

linux内核不存在整真正意义上的线程。linux将所有的执行实体都称之为任务（task），每一个任务在干年上都类似于一个单线程的进程，具有内存空间、执行实体、文件资源等。但是，linux下不同任务之间可以选择公用内存空间，因而在实际意义上，共享同一个内存空间的多个任务构成了一个进程，而这]]></description><category></category></item><item><title><![CDATA[linux中断流程详解]]></title><link>https://blog.youkuaiyun.com/u014353386/article/details/51033535</link><guid>https://blog.youkuaiyun.com/u014353386/article/details/51033535</guid><author>u014353386</author><pubDate>Fri, 01 Apr 2016 01:37:28 +0800</pubDate><description><![CDATA[<span style="font-size:12.0pt;
font-family:宋体;mso-bidi-font-family:宋体;mso-font-kerning:0pt">异常体系比较复杂，但是linux已经准备了很多的函数和框架，但是因为中断是和具体的开发板相关，所以中断需要我们自己来处理一些方面，但是这也是很少的一部分，很多公用的处理函数内核已经实现，linux内核搭建了一个非常]]></description><category></category></item><item><title><![CDATA[GPIO中断]]></title><link>https://blog.youkuaiyun.com/u014353386/article/details/51033534</link><guid>https://blog.youkuaiyun.com/u014353386/article/details/51033534</guid><author>u014353386</author><pubDate>Fri, 01 Apr 2016 01:37:25 +0800</pubDate><description><![CDATA[主要功能：通过两个GPIO（S5PV210_GPJ2（7）和S5PV210_GPJ3（0））作为输出，来控制两个作为中断的GPIO（S5PV210_GPH1（4）和S5PV210_GPH1（2）），从而触发两个LED灯（ S5PV210_GPH0(6)和S5PV210_GPH0(7)）。主要参考文件linux/interrupt.h， kernel/irq/manage.c， linux/irq.]]></description><category></category></item><item><title><![CDATA[Linux内核线程]]></title><link>https://blog.youkuaiyun.com/u014353386/article/details/51033533</link><guid>https://blog.youkuaiyun.com/u014353386/article/details/51033533</guid><author>u014353386</author><pubDate>Fri, 01 Apr 2016 01:37:23 +0800</pubDate><description><![CDATA[1.内核线程介绍：


	    内核经常需要在后台执行一些操作，这种任务就可以通过内核线程（kernle thread）完成——独立运行在内核空间的标准进程。内核线程和普通的进程间的区别在于内核线程没有独立的地址空间，mm指针被设置为NULL；它只在内核空间运行，从来不切换到用户空间去；并且和普通进程一样，可以被调度，也可以被抢占。


	    内核线程只能由其它的内核线程创建，L]]></description><category></category></item><item><title><![CDATA[c库函数]]></title><link>https://blog.youkuaiyun.com/u014353386/article/details/51033532</link><guid>https://blog.youkuaiyun.com/u014353386/article/details/51033532</guid><author>u014353386</author><pubDate>Fri, 01 Apr 2016 01:37:20 +0800</pubDate><description><![CDATA[字符与字符串







	
		4 #define vi *( volatile unsigned int * )
5
6 #define SET_ZERO( addr, bit ) ( (vi addr) &= ( ~ ( 1 
7 #define SET_ONE( addr, bit ) ( (vi addr) |= ( 1 
8
9 #define SET_B]]></description><category></category></item><item><title><![CDATA[linux C 中常用的字符串操作函数]]></title><link>https://blog.youkuaiyun.com/u014353386/article/details/51033531</link><guid>https://blog.youkuaiyun.com/u014353386/article/details/51033531</guid><author>u014353386</author><pubDate>Fri, 01 Apr 2016 01:37:17 +0800</pubDate><description><![CDATA[点击(此处)折叠或打开/*字符串长度函数*/　　size_t strlen(const char *string); /*不受限制的字符串函数*/  　　char *strcpy(char *dst, const char *src); 　　char *strcat(char *dst, const char *src); 　　int strcmp(const char *s1, const ch]]></description><category></category></item><item><title><![CDATA[c疑难点]]></title><link>https://blog.youkuaiyun.com/u014353386/article/details/51033530</link><guid>https://blog.youkuaiyun.com/u014353386/article/details/51033530</guid><author>u014353386</author><pubDate>Fri, 01 Apr 2016 01:37:14 +0800</pubDate><description><![CDATA[很容易得出p[-2]=10,p[-1]=20,p[0]=30,p[1]=40,p[2]=50,p[3]=60;


	p++，指针p往后移一个单位，则p=a+3,此时p[0]=*(p+0)=40;


	*p++, 是先取出*p的值，再执行p++操作, 则*p++=40,p=a+4;


	*++p,p先往后移一个单位，再取对应地址的值,则*++p=60;


	++*p,]]></description><category></category></item><item><title><![CDATA[环形缓冲区的C语言实现]]></title><link>https://blog.youkuaiyun.com/u014353386/article/details/51033529</link><guid>https://blog.youkuaiyun.com/u014353386/article/details/51033529</guid><author>u014353386</author><pubDate>Fri, 01 Apr 2016 01:37:05 +0800</pubDate><description><![CDATA[#include   
#include   
#include   
#include   
#include   

#define BUFFSIZE 1024 * 1024  
#define min(x, y) ((x) 

pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;  

struct cycle_buffer]]></description><category></category></item><item><title><![CDATA[SPI读写总结]]></title><link>https://blog.youkuaiyun.com/u014353386/article/details/51033528</link><guid>https://blog.youkuaiyun.com/u014353386/article/details/51033528</guid><author>u014353386</author><pubDate>Fri, 01 Apr 2016 01:36:55 +0800</pubDate><description><![CDATA[SPI协议是主从模式：从机不主动发起访问，总是被动执行操作。CSN：片选信号。SCK：时钟信号。MOSI:master output slave input,即主机输出从机输入。可以理解主机写从设备。MISO:master input slave output,即主机输入从机输出。可以理解主机读从设备。SPI全称:Serial Peripheral interface,即串行外围设备接口。SPI协]]></description><category></category></item><item><title><![CDATA[linux设备驱动归纳总结（三）：6.poll和sellct]]></title><link>https://blog.youkuaiyun.com/u014353386/article/details/51033527</link><guid>https://blog.youkuaiyun.com/u014353386/article/details/51033527</guid><author>u014353386</author><pubDate>Fri, 01 Apr 2016 01:36:45 +0800</pubDate><description><![CDATA[linux设备驱动归纳总结（三）：6.poll和sellct


xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
接下来会讲系统调用select在驱动中的实现，如果对系统调用select不太懂的话，建议先看书补习一下。
xxxxxxxxxxxxxxxxxxxxxx]]></description><category></category></item><item><title><![CDATA[嵌入式C编程经验 之 全局变量猛于虎]]></title><link>https://blog.youkuaiyun.com/u014353386/article/details/51033526</link><guid>https://blog.youkuaiyun.com/u014353386/article/details/51033526</guid><author>u014353386</author><pubDate>Fri, 01 Apr 2016 01:36:36 +0800</pubDate><description><![CDATA[/*********************************************************************************  * Filename: 一线研发之声：嵌入式C编程经验 之 全局变量猛于虎  * Author：SedateFire          E-mail:SedateFire@126.com  * Version：1.001      ]]></description><category></category></item><item><title><![CDATA[用户空间和内核空间通讯之【proc文件系统】]]></title><link>https://blog.youkuaiyun.com/u014353386/article/details/51033525</link><guid>https://blog.youkuaiyun.com/u014353386/article/details/51033525</guid><author>u014353386</author><pubDate>Fri, 01 Apr 2016 01:36:33 +0800</pubDate><description><![CDATA[今天我们介绍另一种用户内核空间通信的方法：proc文件系统。

	proc文件系统作为linux提供的一种虚拟文件系统并不占用实际外围存储空间，它仅存在于内存中，系统断电即消失。proc文件系统最开始的设计主要是为满足内核向用户态进程报告其状态而设计，并没有为输入做规定和说明。随着发展，现在的proc文件系统已经演变成一个“用户-内核”空间半双工的通信方式了(虽然目前已经开始有点混乱了，但某些]]></description><category></category></item><item><title><![CDATA[linux设备驱动归纳总结（四）：5.SMP下的竞态和并发]]></title><link>https://blog.youkuaiyun.com/u014353386/article/details/51033524</link><guid>https://blog.youkuaiyun.com/u014353386/article/details/51033524</guid><author>u014353386</author><pubDate>Fri, 01 Apr 2016 01:36:31 +0800</pubDate><description><![CDATA[linux设备驱动归纳总结（四）：5.多处理器下的竞态和并发


xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
这节将在上一节的基础上介绍支持多处理器和内核抢占的内核如何避免并发。除了内核抢占和中断外，由于多处理起的缘故，它可以做到多个程序同时执行。所以，进程除了]]></description><category></category></item><item><title><![CDATA[不要对知识与技术的遗忘感到焦虑]]></title><link>https://blog.youkuaiyun.com/u014353386/article/details/51033523</link><guid>https://blog.youkuaiyun.com/u014353386/article/details/51033523</guid><author>u014353386</author><pubDate>Fri, 01 Apr 2016 01:36:28 +0800</pubDate><description><![CDATA[这段时间一直在复习linux设备驱动，越是复习越是觉得心慌，以前的知识好像全都忘记了，晚上打开衣柜，甚至认不出那是我去年冬天买的外套，感慨一下，我的记忆力大不如前了。以下内容转自同学的博客：http://blog.youkuaiyun.com/elevenxjz以下四段是我转自优快云上的一篇帖子：

1、一门技术必须多用才能掌握，最好的办法是在项目中运用。如果你在真实的项目中使用了某一项技术，那么印象就]]></description><category></category></item><item><title><![CDATA[linux设备驱动归纳总结（五）：2.操作硬件——IO内存]]></title><link>https://blog.youkuaiyun.com/u014353386/article/details/51033522</link><guid>https://blog.youkuaiyun.com/u014353386/article/details/51033522</guid><author>u014353386</author><pubDate>Fri, 01 Apr 2016 01:36:18 +0800</pubDate><description><![CDATA[linux设备驱动归纳总结（五）：2.操作硬件——IO内存


xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
在之前章节的驱动，都没有对硬件进行操作，接写来将从我之前学的裸板驱动开始，讲解在linux系统下如何访问硬件。
xxxxxxxxxxxxxxxxxxxx]]></description><category></category></item><item><title><![CDATA[Linux 错误码列表]]></title><link>https://blog.youkuaiyun.com/u014353386/article/details/51033521</link><guid>https://blog.youkuaiyun.com/u014353386/article/details/51033521</guid><author>u014353386</author><pubDate>Fri, 01 Apr 2016 01:36:09 +0800</pubDate><description><![CDATA[#define EPERM   1 /* Operation not permitted */ 
#define ENOENT   2 /* No such file or directory */ 
#define ESRCH   3 /* No such process */ 
#define EINTR   4 /* Interrupted system call */ 
#defi]]></description><category></category></item><item><title><![CDATA[Linux驱动学习笔记（3）字符设备驱动]]></title><link>https://blog.youkuaiyun.com/u014353386/article/details/51033520</link><guid>https://blog.youkuaiyun.com/u014353386/article/details/51033520</guid><author>u014353386</author><pubDate>Fri, 01 Apr 2016 01:35:59 +0800</pubDate><description><![CDATA[今天对程序进行编译，结果出现make -C /lib/modules/3.3.2-6.fc16.x86_64/build M=/home/jqzeng/workSpace/ldd3/ldd3-samples-1.0.0/scull LDDINC=/home/jqzeng/workSpace/ldd3/ldd3-samples-1.0.0/scull/../include modulesmake[1]]></description><category></category></item><item><title><![CDATA[存储管理]]></title><link>https://blog.youkuaiyun.com/u014353386/article/details/51033519</link><guid>https://blog.youkuaiyun.com/u014353386/article/details/51033519</guid><author>u014353386</author><pubDate>Fri, 01 Apr 2016 01:35:57 +0800</pubDate><description><![CDATA[一、存储器分为两类：内存储器（内存）和外存储器（外存）。CPU只能直接访问内存。
 
二、存储体系结构：高速缓存——内存——外存，容量逐渐降低，存储速度逐渐降低。
 
三、存储管理的任务：内存的分配和管理；内存共享；存储保护；内存扩充；地址映射。
 
四、内存空间分为两个部分：系统区，存放操作系统且常驻内存；用户区，分配给用户使用。
 
五、存储管理方案：分区管理、页式管理、段式管]]></description><category></category></item><item><title><![CDATA[NOR FLASH驱动程序]]></title><link>https://blog.youkuaiyun.com/u014353386/article/details/51033518</link><guid>https://blog.youkuaiyun.com/u014353386/article/details/51033518</guid><author>u014353386</author><pubDate>Fri, 01 Apr 2016 01:35:47 +0800</pubDate><description><![CDATA[http://www.cnblogs.com/liulipeng/p/3377626.html

NOR FLASH驱动程序 


	
		
			               NOR                                  NAND
接口：   
 RAM-Like,引脚多                 引脚少，复用
容量：  小 1M 2M 3M]]></description><category></category></item><item><title><![CDATA[arm中的PLL，MPLL，UPLL，FCLK，HCLK，PCLK的作用概述]]></title><link>https://blog.youkuaiyun.com/u014353386/article/details/51033517</link><guid>https://blog.youkuaiyun.com/u014353386/article/details/51033517</guid><author>u014353386</author><pubDate>Fri, 01 Apr 2016 01:35:37 +0800</pubDate><description><![CDATA[前言：
    不同公司，不同等级的ARM架构也是有许多共同的地方，因此以最为广泛使用的2440为实例讲解。

一，PLL
    S3C2440 CPU主频可达400MHz，开发板上的外接晶振为12M，通过时钟控制逻辑的PLL（phase locked loop，锁相环电路）来倍频这个系统时钟。2440有两个PLL（phase locked loop）一个是MPLL，一个是UPLL。UP]]></description><category></category></item></channel></rss>