05 MSYS2中安装树莓派32位和64位ARM交叉编译工具

news2024/11/18 22:58:04
作者将狼才鲸
创建日期2022-11-14
  • Gitee源码和工程地址:才鲸嵌入式 / 开源安防摄像机(嵌入式软件)
  • CSDN文章地址:项目介绍:开源安防摄像机(嵌入式软件)

4.3 MSYS2中安装32位和64位ARM交叉编译工具

  • 树莓派提供了在Linux下使用的交叉工具包的文件夹名为gcc-linaro-arm-linux-gnueabihf-raspbian-x64,使用的编译器名为arm-linux-gnueabihf-gcc,下载地址raspberrypi-tools/ arm-bcm2708。

  • GNU官方提供了树莓派在Windows中使用的交叉工具包,默认的工具是使用Visual Studio + VisualGDB来进行编译的。
    32位地址:Prebuilt Windows Toolchain for Raspberry Pi
    64位地址:Prebuilt Windows Toolchain for Raspberry Pi (64-bit)

  • ARM在Windows下自带的交叉编译工具为gcc-arm-none-eabi-10.3-2021.10-win32.exe,网页路径在https://developer.arm.com/downloads/-/gnu-rm ,交叉编译工具名为arm-none-eabi-gcc,我们不使用树莓派自带的交叉编译工具,而直接使用ARM的;因为树莓派没有在MinGW下编译它的交叉编译工具,而我也不想在Cygwin环境使用树莓派的Linux交叉编译工具。

  • 但也不在ARM官方下载,我们在MSYS2中同样也能找到:在https://packages.msys2.org/base 中能搜到mingw-w64-arm-none-eabi-gcc和mingw-w64-arm-none-eabi-gdb

    • MSYS2下载命令 pacman -S mingw-w64-x86_64-arm-none-eabi-gcc,大小有1.24 GB,参考网址:Package: mingw-w64-x86_64-arm-none-eabi-gcc
    • GDB调试工具下载的命令 pacman -S mingw-w64-x86_64-arm-none-eabi-gdb,大小有7.92 MB,参考网址:Package: mingw-w64-x86_64-arm-none-eabi-gdb
    • 安装完成后的文件在msys64/mingw64/bin/arm-none-eabi-gcc.exe
    • 如果你需要使用aarch64-elf-gcc编译64位的ARM程序,在新版的树莓派中运行,则MSYS2网站中没有,你要去Linaro软件中下载。
  • 如果有需要,你也可以安装用于64位ARM的交叉编译工具。

    • 软件名称:gcc-linaro-7.5.0-2019.12-i686-mingw32_aarch64-linux-gnu.tar.xz ,大小364M
    • 下载路径:https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/
    • 下载完之后放到msys64/mingw32/bin/里面去,用Linux命令解压,然后设置环境变量,使用方法和32位gcc交叉编译工具一样
    • 我msys64中的路径是msys64/mingw32/bin/gcc-linaro-7.5.0-2019.12-i686-mingw32_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc.exe
    • 在Linaro这里也能下到32位的GCC交叉编译工具:gcc-linaro-7.5.0-2019.12-i686-mingw32_arm-linux-gnueabihf.tar.xz
    • https://www.linaro.org/ Linaro公司主要是做ARM的一些开源工具,树莓派也是直接使用的Linaro编译器。
  • 参考网址:

    • Windows下编译树莓派pico C\C++(Building on MS Windows)
    • 树莓派 交叉编译环境搭建(Win 7)
    • 【交叉编译踩坑指北(二)】windows10下VScode构建树莓派pico开发环境(C/C++)
    • 树莓派2 raspyberry Pi2 交叉编译app
    • Windows10下 交叉编译aarch64(ARMv8)架构Qt5.12.11库

4.4 用现成的程序从QEMU运行树莓派

  • 在以下网址https://gitee.com/mirrors_bztsrc/raspi3-tutorial/tree/master/01_bareminimum 下载编译好的树莓派程序,我已下载好,存放在msys64家目录下的01_run文件夹中
  • 使用命令运行:/mingw64/bin/qemu-system-aarch64 -M raspi3b -kernel ~/raspi/01_run/kernel8.img -d in_asm
  • 能看到出现了QEMU窗口,并显示了hello world。
    效果如下:在这里插入图片描述

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

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

相关文章

1524_AURIX TC275存储分布_下

全部学习汇总: GreyZhang/g_TC275: happy hacking for TC275! (github.com) 继续前面的学习,这一次把这个小章节的剩余信息看完。 这一部分是外设相关的寄存器地址区间描述,看起来一个模块的地址空间占用基本都是256个字节。具体包括什么暂时…

Unity技术手册-UGUI零基础详细教程-Graphic Raycaster 射线检测和Canvas Group

往期文章分享点击跳转>《导航贴》- Unity手册,系统实战学习点击跳转>《导航贴》- Android手册,重温移动开发 本文约3千字,新手阅读需要6分钟,复习需要2分钟 【收藏随时查阅不再迷路】 👉关于作者 众所周知&#…

outsystems合集系列(三)

outsystemsModeling DataDatabase Entities的介绍如何创建Database Entities如何用excel快速导入真实数据到entity?如何用excel快速创建entity并导入真实数据?Static Entities的介绍Modeling Data 这一节我将介绍在outsystems中建模数据(model data)的一些思路。注意在这里我…

shellcode 中 null byte 的成因和避免方式总结

背景 shellcode 中要避免 null byte(\x00)这个是个通用的概念(windows,linux 都是一样),因为栈溢出的数据作为字符串写入到栈上,\x00 会作为字符串终止符,毁掉整个 shellcode。 这…

HTML+CSS个人静态网页设计

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

【AGC】安全规则resource.data获取不到字段

问题背景 在表结构里有但resource.data获取不到uid字段 解决该问题 request变量是指请求,request.resource.data是请求数据的所有字段和值的映射;resource变量是指所请求的数据在数据库中保存的状态,resource.data是数据库中保存数据的所有…

教师工作量管理系统思路(链表应用)

教师工作量管理系统思路(链表应用) 文章目录教师工作量管理系统思路(链表应用)题目描述:初始信息菜单部分数据结构功能实现查询历史信息从键盘录入信息信息删除和修改工作量计算如何存储到工作量信息链表中&#xff1f…

Bootstrap响应式轮播效果网页(1+X Web前端开发中级 例题)

文章目录 📄题目要求 🧩说明 🧩效果图 💻HTML代码 🎯实现效果 📰完整答案 📄题目要求 阅读下列说明、效果图和HTML代码,进行静态网页开发,填写(1&…

springboot12总结篇(9 10 11)

1.视图解析 以重定向为例 如果返回字符串 则会调用视图解析器thymeleafResolver判断返回值为普通字符串,返回thymeleafView调用其render方法,拼接直接访问 2.异常处理 404 ControllerAdvie 处理异常类 ExceptionHandler ControllerAdvie 处理异常类…

适配器模式

思考适配器模式 适配器模式通过转换已有的接口,达成目标需要的接口 适配器模式还可以将多种差异化接口适配成同一接口做统一输出 1.适配器模式的本质 适配器模式的本质是:转换匹配,复用功能。 适配器通过转换调用已有的实现,从而能把已有的实现匹配成需要…

【Spring】——4、使用@Scope注解设置组件的作用域

📫作者简介:zhz小白 公众号:小白的Java进阶之路 专业技能: 1、Java基础,并精通多线程的开发,熟悉JVM原理 2、熟悉Java基础,并精通多线程的开发,熟悉JVM原理,具备⼀定的线…

VCED:学习Jina的简单操作

文章目录VCED:学习Jina的简单操作在pycharm里连接docker环境几个简单的jina demoimagetextvideoVCED:学习Jina的简单操作 在pycharm里连接docker环境 在pycharm里找到docker环境 New一个环境 在docker里进入terminal,找到python 位置 成功得到decker环境 运行jina…

004_步进电机实验

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。本章主要从步进电机的结构、工作原理、电机参数分别介绍,最后通过实验来实现步进电机运动的简单控制。本章所要实现的功能是:通过 ULN2003 驱动模块控制 28BYJ48 步进电机运行方向及速度&…

bugku-web-社工-初步收集

题目首页 社工又有杂项的存在 打开题目 小时候可能特感兴趣的网站 目录扫描一下 dirsearch 得到一个管理员后台登录网站 但是需要密码 再回到起始页面 存在一个下载点 可以操作 下载得到一个压缩包 解压打开 是一个小插件 尝试登录 同时 打开wireshark进行流量截取…

Nacos安装指南

Nacos安装指南 1.Windows安装 开发阶段采用单机安装即可。 1.1.下载安装包 在Nacos的GitHub页面,提供有下载链接,可以下载编译好的Nacos服务端或者源代码: GitHub主页:https://github.com/alibaba/nacos GitHub的Release下载…

Monaco Editor教程(十六):缩略图minimap的配置详解

背景 缩略图 (Minimap) 是一种常见的用于快速预览和探索的工具,可作为导航辅助用户探索大规模图。 在大文件的阅读和编辑中,能够起到很好的导航作用,并且缩略图能够显示文件结构的大致轮廓,使开发人员能够快速知道对应的编辑位置…

WordPress重新安装的几种方法(2022年新版教程)

我们在建网站的过程中,可能出于某些原因会把网站重装,例如网站中病毒了、网站做的不满意,重头开始。本文会给大家分享一下2022年可行的重装WordPress网站方法。 1 重装WordPress的方法 方法一:重置数据库 方法二:宝塔面…

【MySQL】MySQL基础、详细总结

数据库Mysql 内容管理数据库基础什么是DB、DBMS、DBS、DBA?什么是元组、码、候选码、主、外码(键)、(非)主属性?主、外码的区别?为什么不推荐使用外码和级联 ?【分布式高并发】什么是…

Servlet规范之部署描述符

Deployment Descriptor 文章是对 JSR-000340 JavaTM Servlet 3.1 Final Release的Java™ Servlet规范的翻译,尚未校准 文章目录Deployment Descriptor部署描述符元素部署描述符的处理规则部署描述符部署描述符示意图web-app元素description Elementdisplay-name Ele…

从零开始学前端:json对象,冒泡排序 --- 今天你学习了吗?(JS:Day15)

从零开始学前端:程序猿小白也可以完全掌握!—今天你学习了吗?(JS) 复习:从零开始学前端:字符串、数组的方法 — 今天你学习了吗?(JS:Day12/13/14&#xff09…