<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[embedded_man2011 技术空间]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/embedded_man2011</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; embedded_man2011]]></copyright><item><title><![CDATA[[Linux driver] Mutex, semaphore, spinlock的深度解析]]></title><link>https://blog.youkuaiyun.com/embedded_man2011/article/details/7030151</link><guid>https://blog.youkuaiyun.com/embedded_man2011/article/details/7030151</guid><author>embedded_man2011</author><pubDate>Thu, 01 Dec 2011 11:20:04 +0800</pubDate><description><![CDATA[Mutex是一把钥匙，一个人拿了就可进入一个房间，出来的时候把钥匙交给队列的第一个。一般的用法是用于串行化对critical section代码的访问，保证这段代码不会被并行的运行。

 

Semaphore是一件可以容纳N人的房间，如果人不满就可以进去，如果人满了，就要等待有人出来。对于N=1的情况，称为binary semaphore。一般的用法是，用于限制对于某一资源的同时访问。]]></description><category></category></item><item><title><![CDATA[[Linux driver]揭秘platform_driver， platform_device]]></title><link>https://blog.youkuaiyun.com/embedded_man2011/article/details/7023808</link><guid>https://blog.youkuaiyun.com/embedded_man2011/article/details/7023808</guid><author>embedded_man2011</author><pubDate>Tue, 29 Nov 2011 15:57:41 +0800</pubDate><description><![CDATA[Platform的出现，如同PCI总线一样，把没有“领导层”的设备全部纳入麾下，是个收养所，
专门收养如SPI I2C等连接多slave设备的微型总线，这样一来，linux的sysfs以及kobj内核管理数据结构
就可以很好的管理这些微总线，把他们出现在fs下面供用户查看其状态，也便于统一的进行电源管理工作；
下面是platform的原文介绍：
 
Platform Devices an]]></description><category></category></item><item><title><![CDATA[[Linux driver]解密module_init]]></title><link>https://blog.youkuaiyun.com/embedded_man2011/article/details/7022481</link><guid>https://blog.youkuaiyun.com/embedded_man2011/article/details/7022481</guid><author>embedded_man2011</author><pubDate>Tue, 29 Nov 2011 10:36:17 +0800</pubDate><description><![CDATA[在Linux底下写过driver模块的对这个宏一定不会陌生。module_init宏在MODULE宏有没有定义的情况下展开的内容是不同的，如果这个宏没有定义，基本上表明阁下的模块是要编译进内核的(obj-y)。
1.在MODULE没有定义这种情况下，module_init定义如下：

#define module_init(x)        __initcall(x);
因为
#def]]></description><category></category></item><item><title><![CDATA[[linux driver]驱动模型中为什么用一个虚拟的platform_bus/device？]]></title><link>https://blog.youkuaiyun.com/embedded_man2011/article/details/7012526</link><guid>https://blog.youkuaiyun.com/embedded_man2011/article/details/7012526</guid><author>embedded_man2011</author><pubDate>Fri, 25 Nov 2011 16:17:33 +0800</pubDate><description><![CDATA[虚拟总线在linux驱动模型中出现，目的很明确，为众多没有“实际领袖”bus的controller找个共同的虚拟的“精神领袖”，既然是虚拟的，当然就可以挂接很多controller了，比如SPI controller， I2C controller等等；
那为什么驱动都要找个Bus挂接一下呢？---- 是为了管理大量的同类资源及其驱动而出现的一种管理方式，Bus-x负责所有X设备及其驱动的loa]]></description><category></category></item><item><title><![CDATA[[Linux driver] Hello world编译过程解析]]></title><link>https://blog.youkuaiyun.com/embedded_man2011/article/details/7011295</link><guid>https://blog.youkuaiyun.com/embedded_man2011/article/details/7011295</guid><author>embedded_man2011</author><pubDate>Fri, 25 Nov 2011 11:33:20 +0800</pubDate><description><![CDATA[虽然系统提供的makefile很智能地将hello.c最终编译成了hello.ko，但是我还是想知道系统的makefile到底干了些什么。

   首先看编译驱动的目录，编译后多个四个文件：hello.ko, hello.mod.c, hello.mod.o, hello.o
      hello.mod.c是一个C程序的源文件，查看其内容，似乎仅仅只是定义了两个全局的结构体变量。]]></description><category></category></item><item><title><![CDATA[面对无头绪的Bug，该怎么办？]]></title><link>https://blog.youkuaiyun.com/embedded_man2011/article/details/6988735</link><guid>https://blog.youkuaiyun.com/embedded_man2011/article/details/6988735</guid><author>embedded_man2011</author><pubDate>Fri, 18 Nov 2011 16:12:33 +0800</pubDate><description><![CDATA[软件或者驱动开发过程中，有些bug可以很容易的抓出来，但是有些隐藏的很深，只是在某些条件下才会触发产生，这种bug，真是 ugly pest ！！
简单的Bug，一般来说都是"single process"的，即只处理一个简单的事情，涉及的软件资源【函数】和硬件资源【buf，外设】不多，那么问题就比较容易定位；
复杂的bug，一般来说Process是复杂的，用的资源也比较多，“复杂过程 + 多]]></description><category></category></item><item><title><![CDATA[驱动程序的开发经验：中断与中断]]></title><link>https://blog.youkuaiyun.com/embedded_man2011/article/details/6988558</link><guid>https://blog.youkuaiyun.com/embedded_man2011/article/details/6988558</guid><author>embedded_man2011</author><pubDate>Fri, 18 Nov 2011 15:23:17 +0800</pubDate><description><![CDATA[系统假设：单CPU，无操作系统单片机模式
使用资源：UART作为调试输出，HDMI控制信号中断 （CEC）
其他情况：UART也被main-loop使用
uart打印函数：printf（char）{ sbuf = char； while（！TI）； }
软件设计：     在CEC中断信号处理程序中，加入UART的打印信息，会有什么问题？
问题： 系统经常会挂掉。
原因：  陷入whi]]></description><category></category></item><item><title><![CDATA[linux驱动开发]]></title><link>https://blog.youkuaiyun.com/embedded_man2011/article/details/6968923</link><guid>https://blog.youkuaiyun.com/embedded_man2011/article/details/6968923</guid><author>embedded_man2011</author><pubDate>Mon, 14 Nov 2011 15:25:19 +0800</pubDate><description><![CDATA[最近看Linux的驱动开发，自觉内容不是一般的复杂！需要的知识很多]]></description><category></category></item><item><title><![CDATA[2009-2010年  中国嵌入式开发从业人员调查报告]]></title><link>https://blog.youkuaiyun.com/embedded_man2011/article/details/6167143</link><guid>https://blog.youkuaiyun.com/embedded_man2011/article/details/6167143</guid><author>embedded_man2011</author><pubDate>Thu, 27 Jan 2011 19:02:00 +0800</pubDate><description><![CDATA[<br />调查背景
<br />　　嵌入式（嵌入式培训嵌入式培训机构嵌入式职场嵌入式软件工程师嵌入式硬件工程师
 
）软件是嵌入式系统的核心技术之一。在2008年中国软件业收入的7570亿元中，嵌入式软件就占了14.8%，在软件出口中占了2/3左右;目前中国前
10家最大的软件企业中，5家是嵌入式软件企业。可以说，嵌入式软件对于中国的重要性，相当于离岸外包对于印度的重要性。而随着城市信息化和行业信息化的
持续深入，嵌入式技术已成为信息产业中发展最快、应用最广的计算机技术之一，并被广泛应用于网络通]]></description><category></category></item><item><title><![CDATA[关于Linux内核学习的误区以及相关书籍介绍[zt]]]></title><link>https://blog.youkuaiyun.com/embedded_man2011/article/details/6158985</link><guid>https://blog.youkuaiyun.com/embedded_man2011/article/details/6158985</guid><author>embedded_man2011</author><pubDate>Sat, 22 Jan 2011 20:04:00 +0800</pubDate><description><![CDATA[关于Linux内核学习的误区以及相关书籍介绍写给Linux内核新手-关于Linux内核学习的误区　　先说句正经的：其实我没资格写这篇文章，因为自己也就一两个月以来才开始有所领悟的。因此，这里与其说是关于Linux内核学习的经验，不如说是自己的教训吧，希望不要扔鸡蛋砸我^_^　　　常常有人问：我想学习内核，需要什么基础吗？Linus Torvalds本人是这样回答的：你必须使用过Linux。 这个……还是有点太泛了吧，我想下面几个基础可能还是需要的，尽管不一定必需：
　　1, 关于操作系统理论的最初级的知识]]></description><category></category></item><item><title><![CDATA[ARM MIPS PowerPC比较]]></title><link>https://blog.youkuaiyun.com/embedded_man2011/article/details/6158931</link><guid>https://blog.youkuaiyun.com/embedded_man2011/article/details/6158931</guid><author>embedded_man2011</author><pubDate>Sat, 22 Jan 2011 19:02:00 +0800</pubDate><description><![CDATA[<br />ARM, MIPS, Power PC的比较
            
			
			<br />“ARM面向的低端消费类市场，拼的是功耗；PowerPC面向的是中高端市场，比的是性能，好像还没看到谁的手机是PowerPC的，也没有看到谁家企业级以上的交换机是用ARM做的。如果说ARM跟MIPS
有得比拼倒还现实些。”<br />“ARM跟MIPS
有相同的定位，MIPS
也有很多用于消费电子的处理器。”<br />“MIPS
的主要立足点是性能，而ARM好象更多是偏向于低功耗。”]]></description><category></category></item><item><title><![CDATA[宏函数-----do while(0)的妙用]]></title><link>https://blog.youkuaiyun.com/embedded_man2011/article/details/6155591</link><guid>https://blog.youkuaiyun.com/embedded_man2011/article/details/6155591</guid><author>embedded_man2011</author><pubDate>Thu, 20 Jan 2011 18:10:00 +0800</pubDate><description><![CDATA[<br />下面2个宏函数<br />A：<br />    #define ASSERT(val) {if(!val) return -1;}<br />B:<br />    #define ASSERT(val) do{if(!val) return -1;}while(0)<br /> <br />两者有何区别，难道do while在此简直是多此一举？<br />其实不是的，看下面的应用<br /> <br />   if(cond)<br />       ASSERT(val);<br />  ]]></description><category></category></item><item><title><![CDATA[嵌入式工程师的知识结构]]></title><link>https://blog.youkuaiyun.com/embedded_man2011/article/details/6153661</link><guid>https://blog.youkuaiyun.com/embedded_man2011/article/details/6153661</guid><author>embedded_man2011</author><pubDate>Wed, 19 Jan 2011 21:25:00 +0800</pubDate><description><![CDATA[     嵌入式开发，已经是一个风生水起的行业，很多的人加入到这个行业，不论是学习计算机的还是学习电子工程学的，不论是专科生还是研究生，为什么？因为行业容量大，对人才的需求量大，就业和跳槽的机会多，工资待遇从K级别到10K~几十K不等。     嵌入式知识领域非常的广泛，从CPU的结构、指令集到基于嵌入式OS的Application的开发，都是嵌入式工程的一部分，从汇编语言到C、C++、C#、Java，编程语言的要求也很宽泛。早期的嵌入式就是单片机，比如C51及16位单片机，这上面的开发相对比较简单，多是单]]></description><category></category></item></channel></rss>