二、uboot20 s5pv210移植—SPL编译分析

本文介绍了S5PV210平台移植U-Boot SPL的过程,包括SPL在IRAM中执行的原因、启动流程,以及编译SPL时根目录Makefile和Makefile.spl的分析。通过对源码的解析,揭示了SPL编译时依赖的链接脚本和文件,为理解SPL的生成提供了详细步骤。
摘要由CSDN通过智能技术生成

一、uboot20 s5pv210移植—基础环境配置



前言

在进行s5pv210的使用时,由于外设的初始化要求和空间大小,需要在IRAM中执行SPL代码进行一些外设的初始化,随后将u-boot加载到指定的DRAM中。因此,对于SPL的了解和学习十分有必要,而且SPL中的许多操作涉及到ARM相关功能和寄存器的操作,由此也展开对裸机程序的学习。可以通过下图来查看整个设备的启动流程。
在这里插入图片描述
从上图中可以看出,在IROM中的romcode执行完成后,会将Booting Device中的BL1(SPL)先load到IRAM中,因为IRAM不需要初始化,可以直接上电使用,则加载SPL后就可以执行,完成时钟和DRAM等外设的初始化后,就可以加载BL2(U-Boot)完成其他外设的初始化。为什么需要BL1?

  1. IRAM空间不足,无法加载全部u-boot。且为了节省成本
  2. DRAM需要进行初始化才可以使用,因此需要有一段开机可以执行的代码来进行DRAM的初始化

由于在执行romcode时会从Booting Devices中读取BL1到IRAM中,所以romcode中肯定存在Booting Devices的驱动。

在编译u-boot时,可以编译出spl,那spl和u-boot的区别到底在哪里,这就需要我们分析一下u-boot中spl的编译过程


1. 根目录makefile分析

在编译u-boot时,在执行完make s5pv210_defconfig而生成对应的配置文件后,则可以通过执行make生成设备运行需要的bin文件。而执行make命令时,肯定会去根目录的Makefile中执行。

all: .binman_stamp inputs

起始目标为all,通过上述代码可以看出该目标依赖于inputs,其生成规则如下:

inputs: $(INPUTS-y)

通过代码可以看出inputs依赖于$(INPUTS-y),其中INPUTS-y作为一个变量,里面包含多个内容,代码如下:

INPUTS-y += u-boot.srec u-boot.bin u-bo
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值