Uboot makefile学习记录

发布者:SereneGardener最新更新时间:2024-10-18 来源: cnblogs关键字:Uboot  makefile  学习记录 手机看文章 扫描二维码
随时随地手机看文章

U-BOOT顶层makefile与linux的顶层mkefile不同,每个板有一个配置定义,如下,需要先配置后,才能make

forlinx_nand_ram256_config :  unconfig

    @$(MKCONFIG) smdk6410 arm s3c64xx smdk6410 samsung s3c6410 NAND ram256


其通过./mkconfig脚本生成include/config.mk文件,include/config.h和/board/samsung/smdk6410/config.mk,以及一些链接文件

include/config.mk文件内容如下:

ARCH   = arm

CPU    = s3c64xx

BOARD  = smdk6410

VENDOR = samsung

SOC    = s3c6410


include/config.h内容如下:

#define FORLINX_BOOT_NAND

#define FORLINX_BOOT_RAM256

#include


/board/samsung/smdk6410/config.mk内容如下---占用256MB中的最高2MB空间

ifndef TEXT_BASE

TEXT_BASE = 0xCFE00000

endi


经过配置后make时顶层makefile文件包含

include /include/config.mk

include /config.mk,且进一步包含如下

sinclude $(TOPDIR)/$(ARCH)_config.mk

sinclude $(TOPDIR)/cpu/$(CPU)/config.mk

sinclude $(TOPDIR)/cpu/$(CPU)/$(SOC)/config.mk

sinclude $(TOPDIR)/board/$(BOARDDIR)/config.mk


makefile还定义了目标文件$(OBJS),库文件$(LIBS)

u-boot:        depend version $(SUBDIRS) $(OBJS) $(LIBS) $(LDSCRIPT)

        UNDEF_SYM=`$(OBJDUMP) -x $(LIBS) |sed  -n -e 's/.*(__u_boot_cmd_.*)/-u1/p'|sort|uniq`;

        cd $(LNDIR) && $(LD) $(LDFLAGS) $$UNDEF_SYM $(__OBJS)

            --start-group $(__LIBS) --end-group $(PLATFORM_LIBS)

            -Map u-boot.map -o u-boot



U-BOOT编译出makefile文件外还有一个重要的文件/include/configs/,其定一个了各种参数CONFIG_xxx和CFG_xxx

移植工作也包括(1)在顶层添加新板的配置项;(2)在include/configs/下添加配置文件;(3)board/下创建一个新目录以便放置新板的configure.mk文件和单板相关初始化代码

 


参考[1].华清远见《嵌入式Linux系统开发技术详解——基于ARM


关键字:Uboot  makefile  学习记录 引用地址:Uboot makefile学习记录

上一篇:OK6410按键驱动程序(改)亲测可以运行
下一篇:WINCE6.0+S3C2451环境搭建过程遇到的一些问题

推荐阅读最新更新时间:2026-02-18 11:13

Uboot makefile学习记录
U-BOOT顶层makefile与linux的顶层mkefile不同,每个板有一个配置定义,如下,需要先配置后,才能make forlinx_nand_ram256_config : unconfig @$(MKCONFIG) smdk6410 arm s3c64xx smdk6410 samsung s3c6410 NAND ram256 其通过./mkconfig脚本生成include/config.mk文件,include/config.h和/board/samsung/smdk6410/config.mk,以及一些链接文件 include/config.mk文件内容如下: ARCH = arm CPU = s3
[单片机]
uboot1.1.6顶层makefile详解
VERSION = 1//主版本号 PATCHLEVEL = 1//次版本号 SUBLEVEL = 6//修正版本号 EXTRAVERSION =//版本号扩展 U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)//这个Uboot的版本为1.1.6 VERSION_FILE = $(obj)include/version_autogenerated.h HOSTARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -
[单片机]
TQ2440之uboot---1.u-boot Makefile分析
当我们编译u-boot的时候,大家键入make smdk2410_config,make 的时候都作了那些动作呢,这里我先大概介绍一下Makefile的内容,然后在大概理解一下命令执行的流程。如果有错的地方,希望大家指正,谢谢。 1.u-boot顶层目录的Makefile分析: 31 HOSTARCH := $(shell uname -m | \ 32 sed -e s/i.86/i386/ \ 33 -e s/sun4u/sparc64/ \ 34 -e s/arm.*/arm/ \ 35 -e s/sa110/arm/ \ 36 -e s/powerpc/ppc/ \ 37 -e s/macppc/ppc/) 首先执行una
[单片机]
TQ2440之uboot---4.分析u-boot Makefile 最后连接的过程
1.最后生成u-boot的过程 以下是u-boot Makefile最后连接生成u-boot的过程 UNDEF_SYM=`arm-linux-objdump -x lib_generic/libgeneric.a board/EmbedSky/libEmbedSky.a cpu/arm920t/libarm920t.a cpu/arm920t/s3c24x0/libs3c24x0.a lib_arm/libarm.a fs/cramfs/libcramfs.a fs/jffs2/libjffs2.a net/libnet.a rtc/librtc.a drivers/libdrivers.a drivers/nand/libn
[单片机]
【STM32F429学习记录】HAL库版——ADC+DMA双缓冲采样和软件滤波例程
本次移植参考了安富莱V7的ADC+DMA双缓冲例程,双缓冲编程的核心就是利用DMA传输一半和传输完成的标志位进行搞事情,将弱定义的DMAx_Streamy_IRQHandler()函数重新定义一下,要注意修改DMAx_Streamy_IRQHandler()中断函数中DMAx- LISR的传输一半和传输完成寄存器的值,要和你自己使用的DMA通道对应上,我自己刚开始学习DMA移植的时候忽略的这一点导致程序卡死不能运行,剩下的部分根据F429的例子进行了小修改,欢迎大家提出补充意见。 下载地址:https://www.lanzous.com/iaisahi /* *********************************
[单片机]
Smart210学习记录-------linux内核模块
Linux 驱动工程师需要牢固地掌握 Linux 内核的编译方法以为嵌入式系统构建可运行的 Linux 操作系统映像。在编译 LDD6410 的内核时,需要配置内核,可以使用下面命令中的 一个: #make config(基于文本的最为传统的配置界面,不推荐使用) #make menuconfig(基于文本菜单的配置界面) #make xconfig(要求 QT 被安装) #make gconfig(要求 GTK+被安装) 在配置Linux 2.6内核所使用的make config、make menuconfig、make xconfig和make gconfig这 4 种方式中,最值得推荐的是 make menuconfig,它
[单片机]
Smart210学习记录-------文件操作
一.linux文件操作(只能在linux系统上用) 创建: int creat(const char* filename, mode_t mode) filename 表示要创建的文件名,mode表示对该文件的读写权限 int umask(int newmask) 调用将 umask 设置为 newmask,然后返回旧的 umask,它只影响读、写和执行权限 S_IRUSR 用户可以读 S_IWUSR 用户可以写 S_IXUSR 用户可以执行 。。。等等 除了可以通过上述宏进行“或”逻辑产生标志以外,我们也可以自己用数字来表示,Linux 用 5 个数字来表示文件的各种权限:第一位表示设置用户 ID;第二位表示设置组 ID;第三位
[单片机]
Smart210学习记录----nand flash驱动
当读写文件请求到来的时候,流程如下   1.通过vfs进入文件系统,   2.文件系统把文件读写转换为块设备读写,其中有运用算法对读写操作进行合并,排序等,最后把块设备读写放进队列   3.循环从队列中取出读写要求,然后用处理函数(blk_init_queue设置)进行处理。    这个函数就是连接上层(IO调度)跟底层(硬件操作)的桥梁,当我们调用add_mtd_partitions的时候,就建立了上下层的联系。   4.对不同的处理要求,调用不同的nand的底层处理函数 nand flash驱动代码: #include linux/module.h #include linux/types.h #in
[单片机]
Smart210<font color='red'>学习</font><font color='red'>记录</font>----nand flash驱动
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved