学习
实践
活动
工具
TVP
写文章

交叉编译学习笔记(二)——交叉编译器的命名规则

如: arm-none-eabi:该编译器没有操作系统,不能支持那些与操作系统关系密切的函数(如fork(2)) arm-none-linux-eabi:该编译器用于Linux系统 1. arch arch EABI为嵌入式ABI,即Embedded ABI。EABI指定了文件格式、数据类型、寄存器使用、堆积组织优化和在一个嵌入式软件中参数的标准约定。 EABI与ABI的主要区别,是应用程序代码中允许使用特权指令,不需要动态链接,并且使用更紧凑的堆栈帧组织用来节省内存。广泛使用EABI的有Power PC和ARM。 针对上述gnu, eabi, uclibc,对应的常见组合的含义为: gnu = glibc + oabi gnueabi = glibc + eabi uclibc = uclibc + oabi (not target an operating system) system: eabi (complies with the ARM EABI) 该编译器一般用于编译ARM架构的裸机系统(包括 ARM

1.6K50

centos7中安装Android SDK的方法步骤

-25 | 1 | Sources for Android 25 system-images;a...ult;armeabi-v7a | 4 | ARM EABI | Intel x86 Atom System Image system-images;a...pis;armeabi-v7a | 5 | Google APIs ARM EABI -tv;armeabi-v7a | 3 | Android TV ARM EABI v7a System... system-images;a... -tv;armeabi-v7a | 1 | Android TV ARM EABI v7a System... system-images;a... -tv;armeabi-v7a | 10 | Android TV ARM EABI v7a System... system-images;a...

69541
  • 广告
    关闭

    年末·限时回馈

    热卖云产品年终特惠,2核2G轻量应用服务器6.58元/月起,更多上云必备产品助力您轻松上云

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux下开发stm32 ①

    Linux C语言编程(下篇) | gdb的使用 这是为了给接下来的Linux下嵌入式开发打好基础,尽快熟悉Linux下c编程,但是在开发stm32的时候,编译工具链要使用gcc-arm-none-eabi 这就要说到linux下的交叉编译了,因为我们要在PC机上编译出可以运行在ARM上的程序,使用gcc编译出的是在PC上运行的程序,所以我们要使用gcc-arm-none-eabi进行交叉编译~ 2.gcc-arm-none-eabi toolchain 介绍及安装 gcc-arm-none-eabi是一个开源的ARM开发工具链,适用于Arm Cortex-M和Coretex-A系列处理器,包括GNU编译器(GCC),以及GDB,可用于 gcc-arm-none-eabi在ubuntu软件源仓库中就有,但是版本比较陈旧: ? arm-none-eabi-objcopy test.elf -Oihex test.hex 7.编写一个makefile雏形 TARGET=test CC=arm-none-eabi-gcc OBJCOPY

    1.2K31

    Linux加载vmlinux调试

    使用gdb加载内核符号表 arm-eabi-gdb out/target/product/msm8625/obj/KERNEL_OBJ/vmlinux 在内核的.config里面要打开 DEBUG_INFO /prebuilts/gcc/linux-x86/arm/arm-eabi-4.7/bin/arm-eabi-gdb . /prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin/arm-eabi-addr2line -e . system/lib/libspeexresampler.so 0x00002d54 /proc/self/cwd/external/speex/libspeex/resample.c:376 arm-eabi-gdb 先用命令找到这个东西,然后在去找去找到vmlinux 还有就是我arm-eabi-4.7/ 这个版本才可以用,这个是我试出来的。

    84831

    日志服务器(13)

    切换加载环境,重启httpd服务 In this release i686-mingw32 hosted cross compilers AArch32 bare-metal target (arm-eabi ) gcc-arm-8.2-2018.08-i686-mingw32-arm-eabi.tar.xz gcc-arm-8.2-2018.08-i686-mingw32-arm-eabi.tar.xz.asc sysroot-newlib-arm-2018.08-arm-eabi.tar.xz sysroot-newlib-arm-2018.08-arm-eabi.tar.xz.asc AArch64 ELF

    10020

    【完整版】使用 Rust 进行嵌入式开发

    crate-type = ["staticlib"] path = "src/lib.rs" 交叉编译 1、安装 armv7 target: rustup target add armv7a-none-eabi 2、生成静态库文件: PS C:\Users\LiuKang\Desktop\RUST\rust_to_c> cargo build --target=armv7a-none-eabi --release scons: building associated VariantDir targets: build LINK rtthread.elf arm-none-eabi-objcopy -O binary rtthread.elf rtthread.bin arm-none-eabi-size rtthread.elf text data bss dec scons: building associated VariantDir targets: build LINK rtthread.elf arm-none-eabi-objcopy -O

    82510

    Linux export 命令

    LS_COLORS=““declare -x MAIL=“/var/mail/root“declare -x OLDPWDdeclare -x PATH=“/opt/toolchains/arm920t-eabi /bin:/opt/toolchains/arm920t-eabi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr /bin:/opt/toolchains/arm920t-eabi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr MAIL=“/var/mail/root“declare -x MYENV=“7“declare -x OLDPWDdeclare -x PATH=“/opt/toolchains/arm920t-eabi /bin:/opt/toolchains/arm920t-eabi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr

    76710

    AIoT应用创新大赛-用标准GNU GCC完成RT1060工程编译(纯VSCode开发)

    /board/pin_mux.o /opt/gcc-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../.. /arm-none-eabi/bin/ld: cannot find libcr_nohost_nf.a /opt/gcc-arm-none-eabi/bin/.. /lib/gcc/arm-none-eabi/10.3.1/../../../.. /arm-none-eabi/bin/ld: cannot find libcr_c.a /opt/gcc-arm-none-eabi/bin/.. /lib/gcc/arm-none-eabi/10.3.1/../../../..

    540190

    arm(3)| 点亮led灯

    1、编译: arm-none-eabi-gcc -g -c led.S -o led.o 2、链接: arm-none-eabi-ld -Ttext 0x80000000 led.o -o led.elf 3、格式转化: arm-none-eabi-objcopy -O binary -S -g led.elf led.bin 上一步链接生成的.elf 文件是带有地址信息的文件,不能放在存储器中执行,要使用格式转换命令转化为二进制文件 关于Makefile内容,可以参考前面的文章Linux笔记(9)| 一步步深入Makefile all:start.o led.o arm-none-eabi-ld -Tled.lds $^ -o led.elf arm-none-eabi-objcopy -O binary -S -g led.elf led.bin %.o:%.c arm-none-eabi-gcc - g -c $^ -o led.o %.o:%.S arm-none-eabi-gcc -g -c $^ -o start.o .PHONY:clean clean: rm *.o *

    54921

    linux export命令找不到_docker执行容器内的shell

    LS_COLORS=““ declare -x MAIL=“/var/mail/root“ declare -x OLDPWD declare -x PATH=“/opt/toolchains/arm920t-eabi /bin:/opt/toolchains/arm920t-eabi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr x MAIL=“/var/mail/root“ declare -x MYENV declare -x OLDPWD declare -x PATH=“/opt/toolchains/arm920t-eabi /bin:/opt/toolchains/arm920t-eabi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr /bin:/opt/toolchains/arm920t-eabi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr

    8010

    恒玄BES2300开发编译环境搭建

    额外要在系统变量中增加GNUARM_4_8_LIB,值为:C:\GNU Tools ARM Embedded\4.9 2014q4\lib\gcc\arm-none-eabi\4.9.3 ? ? C:\GNU Tools ARM Embedded\lib\gcc\arm-none-eabi\4.9.3;C:\GNUARM\4.9\lib\gcc\arm-none-eabi\4.9.3 二、编译(

    1K20

    在 CLion 中创建基于 CubeMX 的 STM32 工程

    事先准备 除了要装好 STM32CubeMX 之外还需要: 安装 mingw 编译环境; 安装 openocd 用于调试; 安装嵌入式 GNU 工具链 arm-none-eabi-gcc 等。 arm-none-eabi 系列是个 Window 的 *.exe 安装文件,Sugar 就是双击安装在默认位置的。 装好后要手动将 bin 的路径加入环境变量,如下: ? 然后重新打开(关闭后再打开)Windows PowerShell 通过 arm-none-eabi-gcc -v 命令测试配置正确可用。 ? 安装 CLion 1、手动勾选如下选项 ? 2、通过事先准备,安装过程中会自动识别到 mingw 工具链 注意手动换 arm-none-eabi-gdb.exe 调式工具。 ?

    1.7K20

    使用 CLion 实现 stm32F103 点亮 LED

    1.2 Clion环境安装 软件环境: Windows 10 STM32CubeMX Clion-2019 MinGW OpenOCD arm-none-eabi-gcc 硬件环境: STM32F103C8T6 Minimalist GNU for Windows 安装完成后添加MinGW\bin到系统Path中,并重启系统 最后,打开命令行窗口,输入 gcc -v查看是否安装成功 编译环境2:arm-none-eabi-gcc developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads ,选择ZIP压缩包形式 解压到一个文件夹,并且将bin目录添加到环境变量 使用 arm-none-eabi-gcc Clion配置好MinGW和CMake环境 打开 File -> Settings -> Build,Execution,Deployment,在ToolChain下添加MinGW和arm-none-eabi-gcc

    30020

    conan入门(二十四):通过CONAN_DISABLE_CHECK_COMPILER禁用编译器检查

    5.2.0 -- Check for working C compiler: E:/AL3XVXXX_SS_V2.2.4/MercuryLSDK/prebuilts/win32/gcc-arm-none-eabi /bin/arm-none-eabi-gcc.exe -- Check for working C compiler: E:/AL3XVXXX_SS_V2.2.4/MercuryLSDK/prebuilts /win32/gcc-arm-none-eabi/bin/arm-none-eabi-gcc.exe - works -- Detecting C compiler ABI info -- Detecting

    18720

    mac下搭建stm32开发环境

    编译工具链 编译工具使用 arm-none-eabi-gcc 工具链。 下载之后解压,将解压后的文件夹挪到一个自己喜欢的位置,重命名为gcc-arm-none-eabi。 ? 将其添加到用户环境变量中: vim ~/.zshrc 在其最后添加环境变量: export PATH=/Users/mculover666/develop/toolchains/gcc-arm-none-eabi 编译测试 有了arm-none-eabi-gcc和make工具链后,就可以尝试编译刚刚使用stm32cubemx生成的makefile工程了。 /gcc-arm-none-eabi/* 好啦,再回来编译一下,编译成功: ? 四、下载工具 1. 安装openocd 下载工具使用openocd。

    1.3K20

    【专业技术】C语言里面丰富多彩的浮点运算

    f1 = 1.24; f2 = 1.22; f3 = f1 + f2; return 0; } Makefile: LD=arm-none-eabi-ld OBJDUMP=arm-none-eabi-objdump RM=rm -rf CFLAG= -g -c ASFLAG=-g -c OBJ=start.o main.o LDFLAGS= -static -L\ #指定浮点库所在的路径 "C:\Program Files\yagarto\lib\gcc\arm-none-eabi\4.6.2" -lgcc f1 = 1.24; f2 = 1.22; f3 = f1 + f2; return 0; } Makefile: CC=arm-none-eabi-gcc AS=arm-none-eabi-as LD=arm-none-eabi-ld OBJDUMP=arm-none-eabi-objdump RM=rm -rf CFLAG

    66250

    android设备上如何运行C语言原生程序

    windows电脑,这个时候交叉编译能帮上大忙 目标设备环境不允许,比如单片机, 内存和性能无法支持程序的编译 交叉编译工具 交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi ] arch – 体系架构,如ARM,MIPS vendor – 工具链提供商 os – 目标操作系统 eabi – 嵌入式应用二进制接口(Embedded Application Binary Interface ) 根据对操作系统的支持与否,ARM GCC可分为支持和不支持操作系统,如 arm-none-eabi:这个是没有操作系统的,适用于ARM架构裸机,工具链提供商未知,嵌入式应用二进制接口,这个工具不支持那些跟操作系统关系密切的函数 arm-none-linux-eabi:用于Linux的,ARM架构,使用Glibc 如果是裸机编译,由于没有操作系统进行文件识别翻译,因此编译出来的大部分是面向cpu内核的机器码文件 单片机编译后的文件就是如此

    1.9K20

    【Rust每周一知】Rust, wasm, wasi 试玩儿

    arm-unknown-linux-gnueabi arm-unknown-linux-gnueabihf arm-unknown-linux-musleabi arm-unknown-linux-musleabihf armebv7r-none-eabi armv7-unknown-linux-gnueabihf armv7-unknown-linux-musleabi armv7-unknown-linux-musleabihf armv7r-none-eabi riscv64imac-unknown-none-elf s390x-unknown-linux-gnu sparc64-unknown-linux-gnu sparcv9-sun-solaris thumbv6m-none-eabi thumbv7em-none-eabi thumbv7em-none-eabihf thumbv7m-none-eabi thumbv7neon-linux-androideabi thumbv7neon-unknown-linux-gnueabihf thumbv8m.base-none-eabi thumbv8m.main-none-eabi thumbv8m.main-none-eabihf wasm32-unknown-emscripten

    2.3K10

    如何移植RTT微内核到树莓派3B

    rtthread-microkernel-v2/tool$ 修改交叉编译链的GCC路径: 将上面的下载的交叉编译链解压,然后copy到opt目录: rice@rice:~/rtt$ tar -xvf gcc-arm-none-eabi 2016q3-20160926-linux.tar.bz2 rice@rice:~/rtt$ rice@rice:~/rtt/rtthread-microkernel-vmv gcc-arm-none-eabi -5_4-2016q3-20160926-linux gcc-arm-none-eabi rice@rice:~/rtt$ sudo cp gcc-arm-none-eabi /opt 修改工程目录下的 not set # CONFIG_GNU_GCC_NEWLIB is not set CONFIG_Toolchain="gcc" CONFIG_EXEC_PATH="/opt/gcc-arm-none-eabi /bin" #交叉编译链的路径 # CONFIG_CUSTOM_PREFIX is not set CONFIG_PREFIX="arm-none-eabi-" CONFIG_TARGET_FILE=

    14430

    【教程】如何用GCC“零汇编”白嫖MDK

    /lib/gcc/arm-none-eabi/10.2.1/../../../.. /lib/gcc/arm-none-eabi/10.2.1/../../../../arm-none-eabi/bin/ld.exe: . /lib/gcc/arm-none-eabi/10.2.1/../../../.. /lib/gcc/arm-none-eabi/10.2.1/../../../.. /lib/gcc/arm-none-eabi/10.2.1/../../../../arm-none-eabi/bin/ld.exe: .

    46710

    扫码关注腾讯云开发者

    领取腾讯云代金券