1880_安装QEMU_for_ARC

Grey

全部学习内容汇总: https://github.com/GreyZhang/g_ARC

主标题

想学习一点ARC相关的知识,但是手里没有开发板。看了下,使用QEMU似乎是一个很好的选择,正好也有这么一个分支。在此,记录一下环境搭建的过程。

主题由来介绍

如果有现成的安装包,或许也不会去这么折腾了。找了一下并没有找到理想的安装文件,看起来直接自己编译会是相对稳妥的方法。而这样,开发环境得借助于Ubuntu的虚拟机。

资料整理过程说明

ARC版本的QEMU相关的说明: Building QEMU for ARC · foss-for-synopsys-dwc-arc-processors/qemu Wiki · GitHub

根据上面的说明,需要安装以下链接上的依赖工具:

要点细节分析

首先需要获取原始的代码: git clone GitHub - foss-for-synopsys-dwc-arc-processors/qemu: QEMU port for ARCv2 Processors

之后,按照如下做配置: ./configure –target-list=arc-softmmu \ # arc target –prefix=/PATH/TO/INSTALL/QEMU \ # where you want it installed –enable-debug \ # for developers –enable-debug-tcg \ # for developers –enable-trace-backends=simple \ # for developers

有一个说明中对于老版本的gcc的支持项,我删除掉了。

关于这一项,原始的配置要求说明信息如下:

我所用的系统中安装的gcc版本是11.4.0,应该是比较新的一个版本。而我所用的系统是Ubuntu 23.04.3。
上面的命令直接拷贝可能会有识别问题,可以把相关的参数拷贝到一行: ./configure –target-list=arc-softmmu –prefix=/PATH/TO/INSTALL/QEMU –enable-debug –enable-debug-tcg –enable-trace-backends=simple

上面是在我机器上的配置结果,有很多NO,但是并没有报错。接下来直接尝试编译:

需要编译的文件看起来还是很多的,没有开启并行加速,不过速度还可以。

上面是编译结束时候的提示,接下来可以安装,然后按照安装说明进行部分测试。

实际探索体验以及效果

安装: sudo make install

以上是安装时候的效果。从结果能够看到,这个目录的指定属于新创建。因此,安装不算合理,结合这个提示,进行了重新的安装。在安装之前,设置了如下的配置信息:

./configure –target-list=arc-softmmu –prefix=/usr/local/bin –enable-debug –enable-debug-tcg –enable-trace-backends=simple

之后,设置环境变量信息:
export QEMU_HOME=/usr/local/bin/bin export PATH=/usr/local/bin/bin:$PATH

这么看上去,其实上面的配置还是有几分不合理。没有预料到这会多出一个bin目录。不过,处理简单,还是把前面的信息重新处理一下,保持一个合理的状态。

切换到如上目录,之后执行make check看测试效果:
执行这部分的时候遇到了文件缺失没能够进行下去,我转而执行了前面的make test。124条测试,有一些条目的执行并不顺利。

这下子多少由于些纠结了,这个工具到底能不能用?暂且先这样部署,后面搞定了编译器之后统一进行测试。

小结

没有直接的apt安装包,这种处理还是有几分折腾的。嵌入式的开发,涉及到多平台的处理,总是有这么几分不方便。不过,这倒也是乐趣所在。

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

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

相关文章

一文快速学会Docker软件部署

👨‍🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习 🌌上期文章:首期文章 📚订阅专栏:Docker 希望文章对你们有所帮助 做项目的时候,感觉很多地方的配置都特别…

扫码能看图片吗?图片怎么弄成二维码?

在外出游玩或者参加展览时,经常会看到很多的物品或者展物都会有一个对应的二维码,通过扫码就可以查看详情,其中很多的内容为了美观性都会单独将内容设计成图片存入二维码中,那么图片制作二维码怎么制作呢? 想要快速的…

数模学习day10-聚类模型

说明,本文部分图片和内容源于数学建模交流公众号 目录 K-means聚类算法 K-means聚类的算法流程: 图解 算法流程图 评价 K-means算法 基本原则 算法过程 Spss软件操作 K-means算法的疑惑 系统(层次)聚类 算法流程 Sp…

安卓逆向某脚本-autojs逆向

引言 上次讲到,为了静态分析,逆向了所有加密字符串。来看下今天我们看下他的流程。 分析app 启动之后会出现一个更新按钮,如图:我们先看下一般autojs 项目是怎么打包的,打包的时候可以选择加密类型,选择dex 类型,然后就是把js 文件变成dex 。 我们先看下一般autojs 项目是…

【python】TCP测速程序

一、服务端 下面是一个简单的 Python 服务端程序的示例,使用标准库中的 socket 模块来建立一个 TCP 服务器。该服务器接收客户端的连接请求,客户端发送一定大小的数据流以测试 TCP 带宽。 实际场景中带宽测试可能需要更复杂的逻辑来确保测试的准确性。 …

万能字符单词拼写 - 华为OD统一考试

OD统一考试(C卷) 分值: 100分 题解: Java / Python / C++ 题目描述 有一个字符串数组 words 和一个字符串 chars。假如可以用 chars 中的字母拼写出 words 中的某个"单词"(字符串),那么我们就认为你掌握了这个单词。 words 的字符仅由 a-z 英文小写宁母组成,…

浅析内存一致性:内存屏障

文章目录 概述内存乱序访问Store Buffer和Invalidate QueueStore BufferStore ForwardingStore Buffer与内存屏障 Invalidate QueueInvalidate Queue与内存屏障 内存屏障分类编译器屏障CPU内存屏障 相关参考 概述 内存屏障,是一类同步屏障指令,是CPU或编…

分布式锁3: zk实现分布式锁2 使用临时节点(需要自旋)

一 使用临时节点实现分布式锁 1.1 代码截图 1.2 代码如下 由于zookeeper获取链接是一个耗时过程,这里可以在项目启动时,初始化链接,并且只初始化一次。借助于spring特性,代码实现如下: package com.atguigu.distri…

Spring MVC MVC介绍和入门案例

1.SpringMVC概述 1.1.MVC介绍 MVC是一种设计模式,将软件按照模型、视图、控制器来划分: M:Model,模型层,指工程中的JavaBean,作用是处理数据 JavaBean分为两类: 一类称为数据承载Bean&#xf…

逆向数据宽度与符号

正数与负数的 刚好是半 所以 0 表示正数 1表示负数 有符号与无符号是程序员定的 并不是开头是1就表示负数 0表示正数 得看有无符号 双字 32bit 4字节

【UE Niagara学习笔记】04 - 火焰喷射时的黑烟效果

目录 效果 步骤 一、创建烟雾材质 二、添加新的发射器 三、设置新发射器 3.1 删除Color模块 3.2 减少生成的粒子数量 3.3 设置粒子初始颜色 3.4 设置烟雾的位置偏移 3.5 设置烟雾淡出 在上一篇博客(【UE Niagara学习笔记】03 - 火焰喷射效果&#xf…

机器学习(四) -- 模型评估(4)

系列文章目录 机器学习(一) -- 概述 机器学习(二) -- 数据预处理(1-3) 机器学习(三) -- 特征工程(1-2) 机器学习(四) -- 模型评估…

【JAVA】怎么确保一个集合不能被修改

🍎个人博客:个人主页 🏆个人专栏: JAVA ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 示例: 不可修改的List: 不可修改的Set: 不可修改的Map: 结语 我的其他博…

SpringBoot 如何增强PageHelper入参的健壮性

PageHelper.startPage(int pageNum, int pageSize, boolean count) 参数为外部输入,故存在异常输入场景。比如 pageNum 和 pageSize 输入的值 负数 或者 0,所以引入PageUtils来对入参进行判断矫正,从而避免引入异常。 第1步:支持…

conda新建、配置python3.8虚拟环境,torch-cuda1.8,torchtext0.9.0,huggingface安装transformers库

起因是我在用bert的时候,导包报错 Python 环境缺少 importlib.metadata 模块。importlib.metadata 是 Python 3.8 引入的模块,而我的环境中使用的 Python 版本为 3.7。所以我得重新配置一个python3.8的环境 准备工作 在开始菜单找到anaconda prompt(an…

Vscode中的node.js的安装与使用

前往官网下载安装包 Node.js 中文网 选择较为稳定的版本 安装全选下一步就好了,这里可以选择配置环境变量是否自动启动node.js 在控制台输入指令如果出现了版本号就代表成功了

flex布局(3)

九、骰子 *{margin:0;padding: 0;box-sizing: border-box; } .flex{display: flex;flex-flow: row wrap;justify-content: space-between;align-items: center;align-content: space-between;padding:20px; } .touzi{width: 120px;height: 120px;background-color: aliceblue;…

Java网络爬虫--HttpClient

目录标题 技术介绍有什么优点?怎么在项目中引入? 请求URLEntityUtils 类GET请求带参数的GET请求POST请求 总结 技术介绍 HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、功能丰富的、支持 HTTP 协议的客户端编程工具包。相…

开启Android学习之旅-6-实战答题App

不经过实战,看再多理论,都是只放在笔记里,活学活用才是硬道理。同时开发应用需要循序渐进,一口气规划300个功能,400张表,会严重打击自己的自信。这里根据所学的,开发一个答题App。 题库需求分析…

QML 模型视图

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 对于 GUI 应用程序来说,我们通常需要格式化数据并进行显示,而 QML 提供了一种很便利的显示方式 - Model-View-Delegate(简称:MVD)。该模式是 Model-View-Controller(简称:MVC)的一种变体,常被用于分…