问题标签 [armclang]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
130 浏览

arm - ds-5 终极评估版支持64bit neon(arm_v8 neon)

我已经安装了当前的 " DS-5 Ultimate 64-bit evaluation" 版本,但无法为 ARMv8 64-bit neon 构建。在armclang中找不到 cpu 列表,它只显示选项 "Target: aarch64-arm-none-eabi".

请帮我解决以下问题

  1. 此版本是否支持 ARMv8 霓虹灯
  2. 如何找到可用的 cpu 列表(如armcc --cpu列表中)或等效的 armclang 选项
0 投票
1 回答
161 浏览

makefile - GNU make 在 -I (共享目录)选项之后添加空格

我正在尝试通过 GNU makefile 使用 armclang 编译器,但是在使用 -I 选项时两种工具之间存在冲突。

对于 armclang 编译器,-I 表示“将指定目录添加到搜索位置列表以查找包含文件。语法 -Idir”,不带空格。

对于 GNU makefile '-I dir' 具有相同的含义(但带有空格)。

在我的makefile中,我有以下内容:

运行 Makefile 时,我收到以下警告和错误:

其中 boot_defs.hs 存在于 common/shared 下

在 makefile 之外运行相同的 armclang 命令时,它可以工作。因此我假设 makefile 已经格式化了 -Icommon/share 选项并在 -I 之后添加了自动空间。

有什么方法可以正确运行 armclang 命令?在其他世界中,是否可以让 makefile 解析 -Icommon/shared 而无需任何自动格式化?

我一直在尝试很多技巧来解决这个问题,但没有任何成功。

非常感谢提前。

0 投票
1 回答
545 浏览

c - 丢弃的副作用,参数传递给断言

我有一个编译器警告,我想摆脱它。

警告:'__builtin_assume' 的参数具有将被丢弃的副作用 [-Wassume]

C:\Keil_v5\ARM\ARMCLANG\Bin..\include\assert.h(72):注意:从宏 'assert' 扩展

定义断言(e)((e)?(void)0:_CLIBNS _aeabi_assert(e,_FILE__,_LINE__),(__ARM_PROMISE)((e)?1:0))

这个想法是在将警告设置为“pedantic”的情况下编译时没有警告。原因是最近在我的嵌入式代码中添加了指针检查功能。我们的想法是改进以下内容:

类似于以下内容:

这是因为自动变量不是零初始化的。因此,未初始化的指针很可能不会为 NULL。这是我想检测的编码错误(不一定是我自己做的),因此需要检查。以下内容并不完美,但似乎确实发现了更多的指针错误(不幸的是,不是悬空的)。

我在头文件中有以下代码来实现这一点:

我的代码中没有任何关于 ARMCC 5.06 的警告。据我所知,我的 checkPtr 函数没有任何副作用。除了传递给它的指针之外,它不访问任何变量。

0 投票
1 回答
945 浏览

c++ - constexpr 构造函数初始化程序列表中的 constexpr 函数

我想用结构名称的哈希初始化一个结构成员。

当我有:

然后在编译时成功计算哈希。但是,当我在我的主要功能中

然后它会调用

代码中的函数,而不是简单地使用编译时间常数初始化结构成员。

这显然会导致可避免的显着性能损失。

关于如何让编译器在编译时执行此操作的任何想法或建议?我真的不想这样做:

谢谢。

0 投票
1 回答
93 浏览

armv7 - 带有 TMS570 的 Armclang

是否可以将 armclang 与 TMS570 一起使用?

Cortex-R4F 手册声明它支持小端和字节不变大端 (BE-8) 但不支持字不变大端 (BE-32),但 TMS570 说它是 BE-32。

我正在尝试确定是否可以使用 armclang 构建 TMS570 代码。到目前为止,经过几天的尝试,我还没有设法让它工作。我感觉这可能是由于 armclang 无法创建 BE-32?

0 投票
1 回答
1496 浏览

arm - 警告:ELF 段之外的可加载部分“my_section”

我已经使用 Arm Compiler v6.9 for Cortex-R4 构建了一个 axf (elf) 文件。但是,当我使用 Arm MCU Eclipse J-link GDB 插件将其加载到目标时,它无法为我的段加载初始化数据。如果我使用 Segger Ozone 和 J-Link 加载 axf,它会正确加载初始化数据。

如果我在 axf 文件上运行 arm-none-eabi-gdb.exe,我会为所有初始化的段收到“警告:ELF 段之外的可加载部分“my_section””。

查看图像,初始化数据应在图像之后加载到 Region$$Table$$Base 中的表指定的地址。

如果我们与 gcc 链接,我们就不会有这个问题,因为初始化数据的处理方式不同。

有任何想法吗?

0 投票
1 回答
41 浏览

dwarf - 为什么 DWARF 表中有错误的路径

我用带有 -g 选项的 armclang 编译了我的程序。当我尝试使用 Keil 对其进行调试时,它无法识别源文件(我无法在其中设置断点,或者查看我当前在哪个函数中)。我用 objdump 检查了编译的 .o 文件,似乎 c 文件的 PATH 是错误的。例如我有:

来自 main.o 的 Objdump

问题是该文件不在 F:/MyProject/build/obj\main.c 中,而是在 F:/MyProject/src/main.c 中。错误路径的原因可能是什么?我仔细检查了不同的项目,那里的所有路径都是正确的

0 投票
1 回答
1114 浏览

c - 如何使用命令行选项覆盖 __TIME__ 和 __DATE__ 宏的值?

__FILE__在其中一个模块中使用和宏的项目中__DATE__,我试图在构建时将这些宏的值重新定义为显式值。尝试使用该-D选项,就像-D__TIME__=01:23:45给了我一个编译错误。

有没有办法从命令行设置这些宏(和类似的预定义宏),而无需更改源代码本身?

0 投票
0 回答
249 浏览

assembly - 将 bss 和数据加载到内存中的问题

我有一个使用 arm-compiler-6 (armclang) 为 cortex-A53 编译的非常简单的项目。该项目包含一个 main.c、一个分散文件和一个 startup.s。这是它的分散文件:

简而言之,这是 startup.s 中的初始化代码:

不幸的是,当数据和 bss 放在 RAM 部分时,项目根本无法运行。当我将它们放在 ROM 部分时,项目可以正常运行,但当然,我只能读取全局变量而不能修改它们的值。一般来说,我可以在运行时从 RAM 读取和写入。我怀疑我的初始化代码中缺少某些阶段。据我了解,由 __main 调用的 __scatterload 负责将 ZI 初始化为零。谢谢您的帮助。

0 投票
1 回答
327 浏览

c - 为什么stm32上的程序只能调试运行?

我用armclang构建我的程序,程序会让板上的LED亮起来。但是当我通过st-link将程序下载到stm32f407时,LED不亮。所以我通过st-link在调试模式下运行程序,zhe LED将亮,表示程序正在运行。

我发现程序可以在O3优化中运行,而不能在O2优化中运行。

为什么?

我使用armcc构建程序,一切正常。armclang的问题还是我忽略了一些配置。

请赐教,谢谢