qemu arm-trusted-firmware atf 的编译

news2024/10/6 8:37:00

参考网站

  • ATF (arm-trusted-firmware),可以称之为 Trusted Firmware-A (TF-A),也就是 TF-A

  • https://www.trustedfirmware.org/

  • https://github.com/ARM-software/arm-trusted-firmware

环境

  • 使用 qemu,就是不需要板子

  • win10 64位 VMware Workstation Pro 16

  • ubuntu 20.04

  • qemu (虚拟ARM开发板),qemu aarch64 平台

  • ATF(TF-A)版本:2.9

  • gcc 交叉编译工具链:gcc version 12.2.1 20230401

下载 ATF

  • git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git

  • 也可以从 github 下载:https://github.com/ARM-software/arm-trusted-firmware

编译方法

  • 配置好 gcc 交叉编译工具链,这里使用 gcc version 12.2.1 20230401,下载地址: https://snapshots.linaro.org/gnu-toolchain/12.2-2023.04-1/aarch64-linux-gnu/

  • 配置好 交叉编译工具链的 环境变量

  • 编译命令:make ARCH=aarch64 CROSS_COMPILE=aarch64-linux-gnu- PLAT=qemu all DEBUG=1

  • 【注意】新版本的 ATF,ARCH=aarch64 而不是 ARCH=arm64

在这里插入图片描述

编译产物

  • 主要为 :bl1.bin bl2.bin bl31.bin

在这里插入图片描述

qemu 引导验证

  • 当前没有 u-boot,貌似无法正确的引导,初步引起的信息如下

  • qemu.sh 脚本

#!/bin/bash

qemu-system-aarch64 \
        -nographic \
        -machine virt,secure=on \
        -cpu cortex-a53 \
        -smp 2 \
        -m 1024 \
        -bios bl1.bin \
        -semihosting-config enable,target=native
  • 备注: -semihosting-config enable,target=native 需要这条

  • 正常的板子,各个 bin 文件应该是烧写到 Flash 上的分区的,这里使用 qemu 模拟,需要本地文件的支持

  • chmod +x qemu.sh,执行 ./qemu.sh

在这里插入图片描述

小结

  • 初步了解 基于 qemu aarch64 平台 ATF 的编译方法,后面继续研究 如何与 u-boot 配合,引导整个Linux 系统

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/680190.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Node.js入门与 Webpack模块打包工具

目录 Node.js入门 fs模块-读写文件 path模块-路径处理 压缩前端html 认识URL中的端口号 http模块-创建Web服务 体验 Web 服务除了接口数据以外,还能返回网页资源等 Node.js模块化 ECMAScript标准-默认导出和导入 ECMAScript标准-命名导出和导入 包的…

攻防世界-Reverse-Game

题目描述:下载附件,得到一个exe程序,运行该程序,可以看到如下的界面 根据描述信息说明: a. 这是一个电路,有8个开关,只有8个开关全部闭合,才能够获取到flag; b. 其中n表…

Unity shader - 纹理采样

目录 1.什么是UV 2.凹凸纹理 3.渐变纹理映射 4.遮罩纹理 1.什么是UV 对于三维模型,有两个最重要的坐标系统,一是顶点的位置(X,Y,Z)坐标,另一个就是UV坐标。什么是UV?简单的…

关于机器人精度的总结(重复精度和绝对精度区分)

ABB系列某款机器人精度参数表 机械臂是工业生产中的重要设备,在焊接码垛 以及 非 接触测量等 领域中有 着重要应 用。然而由于机械臂本体制造中存在机械制造公差装配误差导致的运动学参数误差以及电机转角与关节转角间减速比误差等,导致机械臂存在重复性定位精度较高(0.05 mm …

EMQ的介绍及整合SpringBoot的使用

首先先了解一下底层的协议: 1. MQTT MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅 (publish/subscribe)模式的"轻量级"通讯协议,该协议构建…

python实现递归算法解决年龄问题

一、问题描述 有5个人坐在一起,问第5个人多少岁,他说比第4个人大2岁。问第4个人多少岁,他说比第3个人大2岁。问第3人多少岁,他说比第2个人大2岁。问第2个人多少岁,他说比第1个人大2岁。最后问第1个人多少岁&#xff0…

ALLEGRO之SHAPE

ALLEGRO中的SHAPE菜单对应AD中的Polygon Pour,即铺铜操作。 1. Polygon:铺铜,在Options选择对应子层(例如Etch-Top),选择Dynamic copper(动态铺铜,会自动避让过孔,Static…

MIT 6.S081 教材第五章内容 -- 中断与设备驱动--上

MIT 6.S081 教材第五章内容 -- 中断与设备驱动--上 引言真实操作系统内存使用情况(上一节回顾)中断和设备驱动Interrupt硬件部分设备驱动概述在XV6中设置中断UART驱动的top部分UART驱动的bottom部分Interrupt相关的并发UART读取键盘输入Interrupt的演进小结代码:控制…

VanillaNet 原理与代码解读

paper:VanillaNet: the Power of Minimalism in Deep Learning official implementation: GitHub - huawei-noah/VanillaNet 存在的问题 虽然复杂网络的性能很好,但它们日益增加的复杂性给部署带来了挑战。例如,ResNets中的sh…

浏览器工作原理

浏览器(也称为网络浏览器或互联网浏览器)是安装在我们设备上的软件应用程序,使我们能够访问万维网。在阅读这篇文字时,你实际上正在使用一个浏览器。 有许多浏览器正在被使用,截至2022年,使用最多的是&…

为了找到好工作,花2个月时间整理了3.5W字的自动化测试面试题(答案+学习路线)!

从5月初开始找工作到现在,先后面试了阿里巴巴、字节跳动、网易、快手的测试开发岗。 大公司对于测试开发的要求相比来说高很多,要求掌握的知识点的广度和深度层次也比较高,遂整理了这两个月的面试题目文档供大家参考,同时也是为了…

基于java+swing+mysql商城购物系统

基于javaswingmysql商城购物系统 一、系统介绍二、功能展示1.项目骨架2.主界面3.用户登陆4.添加商品类别5、添加商品6、商品管理 四、其它1.其他系统实现五.获取源码 一、系统介绍 项目类型:Java SE项目 项目名称:商城购物系统 用户类型:双…

【C++学习】线程库 | IO流 | 空间配置器

🐱作者:一只大喵咪1201 🐱专栏:《C学习》 🔥格言:你只管努力,剩下的交给时间! 一、线程库 在C11之前,涉及到多线程问题,都是和平台相关的,比如w…

【Python爬虫开发基础⑥】计算机网络基础(Web和HTTP)

专栏:python网络爬虫从基础到实战 欢迎订阅!近期还会不断更新~ 另外:如果想要看更多的计算机网络知识,可以关注我的专栏:计算机网络 往期推荐: 【Python爬虫开发基础①】Python基础(变量及其命名…

【数据结构】特殊矩阵的压缩存储

🎇【数据结构】特殊矩阵的压缩存储🎇 🌈 自在飞花轻似梦,无边丝雨细如愁 🌈 🌟 正式开始学习数据结构啦~此专栏作为学习过程中的记录🌟 文章目录 🎇【数据结构】特殊矩阵的压缩存储&#x1f38…

C语言学习(二十六)---指针练习题(二)

在上节的内容中,我们进一步学习了有关指针的内容,并做了一些关于指针的题目,今天我们将继续练习一些指针的题目,以便大家更好的理解和掌握指针的知识,好了,话不多说,开整!&#xff0…

【c++11】 左值引用和右值引用

c11特性 右值引用左值引用和右值引用左值引用右值引用比较 右值引用的应用左值引用的短处右值引用解决问题移动构造 STL的改动move()函数结语 右值引用 c从出现就有着引用的语法,但是在c11后又新增了右值引用的新特性,以往所学的引用成了左值引用。非左…

代码随想录算法训练营第四十二天| 背包问题

标准背包问题 有n件物品和一个最多能背重量为w 的背包。 第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。 举一个例子: 背包最大重量为4。 物品为: 重量价…

5.2.3目录与文件之权限意义

现在我们知道了Linux系统内文件的三种身份(拥有者、群组与其他人),知道每种身份都有三种权限(rwx), 已知道能够使用chown, chgrp, chmod去修改这些权限与属性,当然,利用ls -l去观察文…

《C++高级编程》读书笔记(十:揭秘继承技术)

1、参考引用 C高级编程(第4版,C17标准)马克葛瑞格尔 2、建议先看《21天学通C》 这本书入门,笔记链接如下 21天学通C读书笔记(文章链接汇总) 1. 使用继承构建类 1.1 扩展类 当使用 C 编写类定义时&#xf…