博客首页
注册
建议与交流
排行榜
加入友情链接
推荐
投诉
搜索:
帮助
jiuzhuaxiong
创造属于你的天空,有了问题可以跟大家一起讨论! 在LINUX和VXWORKS嵌入式开发中学到了一些经验跟大家分享!
jiuzhuaxiong.cublog.cn
管理博客
发表文章
留言
收藏夹
· 下载搜索
· 电子博客好友
博客圈
音乐
· 家乡音乐
相册
· 开发照片
导入文章
文章
· C语言技巧讨论
· 前辈经验
· 嵌入式LINUX开发
}
· AT9200 LINUX2.6.10内核移植
· S2C2410LINUX2.6.20内核移植
· U-BOOT移植
· AT91RM9200开发笔记
· LINUX交叉编译器的制作
· SHELL命令学习
· U-BOOT POWERPC移植
· UCLINUX开发笔记
· JFFS2文件系统制作
· 在嵌入式Linux系统中挂载 jffs2 根文件系统
· RAMDISK系统的制作
· LINUX系统启动
}
· LINUX驱动开发笔记
· LINUX内核移植
· ARM嵌入式开发
· MAKEFILE制作
· AVR在LINUX平台下开发
· 嵌入式VXWORKS开发
}
· VXWORKS BSP开发
· VXWORKS在AT91RM9200上的移植
· VXWORKS在MPC860上的移植
· VXWORKS启动过程
· VXWORKS多任务机制
· TCP IP 网络协议
首页
关于作者
姓名:HugBear2008 QQ:280051265 年龄:25 位置:中国.广州 E-MAIL:jiuzhuaxiong@163.com
||
<<
>>
||
我的分类
最新文章
·
Goahead在ucLinux下的移植..
·
嵌入式linux启动信息完全..
·
嵌入式linux启动信息完全..
·
嵌入式linux启动信息完全..
·
嵌入式linux启动信息完全..
最新留言
·
本站网友
我看了你的那个输入输出内..
最新评论
·
I can not understand~~~
·
大哥,转载文章注明出处啊..
·
小弟也是刚刚开始看mtd,具..
·
问下楼主关于一点mtd的问题..
·
支持你!鼓励你!加油!继..
最新收藏
·
小邓的bolg
·
飞翔的博客
·
牛人的嵌入式博客
·
上海牛人
·
9200
统计信息
·
总访问量:34498
·
文章个数:150
·
评论条数:6
·
留言条数:1
·
网友推荐:
Goahead在ucLinux下的移植--强烈推荐
Goahead是一款适合嵌入式的web Server, 支持asp,cgi,embedded JavaScrip等脚本语言<BR>基本上在windows下或者在redhat9下面只要make一下就能运行了.<BR>在uclinux下面要稍微改动一下代码.<BR>源码改动的地方基本上是<BR>1.把fork改为vfork,<BR>2.把gethostbyname函数替换掉.<BR> 改动Goahead自带的makefile使其采用arm-elf-gcc编译并转换应用程序elf格式为flt<BR>就差不多了.<BR> 下面是我的移植过程中记录的详细步骤:<BR> 首先到 http://www.Goahead.com/webserver/webserver.htm 下Goahead源码包,<BR>看一下web目录下的usr/doc等说明文件。<BR> 修改Goahead/LINUX/makefile文件<BR>==================================================================<BR>1. makefile 中 加了一个 宏:<BR><BR><BR> CFLAGS = -DWEBS -DUEMF -DOS="LINUX" -DLINUX $(UMSW) $(DASW) $(SSLSW)<BR>$(IFMODSW) -D__NO_PACK<BR> -D__NO_PACK 是我自己加的。<BR> __NO_PACK 屏蔽Goahead编译是产生的#program 警告,不加这个宏也没关系。<BR> 2. 修改Goahead/LINUX/Makefile<BR> LDFLAGS += $(SSLLIB) $(IFMODLIB) -Wl,-elf2flt<BR> -Wl,-elf2flt 与“+” 是自己加的。<BR> C……
查看全文
发表于:2008-06-10 ┆
阅读(137)
┆
评论(0)
嵌入式linux启动信息完全注释
<DIV> <TABLE style="BORDER-COLLAPSE: collapse" borderColor=#a5bd6b cellSpacing=1 cellPadding=0 width="100%" border=1> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD> <DIV id=art style="MARGIN: 15px"> <DIV> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle height=25><FONT color=#ff9900 size=4><B>嵌入式linux启动信息完全注释(自学存档用)</B></FONT></B></FONT><BR></TD></TR> <TR> <TD bgColor=#d2dee2 height=1></TD></TR> <TR> <TD bgColor=#ffffff height=1></TD></TR> <TR> <TD align=middle> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD width="100%"> <P width=100%><FONT size=3><B>嵌入式linux启动信息完全注释</B><BR>from:http://www.embedlin……
查看全文
发表于:2008-06-03 ┆
阅读(92)
┆
评论(0)
嵌入式linux启动信息完全注释
<DIV> <TABLE style="BORDER-COLLAPSE: collapse" borderColor=#a5bd6b cellSpacing=1 cellPadding=0 width="100%" border=1> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD> <DIV id=art style="MARGIN: 15px"> <DIV> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle height=25><FONT color=#ff9900 size=4><B>嵌入式linux启动信息完全注释(自学存档用)</B></FONT></B></FONT><BR></TD></TR> <TR> <TD bgColor=#d2dee2 height=1></TD></TR> <TR> <TD bgColor=#ffffff height=1></TD></TR> <TR> <TD align=middle> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD width="100%"> <P width=100%><FONT size=3><B>嵌入式linux启动信息完全注释</B><BR>from:http://www.embedlinux.cn/ShowPost.asp?ThreadID=377<BR><BR></P></FONT> <P width=100%><B><FONT size=3>摘要</FONT></B></P> <P width=100%><FONT size=3>我们在这里讨论的是对嵌入式linux系统的启动过程的输出信息的注释,通过我们的讨论,大家会对嵌入式linux启动过程中出现的、以前感觉熟悉的、但却又似是而非的东西有一个确切的了解,并且能了解到这些输出信息的来龙去脉。</FONT></P> <P width=100%><FONT size=3>嵌入式linux的启动信息是一个很值得我们去好好研究的东西,它能将一幅缩影图呈现在我们面前,来指导我们更加深入地理解linux内核。</FONT></P> <P width=100%><FONT size=3></FONT> </P> <P width=100%><FONT size=3><B>关键字</B>:linux,嵌入式,启动,bootloader</FONT></P> <P width=100%><B><FONT size=3>正文</FONT></B></P> <P width=100%><FONT size=3>作为一名嵌入系统开发者,你一定遇到过下面的情景:</FONT></P> <P width=100%><FONT size=3>在某论坛上看到一篇帖子,上面贴着嵌入式linux开发板启动时的有关信息,然后大家在帖子里讨论着这个启动过程中出现的问题,随机举例如下:</FONT></P> <P width=100%> <TABLE cellSpacing=0 cellPadding=0 border=1> <TBODY> <TR> <TD vAlign=top width=657> <P><FONT size=3>Linux version 2.4.20-uc0 (root@Local) (gcc version 2.95.3 <BR>20010315 (release)(ColdFire patches - 20010318 from http://f <BR>(uClinux XIP and shared lib patches from http://www.snapgear.com/)) #20 三 6月 1 <BR>8 00:58:31 CST 2003 <BR>Processor: Samsung S3C4510B revision 6 <BR>Architecture: SNDS100 <BR>On node 0 totalpages: 4096 <BR>zone(0): 0 pages. <BR>zone(1): 4096 pages. <BR>zone(2): 0 pages. <BR>Kernel command line: root=/dev/rom0 <BR>Calibrating delay loop... 49.76 BogoMIPS <BR>Memory: 16MB = 16MB total <BR>Memory: 14348KB available (1615K code, 156K data, 40K init) <BR>Dentry cache hash table entries: 2048 (order: 2, 16384 bytes) <BR>Inode cache hash table entries: 1024 (order: 1, <BR>Mount-cache hash table entries: 512 (order: 0, 4096 bytes) <BR>Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes) <BR>Page-cache hash table entries: 4096 (order: 2, 16384 bytes) <BR>POSIX conformance testing by UNIFIX <BR>Linux NET4.0 for Linux 2.4 <BR>Based upon Swansea University Computer Society NET3.039 <BR>Initializing RT netlink socket <BR>Starting kswapd <BR>Samsung S3C4510 Serial driver version 0.9 (2001-12-27) with no serial options en <BR>abled <BR>ttyS00 at 0x3ffd000 (irq = 5) is a S3C4510B <BR>ttyS01 at 0x3ffe000 (irq = 7) is a S3C451 <BR>Blkmem copyright 1998,1999 D. Jeff Dionne <BR>Blkmem copyright 1998 Kenneth Albanowski <BR>Blkmem 1 disk images: <BR>0: BE558-1A5D57 [VIRTUAL BE558-1A5D57] (RO) <BR>RAMDISK driver initialized: 16 RAM disks of 1024K size 1024 blocksize <BR>Samsung S3C4510 Ethernet driver version 0.1 (2002-02-20) <mac@os.nctu.edu.tw> <BR>eth0: 00:40:95:36:35:34 <BR>NET4: Linux TCP/IP 1.0 for NET4.0 <BR>IP Protocols: ICMP, UDP, TCP <BR>IP: routing cache hash table of 512 buckets, 4Kbytes <BR>TCP: Hash tables configured (established 1024 bind 1024) <BR>VFS: Mounted root (romfs <BR>Freeing init memory: 40K</FONT></P></TD></TR></TBODY></TABLE></P> <P width=100%><FONT size=3>上面的这些输出信息,也可能包括你自己正在做的嵌入式linux开发板的输出信息,其中的每一行,每一个字的含义,你是否深究过,或者说大部分的含义你能确切地知道的?本人想在这里结合本人在实践中一些体会来和广大嵌入式linux的开发者一起读懂这些信息。</FONT></P> <P width=100%><FONT size=3>我们在这里将以一个真实的嵌入式linux系统的启动过程为例,来分析这些输出信息。启动信息的原始内容将用标记标出,以区别与注释。</FONT></P> <P width=100%><FONT size=3></FONT> </P> <P width=100%><FONT size=3>嵌入式linux的启动主要分为两个阶段:</FONT></P> <P width=100%><FONT size=3>① 第一部分bootloader启动阶段</FONT></P> <P width=100%><FONT size=3>② 第二部分linux 内核初始化和启动阶段</FONT></P> <P width=100%><FONT size=3>第一节:start_kernel</FONT></P> <P width=100%><FONT size=3>第二节:用户模式( user_mode )开始,start_kernel结束</FONT></P> <P width=100%><FONT size=3>第三节:加载linux内核完毕,转入cpu_idle进程</FONT></P> <P width=100%><B><FONT size=3></FONT></B> </P> <P align=center width=100%><FONT size=3><B>第一部分 : bootloader</B><B>启动</B></FONT></P> <P width=100%> <TABLE cellSpacing=0 cellPadding=0 border=1> <TBODY> <TR> <TD vAlign=top width=657> <P><FONT size=3>Boot loader v0.12</FONT></P> <P><FONT size=3>NOTE: this boot loader is designed to boot kernels made with the</FONT></P> <P><FONT size=3>2.4.xx releases</FONT></P> <P><FONT size=3>bootloader for XV</FONT></P> <P><FONT size=3>Built at Nov 20 2005 10:12:35</FONT></P></TD></TR></TBODY></TABLE></P> <P width=100%><FONT size=3>Bootloader头信息,版本,编译时间等,这个因不同的bootloader的设计而有所不同,由此你能看出bootloader的版本信息,有很多使用的是通用的bootloader,如u-boot,redboot等。</FONT></P> <P width=100%> <TABLE cellSpacing=0 cellPadding=0 border=1> <TBODY> <TR> <TD vAlign=top width=657> <P><FONT size=3>Loaded to 0x90060000</FONT></P></TD></TR></TBODY></TABLE></P> <P width=100%><FONT size=3>将bootloader加载到内存ram中的0x90060000处,即将bootloader加载到内存的高端地址处。</FONT></P> <P width=100%><FONT size=3>Linux内核将被bootloader加载到0x90090000处。</FONT></P> <P width=100%><FONT size=3></FONT> </P> <P width=100%> <TABLE cellSpacing=0 cellPadding=0 border=1> <TBODY> <TR> <TD vAlign=top width=657> <P><FONT size=3>Found boot configuration</FONT></P></TD></TR></TBODY></TABLE></P> <P width=100%><FONT size=3>查找到了启动boot的配置信息</FONT></P> <P width=100%><FONT size=3></FONT> </P> <P width=100%> <TABLE cellSpacing=0 cellPadding=0 border=1> <TBODY> <TR> <TD vAlign=top width=657> <P><FONT size=3>Booted from parallel flash</FONT></P></TD></TR></TBODY></TABLE></P> <P width=100%><FONT size=3>从flash中启动代码,此处的flash为并行闪存。Flash的分类列举如下:</FONT></P> <P width=100%><FONT size=3>闪存分三类:并行,串行,不可擦除。</FONT></P> <P width=100%><FONT size=3>①并行Parallel flash</FONT></P> <P width=100%><FONT size=3> NOR Flash,Intel于1988年发明.随机读取的速度比较快,随机按字节写,每次可以传输8Bit。一般适合应用于数据/程序的存贮应用中.NOR还可以片内执行(execute-in-place)XIP.写入和擦除速度很低。</FONT></P> <P width=100%><FONT size=3> NAND Flash,1989年,东芝公司发明.是以块和页为单位来读写的,不能随机访问某个指定的点.因而相对来说读取速度较慢,而擦除和写入的速度则比较快,每次可以传输16Bit,一般适用在大容量的多媒体应用中,容量大。如:CF,SM.</FONT></P> <P width=100%><FONT size=3>②串行Serial Flash 是以字节进行传输的,每次可以传输1-2Bit.如:MMC,SD,MS卡.串行闪存器件体积小,引脚也少,成本相对也更低廉。 </FONT></P> <P width=100%><FONT size=3>③不可擦除Mask Rom Flash的特点是一次性录入数据,具有不可更改性,经常运用于游戏和需版权保护文件等的录入。其显著特点是成本低。 </FONT></P> <P width=100%><FONT size=3><B>注意:</B>任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。</FONT></P> <P width=100%><FONT size=3>从上面的信息,我们可以对flash类型特点有个比较明确的了解。</FONT></P> <P width=100%><FONT size=3></FONT> </P> <P width=100%> <TABLE cellSpacing=0 cellPadding=0 border=1> <TBODY> <TR> <TD vAlign=top width=657> <P><FONT size=3>CPU clock rate: 200 MHz</FONT></P></TD></TR></TBODY></TABLE></P> <P width=100%><FONT size=3>开发板上所使用的CPU的主频为200MHZ.</FONT></P> <P width=100%><FONT size=3></FONT> </P> <P width=100%> <TABLE cellSpacing=0 cellPadding=0 border=1> <TBODY> <TR> <TD vAlign=top width=657> <P><FONT size=3>DRAM size is 128MB (128MB/0MB)</FONT></P></TD></TR></TBODY></TABLE></P> <P width=100%><FONT size=3>动态内存ram大小为128M。这里我们列举一下内存的类型及工作原理。</FONT></P> <P width=100%><FONT size=3>根据内存的工作原理可以划分出两种内存:DRAM和SRAM</FONT></P> <P width=100%><FONT size=3>①DRAM表示动态随机存取存储器。这是一种以电荷形式进行存储的半导体存储器。DRAM中的每个存储单元由一个晶体管和一个电容器组成。数据存储在电容器中。电容器会由于漏电而导致电荷丢失,因而DRAM器件是不稳定的。为了将数据保存在存储器中,DRAM器件必须有规律地进行刷新。 </FONT></P> <P width=100%><FONT size=3>②SRAM是静态的,因此只要供电它就会保持一个值。一般而言,SRAM 比DRAM要快,这是因为SRAM没有刷新周期。每个SRAM存储单元由6个晶体管组成,而DRAM存储单元由一个晶体管和一个电容器组成。相比而言,DRAM比SRAM每个存储单元的成本要高。照此推理,可以断定在给定的固定区域内DRAM的密度比SRAM 的密度要大。 </FONT></P> <P width=100%><FONT size=3></FONT> </P> <P width=100%><FONT size=3>SRAM常常用于高速缓冲存储器,因为它有更高的速率;而DRAM常常用于PC中的主存储器,因为其拥有更高的密度。 </FONT></P> <P width=100%><FONT size=3>在嵌入式系统中使用DRAM内存的设计比较广泛。</FONT></P> <P width=100%><FONT size=3></FONT> </P> <P width=100%><FONT size=3>地址辅助说明:</FONT></P> <P width=100%><FONT size=3>先说明一下内存地址数字情况,主要是为了方便记忆。</FONT></P> <P width=100%><FONT size=3>可以访问的内存为4G。</FONT></P> <P width=100%><FONT size=3>0x40000000是1GB处;0x00040000是256K处,0x00020000是128K处,0x90000000是2GB多的地方。</FONT></P> <P width=100%><FONT size=3>1M->0x00100000, </FONT></P> <P width=100%><FONT size=3>2M->0x00200000,</FONT></P> <P width=100%><FONT size=3>8M->0x00800000</FONT></P> <P width=100%><FONT size=3>16M->0x01000000, </FONT></P> <P width=100%><FONT size=3>32M->0x02000000</FONT></P> <P width=100%><FONT size=3>256M->0x10000000</FONT></P> <P width=100%><FONT size=3>64K->0x
查看全文
发表于:2008-06-03 ┆
阅读(86)
┆
评论(0)
嵌入式linux启动信息完全注释
<DIV> <TABLE style="BORDER-COLLAPSE: collapse" borderColor=#a5bd6b cellSpacing=1 cellPadding=0 width="100%" border=1> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD> <DIV id=art style="MARGIN: 15px"> <DIV> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle height=25><FONT color=#ff9900 size=4><B>嵌入式linux启动信息完全注释(自学存档用)</B></FONT></B></FONT><BR></TD></TR> <TR> <TD bgColor=#d2dee2 height=1></TD></TR> <TR> <TD bgColor=#ffffff height=1></TD></TR> %3
查看全文
发表于:2008-06-03 ┆
阅读(86)
┆
评论(0)
嵌入式linux启动信息完全注释
<DIV> <TABLE style="BORDER-COLLAPSE: collapse" borderColor=#a5bd6b cellSpacing=1 cellPadding=0 width="100%" border=1> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD> <DIV id=art style="MARGIN: 15px"> <DIV> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle height=25><FONT color=#ff9900 size=4><B>嵌入式linux启动信息完全注释(自学存档用)</B></FONT></B></FONT><BR></TD></TR> <TR> <TD bgColor=#d2dee2 height=1></TD></TR> <TR> <TD bgColor=#ffffff height=1></TD></TR> <TR> <TD align=middle> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD width="100%"> <P width=100%><FONT size=3><B>嵌入式linux启动信息完全注释</B><BR>from:http://www.embedlin……
查看全文
发表于:2008-06-03 ┆
阅读(65)
┆
评论(0)
嵌入式linux启动信息完全注释
<DIV> <TABLE style="BORDER-COLLAPSE: collapse" borderColor=#a5bd6b cellSpacing=1 cellPadding=0 width="100%" border=1> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD> <DIV id=art style="MARGIN: 15px"> <DIV> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle height=25><FONT color=#ff9900 size=4><B>嵌入式linux启动信息完全注释(自学存档用)</B></FONT></B></FONT><BR></TD></TR> <TR> <TD bgColor=#d2dee2 height=1></TD></TR> <TR> <TD bgColor=#ffffff height=1></TD></TR> <TR> <TD align=middle> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD width="100%"> <P width=100%><FONT size=3><B>嵌入式linux启动信息完全注释</B><BR>from:http://www.embedlin……
查看全文
发表于:2008-06-03 ┆
阅读(87)
┆
评论(0)
制作JFFS2 IMG
<DIV><SPAN class=bold>如何创建JFFS2 image</SPAN><BR><BR> <DIV style="FONT-SIZE: 12px">JFFS2是redhat公司开发的一种文件系统,现在被普遍用在嵌入式设备的文件系统组织中.在handheld.org中看到他们的项目中也是使用JFFS的.<BR> 抽空尝试了一下JFFS2,以下是我学到的,share:<BR><BR> 1.下载image打包工具<BR> mkfs.jffs2<BR>JFFS2 filesystem image utility mkfs.jffs2.x86 (md5sum) and mkfs.jffs2.arm (md5sum) from the Memory Technology Device (MTD) Subsystem for Linux built from CVS source from June 23, 2001 on Linux for the x86 and Strong Arm processors. Use this to create jffs2 images to upload to devices like the. <BR> 在使用前需要测试系统是否支持md5sum.(我还不是很清除这个)<BR>2007.12.29, md5sum是用来检测下载的包是否正确,就是"校验"一下<BR>____________________________________________________________<BR>[root@mic sourccode]# cp root.jffs2 /tftpboot/<BR>[root@mic sourccode]# md5sum --check mkfs.jffs2.x86.md5sum<BR>mkfs.jffs2.x86:……
查看全文
发表于:2008-06-03 ┆
阅读(178)
┆
评论(0)
AT91sam9263EK使用NFS根文件系统
<DIV> <TABLE style="BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width="96%" border=0> <TBODY> <TR> <TD width="100%" bgColor=#f3f3f3></TD> <TD width=7 height=7><IMG alt="" src="http://blog.chinaunix.net/templates/tech/images/w_right_top.gif" border=0></TD></TR> <TR> <TD align=middle bgColor=#f3f3f3 colSpan=3> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle height=25></B></FONT><BR></TD></TR> <TR> <TD bgColor=#d2dee2 height=1></TD></TR> <TR> <TD bgColor=#ffffff height=1></TD></TR> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD width="100%"> <DIV id=art style="MARGIN: 15px" width="100%">AT91sam9263EK使用NFS根文件系统<BR>OneWind 发表于 2007-5-29 15:36:00 <BR>AT91sam9263EK使用NFS根文件系统<BR>张驿风<BR>2007-5-28<BR>cbuilder@peoplemail.com.cn<BR>一. t91sam9……
查看全文
发表于:2008-06-03 ┆
阅读(105)
┆
评论(0)
嵌入式Linux系统中挂载 jffs2 根文件系统
<DIV> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle height=25></B></FONT><STRONG><FONT color=#02368d></FONT></STRONG><BR></TD></TR> <TR> <TD bgColor=#d2dee2 height=1></TD></TR> <TR> <TD bgColor=#ffffff height=1></TD></TR> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD width="100%"> <DIV id=art style="MARGIN: 15px" width="100%"> <P align=center><STRONG><FONT color=#0000ff size=4>在嵌入式Linux系统中挂载 jffs2 根文件系统</FONT></STRONG></P> <DIV>我已经在《<FONT color=#02368d><FONT size=2><STRONG><U>构建基本的嵌入式Linux根文件系统</U></STRONG><FONT color=#000000>》介绍了</FONT></FONT></FONT>如何建立基本的嵌入式Linux根文件系统,并用NFS挂载成功。如果要以挂载JFFS2格式的根文件系统,其基本方法就是<FONT color=#0000ff size=3>将这个建立好的根文件系统制作成jffs2镜像,烧到FLASH中……
查看全文
发表于:2008-06-03 ┆
阅读(191)
┆
评论(0)
Linux驱动开发学习的一些必要步骤
<DIV> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle height=25></B></FONT><BR></TD></TR> <TR> <TD bgColor=#d2dee2 height=1></TD></TR> <TR> <TD bgColor=#ffffff height=1></TD></TR> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD width="100%"> <DIV id=art style="MARGIN: 15px" width="100%"> <DIV> 1. 学会写简单的makefile <P> 2. 编一应用程序,可以用makefile跑起来</P> <P> 3. 学会写驱动的makefile</P> <P> 4. 写一简单char驱动,makefile编译通过,可以insmod, lsmod, rmmod. 在驱动的init函数里打印hello world, insmod后应该能够通过dmesg看到输出。</P> <P> 5. 写一完整驱动, 加上read, write, ioctl, polling等各种函数的驱动实现。 在ioctl里完成从用户空间向内核空间传递结构体的实现。</P> <P>&n……
查看全文
发表于:2008-06-03 ┆
阅读(103)
┆
评论(0)
C语言面试大全
<DIV> <TABLE style="BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width=950 bgColor=#ffffff border=0> <TBODY> <TR> <TD vAlign=top align=middle width=235><BR></TD> <TD width=10></TD> <TD vAlign=top width=685> <TABLE style="BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width="100%" align=center border=0> <TBODY> <TR> <TD align=middle bgColor=#bbf0ff><FONT style="FONT-SIZE: 14pt" color=#000066><B></B></FONT></TD> <TR> <TD> <TABLE style="BORDER-COLLAPSE: collapse" borderColor=#bbf0ff cellSpacing=1 cellPadding=0 width="100%" border=1> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width=650 border=0> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD width=650> <DIV id=art style="MARGIN: 15px"> <DIV></DIV> <DIV> <P><FONT size=2><STRONG>1.求下面函数的返回值(微软……
查看全文
发表于:2008-06-03 ┆
阅读(117)
┆
评论(0)
arm开发经验[转载]
<DIV> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle height=25></B></FONT><BR></TD></TR> <TR> <TD bgColor=#d2dee2 height=1></TD></TR> <TR> <TD bgColor=#ffffff height=1></TD></TR> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD width="100%"> <DIV id=art style="MARGIN: 15px" width="100%"> <DIV> <P><FONT size=2>第一章 STARTUP <BR>1 ARM的启动 <BR>一般的嵌入式系统在主程序执行之前都需要执行一些初始化的过程以创造嵌入式程序运行的环境,尤其是一些高级的嵌入式系统,由于核心芯片使用内存映射、内存保护等机制以及编程使用高级语言C,C++甚至JAVA语言,都需要先创建一个适合程序运行的硬件环境,然后初始化或者配置或者剪裁run-time library, 这些工作都必须在主程序运行前完成,所以一个startup程序或者程序组对于一个嵌入式系统来说是非常重要的。要编写startup程序,需要对编译器、链接器和汇编器的细节有一……
查看全文
发表于:2008-06-03 ┆
阅读(81)
┆
评论(0)
sd卡驱动移植到2.6.24内核时出错
<DIV> <TABLE style="BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width="100%" align=center border=0> <TBODY> <TR> <TD align=middle bgColor=#bbf0ff> </TD> <TR> <TD> <TABLE style="BORDER-COLLAPSE: collapse" borderColor=#bbf0ff cellSpacing=1 cellPadding=0 width="100%" border=1> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width=650 border=0> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD width=650> <DIV id=art style="MARGIN: 15px"> <DIV>[root@localhost6 Kernel]# make zImage<BR> CHK include/linux/version.h<BR>make[1]: “include/asm-arm/mach-types.h”是最新的。<BR> CHK include/linux/utsrelease.h<BR> CALL scripts/checksyscalls.sh<BR><stdin>:1097:2: warning: #warning syscall fadv……
查看全文
发表于:2008-06-03 ┆
阅读(157)
┆
评论(0)
arp地址的理解
<DIV> <TABLE style="BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width="100%" align=center border=0> <TBODY> <TR> <TD align=middle bgColor=#bbf0ff></TD> <TR> <TD> <TABLE style="BORDER-COLLAPSE: collapse" borderColor=#bbf0ff cellSpacing=1 cellPadding=0 width="100%" border=1> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width=650 border=0> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD width=650> <DIV id=art style="MARGIN: 15px"> <DIV>ARP是地址解析的协议,可以理解为对IP的物理化,也就是将IP转换成我们在电脑上看到的MAC地址。在开始->运行中输入cmd,然后在控制台窗口中输入arp -a,可以看到列出了</DIV> <DIV align=center><IMG src="http://blogimg.chinaunix.net/blog/upfile2/080520113500.jpg" width=500 onload="javascript:if(this.width>500)this.width=500;" border=0></DIV> <DIV a……
查看全文
发表于:2008-06-03 ┆
阅读(72)
┆
评论(0)
嵌入式系统中常用文件系统的制作总结
<DIV> <TABLE style="BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width="100%" align=center border=0> <TBODY> <TR> <TD align=middle bgColor=#fed0e4> </TD> <TR> <TD> <TABLE style="BORDER-COLLAPSE: collapse" borderColor=#fed0e4 cellSpacing=1 cellPadding=0 width="100%" border=1> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD> <DIV id=art style="MARGIN: 15px"> <DIV><STRONG>Creating a Compressed RAM Disk</STRONG> <DIV>a) Decide on the RAM disk size that you want. Say 8 MB for this example.</DIV> <DIV><BR> dd if=/dev/zero of=ramdisk bs=1k count=8192</DIV> <DIV> </DIV> <DIV>b) Make a filesystem on it. Say ext2fs for this example.</DIV> <DIV> </DIV> <DIV……
查看全文
发表于:2008-05-18 ┆
阅读(170)
┆
评论(0)
和使用jffs2文件系统如何制作和使用jffs2文件系统
<DIV> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width=760 align=center bgColor=#ffffff border=0> <TBODY> <TR> <TD align=middle height=30><FONT style="FONT-SIZE: 14pt" color=#02368d><B>如何制作</B></FONT></TD></TR> <TR> <TD align=middle height=9><IMG height=9 alt="" src="http://blog.chinaunix.net/templates/default/images/right_line.gif" width=502 border=0></TD></TR> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width=740 border=0> <TBODY> <TR> <TD width=740> <DIV id=art style="MARGIN: 15px" width="560"><B><SPAN style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体">如何制作和使用<SPAN lang=EN-US>jffs2</SPAN>文件系统<BR><BR><SPAN lang=EN-US><?XML:NAMESPACE PREFIX = O /><O:P></O:P></SPAN></SPAN></B> <P class=MsoNormal style="TEXT-INDENT: 26.1pt; TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体">本文主要介绍如何在<SPAN lang=EN-US>AT91SAM9261EK……
查看全文
发表于:2008-05-18 ┆
阅读(245)
┆
评论(0)
LINUX 2.6 内核下多C文件模块编译方法
<DIV> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align=center><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></B> </P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align=center><FONT size=3><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><SPAN style="mso-tab-count: 10"><FONT face="Times New Roman">  ……
查看全文
发表于:2008-05-04 ┆
阅读(229)
┆
评论(1)
0欧姆电阻的用途
<DIV> <TABLE style="BORDER-COLLAPSE: collapse" borderColor=#a5bd6b cellSpacing=1 cellPadding=0 width="100%" border=1> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD> <DIV id=art style="MARGIN: 15px"> <H4>模拟地和数字地单点接地</H4> <DIV> 只要是地,最终都要接到一起,然后入大地。如果不接在一起就是浮地,存在压差,容易积累电荷,造成静电。地是参考0电位,所有电压都是参考地得出的,地的标准要一致,故各种地应短接在一起。人们认为大地能够吸收所有电荷,始终维持稳定,是最终的地参考点。虽然有些板子没有接大地,但发电厂是接大地的,板子上的电源最终还是会返回发电厂入地。如果把模拟地和数字地大面积直接相连,会导致互相干扰。不短接又不妥,理由如上有四种方法解决此问题:<BR>1、用磁珠连接;<BR>2、用电容连接;……
查看全文
发表于:2008-05-01 ┆
阅读(124)
┆
评论(0)
UBOOT在普光ARM-9200嵌入式开发板过程
<DIV> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle height=25></B></FONT><BR></TD></TR> <TR> <TD bgColor=#d2dee2 height=1></TD></TR> <TR> <TD bgColor=#ffffff height=1></TD></TR> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD width="100%"> <DIV id=art style="MARGIN: 15px" width="100%"> <P>u-boot是德国DENX小组的开发用于多种嵌入式CPU的bootloader程序,在LINUX下可以通过CVS来得到当前正在开发的u-boot软件。当前版本号:u-boot 1.0.2,见include/version.h中的定义。 </P> <P></P> <P>#cvs –d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/u-boot login</P> <P>#cvs –z3 –d :pserver:anonymous@cvs.sourceforge.net:/cvsroot/u-boot checkout –P u-boot</P> <P>本文讲述S3C2410中u-boot的移植过程:S3C2410的硬件配置是:</P> <P>l CPU:S3C2410</P> <P>lNOR: 16M,INTEL EP28F128J3A</P> <P>lSD……
查看全文
发表于:2008-05-01 ┆
阅读(211)
┆
评论(0)
从零构建一个400K的嵌入式Linux根文件系统UCFS(转载)
<table style="border-collapse: collapse;" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td align="center" height="25"><br> </td></tr> <tr><td bgcolor="#d2dee2" height="1"><br></td></tr> <tr><td bgcolor="#ffffff" height="1"><br></td></tr> <tr><td align="center"> <table style="border-collapse: collapse;" border="0" cellpadding="0" cellspacing="0" width="100%"> <tbody><tr><td width="100%"> <div id="art" width="100%" style="margin: 15px;"> <font size="3"><font face="楷体_GB2312 ">在查阅了无数资料后,基于buildroot、uclibc和busybox的根文件系统已经建立起来了,在我学习嵌入式的过程中,得到了CU广大坛友的支持,所以,为了回馈CU,为了响应开源精神,我也将我的笔记整理成文档与大家分享,如有疏漏或错误,敬请批评指正。 </font><br> <br> ++++++++++++++++++++++++++++++++++++++++ <br> 作者:惆怅的桶(tongmvp)<br> 日期:2008-2-22<br> 版权声明:转载请注明出处 <br> ++++++++++++++++++++++++++++++++++++++++ <br> <br> <b>从零构建一个400K的嵌入式Linux根文件系统UCFS</b><br> <br>……
查看全文
发表于:2008-04-23 ┆
阅读(291)
┆
评论(0)