zoukankan      html  css  js  c++  java
  • 嵌入式系统移植三部曲 赵超越

    班级:09计应1班    姓名:赵超越   学号:0906041011

    嵌入式系统移植三部曲

    一、Bootloader的移植

    1.安装Skyeye

    使用mv命令将/usr/local/bin/skyeye 改名为/usr/local/bin/skyeye1.2.6

    2.创建交叉编译环境

    下 载arm-linux-gcc-2.95.3.tar.bz2、arm-linux-gcc-3.4.1.tar.bz2和arm-linux- tools-4.2.1-20070808.tar.gz(后面的实验会用到在这里一起解压了)并将起解压到/usr/local/arm中(若/usr /local/中没有arm文件夹,自己创建一个)。

    3.下载并解压u-boot-1.1.4,并根据课本上的提示修改其中的文件

    [root@localhost u-boot-1.1.4]# gedit Makefile

    改为

    ifeq ($(ARCH),arm)

    CROSS_COMPILE=/usr/local/arm/2.95.3/bin/arm-linux-

    endif

     

    注:此处红字之后不要有任何字符,即使是一个空格,否则编译U-Boot终端会提示make[1]: /usr/local/arm/2.95.3/bin/arm-linux-命令未找到。若之前没有安装arm-linux-gcc-2.95.3,同样会出现上面的提示。

    例:

    [root@localhost u-boot-1.1.4]# make

    …………

    /bin/sh: /usr/local/arm/2.95.3/bin/arm-linux-: 没有那个文件或目录

    /bin/sh: line 1: /usr/local/arm/2.95.3/bin/arm-linux-: 没有那个文件或目录

    make: *** [u-boot] 错误 127

     

    最后发现只是CROSS_COMPILE=/usr/local/arm/2.95.3/bin/arm-linux-多了一个空格

    在smdk2410_config      :      unconfig

          @./mkconfig $(@:_config=) arm arm920t smdk2410 NULL s3c24x0

    后面添加

    zcy2410_config      :      unconfig

          @./mkconfig $(@:_config=) arm arm920t zcy2410 NULL s3c24x0

    注:此处的和后面的zcy2410是自己创建的,都可以更换,但要保证名字一致。

    二、Linux的移植

    1.编辑Makefile文件

    ARCH            ?= $(SUBARCH)

    CROSS_COMPILE      ?=

    改为

    ARCH            ?= arm

    CROSS_COMPILE      ?= /usr/local/arm/3.4.1/bin/arm-linux-

    注:此处依旧要注意/usr/local/arm/3.4.1/bin/arm-linux-后面无任何字符,尤其注意空格。出现错误参考Bootloader移植过程中的/usr/local/arm/2.95.3/bin/arm-linux-

    2.配置内核产生.config文件

    使用make menuconfig命令配置时,选项中没有<*> YAFFS2 file system support,这时需要建立YAFFS2文件系统。建立过程中,需要注意制作该文件系统需要在/tmp/nfs中制作文件系统为基础进行制作。

    3.执行skyeye1.2.6,通过u-boot-1.1.4引导linux-2.6.14.7

    通过终端执行 skyeye1.2.6,出现错误提示信息。

    [root@localhost u-boot-1.1.4]# skyeye1.2.6

    ……

    TCP reno registered

    TCP bic registered

    NET: Registered protocol family 1

    Reading data from NAND FLASH without ECC is not recommended

    Reading data from NAND FLASH without ECC is not recommended

    这是因为mtdblock2中还没有文件系统,可以进行根文件系统移植。

    三、根文件系统移植

    1.编写etc/inittab文件、修改其权限时,一定要注意权限。

    [root@localhost nfs]# chmod 755 etc/inittab

    [root@localhost nfs]# chmod 755 etc/init.d/rcS

    [root@localhost nfs]# chmod 755 etc/fstab

    2.创建密码文件时,从宿主机中复制的/etc/passwd文件中,root一行:root:x:0:0:root:/root:/bin/bash,将最后的bash改为sh。设置登录不要密码,则把root后的x去掉。修改完成后的root一行结果:root::0:0:root:/root:/bin/sh

    注:若不把bash改为sh,运行时会出现错误

    10.0.0.110 login: root

    login[30]: root login on 'console'

    login: cannot run /bin/bash: No such file or directory

    这是因为/etc/passwd中指定了用户的shell为bash,而busybox只有ash和sh,所以要将bash改为sh。

    3.若想在开发板上运行程序,需要使用之前安装的arm-linux-tools-4.2.1-20070808.tar.gz,linux自带的gcc编译器编译的文件无法在开发板系统上运行。只能使用arm-linux-gcc编译,之后才可运行。

    10.0.0.110 login: root

    login[25]: root login on 'console'

     

    Processing /etc/profile... Done

    [root@10 /root]# ./test

    ===== main =====

    Hello world!

    argv[0]=./test

    ==== exit main ====

    [root@10 /root]# less test.c

    #include

    #include

    int main (int argc,char* argv[])

    {

        int i;

        printf("===== main ===== ");

        printf ("Hello world! ");

        for(i=0;i

        {

            printf("argv[%d]=%s ",i,argv[i]);

        }

        printf("==== exit main ==== ");

        return 0;

    }

    4.从nfs启动和mtd启动的区别

    nfs需要通过tftp来传输数据的,依赖于宿主机,但启动过程不需要人为操作,自动启动系统。

    而mtd则是直接将uImage烧写进内核,启动过程中不需要过分的依赖于宿主机,但启动时需要操作人员自己将uImage烧写进内核,进而启动系统。

     


    http://blog.chinaunix.net/space.php?uid=14735472&do=blog&id=110947




    <script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
    阅读(343) | 评论(0) | 转发(0) |
    给主人留下些什么吧!~~
    评论热议
  • 相关阅读:
    Win10开始菜单中的天气不更新问题的解决方法
    Visual Studio 2017 的 JavaScript 调试功能的关闭
    Win10安装bash慢的解决方案
    关于 Google Chrome “Your connection is not private” 问题的处理
    关于 Inno Setup 报木马的问题处理
    Windows防火墙出站、入站相关知识总结
    关于Navicat Premium导入xlsx的问题
    关于VIM在Win10下的无意义折腾
    Mindjet MindManager 2016/2017 折腾记录
    2019腾讯前端技术大会资源TWeb
  • 原文地址:https://www.cnblogs.com/ztguang/p/12647558.html
Copyright © 2011-2022 走看看