ZHCUAU3J January 2018 – March 2024
C7000 编译器将内存视为单线性块,该块被划分为代码子块和数据子块。C 程序生成的每个代码子块或数据子块都放置在其自己的连续内存空间中。编译器假定目标内存中有完整的 48 位地址空间可用。
C7000 编译器要求所有代码和数据都必须位于 2GB 的虚拟地址空间内。使用链接器命令文件将代码和数据放置在此 2GB 虚拟地址区域内。C7000 编译器生成的代码使用位置无关寻址来获取函数的地址(在某些情况下)并访问存储器中静态分配的数据。使用与位置无关的寻址的指令范围有限。
有关链接器命令文件的信息可以在节 12.5中找到。有关更多信息,请参阅 C7000 嵌入式应用二进制接口 (EABI) 参考指南 (SPRUIG4),特别是关于“计算代码地址”和“数据分配和寻址”的章节。