STM32工程师 LINUX学习笔记2 u-boot 启动流程

DAY 1

学习一定要利用好三分钟热血来学习。
寄存器级别的操作是stm32工程师熟悉的也是这次linux学习的重点。

u-boot 启动流程详解

通过分析 uboot 的启动流程可以了解 Linux 内核是如何被启动的。
要分析 uboot 的启动流程,首先要找到“入口”,找到第一行程序在哪里。程序的链接是由
链接脚本来决定的,所以通过链接脚本可以找到程序的入口。

  • u-boot.lds 就是u-boot链接文件。 该文件相当于STM32开发中的.sct 分散加载文件。
    定义中断向量表 起始地址也是 0X87800000,说明整个 uboot 的起始地址就是 0X87800000
    STM32中断向量表也是可设置的,默认是0x80000000
    将 arch/arm/cpu/armv7/start.s 编译出来的代码放到中断向量表后面
    在 u-boot.lds 中有一些跟地址有关的“变量”需要我们注意一下
    在这里插入图片描述
    “变量”值可以在 u-boot.map 文件中查找,除了__image_copy_start
    以外,其他的变量值每次编译的时候可能会变化,如果修改了 uboot 代码、修改了 uboot 配置、选用不同的优化等级等等都会影响到这些值。所以,一切以实际值为准!
  • u-boot.map 是 uboot 的映射文件,可以从此文件看到某个文件或者函数链接到了哪个地址。STM32也有.map文件。一样的用法。
/*
 * Copyright (c) 2004-2008 Texas Instruments
 *
 * (C) Copyright 2002
 * Gary Jennejohn, DENX Software Engineering, <garyj@denx.de>
 *
 * SPDX-License-Identifier:	GPL-2.0+
 */

#include <config.h>

OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值