⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 在s3c4510b评估板上移植uclinux-20030305全过程--电子技术文章-技术资料-广东电子商贸网.htm

📁 介绍了嵌入式linux文件系统的知识
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0067)http://www.guangdongdz.com/special_column/techarticle/old/2727.html -->
<HTML><HEAD><TITLE>在S3C4510B评估板上移植uclinux-20030305全过程--电子技术文章-技术资料-广东电子商贸网</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META 
content=在S3C4510B评估板上移植uclinux-20030305全过程,电子相关的技术文章,包括:传感技术,存储技术,电源技术,单片机技术,电测仪表,接口电路,模拟技术,元器件与工艺,嵌入式系统等 
name=description>
<META 
content=在S3C4510B评估板上移植uclinux-20030305全过程,A/DD/A技术,传感技术,存储技术,EDA技术,MCU&amp;DSP,电源技术,单片机技术,接口电路技术,模拟技术,嵌入式系统,数字信号处理技术,IC等 
name=keywords>
<STYLE type=text/css>BODY {
	MARGIN-TOP: 0px
}
</STYLE>
<LINK 
href="在S3C4510B评估板上移植uclinux-20030305全过程--电子技术文章-技术资料-广东电子商贸网.files/css.css" 
type=text/css rel=stylesheet>
<STYLE type=text/css>.style9 {
	FONT-WEIGHT: bold; FONT-SIZE: 18px
}
</STYLE>

<SCRIPT language=JavaScript>
<!--
function RegularPic(w,h)
	{
	var intwidth,intheight,intrate;
	
	intwidth = document.img.width;
	intheight = document.img.height;
	if (document.img.width > w || document.img.height > h){
	    if (intwidth/ w > intheight/ h)
	    {
	        intrate = intwidth/ w;
	    }
	    else
	    {
	        intrate = intheight/ h;
	    }
	    document.img.width = intwidth / intrate; 
	    document.img.height = intheight / intrate;
	}
	}
//-->
</SCRIPT>

<META content="MSHTML 6.00.2900.2995" name=GENERATOR></HEAD>
<BODY oncontextmenu=self.event.returnValue=false onselectstart="return false" 
onkeydown="if(event.keyCode==78&amp;&amp;event.ctrlKey)return false;">
<SCRIPT 
src="在S3C4510B评估板上移植uclinux-20030305全过程--电子技术文章-技术资料-广东电子商贸网.files/Top.htm"></SCRIPT>

<TABLE cellSpacing=1 cellPadding=6 width=778 align=center border=0>
  <TBODY>
  <TR>
    <TD bgColor=#ffffff height=23><A href="http://www.guangdongdz.com/">首页</A> 
      &gt; <A 
      href="http://www.guangdongdz.com/technology_information.html">技术资料</A> 
      &gt; <A 
      href="http://www.guangdongdz.com/special_column/techarticle/index.html">技术文章</A> 
      &gt; <A 
      href="http://www.guangdongdz.com/special_column/techarticle/catalogue_10_1.html">嵌入式设计</A> 
      &gt; <SPAN 
  class=copyright01>在S3C4510B评估板上移植uclinux-20030305全过程</SPAN></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=778 align=center border=0>
  <TBODY>
  <TR>
    <TD vAlign=top bgColor=#f7f7f7 height=90>
      <DIV align=center>
      <TABLE cellSpacing=0 cellPadding=10 width="100%" border=0>
        <TBODY>
        <TR>
          <TD vAlign=bottom height=45>
            <P class=style9 
          align=center>在S3C4510B评估板上移植uclinux-20030305全过程</P></TD></TR></TBODY></TABLE>
      <TABLE cellSpacing=0 cellPadding=0 width="92%" border=0>
        <TBODY>
        <TR>
          <TD bgColor=#999999 height=1></TD></TR></TBODY></TABLE>
      <TABLE cellSpacing=0 cellPadding=0 width="90%" border=0>
        <TBODY>
        <TR>
          <TD height=30>
            <DIV class=copyright01 align=center><A 
            href="http://www.guangdongdz.com/">http:www.guangdongdz.com</A>&nbsp;&nbsp;2004-7-2&nbsp;&nbsp;liber 
            </DIV></TD></TR></TBODY></TABLE>
      <TABLE cellSpacing=0 cellPadding=20 width="100%" border=0>
        <TBODY>
        <TR>
          <TD class=fonts14>
            <DIV align=left>
            <TABLE style="MARGIN: 0px 5px" cellSpacing=0 cellPadding=0 
            align=left bgColor=#f7f7f7 border=0>
              <TBODY>
              <TR>
                <TD><!--画中画广告开始--><SPAN>
                  <SCRIPT 
                  src="在S3C4510B评估板上移植uclinux-20030305全过程--电子技术文章-技术资料-广东电子商贸网.files/300_250.js"></SCRIPT>
                  </SPAN><!--画中画广告结束--></TD></TR></TBODY></TABLE>
            <P><BR>作者&nbsp;&nbsp;liber</P>
            <P>来自: 北京</P>
            <P><BR>--------------------------------------------------------------------------------</P>
            <P>跟踪3天反汇编代码,终于将uclinux-20030305在S3C4510B的板子上跑了起来,现将移植的全过程写出来,与大家分享 
            <BR></P>
            <P>一、下载所需工具、压缩包 
            <BR>uClinux-dist-20030305.tar.gz(http://www.uclinux.org/) 
            <BR>arm-elf-tools-20030314.sh <BR>二、要修改的文件列表: <BR>1. 
            ../linux-2.4.x/arch/armnommu/mach-snds100/arch.c 
            <BR>MACHINE_START(SAMSUNG, "SNDS100")-〉MACHINE_START(SNDS100, 
            "SNDS100") 
            <BR>[说明]这个文件的错误是旧版的遗迹,以前的版本对于4510b使用统一的标识samsung但是由于最新版新加入了对samsung其他板子的支持,所以,修改了这一标识,对于s3c4510b改用snds100,但是这一修改在这个版本中并没有完全统一起来,这也是多处错误的根本原因。 
            <BR>2. ../linux-2.4.x/arch/armnommu/config.in <BR>在if [ 
            "$CONFIG_BOARD_SNDS100" = "y" ]项中添加: <BR>define_bool 
            CONFIG_CPU_S3C4510 y 
            <BR>[说明]在这个配置文件中,CONFIG_BOARD_SNDS100一项居然少了cpu类型定义,对比其他项就会发现这一问题,该项在armnommu/kernel/head-armv.S中用到。 
            <BR>3. ../linux-2.4.x/arch/armnommu/mach-snds100/Makefile 
            <BR>O_TARGET := samsung.o -&gt;O_TARGET := snds100.o 
            <BR>[说明]这个makefile的修改是为了和1保持一致,再make的过程中,使用snds100标识链接文件。 <BR>4. 
            ../linux-2.4.x/arch/armnommu/kernel/head-armv.S <BR>#if 
            defined(CONFIG_ARCH_SAMSUNG) &amp;&amp; defined(CONFIG_CPU_ARM710) 
            -&gt; <BR>#if defined(CONFIG_CPU_S3C3410) || 
            defined(CONFIG_CPU_S3C4530) 
            <BR>[说明]这里也是由于samsung和snds100使用环乱造成的,如果不修改,之后的一段程序将被预编译,会出现LC0重定义的错误,因为此前的snds100已经声明LC0,实际上之后的程序时不应该被预编译的,那些是3410和4530专用的。 
            <BR>5. /Makefile <BR>TFTPDIR = /tftpboot后加上: <BR>LINUXTARGET=bzImage 
            <BR># normal make targets 中加入: <BR>.PHONY: images <BR>images: 
            <BR>$(MAKE) -C $(VENDDIR) images <BR>all: subdirs romfs modules 
            modules_install image linux 后加入 images 
            <BR>[说明]这里的修改,和6的第一条是为了生成压缩的rom映像文件和ramf可执行的bin文件。 <BR>6. 
            /vendors/Samsung/4510B/Makefile <BR>最后加入: <BR>images: 
            <BR>arm-elf-objcopy -O binary -R .note -R .comment -S 
            $(ROOTDIR)/$(LINUXDIR)/linux $(IMAGEDIR)/uclinux_ram.bin <BR>cp 
            $(ROOTDIR)/$(LINUXDIR)/arch/armnommu/boot/zImage 
            $(IMAGEDIR)/uclinux_rom.bin <BR>同时注释掉:$(CROSS_COMPILE)objcopy …… 部分 
            <BR>在 genromfs -v -V "ROMdisk" -f $(ROMFSIMG) -d $(ROMFSDIR) 
            后加入(这里生成romfs.o): <BR>arm-elf-ld -r -o 
            $(ROOTDIR)/$(LINUXDIR)/romfs.o -b binary $(ROMFSIMG) 
            <BR>[说明]第一条是5的延续,第二条是生成romfs.o文件,以备后用。 <BR>7. ../linux-2.4.x 
            /arch/armnommu/boot/compressed/Makefile <BR>找到$(LD) $(ZLDFLAGS) 
            $(HEAD) $(OBJS) piggy.o -o $(LINUX) 改为: <BR>$(LD) $(ZLDFLAGS) 
            $(HEAD) $(OBJS) piggy.o $(LIBGCC) -o $(LINUX) <BR>[说明]生成linux 
            kernel,包含必要的库支持,$(LIBGCC)来自于arm-elf-tools库。 <BR>找到ZLDFLAGS = -p -X 
            -T $(LINUX).lds改为: <BR>ZLDFLAGS = -p -X -T vmlinux.lds 
            <BR>[说明]这各链接文件是为带mmu的板子准备的,生成带自解压的映像文件,由$(LINUX)控制,这里我们直接使用,也可以直接将这个链接文件改名为linux.lds. 
            <BR>8. ../linux-2.4.x /arch/armnommu/vmlinux-armv.lds.in <BR>找到 
            *(.got) /* Global offset table */ <BR>在其后加入: <BR>romfs_data = .; 
            <BR>romfs.o <BR>romfs_data_end = .; <BR>在这里注意格式,这三句话之前后缩进; 
            <BR>[说明]在这个连接文件中将romfs.o连接到.text section中。 <BR>9. 
            ../linux-2.4.x/arch/armnommu/mm/proc-arm6,7.S <BR>mov r0, #0 
            <BR>#ifdef CONFIG_CPU_WITH_CACHE 改为: <BR>#ifdef 
            CONFIG_CPU_WITH_CACHE <BR>mov r0, #0 
            <BR>[说明]这里可能是careless的错误,对比旧版就可以理解。 <BR>10. ../linux-2.4.x 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -