【发布时间】:2021-12-03 12:04:12
【问题描述】:
我试图了解微控制器和微处理器之间的 C/C++ 编译过程(编译器/链接器/定位器等)的差异。
例如,对于微控制器,我们可以提供链接描述文件来指定程序应执行的实际物理内存位置。但是,在运行多个程序的微处理器中,我们无法提供加载程序的实际地址。
我想知道这个编译在微处理器和微控制器中是如何处理的。
非常感谢!
【问题讨论】:
-
@MarcusMüller 我删除了我的评论,您在下面的回答很好地涵盖了这一点。你也可以删除你的评论,我一会儿也删除这条评论。
-
你提供两者的地址,真的没有区别。对于单片机,假设是裸机应用程序,您指定物理地址。对于操作系统(某些 mcu 或全尺寸处理器)上的应用程序,您在链接中指定虚拟地址(通常工具链默认为您准备好操作特定地址空间)。
-
所以就编译和链接的方式而言完全没有区别。
标签: c compilation linker microcontroller microprocessors