[uboot] (番外篇)global 您所在的位置:网站首页 番外的定义 [uboot] (番外篇)global

[uboot] (番外篇)global

2023-11-09 13:51| 来源: 网络整理| 查看: 265

以下例子都以project X项目tiny210(s5pv210平台,armv7架构)为例

[uboot] uboot流程系列: [project X] tiny210(s5pv210)上电启动流程(BL0-BL2) [uboot] (第一章)uboot流程——概述 [uboot] (第二章)uboot流程——uboot-spl编译流程

===================================================================================

一、global_data功能 1、global_data存在的意义

在某些情况下,uboot是在某些只读存储器上运行,比如ROM、nor flash等等。 在uboot被重定向到RAM(可读可写)之前,我们都无法写入数据,更无法通过全局变量来传递数据。 而global_data则是为了解决这个问题。 这里顺便一下,后续的uboot的relocation操作,也就是uboot的重定向操作,最主要的目的也是为了解决这个问题,后续会专门说明。

2、 global_data简单介绍

global_data又称之为GD. 简单地说,uboot把global_data放在RAM区,并且使用global_data来存储全局数据。由此来解决上述场景中无法使用全局变量的问题。

二、global_data数据结构 1、数据结构说明

global_data数据结构结构体定义为struct global_data,被typedef为gd_t。 也就是说可以直接通过struct global_data或者gd_t来进行声明。 struct global_data定义如下(过滤掉一些被宏定义包含的部分): include/asm-generic/global_data.h

typedef struct global_data { bd_t *bd; unsigned long flags; unsigned int baudrate; unsigned long cpu_clk; /* CPU clock in Hz! */ unsigned long bus_clk; /* We cannot bracket this with CONFIG_PCI due to mpc5xxx */ unsigned long pci_clk; unsigned long mem_clk; unsigned long have_console; /* serial_init() was called *


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有