说明:文件位置:在uboot的目录下,文件名为:config.mk。是一个makefile文件,以后会被主Makefile调用。
它的主要作用的是:
(1)具体的设置交叉编译工具链接(主Makefile中也有设置交叉编译工具链)
(2)加载include/autoconfig.mk文件(这个文件是在主Makefile中生成的)
(3)指定-Ttext链接地址
(4)makefile的推导规则
下面来具体的分析代码:
1、设置交叉编译工具链
2、加载autoconfig.mk文件,这个文件是在主Makefile中生成
3、设置链接地址,这个TEXT_BASE是在主Makefile中的x210_sd_config部分配置的
下面是主Makefile中的TEXT_BASE部分:
(1)Makefile中在配置x210开发板时,在board/samsung/x210目录下生成了一个文件config.mk,其中的内容就是TEXT_BASE=0xc3e00000相当于定义了一个变量。
在主Makefile中有配置:
(2)TEXT_BASE是将来我们整个uboot链接时指定的链接地址。因为uboot中启用了虚拟地址映射,因此这个C3E00000地址就等于0x23E00000(也可能是其它的具体地址,要取决于uboot中做的虚拟地址映射关系)。
(3)在boardsamsungx210目录下有u-boot.lds,这个就是链接脚本
4、makefile中的推导规则
注意:这里的分析的这个config.mk文件将来是需要被主Makefile调用的,上面的代码都是为了主Makefile服务了。
关键字:uboot 配置 启动过程
引用地址:
uboot总结:uboot配置和启动过程3(config.mk分析)
推荐阅读最新更新时间:2026-03-25 12:25
AT91RM9200的UBOOT启动烧写过程
Uboot 烧写过程 1. 一开始令BMS=1(拔掉跳线),则系统从片内ROM中启动。内部启动程序初始化调试串口和USB设备接口从外部载入启动程序。在Windows平台下,启动超级终端,发送文件loader.bin和u-boot.bin到SDRAM,成功启动u-boot. 2. 启动了u-boot后就利用u-boot的功能,发送boot.bin和u-boot.gz到SDRAM,然后再拷贝到FLASH,那么FLASH里面就固化了启动程序boot.bin和u-boot.gz。 3. 烧写FLASH的过程如下: U-Boot protect off all (注:清除Flash全部块的写保护) U-Boot erase a
[单片机]
uboot启动过程简要分析笔记
uboot启动类似于pc机中bios的启动过程,简要说明如下; 第一阶段 1:cup内硬件初始化(屏蔽所有中断,设置cup的时钟,存储控制器初始化,指示灯初始化状态为灭,关闭CPU内存指令/缓存); 2:拷贝第二阶段代码到RAM中以备第二阶段代码的执行; 3:设置好堆栈指针存放第二阶段代码的入口地址; 进入第二阶段 当用户按下任意键时进入下载模式(此过程只为开发人员所用得到),如果一段时间内用户没有任何操作,自动进入的启动加载模式如下(此过程是为了加载操作系统内核镜像和文件系统镜像): 4:对arm开发板上硬件资源初始化(至少包含一个串口初始化,因为加载操作系当中通常需要通过彩屏接受串口发来的Linux内核版本信息,以及
[单片机]
使用JLINK下载uboot到MINI2440的NORFASH该如何配置?
注意:以下设置适用于使用JLINK下载空板(即芯片内无程序),并且是下载到NORFALSH。 1.Target Interface (如下图): 2.CPU设置: CPU设置包括3部分内容: 2.1选择CPU(S3C2440A为ARM920T核) 2.2设置RAM地址和大小(S3C2440片内自带RAM) 使用片内RAM辅助下载代码会下得很快,否则下载速度会非常慢。 2.3Init steps(此处是对CPU的内部寄存器进行设置,不初设置内部寄存器下载会失败) 如上图所示,文本档内有多条数据,是对CPU内部寄存器进行写操作,给寄存器设置初值。点击下方的“ADD”添加命令。一 共需要添加17
[单片机]
arm学习笔记007之uboot的配置和烧写nandflash的步骤
1.先将移植好的uboot烧到norflash中(此步省略不讲) 2.要烧写的程序必须放在虚拟机的/tftpboot目录下(没有这个目录的话可以自己创建) 3.设置ip、网关等等 setenv serverip202.38.214.161;setenv ipaddr 202.38.214.163;setenv ethaddr00:0c:29:4d:e4:f4;setenv gatewayip 202.38.214.163;saveenv setenv serverip202.38.214.161;设置tftp服务器的ip地址,就是小红帽的ip setenv ipaddr202.38.214.163;设置arm开发板
[单片机]
Linux移植之内核启动过程引导阶段分析
在Linux移植之make uImage编译过程分析中已经提到了uImage是一个压缩的包并且内含压缩程序,可以进行自解压。自解压完成之后内核代码从物理地址为0x30008000处开始运行。下面分析在进入C之前内核做的一些工作,以下是内核启动过程中打印出来的信息,其中Uncompressing Linux就是在自解压代码。make uImage编译的最后也给出了链接脚本arch/arm/kernel/vmlinux.lds,以及链接的顺序arch/arm/kernel/head.o 是第一个。 分析arch/arm/kernel/vmlinux.lds可以知道程序入口的地址是stext,并且是.text.head段 277
[单片机]
Linux移植之内核启动过程start_kernel函数简析
在Linux移植之内核启动过程引导阶段分析中从arch/arm/kernel/head.S开始分析,最后分析到课start_kernel这个C函数,下面就简单分析下这个函数,因为涉及到Linux的内容较多,这里只是简单介绍下内核启动流程。先看一下内核启动的流程框图,截图来自《嵌入式Linux应用开发完全手册》。内核引导阶段已经分析过,接下来分析一下内核启动的第二阶段。 1、start_kernel函数全局概览 2、start_kernel函数调用层次 1、start_kernel函数全局概览,对start_kernel作一下粗略注释。 打开initMain.c ,下面主要分析处理UBOOT传入的参数,其中r1是传入的第一个参
[单片机]
51单片机启动过程
STC8G2K64S4-48PIN 系列、STC8G2K64S2-48PIN 系列单片内部集成了 64K 字节【0000H-FFFFH】的 Flash 程序存储器(ROM)。 1:单片机复位后,程序计数器(PC)的内容为 0000H,从 flash的0000H 单元开始执行程序。【PC是一个16位的计数器。用于存放和指示下一条要执行的指令的地址。寻址范围达64KB。PC有自动加1功能,以实现程序的顺序执行。PC没有地址,是不可寻址的,无法用指令对它进行读写。但在执行转移、调用、返回等指令时能自动改变其内容,以改变程序的执行顺序。】 2:另外中断服务程序的入口地址(又称中断向量)也位于程序存储器单元。在程序存储器中,每个中断
[单片机]
S3C2440启动程序运行过程
s3c2440有两种启动方式,一种Nor flash 启动,一种Nand flash 启动。 由于NAND FLASH是接在NAND FLASH控制器上而不是系统总线上,所以没有在S3C2440A的8个BANK中分配地址空间。如果S3C2440被配置成从Nand Flash启动,在S3C2440上电后,Nand Flash控制器的会自动的把Nand Flash上的前4K数据搬移到内部SRAM中,也就是所谓的”Steppingstone”, 同时把这段片内SRAM映射到nGCS0片选的空间(即0x00000000)。系统会从这个内部SRAM中启动,程序员需要完成的工作,就是把最核心的启动程序放在Nand Flash的前4K中,也
[单片机]