RK3399平台开发系列讲解(其他篇)1.3、U-boot启动流程分析

本文深入剖析了RK3399平台U-boot的启动流程,包括Makefile与lds、start.S汇编初始化、系统资源初始化、核心数据结构分析和命令行解析。内容涵盖处理器和内存初始化、中断配置、IO口初始化、核心数据结构如gd_t和bd_t、命令行解析及引导操作系统。此外,还介绍了配置、修改、移植和调试U-boot的实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



Platform: RK3399
OS: Android 7.1
Kernel: 4.4
UBOOT-VERSION = 2014


工具

  1. Source Insight 阅读源码工具
  2. 通过编译时产生的 System.sym 查看
  3. 通过反汇编生成的可执行文件来查看

我们分析 u-boot 分为六个阶段:

一、Makefile 与 lds

从认识内存分配开始,链接脚本,*.lds。从Makefile与config.mk中的变量,得到对应的脚本的位置,根据链接脚本,画出内存分配图。
主要得到信息:
1、开始进入点命令(ENTRY),得到程序的开始点。
2、程序的内存开始地址
3、程序的内存分段信息与对齐方式、对应的功能。

二、汇编部分 start.S

uboot 的第一阶段,汇编部分,主要完成处理器的初始化(工作模式、缓存、配置协处理器)与内存的初始化流程,内存的初步分配(用于为c语言的实现提供对应的运行环境)
附:c语言的运行环境有哪些?答:一个堆栈用于实现函数调用,因为c语言的汇编过程实现函数都用相同的过程,必须设置一个堆栈。
1、处理器初始化,熟悉对应的处理器构架,知道对应的寄存器的作用:
设置主要寄存器的值,清除缓存,设置为平坦模式(直接从内存中读取指令),设置协处理器,配置相关的内存控制方式

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

内核笔记

你的鼓励是我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值