ZHCADC4A September 2011 – March 2014
分配供线程库使用的 TLS 区域是特定于库的操作。规范中未规定具体的实现方法。一种分配 TLS 区域的可能方式如下:
.tls_region { . += 0x2000; } START(TLS_REGION_START) > RAM
线程库可以使用符号 TLS_REGION_START 来定位 TLS 区域。用户可能希望为 N 个线程分配 TLS 块,而且知道 TLS 块的大小很有用。用户可以采取以下操作:
.tls_region { . += MAX_THREADS * __TI_TLS_BLOCK_SIZE; } > RAM
静态链接器将定义符号 __TI_TLS_BLOCK_SIZE,并将其设置为 TLS 块的大小。