<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>葡萄树 On The Road --- 我只是一个会操作计算机的民工 &#187; 嵌入式</title>
	<atom:link href="http://www.am82.com/houzan/archives/tag/%e5%b5%8c%e5%85%a5%e5%bc%8f/feed" rel="self" type="application/rss+xml" />
	<link>http://www.am82.com/houzan</link>
	<description>我的时光，停在了你的角落...~</description>
	<lastBuildDate>Sun, 01 Aug 2010 05:52:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>16道嵌入式Ｃ语言面试题</title>
		<link>http://www.am82.com/houzan/archives/4091</link>
		<comments>http://www.am82.com/houzan/archives/4091#comments</comments>
		<pubDate>Thu, 22 Apr 2010 15:29:46 +0000</pubDate>
		<dc:creator>假装纯情</dc:creator>
				<category><![CDATA[嵌入开发]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[嵌入式]]></category>
		<category><![CDATA[面试]]></category>

		<guid isPermaLink="false">http://www.am82.com/houzan/?p=4091</guid>
		<description><![CDATA[1. 用预处理指令#define 声明一个常数，用以表明1年中有多少秒（忽略闰年问题）

#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL
我在这想看到几件事情：
1). #define 语法的基本知识（例如：不能以分号结束，括号的使用，等等）
2). 懂得预处理器将为你计算常数表达式的值，因此，直接写出你是如何计算一年中有多少秒而不是计算出实际的值，是更清晰而没有代价的。
3). 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。
4). 如果你在你的表达式中用到UL（表示无符号长整型），那么你有了一个好的起点。记住，第一印象很重要。


2. 写一个“标准”宏MIN，这个......]]></description>
		<wfw:commentRss>http://www.am82.com/houzan/archives/4091/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>从零构建一个400K的嵌入式Linux根文件系统UCFS</title>
		<link>http://www.am82.com/houzan/archives/3970</link>
		<comments>http://www.am82.com/houzan/archives/3970#comments</comments>
		<pubDate>Tue, 30 Mar 2010 02:29:28 +0000</pubDate>
		<dc:creator>假装纯情</dc:creator>
				<category><![CDATA[嵌入开发]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[UCFS]]></category>
		<category><![CDATA[嵌入式]]></category>

		<guid isPermaLink="false">http://www.am82.com/houzan/archives/3970</guid>
		<description><![CDATA[所谓根文件系统，即可以作启动盘的文件系统。根文件系统（以下在不引起歧义的地方简称文件系统）主要包括etc/、bin/、sbin/、lib/、proc/等五个根目录。创建根文件系统使用了busybox工具，同时，为了保持交叉编译器和文件系统库的一致性，以buildroot、uClibc和gcc等工具构建了一个交叉编译器。文件系统使用buildroot工具编译的uClibc库。使用该方法创建的文件系统压缩后可以达到400K左右。
1.1 利用buildroot制作交叉编译器
1.1.1 buildroot简介
作为嵌入式系统，最为紧缺的资源就是存储空间。精简嵌入式系统所使用的库是减小存储空间最常用的方法之一。GNU的Glibc是一个非常宠大而完整的库，至少........]]></description>
		<wfw:commentRss>http://www.am82.com/houzan/archives/3970/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>嵌入式Linux启动脚本整理</title>
		<link>http://www.am82.com/houzan/archives/3925</link>
		<comments>http://www.am82.com/houzan/archives/3925#comments</comments>
		<pubDate>Tue, 16 Mar 2010 13:31:20 +0000</pubDate>
		<dc:creator>假装纯情</dc:creator>
				<category><![CDATA[嵌入开发]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[嵌入式]]></category>

		<guid isPermaLink="false">http://www.am82.com/houzan/archives/3925</guid>
		<description><![CDATA[这几周一直在研究目标机上Linux系统启动过程，先将涉及到的脚本内容及启动具体操作整理一下。

系统启动参数设定启动脚本为/linuxrc，内容如下：

#!/bin/bash

echo "mount /etc as ramfs"

#/bin/mount -n -t ramfs ramfs /etc

#/bin/cp.......]]></description>
		<wfw:commentRss>http://www.am82.com/houzan/archives/3925/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>常见的几种存储器结构</title>
		<link>http://www.am82.com/houzan/archives/3922</link>
		<comments>http://www.am82.com/houzan/archives/3922#comments</comments>
		<pubDate>Tue, 16 Mar 2010 03:34:08 +0000</pubDate>
		<dc:creator>假装纯情</dc:creator>
				<category><![CDATA[嵌入开发]]></category>
		<category><![CDATA[存储器]]></category>
		<category><![CDATA[嵌入式]]></category>

		<guid isPermaLink="false">http://www.am82.com/houzan/?p=3922</guid>
		<description><![CDATA[ 1.      平面单一空间存储(Flat Single Space)：

平面单一空间存储结构是最简单的结构。每个存储单元都对应一个地址，每个地址都标记一个唯一的存储单元。

 2．分段存储(Segmented)

分段存储地址分配的思想也很简单。地址分成2部分：段地址和偏移量。大多数时候只需要使用偏移量，高位附加地址存储在一个或多个特定的段地址寄存器中；若要表示更大范围内的存储地址，则需要在段地址寄存器中重新写入一个值。

使用分段存储，需要引入near和far的........]]></description>
		<wfw:commentRss>http://www.am82.com/houzan/archives/3922/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C语言高效编程的几招</title>
		<link>http://www.am82.com/houzan/archives/3914</link>
		<comments>http://www.am82.com/houzan/archives/3914#comments</comments>
		<pubDate>Sat, 13 Mar 2010 03:15:48 +0000</pubDate>
		<dc:creator>假装纯情</dc:creator>
				<category><![CDATA[嵌入开发]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[嵌入式]]></category>

		<guid isPermaLink="false">http://www.am82.com/houzan/?p=3914</guid>
		<description><![CDATA[编写高效简洁的C语言代码，是许多软件工程师追求的目标。本文就工作中的一些体会和经
验做相关的阐述，不对的地方请各位指教。

第1招：以空间换时间

计算机程序中最大的矛盾是空间和时间的矛盾，那么，从这个角度出发逆向思维来考虑程
序的效率问题，我们就有了解决问题的第1招--以空间换时间。

例如：字符串的........]]></description>
		<wfw:commentRss>http://www.am82.com/houzan/archives/3914/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>嵌入式linux启动信息完全注释(二)</title>
		<link>http://www.am82.com/houzan/archives/3792</link>
		<comments>http://www.am82.com/houzan/archives/3792#comments</comments>
		<pubDate>Mon, 22 Feb 2010 00:22:02 +0000</pubDate>
		<dc:creator>假装纯情</dc:creator>
				<category><![CDATA[嵌入开发]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[嵌入式]]></category>

		<guid isPermaLink="false">http://www.am82.com/houzan/?p=3792</guid>
		<description><![CDATA[第二部分 : linux内核初始化以及启动

第一节：start_kernel

Linux的源代码可以从www.kernel.org得到，或者你可以查看linux代码交叉引用网站：http://lxr.linux.no/ 进行在线的代码查看，这是一个很好的工具网站。

在start_kernel中将调用到大量的init函数，来完成内核的各种初始化。如........]]></description>
		<wfw:commentRss>http://www.am82.com/houzan/archives/3792/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>嵌入式linux启动信息完全注释</title>
		<link>http://www.am82.com/houzan/archives/3790</link>
		<comments>http://www.am82.com/houzan/archives/3790#comments</comments>
		<pubDate>Mon, 22 Feb 2010 00:18:20 +0000</pubDate>
		<dc:creator>假装纯情</dc:creator>
				<category><![CDATA[嵌入开发]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[嵌入式]]></category>

		<guid isPermaLink="false">http://www.am82.com/houzan/?p=3790</guid>
		<description><![CDATA[在某论坛上看到一篇帖子，上面贴着嵌入式linux开发板启动时的有关信息，然后大家在帖子里讨论着这个启动过程中出现的问题，随机举例如下.......]]></description>
		<wfw:commentRss>http://www.am82.com/houzan/archives/3790/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用embedded-lfs构建嵌入式Linux系统</title>
		<link>http://www.am82.com/houzan/archives/3694</link>
		<comments>http://www.am82.com/houzan/archives/3694#comments</comments>
		<pubDate>Tue, 02 Feb 2010 02:50:24 +0000</pubDate>
		<dc:creator>假装纯情</dc:creator>
				<category><![CDATA[嵌入开发]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[嵌入式]]></category>

		<guid isPermaLink="false">http://www.am82.com/houzan/?p=3694</guid>
		<description><![CDATA[embedded-lfs代表embedded linux from scratch，也就是从头构建一个嵌入式Linux系统，不过它与标准LFS没有太大关系，只是借用了LFS这个名称而已。要说构建嵌入式Linux系统，openembedded相关项目应该是最有名的，不过它做得太复杂，如果不出问题，用起来很方便，但是一旦出点问题，就不知怎么去搞了。玩了一次，总是出问题，让我很沮丧，后来在华清远见上课时，自己整了一个embedded-lfs。embedded-lfs非常简单，当然功能.......]]></description>
		<wfw:commentRss>http://www.am82.com/houzan/archives/3694/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>成功将2440开发板打造成下载机</title>
		<link>http://www.am82.com/houzan/archives/3678</link>
		<comments>http://www.am82.com/houzan/archives/3678#comments</comments>
		<pubDate>Wed, 27 Jan 2010 07:13:12 +0000</pubDate>
		<dc:creator>假装纯情</dc:creator>
				<category><![CDATA[嵌入开发]]></category>
		<category><![CDATA[Micro2440]]></category>
		<category><![CDATA[mini2440]]></category>
		<category><![CDATA[友善之臂]]></category>
		<category><![CDATA[嵌入式]]></category>
		<category><![CDATA[开发板]]></category>

		<guid isPermaLink="false">http://www.am82.com/houzan/?p=3678</guid>
		<description><![CDATA[（这个东西不错，晚上回去尝试一下，对于一个下载狂人这个东西很符合我的胃口啊，而且板子经常闲着，这样可以把它充分利用了～）
在周未终于成功将我的友善之臂2440开发板打造成下载机，支持多种协议，完美实现下载，好了，马上开始动手吧，这个工程不大！
我的平台和环境：
开发板：友善之臂Micro2440
操作系统：Debian testing
路由器：TP-LINK TL-WR340G+ 54M无线宽带路由器
移动设备:SanDisk U盘 Cruzer Micro 4G
思路：
很简单，友善之臂2440开发板.........]]></description>
		<wfw:commentRss>http://www.am82.com/houzan/archives/3678/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C语言在arm应用中的具体操作</title>
		<link>http://www.am82.com/houzan/archives/3670</link>
		<comments>http://www.am82.com/houzan/archives/3670#comments</comments>
		<pubDate>Mon, 25 Jan 2010 09:14:34 +0000</pubDate>
		<dc:creator>假装纯情</dc:creator>
				<category><![CDATA[嵌入开发]]></category>
		<category><![CDATA[ARM]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[嵌入式]]></category>

		<guid isPermaLink="false">http://www.am82.com/houzan/?p=3670</guid>
		<description><![CDATA[0x20其实与（1<<5）是一个数，因为  1<<5表示1向左移5位，即为100000，这个数代表16进制的20.

所以在对arm芯片的引脚赋值或者输入输出操作时，一般用这种方式

GPGDAT &#038;= ~(1<<5);

GPBCON = (1<<(5*2));  //其实就是指定.......]]></description>
		<wfw:commentRss>http://www.am82.com/houzan/archives/3670/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>嵌入式经典面试题</title>
		<link>http://www.am82.com/houzan/archives/3662</link>
		<comments>http://www.am82.com/houzan/archives/3662#comments</comments>
		<pubDate>Fri, 22 Jan 2010 13:55:17 +0000</pubDate>
		<dc:creator>假装纯情</dc:creator>
				<category><![CDATA[嵌入开发]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[嵌入式]]></category>
		<category><![CDATA[面试]]></category>

		<guid isPermaLink="false">http://www.am82.com/houzan/?p=3662</guid>
		<description><![CDATA[C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年，我既参加也组织了许多这种测试，在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息，此外，撇开面试的压力不谈，这种测试也是相当有趣的。
从被面试者的角度来讲，你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗？这是个愚蠢的问题吗？如要你答出某个字符的ASCII值。这些问题着重考察你的系统调用和内存分配策略方面的能力吗？这标志着出题者也许花时间在微机上而不是在嵌入式系统上。如果上述任何问题的答案是"是"的话，那么我知道我得认真考虑我是否应该去做这份工作。
从面试者的角度来讲，一个测试也许能从多方面揭示应试者的素质：最基本的，你能了解应试者C语言的水平。不管怎么样，看一下这人如何回答他不会的问题也........]]></description>
		<wfw:commentRss>http://www.am82.com/houzan/archives/3662/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ARM体系的各种异常的分析</title>
		<link>http://www.am82.com/houzan/archives/3654</link>
		<comments>http://www.am82.com/houzan/archives/3654#comments</comments>
		<pubDate>Wed, 20 Jan 2010 03:51:12 +0000</pubDate>
		<dc:creator>假装纯情</dc:creator>
				<category><![CDATA[嵌入开发]]></category>
		<category><![CDATA[ARM]]></category>
		<category><![CDATA[嵌入式]]></category>

		<guid isPermaLink="false">http://www.am82.com/houzan/?p=3654</guid>
		<description><![CDATA[1.复位异常

（1）当内核的nRESET信号被拉低时，ARM处理器放弃正在执行的指令，当nRESET信号再次变高时，ARM处理器进行复位操作；

（2）系统复位后，进入管理模式对系统进行初始化，复位后，只有PC（0x00000000）和CPSR（nzcvqIFt_SVC）的值是固定的，另外寄存器的值是随机的。

2.IRQ异常 

（1）当CPSR中的相应的中.......]]></description>
		<wfw:commentRss>http://www.am82.com/houzan/archives/3654/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
