zoukankan      html  css  js  c++  java
  • u-boot移植初步尝试-tiny4412

    获取u-boot源代码

      在u-boot官方网站下载uboot源码。ftp://ftp.denx.de/pub/u-boot/

       因为是第一次移植uboot,所以这里选的版本是 u-boot-2013.01

      解压文件到 /home/tiny4412下。

    cd /home/tiny4412/
    tar xvf u-boot-2013.01

      根据 Linux嵌入式驱动学习之路③u-boot配置分析  中可知在执行mkconfig时会从boards.cfg中提取相应的信息。

      所以在boards.cfg中添加相应的信息。

      tiny4412(目标板型号)   arm(CPU架构)         armv7(CPU型号)       tiny4412(开发板名称)            samsung(生产厂家)        exynos(片上系统)

      打开makefile,指定交叉工具链为 arm-linux-

      找一个最类似的board配置修改。这里我们参考的是 origen

    cd board/samsung/
    cp origen tiny4412 -rf
    cd tiny4412/

      修改makefile信息 将origen该为tiny4412

      将origen.c该为tiny4412.c

    将$(obj)/include/configs/origen.h 复制为tiny4412.H

    将tiny441.h中原来的#define CONFIG_SYS_PROMPT "ORIGEN #" 改成


    将原来的#define CONFIG_IDENT_STRING "for ORIGEN" 改成

      

       编译u-boot 

    make distclean
    make tiny4412_config
    make
    

    编译完成后会生成可执行的u-boot.bin文件。  

    将友善之臂中提供的sd_fuse文件夹复制到顶层目录中。

    编译用于生成bl2的工具

    cd sd_fuse; make

     

    将一张大于4G的SDHC卡插入电脑。假设已被识别为/dev/sdb

    cd sd_fuse/tiny4412/
    sudo ./sd_fusing.sh /dev/sdb

      若有以下提示,则制作成功。

        U-boot image is fused successfully.
        Eject SD card and insert it again.

      将sd卡放入开发板,从SD卡启动,无任何现象。

      确认第一条指令运行到了。(点灯)

      在arch/arm/cpu/armv7/start.s的reset 中添加下面几句话

     /* led (GPM4_0~3) on */    /*点亮LED灯*/
        ldr r0, =0x110002E0
        ldr r1, =0x00001111
        str r1, [r0]
        ldr r1, =0x0e
        str r1, [r0, #0x04]
    

      重新制作sd卡,启动,led被点亮。

      然后,我把led灯的指令放到lowlevel_init中,发现灯点不亮。

      反汇编后,查看了一下我觉得没有问题。一直不知道是为什么。后来在整理相对跳转和绝对跳转笔记时,突然想起来会不会是lowlevel_init这个代码在代码段的位置中太靠后了,因为上电之后内存并没有初始化。所以我修改了链接脚本器。

    在arm/arm/cpu/armv7目录中的u-boot.lds的CPUDIR/start.o (.text*)后加上下面一段话后,led灯被点亮。

    CPUDIR/start.o (.text*)
    board/samsung/tiny4412/libtiny4412.o (.text) arch/arm/cpu/armv7/exynos/libexynos.o (.text)

    sdf

  • 相关阅读:
    shutil、zipfile,tarfile
    time、datetime、calendar
    stat
    os与sys模块
    数据同步解决方案
    Oracle数据同步交换
    SQL Server数据同步交换
    MySQL数据同步交换
    Informix网页数据维护客户端工具
    Kingbase数据库web统一管理平台
  • 原文地址:https://www.cnblogs.com/ynxf/p/5965179.html
Copyright © 2011-2022 走看看