Wil*_*hey 5 embedded arm-none-eabi-gcc
我在使用嵌入式arm gcc编译器的链接器时遇到了问题,我在网上找到了一个教程,说我可以通过arm-none-eabi-gcc包含参数来修复我的链接器错误-specs=nosys.specs,这对我有用,并且它能够编译我的代码。
我的芯片是 ATSAM7SE256 微控制器,据我了解,它是一个arm7tdmi使用armv4t和thumb指令集的处理器,我一直在使用以下代码编译我的代码:
arm-none-eabi-gcc -march=armv4t -mtune=arm7tdmi -specs=nosys.specs -o <exe_name>.elf <input_files>
Run Code Online (Sandbox Code Playgroud)
代码编译没有问题,但我不知道它是否做了我认为它正在做的事情。
规格文件的意义是什么?您还可以使用 来设置哪些其他值-specs=,以及在什么情况下您希望这样做?nosys.specs我想要的完全嵌入式 Arm 微控制器的价值是什么?
它记录在:https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Overall-Options.html#Overall-Options
它是一个包含开关的文件,用于覆盖各种构建组件(例如编译器、汇编器和链接器)的标准默认值。例如,它可以用来替换默认的 C 库。
我从未见过它被使用过;通常,裸机嵌入式系统构建显式指定--nostdlib然后显式链接所需的库。它可以用于特定于环境的构建环境来链接其他默认代码,例如我猜的 RTOS。就我个人而言,我宁愿在命令行上明确所有内容,将其隐藏在某个文件中。
本质上,它应用文件中指定的开关,就好像它们是默认值一样,因此可用于定义特定构建和执行环境的默认值。
规格文件的格式记录在https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Spec-Files.html#Spec-Files
在这种情况下,如果没有看到链接器错误和文件内容,nosys.specs就很难说出它如何或为何解决链接器问题。当然,替代解决方案是直接应用规范文件中的任何开关。
| 归档时间: |
|
| 查看次数: |
2190 次 |
| 最近记录: |