问题标签 [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 - 错误的预处理器字符“\”
我正在尝试获取一堆 1994 年为 Panasonic 3DO lib 编写的 C 模块,以便使用 armcc 进行编译。我遇到了一个我有点困惑的错误。我对 C 的了解并不深,所以也许你们中的一个人会帮助我解决这个问题:
在这个库中的许多包含文件中都使用了 \ 字符我不熟悉这种语法......而且 ARM 编译器似乎讨厌它。
如果您知道为什么使用这些 \ 字符,请解释一下?(对不起,如果它是一个菜鸟问题)另外,有没有另一种方法来写这个,所以编译器很高兴?
debugging - 用gdb调试armcc编译的elf
我一直在尝试将我的 Keil 项目转换为 cmake。我得到了所有文件来编译并生成一个工作精灵。我正在尝试使用 arm-none-eabi-gdb 在精灵上运行调试并获得以下信息:
我假设 GDB 不支持 armcc 创建的精灵,有没有办法让它兼容?
c - armcc 和 armclang 有什么区别?
armcc 和 armclang 是嵌入式 C 和 C++ 代码的编译器。最近,armclang 作为替代编译器越来越受欢迎。
armcc 和 armclang 有什么区别?使用 armclang 有优势吗?
c - C 代码的 ARM 内联汇编未执行
我正在尝试对 ARM C 代码使用内联汇编。我的“main.c”代码如下所示:
当我运行这段代码时,我希望它val1
被写入寄存器 1,然后跳转到地址0x15000
发生并且寄存器 2 中没有写入任何内容。但是当我查看寄存器 1 和寄存器 2 时,它们都被写入了val1
and val2
。所以似乎jump()
没有发生。我错过了什么吗?
更新 1
正如评论中所建议的,我创建了一个最小的可重现示例,即:
当我编译它时,armcc --asm main.c
我得到这个main.s
:
所以看起来 jump() 被优化了?那是什么,我该如何预防?
更新 2
我什至尝试volatile
在函数名称之前添加:
但它没有帮助,jump()
功能被优化了。
armcc - 为什么在带有嵌入式程序集的 DS-5 中编译时出现错误 A1616E
使用 __asm 函数编译一个简单的 c 文件时,我收到以下错误消息。似乎无法识别“MSP”。我可以在注释掉“MRS R0,MSP”后构建。我在这里缺少什么?谢谢。
我的main.c
:
armcc - 链接应用程序时,Armcc 编译器在同一 .o 文件中定义了符号乘法错误
我正在使用 armcc 编译器来编译 mbedtls 库并链接应用程序 aginst mbedtls。但它给出了很多错误,如下所示:
- 错误:L6200E:符号 mbedtls_mpi_cmp_int 多次定义(由 bignum.o 和 bignum.o)
- 错误:L6200E:符号 mbedtls_mpi_fill_random 多次定义(由 bignum.o 和 bignum.o)
- 错误:L6200E:符号 mbedtls_oid_get_md_alg 多次定义(由 oid.o 和 oid.o)
但是我检查了 bignum.c 和 oid.c,这些函数只定义了一次。我的编译有什么问题?
gcc - GCC ARM 预处理器计算错误的负数
这个问题与 arm-none-eabi-gcc 5.4.1 版有关。(我知道它很旧,但我必须使用它)。
这将产生以下程序集:
在 stdint.h 中查看此宏时:
是正确的。
调试器还显示对应于 0x40000000 的正数。
我希望0xC0000000。
这是该特定 gcc 预处理器的错误还是正常?