<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feeds.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feeds.feedsky.com/csdn.net/I2Cbus" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feeds.feedsky.com/csdn.net/I2Cbus" type="application/rss+xml"></fs:self_link><lastBuildDate>Mon, 15 Sep 2008 23:25:00 GMT</lastBuildDate><title>I2Cbus的专栏</title><link>http://blog.csdn.net/I2Cbus/</link><item><title>学习汇编的重要意义！！</title><link>http://blog.csdn.net/I2Cbus/archive/2008/09/15/2934352.aspx</link><wfw:comment>http://blog.csdn.net/I2Cbus/comments/2934352.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/I2Cbus/comments/commentRss/2934352.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2934352</trackback:ping><description>这位老兄的感慨之言正合我意，只不过他将他的感慨化成了文字，而我却在时间的流逝中渐渐的将这些曾经的激情忘却。读书就是为了考试，考试则是为了升官发财这种思想已经在中国存在了有上千年，大概是从有考试之时就己存在。由只知道读书是为了考试的老师教出来的学生自然是只懂得考试的，而这些学生以后可能还会当老师，到现在这还是一个死循环继续循环下去。自然己有不少有识之士已经认识到了这种现象，比如文中这位老兄，但是有谁知道到底什么时候才能跳出这个死循环?    以我之所见，学习任何一样技术，都是一个由表及里，由浅入深的过程。汇编作为所有语言中最本质，最纯粹的语言，对于底层软件的编写者来说，汇编的重要性自不用说，但是对于用高级语言来编程的人来说，汇编又何尝不是能让人深入了解高级语言的一种途径呢？想想看，在高级语言的华丽的外衣下，通过汇编这个显微镜，你能看到血液的流动，细胞的生老病死，这又何尝不是另外一种编程的境界。    总之一句话，学要深入学，用要简单用，这是一个编程人员的基本素养。汇编不会过时，也永远不会过时，它只会跟着时代前进。&lt;img src =&quot;http://blog.csdn.net/I2Cbus/aggbug/2934352.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Tue, 16 Sep 2008 07:25:00 +0800</pubDate><author>石荣富</author><comments>http://blog.csdn.net/I2Cbus/archive/2008/09/15/2934352.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/I2Cbus/archive/2008/09/15/2934352.aspx</guid><dc:creator>石荣富</dc:creator><fs:srclink>http://blog.csdn.net/I2Cbus/archive/2008/09/15/2934352.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/I2Cbus/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/I2Cbus/~7362082/207371906/5471588</fs:itemid></item><item><title>发一个51单片机的模拟串口代码</title><link>http://blog.csdn.net/I2Cbus/archive/2008/09/08/2901799.aspx</link><wfw:comment>http://blog.csdn.net/I2Cbus/comments/2901799.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/I2Cbus/comments/commentRss/2901799.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2901799</trackback:ping><description>由于8位单片机一般只有一个串行接口，往往不够用，只能自己写一个模拟串口的程序，下面这个程序是自己早先写的，放上来，对别人也许有点用，注意接收端同时接到P3.2(INT0)&lt;img src =&quot;http://blog.csdn.net/I2Cbus/aggbug/2901799.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Tue, 09 Sep 2008 07:23:00 +0800</pubDate><author>石荣富</author><comments>http://blog.csdn.net/I2Cbus/archive/2008/09/08/2901799.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/I2Cbus/archive/2008/09/08/2901799.aspx</guid><dc:creator>石荣富</dc:creator><fs:srclink>http://blog.csdn.net/I2Cbus/archive/2008/09/08/2901799.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/I2Cbus/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/I2Cbus/~7362082/207371911/5471588</fs:itemid></item><item><title>推荐一篇好文，林锐写的《软件工程思想》</title><link>http://blog.csdn.net/I2Cbus/archive/2008/09/07/2894096.aspx</link><wfw:comment>http://blog.csdn.net/I2Cbus/comments/2894096.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/I2Cbus/comments/commentRss/2894096.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2894096</trackback:ping><description>林锐写的软件工程思想，通俗易懂，妙趣横生。其中的附文《大学十年》更是让人感慨万千 &lt;img src =&quot;http://blog.csdn.net/I2Cbus/aggbug/2894096.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Sun, 07 Sep 2008 20:22:00 +0800</pubDate><author>石荣富</author><comments>http://blog.csdn.net/I2Cbus/archive/2008/09/07/2894096.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/I2Cbus/archive/2008/09/07/2894096.aspx</guid><dc:creator>石荣富</dc:creator><fs:srclink>http://blog.csdn.net/I2Cbus/archive/2008/09/07/2894096.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/I2Cbus/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/I2Cbus/~7362082/207371917/5471588</fs:itemid></item><item><title>从汇编看for循环</title><link>http://blog.csdn.net/I2Cbus/archive/2008/09/05/2887154.aspx</link><wfw:comment>http://blog.csdn.net/I2Cbus/comments/2887154.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/I2Cbus/comments/commentRss/2887154.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2887154</trackback:ping><description>从汇编看for循环&lt;img src =&quot;http://blog.csdn.net/I2Cbus/aggbug/2887154.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Sat, 06 Sep 2008 01:53:00 +0800</pubDate><author>石荣富</author><comments>http://blog.csdn.net/I2Cbus/archive/2008/09/05/2887154.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/I2Cbus/archive/2008/09/05/2887154.aspx</guid><dc:creator>石荣富</dc:creator><fs:srclink>http://blog.csdn.net/I2Cbus/archive/2008/09/05/2887154.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/I2Cbus/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/I2Cbus/~7362082/207371920/5471588</fs:itemid></item><item><title>C语言switch语句的汇编语言实现</title><link>http://blog.csdn.net/I2Cbus/archive/2008/09/02/2868488.aspx</link><wfw:comment>http://blog.csdn.net/I2Cbus/comments/2868488.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/I2Cbus/comments/commentRss/2868488.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2868488</trackback:ping><description>一个好的编译器一定是一群顶尖软件高手们集体长时间创作的作品了,所以研究研究编译器的编译过程就是在向这些高手们学习。说到底，编译器也是一个很好的老师了，它可以为我们揭开高级语言实现的奥秘，为那些永不满足于表面现象的程序员深入掌握一门语言提供一个很好的途径。&lt;img src =&quot;http://blog.csdn.net/I2Cbus/aggbug/2868488.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Wed, 03 Sep 2008 03:10:00 +0800</pubDate><author>石荣富</author><comments>http://blog.csdn.net/I2Cbus/archive/2008/09/02/2868488.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/I2Cbus/archive/2008/09/02/2868488.aspx</guid><dc:creator>石荣富</dc:creator><fs:srclink>http://blog.csdn.net/I2Cbus/archive/2008/09/02/2868488.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/I2Cbus/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/I2Cbus/~7362082/207371923/5471588</fs:itemid></item><item><title>从汇编的角度来理解数组与指针的区别</title><link>http://blog.csdn.net/I2Cbus/archive/2008/09/01/2862818.aspx</link><wfw:comment>http://blog.csdn.net/I2Cbus/comments/2862818.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/I2Cbus/comments/commentRss/2862818.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2862818</trackback:ping><description>有的时候,一种东西用习惯了也就成了理所当然的事,很少再去仔细的深究,尽管你有时候并不是真的理解它。&lt;img src =&quot;http://blog.csdn.net/I2Cbus/aggbug/2862818.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Tue, 02 Sep 2008 03:37:00 +0800</pubDate><author>石荣富</author><comments>http://blog.csdn.net/I2Cbus/archive/2008/09/01/2862818.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/I2Cbus/archive/2008/09/01/2862818.aspx</guid><dc:creator>石荣富</dc:creator><fs:srclink>http://blog.csdn.net/I2Cbus/archive/2008/09/01/2862818.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/I2Cbus/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/I2Cbus/~7362082/207371926/5471588</fs:itemid></item><item><title>一个hex文件与bin文件相互转换的python代码</title><link>http://blog.csdn.net/I2Cbus/archive/2008/08/30/2853618.aspx</link><wfw:comment>http://blog.csdn.net/I2Cbus/comments/2853618.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/I2Cbus/comments/commentRss/2853618.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2853618</trackback:ping><description>这还是因为想移植uClinux到proteus下那个uClinux的例子而写的,可惜折腾来折腾去还是没折腾出来，看来是自己对ARM还是不够了解，继续努力了。网上流传的一个hex和bin文件转换的程序有64K代码的限制,因而自己写了个,就当是练练手了，python是个好东西哈&lt;img src =&quot;http://blog.csdn.net/I2Cbus/aggbug/2853618.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Sun, 31 Aug 2008 04:34:00 +0800</pubDate><author>石荣富</author><comments>http://blog.csdn.net/I2Cbus/archive/2008/08/30/2853618.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/I2Cbus/archive/2008/08/30/2853618.aspx</guid><dc:creator>石荣富</dc:creator><fs:srclink>http://blog.csdn.net/I2Cbus/archive/2008/08/30/2853618.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/I2Cbus/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/I2Cbus/~7362082/207371930/5471588</fs:itemid></item><item><title>嵌入式linux启动信息完全注释</title><link>http://blog.csdn.net/I2Cbus/archive/2008/08/29/2849198.aspx</link><wfw:comment>http://blog.csdn.net/I2Cbus/comments/2849198.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/I2Cbus/comments/commentRss/2849198.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2849198</trackback:ping><description>我们在这里讨论的是对嵌入式linux系统的启动过程的输出信息的注释，通过我们的讨论，大家会对嵌入式linux启动过程中出现的、以前感觉熟悉的、但却又似是而非的东西有一个确切的了解，并且能了解到这些输出信息的来龙去脉。

嵌入式linux的启动信息是一个很值得我们去好好研究的东西，它能将一幅缩影图呈现在我们面前，来指导我们更加深入地理解linux内核。&lt;img src =&quot;http://blog.csdn.net/I2Cbus/aggbug/2849198.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Sat, 30 Aug 2008 00:12:00 +0800</pubDate><author>石荣富</author><comments>http://blog.csdn.net/I2Cbus/archive/2008/08/29/2849198.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/I2Cbus/archive/2008/08/29/2849198.aspx</guid><dc:creator>石荣富</dc:creator><fs:srclink>http://blog.csdn.net/I2Cbus/archive/2008/08/29/2849198.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/I2Cbus/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/I2Cbus/~7362082/207371986/5471588</fs:itemid></item><item><title>如何编写Linux设备驱动程序</title><link>http://blog.csdn.net/I2Cbus/archive/2008/08/29/2848934.aspx</link><wfw:comment>http://blog.csdn.net/I2Cbus/comments/2848934.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/I2Cbus/comments/commentRss/2848934.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2848934</trackback:ping><description>Linux是Unix操作系统的一种变种，在Linux下编写驱动程序的原理和思想完全类似于其他的Unix系统，但它dos或window环境下的驱动程序有很大的区别。在Linux环境下设计驱动程序，思想简洁，操作方便，功能也很强大，但是支持函数少，只能依赖kernel中的函数，有些常用的操作要自己来编写，而且调试也不方便。本人这几周来为实验室自行研制的一块多媒体卡编制了驱动程序，获得了一些经验，愿与Linux fans共享，有不当之处，请予指正。 以下的一些文字主要来源于khg，johnsonm的Write linux device driver，Brennan's Guide to Inline Assembly，The Linux A-Z，还有清华BBS上的有关device driver的一些资料. 这些资料有的已经过时，有的还有一些错误，我依据自己的试验结果进行了修正. &lt;img src =&quot;http://blog.csdn.net/I2Cbus/aggbug/2848934.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Fri, 29 Aug 2008 23:28:00 +0800</pubDate><author>石荣富</author><comments>http://blog.csdn.net/I2Cbus/archive/2008/08/29/2848934.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/I2Cbus/archive/2008/08/29/2848934.aspx</guid><dc:creator>石荣富</dc:creator><fs:srclink>http://blog.csdn.net/I2Cbus/archive/2008/08/29/2848934.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/I2Cbus/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/I2Cbus/~7362082/207372007/5471588</fs:itemid></item><item><title>linux 驱动</title><link>http://blog.csdn.net/I2Cbus/archive/2008/08/29/2848925.aspx</link><wfw:comment>http://blog.csdn.net/I2Cbus/comments/2848925.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/I2Cbus/comments/commentRss/2848925.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2848925</trackback:ping><description>Linux系统支持三种类型的硬件设备：字符设备、块设备和网络设备。字符设备是直接读取的，不必使用缓冲区。例如，系统的串行口/dev/cua0和 /dev/cua1。块设备每次只能读取一定大小的块的倍数，通常一块是512或者1024字节。块设备通过缓冲区读写，并且可以随机地读写。块设备可以通过它们的设备文件存取，但通常是通过文件系统存取。只有块设备支持挂接的文件系统。网络设备是通过BSD套接字界面存取的。

    Linux系统支持多种设备，这些设备的驱动程序之间有一些共同的特点：
    * 内核代码：设备驱动程序是系统内核的一部分，所以如果驱动程序出现错误的话，将可能严重地破坏整个系统。
    * 内核接口：设备驱动程序必须为系统内核或者它们的子系统提供一个标准的接口。例如，一个终端驱动程序必须为Linux内核提供一个文件I/O接口；一个 SCSI设备驱动程序应该为SCSI子系统提供一个SCSI设备接口，同时SCSI子系统也应为系统内核提供文件I/O和缓冲区。
    * 内核机制和服务：设备驱动程序利用一些标准的内核服务，例如内存分配等。
    * 可装入&lt;img src =&quot;http://blog.csdn.net/I2Cbus/aggbug/2848925.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Fri, 29 Aug 2008 23:25:00 +0800</pubDate><author>石荣富</author><comments>http://blog.csdn.net/I2Cbus/archive/2008/08/29/2848925.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/I2Cbus/archive/2008/08/29/2848925.aspx</guid><dc:creator>石荣富</dc:creator><fs:srclink>http://blog.csdn.net/I2Cbus/archive/2008/08/29/2848925.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/I2Cbus/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/I2Cbus/~7362082/207372018/5471588</fs:itemid></item></channel></rss>