问题标签 [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 投票
2 回答
3405 浏览

c++ - 使用不支持异常的 C++ 编译器?

我正在使用托管的mbed C++ 编译器将 C++ 库移植到我的 mbed,该编译器基本上是 ARMCC,具有您无法真正更改的配置。他们决定的配置选项之一(出于某种未知原因)是不支持异常。所以 athrow和 acatch会产生编译器错误。

究竟如何才能毫无例外地使用标准 C++ 库?我在我的库中使用了一些向量。我怎么知道push_back函数是否真的成功了?是否有任何标准方法可以知道是否发生了异常,或者它是否只是做某事exit(1)或某事?

0 投票
1 回答
1097 浏览

time - armcc(keil uVision4):如何让 time() 从 RTC 返回时间?

我是一名相当习惯于使用免费工具在 Linux 上使用嵌入式系统的开发人员。现在我发现自己在一个使用 Windows 上的 Keil 编译器的项目中(armcc、uVision4 ......我发现这方面的东西的命名有点令人困惑:)。

使用的硬件上有一个实时时钟,但它总是通过其 I2C 接口直接访问。由于各种原因(主要是代码的可移植性),我想将它连接到标准time()函数。

我该怎么做呢?

0 投票
3 回答
2294 浏览

c++ - 编译错误:2574:显式特化必须在第一次使用之前()

使用armcc4.1编译我的代码时,报如下错误:

“access/qnetworkrequest_p.h”,第 94 行:错误:#2574:类“QTypeInfo>”的显式特化必须在其首次使用之前(在“../../include/QtCore/../.. /src/corelib/tools/qlist.h") Q_DECLARE_TYPEINFO(QNetworkHeadersPrivate::RawHeaderPair, Q_MOVABLE_TYPE);

但是,有没有办法禁用或绕过这个错误?

0 投票
1 回答
2223 浏览

c - enum_is_int 选项

我目前使用 arm env 在 Intel x118 平台上工作。我发现我必须强制打开这个选项以确保链接没有问题,否则会出现如下错误:

谁能告诉我,如果此--enum_is_int选项对我的目标文件产生重大影响?

更多的信息:

我发现了一些关于 ARM 的评论:

此选项强制所有枚举类型的大小至少为四个字节。

默认情况下关闭此选项,并使用可以保存所有枚举器值的最小数据类型。

如果在命令行中指定 ARM Linux 配置文件,则默认开启此选项。

注意--enum_is_int不建议 将该选项用于一般用途。

0 投票
1 回答
1997 浏览

gcc - 如何使用“armcc”编译器来跟踪函数调用?

我以前用gcc -fdump-rtl-expand-finstrument-functions函数调用跟踪,armcc有这种类似的功能吗?

对于gcc,我使用:

armcc是否有类似的编译器选项?我尝试了相同的方法,但似乎它们不起作用:

0 投票
2 回答
1064 浏览

arm - ARM - 如何使用 armcc 保存 r9 寄存器

阅读 ARM AAPCS (ARM EABI),我发现: 寄存器 r9 的作用是特定于平台的。虚拟平台可以为该寄存器分配任何角色,并且必须记录此用法。例如,它可以在与位置无关的数据模型中将其指定为静态基址(SB),或者在具有线程本地存储的环境中将其指定为线程寄存器(TR)。该寄存器的使用可能要求所保存的值在所有调用中都是持久的。不需要这种特殊寄存器的虚拟平台可以将 r9 指定为附加的被调用者保存的变量寄存器 v6。

我想将 r9 用作我的特定航空电子抢占式操作系统的 PID 保持器,但我不知道如何保存它:armcc C 编译器总是将它用作变量寄存器,因此它的值总是通过应用程序改变。

任何想法 ?armcc 可以吗?海湾合作委员会?戴铂?...

谢谢你的帮助。

问候

克里斯托夫

0 投票
1 回答
1278 浏览

c - C 宏利用嵌入式 arm asm 中的立即值 - armcc

与我的问题最接近的线程是这些在#define 宏中转义 # 符号?以及如何通过 C 预处理器打印磅/哈希?,但他们并没有完全回答我的问题。更明确地说,第二个似乎不适用于 armcc 编译器。它只打印 hash4 而不是 hash 定义的符号。Chris Lutz 在第二篇文章中特别贬低了尝试使用宏来实现此功能,所以这可能是错误的方法。不过,我想要更多的想法,而不仅仅是一个人。

问题如下:我正在尝试编写一个使用宏定义嵌入式 asm C 函数的宏。我基本上已经实现了它,除了一个问题......表达了一个直接的价值。立即值的语法需要(我相信)一个磅符号,它也是预处理器的“字符串化”符号。那么,是否可以在 C 宏中转义 # 符号?

这背后的主要目的是用 pico 内核线程上下文管理过程包装 isr,并且新过程的函数指针最终将传递给向量中断控制器。

这是代码:

我希望我已经足够详细地解释了一切。如果没有,请不要犹豫,询问更多细节。

0 投票
2 回答
1483 浏览

c - ARMCC remove unused variables

I'm trying to remove unused code with Keil ARM tools that use ARMCC compiler. I've previously used GCC based compilers for ARM and I could easily remove the unused code with:

For ARMCC i found similar flag

but it works only with functions and not with variables.

Is there any way to remove unused variables with ARMCC?


Edit:

For example giving the following library code:

and my project code:

I want to remove func2() and veryBigArray using compiler/linker optimizations.

0 投票
0 回答
769 浏览

c - 中断处理程序声明:armcc vs gcc

我想声明一个中断例程函数。

最初为 armcc 编写为:

我写的是一样的:

我收到以下错误:line XXX : Error: #1207-D: attribute "interrupt" ignored. 可能是什么问题?

0 投票
3 回答
181 浏览

c - 哪个编译器编译了这个文件?

我正在使用 gnu gcc 和 armcc 编译一些 C 文件。如何获取有关哪个编译器编译了哪个文件的信息?

例如:test.cpp 正在由 armcc 或 gnu gcc 编译。

makefile 非常复杂,我正在寻找一个命令,通过它我可以检查哪个编译器编译了哪个文件。

有任何想法吗?