问题标签 [armcc]

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 回答
1948 浏览

gcc - 在 gnu gcc 中不使用堆

是否有任何编译器选项或方法告诉 gnu gcc 不要使用堆?
例如在 armcc 中: IMPORT __use_no_heap OR #pragma import(__use_no_heap) 可以在文件中用于告诉 armcc 不要使用堆。我在 gnu gcc 中寻找类似的东西。

谢谢!

0 投票
2 回答
1351 浏览

android - 使用ARMCC编译Android原生库

我一直在研究一个有几个原生 C++ 库的 Android 项目。使用带有 ADT 插件的 Eclipse 编译和调试效果很好。显然,Android NDK 使用某些版本的 arm-linux-gnueabi-gcc 来编译原生库。

由于我一直在大量使用 NEON 内在函数,因此我想尝试使用 ARM 的官方编译器编译本机库armcc。我到处阅读armcc应该在使用内在函数时提供更好优化的代码。所以我从ARM网站下载了DS-5的试用版,只是想试试看是否真的有速度差异。

DS-5 似乎只是使用 ARMCC 工具链的 Eclipse 的修改版本,所以我安装了 ADT 插件。但是当我使用 DS-5 编译时,似乎代码仍然是使用gcc而不是armcc.

您知道如何强制 DS-5 或 Eclipse 使用 构建 Android 本机代码armcc吗?或者是否有可能(以及如何)从命令行构建静态 NDK 库,然后替换我项目中的库,以便将它们部署到测试手机?

0 投票
1 回答
93 浏览

armcc - arm编译器使用的.s文件的参考文档

我正在尝试使用.s文件进行armcc编译。如果有人有任何指向某些文件的指针,这将有助于相同。你能不能转发一下。

谢谢肉山

0 投票
3 回答
650 浏览

c - 警告:使用带有 ARMCC 的 C 宏“额外;忽略”

#381-D: extra ";" ignored在这种情况下,我的编译器会发出警告:

我定义了一个结构,如下所示

该宏SOME_MACRO(x)执行以下操作:

当然,警告是正确的,什么时候SYSTEM_A没有定义。仅仅因为我现在;在结构中有一个。但是有人知道正确避免它的方法吗?我不想通过将 移动;到宏中来打破典型的 C 风格。

0 投票
1 回答
69 浏览

c - 使用 armcc 与前面的对象相反的字节顺序

我正在使用armccandarmlink来编译和链接我的程序。编译源代码后,我尝试将它们与armlink命令链接,但出现此错误:

Fatal error: ./Release/Source/BookCity/bookcity_Protocol.o has the opposite byte order to the preceding objects.

这个错误是什么意思?如何更改字节顺序armcc

这是我的链接命令:

armlink -bin -o ./cis-0.123.bin ../../Lib/X2API.alf ../../Lib/X2DeviceB.alf ../../Lib/X2Font.alf ../../Lib/X2PPPTCP.alf ./Release/Source/BookCity/bookcity_Protocol.o ./Release/Source/BookCity/bookcity_configuration.o ./Release/Source/BookCity/bookcity_initialization.o ./Release/Source/BookCity/bookcity_transactions.o ./Release/Source/Cash/cash_configuration.o

0 投票
2 回答
141 浏览

gcc - 在armcc中,如何获取C语言的标签地址?谢谢

我想在 armcc[rvct 3.1] 构建环境中获取 C 语言的标签地址。

如:

如果在 VC 环境中,像这样得到它(使用程序集 ins :offset):

如果在 GCC 环境中,得到它(使用 &&):

但是在armcc env中,谁能告诉我如何获得?我不熟悉 ARMCC 程序集。thks

0 投票
2 回答
1058 浏览

gcc - 如果 ARM 编译器有类似的 -Werror 选项

我知道gcc有一个选项-Werror,如果有警告可以停止编译,如果armcc有类似的选项,因为我想在编译级别有一个良好的代码质量控制

附加信息:

我使用armcc2.2 build 616,我咨询了 ARM,它说--diag_error=warning只为armcc4.0 或更高版本添加

0 投票
3 回答
16616 浏览

c - 解决“变量 'xxx' 已声明但从未引用”的最佳方法

-前提:

我知道它有很多方法可以忽略此警告,但我确实需要修复它,但不只是添加一些标志让编译器忽略它,因为我可以CFLAG在本地进行此 makefile 修改,但编译/构建策略不能更改由于公司质量控制的原因。这个问题我只是想讨论谁以一种好的方式解决它,但不要忽视他们,非常感谢!

同时,不仅某些变量从未被引用,而且它还有警告:

头文件中的类似问题,它有一些静态函数,仅在一个 c 文件中使用,但许多其他 c 文件包含此头文件。

此外,此代码在具有关键内存消耗的专用目标上运行,这意味着我需要处理 ROM 和 RAM 中的每一位。

--------问题如下图-----------

我目前构建了一些由供应商提供的代码,其中包含很多警告,因为我想要一个无警告构建,因此,我把-Werrorforgcc--diag_error=[error_ref_number]for armcc.

经过以上makefile修改后,我目前遇到的最多警告是

它是由以下编码风格引起的:

在 中veryBIG.h,它定义了一些变量,例如(例如,但供应商的代码具有完全相同的方式):

但是,许多 c 文件都包含这个 BIG 头文件,但这些 c 文件中只有一个使用上述变量之一,它喜欢a.c使用变量ab.c使用变量b等。

我有两种修复方法:

  1. 将这些变量移到专用的c文件中,这意味着头文件变得无用

  2. 单独的头文件,意味着我创建a.h, b.h, ..., z.h,并且每个专用 c 文件仅包含上述头文件中的一个

但是,这两种方式对我的工作都有限制,

方式1

我不确定供应商进一步更新是否会将这个头文件更改为什么或有一些更新值,因为供应商不想修复这个编译警告,这意味着如果我遵循方式 1,我将手动更新这些变量,如果它有由供应商更改(仅在头文件中,我必须将它们同步到 c 文件),这种方式使我进一步的合并工作变得复杂

方式2

这也使我的进一步合并工作变得不容易,因为我不使用供应商方式,INC如果这些头文件不在同一个文件夹中(PATH 已经为此定义),我还需要修改系统 makefile 以将这些头文件调整到 PATH veryBIG.h)

如果有任何想法来克服这个问题?

更新

我可以临时使用Wno-xxxforgcc并删除一些[error_ref_number]in 标志--diag_error(例如CFLAG += --diag_error=550,223,188,177,....,,我删除177for pass this warning in armcc)并使我的编译继续并首先修复其他警告,但我确实需要修复所有警告。

0 投票
2 回答
2263 浏览

c++ - __attribute__ 说明符可以与函数原型和函数定义一起使用吗?

我的问题直接与其他问题有关,__attribute__((noreturn))但更普遍地也可能与其他问题有关,例如__attribute__(noinline). 我查看了 gcc 手册和 Keil 编译器参考指南,以确定__attribute__与函数一起使用的正确语法。我一般看到的情况如下:

我还看到了__attribute__函数定义之前使用的如下:

但是,我还没有看到将它与函数原型和函数定义一起使用的示例。我认为__attribute__在这两个位置都有将导致更好的代码可读性;通过查看函数原型或已应用属性的定义,我会知道。结果如下:

我已经使用前面提到的方法使用 Keil armcc 编译器成功编译了代码。有什么理由应该将此方法与 armcc 或 gcc 一起使用?

0 投票
1 回答
3280 浏览

c - 如何将 openssl 库与 arm-cross 编译器链接

我有应用程序 test.c,通过在主机(在 ubuntu 上)机器上使用 gcc,我成功编译并成功在主机上运行了应用程序。

现在我想用 arm-cross 编译器交叉编译相同的应用程序LPC1788。请指导我如何链接 openssl 库文件

我使用 GCC 的 Mkakefile

通过更改编译器,我使用了以下 Makefile

导致这些错误

是什么导致了这些错误以及如何克服