找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3695|回复: 0
收起左侧

uboot编译验证流程

[复制链接]
ID:261244 发表于 2017-12-13 20:37 | 显示全部楼层 |阅读模式
【目标】:uboot能把kernel加载起来
【准备】:
1、资料(原理图,芯片手册),代码(u-boot-2013.01.tar.bz2)
2、是否支持芯片(arch/arm/cpu/armv7/)
    Y:go
    N:(下载最新的uboot,找厂家)
3、是否支持板子 (board)
    Y:编译 验证 一下  交付。
    N:(下载最新的uboot,找厂家,自己搞 借鉴 相同SOC的板子 origen)
               
【借鉴】
1、解压
    把u-boot-2013.01.tar.bz2 上传到Ubuntu ,解压
    tar -xvf u-boot-2013.01.tar.bz2
2、修改源码:
        #进入顶层目录后
    cp -a board/samsung/origen board/samsung/fs4412  
    cp include/configs/origen.h include/configs/fs4412.h

【编译】
1、在boards.cfg 添加 fs4412目标
//Target              ARCH      CPU       Board name  Vendor             SoC         Options
fs4412                             arm         armv7             fs4412                 samsung        exynos

2、
修改Makefile:  CROSS_Cxx = arm-linux-

   make distclean   //第一次编译的时候才需要
   make fs4412_config
   make     //   生成 u-boot.bin

【烧写】
【第一种】
1、把SD拔出,插入电脑   
2、ubuntu下识别到     ls /dev/sd*   如果显示了/dev/sdb 那么就有了。fdisk -l
3、使用工具里面的mkuboot.sh进行烧写
    1)修改 mkuboot.sh
         ./mkuboot.sh
    2) sudo ./mkuboot.sh
【第二种】保证sd卡里面已经有好的u-boot
1、把拨码开关拨到SD卡启动
2、进入fs4412# 界面
3、把u-boot.bin下载到板子上
    tftp 41000000 u-boot.bin
4、movi write u-boot 41000000  //把uboot烧写到emmc中的u-boot分区中
5、断电,拨码开关拨到EMMC启动
6、查看效果

验证:
        情况是没有输出???
        点一个灯来试试,测试下我们编译的u-boot到底在不在运行?
        #if 1
                ldr r0, =0x11000c40 @GPK2_7 led2
                ldr r1, [r0]
                bic r1, r1, #0xf0000000
                orr r1, r1, #0x10000000
                str r1, [r0]

                ldr r0, =0x11000c44
                mov r1,#0xff
                str r1, [r0]
#endif

        现象:灯没亮,uboot程序没有执行
        解决方法:  看用户手册第五章启动顺序
        将bl1、bl2、u-boot.bin弄到一起烧写到sd卡或者emmc上
                bl1--》bl2---》u-boot.bin
        使用CodeSign4SecureBoot/build.sh来进行编译
       
        现象:灯一闪一闪的?
        分析:可能是看门狗引起的,所以关闭看门狗
        #if 1 /*for close watchdog */   
/* PS-Hold high */
                ldr r0, =0x1002330c
                ldr r1, [r0]
                orr r1, r1, #0x300
                str r1, [r0]         
                ldr     r0, =0x11000c08
                ldr r1, =0x0
                str r1, [r0]
/* Clear  MASK_WDT_RESET_REQUEST  */
                ldr r0, =0x1002040c
                ldr r1, =0x00
                str r1, [r0]
#endif         
     现象:串口没有输出

时钟初始化:串口初始化代码没问题,串口时钟有问题
        ldr r0, =0x10030000
        ldr r1, =0x666666  
        ldr r2, =CLK_SRC_PERIL0_OFFSET
        str r1, [r0, r2]
        ldr r1, =0x777777
        ldr r2, =CLK_DIV_PERIL0_OFFSET
        str r1, [r0, r2]

                把90行bl tzpc_init屏蔽掉


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表