关于uboot.map 文件的作用

正点原子嵌入式linux驱动开发——U-boot启动流程详解 正点原子linux驱动开发的学习笔记,这一篇是uboot的源码解读,来学习uboot的启动详细流程 阅读详情

用make命令编译时自动生成的,里面包含所有的函数逻辑地址.
printf("0x%x\n", function_name); /* 这个逻辑地址,可以在u-boot.map里找到对应的函数名,用于是debug查错,相当好,例如函数指针. */

实际上,kernel开发,也常常用syste.map文件.

LDFLAGS += -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds


这句话同时生成 u-boot.map 和 u-boot

cd $(LNDIR) && $(LD) $(LDFLAGS) $$UNDEF_SYM $(__OBJS) \
--start-group $(__LIBS) --end-group $(PLATFORM_LIBS) \
-Map u-boot.map -o u-boot


经测试,使用
gcc -Wl,-Map,a.map foo.c -o foo

可生成..map 文件

在u-boot中,就有一种快速方法“从众多的同名函数中找到与我们相关的那一个”:
编译出来完的uboot会生成一个u-boot.map文件,你只要以这个“函数的名字”为关键字去u-boot.map中查找,就能找到编译出来的uboot映像,使用的是哪个文件中的函数了。
比如:uboot源码中对icache_enable函数的定义会存在于很多文件中,那么到底哪个才是与我们有关的呢?
我们只要去u-boot.map文件查找“icache_enable ”,就会看到:

“ .text          0x33f98f18      0x104 cpu/arm920t/libarm920t.a(cpu.o)
0x33f98fb8                icache_status
0x33f98fe4                icache_enable    “


U-boot源码阅读-使用u-boot.map定位函数位置 在阅读U-boot源码时,同一个函数会有多个定义,这不利于快速理解U-boot。如何唯一定位函数的位置呢? 原理 在我们配置、编译U-boot后,gcc将生成一个map文件。在map文件中,包含函数名以及函数所在文件。我们可以通过通过这个map文件,快速定位我们想要分析函数的位置。为方便手动查找,编写一个脚本,以函数名为参数,输出定义函数的文件和行号,并用vim打开。 脚本名"s", 内容:... 阅读详情

相关推荐

U-Boot启动流程详解

本章我们来详细的分析一下 uboot 的启动流程,理清 uboot 是如何启动的。表 32.1.1 中的“变量”值可以在 u-boot.map 文件中查找,表 32.1.1 中除了__image_copy_start以外,其他的变量值每次编译的时候可能会变化,如果修改了 uboot 代码、修改了 uboot 配置、选用不同的优化等级等等都会影响到这些值。在 u-boot.lds 中有一些跟地址有关的“变量”需要我们注意一下,后面分析 u-boot 源码的时候会用到,这些变量要最终编译完成才能确定的!

qq_28576837的博客 1432

U-Boot编译——System.map与u-boot.map

U-Boot编译之后会在其顶级目录中生成System.map和u-boot.map两个文件: 1、System.map 该文件按链接地址由小到大的顺序列出所有符号: 由上面信息可知,_start符号被链接在最前面的地址0x33f80000,它是U-Boot的入口。SDRAM初始化完成后,需要将U-Boot加载到上述地址(SDRAM初始化前,U-Boot在Nor Flash或者芯片内部RAM中运行...

su1041168096的博客 952

[uboot] (第四章)uboot流程——uboot编译流程

uboot编译流程简单介绍

ooonebook的博客 1万+

Linux内核映像vmlinux、Image、zImage、uImage,system.map区别

编译好内核后,一般都会生成标题中的各种文件,这些文件都有什么不同呢?

l00102795的博客 1279

超详细【Uboot驱动开发】(二)uboot启动流程分析

超详细的Uboot启动流程分析

Donge's Blog 6549

UBOOT新的进度

由于老婆要用4G的SD卡拍相片了,我就使用32MB的SD卡来做刷机研究了。使用友善的SD-Flash.exe是不能刷新32MB的SD卡的。我安装了虚拟机的UBUNTU,但无法使用DD命令把编译出来的BIN文件刷新到这32MB的卡上。我要知道BL1后面调试的代码是哪里?这个要打印出最后执行函数写的是CONFIG_SYS_TEXT_BASE,这个在Insight3里找的太多结果了,可能与我没有删除完全

windsun0800的专栏 1257

uboot相关知识点汇总(持续更新中)

1.      uboot编译完成后生产的uboot,uboot.bin,uboot.map,uboot.srec分别是什么?   U-BOOT elf格式的image U-BOOT.bin 原始二进制文件(raw image) U-BOOT.MAP 符号表 U-BOOT.SREC S-Record格式的image       2.u-boot.m

专注于嵌入式开发 1018

超详细!DeepSeek本地搭建部署、搭建知识库及智能体教程

通过以上详细的步骤,我们完成了DeepSeek的本地搭建部署、知识库的搭建以及智能体的创建。这一过程不仅让我们深入了解了大模型的应用,还为我们开发个性化的智能应用奠定了基础。在实际应用中,可以根据具体需求进一步优化模型、知识库和智能体的性能和功能。希望本文能帮助大家快速上手DeepSeek相关技术,开启属于自己的人工智能创新之旅。

Ljugg的博客 8184

IMX6ULL移植篇-uboot源码主要文件说明

uboot源码主要文件

wojiaxiaohuang2014的博客 296

LAMMPS实操系列(一): 大量FCC-CoCrCuFeNi高熵合金建模与最稳定结构筛选

高熵合金(High-entropy alloys,HEA),是由五种或五种以上等量或大约等量金属形成的合金。由于高熵合金可能具有许多优秀的物理化学性质,因此在材料科学领域受到广泛关注

Ceshigo_CD的博客 3257

当NetApp 7-mode遇到单控制器故障:HA模式手动修复全记录

本文详细记录了NetApp 7-mode存储系统在单控制器故障时的应急修复过程,包括HA配置重建、磁盘初始化和业务恢复等关键步骤。通过实战案例解析如何解决`VIA Interconnect is down`等典型问题,为企业级存储系统的高可用保障提供实用指南。

yolo5detector的博客 246

uboot-链接脚本(u-boot.lds)

uboot链接脚本分析。

qq_41545736的博客 914

WinCC与施耐德PLC的Modbus TCP通信实战指南

本文详细解析了西门子WinCC与施耐德PLC通过Modbus TCP协议实现通信的完整实战流程。内容涵盖硬件网络配置、Modbus地址映射核心规则、WinCC驱动连接建立、变量创建及高级数据访问技巧,并提供了常见故障排查思路,帮助工程师高效解决跨品牌设备通信难题。

weixin_29194693的博客 1001

有关Uboot、linux移植过程中,关于Uboot、linux移植的Makefile的自我总结

关于uboot 、linux的Makefile分析经验 a.从顶层的Makefile为起始出发点,进行分析。 b.Makefile主要注意的四个关键要素:(1)目标,(2)依赖, (3)变量, 和 (4)执行命令语句。其中,(1)目标是突破口,可以根据目标出发,进行分析。当遇到的时候再去分析对应的 (2)依赖, (3)变量, 和 (4)执行命令语句 c.关于 Makefile其中的一些 语法、规则、函数等,可以在遇到的时候,进行学习、分析、归纳,总结。 d.问题可以分为两类:(1).是知道不懂,知道

CouragelDesire的博客 153

当知识图谱遇见多模态:突破文本界限的智能认知革命

本文探讨了知识图谱与多模态技术的融合,揭示了其在医疗诊断、文化保护等领域的革命性应用。通过图神经网络、对比学习框架和跨模态注意力机制等技术,实现了文本、图像和音频数据的智能关联与认知。文章还分享了在Neo4j等图数据库中的实践案例和优化策略,为构建下一代智能认知系统提供了技术参考。

weixin_29197835的博客 464

华东师范大学2020机试题解

1.统计卡牌的值 #include<iostream> #include<string> #include<vector> //#include<algorithm> using namespace std; int main() { int n; cin>>n; int answer=0; for(int i=0;i<n;++i) { string str; ci

qq_42254342的博客 1901

uImage,zImage,bzImage小解 (System.map、vmlinuz、initrd-2.4.7-10.img理解)

在网络中,不少服务器采用的是Linux系统。为了进一步提高服务器的性能,可能需要根据特定的硬件及需求重新编译Linux内核。编译Linux 内核,需要根据规定的步骤进行,编译内核过程中涉及到几个重要的文件。比如对于RedHat Linux,在/boot目录下有一些与Linux内核有关的文件,进入/boot执行。   编译过RedHat Linux内核的人对其中的System.map、vmlinu

Kaiwii的专栏 1438

边缘计算与产业生态系统

目录 文章目录目录边缘计算产业参与者边缘计算产业生态系统 边缘计算产业参与者 边缘计算领域参与者众多,主流公司以打造生态优势为目标,基于自身服务层级向产业链上下两端进行拓展,目前市场主要参与者有: 系统集成商:在产业头部,具有广泛的能力,可以集成不同生态系统公司的产品,具有一定的全球性属性,在边缘计算领域大多由云服务商、电信运营商担任。 云服务商:具有领先的云技术优势与应用生态体系,同时拥有全球性资源布局与市场资源生态,并渴望成为边缘计算主导者。 电信运营商:具有边缘基础设施优势,以及不可替代的

烟云的计算 2103

U-Boot移植

一.uboot启动流程 1.uboot工程目录分析 类型 名字 描述 文件夹 api 与硬件无关的API函数 u-boot自带 arch 与架构体系相关的代码 board 不同单板的定制代码 cmd

weixin_44299496的博客 225

利用requests库下载bilibili字幕文件

文章目录1. 前言2. 程序下载大法好2.1 挖掘思路2.2 核心知识点2.3 汇总代码 1. 前言   之前的博客介绍了使用工具下载B站视频,但美中不足的是无法下载字幕。为了提高效率,将下载字幕的工作用程序自动化处理。 2. 程序下载大法好 2.1 挖掘思路   在谷歌浏览器中按下F12,打开谷歌开发者工具。搜索subtitle,则会得到一个json文件,如下图所示:   在网页中空白位置点击查看网页源代码,然后通过搜索(Ctrl+f)查找subtitle,则会发现在subtitle_url中包含了对应

herosunly的博客 4万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

关于u-boot.map 文件的作用

用make命令编译时自动生成的,里面包含所有的函数逻辑地址. printf("0x%x\n", function_name); /* 这个逻辑地址,可以在u-boot.map里找到对应的函数名,用于是debug查错,相当好,例如函数指针. */ 实际上,kernel开发,也常常用syste.map文件. LDFLAGS += -Bstatic -T $(LDSCRIPT) -Ttex

Allen.Yao的专栏 1851

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

UBOOT学习【二】-Uboot链接文件

前面第一章已经了解了嵌入式设备的存储介质,以及它们的用途、大致启动流程。但是,对于编译后的代码如何在内存上分配,处理器是不知道,这需要我们人为地指定。这时候,后缀为lds的链接文件出现了,它规定了编译后的代码各个段是如何分配的。理解了它,对于我们对u-boot也是大有帮助的。

weixin_62941746的博客 991

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

[uboot] (番外篇)uboot之fdt介绍

介绍uboot中的device tree的配置以及使用。简单流程介绍等等

ooonebook的博客 2万+
上一篇: Riak Core Guide 1
下一篇: unix下的I/O——阻塞,非阻塞,同步,异步
laohan_
博客等级 码龄15年 112粉丝 224原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值