zoukankan      html  css  js  c++  java
  • 嵌入式系统移植三步曲 王延龙

    应用一斑     王延龙   

    嵌入式系统移植三步曲
    1. Bootloader的移植
    2. linux 内核的编译
    3. linux根文件系统移植

    1.BootLoader的移植,修改Makefile文件内容,将
    ifeq ($(ARCH),arm)
    CROSS_COMPILE = arm-linux-
    endif
    改为
    ifeq ($(ARCH),arm)
    CROSS_COMPILE=/usr/local/arm/2.95.3/bin/arm-linux-
    endif
     

    smdk2410_config    :     unconfig
          @./mkconfig $(@:_config=) arm arm920t smdk2410 NULL s3c24x0
    后面添加
    meng2410_config   :     unconfig
          @./mkconfig $(@:_config=) arm arm920t meng2410 NULL s3c24x0
    编辑meng2410.h头文件
    [root@localhost u-boot-1.1.4]# gedit include/configs/meng2410.h
     编辑board/meng2410/Makefile文件

    OBJS   := smdk2410.o flash.o
    改为
    OBJS   := meng2410.o flash.o
    修改cpu/arm920t/config.mk文件

    PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu)
    改成:
    PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,$(call cc-option,-mabi=apcs-gnu,))
    再修改examples/Makefile文件
    将原文件的第58行开始的内容:
    SREC   = hello_world.srec
    BIN = hello_world.bin hello_world
    改为
    SREC   = hello_world.o
    BIN = hello_world.o hello_world
    即可重新编译。
    [root@localhost u-boot-1.1.4]#  ll u-boot*
    -rwxr-xr-x 1 root root 441785 06-07 09:30 u-boot
    -rwxr-xr-x 1 root root 115460 06-07 09:30 u-boot.bin
    -rw-r--r-- 1 root root  50542 06-07 09:30 u-boot.map
    -rwxr-xr-x 1 root root 346442 06-07 09:30 u-boot.srec
     再添加skyeye.conf文件
    # skyeye config file for S3C2410X
    cpu: arm920t
    mach: s3c2410x
    # physical memory
    mem_bank: map=M, type=RW, addr=0x00000000, size=0x00800000, file=./u-boot.bin ,boot=yes
    mem_bank: map=M, type=RW, addr=0x30000000, size=0x00800000
    mem_bank: map=M, type=RW, addr=0x30800000, size=0x00800000
    mem_bank: map=M, type=RW, addr=0x31000000, size=0x03000000
    # all peripherals I/O mapping area
    mem_bank: map=I, type=RW, addr=0x48000000, size=0x20000000
    mem_bank: map=I, type=RW, addr=0x19000300, size=0x00000020
     
    net: type=cs8900a, base=0x19000300, size=0x20,int=9, mac=08:00:3E:26:0A:5B, ethmod=tuntap, hostip=10.0.0.1
    nandflash: type=s3c2410x,name=K9F1208U0B,dump=./nand.dump
    #lcd:type=s3c2410x, mod=gtk
    dbct:state=on
     
     
    执行skyeye1.2.6。
    In:    serial
    Out:   serial
    Err:   serial
    Hit any key to stop autoboot:  0
    MENG2410 #
     
     
    第二步:编译内核
     
    建立好了开发环境,接下来要做的就是根据硬件环境编译原程序.本试验用的是linux-2.6.14.7.tar.bz2,将其解压之后修改Makefile文件,然后再对网上进行移植,本例用的是cs8900,接着编辑arch/arm/mach-s3c2410/mach-smdk2410.c文件。设置flash分区
     
    第三步:根文件系统的移植 busybox,yaffs2根文件系统的建立,在重启服务器之后再启动开发版。
    问题:

    一、安装skyeye
    这一节安装过程很简单,很快就能按照书上步骤完成。
    二、BootLoader的移植
    这一节就出现了很多问题,
    1、首先到第三步时 复制必要的文件,编辑ok2410.h头文件 做到
    [root@localhost u-boot-1.1.4]# mv board/ok2410/smdk2410.c board/ok2410/ok2410.c
    竟然找不到对应的文件,这时让我百思不得其解只好从头再做一遍了,结果顺里的就完成了
    2、当执行到第十二步
    [root@localhost u-boot-1.1.4]# ./mknandflashdump u-boot.bin nand.dump 0
    显示没有错误没有mknandflashdump命令,当时就蒙了,不知道需要从别的地方下载,以为它本身自带的就有,所以在从头做了两边之后,意识不是我做得问题了,而是它本身的问题,通过询问同学才知道从别的地方复制一份粘贴进去就行了。
    3、第十三部
    进一步修改在第十一步修改过的内容时,第一次把13步要添加的内容添加到了11步时增添的模块中了,导致运行无法执行,当我把第13步要添加的内容整体的添加到第十一步添加的内容之后再运行,就一切正常了。
    三、linux的移植
    1、在第十步配置内核时不知道怎么对弹出的TUI界面内容进行操作,使我无从下手,通过问晓风得到解决。
    四、跟文件系统的移植
    1、当执行到第六步编译
    将networking/interface.c文件的818行修改为“.type=-1",让后再次编译,这时就一直出错,耽但无任何错误提示,所以我意识到可能是前边几步时出现了偏差,但没意识到,再次从头做了一遍后就没再出现问题。


    这些问题之外还有
    执行skyeye1.2.6 成功之后,当输入用户名之后,再输入密码发现密码不正确
    这时在文件系统里面etc/passwd里面第一行的:
    root:x:0:0:root:/root:/bin/sh
    把X删除,之后再重新登陆,此时登陆是不要密码的,登入之后可以用password命令重新设置密码。
    当重新启动电脑后发现无法正常登入,出现
    *** Warning - bad CRC or NAND, using default environment
     
    In:    serial
    Out:   serial
    Err:   serial
    Hit any key to stop autoboot:  0
    TFTP from server 10.0.0.1; our IP address is 10.0.0.110
    Filename 'uImage'.
    Load address: 0x31000000
    Loading: checksum bad
    T T T T T T T T
    这时需要关闭防火墙,就会正常启动了


    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>
    阅读(311) | 评论(0) | 转发(0) |
    给主人留下些什么吧!~~
    评论热议
  • 相关阅读:
    eureka 注册中心(单机版)
    金蝶实际成本培训01
    查看WIN10内核
    金蝶K3 WISE 15.0 GUID
    win10卸载系统自带office365
    金蝶K3wise15.0BOM维护默认只能查看登录账户作为建立人的BOM清单
    阿里云邮箱代收邮件
    金蝶寄售业务流程
    转-商品流通企业代销商品核算方法
    转-ERP待检仓、代管仓、赠品仓
  • 原文地址:https://www.cnblogs.com/ztguang/p/12647606.html
Copyright © 2011-2022 走看看