问题标签 [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.
c - 属性(noinline)支持需要什么 ARM 编译器版本?
我不确定如何找出要支持的任何给定属性需要哪个版本的 ARM 编译器(armcc)。
例如__atribute__((noinline))
?
见 http://www.keil.com/support/man/docs/armcc/armcc_chr1359124975804.htm
c - Lint 警告:#647:可疑截断
我已经阅读了关于可疑截断的这个 Lint 警告的相关问题,但这里是一个纯粹的 C 案例。
以下行是Warning #647
弹出的位置:
wherepCont->sig
也是 64 位有符号(类型signed int64_t
),并且两者sub2
都是freq
32 位无符号。所有这些都是用armcc编译的。
已经尝试将其1
转换为无符号 32 位,但没有成功,但问题仍然存在。
关于我可以尝试什么或这里出了什么问题的任何想法?
assembly - armcc 抱怨编译 neon 程序集时未定义“q0”
...
使用命令
它有错误表明
我错过了armcc
命令中的任何标志吗?
armcc
版本是
c - 强制 ARM 编译器发出未定义的宏错误
头文件config.h
包含以下语句:
源文件main.c
不包括但config.h
包含以下内容:
ARM 编译器ARMCC
(或者更确切地说,C 预处理器)在编译时不会发出任何警告或错误,main.c
尽管CONFIG_COLOR
没有定义。
有没有办法强制编译器在上述情况下发出错误?
或者,有没有办法强制 Keil ARM uVision IDE 始终包含config.h
每个源文件?
我知道GCC
有旗帜可以做到这两点。
c++ - 带有 armcc 的 ARM Cortex M3 上的特征
我正在尝试将 Eigen 库与 armcc 编译器一起使用,将 Keil 用于 Cortex M3 目标,但出现编译错误:
它来自以下代码:
我对模板魔法不是很好,所以我对它应该如何工作很感兴趣。
我在 Transpose 类中没有看到任何称为派生的方法,它没有从任何其他类继承。唯一具有该名称的方法在 TranspositionsBase 类中,它作为模板参数在 Transpose 中传递,据我所知,没有使用。
有人可以解释一下这里发生了什么吗?而且,如果可能的话,为什么会出现编译错误?
c - armcc 中的 Nostdlib 导致定义的引用
我有一个针对 ARM 优化并使用 armcc 编译的 C 代码。我想尽可能减少二进制文件的大小。从我正在使用的标准库
我找到了提供给链接器的选项“-nostdlib”。这个选项大大减少了二进制文件的大小,但它给了我关于 printf 的未定义引用的错误,例如排除标准库但仍然使用这些函数的正确方法是什么?
c - 使用 armcc 时出现“错误 #119:不允许转换为类型 <..>”
我正在尝试用 armcc 编译一个现有的项目(它是为 gcc 设计的)。出于某种原因,我收到以下强制转换的 #119 错误:
我觉得这很奇怪,因为 flags 变量来自 uint32_t 类型,而 keyCert 类型实际上是 uint32_t。
这种行为的原因可能是什么?请注意,我能够使用 gcc 编译它。谢谢!
gcc - 在编译时检测包含的大文件
我将 armcc/gcc 用于包含大型头文件(>20MB 硬件 CSR 文件)的代码库。我希望能够检测到包含这个大头文件的任何文件,因为我试图从根本上导致我的构建速度超慢。
我可以在其中一个编译器中使用一个选项来警告我文件的大小(包括它可能包含的头文件的大小)吗?
eclipse-cdt - eclipse CDT:索引器不适用于预处理器设置
我正在为从日食靛蓝到霓虹灯的移民项目而苦苦挣扎。我在 eclipse neon 中成功构建了项目,但 indexer 并不能真正完美地工作。
问题是我在属性> C/C++ 构建> 设置中注册了#define,但索引器没有得到它。
到目前为止我所做的:
检查 C/C++ 常规 > 预处理器包括路径、宏等。
- 我的定义在“CDT 管理的构建设置条目”下
- 语言中只有一个选项 [未指定]
更改稳定性设置
- 有些人建议在“文件中的行数超过”文本框中尽可能大时更改“启用可伸缩性模式”中的数字。所以我做到了,没有任何变化。
更改索引器设置。我试图更改属性>C/C++ 构建>索引器中的选项。
- 跳过大于:99999MB 的文件
- 跳过包含的文件大于:99999MB
- 尝试'允许启发式解决包括开和关。
- 索引器的构建配置:使用活动构建配置。
在右键单击>索引器上重建/刷新所有文件。
- 项目似乎正在重建,但由于#define 的某些未解决的符号不起作用。
再一次,我的正常构建工作完美。我担心我正在使用旧的 ARM 插件来使用 ARMCC,但我无法更改编译器,因为这是我公司的政策。如果有人弄清楚预处理器是如何工作的,请与我分享,如果没有办法使索引器与 armcc 兼容,我将放弃。
感谢您阅读这个长长的问题。并提前感谢您的回答。
debugging - “*.map”文件和“*.asm”文件中缺少 API 名称
我正在用 armcc 编译一个项目:
它有以下标志:
这会生成一个地图文件,我也有 fromelf 二进制文件来生成 asm。
但是在输出 *.map(memory) 文件中
如果设置了 Optimization3 (-O3) 标志,我将无法看到我在主函数下添加到构建中的 API 名称,删除它会恢复 api 名称
例如来源:main.c
*.map(与 O3)
来源:*.map(带 -O0)
我的问题是有没有办法在 -O3 打开的情况下生成地图文件,但 *.map 和 *.asm 文件中仍然没有缺少函数符号?