嵌入式linux ARM启动地址

2023-12-01

我按照一些文档通过 sdcard 在 ARM 板(例如:Freescale Vybrid tower)上启动嵌入式 Linux。在文档中,有构建 uImage 并将 u-boot 写入 sdcard 的步骤,如下所示:

sudo dd if=u-boot.imx of=/dev/sdX bs=512 seek=2
mkimage -A arm64 -O linux -T kernel -C none -a 0x81000000 -e 0x81000000 -n
“Linux” -d Image uImage

我想知道的是他们从哪个数据表/UM/RM或任何文档中获得了编号:bs=512eek=2,-a 0x81000000(加载地址),-e 0x81000000(入口点)

还请解释一下加载地址/入口点地址是什么意思?


我想知道的是他们从哪个数据表/UM/RM或任何文档中获得了编号:bs=512eek=2,-a 0x81000000(加载地址),-e 0x81000000(入口点)

The bs=512 seek=2规范应来自 SoC 的 NXP/Freescale 参考手册(例如,“扩展设备:SD、eSD 和 SDXC”部分)系统启动章节)。

当配置为从 SD 卡启动时,(SoC 的)ROM 启动程序将在字节偏移 0x400(或 2 * 512 = 1024)处查找程序映像(例如 U-Boot),这是第三个 512 字节扇区。
第一个扇区假定为 MBR,第二个扇区保留用于可选的辅助映像表(使用 NXP 文档中的术语)。

Allwinner SoC 对 SD 卡使用类似的启动方案(即 U-Boot 映像位于原始扇区中的固定位置,而不是分区的一部分),但映像从第 17 个扇区开始。
某些 SoC(例如 Atmel)不是加载原始扇区,而是通过从 FAT 分区加载文件来从 SD 卡启动。

还请解释一下加载地址/入口点地址是什么意思?

这些值被指定给mkimage实用程序,以便它们可以安装在 uImage 标头中。然后,U-Boot 将在加载和解压 uImage 时使用这些值。

The load address指定 U-Boot 所需的内存地址来定位映像。图像被复制到该内存地址。
The entry point指定 U-Boot 要跳转/分支到的内存地址,以便执行映像。该值通常与load address.

根据(Vincent Sanders),对于 ARM Linux 内核,建议的加载和入口点地址是从物理内存开始处的 0x8000引导 ARM Linux.
See 使用 LOADADDR 构建内核 uImage更多细节。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

嵌入式linux ARM启动地址 的相关文章

  • 如何使用 gcc 编译代码和 ARM Cortex A8 目标进行调用图分析?

    我对这个已经咬牙切齿了 我需要在 ARM 板上进行分析并需要查看调用图 我尝试使用 OProfile Kernel perf 和 Google 性能工具 一切正常 但不输出任何调用图信息 这使我得出结论 我没有正确编译代码 我在编译 C 代
  • RAM 存储二进制数和汇编语言的冒泡排序

    我必须使用 ARM v7 执行一个例程 在 RAM 内存中存储 10 个二进制数 然后使用冒泡排序对这些数字从高到低进行排序 我应该如何开始 func bubbleSortAscendingU32 ldr r3 r0 4 mov r1 9
  • ARM Cortex A8 PMNC 读取在启用后也给出 0.. 有什么想法/建议吗?

    MODULE LICENSE GPL MODULE DESCRIPTION user mode access to performance registers int init arm init void unsigned int valu
  • 内核虚拟地址转换

    考虑到 Linux 和 32 位 x86 架构 可访问的 4GB 地址空间的比例为 3 1 用户空间分配0 3 Gb 而3 4 Gb 分配给内核 大于 3Gb 且位于内核地址空间的虚拟地址如何转换为物理地址 页表会出现吗 梅尔 戈尔曼的书中
  • ARM 中只有两个操作数的 ADD 或 SUB

    我正在学习ARM汇编语言 我读过 ADD 应该有 3 个操作数 然而 我见过很多案例 现实中只有两种 例如 STR R1 SP 0x20 var 1C LDR R1 a lua 0x1DE4E6 MOVS R0 R4 haystack AD
  • fork() & 内存分配行为

    我在一个禁用交换和禁用内存过量使用的系统上工作 假设我的进程当前消耗 100 MB 内存 而系统可用内存小于 100 MB 如果我执行 fork 它会失败 因为内核也尝试为子进程分配 100 MB 的空间吗 我读过 Linux 在分叉时使用
  • Linux用户空间线程、内核线程、轻量级进程

    我对所有这些实体以及它们在 Linux 中如何互连感到有点困惑 Unix 内部原理 一书指出lightweight process LWP 是内核支持的用户线程 并且该内核看不到进程内的线程 对于 Linux 来说仍然如此吗 据我了解 用户
  • 如何在嵌入式Linux中高效地在VFAT分区上创建大文件

    我正在尝试在嵌入式 Linux 盒子中使用 dd 命令在 VFAT 分区上创建一个大的空文件 dd if dev zero of mnt flash file bs 1M count 1 seek 1023 目的是跳过前 1023 个块并在
  • 如何在Linux内核中启用CONFIG_PREEMPT选项?

    我是 Linux 内核编程的新手 尝试在 x86 64 上使用旧内核 Linux 2 6 32 我想启用其中的 CONFIG PREEMPT 选项 但找不到有关如何执行此操作的信息 我可以使用我的首选选项编译新内核 但不知道在这种情况下我需
  • 使用 GCC 为 Linux 设备驱动程序编译 Intel AVX 内联

    我在 corei7 上的 ubuntu 上运行 gcc 版本 4 8 2 从谷歌搜索中找到了有关 AVX 内在函数的信息 但我不确定这组内在函数是否可以用于 Linux 设备驱动程序并进行编译 如果可以的话 这里的任何人都可以告诉我 mak
  • M1 MacBook Pro 上的 Android Studio 无法使用 ABI armeabi-v7a 模拟系统映像

    我的 M1 Macbook Pro 上的 Android Studio 可以很好地模拟 ABI arm64 v8a 的所有系统映像 API 24 29 30 31 但是 它无法使用 ABI armeabi v7a 运行所有映像 例如 API
  • dmesg 和 /var/log/kern.log 之间的区别

    我正在修改kvm模块 并在内核代码中添加了printk语句 运行虚拟机后 printk为我提供了错误地址和有关客户操作系统的其他信息 我需要根据此信息生成统计信息 当我使用 dmesg 时 我只能看到错误地址 在内核空间中 即它们的地址高于
  • 在执行期间访问.eh_frame数据

    我正在尝试访问以下内容 eh frame正在运行的程序的一部分 具体来说 该程序是 Linux 内核 2 6 34 8 这 eh frame包含用于异常处理的有用数据 我想在内核代码内部使用它 该部分已经由以下人员编写gcc readelf
  • 分析 Cortex-M7 (stm32f7) 上的 memcpy 性能

    简洁版本 从 GNU ARM 工具链中提取的 memcpy 的性能指标在 ARM Cortex M7 上对于不同的副本大小似乎差异很大 即使复制数据的代码始终保持不变 这可能是什么原因造成的 长版 我是使用 GNU Arm 工具链 11 2
  • 如何在 Linux 内核空间使用 ioctl()?

    可以打电话吗ioctl来自 Linux 内核模块 谁能提供一个如何使用它的例子吗 您可以尝试拨打电话sys ioctl 如果内核是用以下命令编译的 则它会被导出CONFIG COMPAT 或者 如果您有设备驱动程序struct file o
  • u-boot:搬迁

    这是一个与u boot相关的基本问题 为什么 u boot 代码会自行重新定位 好吧 如果 u boot 是从 NOR flash 或启动 ROM 空间执行 那么这是有道理的 但如果它已经从 SDRAM 运行 为什么它必须再次重新定位自己呢
  • 使用Linux虚拟鼠标驱动

    我正在尝试实施一个虚拟鼠标驱动程序根据基本 Linux 设备驱动程序书 有一个用户空间应用程序 它生成坐标以及内核模块 See 虚拟鼠标驱动程序和用户空间应用程序代码 http www embeddedlinux org cn Essent
  • vm.dirty_ratio 和 vm.dirty_background_ratio 之间的区别?

    我目前正在试验中找到的内核参数 proc sys vm 尤其dirty ratio and dirty background ratio 内核文档对两者都有以下解释 脏背景比例 包含 以包含空闲页面的总可用内存的百分比表示 和可回收页 后台
  • 内存地址是否指向一个字节的信息?

    以下是 DTS 文件的摘录 linux arch powerpc boot dts 板名 dts memory device type memory reg lt 0x00000000 0x40000000 gt 1GB at 0 嵌入式设
  • ARM 系统调用的接口是什么?它在 Linux 内核中的何处定义?

    我读过有关 Linux 中的系统调用的内容 并且到处都给出了有关 x86 架构的描述 0x80中断和SYSENTER 但我无法追踪 ARM 架构中系统调用的文件和进程 任何人都可以帮忙吗 我知道的几个相关文件是 arch arm kerne

随机推荐

  • 列出模型剃须刀视图

    我有一个应用程序 asp net mvc 在控制器中我有这个 public ActionResult Index Upload Models ClientModels model1 new Models ClientModels Array
  • 如何在隐藏“IdentityUser”的同时向业务层公开“UserManager”?

    我不想引用 EntityFramework 因此Identity EntityFramework以其IdentityUser在我的域中 但我想用UserManager of Identity Core它使用IUserStore
  • 为什么个人访问令牌不适用于 Bitbucket REST API?

    TL DR 为什么 在 Bitbucket Web UI 中创建的名称 PAT 组合不适用于 Bitbucket REST API 或存储库克隆 我一直在读various 文档在比特桶上REST API and 个人访问令牌 目的是在调用前
  • 我可以使用 Spring 注入同一个类吗?

    我有一个类 UserService 实现了 Service 并用 Service StereoType 进行了注释 我正在使用 Spring AOP 并且想要为此做临时解决方法 我知道这可以用更好的方式来完成 Service public
  • 一个接一个地打开链接

    我正在制作一个网站 每 30 秒打开一个新窗口 我让它正确打开新窗口 但我希望它在打开新窗口之前关闭最后打开的窗口 因此一次只打开一个窗口 我该怎么做 到目前为止 这是我的代码
  • 在 Matlab 中使用 interp2 并输入 NaN

    我有一些相对完整的观测数据 但在矩阵中包含一些 NaN 值matlab我想使用将它们插值到更均匀间隔的网格interp2 因此 为了简单起见 假设我有一个完整的 无 NaN 值 矩阵 以及一个看起来像这样的矩阵 A 1 2 3 4 2 3
  • Jquery 粘性菜单不被页脚捕获

    谁能帮我找出我的脚本的问题吗 function var top sidebar offset top parseFloat sidebar css marginTop replace auto 0 var footTop footer of
  • 获取当前目录下的文件列表

    我正在尝试获取一个脚本来读取脚本文件所在目录的内容 然后根据部分名称识别几个特定文件并压缩它们 但我无法得到object Files财产来工作 有人能告诉我这里出了什么问题吗 Set FSO CreateObject Scripting F
  • 迭代视图网格 SwiftUI

    我想获取一个可变长度的数组并返回一个包含 3 列和可变行长度的视图网格 视图应该根据数组值更新其内容 以下代码将为每张卡片呈现一个 CardPicView 在滚动视图中标题为 A I struct ContentView View let
  • 在 IE8 中赋予子窗口焦点

    我正在尝试从 Javascript 函数启动一个弹出窗口 并使用以下调用确保它具有焦点 window open popupUrl popupName focus 它适用于所有其他浏览器 但 IE8 将新窗口保留在后台 并带有闪烁的橙色任务栏
  • 使用 AutoFac 和 AutoMock 模拟 CloudBlobClient

    我正在尝试为我的 AzureBlobRepository 编写单元测试 存储库在构造函数中接收 CloubBlobClient 我想嘲笑客户端 但这给出了一个例外 using var mock AutoMock GetLoose var m
  • 带有异步的 jQuery Ajax 调用返回 null responseXML

    我有简单的 JavaScript 代码 它使用 Ajax API 从服务器获取 XML function loadXML path node var response obj Fire Ajax request and get the XM
  • WCF、Silverlight:找不到 clientaccesspolicy.xml

    我正在尝试将我的 Silverlight 应用程序连接到我自己托管的 WCF 服务 我创建了一个 clientaccesspolicy xml 文件 并将其放置在服务宿主项目的根目录中 但是当我尝试访问该服务时 我的http 嗅探器说找不到
  • HTML 单独注释每一行,而不是块注释

    菜鸟问题 但我希望能够使用 VS Code 中的键盘快捷键快速注释 HTML 代码 问题是我得到这个 而不是这个 有人知道 VS Code 中有一个很好的扩展吗 谢谢 Julien 请参阅我写的这
  • 如何在android中以编程方式获取设备的IMEI/ESN?

    为了唯一地标识每个设备 我想使用 IMEI 或 CDMA 设备的 ESN 号 如何以编程方式访问它 你想打电话android telephony TelephonyManager getDeviceId 这将返回唯一标识设备的任何字符串 G
  • 当使用值实例化模板类对象时,C++20 概念无法编译

    请参考以下C 20代码 template
  • MySQL 对字符串第一部分的索引

    我正在 MySQL 中查询一个非常大的表 超过 3M 条记录 其中包含category id subcategory id 和邮政编码 数据库中的 zip 可能是也可能不是 10 个字符 目的是获取指定邮政编码的特定半径内的所有目录 子目录
  • Spring 注解 - 注入对象映射

    使用 XML 注释 我使用以下配置注入地图
  • PHP debug_backtrace 在生产代码中获取有关调用方法的信息?

    是否有令人信服的理由不使用debug backtrace仅仅是为了确定调用方法的类 名称和参数列表吗 不用于调试目的 它的函数名称中有 debug 一词 这让我觉得以这种方式使用它有点肮脏 但它符合我需要做的事情 一个可以从许多地方调用的单
  • 嵌入式linux ARM启动地址

    我按照一些文档通过 sdcard 在 ARM 板 例如 Freescale Vybrid tower 上启动嵌入式 Linux 在文档中 有构建 uImage 并将 u boot 写入 sdcard 的步骤 如下所示 sudo dd if