背景
有海湾合作委员会错误影响 Cortex M0 架构好像是v5.4.1引入的(...并且似乎固定在后备箱中,但是,我们对此选项 ATM 不感兴趣)。
为了解决这个问题,我使用了带有 Debian 8.4 映像并安装了gcc-arm-none-eabi
软件包的虚拟机:
$ gcc-arm-none-eabi -dumpversion
4.8
当我在虚拟机中编译代码并加载到目标设备时,问题消失了,一切都很顺利。
问题
为了使虚拟机脱中介化,
- 我
gcc-arm-none-eabi v5.3
从下载开发者.arm.com/... $PATH
相应地将下载路径添加到变量中- 跑步
make
但是,生成的代码在微控制器上无法按预期工作。这意味着我无法在主机上使用 gcc-arm-none-eabi-5.3 编译代码。
进一步的实验
为了缩小问题范围,
- 我用相同的方法编译了应用程序代码(app)海湾合作委员会5.3在虚拟机上(安装后32位支持)。生成的二进制文件在目标(微控制器)上运行正如预期的那样。
- 我编译了该应用程序海湾合作委员会7.3.1尽管期望不工作。然而,生成的二进制文件能够在微控制器上正确运行。这是预计不会。
- 我删除了
gcc-arm-none-eabi
并重apt-get remove
试了之前的尝试。应用程序二进制文件仍然可以在微控制器上运行,这不是预期的。 gcc-arm-none-eabi-4.8
我在通过安装之前恢复了虚拟机apt
。我gcc-arm-none-eabi-7.3
直接从下载路径使用没用正如预期的那样- 我用 编译了该应用程序
gcc-arm-none-eabi-5.3
,希望它能够正常工作。然而,它不适用于微控制器。这是预计不会。 - 如果我此时使用 来安装工具链(v4.8)
apt-get install gcc-arm-none-eabi
,生成的二进制文件将无法在微控制器上运行,即没有预料到和奇怪。 - 如果我再次将虚拟机恢复为全新安装并使用
apt-get install gcc-arm-none-eabi gdb-arm-none-eabi
股票编译器安装 v4.8不起作用(这也是奇怪)
问题
根据“进一步的实验”,运行时中应该还使用了一些其他依赖项。我们如何确定这些依赖关系?