您好,我一直在关注剑桥计算机实验室:烘焙 Pi 指南,您可以在其中为 ARM CPU 构建自己的简单操作系统,以便组装树莓派。我的问题是,您将如何实现一个简单的 C 编译器,以便我可以在操作系统中运行基本的 C 程序(以及如何在没有必要的头文件的情况下进行编译?您需要自己实现它们)
问问题
110 次
2 回答
3
嗯,这是一项艰巨的任务...
- 编写一个 ARM 汇编程序。C 程序(通常)被翻译成汇编,然后被汇编。对于 C 编译器,无论如何您都需要这一步,因此拥有一个单独的汇编器是个好主意,这样您就可以准备好另一个工具。汇编程序相对容易编写。
- 编写一个 C 编译器(乐趣从这里开始)。这应该将 C 代码转换为程序集。
- 为您的 C 程序构建一个标准 C 库以供使用。该库必须与您的操作系统交互。我建议您的操作系统遵循一些操作系统标准(如 POSIX)。这将使这部分更简单。
- 写一个链接器。这将获取汇编器生成的目标文件并将它们与相应的库(如果有)链接。
- ???
- 利润
于 2013-07-16T14:37:32.880 回答
0
您必须将 c 库编译成不同机器上 ARM cpu 的程序集文件。然后你会得到一个二进制文件,你可以将它加载到 ARM 机器上的内存中,如果你想开始运行它,你可以将 pc 寄存器设置为编译器的开头。您必须知道指向源文件等的指针所在位置的语义。 http://www.osdev.org/有很多关于引导 ac 编译器的信息。
于 2013-07-16T14:31:09.370 回答