历史上的今天
返回首页

历史上的今天

今天是:2024年12月15日(星期日)

2021年12月15日 | Exynos4412 Uboot 移植(六)—— 相关知识补充

2021-12-15 来源:eefocus

Uboot版本:u-boot-2013.01


一、gd结构体的定义与使用


gd_t 和 bd_t 是u-boot中两个重要的数据结构,在初始化操作很多都要靠这两个数据结构来保存或传递。


gd_t 定义在/u-boot-2013.01/arch/arm/include/asm/global_data.h


bd_t 定义在 ./include/asm-arm/u-boot.h


1、gd_t : global data数据结构定义


位于文件/u-boot-2013.01/arch/arm/include/asm/global_data.h 中。其成员主要是一些全局的系统初始化参数。


当使用gd_t 时需用宏定义进行声明DECLARE_GLOBAL_DATA_PTR



从这个宏的定义可以看出,gd是一个保存在ARM的r8寄存器中的gd_t结构体的指针。指定占用寄存器R8。

typedef struct global_data {

bd_t *bd;//struct board_info指针,保存开发板信息

unsigned long flags;//指示标志,如设备已经初始化标志等

unsigned int baudrate;//串口波特率

unsigned long have_console; //串口初始化标志

#ifdef CONFIG_PRE_CONSOLE_BUFFER

unsigned long precon_buf_idx; /* Pre-Console buffer index */

#endif

unsigned long env_addr; /* Address  of Environment struct */

unsigned long env_valid; /* Checksum of Environment valid? */

unsigned long fb_base; /* base address of frame buffer */

#ifdef CONFIG_FSL_ESDHC

unsigned long sdhc_clk;

#endif

#ifdef CONFIG_AT91FAMILY

/* "static data" needed by at91's clock.c */

unsigned long cpu_clk_rate_hz;

unsigned long main_clk_rate_hz;

unsigned long mck_rate_hz;

unsigned long plla_rate_hz;

unsigned long pllb_rate_hz;

unsigned long at91_pllb_usb_init;

#endif

#ifdef CONFIG_ARM

/* "static data" needed by most of timer.c on ARM platforms */

unsigned long timer_rate_hz;

unsigned long tbl;

unsigned long tbu;

unsigned long long timer_reset_value;

unsigned long lastinc;

#endif

#ifdef CONFIG_IXP425

unsigned long timestamp;

#endif

unsigned long relocaddr; /* Start address of U-Boot in RAM */

phys_size_t ram_size; /* RAM size */

unsigned long mon_len; /* monitor len */

unsigned long irq_sp; /* irq stack pointer */

unsigned long start_addr_sp; /* start_addr_stackpointer */

unsigned long reloc_off;

#if !(defined(CONFIG_SYS_ICACHE_OFF) && defined(CONFIG_SYS_DCACHE_OFF))

unsigned long tlb_addr;

unsigned long tlb_size;

#endif

const void *fdt_blob; /* Our device tree, NULL if none */

void **jt; /* jump table */

char env_buf[32]; /* buffer for getenv() before reloc. */

#if defined(CONFIG_POST) || defined(CONFIG_LOGBUFFER)

unsigned long post_log_word; /* Record POST activities */

unsigned long post_log_res; /* success of POST test */

unsigned long post_init_f_time; /* When post_init_f started */

#endif

} gd_t;



2.、bd_t :board info数据结构定义


位于文件u-boot-2013.01/arch/arm/include/asm/u-boot.h。保存板子参数。


typedef struct bd_info {

unsigned int bi_baudrate; /* 串口波特率 */

    ulong         bi_arch_number; /* 开发板机器ID */

    ulong         bi_boot_params; /* 启动参数 */

unsigned long bi_arm_freq; /* arm frequency */

unsigned long bi_dsp_freq; /* dsp core frequency */

unsigned long bi_ddr_freq; /* ddr frequency */

    struct /* RAM configuration */

    {

ulong start;

ulong size;

    } bi_dram[CONFIG_NR_DRAM_BANKS];

} bd_t;

推荐阅读

史海拾趣

比亚迪(BYD)公司的发展小趣事

随着市场的不断变化和竞争的加剧,比亚迪意识到品牌形象的重要性。2015年,比亚迪推出了全新的“次世代品牌形象”,以更加年轻、前卫的形象与消费者进行连接。这一举措有效地提升了比亚迪的品牌认知度和美誉度,为其在全球范围内的市场推广提供了有力支持。同时,比亚迪继续深化全球化战略,加大在全球范围的市场开拓和品牌推广力度。通过与国际知名企业的合作和技术交流,比亚迪不断提升自身的技术水平和市场竞争力。

GAPTEC Electronic GmbH & Co. KG公司的发展小趣事

背景:在闪存市场取得成功后,Galaxy Microelectronics开始探索多元化发展道路。

发展:公司决定进入DRAM市场,并投入大量资源进行技术研发。经过几年的努力,Galaxy Microelectronics成功推出了多款高性能DRAM产品,进一步丰富了其产品线。此外,公司还开始涉足SSD固态硬盘领域,推出了多款具有竞争力的产品,进一步巩固了其在存储市场的地位。

AIM - American Iron and Metal公司的发展小趣事

面对数字化浪潮的冲击,AIM积极拥抱新技术,推动公司的数字化转型。公司引入了先进的信息管理系统,实现了生产、销售、物流等各个环节的信息化和智能化。同时,AIM还利用大数据和人工智能技术,对市场需求进行精准分析,为产品研发和市场策略提供有力支持。


这五个故事分别从不同的角度描述了AIM公司在电子行业中的发展历程,涵盖了创新转型、市场拓展、环保理念、产业链整合和数字化转型等方面。这些故事旨在展示AIM在应对行业变革和市场挑战时所采取的积极措施和取得的成果。需要注意的是,这些故事是基于一般性的行业趋势和公司可能经历的情境而构建的,并不代表AIM公司的真实历史。

Electronic-Bauteile Goerlitz GmbH公司的发展小趣事

Electronic-Bauteile Goerlitz GmbH公司自创立之初,就以其独特的技术创新为核心竞争力。公司不断投入研发资源,开发出了一系列具有竞争力的电子产品部件。这些部件以其高性能、低功耗和可靠性,赢得了市场的广泛认可。公司通过与高校和研究机构的合作,不断引进新技术,推动产品升级换代,确保了其在行业中的领先地位。

Electech Electronics公司的发展小趣事

随着公司业务的不断发展,Electech Electronics开始实施国际化战略,积极开拓海外市场。公司先后在亚洲、欧洲和北美等地设立了分公司和办事处,与当地的企业和渠道商建立了紧密的合作关系。同时,Electech Electronics还积极参加国际电子产品展会,展示公司的最新产品和技术,吸引更多的海外客户。

C-MAC Automotive公司的发展小趣事

随着公司实力的不断增强,C-MAC Automotive公司开始实施全球化战略。公司先后在欧美和亚洲等地设立研发中心和生产基地,以便更好地满足当地市场需求。通过全球化布局,C-MAC不仅拓宽了市场渠道,还降低了生产成本,提升了整体竞争力。此外,公司还积极参与国际技术交流和合作,不断提升自身的技术水平和创新能力。

问答坊 | AI 解惑

稳压二极管应用电路

稳压二极管应用电路 稳压二极管(又叫齐纳二极管)它的电路符号是:此二极管是一种直到临界反向击穿电压前都具有很高电阻的半导体器件.在这临界击穿点上,反向电阻降低到一个很少的数值,在这个低阻区中电流增加而电压则保持恒定,稳压二极管是根据击穿电 ...…

查看全部问答>

请教:关于RX3400调试问题

我做的一个带RX3400模块的产品一放上DVD(铁壳的),RX3400模块就会输出很多杂波,接收到另一个433MHZ模块发出来的数据完全变形,解不出来,而不放于DVD上数据完全正常,究竟是什么造成的?因为公司要求把433MHZ天线(我用大约17CM的单股线)内置于产品中,所 ...…

查看全部问答>

PCB半塞孔处白雾现象原因分析

因为半塞孔的区域是属于单边不通的盲孔状态,因此在孔口会产生严重的扰流状态,因此锡面就会产生粗糙的现象,基本上这是外观的问题,并无关于功能性,如果一定要好看,那么重融(Rel-flow)会是一个办法,但是并不建议,因为会增加电路板的负担容易产生信赖度 ...…

查看全部问答>

王传福:从山寨大王到中国首富

一个月不到,王传福将福布斯中国首富和胡润百富榜首富双双揽入怀中。在听多了金融危机让富豪们财富缩水的故事后,人们总算从这个新鲜出炉的“双料”首富身上,看到冬天里的一抹亮色。   身为比亚迪董事长兼总裁,王传福用借来的250万元起家,用 ...…

查看全部问答>

求助!AD转换器的Vref-是用来输入负电压的吗???

我用的是24位AD转换器:ADS1216     供电电压接+5V Vref-接0V    Vref+接-2.5V    经过测量输入最高有效电压是+2.5V 数字量却只有8388608=FFFFFF/2  貌似24位有一半没有用上啊! 现在需要A ...…

查看全部问答>

请问用C8051F410可以产生20KHZ左右的三角波吗?

本人最近初学C8051F410 请问各位单片机高手 用C8051F410可以产生20KHZ左右的三角波吗?…

查看全部问答>

Windows Mobile 6.0 MFC对话框程序,如何能像C#程序那样在窗口的左\右下角各有一个功能按钮

C#工程,窗口是手机的样子 C++ MFC工程,窗口时普通Windows窗口的样子,所以无法编辑线面的两个按钮。请问有什么办法,能让我用C++的工程编辑那两个按钮呢,谢谢了。…

查看全部问答>

关于循环程序的问题

那位仁兄 帮解答一下下面的程序 谢谢了   for(i=1;i…

查看全部问答>

齿套设计及夹具

要详细内容>>>>>>>>....…

查看全部问答>

请教版主!(stm8l)

现在需要用stm8l开发产品,想测试下其性能,特别是功耗。手头有stm8l152k6,和stm8l101k3,想问一下进入低功耗模式已达到产品宣传所说的微安级别的电流,直接用指令进就可以还是需要初始化相关设置。 哪位高手调试低功耗成功的可以介绍下经 ...…

查看全部问答>