飞思卡尔 iMX6q ARM 处理器的 gcc 选项

     2023-02-21     305

关键词:

【中文标题】飞思卡尔 iMX6q ARM 处理器的 gcc 选项【英文标题】:gcc options for a freescale iMX6q ARM processor 【发布时间】:2013-02-04 10:14:48 【问题描述】:

我正在尝试找出我正在为开发板设置的工具链的 gcc 选项: Sabre-lite 基于飞思卡尔的 iMX6q 四核处理器。

现在我知道 iMX6 基本上是一个 cortex-a9 处理器,它有协处理器 vfpv3 和 neon,还有矢量图、2D 甚至 3D 引擎。

但是,发行说明和使用指南文档对如何启用可以在 gcc 中启用的任何选项并不太清楚。

事实上,我可以“玩”的选项如下。

-march= armv7-a                - ok this one is pretty obvious.
-mfpu= vfpv3/neon              - i can use only the vfpv3 co-processor, or both (respectively, depends on option)
-mfloat-abi=softfp/soft/hard   - I guess I can choose hard here, as there is hardware for fp operations
-mcpu=cortex-a9                - is it option even necessary? it is not clear if it just an alias for -march or something else.

还有其他我应该启用的选项吗? 为什么工具链具有构建 linux 内核/uboot/packages 的默认选项:

-march= armv7-a -mfpu= vfpv3 -mfloat-abi=softfp

感谢您的帮助

【问题讨论】:

您的 -mfloat-abi 应该匹配系统上使用的任何 ABI。 softfp 也使用浮点硬件,但调用约定不同。您可以使用“readelf -A /bin/ls”(例如)进行检查。 “Tag_ABI_VFP_args: VFP registers”的意思是hard。 非常有用,非常感谢! (当然,如果您在目标系统上使用系统的本机 gcc 进行本机编译,那么正确的 ABI 将是编译器中的默认值,可以省略。) 我找到了以下相关条目(使用 readelf)。我相信尖叫“softfp”? Tag_FP_arch: VFPv3Tag_ABI_HardFP_use: SP and DP 没有一个尖叫 softfp,但如果没有 Tag_ABI_VFP_args: 在那里,那么这种缺席本身就是如此。 【参考方案1】:

使用-mthumb -O3 -march=armv7-a -mcpu=cortex-a9 -mtune=cortex-a9 -mfpu=neon -mvectorize-with-neon-quad -mfloat-abi=softfp。请注意,默认情况下,编译器不会使用 NEON 对浮点运算进行矢量化,因为 NEON 不支持非正规数。如果您可以通过添加 -ffast-math 开关让 gcc 使用 NEON 进行浮点运算。

【讨论】:

嘿,请详细说明一下。为什么我应该使用softfp而不是hard?另外-O3,对于linux内核来说过于激进的优化。不?我的意思是我冒着噩梦试图编译 u-boot 、内核和软件包的风险。不?感谢您提供其他选项 softfp 和hard 的区别在于浮点参数的传递方式,这取决于您使用的Linux 发行版。由于您的编译器中的默认值是 softfp,因此您的 Linux 发行版可能会在整数寄存器中传递浮点参数(但是,它仍然可以使用硬件 FPU 进行 FP 操作)。如果您只想编译 Linux 内核或 U-boot,请不要更改编译器默认值;以上选项用于编译用户空间程序。【参考方案2】:

我无法回答所有问题,但“--softfp”表示使用 FPU,但与不使用的代码保持兼容性。

Slightly outdated ARM FP document

【讨论】:

飞思卡尔的imx6q芯片好用吗?有核心板+底板的吗?

...ntu12.04/16.04系统;Debian9.9系统;Yocto系统(4.1.15-krogoth)。处理器兼容单核、双核、工业级、汽车级、IMX6Q最新PLUS版本可根据需求更换。iTOP-开发板-ssh常见问题以及解决方法.pdfiTOP-开发板-串口控制台无法使用vi编辑器解决办法.zipiT... 查看详情

产品研发arm开发板如何选择?飞思卡尔i.mx6q开发板

处理器:迅为-i.MX6开发板恩智浦Cortex-A9四核i.MX6Q处理器,主频1GHz,内存2G,存储16GB。系统支持:i.MX6开发板系统支持LINUX,Android,Ubuntu系统。核心板介绍:迅为-i.MX6开发板采用核心板+底板结构设计,核心板引出脚多达320PIN,高品质... 查看详情

飞思卡尔的主要产品

...控制器(单片机)-Kinetis系列、与ARMCortex-A架构i.MX系列处理器、PowerArchitecture™/PowerQUICC™、高性能网络处理器、高性能多媒体处理器、高性能工业控制处理器、模拟和混合信号、ASIC、CodeWarrior™开发工具、数字信号处... 查看详情

基于周立功平台iot-a62gc开发板开发环境搭建(基于飞思卡尔imx6ul)

由于本人只在一个主机(ubuntu14.04)上进行开发项目,所以以下的配置基于全局。1、交叉编译环境搭建(1)解压gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.gz到/opt目录下。(2)在/etc/environmentzh中添加交叉编译工具链PATH="/usr/local/sb... 查看详情

极术社区第三期宠粉活动,2020年末arm开发板,技术书籍,芯片课程优惠免费拿!

...术书籍任选一本,数量有限,按照排名优先选择华为鲲鹏处理器架构与编程基于ArmCortex-M4内核的物联网嵌入式系统开发教 查看详情

飞思卡尔嵌入式移植fio,出现错误,各位,怎么解决啊,求指点

|/home/xgl/QorIQ-SDK-V1.3.2-20130325-yocto/build_p2041rdb_release/tmp/sysroots/i686-linux/usr/libexec/ppce500mc-fsl-linux/gcc/powerpc-fsl-linux/4.6.2/ld:cannotfind-laio|collect2:ldreturned1exitstatus|make:***[fio]Error1|ERROR:oe_runmakefailed参考技术A缺少库文件,看看需要的库 查看详情

错误:所选处理器不支持 ARM 模式 `wfi'

】错误:所选处理器不支持ARM模式`wfi\\\'【英文标题】:Error:selectedprocessordoesnotsupportARMmode`wfi\'错误:所选处理器不支持ARM模式`wfi\'【发布时间】:2012-11-2102:27:09【问题描述】:在尝试编译ARM嵌入式C程序时出现以下错误(我使用Y... 查看详情

飞思卡尔智能车一:山外鹰眼摄像头使用原理

  最近在做飞思卡尔,研究摄像头,研究了大半周,终于弄懂了摄像头使用原理。最近摄像头相关算法也有点收获,以后再写。   首先,鹰眼是一款二值化摄像头,只有黑白两色。在调试上位机的时候可以直接发送img二... 查看详情

i.mx6q和exynos4412哪个好?

...XYNOS4412的芯片参数大比拼。芯片厂商 飞思卡尔 三星参数/处理器 I.MX6Q Exynos4412系列 单核,双核,四核共5款芯片(PIN脚兼容) 双核,四核2款芯片(PIN脚兼容)核心数 4 4构架 A9 A9最高主频 1.2G 1.4GGPU GC2000 Mali-400mp4多边形生成率 100M 44M像... 查看详情

痞子衡嵌入式:飞思卡尔i.mxrt系列微控制器启动篇-flashloader初体验(blhost)(代码片段)

...子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是飞思卡尔i.MXRT系列MCU的Flashloader。  在上一篇文章飞思卡尔i.MXRT系列微控制器启动篇(3)-SerialDownloader模式(sdphost,mfgtool)里痞子衡为大家介绍了i.MXRTBoot的SerialDownloader模式... 查看详情

飞思卡尔k60最小系统板设计方案(包含原理图与pcb)

前言:飞思卡尔K60系列单片机应用广泛,大多数同学都是从智能车比赛开始接触K60到熟悉运用。 一、飞思卡尔K60系列简介飞思卡尔Freescale公司(现被恩智浦收购)K60系列MCU,工作电压1.71-3.6V,闪存的写电压为1.71-3.6V,采用ARM... 查看详情

痞子衡嵌入式:飞思卡尔i.mxrtxxx系列mcu开发那些事-索引

...衡,是正经搞技术的痞子。本系列痞子衡给大家介绍的是飞思卡尔i.MXRTxxx系列微控制器相关知识。  恩智浦半导体于2018年10月发布的i.MXRTxxx系列开启了ML/AIMCU的新纪元,其第一款芯片i.MXRT600,搭载一颗主频高达300MHz的Cortex-M33内... 查看详情

痞子衡嵌入式:飞思卡尔i.mxrt系列微控制器启动篇-serialdownloader模式(sdphost/mfgtool)(代码片段)

...子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是飞思卡尔i.MXRT系列MCU的SerialDownloader模式。  在上一篇文章飞思卡尔i.MXRT系列微控制器启动篇(2)-Boot配置(BOOTPin,eFUSE)里痞子衡为大家介绍了i.MXRTBoot的行为配置,其中第... 查看详情

痞子衡嵌入式:飞思卡尔i.mxrt系列微控制器介绍篇-命名规则

...子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是飞思卡尔i.MXRT系列MCU的命名规则。  打开任何一款i.MXRT系列芯片的DataSheet均可找到如下命名规则表,以i.MXRT105x芯片的DataSheet为例:  一款芯片名字共有以上10部分组成... 查看详情

GCC 可选预处理器输出和编译一次通过

】GCC可选预处理器输出和编译一次通过【英文标题】:GCCoptionalpreprocessoroutputandcompilationinonepass【发布时间】:2016-02-2114:29:17【问题描述】:GCC的预处理器选项“-H”打印用于STDERR的每个头文件的名称。是否可以将此输出转发到文... 查看详情

freescale飞思卡尔hcs12系列单片机bootloader详解(代码片段)

  在完成内存映射的内容后,接下来我们将进入一个简单Bootloader的实际设计中来。在第一节内容中,我们已经简单介绍了bootlaoder的作用,它实际上就是在单片机重启过程中的一个步骤:如果有bootloader的启动信号,则进入... 查看详情

飞思卡尔atd选择etrig3-0输入为外部触发源是啥意思

...时,只要考虑ETRIGSEL=0这种情况即可。参考技术A你用的是飞思卡尔哪款芯片?这种技术问题可以到飞思卡尔中文论坛发帖提问。与非网、21ic或者阿莫论坛。 查看详情

痞子衡嵌入式:飞思卡尔i.mxrt系列微控制器启动篇-boot配置(boot_cfgpin/efuse)

...子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是飞思卡尔i.MXRT系列MCU的Boot配置。  在上一篇文章飞思卡尔i.MXRT系列微控制器启动篇(1)-Boot简介里痞子衡为大家介绍了Boot基本原理以及i.MXRTBoot方式简介。今天痞子衡就... 查看详情