ZHCUAU3J January 2018 – March 2024
LAST 运算符类似于前面描述的 START 和 END 运算符。但是,LAST 适用于存储器范围而不是段。在 MEMORY 指令中使用该运算符可以定义一个符号,而这个符号可以在运行时用于了解链接程序时分配了多少存储器空间。有关语法的详细信息,请参阅节 12.5.4.2。
例如,一个存储器范围可能定义如下:
D_MEM : org = 0x20000020 len = 0x20000000 LAST(dmem_end)
然后,您的 C 程序可以在运行时使用 _symval 运算符访问此符号。例如:
extern char dmem_end;
printf("End of D_MEM memory is %lx\n", _symval(&dmem_end));
更多有关在 C/C++ 代码中引用链接器符号的信息,请参阅节 12.6。