嵌入式科普(5)ARM GNU Toolchain相关概念和逻辑

一、目的/概述
二、资料来源
三、逻辑和包含关系
四、Arm GNU Toolchain最常用的命令

嵌入式科普(5)ARM GNU Toolchain相关概念和逻辑

一、目的/概述

对比高集成度的IDE(MDK、IAR等),Linux开发需要自己写Makefile等多种脚本。eclipse、Visual Studio等需要了解预处理、编译、汇编、链接的过程,但无需自己完整编写。并且各大芯片厂家都有基于eclipse的IDE(cube ide、e2studio、ccs、MCUX、Simplicity),支持vs code的插件,国产rtt也有基于eclipse的RT-Thread Studio。
所以,我们介绍eclipse+Arm GNU Toolchain+newlib相关概念,使之有个宏观的概念认识。

二、资料来源

Arm GNU Toolchain:
https://developer.arm.com/Tools and Software/GNU Toolchain

Arm Compiler for Embedded(AC6):
https://developer.arm.com/Tools and Software/Arm Compiler for Embedded

IAR Embedded Workbench for Arm:
https://www.iar.com/cn/product/architectures/arm/iar-embedded-workbench-for-arm/

arm gcc编译选项:
https://blog.csdn.net/chshch83/article/details/131932972

三、逻辑和包含关系

图片

  • Arm GNU Toolchain命名规则:
    arm-none-eabi-gcc
    arm:架构是arm
    none:不是特定的供应商提供的
    eabi:eabi:嵌入式应用二进制接口(Embedded Application Binary Interface)
    因为名称里没有“linux”类似的字样,说明不支持操作系统。

四、Arm GNU Toolchain最常用的命令

  • arm-none-eabi-gcc

  • arm-none-eabi-gdb

  • arm-none-eabi-size

  • arm-none-eabi-objdump

arm-none-eabi-gcc "../Core/Src/system_stm32h7xx.c" -mcpu=cortex-m7 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32H723xx -c -I../Core/Inc -IC:/Users/jerry/STM32Cube/Repository/STM32Cube_FW_H7_V1.11.1/Drivers/STM32H7xx_HAL_Driver/Inc -IC:/Users/jerry/STM32Cube/Repository/STM32Cube_FW_H7_V1.11.1/Drivers/STM32H7xx_HAL_Driver/Inc/Legacy -IC:/Users/jerry/STM32Cube/Repository/STM32Cube_FW_H7_V1.11.1/Drivers/CMSIS/Device/ST/STM32H7xx/Include -IC:/Users/jerry/STM32Cube/Repository/STM32Cube_FW_H7_V1.11.1/Drivers/CMSIS/Include -IC:/Users/jerry/STM32Cube/Repository/STM32Cube_FW_H7_V1.11.1/Middlewares/Third_Party/FreeRTOS/Source/include -IC:/Users/jerry/STM32Cube/Repository/STM32Cube_FW_H7_V1.11.1/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -IC:/Users/jerry/STM32Cube/Repository/STM32Cube_FW_H7_V1.11.1/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Core/Src/system_stm32h7xx.d" -MT"Core/Src/system_stm32h7xx.o" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "Core/Src/system_stm32h7xx.o"
arm-none-eabi-gcc -o "h723.elf" @"objects.list"   -mcpu=cortex-m7 -T"E:\st_workspace\h723\STM32H723VETX_FLASH.ld" --specs=nosys.specs -Wl,-Map="h723.map" -Wl,--gc-sections -static --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -Wl,--start-group -lc -lm -Wl,--end-group
Finished building target: h723.elfarm-none-eabi-size   h723.elf 
arm-none-eabi-objdump -h -S  h723.elf  > "h723.list"
  • arm-none-eabi-objcopy

arm-none-eabi-objcopy -O ihex "rzn2l_coremark.elf"  "rzn2l_coremark.hex"
arm-none-eabi-size --format=berkeley "rzn2l_coremark.elf"
  • --specs=nano.specs

  • --specs=nosys.specs

  • -u _printf_float

  • .ld链接脚本
    GNU LD脚本命令语言:
    https://blog.csdn.net/tianizimark/article/details/125865933

  • Makefile相关自动生成

图片

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

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

相关文章

Selenium框架的使用心得(一)

最近使用selenium框架实现业务前端的UI自动化,在使用selenium时,有一些心得想要和大家分享一下~ Selenium是一款用于web应用程序测试的工具,常用来实现稳定业务的UI自动化。这里,不想对其发展历史做介绍,也不想用官方…

0089__一条普遍存在于嵌入式实时系统(RTOS)中的嵌套使用互斥量的bug分析

一条普遍存在于嵌入式实时系统(RTOS)中的嵌套使用互斥量的bug分析_rt_mutex_take-CSDN博客

vscode 文件目录栏缩进

一个好的开发IDE,一定是让人赏心悦目的,这个赏心悦目也一定是包含层级目录的清晰明了!不能像感冒的鼻涕一样一擤一摊子!就像。。。。嗯,算了,断子还是不讲了,怕有些妹子投诉 或发消息批评我。。…

【ppt密码】ppt的密码忘了,怎么破解

PPT文件设置了保护密码,但是密码忘记了,无法打开PPT文件、无法编辑PPT文件了该怎么办?PPT文件的两种保护密码该如何解密? 首先是打开密码 网上有一种解决方法: 1、重新命名PPT文件,将其后缀改为zip格式&…

Shell编程基础 – C语言风格的Bash for循环

Shell编程基础 – C语言风格的Bash for循环 Shell Programming Essentials - C Style For Loop in Bash By JacksonML 循环是编程语言的基本概念之一,同样也是Bash编程的核心。当用户需要一遍又一遍地运行一系列命令直到达到特定条件时,例如&#xff1…

优点和缺点(以及在求职过程中如何处理它们)

你知道你会感到紧张,因为你真的很想要这份工作。当人力资源人员提出这个普遍存在的问题“你的优势和劣势是什么?”时,他们在寻找什么? 有哪些突出的优点和缺点示例?您如何将这些示例个性化,以免听起来像人…

创建型模式 | 单例模式

一、单例模式 单例模式(Singleton Pattern),使用最广泛的设计模式之一。其意图是保证一个类仅有一个实例被构造,并提供一个访问它的全局访问接口,该实例被程序的所有模块共享。 1、饿汉式 1.1、基础版本 在程序启动后立刻构造单例&#xff0…

leecode题解Golang版本-3-无重复字符最长子串

题目 无重复字符最长子串 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 题解 func lengthOfLongestSubstring(s string) int {m : make(map[uint8]int)res : 0for l, r : 0, 0; r < len(s); r {m[s[r]]if v, ok : m[s[r]]; !ok || v 1…

速盾网络:业务卓越,数字安全的领先者

在数字时代的浪潮中&#xff0c;业务成功需要强大的数字基石。速盾网络以其出色的CDN加速、高防IP、SDK游戏盾和抗DDoS攻击等业务&#xff0c;成为业界领先的数字安全保障者&#xff0c;为您的业务提供全方位的支持与保护。 CDN加速&#xff1a;业务飞跃的翅膀 速盾网络以全球…

设计模式详解---模板方法模式

1. 模板方式概念 当需要定义一个算法的框架&#xff0c;但允许具体步骤在子类中灵活实现时&#xff0c;可以使用模板方法&#xff08;Template Method&#xff09;设计模式。该模式通过定义一个模板方法以及一组抽象方法&#xff0c;将算法的结构固定&#xff0c;但具体实现延…

算法基础课-基础算法-二分查找-数的范围

lmid 需要补上加一 rmid 不需要补上加一 789. 数的范围 题目 提交记录 讨论 题解 视频讲解 给定一个按照升序排列的长度为 n&#xfffd; 的整数数组&#xff0c;以及 q&#xfffd; 个查询。 对于每个查询&#xff0c;返回一个元素 k&#xfffd; 的起始位置和终止位…

智能优化算法应用:基于世界杯算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于世界杯算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于世界杯算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.世界杯算法4.实验参数设定5.算法结果6.参考文…

小程序自定义轮播图样式

小程序自定义轮播图样式以下是各案例&#xff0c;仅供大家参考。 效果展示&#xff1a; index.wxml代码&#xff1a; <view><!-- 轮播 --><view><swiper indicator-dots"{{indicatorDots}}"autoplay"{{autoplay}}" interval"{{…

数据可视化的魅力你了解吗?

你真的了解数据可视化吗&#xff1f;它所具备的真正魅力可能远远超出我们想象。数据可视化扩展了我们对数字和信息的简单理解&#xff0c;为我们揭示了一个无限可能的世界。今天我就以可视化行业的多年工作经验出发&#xff0c;和大家简单聊聊数据可视化的魅力。 数据的故事化…

SAP ABAP EXCEL 下载模板并导入

具体参考&#xff1a; ABAP EXCEL 下载摸板 获取数据模板文件路径 FORM fm_get_filepath .DATA: lv_filename TYPE string,lv_path TYPE string,lv_fullpath TYPE string,lv_title TYPE string.co_objid ZMMRP002.CONCATENATE co_objid - sy-datum sy-uzeit INTO l…

Flink系列之:Table API Connectors之Raw Format

Flink系列之&#xff1a;Table API Connectors之Raw Format 一、Raw Format二、示例三、Format 参数四、数据类型映射 一、Raw Format Raw format 允许读写原始&#xff08;基于字节&#xff09;值作为单个列。注意: 这种格式将 null 值编码成 byte[] 类型的 null。这样在 ups…

STM32——时钟树与滴答计时器

STM32——时钟树与滴答计时器 使用的开发板为stm32F407VET6的芯片,主要介绍stm32的时钟树与滴答计时器的一些理论和一个自己编写的delay函数。 时钟树的结构图可以在STM32F4xx中文参考手册.pdf中的时钟这块找到。而滴答计时器是内核资源&#xff0c;需要到Cortex M3与M4权威指南…

【VScode】设置语言为中文

1、下载安装好vscode 2、此时可看到页面为英文&#xff0c;为方便使用可切换为中文 3、键盘按下 ctrlshiftP 4、在输入框内输入configure display language 5、选择中文&#xff0c;restart即可&#xff08;首次会有install安装过程&#xff0c;等待安装成功后重启即可&am…

CMPXCHG和lwarx (LL)/stwcx (SC)

CMPXCHG 指令和 lwarx/stwcx&#xff08;LL/SC&#xff09;指令是在不同体系结构中常见的原子操作指令。 CMPXCHG: CMPXCHG 是 x86 架构中用于执行原子比较并交换操作的指令。这个指令会比较某个内存位置的值与累加器中的值&#xff0c;如果相等&#xff0c;则将累加器中的值赋…

算法设计与分析2023秋-头歌客观题-张超(云南农业大学)

文章目录 第一章客观题练习关于算法描述正确的是&#xff08; &#xff09;算法的要素包括&#xff08; &#xff09;分析算法&#xff0c;最重要的是衡量算法哪两个方面的效率&#xff08; &#xff09;算法的表示方法有&#xff08; &#xff09; 第二章客观题练习关于算法分…