嵌入式科普(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.elf

    arm-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相关自动生成

相关推荐
番茄灭世神14 小时前
汇顶模拟前端GH3220使用备忘录
c语言·单片机·传感器·模拟芯片·电生理信号处理
恒锐丰科技林技术员14 小时前
EG1151 四开关升降压 DC‑DC 芯片:宽压大功率电源解决方案
经验分享·嵌入式硬件·硬件工程
G.E.M.小白14 小时前
单片机/嵌入式超全基础面试题(CPU/MCU/寄存器/三极管/数码管/位操作)
单片机·嵌入式硬件
jianqiang.xue15 小时前
ESP-IDF保姆级入门35|SDMMC高速SD卡全解:SDIO接口/4位高速模式/FATFS文件系统/热插拔检测/磨损均衡,掌握嵌入式大容量存储扩展
单片机·esp32
宣宣猪的小花园.15 小时前
【嵌入式】故障与降级:看门狗、保护机制和工程可靠性的底线
开发语言·人工智能·嵌入式硬件·机器学习
自小吃多15 小时前
PCB布线叠层与阻抗设计笔记
笔记·嵌入式硬件
yuehuaxin0116 小时前
LP8728A/LP8728B 芯茂微|SOP8L 副边反馈 PWM,18‑30W 适配器恒功率补偿方案解析
嵌入式硬件·智能家居·适配器模式·智能硬件
万物智能信息科技16 小时前
RGB并行屏输出—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
单片机·嵌入式硬件·华为·鸿蒙
新晨单片机设计16 小时前
S012A-基于STM32单片机光强检测系统【Proteus仿真+Keil程序+原理图】
stm32·单片机·嵌入式硬件
盛世宏博智慧档案16 小时前
以太网温湿度传感器 TCP/IP、UDP、SNMP 协议怎么选?区别详细分析
单片机·tcp/ip·udp·以太网温湿度传感器