【问题标题】:How to port C to a new architecture?如何将 C 移植到新架构?
【发布时间】:2014-08-21 20:08:08
【问题描述】:

假设我们有一台单板计算机,CPU 有它自己的指令集、汇编语言,并且没有操作系统(然而,我们认为我们有一个汇编命令行 shell),我应该怎么做才能移植C 进入那台新电脑?我首先需要什么?我应该设置什么?我需要在其他工作计算机上进行交叉编译吗?

我知道this thread 有一个非常接近的问题,但我不想移植 GCC,我想移植一个更简单的 C 实现,GCC 工具包对我们来说太胖了。

【问题讨论】:

  • 那么您想编写自己的编译器吗?或者您是否有一个想要移植到新架构的开放编译器?
  • 你肯定会从交叉编译开始,但是你的问题不命名具体的编译器是没有意义的。
  • @MatthiasB 我想让编译器在该架构上运行,但我不想先运行 GCC,因为 GCC 集太大了。
  • 你可以看看 tinyc bellard.org/tcc
  • 指令集有很大的不同。寄存器的数量和大小(8 位、16 位或 32 位)也是如此。还有 RAM 的数量(用于变量和堆栈)。

标签: c compiler-construction architecture port


【解决方案1】:

是的,您需要在任何其他主机上交叉编译目标 CPU 的 C 程序。为此,您需要为主机上的目标架构找到可用的工具链。

【讨论】:

  • 我应该怎么做才能交叉编译程序?
  • 如我所说查找目标 CPU 的供应商是否为任何类型的主机提供任何工具链?如果是,那么使用它。不,那么你有很大的任务。了解目标 CPU 的指令集,然后将您的 c 程序逻辑转换为该指令集
  • 只释放程序集引用。
猜你喜欢
  • 1970-01-01
  • 2011-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多