fs4412开发板学习笔记(五)

一、建立自己的平台1.指定交叉编译工具 vim Makefile 在 ifeq ($(HOSTARCH),$(ARCH)) CROSS_COMPILE ?= endif 的下面增加 ifeq (arm,$(ARCH)) CROSS_COMPILE ?=arm-none-linux-gnueabi- endif2.指定产品
摘要由CSDN通过智能技术生成

一、建立自己的平台

1.指定交叉编译工具
    vim Makefile
    在
    ifeq ($(HOSTARCH),$(ARCH))
    CROSS_COMPILE ?=
   endif
    的下面增加
    ifeq (arm,$(ARCH))
        CROSS_COMPILE ?=arm-none-linux-gnueabi-
    endif
2.指定产品CPU
    我们的产品是exynos4412
    查看u-boot源码 arch/arm/cpu/armv7/exynos/ 可知U-boot已经支持。

3.指定产品的BOARD
找一个类似的board配置修改,这里参考的是board/samsung/origen/

   cp -rf board/samsung/origen/ board/samsung/fs4412
   mv board/samsung/fs4412/origen.c board/samsung/fs4412/fs4412.c

   vim board/samsung/fs4412/Makefile
   修改origen.o为fs4412.o

  cp include/configs/origen.h include/configs/fs4412.h
  vim include/configs/fs4412.h
  修改
#define CONFIG_SYS_PROMPT             "ORIGEN # "#define CONFIG_SYS_PROMPT               "fs4412 # "

  修改
#define CONFIG_IDENT_STRING           " for ORIGEN"#define CONFIG_IDENT_STRING             " for fs4412"


4.指定该板子的配置文件
  cp configs/origen_defconfig  configs/fs4412_defconfig
  make fs4412_defconfig

然后执行 ./MAKEALL
在跟目录下面即可以生成boards.cfg        //从2014.10版的U-boot开始取消了boards.cfg换使用make menuconfig配置

5.配置boards.cfg
旧的boards.cfg: 
(目标)     (平台)   (芯片)     (板子名称)       (厂商)      (类型)       (功能)
Target        ARCH   CPU      Board name   Vendor    SoC         Options
origen       arm      armv7    origen          samsung   exynos
fs4412       arm      armv7   fs4412         samsung     exynos

新的boards.cfg:
# List of boards
#   Automatically generated by tools/genboardscfg.py: don't edit//从这里可以看到该文件在新版的U-boot是由genboardscfg.py自动生成的

(状态)(平台)(芯片)(类型)  (厂商)(板子名称) (目标)(功能)(维护者)
# Status,Arch,CPU,SoC,Vendor,Board,Target,Options,Maintainers

-                arm         armv7         exynos        samsung         origen              fs4412                          origen
-               arm         armv7          exynos        samsung         smdk5420         odroid-xu3                   odroid_xu3
Active     aarch64     armv8              -               armltd           vexpress64        vexpress_aemv8a           -                          David Feng <fenghua@phytium.com.cn>

希望是如下:
-                arm         armv7         exynos        samsung         fs4412              fs4412                          

6.编译u-boot
    make distclean
    make fs4412_config
    make

二、实现能看到串口终端信息
1.确认第一条指令有运行到(点灯法)

(1)在arch/arm/cpu/armv7/start.S    134行后添加点灯程序:
    /*--------------------------------------------------*/
    从底板的原理图可以知道led2的GPIO口为GPX2_7
    从Exynos4412 User Manual (Public) version 1.0芯片手册P249可知GPX2_7的地址为0x11000c40(控制寄存器)
    /*--------------------------------------------------*/
    reset:
        bl      save_boot_params
        /*
         * set the cpu to SVC32 mode
         */
        mrs     r0, cpsr
        bic     r0, r0, #0x1f
        orr     r0, r0, #0xd3
        msr     cpsr,r0

        #if 1            //添加点灯程序
                ldr r0,=0x11000c40          @GPX2_7 led2
                ldr r1,[r0]
                bic r1,r1,#0xf0000000       @高4位清零
                orr r1,r1,#0x10000000       @设置该GPIO口为输出口
                str r1,[r0]                           @将r1的值存储到0x11000c40

                ldr r0,=0x11000c44         @数据寄存器的地址
                mov r1,#0xff
                str r1,[r0]                @数据寄存器0-7位置1(亮)   其实只有第七位相应的配置寄存器设为了输出口,所以只有第七位起作用
        #endif

    (2)添加三星加密方式
    exynos需要三星提供的初始化引导加密后,我们的u-boot才能被引导成功。
    cp sdfuse_q/ bootloader/u-boot-2013.01 -rf
        chmod 777 sdfuse_q -R

        cp ../CodeSign4SecureBoot ./ -rf

    (3)修改Makefile
    (实现sdfuse_q编译)
    $(obj)u-boot.bin:	$(obj)u-boot
        $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
      
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值