我一直在研究使用gcc交叉编译器为一些鲜为人知的处理器(如ZPU)编译的C代码示例。
我看到的大多数工作示例都假定某个结构(存储器映射和一组外围设备),并且只是给你一个编译的配方,它们可以工作。
但是,如果您使用具有不同内存映射和一组外围设备的相同CPU,我可以找到很少有关需要修改的信息。
从我读过的。我需要两个主要文件来确保“正确”完成。使用的链接描述文件和crt0.o(如果需要修改则意味着重新编译crt0.S,这是汇编程序)。在最后一个,特别是我发现很少有关于实际应该做什么的信息(其他设置重置没有明确的信息,我在说概念上不是针对特定的处理器。虽然这样做也有用)。
任何人都可以告诉我程序代码(裸机开发)的c文件,crt0.S(特别是为什么需要它)之间的关系以及它与工作链接器脚本的关系?
PD:欢迎使用“阅读本书”形式的答案,我很乐意。
PD:我意识到这种问题通常很模糊,很快就会关闭,但我不知道还有什么地方可以转,所以我要求一点宽容。